summary refs log tree commit diff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm228
1 files changed, 82 insertions, 146 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 96297535ce..64bac20f3d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -24,12 +24,13 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022 Benjamin Slade <slade@lambda-y.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,6 +53,7 @@
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix bzr-download)
   #:use-module (guix git-download)
   #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (guix build-system cmake)
@@ -1918,96 +1920,9 @@ printing and other features typical of a source code editor.")
     (synopsis "Python bindings for cairo")
     (description
      "Pycairo is a set of Python bindings for the Cairo graphics library.")
-    (license license:lgpl3+)
-    (properties `((python2-variant . ,(delay python2-pycairo))))))
+    (license license:lgpl3+)))
 
 ;; Pycairo no longer supports Python 2 since version 1.19.0, so we stick
-;; with this older version here.
-(define-public python2-pycairo
-  (let ((pycairo (package-with-python2
-                  (strip-python2-variant python-pycairo))))
-    (package
-      (inherit pycairo)
-      (version "1.18.2")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "https://github.com/pygobject/pycairo/releases"
-                                    "/download/v" version "/pycairo-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "0cb5n4r4nl0k1g90b1gz9iyk4lp7hi03db98i1p52a870bym7f6w"))))
-      ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
-      (license (list license:lgpl2.1 license:mpl1.1)))))
-
-(define-public python2-pygtk
-  (package
-    (name "python2-pygtk")
-    (version "2.24.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources"
-                          "/pygtk/" (version-major+minor version)
-                          "/pygtk-" version ".tar.bz2"))
-      (sha256
-       (base32
-        "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
-    (build-system gnu-build-system)
-    (outputs '("out"
-               "doc"))                            ;13 MiB of gtk-doc HTML
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     `(("python" ,python-2)
-
-       ;; XXX: The package fails to build with the latest Pango (propagated
-       ;; from GTK+2), so we provide it with this older version.
-       ("pango" ,pango-1.42)
-
-       ("libglade" ,libglade)
-       ("glib"   ,glib)))
-    (propagated-inputs
-     `(("python-pycairo"   ,python2-pycairo)     ;loaded at runtime
-       ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
-       ("gtk+"             ,gtk+-2)))
-    (arguments
-     `(#:tests? #f
-       #:phases (modify-phases %standard-phases
-                  (add-before 'configure 'set-gtk-doc-directory
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; Install documentation to "doc".
-                      (let ((doc (assoc-ref outputs "doc")))
-                        (substitute* "docs/Makefile.in"
-                          (("TARGET_DIR = \\$\\(datadir\\)")
-                           (string-append "TARGET_DIR = " doc))))))
-                  (add-after 'configure 'fix-codegen
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (substitute* "pygtk-codegen-2.0"
-                        (("^prefix=.*$")
-                         (string-append
-                          "prefix="
-                          (assoc-ref inputs "python-pygobject") "\n")))))
-                  (add-after 'install 'install-pth
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; pygtk's modules are stored in a subdirectory of
-                      ;; python's site-packages directory.  Add a .pth file so
-                      ;; that python will add that subdirectory to its module
-                      ;; search path.
-                      (let* ((out    (assoc-ref outputs "out"))
-                             (site   (string-append out "/lib/python"
-                                                    ,(version-major+minor
-                                                      (package-version python-2))
-                                                    "/site-packages")))
-                        (call-with-output-file (string-append site "/pygtk.pth")
-                          (lambda (port)
-                            (format port "gtk-2.0~%")))))))))
-    (home-page "http://www.pygtk.org/")
-    (synopsis "Python bindings for GTK+")
-    (description
-     "PyGTK allows you to write full featured GTK programs in Python.  It is
-targeted at GTK 2.x, and can be used in conjunction with gnome-python to
-write GNOME applications.")
-    (license license:lgpl2.1+)))
 
 (define-public perl-cairo
   (package
@@ -2546,7 +2461,7 @@ independent of your desktop environment, and supports global key bindings.")
 (define-public yad
   (package
     (name "yad")
-    (version "5.0")
+    (version "12.0")
     (source
      (origin
        (method git-fetch)
@@ -2555,7 +2470,7 @@ independent of your desktop environment, and supports global key bindings.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07rd61hvilsxxrj7lf8c9k0a8glj07s48m7ya8d45030r90g3lvc"))))
+        (base32 "1nbbw4vwlxjlp83d35w54952b6rrn8qlr3d053lisqwl0hfcm7if"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -2630,64 +2545,85 @@ printed to standard output.")
    (license license:gpl3+)))
 
 (define-public libdbusmenu
-  (package
-    (name "libdbusmenu")
-    (version "16.04.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://launchpad.net/libdbusmenu/"
-                           (version-major+minor version) "/" version
-                           "/+download/libdbusmenu-" version ".tar.gz"))
-       (sha256
-        (base32 "12l7z8dhl917iy9h02sxmpclnhkdjryn08r8i4sr8l3lrlm4mk5r"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       '("--sysconfdir=/etc"
-         "--localstatedir=/var"
-         ;; The shebang of the generated test files should be patched before
-         ;; enabling tests.
-         "--disable-tests")
-       #:make-flags
-       `(,(string-append "typelibdir=" (assoc-ref %outputs "out")
-                         "/lib/girepository-1.0"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'do-not-treat-warnings-as-errors
-           (lambda _
-             ;; Prevent the build from failing due to deprecation warnings
-             ;; from newer GLib and GTK versions.
-             (substitute* (find-files "." "^Makefile.in$")
-               ((" -Werror")
-                ""))
-             #t))
-         (add-before 'configure 'set-environment
-           (lambda _
-             (setenv "HAVE_VALGRIND_TRUE" "")
-             (setenv "HAVE_VALGRIND_FALSE" "#")
-             #t)))))
-    (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtk+-2" ,gtk+-2)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gnome-doc-utils" ,gnome-doc-utils)
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("json-glib" ,json-glib)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)
-       ("vala" ,vala)))
-    (home-page "https://launchpad.net/libdbusmenu")
-    (synopsis "Library for passing menus over DBus")
-    (description "@code{libdbusmenu} passes a menu structure across DBus so
+  (let ((bzr-revision "496"))
+    (package
+      (name "libdbusmenu")
+      (version (string-append "16.04.0" "-" bzr-revision))
+      (source
+       (origin
+         (method bzr-fetch)
+         (uri (bzr-reference
+               (url "lp:libdbusmenu")
+               (revision bzr-revision)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1rnp86r8f2xjcbk6jjl6np1qdhc3d7fj1c3ggn0gbv2kksc8r1bx"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:configure-flags
+        #~(list "--sysconfdir=/etc"
+                "--localstatedir=/var"
+                ;; The shebang of the generated test files should be patched
+                ;; before enabling tests.
+                "--disable-tests")
+        #:make-flags
+        #~(list (string-append "typelibdir=" #$output "/lib/girepository-1.0"))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'remove-deprecated-gnome-common-macros
+              (lambda _
+                ;; Adapted from a Debian patch to remove deprecated macros.
+                (substitute* "autogen.sh"
+                  (("^USE_GNOME2_MACROS.*") "")
+                  (("^USE_COMMON_DOC_BUILD.*") ""))))
+            (add-after 'unpack 'patch-paths
+              (lambda _
+                (substitute* "libdbusmenu-glib/Makefile.am"
+                  (("/bin/false")
+                   "false")
+                  ;; (("\\$\\(srcdir)/clean-namespaces.xslt")
+                  ;;  "clean-namespaces.xslt")
+                  )))
+            (add-before 'configure 'do-not-treat-warnings-as-errors
+              (lambda _
+                ;; Prevent the build from failing due to deprecation warnings
+                ;; from newer GLib and GTK versions.
+                (substitute* (find-files "." "^Makefile.in$")
+                  ((" -Werror")
+                   ""))))
+            (add-before 'configure 'set-environment
+              (lambda _
+                (setenv "HAVE_VALGRIND_TRUE" "")
+                (setenv "HAVE_VALGRIND_FALSE" "#"))))))
+      (inputs
+       (list glib
+             gtk+
+             gtk+-2))
+      (native-inputs
+       (list autoconf
+             automake
+             `(,glib "bin")
+             gobject-introspection
+             gnome-common
+             gtk-doc                    ;FIXME: propagate by gnome-common?
+             intltool
+             json-glib
+             libtool
+             libxslt
+             pkg-config
+             python-wrapper
+             which
+             vala))
+      (home-page "https://launchpad.net/libdbusmenupython")
+      (synopsis "Library for passing menus over DBus")
+      (description "@code{libdbusmenu} passes a menu structure across DBus so
 that a program can create a menu simply without worrying about how it is
 displayed on the other side of the bus.")
 
-    ;; Dual-licensed under either LGPLv2.1 or LGPLv3.
-    (license (list license:lgpl2.1 license:lgpl3))))
+      ;; Dual-licensed under either LGPLv2.1 or LGPLv3.
+      (license (list license:lgpl2.1 license:lgpl3)))))
 
 (define-public gtk-layer-shell
   (package