~ruther/guix-local

68f90673242777feea9537d6e506d97ea8506c45 — Ricardo Wurmus 9 years ago 6548e53
gnu: inkscape: Update to 0.92.0.

* gnu/packages/patches/inkscape-drop-wait-for-targets.patch: Remove it.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/inkscape.scm (inkscape): Update to 0.92.0.
[build-system]: Use "cmake-build-system".
[native-inputs]: Add glib:bin.
[arguments]: Remove obsolete arguments; disable tests.
3 files changed, 11 insertions(+), 92 deletions(-)

M gnu/local.mk
M gnu/packages/inkscape.scm
D gnu/packages/patches/inkscape-drop-wait-for-targets.patch
M gnu/local.mk => gnu/local.mk +1 -2
@@ 7,7 7,7 @@
# Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
# Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
# Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
#
# This file is part of GNU Guix.


@@ 638,7 638,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/icu4c-CVE-2015-4760.patch		\
  %D%/packages/patches/id3lib-CVE-2007-4460.patch			\
  %D%/packages/patches/ilmbase-fix-tests.patch			\
  %D%/packages/patches/inkscape-drop-wait-for-targets.patch	\
  %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
  %D%/packages/patches/jbig2dec-ignore-testtest.patch		\
  %D%/packages/patches/jq-CVE-2015-8863.patch			\

M gnu/packages/inkscape.scm => gnu/packages/inkscape.scm +10 -22
@@ 23,7 23,7 @@
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system cmake)
  #:use-module (gnu packages)
  #:use-module (gnu packages aspell)
  #:use-module (gnu packages bdw-gc)


@@ 44,20 44,16 @@
(define-public inkscape
  (package
    (name "inkscape")
    (version "0.91")
    (version "0.92.0")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://launchpad.net/inkscape/"
                                  (version-major+minor version) ".x/"
                                  version "/+download/inkscape-"
                                  version ".tar.gz"))
              (uri (string-append "https://media.inkscape.org/dl/"
                                  "resources/file/"
                                  "inkscape-" version ".tar.bz2"))
              (sha256
               (base32
                "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))
              (patch-flags '("-p0"))
              (patches
               (search-patches "inkscape-drop-wait-for-targets.patch"))))
    (build-system gnu-build-system)
                "0mmssxnxsvb3bpm7ck5pqvwyacrz1nkyacs571jx8j04l1cw3d5q"))))
    (build-system cmake-build-system)
    (inputs
     `(("aspell" ,aspell)
       ("gtkmm" ,gtkmm-2)


@@ 75,19 71,11 @@
       ("boost" ,boost)))
    (native-inputs
     `(("intltool" ,intltool)
       ("glib" ,glib "bin")
       ("perl" ,perl)
       ("pkg-config" ,pkg-config)))
    (arguments
     `(;; Add '-std=c++11', required by recent versions of GLibmm & co.
       ;; Use '-g0' to reduce disk usage during the build.
       #:configure-flags '("CXXFLAGS=-g0 -O2 -fopenmp -std=c++11")
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'fix-test-includes
           (lambda _
             (substitute* "src/cxxtests.cpp"
               (("\\.\\./\\.\\./src") "../src"))
             #t)))))
    ;; FIXME: tests require gmock
    (arguments `(#:tests? #f))
    (home-page "http://inkscape.org/")
    (synopsis "Vector graphics editor")
    (description "Inkscape is a vector graphics editor.  What sets Inkscape

D gnu/packages/patches/inkscape-drop-wait-for-targets.patch => gnu/packages/patches/inkscape-drop-wait-for-targets.patch +0 -68
@@ 1,68 0,0 @@
Copied from Fedora.

http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e

=== modified file 'src/ui/clipboard.cpp'
--- src/ui/clipboard.cpp	2016-04-02 15:15:43 +0000
+++ src/ui/clipboard.cpp	2016-04-07 16:30:32 +0000
@@ -146,8 +146,6 @@
     void _setClipboardColor(guint32);
     void _userWarn(SPDesktop *, char const *);
 
-    void _inkscape_wait_for_targets(std::list<Glib::ustring> &);
-
     // private properites
     SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it
     Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node
@@ -1302,9 +1300,7 @@
  */
 Glib::ustring ClipboardManagerImpl::_getBestTarget()
 {
-    // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets()
-    std::list<Glib::ustring> targets; // = _clipboard->wait_for_targets();
-    _inkscape_wait_for_targets(targets);
+    std::list<Glib::ustring> targets = _clipboard->wait_for_targets();
 
     // clipboard target debugging snippet
     /*
@@ -1456,39 +1452,6 @@
     desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg);
 }
 
-
-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see
-//
-// https://bugs.launchpad.net/inkscape/+bug/296778
-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html
-//
-// for details. Until this has been fixed upstream we will use our own implementation
-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc.
-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list<Glib::ustring> &listTargets)
-{
-    //Get a newly-allocated array of atoms:
-    GdkAtom* targets = NULL;
-    gint n_targets = 0;
-    gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets );
-    if (!test || (targets == NULL)) {
-        return;
-    }
-
-    //Add the targets to the C++ container:
-    for (int i = 0; i < n_targets; i++)
-    {
-        //Convert the atom to a string:
-        gchar* const atom_name = gdk_atom_name(targets[i]);
-
-        Glib::ustring target;
-        if (atom_name) {
-            target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*.
-        }
-
-        listTargets.push_back(target);
-    }
-}
-
 /* #######################################
           ClipboardManager class
    ####################################### */