version 2.10.0

- build without help-browser (#1375809)
- build with OpenEXR support
- build with webp support
- don't BR: webkitgtk-devel
- explicitly require perl for building
- update runtime dependency versions
- remove obsolete build deps: gnome-keyring-devel, libgnomeui-devel
- don't run appdata test which requires network access
This commit is contained in:
Nils Philippsen 2018-04-28 23:43:55 +02:00
parent 282605dda7
commit 5fcbb4ca6b
14 changed files with 241 additions and 10649 deletions

1
.gitignore vendored
View File

@ -23,3 +23,4 @@ gimp-2.6.10-1-autoreconf.patch.bz2
/gimp-2.8.18.tar.bz2
/gimp-2.8.20.tar.bz2
/gimp-2.8.22.tar.bz2
/gimp-2.10.0.tar.bz2

View File

@ -0,0 +1,25 @@
diff -up gimp-2.10.0/etc/gimprc.in.cm-system-monitor-profile-by-default gimp-2.10.0/etc/gimprc.in
--- gimp-2.10.0/etc/gimprc.in.cm-system-monitor-profile-by-default 2018-04-28 17:21:37.050632773 +0200
+++ gimp-2.10.0/etc/gimprc.in 2018-04-28 17:22:37.399518036 +0200
@@ -306,9 +306,9 @@
# Defines the color management behavior. This is a parameter list.
#
-# (color-management
+(color-management
# (mode display)
-# (display-profile-from-gdk no)
+ (display-profile-from-gdk no)
# (display-rendering-intent relative-colorimetric)
# (display-use-black-point-compensation yes)
# (display-optimize yes)
@@ -317,7 +317,8 @@
# (simulation-optimize yes)
# (simulation-gamut-check no)
# (out-of-gamut-color (color-rgb 1.000000 0.000000 1.000000))
-# (display-module "CdisplayLcms"))
+# (display-module "CdisplayLcms")
+)
# Keep a permanent record of all opened and saved files in the Recent
# Documents list. Possible values are yes and no.

View File

@ -0,0 +1,11 @@
diff -up gimp-2.10.0/etc/gimprc.in.external-help-browser gimp-2.10.0/etc/gimprc.in
--- gimp-2.10.0/etc/gimprc.in.external-help-browser 2018-04-28 17:25:02.483242200 +0200
+++ gimp-2.10.0/etc/gimprc.in 2018-04-28 17:25:28.048193595 +0200
@@ -753,6 +753,7 @@
# web-browser.
#
# (help-browser gimp)
+(help-browser webbrowser)
# When enabled, a search of actions will also return inactive actions.
# Possible values are yes and no.

View File

@ -1,48 +0,0 @@
From 9a3f047f90a79e96af54a73090313a670b2685d3 Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Mon, 19 Nov 2012 18:26:16 +0100
Subject: [PATCH] patch: cm-system-monitor-profile-by-default
Squashed commit of the following:
commit 1430096d27ba12566739fadf96302c9a4ce8f98b
Author: Nils Philippsen <nils@redhat.com>
Date: Mon Nov 19 18:25:28 2012 +0100
color mgmt: fix syntax error
commit eb78c3a0cfd7ff796110fcd3cd161ca11005fca5
Author: Richard Hughes <hughsient@gmail.com>
Date: Thu Nov 15 12:12:12 2012 +0100
color mgmt: try to use the system monitor profile by default
---
etc/gimprc | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/etc/gimprc b/etc/gimprc
index 8306571..1511cd6 100644
--- a/etc/gimprc
+++ b/etc/gimprc
@@ -285,14 +285,15 @@
# Defines the color management behavior. This is a parameter list.
#
-# (color-management
+(color-management
# (mode display)
-# (display-profile-from-gdk no)
+ (display-profile-from-gdk yes)
# (display-rendering-intent perceptual)
# (simulation-rendering-intent perceptual)
# (simulation-gamut-check no)
# (out-of-gamut-color (color-rgb 0.501961 0.501961 0.501961))
-# (display-module "CdisplayLcms"))
+# (display-module "CdisplayLcms")
+)
# How to handle embedded color profiles when opening a file. Possible values
# are ask, keep and convert.
--
1.7.11.7

View File

@ -1,13 +0,0 @@
diff -urNp old/plug-ins/common/file-gbr.c new/plug-ins/common/file-gbr.c
--- old/plug-ins/common/file-gbr.c 2018-01-04 12:13:17.553757864 +0100
+++ new/plug-ins/common/file-gbr.c 2018-01-04 12:18:01.723635742 +0100
@@ -443,7 +443,8 @@ load_image (const gchar *filename,
{
gchar *temp = g_new (gchar, bn_size);
- if ((read (fd, temp, bn_size)) < bn_size)
+ if ((read (fd, temp, bn_size)) < bn_size ||
+ temp[bn_size - 1] != '\0')
{
g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
_("Error in GIMP brush file '%s'"),

View File

@ -1,130 +0,0 @@
diff -urNp old/plug-ins/file-fli/fli.c new/plug-ins/file-fli/fli.c
--- old/plug-ins/file-fli/fli.c 2018-01-04 12:19:54.714139464 +0100
+++ new/plug-ins/file-fli/fli.c 2018-01-04 12:34:18.568323629 +0100
@@ -25,6 +25,8 @@
#include "config.h"
+#include <glib/gstdio.h>
+
#include <string.h>
#include <stdio.h>
@@ -461,23 +463,27 @@ void fli_read_brun(FILE *f, s_fli_header
unsigned short yc;
unsigned char *pos;
for (yc=0; yc < fli_header->height; yc++) {
- unsigned short xc, pc, pcnt;
+ unsigned short pc, pcnt;
+ size_t n, xc;
pc=fli_read_char(f);
xc=0;
pos=framebuf+(fli_header->width * yc);
+ n=(size_t)fli_header->width * (fli_header->height-yc);
for (pcnt=pc; pcnt>0; pcnt--) {
unsigned short ps;
ps=fli_read_char(f);
if (ps & 0x80) {
unsigned short len;
- for (len=-(signed char)ps; len>0; len--) {
+ for (len=-(signed char)ps; len>0 && xc<n; len--) {
pos[xc++]=fli_read_char(f);
}
} else {
unsigned char val;
+ size_t len;
+ len=MIN(n-xc,ps);
val=fli_read_char(f);
- memset(&(pos[xc]), val, ps);
- xc+=ps;
+ memset(&(pos[xc]), val, len);
+ xc+=len;
}
}
}
@@ -564,25 +570,34 @@ void fli_read_lc(FILE *f, s_fli_header *
memcpy(framebuf, old_framebuf, fli_header->width * fli_header->height);
firstline = fli_read_short(f);
numline = fli_read_short(f);
+ if (numline > fli_header->height || fli_header->height-numline < firstline)
+ return;
+
for (yc=0; yc < numline; yc++) {
- unsigned short xc, pc, pcnt;
+ unsigned short pc, pcnt;
+ size_t n, xc;
pc=fli_read_char(f);
xc=0;
pos=framebuf+(fli_header->width * (firstline+yc));
+ n=(size_t)fli_header->width * (fli_header->height-firstline-yc);
for (pcnt=pc; pcnt>0; pcnt--) {
unsigned short ps,skip;
skip=fli_read_char(f);
ps=fli_read_char(f);
- xc+=skip;
+ xc+=MIN(n-xc,skip);
if (ps & 0x80) {
unsigned char val;
+ size_t len;
ps=-(signed char)ps;
val=fli_read_char(f);
- memset(&(pos[xc]), val, ps);
- xc+=ps;
+ len=MIN(n-xc,ps);
+ memset(&(pos[xc]), val, len);
+ xc+=len;
} else {
- fread(&(pos[xc]), ps, 1, f);
- xc+=ps;
+ size_t len;
+ len=MIN(n-xc,ps);
+ fread(&(pos[xc]), len, 1, f);
+ xc+=len;
}
}
}
@@ -689,7 +704,8 @@ void fli_read_lc_2(FILE *f, s_fli_header
yc=0;
numline = fli_read_short(f);
for (lc=0; lc < numline; lc++) {
- unsigned short xc, pc, pcnt, lpf, lpn;
+ unsigned short pc, pcnt, lpf, lpn;
+ size_t n, xc;
pc=fli_read_short(f);
lpf=0; lpn=0;
while (pc & 0x8000) {
@@ -700,26 +716,30 @@ void fli_read_lc_2(FILE *f, s_fli_header
}
pc=fli_read_short(f);
}
+ yc=MIN(yc, fli_header->height);
xc=0;
pos=framebuf+(fli_header->width * yc);
+ n=(size_t)fli_header->width * (fli_header->height-yc);
for (pcnt=pc; pcnt>0; pcnt--) {
unsigned short ps,skip;
skip=fli_read_char(f);
ps=fli_read_char(f);
- xc+=skip;
+ xc+=MIN(n-xc,skip);
if (ps & 0x80) {
unsigned char v1,v2;
ps=-(signed char)ps;
v1=fli_read_char(f);
v2=fli_read_char(f);
- while (ps>0) {
+ while (ps>0 && xc+1<n) {
pos[xc++]=v1;
pos[xc++]=v2;
ps--;
}
} else {
- fread(&(pos[xc]), ps, 2, f);
- xc+=ps << 1;
+ size_t len;
+ len=MIN((n-xc)/2,ps);
+ fread(&(pos[xc]), len, 2, f);
+ xc+=len << 1;
}
}
if (lpf) pos[xc]=lpn;

View File

@ -1,25 +0,0 @@
diff -urNp old/plug-ins/common/file-tga.c new/plug-ins/common/file-tga.c
--- old/plug-ins/common/file-tga.c 2018-01-04 12:36:22.333754882 +0100
+++ new/plug-ins/common/file-tga.c 2018-01-04 12:40:46.943070295 +0100
@@ -564,12 +564,17 @@ load_image (const gchar *filename,
}
break;
case TGA_TYPE_COLOR:
- if (info.bpp != 15 && info.bpp != 16 &&
- info.bpp != 24 && info.bpp != 32)
+ if ((info.bpp != 15 && info.bpp != 16 &&
+ info.bpp != 24 && info.bpp != 32) ||
+ ((info.bpp == 15 || info.bpp == 24) &&
+ info.alphaBits != 0) ||
+ (info.bpp == 16 && info.alphaBits != 1 &&
+ info.alphaBits != 0) ||
+ (info.bpp == 32 && info.alphaBits != 8))
{
- g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u)",
+ g_message ("Unhandled sub-format in '%s' (type = %u, bpp = %u, alpha = %u)",
gimp_filename_to_utf8 (filename),
- info.imageType, info.bpp);
+ info.imageType, info.bpp, info.alphaBits);
return -1;
}
break;

View File

@ -1,16 +0,0 @@
diff -urNp old/plug-ins/common/file-psp.c new/plug-ins/common/file-psp.c
--- old/plug-ins/common/file-psp.c 2018-01-04 11:58:46.928253797 +0100
+++ new/plug-ins/common/file-psp.c 2018-01-04 12:03:42.141874067 +0100
@@ -913,6 +913,12 @@ read_creator_block (FILE *f,
g_message ("Error reading creator keyword data");
return -1;
}
+ if (string[length - 1] != '\0')
+ {
+ g_message ("Creator keyword data not nul-terminated");
+ g_free (string);
+ return -1;
+ }
switch (keyword)
{
case PSP_CRTR_FLD_CRT_DATE:

View File

@ -1,13 +0,0 @@
diff -urNp old/app/xcf/xcf.c new/app/xcf/xcf.c
--- old/app/xcf/xcf.c 2017-04-30 23:47:39.000000000 +0200
+++ new/app/xcf/xcf.c 2018-01-04 11:56:31.399888783 +0100
@@ -318,7 +318,8 @@ xcf_load_invoker (GimpProcedure *pr
{
info.file_version = 0;
}
- else if (id[9] == 'v')
+ else if (id[9] == 'v' &&
+ id[13] == '\0')
{
info.file_version = atoi (id + 10);
}

View File

@ -1,19 +0,0 @@
diff -urNp old/plug-ins/common/file-psp.c new/plug-ins/common/file-psp.c
--- old/plug-ins/common/file-psp.c 2018-01-04 12:04:14.636811394 +0100
+++ new/plug-ins/common/file-psp.c 2018-01-04 12:12:41.717877789 +0100
@@ -1777,6 +1777,15 @@ load_image (const gchar *filename,
{
block_start = ftell (f);
+ if (block_start + block_total_len > st.st_size)
+ {
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Could not open '%s' for reading: %s"),
+ gimp_filename_to_utf8 (filename),
+ _("invalid block size"));
+ goto error;
+ }
+
if (id == PSP_IMAGE_BLOCK)
{
if (block_number != 0)

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
diff -up gimp-2.8.6/etc/gimprc.external-help-browser gimp-2.8.6/etc/gimprc
--- gimp-2.8.6/etc/gimprc.external-help-browser 2013-07-02 12:04:11.011774506 +0200
+++ gimp-2.8.6/etc/gimprc 2013-07-02 12:04:25.408824028 +0200
@@ -671,7 +671,7 @@
# Sets the browser used by the help system. Possible values are gimp and
# web-browser.
#
-# (help-browser gimp)
+(help-browser web-browser)
# When enabled, the online user manual will be used by the help system.
# Otherwise the locally installed copy is used. Possible values are yes and

373
gimp.spec
View File

@ -1,54 +1,40 @@
# Set this to 0 in stable, 1 in (SONAME-wise) unstable releases
%global unstable 0
#### options:
# Use the following --with/--without <option> switches to control how the
# package will be built:
#
# lcms: lcms support
# lcms: lcms support
%bcond_without lcms
# python: python support
%bcond_without python
# mp: multi processor support
# mp: multi processor support
%bcond_without mp
# static: build static libraries
# static: build static libraries
%bcond_with static
# print: build the print plugin (if you don't build it externally)
%bcond_without print
# gutenprint: require gutenprint-plugin (instead of gimp-print-plugin) if
# internal print plugin isn't built
%bcond_without gutenprint
# convenience: install convenience symlinks
%bcond_without convenience
# gudev: use gudev to discover special input devices
# use gudev from Fedora 15/RHEL7 on
%bcond_without gudev
# aalib: build with AAlib (ASCII art gfx library)
# default_binary: install unversioned binary
%if ! %unstable
%bcond_without default_binary
%else
%bcond_with default_binary
%endif
# aalib: build with AAlib (ASCII art gfx library)
%if 0%{?rhel}
# don't use aalib on RHEL
%bcond_with aalib
%else
%bcond_without aalib
%endif
# hardening: use various compiler/linker flags to harden binaries against
# certain types of exploits
%bcond_without hardening
# poppler: use from version 0.20 on which is GPLv2/GPLv3 dual-licensed
# use from Fedora 18/RHEL
%bcond_without poppler
# helpbrowser build webkit-based help browser
%if 0%{?rhel} || 0%{?fedora} >= 26
# don't build webkit-based help browser by default
%bcond_with helpbrowser
%else
%bcond_without helpbrowser
%endif
# hardcode python interpreter in python plug-ins
%bcond_without hardcoded_python
# webp support
%bcond_without webp
# skip tests known to be problematic in a specific version
#global skip_checks_version X.Y.Z
#global skip_checks test1 test2 test3
# Set this to 0 in stable, 1 in (SONAME-wise) unstable releases
%global unstable 0
# Set this in pre-releases (e.g. release candidates)
#global prerel RC1
@ -74,8 +60,8 @@
Summary: GNU Image Manipulation Program
Name: gimp
Epoch: 2
Version: 2.8.22
Release: %{?prerelprefix}6%{dotprerel}%{dotgitrev}%{?dist}
Version: 2.10.0
Release: %{?prerelprefix}1%{dotprerel}%{dotgitrev}%{?dist}
# Compute some version related macros.
# Ugly, need to get quoting percent signs straight.
@ -94,96 +80,105 @@ Release: %{?prerelprefix}6%{dotprerel}%{dotgitrev}%{?dist}
%global lib_micro 0
%endif # unstable
%if %{with poppler}
%if %unstable
%global os_bindir %{_bindir}
%global os_datadir %{_datadir}
%undefine _prefix
%undefine _sysconfdir
%global _prefix /opt/gimp-%{major}.%{minor}
%global _sysconfdir %{_prefix}/etc
%endif
# poppler is "GPLv2 or GPLv3" which makes plug-ins linking to libpoppler such
# as file-pdf-load GPLv3-only
License: GPLv3+ and GPLv3
%else
License: GPLv3+
%endif
URL: http://www.gimp.org/
%if %{with aalib}
BuildRequires: aalib-devel
%endif
BuildRequires: alsa-lib-devel >= 1.0.0
BuildRequires: atk-devel >= 2.2.0
BuildRequires: babl-devel >= 0.1.10
BuildRequires: babl-devel >= 0.1.46
BuildRequires: bzip2-devel
BuildRequires: cairo-devel >= 1.10.2
BuildRequires: curl-devel >= 7.15.1
BuildRequires: dbus-glib-devel >= 0.70
BuildRequires: fontconfig-devel >= 2.2.0
BuildRequires: cairo-devel >= 1.12.2
BuildRequires: fontconfig-devel >= 2.12.4
BuildRequires: freetype-devel >= 2.1.7
BuildRequires: gcc
BuildRequires: gdk-pixbuf2-devel >= 2.24.1
BuildRequires: gegl-devel >= 0.2.0
%if 0%{?fedora} > 27 || 0%{?rhel} >= 8
BuildRequires: gdk-pixbuf2-devel >= 2.30.8
BuildRequires: gegl
BuildRequires: gegl04-devel >= 0.4.0
BuildRequires: libgs-devel
%else
BuildRequires: ghostscript-devel
%endif
BuildRequires: glib2-devel >= 2.30.2
BuildRequires: glib2-devel >= 2.54.2
BuildRequires: gtk2-devel >= 2.24.10
BuildRequires: gtk-doc >= 1.0
BuildRequires: harfbuzz-devel >= 0.9.19
BuildRequires: iso-codes-devel
BuildRequires: jasper-devel
%if %{with lcms}
BuildRequires: lcms2-devel >= 2.2
%endif
BuildRequires: lcms2-devel >= 2.8
BuildRequires: libappstream-glib
BuildRequires: libexif-devel >= 0.6.15
%if %{with gudev}
BuildRequires: libgexiv2-devel >= 0.10.6
BuildRequires: libgudev1-devel >= 167
%else
BuildRequires: hal-devel >= 0.5.7
%endif
BuildRequires: libjpeg-devel
BuildRequires: libmng-devel
BuildRequires: libpng-devel >= 1.2.37
BuildRequires: librsvg2-devel >= 2.36.0
BuildRequires: libpng-devel >= 1.6.25
BuildRequires: librsvg2-devel >= 2.40.6
BuildRequires: libtiff-devel
BuildRequires: libwmf-devel >= 0.2.8
BuildRequires: pango-devel >= 1.29.4
%if %{with poppler}
BuildRequires: poppler-glib-devel >= 0.20.0
%if %{with webp}
BuildRequires: libwebp-devel >= 0.6.0
%endif
BuildRequires: python2-devel
BuildRequires: libwmf-devel >= 0.2.8
BuildRequires: libmypaint-devel >= 1.3.0
BuildRequires: mypaint-brushes-devel >= 1.3.0
BuildRequires: OpenEXR-devel >= 1.6.1
BuildRequires: openjpeg2-devel >= 2.1.0
BuildRequires: pango-devel >= 1.29.4
BuildRequires: perl >= 5.10.0
BuildRequires: poppler-glib-devel >= 0.44.0
BuildRequires: poppler-data-devel >= 0.4.7
BuildRequires: pycairo-devel >= 1.0.2
BuildRequires: pygtk2-devel >= 2.10.4
BuildRequires: pygobject2-devel
BuildRequires: python2-devel >= 2.5.0
%if %{with helpbrowser}
BuildRequires: webkitgtk-devel >= 1.6.1
%endif
BuildRequires: xz-devel >= 5.0.0
BuildRequires: zlib-devel
BuildRequires: libX11-devel
BuildRequires: libXmu-devel
BuildRequires: libXpm-devel
BuildRequires: chrpath >= 0.13-5
BuildRequires: intltool
BuildRequires: gettext
BuildRequires: intltool >= 0.40.1
BuildRequires: gettext >= 0.19
BuildRequires: pkgconfig
Requires: babl%{?_isa} >= 0.1.10
Requires: gegl%{?_isa} >= 0.2.0
Requires: glib2 >= 2.28.8
Requires: gtk2 >= 2.24.7
Requires: pango >= 1.29.4
%if %unstable
BuildRequires: desktop-file-utils
BuildRequires: ImageMagick
%endif
Requires: babl%{?_isa} >= 0.1.46
Requires: gegl04%{?_isa} >= 0.4.0
Requires: fontconfig >= 2.12.4
Requires: freetype >= 2.1.7
Requires: fontconfig >= 2.2.0
%if ! %{with print}
%if %{with gutenprint}
Requires: gutenprint-plugin
%else
Requires: gimp-print-plugin
%endif
%endif
Requires: glib2 >= 2.54.0
Requires: gtk2 >= 2.24.10
Requires: hicolor-icon-theme
Recommends: mypaint-brushes
Requires: pango >= 1.29.4
Requires: pygtk2 >= 2.10.4
Requires: xdg-utils
Requires: gimp-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
%if ! %{with helpbrowser}
Obsoletes: gimp-help-browser < %{?epoch:%{epoch}:}%{version}-%{release}
Conflicts: gimp-help-browser < %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
%if %{with helpbrowser}
Recommends: %{name}-help-browser = %{epoch}:%{version}-%{release}
%else
Obsoletes: %{name}-help-browser < %{epoch}:%{version}-%{release}
Conflicts: %{name}-help-browser < %{epoch}:%{version}-%{release}
%endif
%if ! %unstable
Obsoletes: %{name}-unstable < %{epoch}:%{major}.%{minor}
Conflicts: %{name}-unstable < %{epoch}:%{major}.%{minor}
%endif
Source0: http://download.gimp.org/pub/gimp/v%{binver}/gimp-%{version}%{dashprerel}.tar.bz2
@ -194,26 +189,15 @@ Patch0: gimp-%{version}%{dashprerel}-git%{gitrev}.patch.bz2
# Try using the system monitor profile for color management by default.
# Fedora specific.
Patch1: gimp-2.8.2-cm-system-monitor-profile-by-default.patch
#Fix screenshot feature in wayland
Patch2: gimp-2.8.22-fix-screenshot-in-wayland.patch
#Reported CVE
Patch3: gimp-2.8.22-CVE-2017-17784.patch
Patch4: gimp-2.8.22-CVE-2017-17785.patch
Patch5: gimp-2.8.22-CVE-2017-17786.patch
Patch6: gimp-2.8.22-CVE-2017-17787.patch
Patch7: gimp-2.8.22-CVE-2017-17788.patch
Patch8: gimp-2.8.22-CVE-2017-17789.patch
Patch1: gimp-2.10.0-cm-system-monitor-profile-by-default.patch
# use external help browser directly if help browser plug-in is not built
Patch100: gimp-2.8.6-external-help-browser.patch
Patch100: gimp-2.10.0-external-help-browser.patch
%description
GIMP (GNU Image Manipulation Program) is a powerful image composition and
editing program, which can be extremely useful for creating logos and other
graphics for webpages. GIMP has many of the tools and filters you would expect
graphics for web pages. GIMP has many of the tools and filters you would expect
to find in similar commercial offerings, and some interesting extras as well.
GIMP provides a large image manipulation toolbox, including channel operations
and layers, effects, sub-pixel imaging and anti-aliasing, and conversions, all
@ -222,66 +206,72 @@ with multi-level undo.
%package libs
Summary: GIMP libraries
License: LGPLv3+
%if ! %unstable
Obsoletes: %{name}-unstable-libs < %{epoch}:%{major}.%{minor}
Conflicts: %{name}-unstable-libs < %{epoch}:%{major}.%{minor}
%endif
%description libs
The gimp-libs package contains shared libraries needed for the GNU Image
The %{name}-libs package contains shared libraries needed for the GNU Image
Manipulation Program (GIMP).
%package devel
Summary: GIMP plugin and extension development kit
License: LGPLv3+
Requires: gimp-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: gimp-devel-tools = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-devel-tools = %{epoch}:%{version}-%{release}
Requires: gtk2-devel
Requires: glib2-devel
Requires: pkgconfig
Requires: rpm >= 4.11.0
%if ! %unstable
Obsoletes: %{name}-unstable-devel < %{epoch}:%{major}.%{minor}
Conflicts: %{name}-unstable-devel < %{epoch}:%{major}.%{minor}
%endif
%description devel
The gimp-devel package contains the static libraries and header files
The %{name}-devel package contains the static libraries and header files
for writing GNU Image Manipulation Program (GIMP) plug-ins and
extensions.
%package devel-tools
Summary: GIMP plugin and extension development tools
License: LGPLv3+
Requires: gimp-devel = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}-devel = %{epoch}:%{version}-%{release}
%if ! %unstable
Obsoletes: %{name}-unstable-devel-tools < %{epoch}:%{major}.%{minor}
Conflicts: %{name}-unstable-devel-tools < %{epoch}:%{major}.%{minor}
%endif
%description devel-tools
The gimp-devel-tools package contains gimptool, a helper program to build GNU
Image Manipulation Program (GIMP) plug-ins and extensions.
The %{name}-devel-tools package contains gimptool, a helper program to
build GNU Image Manipulation Program (GIMP) plug-ins and extensions.
%if %{with helpbrowser}
%package help-browser
Summary: GIMP help browser plug-in
License: GPLv3+
Requires: gimp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%if ! %unstable
Obsoletes: %{name}-unstable-help-browser < %{epoch}:%{major}.%{minor}
Conflicts: %{name}-unstable-help-browser < %{epoch}:%{major}.%{minor}
%endif
%description help-browser
The gimp-help-browser package contains a lightweight help browser plugin for
The %{name}-help-browser package contains a lightweight help browser plugin for
viewing GIMP online help.
%endif
%prep
cat << EOF
--- 8< --- Build options ---------------------------------------------------
LCMS support: %{with lcms}
Python support: %{with python}
MP support: %{with mp}
build static libs: %{with static}
build internal print plugin: %{with print}
include convenience symlinks: %{with convenience}
build the print plugin: %{with print}
use gudev: %{with gudev}
%if ! %{with print}
prefer gutenprint over (external) gimp-print plugin:
%{with gutenprint}
%endif
build ASCII art plugin %{with aalib}
harden binaries: %{with hardening}
use poppler: %{with poppler}
build help browser: %{with helpbrowser}
hardcode python interpreter %{with hardcoded_python}
LCMS support: %{with lcms}
MP support: %{with mp}
build static libs: %{with static}
install default binary: %{with default_binary}
build ASCII art plugin %{with aalib}
build help browser: %{with helpbrowser}
hardcode python interpreter: %{with hardcoded_python}
--- >8 ---------------------------------------------------------------------
EOF
@ -292,36 +282,20 @@ EOF
%endif
%patch1 -p1 -b .cm-system-monitor-profile-by-default
%patch2 -p1 -b .fix-screenshot-in-wayland
%patch3 -p1 -b .CVE-17784
%patch4 -p1 -b .CVE-17785
%patch5 -p1 -b .CVE-17786
%patch6 -p1 -b .CVE-17787
%patch7 -p1 -b .CVE-17788
%patch8 -p1 -b .CVE-17789
%if ! %{with helpbrowser}
%patch100 -p1 -b .external-help-browser
%endif
%build
#allow python2 package for RHEL-8
# allow python2 package for RHEL-8
export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
%if %{with hardening}
# Use hardening compiler/linker flags because gimp is likely to deal with files
# coming from untrusted sources
# used from Fedora 16/RHEL7
%global _hardened_build 1
%endif
%configure \
CFLAGS="$CFLAGS -fno-strict-aliasing" \
CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" \
%if %{with python}
--enable-python \
%else
--disable-python \
%endif
%if %{with mp}
--enable-mp \
%else
@ -332,11 +306,7 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
%else
--disable-static \
%endif
%if %{with print}
--with-print \
%else
--without-print \
%endif
%if %{with lcms}
--with-lcms=lcms2 \
%else
@ -348,30 +318,33 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
%else
--without-aa \
%endif
%if %{with gudev}
--with-gudev --without-hal \
%else
--with-hal --without-gudev \
%endif
%ifos linux
--with-linux-input \
%endif
%if use_poppler
--with-poppler \
%else
--without-poppler \
%endif
%if %{with helpbrowser}
--with-webkit \
%else
--without-webkit \
%endif
%if %{with webp}
--with-webp \
%else
--without-webp \
%endif
%if %{with default_binary}
--enable-default-binary=yes \
%else
--enable-default-binary=no \
%endif
--with-libtiff --with-libjpeg --with-libpng --with-libmng --with-libjasper \
--with-libexif --with-librsvg --with-libxpm --with-gvfs --with-alsa \
--with-dbus --with-script-fu --with-cairo-pdf
--with-dbus --with-script-fu --with-cairo-pdf --without-appdata-test
make %{?_smp_mflags}
%if ! %{unstable}
# Generate RPM macros from pkg-config data:
# %%_gimp_datadir -- toplevel directory for brushes, gradients, scripts, ...
# %%_gimp_libdir -- toplevel directory for modules, plug-ins, ...
@ -415,20 +388,13 @@ cat << EOF > macros.gimp
%%_gimp_scriptdir ${_gimp_scriptdir}
%%_gimp_plugindir ${_gimp_plugindir}
EOF
%endif
%install
make DESTDIR=%{buildroot} install
%if ! %unstable
install -D -m0644 macros.gimp %{buildroot}%{_rpmconfigdir}/macros.d/macros.gimp
# Update the screenshot shown in the software center
#
# NOTE: It would be *awesome* if this file was pushed upstream.
#
# See http://people.freedesktop.org/~hughsient/appdata/#screenshots for more details.
#
appstream-util replace-screenshots %{buildroot}%{_datadir}/appdata/gimp.appdata.xml \
https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/gimp/a.png \
https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/gimp/b.png
%endif
# remove rpaths
find %buildroot -type f -print0 | xargs -0 -L 20 chrpath --delete --keepgoing 2>/dev/null || :
@ -470,8 +436,8 @@ cat gimp%{gettext_version}.lang gimp%{gettext_version}-std-plug-ins.lang gimp%{g
#
cat gimp-plugin-files gimp-all.lang > gimp.files
%if %{with convenience}
# install convenience symlinks
%if %{with default_binary}
# install default binary symlinks
ln -snf gimp-%{binver} %{buildroot}%{_bindir}/gimp
ln -snf gimp-%{binver}.1 %{buildroot}%{_mandir}/man1/gimp.1
ln -snf gimp-console-%{binver} %{buildroot}/%{_bindir}/gimp-console
@ -491,6 +457,50 @@ grep -E -rl '^#!\s*%{_bindir}/env\s+python' --include=\*.py "%{buildroot}" |
done
%endif
%if %unstable
# install stuff in system locations
# script wrappers for executables
mkdir -p %{buildroot}%{os_bindir}
pushd %{buildroot}%{_bindir}
for exe in *-%{major}.%{minor}; do
cat << EOF > "%{buildroot}%{os_bindir}/$exe"
#!/bin/sh
export LD_LIBRARY_PATH=%{_libdir}
exec %{_bindir}/$exe "\$@"
EOF
chmod 755 %{buildroot}%{os_bindir}/"$exe"
done
popd
# desktop file -- mention version/unstable, use custom icon
desktop-file-install --dir=%{buildroot}%{os_datadir}/applications \
--set-name="GIMP %major.%minor (unstable)" \
--set-icon="gimp-%major.%minor" \
%{buildroot}%{_datadir}/applications/gimp.desktop
mv -f %{buildroot}%{os_datadir}/applications/gimp.desktop \
%{buildroot}%{os_datadir}/applications/gimp-%major.%minor.desktop
# icons -- overlay major.minor version
pushd %{buildroot}%{_datadir}/icons/hicolor
for srcicon in */apps/gimp.png; do
geo=${srcicon%%%%/*}
dim=${geo%%x*}
ps=$((5+$dim/6))
sw=$(($dim/50+1))
o=$(($dim/26+1))
destdir="%{buildroot}%{os_datadir}/icons/hicolor/$geo/apps"
desticon="$destdir/gimp-%{major}.%{minor}.png"
mkdir -p "$destdir"
convert "$srcicon" \
-gravity northeast -pointsize $ps -strokewidth $sw \
-stroke black -annotate +$o+$(($o+$ps)) %{major}.%{minor} \
-stroke none -fill white -annotate +$o+$(($o+$ps)) %{major}.%{minor} \
"$desticon"
done
popd
%endif
%check
# skip tests known to be problematic in a specific version
%if "%{version}" == "%{?skip_checks_version}"
@ -505,7 +515,7 @@ EOF
done
popd
%endif
make check
make check %{?_smp_mflags}
%ldconfig_scriptlets libs
@ -514,11 +524,13 @@ make check
%doc AUTHORS ChangeLog NEWS README
%doc docs/*.xcf*
%{_datadir}/applications/*.desktop
%{_datadir}/appdata/*.appdata.xml
%{_datadir}/metainfo/*.appdata.xml
%{_datadir}/metainfo/*.metainfo.xml
%dir %{_datadir}/gimp
%dir %{_datadir}/gimp/%{lib_api_version}
%{_datadir}/gimp/%{lib_api_version}/dynamics/
%{_datadir}/gimp/%{lib_api_version}/file-raw/
%{_datadir}/gimp/%{lib_api_version}/menus/
%{_datadir}/gimp/%{lib_api_version}/tags/
%{_datadir}/gimp/%{lib_api_version}/tips/
@ -530,8 +542,10 @@ make check
%dir %{_libdir}/gimp/%{lib_api_version}/interpreters
%dir %{_libdir}/gimp/%{lib_api_version}/modules
%dir %{_libdir}/gimp/%{lib_api_version}/plug-ins
%exclude %{_libdir}/gimp/%{lib_api_version}/plug-ins/help-browser
%dir %{_libdir}/gimp/%{lib_api_version}/python
%if %{with helpbrowser}
%exclude %{_libdir}/gimp/%{lib_api_version}/plug-ins/help-browser
%endif
%{_datadir}/gimp/%{lib_api_version}/brushes/
%{_datadir}/gimp/%{lib_api_version}/fractalexplorer/
@ -539,6 +553,7 @@ make check
%{_datadir}/gimp/%{lib_api_version}/gflare/
%{_datadir}/gimp/%{lib_api_version}/gimpressionist/
%{_datadir}/gimp/%{lib_api_version}/gradients/
%{_datadir}/gimp/%{lib_api_version}/icons/
%{_datadir}/gimp/%{lib_api_version}/images/
%{_datadir}/gimp/%{lib_api_version}/palettes/
%{_datadir}/gimp/%{lib_api_version}/patterns/
@ -558,22 +573,29 @@ make check
%{_bindir}/gimp-%{binver}
%{_bindir}/gimp-console-%{binver}
%if %{with convenience}
%if %{with default_binary}
%{_bindir}/gimp
%{_bindir}/gimp-console
%endif
%{_libexecdir}/gimp-debug-tool-%{lib_api_version}
%{_mandir}/man1/gimp-%{binver}.1*
%{_mandir}/man1/gimp-console-%{binver}.1*
%{_mandir}/man5/gimprc-%{binver}.5*
%if %{with convenience}
%if %{with default_binary}
%{_mandir}/man1/gimp.1*
%{_mandir}/man1/gimp-console.1*
%{_mandir}/man5/gimprc.5*
%endif
%{_datadir}/icons/hicolor/*/apps/gimp.png
%if %unstable
%{os_bindir}/*-%{major}.%{minor}
%{os_datadir}/applications/gimp-%{major}.%{minor}.desktop
%{os_datadir}/icons/hicolor/*/apps/gimp-%{major}.%{minor}.png
%endif
%files libs
%license COPYING
@ -616,13 +638,15 @@ make check
%{_datadir}/aclocal/*.m4
%{_includedir}/gimp-%{lib_api_version}
%{_libdir}/pkgconfig/*
%if ! %unstable
%{_rpmconfigdir}/macros.d/macros.gimp
%endif
%files devel-tools
%{_bindir}/gimptool-%{lib_api_version}
%{_mandir}/man1/gimptool-%{lib_api_version}.1*
%if %{with convenience}
%if %{with default_binary}
%{_bindir}/gimptool
%{_mandir}/man1/gimptool.1*
%endif
@ -633,6 +657,15 @@ make check
%endif
%changelog
* Sat Apr 28 2018 Nils Philippsen <nils@tiptoe.de> - 2:2.10.0-1
- version 2.10.0
- update dependency versions
- build with OpenEXR support
- build with webp support
- explicitly require perl for building
- remove obsolete build deps: gnome-keyring-devel, libgnomeui-devel
- don't run appdata test which requires network access
* Fri Mar 09 2018 Josef Ridky <jridky@redhat.com> - 2:2.8.22-6
- remove unused gnome-keyring and libgnomeui-devel requirements

View File

@ -1 +1 @@
SHA512 (gimp-2.8.22.tar.bz2) = 84a78d428282538b606b3cd1ff571e52c3d828fceade171b2012bc1cdcb85919fc7734e7e6c45ed3a8683657fa580412b32c1b511b8a512172a8c1df930493e6
SHA512 (gimp-2.10.0.tar.bz2) = a87cf5b3604addcf9d5e50f3d9d1acbbce8ed9e2a025e19bda37ce941acb471fa5e0fe8f71a74671581fce47aaa36a11b94dd96621465168630b97209d0d02fa