update gimp to 2.99.6

This commit is contained in:
chen-jan 2021-09-03 01:05:32 +00:00
parent a70dcaeaa3
commit cae105ae58
9 changed files with 743 additions and 263 deletions

10
MAINTAINERS Normal file
View File

@ -0,0 +1,10 @@
Currently active maintainers
----------------------------
Michael Natterer
E-mail: mitch@gimp.org
Userid: mitch
Jehan
E-mail: jehan@girinstud.io
Userid: Jehan

316
autogen.sh Normal file
View File

@ -0,0 +1,316 @@
#!/bin/sh
# This script does all the magic calls to automake/autoconf and
# friends that are needed to configure a git clone. As described in
# the file HACKING you need a couple of extra tools to run this script
# successfully.
#
# If you are compiling from a released tarball you don't need these
# tools and you shouldn't use this script. Just call ./configure
# directly.
AUTOMAKE_RECOMMENDED_VERSION=1.16
AUTOCONF_REQUIRED_VERSION=2.54
AUTOMAKE_REQUIRED_VERSION=1.13.0
INTLTOOL_REQUIRED_VERSION=0.40.1
LIBTOOL_REQUIRED_VERSION=1.5
LIBTOOL_WIN32_REQUIRED_VERSION=2.2
ACLOCAL=${ACLOCAL-aclocal-${AUTOMAKE_RECOMMENDED_VERSION}}
AUTOCONF=${AUTOCONF-autoconf}
AUTOHEADER=${AUTOHEADER-autoheader}
AUTOMAKE=${AUTOMAKE-automake-${AUTOMAKE_RECOMMENDED_VERSION}}
LIBTOOLIZE=${LIBTOOLIZE-libtoolize}
PROJECT="GNU Image Manipulation Program"
TEST_TYPE=-d
FILE=plug-ins
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
check_version ()
{
VERSION_A=$1
VERSION_B=$2
save_ifs="$IFS"
IFS=.
set dummy $VERSION_A 0 0 0
MAJOR_A=$2
MINOR_A=$3
MICRO_A=$4
set dummy $VERSION_B 0 0 0
MAJOR_B=$2
MINOR_B=$3
MICRO_B=$4
IFS="$save_ifs"
if expr "$MAJOR_A" = "$MAJOR_B" > /dev/null; then
if expr "$MINOR_A" \> "$MINOR_B" > /dev/null; then
echo "yes (version $VERSION_A)"
elif expr "$MINOR_A" = "$MINOR_B" > /dev/null; then
if expr "$MICRO_A" \>= "$MICRO_B" > /dev/null; then
echo "yes (version $VERSION_A)"
else
echo "Too old (version $VERSION_A)"
DIE=1
fi
else
echo "Too old (version $VERSION_A)"
DIE=1
fi
elif expr "$MAJOR_A" \> "$MAJOR_B" > /dev/null; then
echo "Major version might be too new ($VERSION_A)"
else
echo "Too old (version $VERSION_A)"
DIE=1
fi
}
echo
echo "I am testing that you have the tools required to build the"
echo "$PROJECT from git. This test is not foolproof,"
echo "so if anything goes wrong, see the file HACKING for more information..."
echo
DIE=0
OS=`uname -s`
case $OS in
*YGWIN* | *INGW*)
echo "Looks like Win32, you will need libtool $LIBTOOL_WIN32_REQUIRED_VERSION or newer."
echo
LIBTOOL_REQUIRED_VERSION=$LIBTOOL_WIN32_REQUIRED_VERSION
;;
esac
printf "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... "
if ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then
LIBTOOLIZE=$LIBTOOLIZE
elif (glibtoolize --version) < /dev/null > /dev/null 2>&1; then
LIBTOOLIZE=glibtoolize
else
echo
echo " You must have libtool installed to compile $PROJECT."
echo " Install the appropriate package for your distribution,"
echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
echo
DIE=1
fi
if test x$LIBTOOLIZE != x; then
VER=`$LIBTOOLIZE --version \
| grep libtool | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
check_version $VER $LIBTOOL_REQUIRED_VERSION
fi
# check if gtk-doc is explicitly disabled
for ag_option in $AUTOGEN_CONFIGURE_ARGS $@
do
case $ag_option in
-disable-gtk-doc | --disable-gtk-doc)
enable_gtk_doc=no
;;
esac
done
if test x$enable_gtk_doc = xno; then
echo "skipping test for gtkdocize"
else
printf "checking for gtkdocize ... "
if (gtkdocize --version) < /dev/null > /dev/null 2>&1; then
echo "yes"
else
echo
echo " You must have gtk-doc installed to compile $PROJECT."
echo " Install the appropriate package for your distribution,"
echo " or get the source tarball at"
echo " https://ftp.gnome.org/pub/GNOME/sources/gtk-doc/"
echo " You can also use the option --disable-gtk-doc to skip"
echo " this test but then you will not be able to generate a"
echo " configure script that can build the API documentation."
DIE=1
fi
fi
printf "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... "
if ($AUTOCONF --version) < /dev/null > /dev/null 2>&1; then
VER=`$AUTOCONF --version | head -n 1 \
| grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
check_version $VER $AUTOCONF_REQUIRED_VERSION
else
echo
echo " You must have autoconf installed to compile $PROJECT."
echo " Download the appropriate package for your distribution,"
echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/"
echo
DIE=1;
fi
printf "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... "
if ($AUTOMAKE --version) < /dev/null > /dev/null 2>&1; then
AUTOMAKE=$AUTOMAKE
ACLOCAL=$ACLOCAL
elif (automake-1.16 --version) < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.16
ACLOCAL=aclocal-1.16
elif (automake-1.15 --version) < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.15
ACLOCAL=aclocal-1.15
elif (automake-1.14 --version) < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.14
ACLOCAL=aclocal-1.14
elif (automake-1.13 --version) < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.13
ACLOCAL=aclocal-1.13
elif (automake --version) < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake
ACLOCAL=aclocal
else
echo
echo " You must have automake $AUTOMAKE_REQUIRED_VERSION or newer installed to compile $PROJECT."
echo " Download the appropriate package for your distribution,"
echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/"
echo
DIE=1
fi
if test x$AUTOMAKE != x; then
VER=`$AUTOMAKE --version \
| grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
check_version $VER $AUTOMAKE_REQUIRED_VERSION
fi
printf "checking for intltool >= $INTLTOOL_REQUIRED_VERSION ... "
if (intltoolize --version) < /dev/null > /dev/null 2>&1; then
VER=`intltoolize --version \
| grep intltoolize | sed "s/.* \([0-9.]*\)/\1/"`
check_version $VER $INTLTOOL_REQUIRED_VERSION
else
echo
echo " You must have intltool installed to compile $PROJECT."
echo " Get the latest version from"
echo " ftp://ftp.gnome.org/pub/GNOME/sources/intltool/"
echo
DIE=1
fi
printf "checking for xsltproc ... "
if (xsltproc --version) < /dev/null > /dev/null 2>&1; then
echo "yes"
else
echo
echo " You must have xsltproc installed to compile $PROJECT."
echo " Get the latest version from"
echo " ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/"
echo
DIE=1
fi
if test "$DIE" -eq 1; then
echo
echo "Please install/upgrade the missing tools and call me again."
echo
exit 1
fi
test $TEST_TYPE $FILE || {
echo
echo "You must run this script in the top-level $PROJECT directory."
echo
exit 1
}
if test -z "$NOCONFIGURE"; then
echo
echo "I am going to run ./configure with the following arguments:"
echo
echo " $AUTOGEN_CONFIGURE_ARGS $@"
echo
if test -z "$*"; then
echo "If you wish to pass additional arguments, please specify them "
echo "on the $0 command line or set the AUTOGEN_CONFIGURE_ARGS "
echo "environment variable."
echo
fi
fi
if test -z "$ACLOCAL_FLAGS"; then
acdir=`$ACLOCAL --print-ac-dir`
m4list="glib-2.0.m4 glib-gettext.m4 gtk-3.0.m4 intltool.m4 pkg.m4"
for file in $m4list
do
if [ ! -f "$acdir/$file" ]; then
echo
echo "WARNING: aclocal's directory is $acdir, but..."
echo " no file $acdir/$file"
echo " You may see fatal macro warnings below."
echo " If these files are installed in /some/dir, set the "
echo " ACLOCAL_FLAGS environment variable to \"-I /some/dir\""
echo " or install $acdir/$file."
echo
fi
done
fi
rm -rf autom4te.cache
$ACLOCAL $ACLOCAL_FLAGS
RC=$?
if test $RC -ne 0; then
echo "$ACLOCAL gave errors. Please fix the error conditions and try again."
exit $RC
fi
$LIBTOOLIZE --force || exit $?
if test x$enable_gtk_doc = xno; then
if test -f gtk-doc.make; then :; else
echo "EXTRA_DIST = missing-gtk-doc" > gtk-doc.make
fi
echo "WARNING: You have disabled gtk-doc."
echo " As a result, you will not be able to generate the API"
echo " documentation and 'make dist' will not work."
echo
else
gtkdocize || exit $?
fi
# optionally feature autoheader
($AUTOHEADER --version) < /dev/null > /dev/null 2>&1 && $AUTOHEADER || exit 1
$AUTOMAKE --add-missing || exit $?
$AUTOCONF || exit $?
intltoolize --automake || exit $?
cd $ORIGDIR
if test -z "$NOCONFIGURE"; then
$srcdir/configure $AUTOGEN_CONFIGURE_ARGS "$@"
RC=$?
if test $RC -ne 0; then
echo
echo "Configure failed or did not finish!"
exit $RC
fi
echo
echo "Now type 'make' to compile the $PROJECT."
fi

View File

@ -1,44 +0,0 @@
From c21eff4b031acb04fb4dfce8bd5fdfecc2b6524f Mon Sep 17 00:00:00 2001
From: Jehan <jehan@girinstud.io>
Date: Sun, 24 Jun 2018 04:48:48 +0200
Subject: [PATCH] Issue #1689: create unique temporary file with
g_file_open_tmp().
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Not sure this is really solving the issue reported, which is that
`g_get_tmp_dir()` uses environment variables (yet as g_file_open_tmp()
uses g_get_tmp_dir()…). But at least g_file_open_tmp() should create
unique temporary files, which prevents overriding existing files (which
is most likely the only real attack possible here, or at least the only
one I can think of unless some weird vulnerabilities exist in glib).
---
app/tests/test-xcf.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/app/tests/test-xcf.c b/app/tests/test-xcf.c
index 9fc2ec1f4b..98ca4f0bed 100644
--- a/app/tests/test-xcf.c
+++ b/app/tests/test-xcf.c
@@ -295,7 +295,8 @@ gimp_write_and_read_file (Gimp *gimp,
GimpImage *image;
GimpImage *loaded_image;
GimpPlugInProcedure *proc;
- gchar *filename;
+ gchar *filename = NULL;
+ gint file_handle;
GFile *file;
/* Create the image */
@@ -311,7 +312,9 @@ gimp_write_and_read_file (Gimp *gimp,
use_gimp_2_8_features);
/* Write to file */
- filename = g_build_filename (g_get_tmp_dir (), "gimp-test.xcf", NULL);
+ file_handle = g_file_open_tmp ("gimp-test-XXXXXX.xcf", &filename, NULL);
+ g_assert (file_handle != -1);
+ close (file_handle);
file = g_file_new_for_path (filename);
g_free (filename);

2
baselibs.conf Normal file
View File

@ -0,0 +1,2 @@
libgimp-2_0-0
libgimpui-2_0-0

1
gimp-rpmlintrc Normal file
View File

@ -0,0 +1 @@
addFilter('shlib-fixed-dependency')

595
gimp.spec
View File

@ -1,259 +1,424 @@
%define requires_file() %( readlink -f '%*' | LC_ALL=C xargs -r rpm -q --qf 'Requires: %%{name} >= %%{epoch}:%%{version}\\n' -f | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
%bcond_without is_git_build
%bcond_without binreloc
%define alsa_version 1.0.0
%define appstream_glib_version 0.7.7
%define atk_version 2.4.0
%define babl_version 0.1.82
%define cairo_version 1.14.0
%define cairo_pdf_version 1.12.2
%define dbus_glib_version 0.70
%define gdk_pixbuf_version 2.30.8
%define fontconfig_version 2.12.4
%define freetype2_version 2.1.7
%define gdk_pixbuf_version 2.30.8
%define gegl04_version 0.4.26
%define gexiv2_version 0.10.6
%define glib_version 2.56.2
%define gtk3_version 3.22.29
%define gudev_version 167
%define harfbuzz_version 1.0.5
%define lcms2_version 2.8
%define libexif_version 0.6.15
%define libheif_version 1.5.2
%define liblzma_version 5.0.0
%define libmypaint_version 1.4.0
%define libopenjp2_version 2.1.0
%define libpng_version 1.6.25
%define librsvg_version 2.40.6
%define libunwind_version 1.1.0
%define libwebp_version 0.6.0
%define mypaint_brushes_version 1.3.0
%define OpenEXR_version 1.6.1
%define pango_version 1.44.0
%define poppler_data_version 0.4.9
%define poppler_glib_version 0.69.0
%define vapigen_version 0.40.0
%define libvala_version 0.40.0
%define webkit2gtk_version 2.20.3
%global abiver 5
%global apiver 3.0
Name: gimp Name: gimp
Version: 2.10.6 Version: 2.99.6
Release: 7 Release: 1
Epoch: 2 Epoch: 2
Summary: A versatile graphics manipulation package Summary: The GNU Image Manipulation Program
License: GPLv3+ and GPLv3 License: GPL-3.0-or-later
URL: http://www.gimp.org/ Group: Productivity/Graphics/Bitmap Editors
URL: https://www.gimp.org/
Source0: http://download.gimp.org/pub/gimp/v2.10/gimp-2.10.6.tar.bz2 Source: https://download.gimp.org/mirror/pub/gimp/v2.99/%{name}-%{version}.tar.bz2
Patch6000: backport-CVE-2018-12713.patch Source1: macros.gimp
Source2: autogen.sh
%global apiversion 2.0 Source3: MAINTAINERS
%global textversion 20 Source98: gimp-rpmlintrc
%global allversion 2.10 Source99: baselibs.conf
Patch0: git_info_from_dirname.patch
BuildRequires: alsa-lib-devel >= 1.0.0 libgudev1-devel >= 167 libgexiv2-devel >= 0.10.6 librsvg2-devel >= 2.40.6 libpng-devel >= 1.6.25 libtiff-devel BuildRequires: autoconf
BuildRequires: lcms2-devel >= 2.8 harfbuzz-devel >= 0.9.19 glib2-devel >= 2.54.2 gtk2-devel >= 2.24.10 gegl04-devel >= 0.4.6 gdk-pixbuf2-devel >= 2.30.8 BuildRequires: automake
BuildRequires: atk-devel >= 2.2.0 babl-devel >= 0.1.56 cairo-devel >= 1.12.2 bzip2-devel fontconfig-devel >= 2.12.4 freetype-devel >= 2.1.7 libX11-devel BuildRequires: libtool
BuildRequires: libgs-devel iso-codes-devel libjpeg-devel libmng-devel libwebp-devel >= 0.6.0 pango-devel >= 1.29.4 poppler-glib-devel >= 0.44.0 BuildRequires: aalib-devel
BuildRequires: libwmf-devel >= 0.2.8 libmypaint-devel >= 1.3.0 mypaint-brushes-devel >= 1.3.0 OpenEXR-devel >= 1.6.1 openjpeg2-devel >= 2.1.0 BuildRequires: babl-vala >= %{babl_version}
BuildRequires: poppler-data-devel >= 0.4.7 pycairo-devel >= 1.0.2 pygtk2-devel >= 2.10.4 pygobject2-devel python2-devel >= 2.5.0 xz-devel >= 5.0.0 BuildRequires: fdupes
BuildRequires: perl >= 5.10.0 libappstream-glib gtk-doc >= 1.0 gegl04-tools libXpm-devel pkgconfig zlib-devel BuildRequires: gcc-c++
BuildRequires: libXmu-devel gettext >= 0.19 chrpath >= 0.13-5 intltool >= 0.40.1 gdb BuildRequires: gegl04 >= %{gegl04_version}
BuildRequires: ghostscript-devel
Requires: babl%{?_isa} >= 0.1.56 fontconfig >= 2.12.4 freetype >= 2.1.7 pango >= 1.29.4 xdg-utils %{name}-libs = %{epoch}:%{version}-%{release} BuildRequires: glib-networking
Requires: gegl04%{?_isa} >= 0.4.6 glib2 >= 2.54.0 gtk2 >= 2.24.10 pygtk2 >= 2.10.4 hicolor-icon-theme BuildRequires: gtk-doc
Requires: %{name}-libs = %{epoch}:%{version}-%{release} BuildRequires: intltool >= 0.40.1
BuildRequires: libwmf-devel >= 0.2.8
Obsoletes: gimp-help-browser < %{epoch}:%{version}-%{release} BuildRequires: pkgconfig
Conflicts: gimp-help-browser < %{epoch}:%{version}-%{release} BuildRequires: python3 >= 3.6.0
Obsoletes: gimp-unstable < 2:2.10 BuildRequires: python3-gobject
Conflicts: gimp-unstable < 2:2.10 BuildRequires: xdg-utils
BuildRequires: pkgconfig(OpenEXR) >= %{OpenEXR_version}
BuildRequires: pkgconfig(alsa) >= %{alsa_version}
BuildRequires: pkgconfig(appstream-glib) >= %{appstream_glib_version}
BuildRequires: pkgconfig(atk) >= %{atk_version}
BuildRequires: pkgconfig(babl) >= %{babl_version}
BuildRequires: pkgconfig(bzip2)
BuildRequires: pkgconfig(cairo) >= %{cairo_version}
BuildRequires: pkgconfig(cairo-pdf) >= %{cairo_pdf_version}
BuildRequires: pkgconfig(dbus-glib-1) >= %{dbus_glib_version}
BuildRequires: pkgconfig(fontconfig) >= %{fontconfig_version}
BuildRequires: pkgconfig(freetype2) >= %{freetype2_version}
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version}
BuildRequires: pkgconfig(gegl-0.4) >= %{gegl04_version}
BuildRequires: pkgconfig(gexiv2) >= %{gexiv2_version}
BuildRequires: pkgconfig(gjs-1.0)
BuildRequires: pkgconfig(glib-2.0) >= %{glib_version}
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version}
BuildRequires: pkgconfig(gudev-1.0) >= %{gudev_version}
BuildRequires: pkgconfig(harfbuzz) >= %{harfbuzz_version}
BuildRequires: pkgconfig(iso-codes)
BuildRequires: pkgconfig(lcms2) >= %{lcms2_version}
BuildRequires: pkgconfig(libarchive)
BuildRequires: pkgconfig(libexif) >= %{libexif_version}
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(liblzma) >= %{liblzma_version}
BuildRequires: pkgconfig(libmng)
BuildRequires: pkgconfig(libmypaint) >= %{libmypaint_version}
BuildRequires: pkgconfig(libopenjp2) >= %{libopenjp2_version}
BuildRequires: pkgconfig(libpng) >= %{libpng_version}
BuildRequires: pkgconfig(librsvg-2.0) >= %{librsvg_version}
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(libunwind) >= %{libunwind_version}
BuildRequires: pkgconfig(libwebp) >= %{libwebp_version}
BuildRequires: pkgconfig(luajit)
BuildRequires: pkgconfig(mypaint-brushes-1.0) >= %{mypaint_brushes_version}
BuildRequires: pkgconfig(pango) >= %{pango_version}
BuildRequires: pkgconfig(poppler-data) >= %{poppler_data_version}
BuildRequires: pkgconfig(poppler-glib) >= %{poppler_glib_version}
BuildRequires: pkgconfig(shared-mime-info)
BuildRequires: pkgconfig(vapigen) >= %{vapigen_version}
BuildRequires: pkgconfig(webkit2gtk-4.0) >= %{webkit2gtk_version}
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xmu)
BuildRequires: pkgconfig(xpm)
BuildRequires: pkgconfig(zlib)
%requires_eq gegl-0_4
Requires: gjs
Requires: libgimp-3_0-0 = %{epoch}:%{version}
Requires: libgimpui-3_0-0 = %{epoch}:%{version}
Requires: luajit
Requires: shared-mime-info
Requires: xdg-utils
Recommends: %{name}-plugins-python3 = %{epoch}:%{version}
Recommends: iso-codes
Suggests: AdobeICCProfiles
Provides: gimp-2.0 = %{epoch}:%{version}
Provides: gimp(abi) = %{abiver}
Provides: gimp(api) = %{apiver}
%description %description
GIMP is a cross-platform image editor available for GNU/Linux, OS X, Windows and more operating systems. The GIMP is an image composition and editing program, which can be
It is free software, you can change its source code and distribute your changes. used for creating logos and other graphics for Web pages. The GIMP
Whether you are a graphic designer, photographer, illustrator, or scientist, offers many tools and filters, and provides a large image
GIMP provides you with sophisticated tools to get your job done. You can further enhance manipulation toolbox, including channel operations and layers,
your productivity with GIMP thanks to many customization options and 3rd party plugins. effects, subpixel imaging and antialiasing, and conversions, together
with multilevel undo. The GIMP offers a scripting facility, but many
of the included scripts rely on fonts that we cannot distribute.
%package libs %package -n libgimp-3_0-0
Summary: Libraries for %{name} Summary: The GNU Image Manipulation Program - Libraries
License: LGPLv3+ Group: System/Libraries
Obsoletes: gimp-unstable-libs < 2:2.10 %requires_file %{_libdir}/libbabl-0.1.so
Conflicts: gimp-unstable-libs < 2:2.10 %requires_file %{_libdir}/libgegl-0.4.so
%requires_file %{_libdir}/libgexiv2.so
%description libs %description -n libgimp-3_0-0
Libraries for %{name}. The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
This package provides GIMP libraries.
%package -n libgimpui-3_0-0
Summary: The GNU Image Manipulation Program - UI Libraries
Group: System/Libraries
%description -n libgimpui-3_0-0
The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
This package provides GIMP UI libraries.
%package plugin-python3
Summary: The GNU Image Manipulation Program - python3 goject introspection plugins
Group: Productivity/Graphics/Bitmap Editors
Requires: %{name} = %{epoch}:%{version}
Requires: python3 >= 3.6.0
Requires: python3-gobject
Supplements: %{name}
Provides: gimp-plugins-python3 = %{epoch}:%{version}-%{release}
Obsoletes: gimp-plugins-python3 < %{epoch}:%{version}-%{release}
%description plugin-python3
The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
%package vala
Summary: The GNU Image Manipulation Program - Vala development files
Group: Productivity/Graphics/Bitmap Editors
Requires: %{name}-devel = %{epoch}:%{version}
%description vala
The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
%package plugin-aa
Summary: The GNU Image Manipulation Program -- ASCII-Art output plugin
Group: Productivity/Graphics/Bitmap Editors
Requires: %{name} = %{epoch}:%{version}
Supplements: (%{name} and libaa1)
%description plugin-aa
The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
%package devel %package devel
Summary: GIMP development kit Summary: The GNU Image Manipulation Program
License: LGPLv3+ Group: Development/Libraries/Other
Requires: gimp-libs = %{epoch}:%{version}-%{release} glib2-devel rpm >= 4.11.0 Requires: libgimp-3_0-0 = %{epoch}:%{version}
Requires: gimp-devel-tools = %{epoch}:%{version}-%{release} gtk2-devel pkgconfig Requires: libgimpui-3_0-0 = %{epoch}:%{version}
Provides: gimp-devel = %{epoch}:%{version}
Provides: %{name}-devel-tools%{?_isa} %{name}-devel-tools Provides: gimp-doc = 2.6.4
Obsoletes: %{name}-devel-tools Obsoletes: gimp-doc < 2.6.4
Obsoletes: gimp-unstable-devel < 2:2.10 Obsoletes: gimp-unstable-devel < 2.6.0
Conflicts: gimp-unstable-devel < 2:2.10
Obsoletes: gimp-unstable-devel-tools < 2:2.10
Conflicts: gimp-unstable-devel-tools < 2:2.10
%description devel %description devel
GIMP development kit The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
This subpackage contains libraries and header files for developing
applications that want to make use of the GIMP libraries.
%package extension-goat-excercises
Summary: The GNU Image Manipulation Program
Group: Development/Libraries/Other
Requires: libgimpui-3_0-0 = %{epoch}:%{version}
Requires: gimp-vala = %{epoch}:%{version}
Requires: gimp-devel = %{epoch}:%{version}
Requires: gimp-plugin-python3 = %{epoch}:%{version}
%description extension-goat-excercises
The GIMP is an image composition and editing program. GIMP offers
many tools and filters, and provides a large image manipulation
toolbox and scripting.
This subpackage contains example the goat extension examples
that extend gimp.
%package help
Summary: Including man files for gimp
Requires: man
%description help
This contains man files for the using of gimp.
%prep %prep
%autosetup -n %{name}-%{version} -p1 %autosetup -p1
chmod 744 %{SOURCE2}
cp %{SOURCE2} .
cp %{SOURCE3} .
%build %build
%define _lto_cflags %{nil}
NOCONFIGURE=1 ./autogen.sh
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
test -x "$(type -p %{_bindir}/gcc-7)" && export CC="%{_bindir}/gcc-7"
test -x "$(type -p %{_bindir}/g++-7)" && export CXX="%{_bindir}/g++-7"
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export CFLAGS="%{optflags} -fno-strict-aliasing"
%configure \ %configure \
--enable-mp \ --disable-silent-rules \
--enable-python \
--disable-static\ --disable-static\
--with-print \ --libexecdir=%{_prefix}/lib\
--with-poppler \ --enable-default-binary\
--with-gudev --without-hal \ --enable-binreloc \
--without-webkit \ --enable-mp
--with-lcms=lcms2 \
--enable-gimp-console \ # Safety check for ABI version change.
--enable-default-binary=yes \ vabi=$(printf "%%d" $(sed -n '/#define GIMP_MODULE_ABI_VERSION/{s/.* //;p}' libgimpmodule/gimpmodule.h))
--without-aa \ if test "x${vabi}" != "x%{abiver}"; then
--with-linux-input \ : Error: Upstream ABI version is now ${vabi}, expecting %{abiver}.
--with-webp \ : Update the apiver macro and rebuild.
--with-gvfs \ exit 1
--with-alsa \ fi
--with-dbus \ # Safety check for API version change.
--with-script-fu \ vapi=$(sed -n '/#define GIMP_API_VERSION/{s/.* //;p}' libgimpbase/gimpversion.h | sed -e 's@"@@g')
--with-cairo-pdf \ if test "x${vapi}" != "x%{apiver}"; then
--without-appdata-test \ : Error: Upstream API version is now ${vapi}, expecting %{apiver}.
--with-libtiff \ : Update the apiver macro and rebuild.
--with-libjpeg \ exit 1
--with-libpng \ fi
--with-libmng \
--with-libexif \
--with-librsvg \
--with-libxpm
%make_build %make_build
gimp_pc_extract_normalize() {
PKG_CONFIG_PATH="$PWD" \
pkg-config --variable="$1" gimp-2.0 | \
sed \
-e 's|^/usr/share/man|%{_mandir}|' \
-e 's|^/usr/share/info|%{_infodir}|' \
-e 's|^/usr/include|%{_includedir}|' \
-e 's|^/usr/lib64|%{_libdir}|' \
-e 's|^/usr/bin|%{_bindir}|' \
-e 's|^/usr|%{_exec_prefix}|' \
-e 's|^/var|%{_localstatedir}|' \
-e 's|^/usr/share|%{_datadir}|' \
-e 's|^/var/lib|%{_sharedstatedir}|' \
-e 's|^/etc|%{_sysconfdir}|' \
-e 's|^/usr/libexec|%{_libexecdir}|' \
-e 's|^/usr/sbin|%{_sbindir}|' \
-e 's|^/usr|%{_prefix}|'
}
_gimp_sysconfdir="$(gimp_pc_extract_normalize gimpsysconfdir)"
_gimp_localedir="$(gimp_pc_extract_normalize gimplocaledir)"
_gimp_datadir="$(gimp_pc_extract_normalize gimpdatadir)"
_gimp_libdir="$(gimp_pc_extract_normalize gimplibdir)"
_gimp_scriptdir="${_gimp_datadir}/scripts"
_gimp_plugindir="${_gimp_libdir}/plug-ins"
cat << EOF > macros.gimp
#RPM macros for GIMP
%%_gimp_sysconfdir ${_gimp_sysconfdir}
%%_gimp_localedir ${_gimp_localedir}
%%_gimp_datadir ${_gimp_datadir}
%%_gimp_libdir ${_gimp_libdir}
%%_gimp_scriptdir ${_gimp_scriptdir}
%%_gimp_plugindir ${_gimp_plugindir}
EOF
%install %install
%make_install %make_install
install -D -m0644 macros.gimp %{buildroot}%{_rpmconfigdir}/macros.d/macros.gimp rm %{buildroot}%{_libdir}/gimp/2.99/*/*.*a
find %buildroot -type f -print0 | xargs -0 -L 20 chrpath --delete --keepgoing 2>/dev/null || : touch gimp_all_parts.lang
for lang_part in gimp30 gimp30-libgimp gimp30-python gimp30-script-fu gimp30-std-plug-ins ; do
%delete_la %find_lang ${lang_part} %{?no_lang_C} ${lang_part}.lang
cat ${lang_part}.lang >> gimp_all_parts.lang
find %{buildroot}%{_libdir}/gimp/%{apiversion}/* -type d | sed "s@^%{buildroot}@%%dir @g" >> gimp-plugin-files
find %{buildroot}%{_libdir}/gimp/%{apiversion} -type f | sed "s@^%{buildroot}@@g" | grep -v '\.a$' > gimp-plugin-files
grep "\.py$" gimp-plugin-files > gimp-plugin-files-py
for file in $(cat gimp-plugin-files-py); do
for newfile in ${file}c ${file}o; do
grep -F -q -x "$newfile" gimp-plugin-files || echo "$newfile"
done done
done >> gimp-plugin-files echo "%%defattr(-,root,root)" >plugins.list
echo "%%defattr(-,root,root)" >plugins-python.list
%py_byte_compile %{__python2} %{buildroot}%{_libdir}/gimp/%{apiversion} for PLUGIN in %{buildroot}%{_libdir}/gimp/2.99/plug-ins/* ; do
if grep -q '^#!.*python' ${PLUGIN}/* ; then
%find_lang gimp%{textversion} echo "${PLUGIN#%{buildroot}}" >>plugins-python.list
%find_lang gimp%{textversion}-libgimp else
%find_lang gimp%{textversion}-tips echo "${PLUGIN#%{buildroot}}" >>plugins.list
%find_lang gimp%{textversion}-python fi
%find_lang gimp%{textversion}-std-plug-ins
%find_lang gimp%{textversion}-script-fu
cat gimp%{textversion}.lang \
gimp%{textversion}-std-plug-ins.lang \
gimp%{textversion}-script-fu.lang \
gimp%{textversion}-libgimp.lang \
gimp%{textversion}-tips.lang \
gimp%{textversion}-python.lang > gimp-all.lang
cat gimp-plugin-files gimp-all.lang > gimp.files
ln -snf gimp-%{allversion} %{buildroot}%{_bindir}/gimp
ln -snf gimp-%{allversion}.1 %{buildroot}%{_mandir}/man1/gimp.1
ln -snf gimp-console-%{allversion} %{buildroot}/%{_bindir}/gimp-console
ln -snf gimptool-%{apiversion} %{buildroot}%{_bindir}/gimptool
ln -snf gimptool-%{apiversion}.1 %{buildroot}%{_mandir}/man1/gimptool.1
ln -snf gimprc-%{allversion}.5 %{buildroot}/%{_mandir}/man5/gimprc.5
ln -snf gimp-console-%{allversion}.1 %{buildroot}/%{_mandir}/man1/gimp-console.1
grep -E -rl '^#!\s*%{_bindir}/env\s+python' --include=\*.py "%{buildroot}" |
while read file; do
sed -r '1s,^#!\s*%{_bindir}/env\s+python,#!%{__python},' -i "$file"
done done
cat gimp_all_parts.lang >> plugins.list
find %{buildroot} -type f -name "*.la" -delete -print
install -d %{buildroot}%{_sysconfdir}/rpm
sed -e "s/@GIMP_APIVER@/%{apiver}/;s/@GIMP_ABIVER@/%{abiver}/" \
< $RPM_SOURCE_DIR/macros.gimp > macros.gimp
install -m 644 -c macros.gimp \
%{buildroot}%{_sysconfdir}/rpm/macros.gimp
%fdupes %{buildroot}%{_datadir}/gtk-doc/
%fdupes %{buildroot}%{_libdir}/gimp/2.99/python/
%fdupes %{buildroot}%{_datadir}/gimp/2.99/
%check %post -n libgimp-3_0-0 -p /sbin/ldconfig
%postun -n libgimp-3_0-0 -p /sbin/ldconfig
%post -n libgimpui-3_0-0 -p /sbin/ldconfig
%postun -n libgimpui-3_0-0 -p /sbin/ldconfig
make check %{?_smp_mflags} %files -f plugins.list
%license COPYING LICENSE
%doc AUTHORS NEWS* README MAINTAINERS HACKING
%{_bindir}/gimp
%{_bindir}/gimp-2.*
%{_bindir}/gimp-console
%{_bindir}/gimp-console-2.*
%{_bindir}/gimp-test-clipboard-2.99
%{_prefix}/lib/gimp-debug-tool-2.99
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/gimp-data-extras.metainfo.xml
%{_datadir}/metainfo/org.gimp.GIMP.appdata.xml
%{_datadir}/applications/gimp.desktop
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/gimp/
%{_libdir}/gimp/2.99/environ/default.env
%{_libdir}/gimp/2.99/interpreters/default.interp
%{_libdir}/gimp/2.99/modules/libcolor-selector-cmyk.so
%{_libdir}/gimp/2.99/modules/libcolor-selector-water.so
%{_libdir}/gimp/2.99/modules/libcolor-selector-wheel.so
%{_libdir}/gimp/2.99/modules/libcontroller-linux-input.so
%{_libdir}/gimp/2.99/modules/libcontroller-midi.so
%{_libdir}/gimp/2.99/modules/libdisplay-filter-aces-rrt.so
%{_libdir}/gimp/2.99/modules/libdisplay-filter-clip-warning.so
%{_libdir}/gimp/2.99/modules/libdisplay-filter-color-blind.so
%{_libdir}/gimp/2.99/modules/libdisplay-filter-gamma.so
%{_libdir}/gimp/2.99/modules/libdisplay-filter-high-contrast.so
%{_mandir}/man?/gimp.*
%{_mandir}/man?/gimp-2*
%{_mandir}/man?/gimp-console.*
%{_mandir}/man?/gimp-console-2*
%{_mandir}/man?/gimprc.*
%{_mandir}/man?/gimprc-2*
%{_mandir}/man?/gimptool-2*
%dir %{_sysconfdir}/gimp
%dir %{_sysconfdir}/gimp/2.99
%config %{_sysconfdir}/gimp/2.99/*rc
%config %{_sysconfdir}/gimp/2.99/*css
%exclude %{_libdir}/gimp/2.99/plug-ins/file-aa
%ldconfig_scriptlets libs %files plugin-aa
%{_libdir}/gimp/2.99/plug-ins/file-aa
%files -f gimp.files %files -n libgimp-3_0-0
%license COPYING
%doc AUTHORS README
%doc docs/*.xcf*
%dir %{_datadir}/gimp %dir %{_datadir}/gimp
%dir %{_datadir}/gimp/2.0 %dir %{_datadir}/gimp/2.99
%dir %{_libdir}/gimp %dir %{_libdir}/gimp
%dir %{_libdir}/gimp/2.0 %dir %{_libdir}/gimp/2.99
%dir %{_libdir}/gimp/2.0/environ %dir %{_libdir}/gimp/2.99/environ
%dir %{_libdir}/gimp/2.0/interpreters %dir %{_libdir}/gimp/2.99/interpreters
%dir %{_libdir}/gimp/2.0/modules %dir %{_libdir}/gimp/2.99/modules
%dir %{_libdir}/gimp/2.0/plug-ins %dir %{_libdir}/gimp/2.99/plug-ins
%dir %{_libdir}/gimp/2.0/python %dir %{_libdir}/gimp/2.99/extensions
%{_libdir}/libgimp-3.0.so.*
%{_libdir}/libgimpbase-3.0.so.*
%{_libdir}/libgimpcolor-3.0.so.*
%{_libdir}/libgimpconfig-3.0.so.*
%{_libdir}/libgimpmath-3.0.so.*
%{_libdir}/libgimpmodule-3.0.so.*
%{_datadir}/applications/*.desktop %files -n libgimpui-3_0-0
%{_datadir}/metainfo/*.appdata.xml %{_libdir}/libgimpthumb-3.0.so.*
%{_datadir}/metainfo/*.metainfo.xml %{_libdir}/libgimpui-3.0.so.*
%{_datadir}/gimp/2.0/* %{_libdir}/libgimpwidgets-3.0.so.*
%dir /etc/gimp %files plugin-python3 -f plugins-python.list
%dir /etc/gimp/2.0 %{_libdir}/gimp/2.99/environ/python.env
%config(noreplace) /etc/gimp/2.0/controllerrc %{_libdir}/gimp/2.99/interpreters/pygimp.interp
%config(noreplace) /etc/gimp/2.0/gimprc %{_libdir}/girepository-1.0/Gimp-3.0.typelib
%config(noreplace) /etc/gimp/2.0/gtkrc %{_libdir}/girepository-1.0/GimpUi-3.0.typelib
%config(noreplace) /etc/gimp/2.0/unitrc
%config(noreplace) /etc/gimp/2.0/sessionrc
%config(noreplace) /etc/gimp/2.0/templaterc
%config(noreplace) /etc/gimp/2.0/menurc
/usr/bin/gimp-2.10 %files vala
/usr/bin/gimp-console-2.10 %{_datadir}/vala/vapi/gimp-3.deps
/usr/bin/gimp %{_datadir}/vala/vapi/gimp-3.vapi
/usr/bin/gimp-console %{_datadir}/vala/vapi/gimp-ui-3.deps
/usr/bin/gimp-test-clipboard-2.0 %{_datadir}/vala/vapi/gimp-ui-3.vapi
/usr/libexec/gimp-debug-tool-2.0
/usr/share/icons/hicolor/*/apps/gimp.png
%files libs
%{_libdir}/libgimp*so.*
%files devel %files devel
%doc HACKING README.i18n %doc README.i18n
%doc /usr/share/gtk-doc %{_bindir}/gimptool-2.99
%dir %{_libdir}/gimp %{_includedir}/gimp-3.0/
%dir %{_libdir}/gimp/2.0
%dir %{_libdir}/gimp/2.0/modules
%{_libdir}/*.so %{_libdir}/*.so
%{_libdir}/pkgconfig/* %{_datadir}/aclocal/gimp-3.0.m4
/usr/share/aclocal/*.m4 %{_libdir}/pkgconfig/gimp-3.0.pc
/usr/include/gimp-2.0 %{_libdir}/pkgconfig/gimpthumb-3.0.pc
/usr/lib/rpm/macros.d/macros.gimp %{_libdir}/pkgconfig/gimpui-3.0.pc
/usr/bin/gimptool-2.0 %dir %{_datadir}/gtk-doc
/usr/bin/gimptool %{_datadir}/gtk-doc/html/*
%dir %{_datadir}/locale
%{_datadir}/locale/*/LC_MESSAGES/*
%config %{_sysconfdir}/rpm/macros.gimp
%{_datadir}/gir-1.0/Gimp-3.0.gir
%{_datadir}/gir-1.0/GimpUi-3.0.gir
%files help %files extension-goat-excercises
%{_mandir}/man*/* %{_libdir}/gimp/2.99/extensions/org.gimp.extension.goat-exercises
%changelog %changelog
* Wed Aug 25 2021 chenchen <chen_aka_jan@163.com> - 2:2.99.6-1
- update to 2.99.6
* Sat Mar 21 2020 hexiujun <hexiujun1@huawei.com> - 2:2.10.6-7 * Sat Mar 21 2020 hexiujun <hexiujun1@huawei.com> - 2:2.10.6-7
- Type:NA - Type:NA
- ID:NA - ID:NA

View File

@ -0,0 +1,25 @@
diff --git a/Makefile.am b/Makefile.am
index 5321a0c7d5..e6b16a66e6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -142,16 +142,10 @@ CLEANFILES = $(generated_sources)
# already exists because then we are probably working with a tarball
# in which case the git-version.h we ship is correct.
git-version.h: update-git-version-header
- @if test -e "$(top_srcdir)/.git"; then \
- git_version="`git --git-dir=$(top_srcdir)/.git describe --always`"; \
- git_version_abbrev="`git --git-dir=$(top_srcdir)/.git rev-parse --short HEAD`"; \
- git_last_commit_year="`git --git-dir=$(top_srcdir)/.git log -n1 --reverse --pretty=%ci | cut -b 1-4`"; \
- elif test ! -f "$@"; then \
- git_version="Unknown, shouldn't happen"; \
- git_version_abbrev="$$git_version"; \
- git_last_commit_timestamp=-1; \
- git_last_commit_year="`date -u '+%Y'`"; \
- fi; \
+ git_version="`basename \`pwd\`` (OBS AppImage)"; \
+ git_version_abbrev="`basename \`pwd\` | sed 's,gimp-\(.*\)+git\(.*\)\.\(.*\),\3,g'`"; \
+ git_last_commit_year="`date -u '+%Y'`"; \
+ git_last_commit_timestamp=-1; \
if test -n "$$git_version"; then \
echo "#ifndef __GIT_VERSION_H__" > "$@.tmp"; \
echo "#define __GIT_VERSION_H__" >> "$@.tmp"; \

5
macros.gimp Normal file
View File

@ -0,0 +1,5 @@
#
# Interface versions exposed by GIMP:
#
%gimp_api_version @GIMP_APIVER@
%gimp_abi_version @GIMP_ABIVER@