version 2.7.3
- version 2.7.3 (unstable, see http://developer.gimp.org/NEWS for details) - change license to GPLv3+/LGPLv3+ - update required versions of dependencies - build with cairo-pdf, jasper, require jasper-devel for building - build without poppler as that currently is GPLv2 only, thus incompatible with LGPLv3 gimp libraries (use postscript plugin for PDF import meanwhile), future poppler versions will be "GPLv2 or GPLv3", i.e. compatible again - clean up configure options, compiler/linker flags - suppress abrt bug reporting for unstable releases - remove all patches (obsolete, woo!) - add new files, remove files that are not installed any longer - use %%global instead of %%define - replace hal, minorver, microver, interfacever, gimp_lang_ver macros with gudev, lib_minor, lib_micro, lib_api_version, gettext_version macros - compute more version macros (ugly, but convenient) - use gudev from Fedora 15 on - use convenience macro for hardening binaries from F-16 on
This commit is contained in:
parent
27bebf13f8
commit
120b9263d8
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@ gimp-2.6.10-1-autoreconf.patch.bz2
|
||||
/gimp-2.6.11-1-autoreconf.patch.bz2
|
||||
/gimp-2.6.11-10-autoreconf.patch.bz2
|
||||
/gimp-2.6.11-11-autoreconf.patch.bz2
|
||||
/gimp-2.7.3.tar.bz2
|
||||
|
@ -1,279 +0,0 @@
|
||||
diff -up gimp-2.6.10/configure.in.script-fu-ipv6 gimp-2.6.10/configure.in
|
||||
--- gimp-2.6.10/configure.in.script-fu-ipv6 2010-07-03 00:51:55.000000000 +0200
|
||||
+++ gimp-2.6.10/configure.in 2010-07-09 13:20:33.499983496 +0200
|
||||
@@ -602,14 +602,15 @@ AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT,
|
||||
AC_DEFINE(HAVE_RINT)])])
|
||||
|
||||
|
||||
-######################################################
|
||||
-# Check for extra libs needed for inet_ntoa and socket
|
||||
-######################################################
|
||||
+#####################################################################
|
||||
+# Check for extra libs needed for getaddrinfo, getnameinfo and socket
|
||||
+#####################################################################
|
||||
|
||||
gimp_save_LIBS=$LIBS
|
||||
LIBS=""
|
||||
|
||||
-AC_CHECK_FUNCS(inet_ntoa, , AC_CHECK_LIB(nsl, inet_ntoa))
|
||||
+AC_CHECK_FUNCS(getaddrinfo, , AC_CHECK_LIB(nsl, getaddrinfo))
|
||||
+AC_CHECK_FUNCS(getnameinfo, , AC_CHECK_LIB(nsl, getnameinfo))
|
||||
AC_CHECK_LIB(socket, socket)
|
||||
|
||||
SOCKET_LIBS="$LIBS"
|
||||
diff -up gimp-2.6.10/plug-ins/script-fu/script-fu-server.c.script-fu-ipv6 gimp-2.6.10/plug-ins/script-fu/script-fu-server.c
|
||||
--- gimp-2.6.10/plug-ins/script-fu/script-fu-server.c.script-fu-ipv6 2010-07-03 00:51:59.000000000 +0200
|
||||
+++ gimp-2.6.10/plug-ins/script-fu/script-fu-server.c 2010-07-09 13:20:33.500982656 +0200
|
||||
@@ -108,7 +108,7 @@
|
||||
#define RSP_LEN_L_BYTE 3
|
||||
|
||||
/*
|
||||
- * Local Structures
|
||||
+ * Local Types
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
@@ -129,6 +129,15 @@ typedef struct
|
||||
gboolean run;
|
||||
} ServerInterface;
|
||||
|
||||
+typedef union
|
||||
+{
|
||||
+ sa_family_t family;
|
||||
+ struct sockaddr_storage ss;
|
||||
+ struct sockaddr sa;
|
||||
+ struct sockaddr_in sa_in;
|
||||
+ struct sockaddr_in6 sa_in6;
|
||||
+} sa_union;
|
||||
+
|
||||
/*
|
||||
* Local Functions
|
||||
*/
|
||||
@@ -137,7 +146,8 @@ static void server_start (gin
|
||||
const gchar *logfile);
|
||||
static gboolean execute_command (SFCommand *cmd);
|
||||
static gint read_from_client (gint filedes);
|
||||
-static gint make_socket (guint port);
|
||||
+static gint make_socket (const struct addrinfo
|
||||
+ *ai);
|
||||
static void server_log (const gchar *format,
|
||||
...) G_GNUC_PRINTF (1, 2);
|
||||
static void server_quit (void);
|
||||
@@ -151,7 +161,10 @@ static void print_socket_api_error
|
||||
/*
|
||||
* Local variables
|
||||
*/
|
||||
-static gint server_sock;
|
||||
+static gint server_socks[2],
|
||||
+ server_socks_used = 0;
|
||||
+static const gint server_socks_len = sizeof (server_socks) /
|
||||
+ sizeof (server_socks[0]);
|
||||
static GList *command_queue = NULL;
|
||||
static gint queue_length = 0;
|
||||
static gint request_no = 0;
|
||||
@@ -285,6 +298,7 @@ script_fu_server_listen (gint timeout)
|
||||
struct timeval tv;
|
||||
struct timeval *tvp = NULL;
|
||||
SELECT_MASK fds;
|
||||
+ gint sockno;
|
||||
|
||||
/* Set time struct */
|
||||
if (timeout)
|
||||
@@ -295,7 +309,10 @@ script_fu_server_listen (gint timeout)
|
||||
}
|
||||
|
||||
FD_ZERO (&fds);
|
||||
- FD_SET (server_sock, &fds);
|
||||
+ for (sockno = 0; sockno < server_socks_used; sockno++)
|
||||
+ {
|
||||
+ FD_SET (server_socks[sockno], &fds);
|
||||
+ }
|
||||
g_hash_table_foreach (clients, script_fu_server_add_fd, &fds);
|
||||
|
||||
/* Block until input arrives on one or more active sockets
|
||||
@@ -307,15 +324,23 @@ script_fu_server_listen (gint timeout)
|
||||
return;
|
||||
}
|
||||
|
||||
- /* Service the server socket if it has input pending. */
|
||||
- if (FD_ISSET (server_sock, &fds))
|
||||
+ /* Service the server sockets if any has input pending. */
|
||||
+ for (sockno = 0; sockno < server_socks_used; sockno++)
|
||||
{
|
||||
- struct sockaddr_in clientname;
|
||||
+ sa_union client;
|
||||
+ gchar clientname[NI_MAXHOST];
|
||||
|
||||
/* Connection request on original socket. */
|
||||
- guint size = sizeof (clientname);
|
||||
- gint new = accept (server_sock,
|
||||
- (struct sockaddr *) &clientname, &size);
|
||||
+ guint size = sizeof (client);
|
||||
+ gint new;
|
||||
+ guint portno;
|
||||
+
|
||||
+ if (! FD_ISSET (server_socks[sockno], &fds))
|
||||
+ {
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ new = accept (server_socks[sockno], &(client.sa), &size);
|
||||
|
||||
if (new < 0)
|
||||
{
|
||||
@@ -324,13 +349,32 @@ script_fu_server_listen (gint timeout)
|
||||
}
|
||||
|
||||
/* Associate the client address with the socket */
|
||||
- g_hash_table_insert (clients,
|
||||
- GINT_TO_POINTER (new),
|
||||
- g_strdup (inet_ntoa (clientname.sin_addr)));
|
||||
+
|
||||
+ /* If all else fails ... */
|
||||
+ strncpy (clientname, "(error during host address lookup)", NI_MAXHOST-1);
|
||||
+
|
||||
+ /* Lookup address */
|
||||
+ (void) getnameinfo (&(client.sa), size, clientname, sizeof (clientname),
|
||||
+ NULL, 0, NI_NUMERICHOST);
|
||||
+
|
||||
+ g_hash_table_insert (clients, GINT_TO_POINTER (new),
|
||||
+ g_strdup (clientname));
|
||||
+
|
||||
+ /* Determine port number */
|
||||
+ switch (client.family)
|
||||
+ {
|
||||
+ case AF_INET:
|
||||
+ portno = (guint) g_ntohs (client.sa_in.sin_port);
|
||||
+ break;
|
||||
+ case AF_INET6:
|
||||
+ portno = (guint) g_ntohs (client.sa_in6.sin6_port);
|
||||
+ break;
|
||||
+ default:
|
||||
+ portno = 0;
|
||||
+ }
|
||||
|
||||
server_log ("Server: connect from host %s, port %d.\n",
|
||||
- inet_ntoa (clientname.sin_addr),
|
||||
- (unsigned int) ntohs (clientname.sin_port));
|
||||
+ clientname, portno);
|
||||
}
|
||||
|
||||
/* Service the client sockets. */
|
||||
@@ -392,18 +436,46 @@ static void
|
||||
server_start (gint port,
|
||||
const gchar *logfile)
|
||||
{
|
||||
- const gchar *progress;
|
||||
-
|
||||
- /* First of all, create the socket and set it up to accept connections. */
|
||||
- /* This may fail if there's a server running on this port already. */
|
||||
- server_sock = make_socket (port);
|
||||
+ struct addrinfo *ai,
|
||||
+ *ai_curr;
|
||||
+ struct addrinfo hints;
|
||||
+ gint e,
|
||||
+ sockno;
|
||||
+ gchar *port_s;
|
||||
+
|
||||
+ const gchar *progress;
|
||||
+
|
||||
+ memset (&hints, 0, sizeof (hints));
|
||||
+ hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
|
||||
+ hints.ai_socktype = SOCK_STREAM;
|
||||
+
|
||||
+ port_s = g_strdup_printf ("%d", port);
|
||||
+ e = getaddrinfo (NULL, port_s, &hints, &ai);
|
||||
+ g_free (port_s);
|
||||
|
||||
- if (listen (server_sock, 5) < 0)
|
||||
+ if (e != 0)
|
||||
{
|
||||
- print_socket_api_error ("listen");
|
||||
+ g_printerr ("getaddrinfo: %s", gai_strerror (e));
|
||||
return;
|
||||
}
|
||||
|
||||
+ for (ai_curr = ai, sockno = 0;
|
||||
+ ai_curr != NULL && sockno < server_socks_len;
|
||||
+ ai_curr = ai_curr->ai_next, sockno++)
|
||||
+ {
|
||||
+ /* Create the socket and set it up to accept connections. */
|
||||
+ /* This may fail if there's a server running on this port already. */
|
||||
+ server_socks[sockno] = make_socket (ai_curr);
|
||||
+
|
||||
+ if (listen (server_socks[sockno], 5) < 0)
|
||||
+ {
|
||||
+ print_socket_api_error ("listen");
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ server_socks_used = sockno;
|
||||
+
|
||||
/* Setup up the server log file */
|
||||
if (logfile && *logfile)
|
||||
server_log_file = g_fopen (logfile, "a");
|
||||
@@ -592,11 +664,10 @@ read_from_client (gint filedes)
|
||||
}
|
||||
|
||||
static gint
|
||||
-make_socket (guint port)
|
||||
+make_socket (const struct addrinfo *ai)
|
||||
{
|
||||
- struct sockaddr_in name;
|
||||
- gint sock;
|
||||
- gint v = 1;
|
||||
+ gint sock;
|
||||
+ gint v = 1;
|
||||
|
||||
/* Win32 needs the winsock library initialized. */
|
||||
#ifdef G_OS_WIN32
|
||||
@@ -620,7 +691,7 @@ make_socket (guint port)
|
||||
#endif
|
||||
|
||||
/* Create the socket. */
|
||||
- sock = socket (PF_INET, SOCK_STREAM, 0);
|
||||
+ sock = socket (ai->ai_family, ai->ai_socktype, ai->ai_protocol);
|
||||
if (sock < 0)
|
||||
{
|
||||
print_socket_api_error ("socket");
|
||||
@@ -629,12 +700,20 @@ make_socket (guint port)
|
||||
|
||||
setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, &v, sizeof(v));
|
||||
|
||||
- /* Give the socket a name. */
|
||||
- name.sin_family = AF_INET;
|
||||
- name.sin_port = htons (port);
|
||||
- name.sin_addr.s_addr = htonl (INADDR_ANY);
|
||||
+#ifdef IPV6_V6ONLY
|
||||
+ /* Only listen on IPv6 addresses, otherwise bind() will fail. */
|
||||
+ if (ai->ai_family == AF_INET6)
|
||||
+ {
|
||||
+ v = 1;
|
||||
+ if (setsockopt (sock, IPPROTO_IPV6, IPV6_V6ONLY, &v, sizeof(v)) < 0)
|
||||
+ {
|
||||
+ print_socket_api_error ("setsockopt");
|
||||
+ gimp_quit();
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
- if (bind (sock, (struct sockaddr *) &name, sizeof (name)) < 0)
|
||||
+ if (bind (sock, ai->ai_addr, ai->ai_addrlen) < 0)
|
||||
{
|
||||
print_socket_api_error ("bind");
|
||||
gimp_quit ();
|
||||
@@ -672,7 +751,12 @@ script_fu_server_shutdown_fd (gpointer k
|
||||
static void
|
||||
server_quit (void)
|
||||
{
|
||||
- CLOSESOCKET (server_sock);
|
||||
+ gint sockno;
|
||||
+
|
||||
+ for (sockno = 0; sockno < server_socks_used; sockno++)
|
||||
+ {
|
||||
+ CLOSESOCKET (server_socks[sockno]);
|
||||
+ }
|
||||
|
||||
if (clients)
|
||||
{
|
@ -1,143 +0,0 @@
|
||||
From 66ceac29afde903c013ec6ade2b12f2b5b6e4050 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Mon, 23 May 2011 16:40:05 +0200
|
||||
Subject: [PATCH] patch: CVE-2010-4540,4541,4542
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit c63c02e87b9c399f60a6a8d6d235f22a470fe2d2
|
||||
Author: Simon Budig <simon@budig.de>
|
||||
Date: Tue Jan 11 23:28:16 2011 +0100
|
||||
|
||||
fixes for some buffer overflow problems (see bug #639203)
|
||||
(cherry picked from commit 7fb0300e1cfdb98a3bde54dbc73a0f3eda375162)
|
||||
---
|
||||
plug-ins/common/sphere-designer.c | 5 ++++-
|
||||
plug-ins/gfig/gfig-style.c | 8 +++++++-
|
||||
plug-ins/lighting/lighting-ui.c | 27 +++++++++++++++++++++++----
|
||||
3 files changed, 34 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/common/sphere-designer.c b/plug-ins/common/sphere-designer.c
|
||||
index 5421067..b06af40 100644
|
||||
--- a/plug-ins/common/sphere-designer.c
|
||||
+++ b/plug-ins/common/sphere-designer.c
|
||||
@@ -1992,6 +1992,7 @@ loadit (const gchar * fn)
|
||||
gchar endbuf[21 * (G_ASCII_DTOSTR_BUF_SIZE + 1)];
|
||||
gchar *end = endbuf;
|
||||
gchar line[1024];
|
||||
+ gchar fmt_str[16];
|
||||
gint i;
|
||||
texture *t;
|
||||
gint majtype, type;
|
||||
@@ -2016,6 +2017,8 @@ loadit (const gchar * fn)
|
||||
|
||||
s.com.numtexture = 0;
|
||||
|
||||
+ snprintf (fmt_str, sizeof (fmt_str), "%%d %%d %%%lds", sizeof (endbuf) - 1);
|
||||
+
|
||||
while (!feof (f))
|
||||
{
|
||||
|
||||
@@ -2026,7 +2029,7 @@ loadit (const gchar * fn)
|
||||
t = &s.com.texture[i];
|
||||
setdefaults (t);
|
||||
|
||||
- if (sscanf (line, "%d %d %s", &t->majtype, &t->type, end) != 3)
|
||||
+ if (sscanf (line, fmt_str, &t->majtype, &t->type, end) != 3)
|
||||
t->color1.x = g_ascii_strtod (end, &end);
|
||||
if (end && errno != ERANGE)
|
||||
t->color1.y = g_ascii_strtod (end, &end);
|
||||
diff --git a/plug-ins/gfig/gfig-style.c b/plug-ins/gfig/gfig-style.c
|
||||
index f8fefb8..685fe58 100644
|
||||
--- a/plug-ins/gfig/gfig-style.c
|
||||
+++ b/plug-ins/gfig/gfig-style.c
|
||||
@@ -165,6 +165,7 @@ gfig_read_parameter_gimp_rgb (gchar **text,
|
||||
gchar *ptr;
|
||||
gchar *tmpstr;
|
||||
gchar *endptr;
|
||||
+ gchar fmt_str[32];
|
||||
gchar colorstr_r[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
gchar colorstr_g[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
gchar colorstr_b[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
@@ -172,6 +173,10 @@ gfig_read_parameter_gimp_rgb (gchar **text,
|
||||
|
||||
style_entry->r = style_entry->g = style_entry->b = style_entry->a = 0.;
|
||||
|
||||
+ snprintf (fmt_str, sizeof (fmt_str), "%%%lds %%%lds %%%lds %%%lds",
|
||||
+ sizeof (colorstr_r) - 1, sizeof (colorstr_g) - 1,
|
||||
+ sizeof (colorstr_b) - 1, sizeof (colorstr_a) - 1);
|
||||
+
|
||||
while (n < nitems)
|
||||
{
|
||||
ptr = strchr (text[n], ':');
|
||||
@@ -181,7 +186,8 @@ gfig_read_parameter_gimp_rgb (gchar **text,
|
||||
ptr++;
|
||||
if (!strcmp (tmpstr, name))
|
||||
{
|
||||
- sscanf (ptr, "%s %s %s %s", colorstr_r, colorstr_g, colorstr_b, colorstr_a);
|
||||
+ sscanf (ptr, fmt_str,
|
||||
+ colorstr_r, colorstr_g, colorstr_b, colorstr_a);
|
||||
style_entry->r = g_ascii_strtod (colorstr_r, &endptr);
|
||||
style_entry->g = g_ascii_strtod (colorstr_g, &endptr);
|
||||
style_entry->b = g_ascii_strtod (colorstr_b, &endptr);
|
||||
diff --git a/plug-ins/lighting/lighting-ui.c b/plug-ins/lighting/lighting-ui.c
|
||||
index 71cd58f..702cda9 100644
|
||||
--- a/plug-ins/lighting/lighting-ui.c
|
||||
+++ b/plug-ins/lighting/lighting-ui.c
|
||||
@@ -1342,6 +1342,7 @@ load_preset_response (GtkFileChooser *chooser,
|
||||
gchar buffer3[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
gchar type_label[21];
|
||||
gchar *endptr;
|
||||
+ gchar fmt_str[32];
|
||||
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
@@ -1381,23 +1382,41 @@ load_preset_response (GtkFileChooser *chooser,
|
||||
return;
|
||||
}
|
||||
|
||||
- fscanf (fp, " Position: %s %s %s", buffer1, buffer2, buffer3);
|
||||
+ snprintf (fmt_str, sizeof (fmt_str),
|
||||
+ " Position: %%%lds %%%lds %%%lds",
|
||||
+ sizeof (buffer1) - 1,
|
||||
+ sizeof (buffer2) - 1,
|
||||
+ sizeof (buffer3) - 1);
|
||||
+ fscanf (fp, fmt_str, buffer1, buffer2, buffer3);
|
||||
source->position.x = g_ascii_strtod (buffer1, &endptr);
|
||||
source->position.y = g_ascii_strtod (buffer2, &endptr);
|
||||
source->position.z = g_ascii_strtod (buffer3, &endptr);
|
||||
|
||||
- fscanf (fp, " Direction: %s %s %s", buffer1, buffer2, buffer3);
|
||||
+ snprintf (fmt_str, sizeof (fmt_str),
|
||||
+ " Direction: %%%lds %%%lds %%%lds",
|
||||
+ sizeof (buffer1) - 1,
|
||||
+ sizeof (buffer2) - 1,
|
||||
+ sizeof (buffer3) - 1);
|
||||
+ fscanf (fp, fmt_str, buffer1, buffer2, buffer3);
|
||||
source->direction.x = g_ascii_strtod (buffer1, &endptr);
|
||||
source->direction.y = g_ascii_strtod (buffer2, &endptr);
|
||||
source->direction.z = g_ascii_strtod (buffer3, &endptr);
|
||||
|
||||
- fscanf (fp, " Color: %s %s %s", buffer1, buffer2, buffer3);
|
||||
+ snprintf (fmt_str, sizeof (fmt_str),
|
||||
+ " Color: %%%lds %%%lds %%%lds",
|
||||
+ sizeof (buffer1) - 1,
|
||||
+ sizeof (buffer2) - 1,
|
||||
+ sizeof (buffer3) - 1);
|
||||
+ fscanf (fp, fmt_str, buffer1, buffer2, buffer3);
|
||||
source->color.r = g_ascii_strtod (buffer1, &endptr);
|
||||
source->color.g = g_ascii_strtod (buffer2, &endptr);
|
||||
source->color.b = g_ascii_strtod (buffer3, &endptr);
|
||||
source->color.a = 1.0;
|
||||
|
||||
- fscanf (fp, " Intensity: %s", buffer1);
|
||||
+ snprintf (fmt_str, sizeof (fmt_str),
|
||||
+ " Intensity: %%%lds",
|
||||
+ sizeof (buffer1) - 1);
|
||||
+ fscanf (fp, fmt_str, buffer1);
|
||||
source->intensity = g_ascii_strtod (buffer1, &endptr);
|
||||
|
||||
}
|
||||
--
|
||||
1.7.5.1
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 16bfd230e569709724166670987475756a6d3261 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Tue, 9 Nov 2010 17:45:37 +0100
|
||||
Subject: [PATCH] patch: colorxhtml
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit f77a97fa0a7178394b81082749d6719849aa1508
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Tue Nov 9 11:28:30 2010 +0100
|
||||
|
||||
colorxhtml: check validity of source_type
|
||||
(cherry picked from commit d2ebadcfb906af972edb95807e2887af4ad76856)
|
||||
---
|
||||
plug-ins/pygimp/plug-ins/colorxhtml.py | 5 ++++-
|
||||
1 files changed, 4 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/pygimp/plug-ins/colorxhtml.py b/plug-ins/pygimp/plug-ins/colorxhtml.py
|
||||
index 0022c65..ed8e52d 100755
|
||||
--- a/plug-ins/pygimp/plug-ins/colorxhtml.py
|
||||
+++ b/plug-ins/pygimp/plug-ins/colorxhtml.py
|
||||
@@ -27,7 +27,7 @@ from gimpfu import *
|
||||
|
||||
gettext.install("gimp20-python", gimp.locale_directory, unicode=True)
|
||||
|
||||
-(CHARS_SOURCE, CHARS_FILE, CHARS_PARAMETER) = range(3)
|
||||
+all_source_types = (CHARS_SOURCE, CHARS_FILE, CHARS_PARAMETER) = range(3)
|
||||
|
||||
escape_table = {
|
||||
'&': '&',
|
||||
@@ -67,6 +67,9 @@ def colorxhtml(img, drawable, filename, raw_filename,
|
||||
if not drawable.is_rgb or drawable.has_alpha:
|
||||
return
|
||||
|
||||
+ if source_type not in all_source_types:
|
||||
+ return
|
||||
+
|
||||
gimp.tile_cache_ntiles(width / gimp.tile_width() + 1)
|
||||
|
||||
html = file(filename, 'w')
|
||||
--
|
||||
1.7.3.2
|
||||
|
@ -1,108 +0,0 @@
|
||||
From 631856a2021d60d29e96d07872c06246eff25a96 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri, 12 Aug 2011 14:44:52 +0200
|
||||
Subject: [PATCH] patch: gif-load
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit 366d6b546e8fb91909550a61abeafc11672667c4
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Aug 4 12:51:42 2011 +0200
|
||||
|
||||
file-gif-load: fix heap corruption and buffer overflow (CVE-2011-2896)
|
||||
(cherry picked from commit 376ad788c1a1c31d40f18494889c383f6909ebfc)
|
||||
|
||||
commit 3c5864851ea5fe8f89d273ee8ac4df0c1101b315
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Aug 4 12:47:44 2011 +0200
|
||||
|
||||
file-gif-load: ensure return value of LZWReadByte() is <= 255
|
||||
(cherry picked from commit b1a3de761362db982c0ddfaff60ab4a3c4267f32)
|
||||
---
|
||||
plug-ins/common/file-gif-load.c | 25 ++++++++++++++-----------
|
||||
1 files changed, 14 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/common/file-gif-load.c b/plug-ins/common/file-gif-load.c
|
||||
index 9a0720b..8460ec0 100644
|
||||
--- a/plug-ins/common/file-gif-load.c
|
||||
+++ b/plug-ins/common/file-gif-load.c
|
||||
@@ -697,7 +697,8 @@ LZWReadByte (FILE *fd,
|
||||
static gint firstcode, oldcode;
|
||||
static gint clear_code, end_code;
|
||||
static gint table[2][(1 << MAX_LZW_BITS)];
|
||||
- static gint stack[(1 << (MAX_LZW_BITS)) * 2], *sp;
|
||||
+#define STACK_SIZE ((1 << (MAX_LZW_BITS)) * 2)
|
||||
+ static gint stack[STACK_SIZE], *sp;
|
||||
gint i;
|
||||
|
||||
if (just_reset_LZW)
|
||||
@@ -743,11 +744,11 @@ LZWReadByte (FILE *fd,
|
||||
}
|
||||
while (firstcode == clear_code);
|
||||
|
||||
- return firstcode;
|
||||
+ return firstcode & 255;
|
||||
}
|
||||
|
||||
if (sp > stack)
|
||||
- return *--sp;
|
||||
+ return (*--sp) & 255;
|
||||
|
||||
while ((code = GetCode (fd, code_size, FALSE)) >= 0)
|
||||
{
|
||||
@@ -770,9 +771,9 @@ LZWReadByte (FILE *fd,
|
||||
sp = stack;
|
||||
firstcode = oldcode = GetCode (fd, code_size, FALSE);
|
||||
|
||||
- return firstcode;
|
||||
+ return firstcode & 255;
|
||||
}
|
||||
- else if (code == end_code)
|
||||
+ else if (code == end_code || code > max_code)
|
||||
{
|
||||
gint count;
|
||||
guchar buf[260];
|
||||
@@ -791,13 +792,14 @@ LZWReadByte (FILE *fd,
|
||||
|
||||
incode = code;
|
||||
|
||||
- if (code >= max_code)
|
||||
+ if (code == max_code)
|
||||
{
|
||||
- *sp++ = firstcode;
|
||||
+ if (sp < &(stack[STACK_SIZE]))
|
||||
+ *sp++ = firstcode;
|
||||
code = oldcode;
|
||||
}
|
||||
|
||||
- while (code >= clear_code)
|
||||
+ while (code >= clear_code && sp < &(stack[STACK_SIZE]))
|
||||
{
|
||||
*sp++ = table[1][code];
|
||||
if (code == table[0][code])
|
||||
@@ -808,7 +810,8 @@ LZWReadByte (FILE *fd,
|
||||
code = table[0][code];
|
||||
}
|
||||
|
||||
- *sp++ = firstcode = table[1][code];
|
||||
+ if (sp < &(stack[STACK_SIZE]))
|
||||
+ *sp++ = firstcode = table[1][code];
|
||||
|
||||
if ((code = max_code) < (1 << MAX_LZW_BITS))
|
||||
{
|
||||
@@ -826,10 +829,10 @@ LZWReadByte (FILE *fd,
|
||||
oldcode = incode;
|
||||
|
||||
if (sp > stack)
|
||||
- return *--sp;
|
||||
+ return (*--sp) & 255;
|
||||
}
|
||||
|
||||
- return code;
|
||||
+ return code & 255;
|
||||
}
|
||||
|
||||
static gint32
|
||||
--
|
||||
1.7.6
|
||||
|
@ -1,477 +0,0 @@
|
||||
From 69f69eed816b89be9a01a48a1f0643d1fd496118 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri, 6 May 2011 11:58:44 +0200
|
||||
Subject: [PATCH] patch: poppler-0.17
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit 529d940222dfc352d41fbf72de29134421aa4002
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri May 6 11:50:30 2011 +0200
|
||||
|
||||
use code based on pixbufs instead of cairo surfaces
|
||||
|
||||
this is done to avoid adding to libgimp, thanks to Mukund Sivaraman for
|
||||
hints how to do this
|
||||
|
||||
commit f8671d8767d4cdab830dc06310e96c63a88ec0fd
|
||||
Author: Mukund Sivaraman <muks@banu.com>
|
||||
Date: Thu Apr 21 13:57:13 2011 +0530
|
||||
|
||||
file-pdf-load: Update attribution, removing bogus copyright
|
||||
(cherry picked from commit e999122e0b20b6ccd6bde3ce039bb64068fc0019)
|
||||
|
||||
commit 89a78f2590d298dac2f42e6d9a3016fc5d672c70
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Apr 21 13:52:18 2011 +0200
|
||||
|
||||
file-pdf-load: Use better API + cleanups
|
||||
|
||||
* fixes issues with poppler 0.17 completely
|
||||
* uses new libgimp API to pass surfaces instead of pixbufs
|
||||
* uses GTK+ 3 API to convert surfaces to pixbufs where available
|
||||
(backported from commit 7bdadd80ba479d6ff904e276d805e16f6b940ee2)
|
||||
|
||||
commit 4e92302c4a14a961f112587a0ad86696c88da2f8
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Apr 21 13:38:08 2011 +0200
|
||||
|
||||
file-pdf-load: Don't use deprecated API (bug #646947)
|
||||
|
||||
(cherry picked from commit 9b3e1c91fd2eac69da6947ec9c7fbf10096ba237)
|
||||
|
||||
Conflicts:
|
||||
|
||||
plug-ins/common/file-pdf.c
|
||||
---
|
||||
plug-ins/common/file-pdf.c | 323 ++++++++++++++++++++++++++++++++++++++------
|
||||
1 files changed, 283 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/common/file-pdf.c b/plug-ins/common/file-pdf.c
|
||||
index a43b459..43c2b7d 100644
|
||||
--- a/plug-ins/common/file-pdf.c
|
||||
+++ b/plug-ins/common/file-pdf.c
|
||||
@@ -4,6 +4,9 @@
|
||||
*
|
||||
* Copyright (C) 2005 Nathan Summers
|
||||
*
|
||||
+ * Some code in render_page_to_surface() borrowed from
|
||||
+ * poppler.git/glib/poppler-page.cc.
|
||||
+ *
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@@ -80,16 +83,20 @@ static gboolean load_dialog (PopplerDocument *doc,
|
||||
static PopplerDocument * open_document (const gchar *filename,
|
||||
GError **error);
|
||||
|
||||
-static GdkPixbuf * get_thumbnail (PopplerDocument *doc,
|
||||
+static cairo_surface_t * get_thumb_surface (PopplerDocument *doc,
|
||||
+ gint page,
|
||||
+ gint preferred_size);
|
||||
+
|
||||
+static GdkPixbuf * get_thumb_pixbuf (PopplerDocument *doc,
|
||||
gint page,
|
||||
gint preferred_size);
|
||||
|
||||
static gint32 layer_from_pixbuf (gint32 image,
|
||||
- const gchar *layer_name,
|
||||
- gint position,
|
||||
- GdkPixbuf *buf,
|
||||
- gdouble progress_start,
|
||||
- gdouble progress_scale);
|
||||
+ const gchar *layer_name,
|
||||
+ gint position,
|
||||
+ GdkPixbuf *pixbuf,
|
||||
+ gdouble progress_start,
|
||||
+ gdouble progress_scale);
|
||||
|
||||
/**
|
||||
** the following was formerly part of
|
||||
@@ -433,11 +440,12 @@ run (const gchar *name,
|
||||
}
|
||||
else
|
||||
{
|
||||
- gdouble width = 0;
|
||||
- gdouble height = 0;
|
||||
- gdouble scale;
|
||||
- gint32 image = -1;
|
||||
- GdkPixbuf *pixbuf = NULL;
|
||||
+ gdouble width = 0;
|
||||
+ gdouble height = 0;
|
||||
+ gdouble scale;
|
||||
+ gint32 image = -1;
|
||||
+ gint num_pages = 0;
|
||||
+ GdkPixbuf *pixbuf = NULL;
|
||||
|
||||
/* Possibly retrieve last settings */
|
||||
gimp_get_data (LOAD_PROC, &loadvals);
|
||||
@@ -455,7 +463,10 @@ run (const gchar *name,
|
||||
g_object_unref (page);
|
||||
}
|
||||
|
||||
- pixbuf = get_thumbnail (doc, 0, param[1].data.d_int32);
|
||||
+ num_pages = poppler_document_get_n_pages (doc);
|
||||
+
|
||||
+ pixbuf = get_thumb_pixbuf (doc, 0, param[1].data.d_int32);
|
||||
+
|
||||
g_object_unref (doc);
|
||||
}
|
||||
|
||||
@@ -548,6 +559,187 @@ open_document (const gchar *filename,
|
||||
return doc;
|
||||
}
|
||||
|
||||
+/* FIXME: Remove this someday when we depend fully on GTK+ >= 3 */
|
||||
+
|
||||
+#if (!GTK_CHECK_VERSION (3, 0, 0))
|
||||
+
|
||||
+static cairo_format_t
|
||||
+gdk_cairo_format_for_content (cairo_content_t content)
|
||||
+{
|
||||
+ switch (content)
|
||||
+ {
|
||||
+ case CAIRO_CONTENT_COLOR:
|
||||
+ return CAIRO_FORMAT_RGB24;
|
||||
+ case CAIRO_CONTENT_ALPHA:
|
||||
+ return CAIRO_FORMAT_A8;
|
||||
+ case CAIRO_CONTENT_COLOR_ALPHA:
|
||||
+ default:
|
||||
+ return CAIRO_FORMAT_ARGB32;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static cairo_surface_t *
|
||||
+gdk_cairo_surface_coerce_to_image (cairo_surface_t *surface,
|
||||
+ cairo_content_t content,
|
||||
+ int src_x,
|
||||
+ int src_y,
|
||||
+ int width,
|
||||
+ int height)
|
||||
+{
|
||||
+ cairo_surface_t *copy;
|
||||
+ cairo_t *cr;
|
||||
+
|
||||
+ copy = cairo_image_surface_create (gdk_cairo_format_for_content (content),
|
||||
+ width,
|
||||
+ height);
|
||||
+
|
||||
+ cr = cairo_create (copy);
|
||||
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
|
||||
+ cairo_set_source_surface (cr, surface, -src_x, -src_y);
|
||||
+ cairo_paint (cr);
|
||||
+ cairo_destroy (cr);
|
||||
+
|
||||
+ return copy;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+convert_alpha (guchar *dest_data,
|
||||
+ int dest_stride,
|
||||
+ guchar *src_data,
|
||||
+ int src_stride,
|
||||
+ int src_x,
|
||||
+ int src_y,
|
||||
+ int width,
|
||||
+ int height)
|
||||
+{
|
||||
+ int x, y;
|
||||
+
|
||||
+ src_data += src_stride * src_y + src_x * 4;
|
||||
+
|
||||
+ for (y = 0; y < height; y++) {
|
||||
+ guint32 *src = (guint32 *) src_data;
|
||||
+
|
||||
+ for (x = 0; x < width; x++) {
|
||||
+ guint alpha = src[x] >> 24;
|
||||
+
|
||||
+ if (alpha == 0)
|
||||
+ {
|
||||
+ dest_data[x * 4 + 0] = 0;
|
||||
+ dest_data[x * 4 + 1] = 0;
|
||||
+ dest_data[x * 4 + 2] = 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ dest_data[x * 4 + 0] = (((src[x] & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
|
||||
+ dest_data[x * 4 + 1] = (((src[x] & 0x00ff00) >> 8) * 255 + alpha / 2) / alpha;
|
||||
+ dest_data[x * 4 + 2] = (((src[x] & 0x0000ff) >> 0) * 255 + alpha / 2) / alpha;
|
||||
+ }
|
||||
+ dest_data[x * 4 + 3] = alpha;
|
||||
+ }
|
||||
+
|
||||
+ src_data += src_stride;
|
||||
+ dest_data += dest_stride;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+convert_no_alpha (guchar *dest_data,
|
||||
+ int dest_stride,
|
||||
+ guchar *src_data,
|
||||
+ int src_stride,
|
||||
+ int src_x,
|
||||
+ int src_y,
|
||||
+ int width,
|
||||
+ int height)
|
||||
+{
|
||||
+ int x, y;
|
||||
+
|
||||
+ src_data += src_stride * src_y + src_x * 4;
|
||||
+
|
||||
+ for (y = 0; y < height; y++) {
|
||||
+ guint32 *src = (guint32 *) src_data;
|
||||
+
|
||||
+ for (x = 0; x < width; x++) {
|
||||
+ dest_data[x * 3 + 0] = src[x] >> 16;
|
||||
+ dest_data[x * 3 + 1] = src[x] >> 8;
|
||||
+ dest_data[x * 3 + 2] = src[x];
|
||||
+ }
|
||||
+
|
||||
+ src_data += src_stride;
|
||||
+ dest_data += dest_stride;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * gdk_pixbuf_get_from_surface:
|
||||
+ * @surface: surface to copy from
|
||||
+ * @src_x: Source X coordinate within @surface
|
||||
+ * @src_y: Source Y coordinate within @surface
|
||||
+ * @width: Width in pixels of region to get
|
||||
+ * @height: Height in pixels of region to get
|
||||
+ *
|
||||
+ * Transfers image data from a #cairo_surface_t and converts it to an RGB(A)
|
||||
+ * representation inside a #GdkPixbuf. This allows you to efficiently read
|
||||
+ * individual pixels from cairo surfaces. For #GdkWindows, use
|
||||
+ * gdk_pixbuf_get_from_window() instead.
|
||||
+ *
|
||||
+ * This function will create an RGB pixbuf with 8 bits per channel.
|
||||
+ * The pixbuf will contain an alpha channel if the @surface contains one.
|
||||
+ *
|
||||
+ * Return value: (transfer full): A newly-created pixbuf with a reference
|
||||
+ * count of 1, or %NULL on error
|
||||
+ */
|
||||
+static GdkPixbuf *
|
||||
+gdk_pixbuf_get_from_surface (cairo_surface_t *surface,
|
||||
+ gint src_x,
|
||||
+ gint src_y,
|
||||
+ gint width,
|
||||
+ gint height)
|
||||
+{
|
||||
+ cairo_content_t content;
|
||||
+ GdkPixbuf *dest;
|
||||
+
|
||||
+ /* General sanity checks */
|
||||
+ g_return_val_if_fail (surface != NULL, NULL);
|
||||
+ g_return_val_if_fail (width > 0 && height > 0, NULL);
|
||||
+
|
||||
+ content = cairo_surface_get_content (surface) | CAIRO_CONTENT_COLOR;
|
||||
+ dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
|
||||
+ !!(content & CAIRO_CONTENT_ALPHA),
|
||||
+ 8,
|
||||
+ width, height);
|
||||
+
|
||||
+ surface = gdk_cairo_surface_coerce_to_image (surface, content,
|
||||
+ src_x, src_y,
|
||||
+ width, height);
|
||||
+ cairo_surface_flush (surface);
|
||||
+ if (cairo_surface_status (surface) || dest == NULL)
|
||||
+ {
|
||||
+ cairo_surface_destroy (surface);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (gdk_pixbuf_get_has_alpha (dest))
|
||||
+ convert_alpha (gdk_pixbuf_get_pixels (dest),
|
||||
+ gdk_pixbuf_get_rowstride (dest),
|
||||
+ cairo_image_surface_get_data (surface),
|
||||
+ cairo_image_surface_get_stride (surface),
|
||||
+ 0, 0,
|
||||
+ width, height);
|
||||
+ else
|
||||
+ convert_no_alpha (gdk_pixbuf_get_pixels (dest),
|
||||
+ gdk_pixbuf_get_rowstride (dest),
|
||||
+ cairo_image_surface_get_data (surface),
|
||||
+ cairo_image_surface_get_stride (surface),
|
||||
+ 0, 0,
|
||||
+ width, height);
|
||||
+
|
||||
+ cairo_surface_destroy (surface);
|
||||
+ return dest;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
static gint32
|
||||
layer_from_pixbuf (gint32 image,
|
||||
const gchar *layer_name,
|
||||
@@ -566,6 +758,54 @@ layer_from_pixbuf (gint32 image,
|
||||
return layer;
|
||||
}
|
||||
|
||||
+static cairo_surface_t *
|
||||
+render_page_to_surface (PopplerPage *page,
|
||||
+ int width,
|
||||
+ int height,
|
||||
+ double scale)
|
||||
+{
|
||||
+ cairo_surface_t *surface;
|
||||
+ cairo_t *cr;
|
||||
+
|
||||
+ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
|
||||
+ cr = cairo_create (surface);
|
||||
+
|
||||
+ cairo_save (cr);
|
||||
+ cairo_translate (cr, 0.0, 0.0);
|
||||
+
|
||||
+ if (scale != 1.0)
|
||||
+ cairo_scale (cr, scale, scale);
|
||||
+
|
||||
+ poppler_page_render (page, cr);
|
||||
+ cairo_restore (cr);
|
||||
+
|
||||
+ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
|
||||
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
|
||||
+ cairo_paint (cr);
|
||||
+
|
||||
+ cairo_destroy (cr);
|
||||
+
|
||||
+ return surface;
|
||||
+}
|
||||
+
|
||||
+static GdkPixbuf *
|
||||
+render_page_to_pixbuf (PopplerPage *page,
|
||||
+ int width,
|
||||
+ int height,
|
||||
+ double scale)
|
||||
+{
|
||||
+ GdkPixbuf *pixbuf;
|
||||
+ cairo_surface_t *surface;
|
||||
+
|
||||
+ surface = render_page_to_surface (page, width, height, scale);
|
||||
+ pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
|
||||
+ cairo_image_surface_get_width (surface),
|
||||
+ cairo_image_surface_get_height (surface));
|
||||
+ cairo_surface_destroy (surface);
|
||||
+
|
||||
+ return pixbuf;
|
||||
+}
|
||||
+
|
||||
static gint32
|
||||
load_image (PopplerDocument *doc,
|
||||
const gchar *filename,
|
||||
@@ -597,7 +837,7 @@ load_image (PopplerDocument *doc,
|
||||
gdouble page_width;
|
||||
gdouble page_height;
|
||||
|
||||
- GdkPixbuf *buf;
|
||||
+ GdkPixbuf *pixbuf;
|
||||
gint width;
|
||||
gint height;
|
||||
|
||||
@@ -627,15 +867,13 @@ load_image (PopplerDocument *doc,
|
||||
gimp_image_set_resolution (image_ID, resolution, resolution);
|
||||
}
|
||||
|
||||
- buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, width, height);
|
||||
-
|
||||
- poppler_page_render_to_pixbuf (page, 0, 0, width, height, scale, 0, buf);
|
||||
+ pixbuf = render_page_to_pixbuf (page, width, height, scale);
|
||||
|
||||
- layer_from_pixbuf (image_ID, page_label, i, buf,
|
||||
+ layer_from_pixbuf (image_ID, page_label, i, pixbuf,
|
||||
doc_progress, 1.0 / pages->n_pages);
|
||||
|
||||
g_free (page_label);
|
||||
- g_object_unref (buf);
|
||||
+ g_object_unref(pixbuf);
|
||||
|
||||
doc_progress = (double) (i + 1) / pages->n_pages;
|
||||
gimp_progress_update (doc_progress);
|
||||
@@ -676,30 +914,22 @@ load_image (PopplerDocument *doc,
|
||||
return image_ID;
|
||||
}
|
||||
|
||||
-static GdkPixbuf *
|
||||
-get_thumbnail (PopplerDocument *doc,
|
||||
- gint page_num,
|
||||
- gint preferred_size)
|
||||
+static cairo_surface_t *
|
||||
+get_thumb_surface (PopplerDocument *doc,
|
||||
+ gint page_num,
|
||||
+ gint preferred_size)
|
||||
{
|
||||
PopplerPage *page;
|
||||
- GdkPixbuf *pixbuf;
|
||||
+ cairo_surface_t *surface;
|
||||
|
||||
page = poppler_document_get_page (doc, page_num);
|
||||
|
||||
if (! page)
|
||||
return NULL;
|
||||
|
||||
- /* XXX: Remove conditional when we depend on poppler 0.8.0, but also
|
||||
- * add configure check to make sure POPPLER_WITH_GDK is enabled!
|
||||
- */
|
||||
-#ifdef POPPLER_WITH_GDK
|
||||
- pixbuf = poppler_page_get_thumbnail_pixbuf (page);
|
||||
-#else
|
||||
- pixbuf = poppler_page_get_thumbnail (page);
|
||||
-#endif
|
||||
-
|
||||
+ surface = poppler_page_get_thumbnail (page);
|
||||
|
||||
- if (! pixbuf)
|
||||
+ if (! surface)
|
||||
{
|
||||
gdouble width;
|
||||
gdouble height;
|
||||
@@ -712,15 +942,28 @@ get_thumbnail (PopplerDocument *doc,
|
||||
width *= scale;
|
||||
height *= scale;
|
||||
|
||||
- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
|
||||
- width, height);
|
||||
-
|
||||
- poppler_page_render_to_pixbuf (page,
|
||||
- 0, 0, width, height, scale, 0, pixbuf);
|
||||
+ surface = render_page_to_surface (page, width, height, scale);
|
||||
}
|
||||
|
||||
g_object_unref (page);
|
||||
|
||||
+ return surface;
|
||||
+}
|
||||
+
|
||||
+static GdkPixbuf *
|
||||
+get_thumb_pixbuf (PopplerDocument *doc,
|
||||
+ gint page_num,
|
||||
+ gint preferred_size)
|
||||
+{
|
||||
+ cairo_surface_t *surface;
|
||||
+ GdkPixbuf *pixbuf;
|
||||
+
|
||||
+ surface = get_thumb_surface (doc, page_num, preferred_size);
|
||||
+ pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0,
|
||||
+ cairo_image_surface_get_width (surface),
|
||||
+ cairo_image_surface_get_height (surface));
|
||||
+ cairo_surface_destroy (surface);
|
||||
+
|
||||
return pixbuf;
|
||||
}
|
||||
|
||||
@@ -769,8 +1012,8 @@ thumbnail_thread (gpointer data)
|
||||
idle_data->page_no = i;
|
||||
|
||||
/* FIXME get preferred size from somewhere? */
|
||||
- idle_data->pixbuf = get_thumbnail (thread_data->document, i,
|
||||
- THUMBNAIL_SIZE);
|
||||
+ idle_data->pixbuf = get_thumb_pixbuf (thread_data->document, i,
|
||||
+ THUMBNAIL_SIZE);
|
||||
|
||||
g_idle_add (idle_set_thumbnail, idle_data);
|
||||
|
||||
--
|
||||
1.7.5
|
||||
|
@ -1,45 +0,0 @@
|
||||
From 282feeae8df77bae287284f74e9f9c54d21e6d8d Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Mon, 23 May 2011 15:52:48 +0200
|
||||
Subject: [PATCH] patch: psp-overflow
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit c5b7e71d89c60a329d4db05f8ddb4610eab013d6
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri May 13 17:08:02 2011 +0200
|
||||
|
||||
file-psp: fix overflow protection (CVE-2011-1782)
|
||||
|
||||
amends commit 48ec15890e1751dede061f6d1f469b6508c13439, related to
|
||||
CVE-2010-4543
|
||||
(cherry picked from commit f657361db04de69ce003328724c59e3f942d7d15)
|
||||
|
||||
commit ab592eb5015f81defdd1e74cd5bcc7edfcd7ebf7
|
||||
Author: Simon Budig <simon@budig.de>
|
||||
Date: Mon Feb 14 21:46:31 2011 +0100
|
||||
|
||||
file-psp: fix for bogus input data. Fixes bug #639203
|
||||
(cherry picked from commit 48ec15890e1751dede061f6d1f469b6508c13439)
|
||||
---
|
||||
plug-ins/common/file-psp.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/common/file-psp.c b/plug-ins/common/file-psp.c
|
||||
index db12770..4931c87 100644
|
||||
--- a/plug-ins/common/file-psp.c
|
||||
+++ b/plug-ins/common/file-psp.c
|
||||
@@ -1244,6 +1244,10 @@ read_channel_data (FILE *f,
|
||||
}
|
||||
else
|
||||
fread (buf, runcount, 1, f);
|
||||
+
|
||||
+ /* prevent buffer overflow for bogus data */
|
||||
+ runcount = MIN (runcount, (endq - q) / bytespp);
|
||||
+
|
||||
if (bytespp == 1)
|
||||
{
|
||||
memmove (q, buf, runcount);
|
||||
--
|
||||
1.7.5.1
|
||||
|
@ -1,36 +0,0 @@
|
||||
From 0b46212d99191b65a1dd2f723c9cf0250e69a448 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Wed, 2 Feb 2011 18:19:35 +0100
|
||||
Subject: [PATCH] patch: pyslice
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit 0b91c365bc1d43a888ed9b78439930c1235b609c
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Wed Feb 2 17:11:28 2011 +0100
|
||||
|
||||
Bug 641259 - [abrt] gimp-2:2.6.11-1.fc14: py-slice.py:172:slice:TypeError: integer argument expected, got float
|
||||
|
||||
py-slice: cast cellspacing to int in pyslice() to avoid tracebacks
|
||||
(cherry picked from commit 0af966b63fcc55b36380d6538dfb30000f71fef9)
|
||||
---
|
||||
plug-ins/pygimp/plug-ins/py-slice.py | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/pygimp/plug-ins/py-slice.py b/plug-ins/pygimp/plug-ins/py-slice.py
|
||||
index 40743f3..ac35f23 100755
|
||||
--- a/plug-ins/pygimp/plug-ins/py-slice.py
|
||||
+++ b/plug-ins/pygimp/plug-ins/py-slice.py
|
||||
@@ -36,6 +36,9 @@ gettext.install("gimp20-python", gimp.locale_directory, unicode=True)
|
||||
def pyslice(image, drawable, save_path, html_filename,
|
||||
image_basename, image_extension, separate,
|
||||
image_path, cellspacing, animate, skip_caps):
|
||||
+
|
||||
+ cellspacing = int (cellspacing)
|
||||
+
|
||||
if animate:
|
||||
count = 0
|
||||
drw = []
|
||||
--
|
||||
1.7.4
|
||||
|
@ -1,83 +0,0 @@
|
||||
From dcb8cc2ce47a59d6e8c2272755f0b8c00e391fe0 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri, 10 Jun 2011 21:36:23 +0200
|
||||
Subject: [PATCH] patch: shell-dnd-quit-crash
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit 3028f226d577cdf4fc2b01b53beeb1edd8b69a8b
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri Jun 10 18:06:02 2011 +0200
|
||||
|
||||
app: guard against crash due to quitting while DND is processed
|
||||
|
||||
In gimp_display_shell_drop_uri_list(), shell->display is dereferenced in
|
||||
some places without checking that it's still there. It can be set to
|
||||
NULL if the user quits the application while a drag and drop action is
|
||||
being processed and the main loop is iterated during execution of this
|
||||
function. (Bug #652280)
|
||||
(cherry picked from commit b1a2c736bf7e6c75ca1af4b4c3330172dddb269e)
|
||||
|
||||
Conflicts:
|
||||
|
||||
app/display/gimpdisplayshell-dnd.c
|
||||
---
|
||||
app/display/gimpdisplayshell-dnd.c | 25 ++++++++++++++++++++++---
|
||||
1 files changed, 22 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/app/display/gimpdisplayshell-dnd.c b/app/display/gimpdisplayshell-dnd.c
|
||||
index 8d210a8..1e67fda 100644
|
||||
--- a/app/display/gimpdisplayshell-dnd.c
|
||||
+++ b/app/display/gimpdisplayshell-dnd.c
|
||||
@@ -458,11 +458,21 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (data);
|
||||
- GimpImage *image = shell->display->image;
|
||||
- GimpContext *context = gimp_get_user_context (shell->display->gimp);
|
||||
+ GimpImage *image;
|
||||
+ GimpContext *context;
|
||||
GList *list;
|
||||
gboolean open_as_layers;
|
||||
|
||||
+ /* If the app is already being torn down, shell->display might be NULL here.
|
||||
+ * Play it safe. */
|
||||
+ if (! shell->display)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ image = shell->display->image;
|
||||
+ context = gimp_get_user_context (shell->display->gimp);
|
||||
+
|
||||
GIMP_LOG (DND, NULL);
|
||||
|
||||
open_as_layers = (shell->display->image != NULL);
|
||||
@@ -474,6 +484,12 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
|
||||
GError *error = NULL;
|
||||
gboolean warn = FALSE;
|
||||
|
||||
+ if (! shell->display)
|
||||
+ {
|
||||
+ /* It seems as if GIMP is being torn down for quitting. Bail out. */
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (open_as_layers)
|
||||
{
|
||||
GList *new_layers;
|
||||
@@ -528,7 +544,10 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
|
||||
warn = TRUE;
|
||||
}
|
||||
|
||||
- if (warn)
|
||||
+ /* Something above might have run a few rounds of the main loop. Check
|
||||
+ * that shell->display is still there, otherwise ignore this as the app
|
||||
+ * is being torn down for quitting. */
|
||||
+ if (warn && shell->display)
|
||||
{
|
||||
gchar *filename = file_utils_uri_display_name (uri);
|
||||
|
||||
--
|
||||
1.7.5.2
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 7c21fa97815ac19c77a01db82c2e30834155c1b6 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu, 4 Aug 2011 12:10:04 +0200
|
||||
Subject: [PATCH] patch: startup-warning
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit 083d5fc4211421f900a2ee3ba9967be4ef9bb5eb
|
||||
Author: Mikael Magnusson <mikachu@src.gnome.org>
|
||||
Date: Wed Mar 9 15:35:52 2011 +0100
|
||||
|
||||
app: fix goption warning
|
||||
|
||||
Using G_OPTION_FLAG_NO_ARG with G_OPTION_ARG_NONE is not a valid combination,
|
||||
glib 2.28.2 warns about it.
|
||||
|
||||
(gimp:20379): GLib-WARNING **: goption.c:2132: ignoring no-arg, optional-arg or filename flags (8) on option "debug-handlers" of type 0
|
||||
(cherry picked from commit b81276ca83e6ec4c7df32c8f611f441d1dfc59ad)
|
||||
---
|
||||
app/main.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/app/main.c b/app/main.c
|
||||
index e1d5f02..34c9f74 100644
|
||||
--- a/app/main.c
|
||||
+++ b/app/main.c
|
||||
@@ -240,7 +240,7 @@ static const GOptionEntry main_entries[] =
|
||||
N_("Debug in case of a crash (never|query|always)"), "<mode>"
|
||||
},
|
||||
{
|
||||
- "debug-handlers", 0, G_OPTION_FLAG_NO_ARG,
|
||||
+ "debug-handlers", 0, 0,
|
||||
G_OPTION_ARG_NONE, &use_debug_handler,
|
||||
N_("Enable non-fatal debugging signal handlers"), NULL
|
||||
},
|
||||
--
|
||||
1.7.6
|
||||
|
@ -1,36 +0,0 @@
|
||||
diff -up gimp-2.6.2/app/config/gimpguiconfig.c.xdg-open gimp-2.6.2/app/config/gimpguiconfig.c
|
||||
--- gimp-2.6.2/app/config/gimpguiconfig.c.xdg-open 2008-10-30 10:27:56.000000000 +0100
|
||||
+++ gimp-2.6.2/app/config/gimpguiconfig.c 2008-10-31 11:25:54.000000000 +0100
|
||||
@@ -45,7 +45,7 @@
|
||||
#elif PLATFORM_OSX
|
||||
# define DEFAULT_WEB_BROWSER "open %s"
|
||||
#else
|
||||
-# define DEFAULT_WEB_BROWSER "firefox %s"
|
||||
+# define DEFAULT_WEB_BROWSER "xdg-open %s"
|
||||
#endif
|
||||
|
||||
|
||||
diff -up gimp-2.6.2/docs/gimprc.5.in.xdg-open gimp-2.6.2/docs/gimprc.5.in
|
||||
--- gimp-2.6.2/docs/gimprc.5.in.xdg-open 2008-10-30 10:29:00.000000000 +0100
|
||||
+++ gimp-2.6.2/docs/gimprc.5.in 2008-10-31 11:24:26.000000000 +0100
|
||||
@@ -788,7 +788,7 @@ Sets the browser used by the help system
|
||||
web-browser.
|
||||
|
||||
.TP
|
||||
-(web-browser "firefox %s")
|
||||
+(web-browser "xdg-open %s")
|
||||
|
||||
Sets the external web browser to be used. This can be an absolute path or the
|
||||
name of an executable to search for in the user's PATH. If the command
|
||||
diff -up gimp-2.6.2/etc/gimprc.xdg-open gimp-2.6.2/etc/gimprc
|
||||
--- gimp-2.6.2/etc/gimprc.xdg-open 2008-10-30 10:33:24.000000000 +0100
|
||||
+++ gimp-2.6.2/etc/gimprc 2008-10-31 11:24:26.000000000 +0100
|
||||
@@ -625,7 +625,7 @@
|
||||
# appended to the command with a space separating the two. This is a single
|
||||
# filename.
|
||||
#
|
||||
-# (web-browser "firefox %s")
|
||||
+# (web-browser "xdg-open %s")
|
||||
|
||||
# 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
|
@ -1,349 +0,0 @@
|
||||
diff -up gimp-2.6.6/app/display/gimpdisplay-foreach.c.minimize-dialogs gimp-2.6.6/app/display/gimpdisplay-foreach.c
|
||||
--- gimp-2.6.6/app/display/gimpdisplay-foreach.c.minimize-dialogs 2008-11-20 23:43:04.000000000 +0100
|
||||
+++ gimp-2.6.6/app/display/gimpdisplay-foreach.c 2009-03-30 14:24:05.145595522 +0200
|
||||
@@ -227,6 +227,35 @@ gimp_displays_reconnect (Gimp *gimp
|
||||
g_list_free (contexts);
|
||||
}
|
||||
|
||||
+gint
|
||||
+gimp_displays_get_num_visible (Gimp *gimp)
|
||||
+{
|
||||
+ GList *list;
|
||||
+ gint visible = 0;
|
||||
+
|
||||
+ g_return_val_if_fail (GIMP_IS_GIMP (gimp), 0);
|
||||
+
|
||||
+ for (list = GIMP_LIST (gimp->displays)->list;
|
||||
+ list;
|
||||
+ list = g_list_next (list))
|
||||
+ {
|
||||
+ GimpDisplay *display = list->data;
|
||||
+
|
||||
+ if (GTK_WIDGET_DRAWABLE (display->shell))
|
||||
+ {
|
||||
+ GdkWindowState state = gdk_window_get_state (display->shell->window);
|
||||
+
|
||||
+ if ((state & (GDK_WINDOW_STATE_WITHDRAWN |
|
||||
+ GDK_WINDOW_STATE_ICONIFIED)) == 0)
|
||||
+ {
|
||||
+ visible++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return visible;
|
||||
+}
|
||||
+
|
||||
void
|
||||
gimp_displays_set_busy (Gimp *gimp)
|
||||
{
|
||||
diff -up gimp-2.6.6/app/display/gimpdisplay-foreach.h.minimize-dialogs gimp-2.6.6/app/display/gimpdisplay-foreach.h
|
||||
--- gimp-2.6.6/app/display/gimpdisplay-foreach.h.minimize-dialogs 2008-11-20 23:43:04.000000000 +0100
|
||||
+++ gimp-2.6.6/app/display/gimpdisplay-foreach.h 2009-03-30 14:24:05.146606054 +0200
|
||||
@@ -28,6 +28,8 @@ void gimp_displays_reconnect
|
||||
GimpImage *old,
|
||||
GimpImage *new);
|
||||
|
||||
+gint gimp_displays_get_num_visible (Gimp *gimp);
|
||||
+
|
||||
void gimp_displays_set_busy (Gimp *gimp);
|
||||
void gimp_displays_unset_busy (Gimp *gimp);
|
||||
|
||||
diff -up gimp-2.6.6/app/display/gimpdisplayshell.c.minimize-dialogs gimp-2.6.6/app/display/gimpdisplayshell.c
|
||||
--- gimp-2.6.6/app/display/gimpdisplayshell.c.minimize-dialogs 2009-03-15 21:57:09.000000000 +0100
|
||||
+++ gimp-2.6.6/app/display/gimpdisplayshell.c 2009-03-30 14:24:05.147606111 +0200
|
||||
@@ -59,6 +59,7 @@
|
||||
|
||||
#include "gimpcanvas.h"
|
||||
#include "gimpdisplay.h"
|
||||
+#include "gimpdisplay-foreach.h"
|
||||
#include "gimpdisplayoptions.h"
|
||||
#include "gimpdisplayshell.h"
|
||||
#include "gimpdisplayshell-appearance.h"
|
||||
@@ -615,12 +616,12 @@ gimp_display_shell_window_state_event (G
|
||||
GdkEventWindowState *event)
|
||||
{
|
||||
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (widget);
|
||||
+ Gimp *gimp = shell->display->gimp;
|
||||
|
||||
shell->window_state = event->new_window_state;
|
||||
|
||||
if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
|
||||
{
|
||||
- Gimp *gimp = shell->display->gimp;
|
||||
GimpActionGroup *group;
|
||||
gboolean fullscreen;
|
||||
|
||||
@@ -644,6 +645,19 @@ gimp_display_shell_window_state_event (G
|
||||
|
||||
if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED)
|
||||
{
|
||||
+ gboolean iconified = (event->new_window_state &
|
||||
+ GDK_WINDOW_STATE_ICONIFIED) != 0;
|
||||
+
|
||||
+ if (iconified)
|
||||
+ {
|
||||
+ if (gimp_displays_get_num_visible (gimp) == 0)
|
||||
+ gimp_dialog_factories_hide_with_display ();
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ gimp_dialog_factories_show_with_display ();
|
||||
+ }
|
||||
+
|
||||
gimp_display_shell_progress_window_state_changed (shell);
|
||||
}
|
||||
|
||||
diff -up gimp-2.6.6/app/widgets/gimpdialogfactory.c.minimize-dialogs gimp-2.6.6/app/widgets/gimpdialogfactory.c
|
||||
--- gimp-2.6.6/app/widgets/gimpdialogfactory.c.minimize-dialogs 2008-11-20 23:43:05.000000000 +0100
|
||||
+++ gimp-2.6.6/app/widgets/gimpdialogfactory.c 2009-03-30 14:24:05.148606028 +0200
|
||||
@@ -45,6 +45,13 @@
|
||||
#include "gimp-log.h"
|
||||
|
||||
|
||||
+typedef enum
|
||||
+{
|
||||
+ GIMP_DIALOGS_SHOWN,
|
||||
+ GIMP_DIALOGS_HIDDEN_EXPLICITLY, /* user used the Tab key to hide dialogs */
|
||||
+ GIMP_DIALOGS_HIDDEN_WITH_DISPLAY /* dialogs are hidden with the display */
|
||||
+} GimpDialogsState;
|
||||
+
|
||||
enum
|
||||
{
|
||||
DOCK_ADDED,
|
||||
@@ -103,7 +110,7 @@ G_DEFINE_TYPE (GimpDialogFactory, gimp_d
|
||||
|
||||
static guint factory_signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
-static gboolean dialogs_shown = TRUE; /* FIXME */
|
||||
+static GimpDialogsState dialogs_state = GIMP_DIALOGS_SHOWN;
|
||||
|
||||
|
||||
static void
|
||||
@@ -1079,7 +1086,7 @@ gimp_dialog_factory_hide_dialog (GtkWidg
|
||||
|
||||
gtk_widget_hide (dialog);
|
||||
|
||||
- if (! dialogs_shown)
|
||||
+ if (dialogs_state != GIMP_DIALOGS_SHOWN)
|
||||
g_object_set_data (G_OBJECT (dialog), GIMP_DIALOG_VISIBILITY_KEY,
|
||||
GINT_TO_POINTER (GIMP_DIALOG_VISIBILITY_INVISIBLE));
|
||||
}
|
||||
@@ -1122,30 +1129,66 @@ gimp_dialog_factories_session_clear (voi
|
||||
NULL);
|
||||
}
|
||||
|
||||
-void
|
||||
-gimp_dialog_factories_toggle (void)
|
||||
+static void
|
||||
+gimp_dialog_factories_set_state (GimpDialogsState state)
|
||||
{
|
||||
GimpDialogFactoryClass *factory_class;
|
||||
|
||||
factory_class = g_type_class_peek (GIMP_TYPE_DIALOG_FACTORY);
|
||||
|
||||
- if (dialogs_shown)
|
||||
+ dialogs_state = state;
|
||||
+
|
||||
+ if (state == GIMP_DIALOGS_SHOWN)
|
||||
{
|
||||
- dialogs_shown = FALSE;
|
||||
g_hash_table_foreach (factory_class->factories,
|
||||
- (GHFunc) gimp_dialog_factories_hide_foreach,
|
||||
+ (GHFunc) gimp_dialog_factories_show_foreach,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
- dialogs_shown = TRUE;
|
||||
g_hash_table_foreach (factory_class->factories,
|
||||
- (GHFunc) gimp_dialog_factories_show_foreach,
|
||||
+ (GHFunc) gimp_dialog_factories_hide_foreach,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
+gimp_dialog_factories_show_with_display (void)
|
||||
+{
|
||||
+ if (dialogs_state == GIMP_DIALOGS_HIDDEN_WITH_DISPLAY)
|
||||
+ {
|
||||
+ gimp_dialog_factories_set_state (GIMP_DIALOGS_SHOWN);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+gimp_dialog_factories_hide_with_display (void)
|
||||
+{
|
||||
+ if (dialogs_state == GIMP_DIALOGS_SHOWN)
|
||||
+ {
|
||||
+ gimp_dialog_factories_set_state (GIMP_DIALOGS_HIDDEN_WITH_DISPLAY);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+gimp_dialog_factories_toggle (void)
|
||||
+{
|
||||
+ switch (dialogs_state)
|
||||
+ {
|
||||
+ case GIMP_DIALOGS_SHOWN:
|
||||
+ gimp_dialog_factories_set_state (GIMP_DIALOGS_HIDDEN_EXPLICITLY);
|
||||
+ break;
|
||||
+
|
||||
+ case GIMP_DIALOGS_HIDDEN_EXPLICITLY:
|
||||
+ gimp_dialog_factories_set_state (GIMP_DIALOGS_SHOWN);
|
||||
+ break;
|
||||
+
|
||||
+ case GIMP_DIALOGS_HIDDEN_WITH_DISPLAY:
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
gimp_dialog_factories_set_busy (void)
|
||||
{
|
||||
GimpDialogFactoryClass *factory_class;
|
||||
diff -up gimp-2.6.6/app/widgets/gimpdialogfactory.h.minimize-dialogs gimp-2.6.6/app/widgets/gimpdialogfactory.h
|
||||
--- gimp-2.6.6/app/widgets/gimpdialogfactory.h.minimize-dialogs 2008-11-20 23:43:05.000000000 +0100
|
||||
+++ gimp-2.6.6/app/widgets/gimpdialogfactory.h 2009-03-30 14:24:05.149601894 +0200
|
||||
@@ -103,74 +103,77 @@ struct _GimpDialogFactoryClass
|
||||
};
|
||||
|
||||
|
||||
-GType gimp_dialog_factory_get_type (void) G_GNUC_CONST;
|
||||
+GType gimp_dialog_factory_get_type (void) G_GNUC_CONST;
|
||||
|
||||
-GimpDialogFactory * gimp_dialog_factory_new (const gchar *name,
|
||||
- GimpContext *context,
|
||||
- GimpMenuFactory *menu_factory,
|
||||
- GimpDialogNewFunc new_dock_func,
|
||||
- gboolean toggle_visibility);
|
||||
-
|
||||
-GimpDialogFactory * gimp_dialog_factory_from_name (const gchar *name);
|
||||
-
|
||||
-void gimp_dialog_factory_set_constructor (GimpDialogFactory *factory,
|
||||
- GimpDialogConstructor constructor);
|
||||
-
|
||||
-void gimp_dialog_factory_register_entry (GimpDialogFactory *factory,
|
||||
- const gchar *identifier,
|
||||
- const gchar *name,
|
||||
- const gchar *blurb,
|
||||
- const gchar *stock_id,
|
||||
- const gchar *help_id,
|
||||
- GimpDialogNewFunc new_func,
|
||||
- gint view_size,
|
||||
- gboolean singleton,
|
||||
- gboolean session_managed,
|
||||
- gboolean remember_size,
|
||||
- gboolean remember_if_open);
|
||||
+GimpDialogFactory * gimp_dialog_factory_new (const gchar *name,
|
||||
+ GimpContext *context,
|
||||
+ GimpMenuFactory *menu_factory,
|
||||
+ GimpDialogNewFunc new_dock_func,
|
||||
+ gboolean toggle_visibility);
|
||||
+
|
||||
+GimpDialogFactory * gimp_dialog_factory_from_name (const gchar *name);
|
||||
+
|
||||
+void gimp_dialog_factory_set_constructor (GimpDialogFactory *factory,
|
||||
+ GimpDialogConstructor constructor);
|
||||
+
|
||||
+void gimp_dialog_factory_register_entry (GimpDialogFactory *factory,
|
||||
+ const gchar *identifier,
|
||||
+ const gchar *name,
|
||||
+ const gchar *blurb,
|
||||
+ const gchar *stock_id,
|
||||
+ const gchar *help_id,
|
||||
+ GimpDialogNewFunc new_func,
|
||||
+ gint view_size,
|
||||
+ gboolean singleton,
|
||||
+ gboolean session_managed,
|
||||
+ gboolean remember_size,
|
||||
+ gboolean remember_if_open);
|
||||
GimpDialogFactoryEntry * gimp_dialog_factory_find_entry
|
||||
- (GimpDialogFactory *factory,
|
||||
- const gchar *identifier);
|
||||
+ (GimpDialogFactory *factory,
|
||||
+ const gchar *identifier);
|
||||
|
||||
GimpSessionInfo * gimp_dialog_factory_find_session_info
|
||||
- (GimpDialogFactory *factory,
|
||||
- const gchar *identifier);
|
||||
+ (GimpDialogFactory *factory,
|
||||
+ const gchar *identifier);
|
||||
|
||||
-GtkWidget * gimp_dialog_factory_dialog_new (GimpDialogFactory *factory,
|
||||
- GdkScreen *screen,
|
||||
- const gchar *identifier,
|
||||
- gint view_size,
|
||||
- gboolean present);
|
||||
-GtkWidget * gimp_dialog_factory_dialog_raise (GimpDialogFactory *factory,
|
||||
- GdkScreen *screen,
|
||||
- const gchar *identifiers,
|
||||
- gint view_size);
|
||||
-GtkWidget * gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
|
||||
- GimpDock *dock,
|
||||
- const gchar *identifier,
|
||||
- gint view_size);
|
||||
-GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
|
||||
- GdkScreen *screen);
|
||||
-
|
||||
-void gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
|
||||
- GtkWidget *dialog);
|
||||
-void gimp_dialog_factory_add_foreign (GimpDialogFactory *factory,
|
||||
- const gchar *identifier,
|
||||
- GtkWidget *dialog);
|
||||
-void gimp_dialog_factory_remove_dialog (GimpDialogFactory *factory,
|
||||
- GtkWidget *dialog);
|
||||
-
|
||||
-void gimp_dialog_factory_show_toolbox (GimpDialogFactory *toolbox_factory);
|
||||
-
|
||||
-void gimp_dialog_factory_hide_dialog (GtkWidget *dialog);
|
||||
-
|
||||
-void gimp_dialog_factories_session_save (GimpConfigWriter *writer);
|
||||
-void gimp_dialog_factories_session_restore (void);
|
||||
-void gimp_dialog_factories_session_clear (void);
|
||||
-
|
||||
-void gimp_dialog_factories_toggle (void);
|
||||
-void gimp_dialog_factories_set_busy (void);
|
||||
-void gimp_dialog_factories_unset_busy (void);
|
||||
+GtkWidget * gimp_dialog_factory_dialog_new (GimpDialogFactory *factory,
|
||||
+ GdkScreen *screen,
|
||||
+ const gchar *identifier,
|
||||
+ gint view_size,
|
||||
+ gboolean present);
|
||||
+GtkWidget * gimp_dialog_factory_dialog_raise (GimpDialogFactory *factory,
|
||||
+ GdkScreen *screen,
|
||||
+ const gchar *identifiers,
|
||||
+ gint view_size);
|
||||
+GtkWidget * gimp_dialog_factory_dockable_new (GimpDialogFactory *factory,
|
||||
+ GimpDock *dock,
|
||||
+ const gchar *identifier,
|
||||
+ gint view_size);
|
||||
+GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory,
|
||||
+ GdkScreen *screen);
|
||||
+
|
||||
+void gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
|
||||
+ GtkWidget *dialog);
|
||||
+void gimp_dialog_factory_add_foreign (GimpDialogFactory *factory,
|
||||
+ const gchar *identifier,
|
||||
+ GtkWidget *dialog);
|
||||
+void gimp_dialog_factory_remove_dialog (GimpDialogFactory *factory,
|
||||
+ GtkWidget *dialog);
|
||||
+
|
||||
+void gimp_dialog_factory_show_toolbox (GimpDialogFactory *toolbox_factory);
|
||||
+
|
||||
+void gimp_dialog_factory_hide_dialog (GtkWidget *dialog);
|
||||
+
|
||||
+void gimp_dialog_factories_session_save (GimpConfigWriter *writer);
|
||||
+void gimp_dialog_factories_session_restore (void);
|
||||
+void gimp_dialog_factories_session_clear (void);
|
||||
+
|
||||
+void gimp_dialog_factories_show_with_display (void);
|
||||
+void gimp_dialog_factories_hide_with_display (void);
|
||||
+void gimp_dialog_factories_toggle (void);
|
||||
+
|
||||
+void gimp_dialog_factories_set_busy (void);
|
||||
+void gimp_dialog_factories_unset_busy (void);
|
||||
|
||||
GimpDialogFactory *
|
||||
gimp_dialog_factory_from_widget (GtkWidget *dialog,
|
@ -1,45 +0,0 @@
|
||||
commit f6f34fd0cd6d523cc472351bcdc9b9ae180aac41
|
||||
Author: Sven Neumann <sven@gimp.org>
|
||||
Date: Mon Nov 3 16:39:20 2008 +0000
|
||||
|
||||
patch: jpeg-units
|
||||
|
||||
Bug 559081 – JPEG Save dialog preview should adjust size units
|
||||
|
||||
2008-11-03 Sven Neumann <sven@gimp.org>
|
||||
|
||||
Bug 559081 – JPEG Save dialog preview should adjust size units
|
||||
|
||||
* plug-ins/file-jpeg/jpeg-save.c: use
|
||||
g_format_size_for_display()
|
||||
to display the JPEG file size.
|
||||
|
||||
svn path=/trunk/; revision=27532
|
||||
|
||||
Signed-off-by: Nils Philippsen <nils@redhat.com>
|
||||
|
||||
diff --git a/plug-ins/file-jpeg/jpeg-save.c b/plug-ins/file-jpeg/jpeg-save.c
|
||||
index 2d0d249..35cda17 100644
|
||||
--- a/plug-ins/file-jpeg/jpeg-save.c
|
||||
+++ b/plug-ins/file-jpeg/jpeg-save.c
|
||||
@@ -192,14 +192,14 @@ background_jpeg_save (PreviewPersistent *pp)
|
||||
/* display the preview stuff */
|
||||
if (!pp->abort_me)
|
||||
{
|
||||
- struct stat buf;
|
||||
- gchar temp[128];
|
||||
+ struct stat buf;
|
||||
+ gchar *text;
|
||||
|
||||
g_stat (pp->file_name, &buf);
|
||||
- g_snprintf (temp, sizeof (temp),
|
||||
- _("File size: %02.01f kB"),
|
||||
- (gdouble) (buf.st_size) / 1024.0);
|
||||
- gtk_label_set_text (GTK_LABEL (preview_size), temp);
|
||||
+ text = g_strdup_printf (_("File size: %s"),
|
||||
+ g_format_size_for_display (buf.st_size));
|
||||
+ gtk_label_set_text (GTK_LABEL (preview_size), text);
|
||||
+ g_free (text);
|
||||
|
||||
/* and load the preview */
|
||||
load_image (pp->file_name, GIMP_RUN_NONINTERACTIVE, TRUE, NULL);
|
@ -1,616 +0,0 @@
|
||||
From 4dcab3c2904353c0a175765657316bbfc78af0d2 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu, 25 Feb 2010 18:04:18 +0100
|
||||
Subject: [PATCH] patch: gold
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit afd331aca4c7cb4a0b53c7b0276253aab82424ae
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
selection-to-path: explicitly specify library dependencies
|
||||
|
||||
commit db8abcd13a4d553d1f3e50e6fb0cc19a7c9f6ae5
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
pagecurl: explicitly specify library dependencies
|
||||
|
||||
commit 9d4e2aad81e339ae3e2971b7c12d3ae12bd60220
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
map-object: explicitly specify library dependencies
|
||||
|
||||
commit 257047325c0fb9297d764f34a6d4742fcfb837b7
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
lighting: explicitly specify library dependencies
|
||||
|
||||
commit 709c245217a301652c1e5a3a288f5ae7c101aa33
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
imagemap: explicitly specify library dependencies
|
||||
|
||||
commit a40311f72b994c5ffb37a206e7d40ffc099c8205
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
ifs-compose: explicitly specify library dependencies
|
||||
|
||||
commit aebab1503e2065fe7665abd5818def52603e2eec
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
gradient-flare: explicitly specify library dependencies
|
||||
|
||||
commit 0c7c425d1acdfecf64b453681df25cb08e344338
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
gimpressionist: explicitly specify library dependencies
|
||||
|
||||
commit 2822fbfd9c0c1c099047d99d41ae9de8c8d52dc3
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
gfig: explicitly specify library dependencies
|
||||
|
||||
commit 4c0fd7d3f63f25a112271422cecef1b8958a94f9
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
fractal-explorer: explicitly specify library dependencies
|
||||
|
||||
commit 17e154a2856d0e97ebd76c706b6238fb3b40e74e
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:36:20 2010 +0100
|
||||
|
||||
flame: explicitly specify library dependencies
|
||||
|
||||
commit f7fadce58851854abb1ed54ce0141c8dc0434c12
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Feb 25 15:11:04 2010 +0100
|
||||
|
||||
color-rotate: explicitly specify library dependencies
|
||||
|
||||
commit abbb6a2472e7e31e3aaa30c772f8f5dbaaf476c5
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Wed Feb 24 15:40:50 2010 +0100
|
||||
|
||||
script-fu: explicitly specify library dependencies
|
||||
|
||||
commit da5ee1fe718d9bbbda6c786ebf0f4ded43a7a246
|
||||
Author: Manish Singh <yosh@gimp.org>
|
||||
Date: Wed Sep 9 17:41:20 2009 -0700
|
||||
|
||||
Explicit shared lib deps to support gold
|
||||
|
||||
(attempted cherry-picking from commit
|
||||
15497c1d6808b1ea479574b0b3e132484f7f172f, resolved conflicts)
|
||||
|
||||
Signed-off-by: Nils Philippsen <nils@redhat.com>
|
||||
|
||||
commit 7cae0f249a5d2110a596f3fb22cdd33b07b05f1c
|
||||
Author: Manish Singh <yosh@gimp.org>
|
||||
Date: Sun May 24 10:42:39 2009 -0700
|
||||
|
||||
Explicitly specify library dependencies at link time, so we can use gold.
|
||||
(cherry picked from commit 582cb0f14eb9f145bd2a2f5c9fda12309ae0229f)
|
||||
|
||||
Signed-off-by: Nils Philippsen <nils@redhat.com>
|
||||
---
|
||||
libgimpthumb/Makefile.am | 5 ++++-
|
||||
plug-ins/color-rotate/Makefile.am | 12 +++++++-----
|
||||
plug-ins/common/Makefile.am | 11 ++++++-----
|
||||
plug-ins/common/mkgen.pl | 11 ++++++-----
|
||||
plug-ins/flame/Makefile.am | 12 +++++++-----
|
||||
plug-ins/fractal-explorer/Makefile.am | 12 +++++++-----
|
||||
plug-ins/gfig/Makefile.am | 12 +++++++-----
|
||||
plug-ins/gimpressionist/Makefile.am | 12 +++++++-----
|
||||
plug-ins/gradient-flare/Makefile.am | 12 +++++++-----
|
||||
plug-ins/help-browser/Makefile.am | 1 +
|
||||
plug-ins/ifs-compose/Makefile.am | 12 +++++++-----
|
||||
plug-ins/imagemap/Makefile.am | 12 +++++++-----
|
||||
plug-ins/lighting/Makefile.am | 12 +++++++-----
|
||||
plug-ins/map-object/Makefile.am | 12 +++++++-----
|
||||
plug-ins/metadata/Makefile.am | 5 ++++-
|
||||
plug-ins/pagecurl/Makefile.am | 12 +++++++-----
|
||||
plug-ins/script-fu/Makefile.am | 14 ++++++++------
|
||||
plug-ins/selection-to-path/Makefile.am | 12 +++++++-----
|
||||
18 files changed, 113 insertions(+), 78 deletions(-)
|
||||
|
||||
diff --git a/libgimpthumb/Makefile.am b/libgimpthumb/Makefile.am
|
||||
index 2e7b531..ee26219 100644
|
||||
--- a/libgimpthumb/Makefile.am
|
||||
+++ b/libgimpthumb/Makefile.am
|
||||
@@ -86,7 +86,10 @@ noinst_PROGRAMS = gimp-thumbnail-list
|
||||
|
||||
gimp_thumbnail_list_SOURCES = gimp-thumbnail-list.c
|
||||
|
||||
-gimp_thumbnail_list_LDADD = libgimpthumb-$(GIMP_API_VERSION).la
|
||||
+gimp_thumbnail_list_LDADD = \
|
||||
+ libgimpthumb-$(GIMP_API_VERSION).la \
|
||||
+ $(GDK_PIXBUF_LIBS) \
|
||||
+ $(GLIB_LIBS)
|
||||
|
||||
|
||||
install-data-local: install-ms-lib install-libtool-import-lib
|
||||
diff --git a/plug-ins/color-rotate/Makefile.am b/plug-ins/color-rotate/Makefile.am
|
||||
index c713c8c..f7e11b7 100644
|
||||
--- a/plug-ins/color-rotate/Makefile.am
|
||||
+++ b/plug-ins/color-rotate/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/common/Makefile.am b/plug-ins/common/Makefile.am
|
||||
index 66dc6dd..d58ecee 100644
|
||||
--- a/plug-ins/common/Makefile.am
|
||||
+++ b/plug-ins/common/Makefile.am
|
||||
@@ -7,21 +7,22 @@
|
||||
## Modify those two files instead of this one; for most
|
||||
## plug-ins you should only need to modify plugin-defs.pl.
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
libgimpmodule = $(top_builddir)/libgimpmodule/libgimpmodule-$(GIMP_API_VERSION).la
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
-
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
libexecdir = $(gimpplugindir)/plug-ins
|
||||
diff --git a/plug-ins/common/mkgen.pl b/plug-ins/common/mkgen.pl
|
||||
index 40b4b74..b0cd786 100755
|
||||
--- a/plug-ins/common/mkgen.pl
|
||||
+++ b/plug-ins/common/mkgen.pl
|
||||
@@ -51,21 +51,22 @@ print MK <<EOT;
|
||||
## Modify those two files instead of this one; for most
|
||||
## plug-ins you should only need to modify plugin-defs.pl.
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
|
||||
libgimp = \$(top_builddir)/libgimp/libgimp-\$(GIMP_API_VERSION).la
|
||||
libgimpbase = \$(top_builddir)/libgimpbase/libgimpbase-\$(GIMP_API_VERSION).la
|
||||
libgimpcolor = \$(top_builddir)/libgimpcolor/libgimpcolor-\$(GIMP_API_VERSION).la
|
||||
libgimpconfig = \$(top_builddir)/libgimpconfig/libgimpconfig-\$(GIMP_API_VERSION).la
|
||||
-libgimpmath = \$(top_builddir)/libgimpmath/libgimpmath-\$(GIMP_API_VERSION).la
|
||||
+libgimpmath = \$(top_builddir)/libgimpmath/libgimpmath-\$(GIMP_API_VERSION).la \$(libm)
|
||||
libgimpmodule = \$(top_builddir)/libgimpmodule/libgimpmodule-\$(GIMP_API_VERSION).la
|
||||
libgimpui = \$(top_builddir)/libgimp/libgimpui-\$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = \$(top_builddir)/libgimpwidgets/libgimpwidgets-\$(GIMP_API_VERSION).la
|
||||
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
-
|
||||
AM_LDFLAGS = \$(mwindows)
|
||||
|
||||
libexecdir = \$(gimpplugindir)/plug-ins
|
||||
diff --git a/plug-ins/flame/Makefile.am b/plug-ins/flame/Makefile.am
|
||||
index 262a9aa..417ea31 100644
|
||||
--- a/plug-ins/flame/Makefile.am
|
||||
+++ b/plug-ins/flame/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/fractal-explorer/Makefile.am b/plug-ins/fractal-explorer/Makefile.am
|
||||
index 16ae83a..b7b09af 100644
|
||||
--- a/plug-ins/fractal-explorer/Makefile.am
|
||||
+++ b/plug-ins/fractal-explorer/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/gfig/Makefile.am b/plug-ins/gfig/Makefile.am
|
||||
index b0a3ae7..8c25d59 100644
|
||||
--- a/plug-ins/gfig/Makefile.am
|
||||
+++ b/plug-ins/gfig/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/gimpressionist/Makefile.am b/plug-ins/gimpressionist/Makefile.am
|
||||
index bdca573..69ef428 100644
|
||||
--- a/plug-ins/gimpressionist/Makefile.am
|
||||
+++ b/plug-ins/gimpressionist/Makefile.am
|
||||
@@ -1,19 +1,21 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
SUBDIRS = Brushes Paper Presets
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
-
|
||||
AM_CPPFLAGS = \
|
||||
-DDEFAULTPATH=\""~/$(gimpdir)/gimpressionist:$(gimpdatadir)/gimpressionist"\"
|
||||
|
||||
diff --git a/plug-ins/gradient-flare/Makefile.am b/plug-ins/gradient-flare/Makefile.am
|
||||
index 8597665..ecb8d75 100644
|
||||
--- a/plug-ins/gradient-flare/Makefile.am
|
||||
+++ b/plug-ins/gradient-flare/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/help-browser/Makefile.am b/plug-ins/help-browser/Makefile.am
|
||||
index 14fbe02..7360433 100644
|
||||
--- a/plug-ins/help-browser/Makefile.am
|
||||
+++ b/plug-ins/help-browser/Makefile.am
|
||||
@@ -36,6 +36,7 @@ LDADD = \
|
||||
$(libgimpbase) \
|
||||
$(WEBKIT_LIBS) \
|
||||
$(GIO_LIBS) \
|
||||
+ $(GLIB_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
diff --git a/plug-ins/ifs-compose/Makefile.am b/plug-ins/ifs-compose/Makefile.am
|
||||
index 6e2de02..c758863 100644
|
||||
--- a/plug-ins/ifs-compose/Makefile.am
|
||||
+++ b/plug-ins/ifs-compose/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/imagemap/Makefile.am b/plug-ins/imagemap/Makefile.am
|
||||
index 1c06f94..0324900 100644
|
||||
--- a/plug-ins/imagemap/Makefile.am
|
||||
+++ b/plug-ins/imagemap/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
diff --git a/plug-ins/lighting/Makefile.am b/plug-ins/lighting/Makefile.am
|
||||
index 1bf79fc..0a7b463 100644
|
||||
--- a/plug-ins/lighting/Makefile.am
|
||||
+++ b/plug-ins/lighting/Makefile.am
|
||||
@@ -1,17 +1,19 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
-
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
SUBDIRS = images
|
||||
diff --git a/plug-ins/map-object/Makefile.am b/plug-ins/map-object/Makefile.am
|
||||
index 2f7b7bc..62be8e8 100644
|
||||
--- a/plug-ins/map-object/Makefile.am
|
||||
+++ b/plug-ins/map-object/Makefile.am
|
||||
@@ -1,17 +1,19 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
-
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
libexecdir = $(gimpplugindir)/plug-ins
|
||||
diff --git a/plug-ins/metadata/Makefile.am b/plug-ins/metadata/Makefile.am
|
||||
index dd9bb3d..935b069 100644
|
||||
--- a/plug-ins/metadata/Makefile.am
|
||||
+++ b/plug-ins/metadata/Makefile.am
|
||||
@@ -55,11 +55,14 @@ INCLUDES = \
|
||||
-I$(includedir)
|
||||
|
||||
LDADD = \
|
||||
+ $(libgimpui) \
|
||||
+ $(libgimpwidgets) \
|
||||
$(libgimp) \
|
||||
+ $(libgimpmath) \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(libgimpmath) \
|
||||
+ $(EXIF_LIBS) \
|
||||
$(GTK_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
diff --git a/plug-ins/pagecurl/Makefile.am b/plug-ins/pagecurl/Makefile.am
|
||||
index 2a6eafb..2eeb422 100644
|
||||
--- a/plug-ins/pagecurl/Makefile.am
|
||||
+++ b/plug-ins/pagecurl/Makefile.am
|
||||
@@ -1,17 +1,19 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
-
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
libexecdir = $(gimpplugindir)/plug-ins
|
||||
diff --git a/plug-ins/script-fu/Makefile.am b/plug-ins/script-fu/Makefile.am
|
||||
index 3075b83..824d62d 100644
|
||||
--- a/plug-ins/script-fu/Makefile.am
|
||||
+++ b/plug-ins/script-fu/Makefile.am
|
||||
@@ -1,21 +1,23 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+WINSOCK_LIBS = -lws2_32
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
libtinyscheme=tinyscheme/libtinyscheme.a
|
||||
libftx=ftx/libftx.a
|
||||
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-WINSOCK_LIBS = -lws2_32
|
||||
-endif
|
||||
-
|
||||
AM_CFLAGS = \
|
||||
-DSTANDALONE=0 \
|
||||
-DUSE_INTERFACE=1 \
|
||||
diff --git a/plug-ins/selection-to-path/Makefile.am b/plug-ins/selection-to-path/Makefile.am
|
||||
index 7e3ac65..194b5dc 100644
|
||||
--- a/plug-ins/selection-to-path/Makefile.am
|
||||
+++ b/plug-ins/selection-to-path/Makefile.am
|
||||
@@ -1,16 +1,18 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
+if OS_WIN32
|
||||
+mwindows = -mwindows
|
||||
+else
|
||||
+libm = -lm
|
||||
+endif
|
||||
+
|
||||
libgimpui = $(top_builddir)/libgimp/libgimpui-$(GIMP_API_VERSION).la
|
||||
libgimpconfig = $(top_builddir)/libgimpconfig/libgimpconfig-$(GIMP_API_VERSION).la
|
||||
libgimpwidgets = $(top_builddir)/libgimpwidgets/libgimpwidgets-$(GIMP_API_VERSION).la
|
||||
libgimp = $(top_builddir)/libgimp/libgimp-$(GIMP_API_VERSION).la
|
||||
libgimpcolor = $(top_builddir)/libgimpcolor/libgimpcolor-$(GIMP_API_VERSION).la
|
||||
libgimpbase = $(top_builddir)/libgimpbase/libgimpbase-$(GIMP_API_VERSION).la
|
||||
-libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la
|
||||
-
|
||||
-if OS_WIN32
|
||||
-mwindows = -mwindows
|
||||
-endif
|
||||
+libgimpmath = $(top_builddir)/libgimpmath/libgimpmath-$(GIMP_API_VERSION).la $(libm)
|
||||
|
||||
AM_LDFLAGS = $(mwindows)
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
421
gimp.spec
421
gimp.spec
@ -17,33 +17,54 @@
|
||||
%bcond_without gutenprint
|
||||
# convenience: install convenience symlinks
|
||||
%bcond_without convenience
|
||||
# hal: use HAL to discover special input devices
|
||||
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
|
||||
# don't use HAL from F-16/RHEL7 on
|
||||
%bcond_with hal
|
||||
# gudev: use gudev to discover special input devices
|
||||
%if ! 0%{?fedora}%{?rhel} || 0%{?fedora} >= 15 || 0%{?rhel} >= 7
|
||||
# use gudev from F-15/RHEL7 on
|
||||
%bcond_without gudev
|
||||
%else
|
||||
%bcond_without hal
|
||||
%bcond_with gudev
|
||||
%endif
|
||||
# aalib: build with AAlib (ASCII art gfx library)
|
||||
%if 0%{?rhel} != 0
|
||||
%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
|
||||
# Reset this once poppler picks up the updated xpdf version of "GPLv2 or GPLv3"
|
||||
%bcond_with poppler
|
||||
|
||||
|
||||
Summary: GNU Image Manipulation Program
|
||||
Name: gimp
|
||||
Epoch: 2
|
||||
Version: 2.6.11
|
||||
Release: 21%{?dist}
|
||||
%define binver 2.6
|
||||
%define gimp_lang_ver 20
|
||||
%define interfacever 2.0
|
||||
%define age 0
|
||||
%define minorver 600
|
||||
%define microver %(ver=%{version}; echo ${ver##*.*.})
|
||||
License: GPLv2+
|
||||
Version: 2.7.3
|
||||
Release: 1%{?dist}
|
||||
|
||||
# Set this to 0 in stable, 1 in unstable releases
|
||||
%global unstable 1
|
||||
|
||||
# Compute some version related macros
|
||||
# Ugly hack, you need to get your quoting backslashes/percent signs straight
|
||||
%global major %(ver=%version; echo ${ver%%%%.*})
|
||||
%global minor %(ver=%version; ver=${ver#%major.}; echo ${ver%%%%.*})
|
||||
%global micro %(ver=%version; ver=${ver#%major.%minor.}; echo ${ver%%%%.*})
|
||||
%global binver %major.%minor
|
||||
%global interface_age 0
|
||||
%global gettext_version 20
|
||||
%global lib_api_version 2.0
|
||||
%if ! %unstable
|
||||
%global lib_minor %(echo $[%minor * 100])
|
||||
%global lib_micro %micro
|
||||
%else # unstable
|
||||
%global lib_minor %(echo $[%minor * 100 + %micro])
|
||||
%global lib_micro 0
|
||||
%endif # unstable
|
||||
|
||||
License: GPLv3+
|
||||
Group: Applications/Multimedia
|
||||
URL: http://www.gimp.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%__id_u -n)
|
||||
@ -54,34 +75,40 @@ BuildRequires: chrpath >= 0.13-5
|
||||
BuildRequires: aalib-devel
|
||||
%endif
|
||||
BuildRequires: alsa-lib-devel >= 1.0.0
|
||||
BuildRequires: babl-devel >= 0.0.22
|
||||
BuildRequires: cairo-devel >= 1.4.10
|
||||
BuildRequires: babl-devel >= 0.1.4
|
||||
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: freetype-devel >= 2.1.7
|
||||
BuildRequires: gegl-devel >= 0.0.18
|
||||
BuildRequires: glib2-devel >= 2.16.1
|
||||
BuildRequires: gdk-pixbuf2-devel >= 2.22.1
|
||||
BuildRequires: gegl-devel >= 0.1.6
|
||||
BuildRequires: glib2-devel >= 2.28.1
|
||||
BuildRequires: gnome-keyring-devel >= 0.4.5
|
||||
BuildRequires: gtk2-devel >= 2.12.5
|
||||
BuildRequires: gtk2-devel >= 2.24.3
|
||||
BuildRequires: gtk-doc >= 1.0
|
||||
%if %{with hal}
|
||||
BuildRequires: hal-devel >= 0.5.7
|
||||
%endif
|
||||
BuildRequires: jasper-devel
|
||||
BuildRequires: libexif-devel >= 0.6.15
|
||||
BuildRequires: libgnomeui-devel >= 2.10.0
|
||||
%if %{with gudev}
|
||||
BuildRequires: libgudev1-devel >= 167
|
||||
%else
|
||||
BuildRequires: hal-devel >= 0.5.7
|
||||
%endif
|
||||
BuildRequires: libjpeg-devel
|
||||
BuildRequires: libmng-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libpng-devel >= 1.2.37
|
||||
BuildRequires: librsvg2-devel >= 2.14.0
|
||||
BuildRequires: libtiff-devel
|
||||
BuildRequires: libwmf-devel >= 0.2.8
|
||||
BuildRequires: pango-devel >= 1.18.0
|
||||
BuildRequires: pango-devel >= 1.22.0
|
||||
%if %{with poppler}
|
||||
%if 0%{?fedora}%{?rhel} == 0 || 0%{?fedora} > 8 || 0%{?rhel} > 5
|
||||
BuildRequires: poppler-glib-devel >= 0.4.1
|
||||
%else
|
||||
BuildRequires: poppler-devel >= 0.4.1
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: pygtk2-devel >= 2.10.4
|
||||
BuildRequires: pygobject2-devel
|
||||
@ -101,9 +128,9 @@ BuildRequires: findutils
|
||||
BuildRequires: lcms-devel >= 1.16
|
||||
%endif
|
||||
|
||||
Requires: glib2 >= 2.16.1
|
||||
Requires: gtk2 >= 2.12.5
|
||||
Requires: pango >= 1.18.0
|
||||
Requires: glib2 >= 2.28.1
|
||||
Requires: gtk2 >= 2.24.3
|
||||
Requires: pango >= 1.22.0
|
||||
Requires: freetype >= 2.1.7
|
||||
Requires: fontconfig >= 2.2.0
|
||||
%if ! %{with print}
|
||||
@ -119,44 +146,6 @@ Requires: xdg-utils
|
||||
Requires: gimp-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
Source0: ftp://ftp.gimp.org/pub/gimp/v%{binver}/gimp-%{version}.tar.bz2
|
||||
# distro specific: use xdg-open instead of firefox as web browser
|
||||
Patch0: gimp-2.6.2-xdg-open.patch
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=559081
|
||||
# "JPEG Save dialog preview should adjust size units"
|
||||
Patch1: gimp-2.6.7-jpeg-units.patch
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=556896
|
||||
# "Dialogs don't get minimized with single image window"
|
||||
Patch2: gimp-2.6.6-minimize-dialogs.patch
|
||||
# backport: fix building with "gold" linker
|
||||
Patch3: gimp-2.6.8-gold.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=198367
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=623045
|
||||
# make script-fu logging IPv6 aware
|
||||
Patch4: gimp-2.6.10-script-fu-ipv6.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=651002
|
||||
# avoid traceback in colorxhtml plugin, upstreamed
|
||||
Patch5: gimp-2.6.11-colorxhtml.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=667958
|
||||
# avoid traceback in pyslice plugin, upstreamed
|
||||
Patch6: gimp-2.6.11-pyslice.patch
|
||||
# backport: work with poppler-0.17, upstreamed
|
||||
Patch7: gimp-2.6.11-poppler-0.17.patch
|
||||
# backport: CVE-2010-4543, CVE-2011-1782
|
||||
# harden PSP plugin against bogus input data
|
||||
Patch8: gimp-2.6.11-psp-overflow.patch
|
||||
# backport: CVE-2010-4540, CVE-2010-4541, CVE-2010-4542
|
||||
# fix buffer overflows in sphere-designer, gfig, lighting plugins
|
||||
Patch9: gimp-2.6.11-CVE-2010-4540,4541,4542.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=711952
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=652280
|
||||
# guard against crash due to quitting while DND is processed, upstreamed
|
||||
Patch10: gimp-2.6.11-shell-dnd-quit-crash.patch
|
||||
# backport: fix goption warning on startup
|
||||
Patch11: gimp-2.6.11-startup-warning.patch
|
||||
# CVE-2011-2896: fix heap corruption and buffer overflow, upstreamed
|
||||
Patch12: gimp-2.6.11-gif-load.patch
|
||||
# files changed by autoreconf after applying the above
|
||||
Patch100: gimp-2.6.11-11-autoreconf.patch.bz2
|
||||
|
||||
%description
|
||||
GIMP (GNU Image Manipulation Program) is a powerful image composition and
|
||||
@ -166,20 +155,32 @@ 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
|
||||
with multi-level undo.
|
||||
%if %unstable
|
||||
This is an UNSTABLE development version of GIMP. Please report bugs in the
|
||||
program upstream:
|
||||
|
||||
https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP&version=%version
|
||||
%endif
|
||||
|
||||
%package libs
|
||||
Summary: GIMP libraries
|
||||
Group: System Environment/Libraries
|
||||
License: LGPLv2+
|
||||
License: LGPLv3+
|
||||
|
||||
%description libs
|
||||
The gimp-libs package contains shared libraries needed for the GNU Image
|
||||
Manipulation Program (GIMP).
|
||||
%if %unstable
|
||||
This is an UNSTABLE development version of GIMP. Please report bugs in the
|
||||
program upstream:
|
||||
|
||||
https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP&version=%version
|
||||
%endif
|
||||
|
||||
%package devel
|
||||
Summary: GIMP plugin and extension development kit
|
||||
Group: Development/Libraries
|
||||
License: LGPLv2+
|
||||
License: LGPLv3+
|
||||
Requires: gimp-libs%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: gimp-devel-tools = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: gtk2-devel
|
||||
@ -190,75 +191,83 @@ Requires: pkgconfig
|
||||
The gimp-devel package contains the static libraries and header files
|
||||
for writing GNU Image Manipulation Program (GIMP) plug-ins and
|
||||
extensions.
|
||||
%if %unstable
|
||||
This is an UNSTABLE development version of GIMP. Please report bugs in the
|
||||
program upstream:
|
||||
|
||||
https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP&version=%version
|
||||
%endif
|
||||
|
||||
%package devel-tools
|
||||
Summary: GIMP plugin and extension development tools
|
||||
Group: Development/Tools
|
||||
License: LGPLv2+
|
||||
License: LGPLv3+
|
||||
Requires: gimp-devel = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description devel-tools
|
||||
The gimp-devel-tools package contains gimptool, a helper program to build GNU
|
||||
Image Manipulation Program (GIMP) plug-ins and extensions.
|
||||
%if %unstable
|
||||
This is an UNSTABLE development version of GIMP. Please report bugs in the
|
||||
program upstream:
|
||||
|
||||
https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP&version=%version
|
||||
%endif
|
||||
|
||||
%package help-browser
|
||||
Summary: GIMP help browser plug-in
|
||||
Group: Applications/Multimedia
|
||||
License: GPLv2+
|
||||
License: GPLv3+
|
||||
Obsoletes: gimp < 2:2.6.0-3
|
||||
Requires: gimp%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description help-browser
|
||||
The gimp-help-browser package contains a lightweight help browser plugin for
|
||||
viewing GIMP online help.
|
||||
%if %unstable
|
||||
This is an UNSTABLE development version of GIMP. Please report bugs in the
|
||||
program upstream:
|
||||
|
||||
https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP&version=%version
|
||||
%endif
|
||||
|
||||
%prep
|
||||
cat << EOF
|
||||
|
||||
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 HAL: %{with hal}
|
||||
--- 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}
|
||||
%{with gutenprint}
|
||||
%endif
|
||||
build ASCII art plugin %{with aalib}
|
||||
|
||||
|
||||
build ASCII art plugin %{with aalib}
|
||||
harden binaries: %{with hardening}
|
||||
use poppler: %{with poppler}
|
||||
--- >8 ---------------------------------------------------------------------
|
||||
EOF
|
||||
|
||||
%setup -q -n gimp-%{version}
|
||||
|
||||
%patch0 -p1 -b .xdg-open
|
||||
%patch1 -p1 -b .jpeg-units
|
||||
%patch2 -p1 -b .minimize-dialogs
|
||||
%patch3 -p1 -b .gold
|
||||
%patch4 -p1 -b .script-fu-ipv6
|
||||
%patch5 -p1 -b .colorxhtml
|
||||
%patch6 -p1 -b .pyslice
|
||||
%patch7 -p1 -b .poppler-0.17
|
||||
%patch8 -p1 -b .psp-overflow
|
||||
%patch9 -p1 -b .CVE-2010-4540,4541,4542
|
||||
%patch10 -p1 -b .shell-dnd-quit-crash
|
||||
%patch11 -p1 -b .startup-warning
|
||||
%patch12 -p1 -b .gif-load
|
||||
|
||||
%patch100 -p1 -b .autoreconf
|
||||
|
||||
%build
|
||||
# Use PIC/PIE because gimp is likely to deal with files coming from untrusted
|
||||
# sources
|
||||
CFLAGS='-fPIC %optflags -fno-strict-aliasing'
|
||||
CXXFLAGS='-fPIC %optflags -fno-strict-aliasing'
|
||||
LDFLAGS='-pie'
|
||||
%if %{with hardening}
|
||||
# Use hardening compiler/linker flags because gimp is likely to deal with files
|
||||
# coming from untrusted sources
|
||||
%if ! 0%{?fedora}%{?rhel} || 0%{?fedora} >= 16 || 0%{?rhel} >= 7
|
||||
%global _hardened_build 1
|
||||
%else
|
||||
# fake things
|
||||
export CFLAGS='-fPIC %optflags'
|
||||
export CXXFLAGS='-fPIC %optflags'
|
||||
export LDFLAGS='-pie'
|
||||
%endif
|
||||
%endif
|
||||
%configure \
|
||||
--enable-gimp-remote \
|
||||
%if %{with python}
|
||||
--enable-python \
|
||||
%else
|
||||
@ -290,17 +299,22 @@ LDFLAGS='-pie'
|
||||
%else
|
||||
--without-aa \
|
||||
%endif
|
||||
%if %{with hal}
|
||||
--with-hal \
|
||||
%if %{with gudev}
|
||||
--with-gudev --without-hal \
|
||||
%else
|
||||
--without-hal \
|
||||
--with-hal --without-gudev \
|
||||
%endif
|
||||
%ifos linux
|
||||
--with-linux-input \
|
||||
%endif
|
||||
--with-libtiff --with-libjpeg --with-libpng --with-libmng --with-libexif \
|
||||
--with-librsvg --with-libxpm --with-poppler --with-gvfs --with-alsa \
|
||||
--with-webkit --with-dbus --with-script-fu
|
||||
%if use_poppler
|
||||
--with-poppler \
|
||||
%else
|
||||
--without-poppler \
|
||||
%endif
|
||||
--with-libtiff --with-libjpeg --with-libpng --with-libmng --with-libjasper \
|
||||
--with-libexif --with-librsvg --with-libxpm --with-gvfs --with-alsa \
|
||||
--with-webkit --with-dbus --with-script-fu --with-cairo-pdf
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
@ -322,7 +336,7 @@ find %buildroot -name \*.la -exec %__rm -f {} \;
|
||||
# Plugins and modules change often (grab the executeable ones)
|
||||
#
|
||||
echo "%defattr (-, root, root)" > gimp-plugin-files
|
||||
find %{buildroot}%{_libdir}/gimp/%{interfacever} -type f | sed "s@^%{buildroot}@@g" | grep -v '\.a$' >> gimp-plugin-files
|
||||
find %{buildroot}%{_libdir}/gimp/%{lib_api_version} -type f | sed "s@^%{buildroot}@@g" | grep -v '\.a$' >> gimp-plugin-files
|
||||
|
||||
# .pyc and .pyo files don't exist yet
|
||||
grep "\.py$" gimp-plugin-files > gimp-plugin-files-py
|
||||
@ -334,20 +348,20 @@ done >> gimp-plugin-files
|
||||
|
||||
%if %{with static}
|
||||
echo "%defattr (-, root, root)" > gimp-static-files
|
||||
find %{buildroot}%{_libdir}/gimp/%{interfacever} -type f | sed "s@^%{buildroot}@@g" | grep '\.a$' >> gimp-static-files
|
||||
find %{buildroot}%{_libdir}/gimp/%{lib_api_version} -type f | sed "s@^%{buildroot}@@g" | grep '\.a$' >> gimp-static-files
|
||||
%endif
|
||||
|
||||
#
|
||||
# Auto detect the lang files.
|
||||
#
|
||||
%find_lang gimp%{gimp_lang_ver}
|
||||
%find_lang gimp%{gimp_lang_ver}-std-plug-ins
|
||||
%find_lang gimp%{gimp_lang_ver}-script-fu
|
||||
%find_lang gimp%{gimp_lang_ver}-libgimp
|
||||
%find_lang gimp%{gimp_lang_ver}-tips
|
||||
%find_lang gimp%{gimp_lang_ver}-python
|
||||
%find_lang gimp%{gettext_version}
|
||||
%find_lang gimp%{gettext_version}-std-plug-ins
|
||||
%find_lang gimp%{gettext_version}-script-fu
|
||||
%find_lang gimp%{gettext_version}-libgimp
|
||||
%find_lang gimp%{gettext_version}-tips
|
||||
%find_lang gimp%{gettext_version}-python
|
||||
|
||||
cat gimp%{gimp_lang_ver}.lang gimp%{gimp_lang_ver}-std-plug-ins.lang gimp%{gimp_lang_ver}-script-fu.lang gimp%{gimp_lang_ver}-libgimp.lang gimp%{gimp_lang_ver}-tips.lang gimp%{gimp_lang_ver}-python.lang > gimp-all.lang
|
||||
cat gimp%{gettext_version}.lang gimp%{gettext_version}-std-plug-ins.lang gimp%{gettext_version}-script-fu.lang gimp%{gettext_version}-libgimp.lang gimp%{gettext_version}-tips.lang gimp%{gettext_version}-python.lang > gimp-all.lang
|
||||
|
||||
#
|
||||
# Build the master filelists generated from the above mess.
|
||||
@ -360,13 +374,21 @@ 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
|
||||
ln -snf gimp-console-%{binver}.1 %{buildroot}/%{_mandir}/man1/gimp-console.1
|
||||
ln -snf gimp-remote-%{binver} %{buildroot}%{_bindir}/gimp-remote
|
||||
ln -snf gimp-remote-%{binver}.1 %{buildroot}%{_mandir}/man1/gimp-remote.1
|
||||
ln -snf gimptool-%{interfacever} %{buildroot}%{_bindir}/gimptool
|
||||
ln -snf gimptool-%{interfacever}.1 %{buildroot}%{_mandir}/man1/gimptool.1
|
||||
ln -snf gimptool-%{lib_api_version} %{buildroot}%{_bindir}/gimptool
|
||||
ln -snf gimptool-%{lib_api_version}.1 %{buildroot}%{_mandir}/man1/gimptool.1
|
||||
ln -snf gimprc-%{binver}.5 %{buildroot}/%{_mandir}/man5/gimprc.5
|
||||
%endif
|
||||
|
||||
%if %unstable
|
||||
# Suppress abrt bug reporting for unstable releases
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/libreport/events.d
|
||||
cat << EOF > %{buildroot}%{_sysconfdir}/libreport/events.d/gimp-unstable.conf
|
||||
# don't generate abrt reports for unstable gimp releases
|
||||
EVENT=post-create executable~=.*/gimp.*
|
||||
test -d "\$DUMP_DIR" && rm -rf -- "\$DUMP_DIR"
|
||||
EOF
|
||||
%endif # unstable
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
@ -394,90 +416,93 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
%{_datadir}/applications/*.desktop
|
||||
|
||||
%dir %{_datadir}/gimp
|
||||
%dir %{_datadir}/gimp/%{interfacever}
|
||||
%{_datadir}/gimp/%{interfacever}/tips/
|
||||
%{_datadir}/gimp/%{interfacever}/menus/
|
||||
%dir %{_datadir}/gimp/%{lib_api_version}
|
||||
%{_datadir}/gimp/%{lib_api_version}/dynamics/
|
||||
%{_datadir}/gimp/%{lib_api_version}/menus/
|
||||
%{_datadir}/gimp/%{lib_api_version}/tags/
|
||||
%{_datadir}/gimp/%{lib_api_version}/tips/
|
||||
%{_datadir}/gimp/%{lib_api_version}/ui/
|
||||
%dir %{_libdir}/gimp
|
||||
%dir %{_libdir}/gimp/%{interfacever}
|
||||
%dir %{_libdir}/gimp/%{interfacever}/environ
|
||||
#%dir %{_libdir}/gimp/%{interfacever}/fonts
|
||||
%dir %{_libdir}/gimp/%{interfacever}/interpreters
|
||||
%dir %{_libdir}/gimp/%{interfacever}/modules
|
||||
%dir %{_libdir}/gimp/%{interfacever}/plug-ins
|
||||
%exclude %{_libdir}/gimp/%{interfacever}/plug-ins/help-browser
|
||||
%dir %{_libdir}/gimp/%{interfacever}/python
|
||||
#%dir %{_libdir}/gimp/%{interfacever}/tool-plug-ins
|
||||
%dir %{_libdir}/gimp/%{lib_api_version}
|
||||
%dir %{_libdir}/gimp/%{lib_api_version}/environ
|
||||
#%dir %{_libdir}/gimp/%{lib_api_version}/fonts
|
||||
%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
|
||||
#%dir %{_libdir}/gimp/%{lib_api_version}/tool-plug-ins
|
||||
|
||||
%{_datadir}/gimp/%{interfacever}/brushes/
|
||||
%{_datadir}/gimp/%{interfacever}/fractalexplorer/
|
||||
%{_datadir}/gimp/%{interfacever}/gfig/
|
||||
%{_datadir}/gimp/%{interfacever}/gflare/
|
||||
%{_datadir}/gimp/%{interfacever}/gimpressionist/
|
||||
%{_datadir}/gimp/%{interfacever}/gradients/
|
||||
# %{_datadir}/gimp/%{interfacever}/help/
|
||||
%{_datadir}/gimp/%{interfacever}/images/
|
||||
%{_datadir}/gimp/%{interfacever}/palettes/
|
||||
%{_datadir}/gimp/%{interfacever}/patterns/
|
||||
%{_datadir}/gimp/%{interfacever}/scripts/
|
||||
%{_datadir}/gimp/%{interfacever}/themes/
|
||||
%{_datadir}/gimp/%{lib_api_version}/brushes/
|
||||
%{_datadir}/gimp/%{lib_api_version}/fractalexplorer/
|
||||
%{_datadir}/gimp/%{lib_api_version}/gfig/
|
||||
%{_datadir}/gimp/%{lib_api_version}/gflare/
|
||||
%{_datadir}/gimp/%{lib_api_version}/gimpressionist/
|
||||
%{_datadir}/gimp/%{lib_api_version}/gradients/
|
||||
# %{_datadir}/gimp/%{lib_api_version}/help/
|
||||
%{_datadir}/gimp/%{lib_api_version}/images/
|
||||
%{_datadir}/gimp/%{lib_api_version}/palettes/
|
||||
%{_datadir}/gimp/%{lib_api_version}/patterns/
|
||||
%{_datadir}/gimp/%{lib_api_version}/scripts/
|
||||
%{_datadir}/gimp/%{lib_api_version}/themes/
|
||||
|
||||
%dir %{_sysconfdir}/gimp
|
||||
%dir %{_sysconfdir}/gimp/%{interfacever}
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/controllerrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/gimprc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/gtkrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/unitrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/ps-menurc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/sessionrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/templaterc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{interfacever}/menurc
|
||||
%dir %{_sysconfdir}/gimp/%{lib_api_version}
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/controllerrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/gimprc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/gtkrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/unitrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/sessionrc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/templaterc
|
||||
%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/menurc
|
||||
|
||||
%{_bindir}/gimp-%{binver}
|
||||
%{_bindir}/gimp-remote-%{binver}
|
||||
%{_bindir}/gimp-console-%{binver}
|
||||
|
||||
%if %{with convenience}
|
||||
%{_bindir}/gimp
|
||||
%{_bindir}/gimp-remote
|
||||
%{_bindir}/gimp-console
|
||||
%endif
|
||||
|
||||
%{_mandir}/man1/gimp-%{binver}.1*
|
||||
%{_mandir}/man1/gimp-remote-%{binver}.1*
|
||||
%{_mandir}/man1/gimp-console-%{binver}.1*
|
||||
%{_mandir}/man5/gimprc-%{binver}.5*
|
||||
|
||||
%if %{with convenience}
|
||||
%{_mandir}/man1/gimp.1*
|
||||
%{_mandir}/man1/gimp-remote.1*
|
||||
%{_mandir}/man1/gimp-console.1*
|
||||
%{_mandir}/man5/gimprc.5*
|
||||
%endif
|
||||
|
||||
%{_datadir}/icons/hicolor/*/apps/gimp.png
|
||||
%{_datadir}/icons/hicolor/scalable/apps/gimp.svg
|
||||
|
||||
%if %unstable
|
||||
%dir %{_sysconfdir}/libreport
|
||||
%dir %{_sysconfdir}/libreport/events.d
|
||||
%dir %{_sysconfdir}/libreport/events.d/gimp-unstable.conf
|
||||
%endif
|
||||
|
||||
%files libs
|
||||
%defattr(-, root, root, 0755)
|
||||
%doc AUTHORS COPYING ChangeLog NEWS README
|
||||
%{_libdir}/libgimp-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimp-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpbase-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpbase-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpcolor-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpcolor-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpconfig-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpconfig-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpmath-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpmath-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpmodule-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpmodule-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpthumb-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpthumb-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpui-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpui-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimpwidgets-%{interfacever}.so.%{age}.%{minorver}.%{microver}
|
||||
%{_libdir}/libgimpwidgets-%{interfacever}.so.%{age}
|
||||
%{_libdir}/libgimp-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimp-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpbase-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpbase-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpcolor-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpcolor-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpconfig-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpconfig-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpmath-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpmath-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpmodule-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpmodule-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpthumb-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpthumb-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpui-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpui-%{lib_api_version}.so.%{interface_age}
|
||||
%{_libdir}/libgimpwidgets-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro}
|
||||
%{_libdir}/libgimpwidgets-%{lib_api_version}.so.%{interface_age}
|
||||
|
||||
%if %{with static}
|
||||
%files devel -f gimp-static-files
|
||||
@ -490,20 +515,20 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
%{_libdir}/*.so
|
||||
%dir %{_libdir}/gimp
|
||||
%dir %{_libdir}/gimp/%{interfacever}
|
||||
%dir %{_libdir}/gimp/%{interfacever}/modules
|
||||
%dir %{_libdir}/gimp/%{lib_api_version}
|
||||
%dir %{_libdir}/gimp/%{lib_api_version}/modules
|
||||
%ifnos linux
|
||||
%{_libdir}/*.la
|
||||
%{_libdir}/gimp/%{interfacever}/modules/*.la
|
||||
%{_libdir}/gimp/%{lib_api_version}/modules/*.la
|
||||
%endif
|
||||
%{_datadir}/aclocal/*.m4
|
||||
%{_includedir}/gimp-%{interfacever}
|
||||
%{_includedir}/gimp-%{lib_api_version}
|
||||
%{_libdir}/pkgconfig/*
|
||||
|
||||
%files devel-tools
|
||||
%defattr (-, root, root, 0755)
|
||||
%{_bindir}/gimptool-%{interfacever}
|
||||
%{_mandir}/man1/gimptool-%{interfacever}.1*
|
||||
%{_bindir}/gimptool-%{lib_api_version}
|
||||
%{_mandir}/man1/gimptool-%{lib_api_version}.1*
|
||||
|
||||
%if %{with convenience}
|
||||
%{_bindir}/gimptool
|
||||
@ -512,9 +537,29 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
%files help-browser
|
||||
%defattr (-, root, root, 0755)
|
||||
%{_libdir}/gimp/%{interfacever}/plug-ins/help-browser
|
||||
%{_libdir}/gimp/%{lib_api_version}/plug-ins/help-browser
|
||||
|
||||
%changelog
|
||||
* Tue Aug 30 2011 Nils Philippsen <nils@redhat.com> - 2:2.7.3-1
|
||||
- version 2.7.3 (unstable, see http://developer.gimp.org/NEWS for details)
|
||||
- change license to GPLv3+/LGPLv3+
|
||||
- update required versions of dependencies
|
||||
- build with cairo-pdf, jasper, require jasper-devel for building
|
||||
- build without poppler as that currently is GPLv2 only, thus incompatible
|
||||
with LGPLv3 gimp libraries (use postscript plugin for PDF import
|
||||
meanwhile), future poppler versions will be "GPLv2 or GPLv3", i.e.
|
||||
compatible again
|
||||
- clean up configure options, compiler/linker flags
|
||||
- suppress abrt bug reporting for unstable releases
|
||||
- remove all patches (obsolete, woo!)
|
||||
- add new files, remove files that are not installed any longer
|
||||
- use %%global instead of %%define
|
||||
- replace hal, minorver, microver, interfacever, gimp_lang_ver macros with
|
||||
gudev, lib_minor, lib_micro, lib_api_version, gettext_version macros
|
||||
- compute more version macros (ugly, but convenient)
|
||||
- use gudev from Fedora 15 on
|
||||
- use convenience macro for hardening binaries from F-16 on
|
||||
|
||||
* Fri Aug 12 2011 Nils Philippsen <nils@redhat.com> - 2:2.6.11-21
|
||||
- actually apply startup-warning patch
|
||||
- fix heap corruption and buffer overflow in file-gif-load plugin
|
||||
|
Loading…
Reference in New Issue
Block a user