rpms/gimp/F-12 gimp-2.6.10-script-fu-ipv6.patch, NONE, 1.1 .cvsignore, 1.56, 1.57 gimp.spec, 1.207, 1.208 import.log, 1.1, 1.2 sources, 1.56, 1.57 gimp-2.6.9-combo-popup.patch, 1.1, NONE gimp-2.6.9-script-fu-ipv6.patch, 1.3, NONE

Nils Philippsen nphilipp at fedoraproject.org
Fri Jul 9 12:23:00 UTC 2010


Author: nphilipp

Update of /cvs/pkgs/rpms/gimp/F-12
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv8001/F-12

Modified Files:
	.cvsignore gimp.spec import.log sources 
Added Files:
	gimp-2.6.10-script-fu-ipv6.patch 
Removed Files:
	gimp-2.6.9-combo-popup.patch gimp-2.6.9-script-fu-ipv6.patch 
Log Message:
version 2.6.10
remove obsolete combo-popup patch
update script-fu-ipv6 patch


gimp-2.6.10-script-fu-ipv6.patch:
 configure.in                          |    9 +-
 plug-ins/script-fu/script-fu-server.c |  150 ++++++++++++++++++++++++++--------
 2 files changed, 122 insertions(+), 37 deletions(-)

--- NEW FILE gimp-2.6.10-script-fu-ipv6.patch ---
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)
     {


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gimp/F-12/.cvsignore,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -p -r1.56 -r1.57
--- .cvsignore	28 Jun 2010 16:05:21 -0000	1.56
+++ .cvsignore	9 Jul 2010 12:22:59 -0000	1.57
@@ -1,2 +1,2 @@
-gimp-2.6.9.tar.bz2
-gimp-2.6.9-3-autoreconf.patch.bz2
+gimp-2.6.10-1-autoreconf.patch.bz2
+gimp-2.6.10.tar.bz2


Index: gimp.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gimp/F-12/gimp.spec,v
retrieving revision 1.207
retrieving revision 1.208
diff -u -p -r1.207 -r1.208
--- gimp.spec	29 Jun 2010 14:13:08 -0000	1.207
+++ gimp.spec	9 Jul 2010 12:23:00 -0000	1.208
@@ -30,8 +30,8 @@
 Summary:        GNU Image Manipulation Program
 Name:           gimp
 Epoch:          2
-Version:        2.6.9
-Release:        4%{?dist}
+Version:        2.6.10
+Release:        1%{?dist}
 %define binver 2.6
 %define gimp_lang_ver 20
 %define interfacever 2.0
@@ -127,14 +127,12 @@ Patch1:         gimp-2.6.7-jpeg-units.pa
 Patch2:         gimp-2.6.6-minimize-dialogs.patch
 # backport: fix building with "gold" linker
 Patch3:         gimp-2.6.8-gold.patch
-# backport: GIMP crashes when clicking any scroll bar from combo boxes
-Patch4:         gimp-2.6.9-combo-popup.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
-Patch5:         gimp-2.6.9-script-fu-ipv6.patch
+Patch4:         gimp-2.6.10-script-fu-ipv6.patch
 # files changed by autoreconf after applying the above
-Patch10:        gimp-2.6.9-3-autoreconf.patch.bz2
+Patch10:        gimp-2.6.10-1-autoreconf.patch.bz2
 
 %description
 GIMP (GNU Image Manipulation Program) is a powerful image composition and
@@ -217,8 +215,7 @@ EOF
 %patch1 -p1 -b .jpeg-units
 %patch2 -p1 -b .minimize-dialogs
 %patch3 -p1 -b .gold
-%patch4 -p1 -b .combo-popup
-%patch5 -p1 -b .script-fu-ipv6
+%patch4 -p1 -b .script-fu-ipv6
 %patch10 -p1 -b .autoreconf
 
 %build
@@ -481,6 +478,35 @@ fi
 %{_libdir}/gimp/%{interfacever}/plug-ins/help-browser
 
 %changelog
+* Fri Jul 09 2010 Nils Philippsen <nils at redhat.com> - 2:2.6.10-1
+- version 2.6.10
+
+  Overview of Changes from GIMP 2.6.9 to GIMP 2.6.10
+  ==================================================
+
+  * Bugs fixed:
+
+   613328 - TGA files saved with incorrect header yOrigin data
+   623290 - Save As... does not save Windows Bitmap as default in dialog
+   621363 - CMYK decompose broken
+   595170 - brush - color from gradient works wrong in greyscale
+   613838 - Error in gimp-hue-saturation PDB call
+   622608 - GIMP crashes when clicking any scroll bar from combo boxes
+   565459 - newly opened images are put into the background
+
+  * Updated translations:
+
+   German (de)
+   Italian (it)
+   Romanian (ro)
+   Portuguese (pt)
+
+- remove obsolete combo-popup patch
+- update script-fu-ipv6 patch
+
+* Mon Jul 05 2010 Nils Philippsen <nils at redhat.com> - 2:2.6.9-5
+- rebuild against libwebkitgtk (instead of libwebkit)
+
 * Tue Jun 29 2010 Nils Philippsen <nils at redhat.com> - 2:2.6.9-4
 - script-fu: make rest of server IPv6-aware (#198367)
 


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/gimp/F-12/import.log,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- import.log	24 Jun 2010 10:42:36 -0000	1.1
+++ import.log	9 Jul 2010 12:23:00 -0000	1.2
@@ -1 +1,2 @@
 gimp-2_6_9-1_fc14:F-12:gimp-2.6.9-1.fc14.src.rpm:1277375050
+gimp-2_6_10-1_fc14:F-12:gimp-2.6.10-1.fc14.src.rpm:1278678119


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gimp/F-12/sources,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -p -r1.56 -r1.57
--- sources	28 Jun 2010 16:05:21 -0000	1.56
+++ sources	9 Jul 2010 12:23:00 -0000	1.57
@@ -1,2 +1,2 @@
-e5d0cc6f3ce127e51d7f3d3124b16a99  gimp-2.6.9.tar.bz2
-c9f1878af298871e0b0088583cc4ce13  gimp-2.6.9-3-autoreconf.patch.bz2
+557dfb72df30bea361d7feff4c6f2e26  gimp-2.6.10-1-autoreconf.patch.bz2
+b92710ad9f1b52fec98554d765473819  gimp-2.6.10.tar.bz2


--- gimp-2.6.9-combo-popup.patch DELETED ---


--- gimp-2.6.9-script-fu-ipv6.patch DELETED ---



More information about the scm-commits mailing list