diff options
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r-- | gnu/packages/gtk.scm | 228 |
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 |