;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
;;; Copyright © 2016 ng0 <ng0@n0.is>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-26))
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 match))
(define-public atk
(package
(define-public gtk+
(package (inherit gtk+-2)
(name "gtk+")
- (version "3.24.13")
+ (version "3.24.14")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1a9hi7k59q0kqx0n3xhsk1ly23w9g9ncllnay1756g0yrww5qxsc"))
+ "120yz5gxqbv7sgdbcy4i0b6ixm8jpjzialdrqs0gv15q7bwnjk8w"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(outputs '("out" "bin" "doc"))
(string-append name "dir = " prefix
"/guile/site/@GUILE_EFFECTIVE_VERSION@"
suffix)))
+
+ ;; Guile 2.x <libguile.h> used to pull in <string.h> and
+ ;; other headers but this is no longer the case in 3.0.
+ (substitute* (find-files "." "\\.[ch]$")
+ (("^ *# *include.*libguile\\.h.*$")
+ "#include <libguile.h>\n#include <string.h>\n"))
#t)))))
(build-system gnu-build-system)
(inputs
exceptions, macros, and a dynamic programming environment.")
(license license:lgpl3+)))
+(define-public guile3.0-cairo
+ (package
+ (inherit guile-cairo)
+ (name "guile3.0-cairo")
+ (arguments
+ (substitute-keyword-arguments (package-arguments guile-cairo)
+ ((#:configure-flags flags ''())
+ ;; Uses of 'scm_t_uint8' & co. are deprecated; don't stop the build
+ ;; because of them.
+ `(cons "--disable-Werror" ,flags))))
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("guile-lib" ,guile3.0-lib)
+ ,@(fold alist-delete (package-inputs guile-cairo)
+ '("guile" "guile-lib"))))))
+
(define-public guile-rsvg
;; Use a recent snapshot that supports Guile 2.2 and beyond.
(let ((commit "05c6a2fd67e4fea1a7c3ff776729dc931bae6678")
(description
"Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
images onto Cairo surfaces.")
- (home-page "http://wingolog.org/projects/guile-rsvg/")
+ (home-page "https://wingolog.org/projects/guile-rsvg/")
(license license:lgpl2.1+))))
+(define-public guile3.0-rsvg
+ (package
+ (inherit guile-rsvg)
+ (name "guile3.0-rsvg")
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("guile-lib" ,guile3.0-lib)
+ ,@(fold alist-delete (package-inputs guile-rsvg)
+ '("guile" "guile-lib"))))
+ (propagated-inputs `(("guile-cairo" ,guile3.0-cairo)))))
+
(define-public guile-present
(package
(name "guile-present")
(sha256
(base32
"1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
- (patches (search-patches "guile-present-coding.patch"))))
+ (patches (search-patches "guile-present-coding.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure"
+ (("2\\.2 2\\.0")
+ "3.0 2.2 2.0"))
+
+ ;; Install .go files in the right place.
+ (substitute* "Makefile.in"
+ (("/ccache") "/site-ccache"))
+ #t))))
(build-system gnu-build-system)
(arguments
- '(#:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
- (guile (assoc-ref inputs "guile")))
+ (guile (assoc-ref inputs "guile"))
+ (version
+ ,(match (assoc "guile" (package-inputs this-package))
+ (("guile" guile)
+ (version-major+minor (package-version guile))))))
(substitute* (find-files bin ".*")
(("guile")
(string-append guile "/bin/guile -L "
- out "/share/guile/site/2.0 -C "
- out "/share/guile/site/2.0 "))))
+ out "/share/guile/site/" version " -C "
+ out "/lib/guile/" version "/site-ccache "))))
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("guile" ,guile-2.2)))
`(("guile-lib" ,guile-lib)
("guile-cairo" ,guile-cairo)
("guile-rsvg" ,guile-rsvg)))
- (home-page "http://wingolog.org/software/guile-present/")
+ (home-page "https://wingolog.org/software/guile-present/")
(synopsis "Create SVG or PDF presentations in Guile")
(description
"Guile-Present defines a declarative vocabulary for presentations,
documents.")
(license license:lgpl3+)))
+(define-public guile3.0-present
+ (package
+ (inherit guile-present)
+ (name "guile3.0-present")
+ (inputs `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ `(("guile-lib" ,guile3.0-lib)
+ ("guile-cairo" ,guile3.0-cairo)
+ ("guile-rsvg" ,guile3.0-rsvg)))))
+
(define-public guile-gnome
(package
(name "guile-gnome")
("cairomm" ,cairomm)
("glibmm" ,glibmm)
("pango" ,pango)))
- (home-page "http://www.pango.org/")
+ (home-page "https://pango.gnome.org//")
(synopsis "C++ interface to the Pango text rendering library")
(description
"Pangomm provides a C++ programming interface to the Pango text rendering
`(("gtk+" ,gtk+-2)))
(propagated-inputs
`(("perl-pango" ,perl-pango)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'remove-broken-test
+ ;; See https://gitlab.gnome.org/GNOME/perl-gtk2/issues/3.
+ (lambda _
+ (substitute* "t/GdkPixbuf.t"
+ (("tests => 112") "tests => 111")
+ (("ok \\(defined \\$pixbuf, \"Don't crash on partial pixmap data\"\\);")
+ "# ok (defined $pixbuf, \"Don't crash on partial pixmap data\");")))))))
(home-page "https://metacpan.org/release/Gtk2")
(synopsis "Perl interface to the 2.x series of the Gimp Toolkit library")
(description "Perl bindings to the 2.x series of the Gtk+ widget set.
(define-public girara
(package
(name "girara")
- (version "0.3.3")
+ (version "0.3.4")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0q0yfv2777s72p473lw0ll435n7vz4v204cmp9naq8am7a6i6avn"))))
+ (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k"))))
(native-inputs `(("pkg-config" ,pkg-config)
("check" ,check)
("gettext" ,gettext-minimal)
("python-2" ,python-2)
("glib" ,glib)
("gobject-introspection" ,gobject-introspection)))
- (home-page "http://ebassi.github.io/graphene")
+ (home-page "https://ebassi.github.io/graphene/")
(synopsis "Thin layer of graphic data types")
(description "This library provides graphic types and their relative API;
it does not deal with windowing system surfaces, drawing, scene graphs, or
;; Dual-licensed under either LGPLv2.1 or LGPLv3.
(license (list license:lgpl2.1 license:lgpl3))))
+
+(define-public gtk-layer-shell
+ (package
+ (name "gtk-layer-shell")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/wmww/gtk-layer-shell/releases/download/v"
+ version "/gtk-layer-shell-" version ".tar.xz"))
+ (sha256
+ (base32 "0ncklk3z0fzlz6p76jdcrr1ykyp1f4ykjjch4x2hfp9bwsnl4a3m"))))
+ (build-system meson-build-system)
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("gobject-introspection" ,gobject-introspection)))
+ (inputs `(("wayland" ,wayland)
+ ("gtk+" ,gtk+)))
+ (home-page "https://github.com/wmww/gtk-layer-shell")
+ (synopsis "Library to create Wayland desktop components using the Layer
+Shell protocol")
+ (description "Layer Shell is a Wayland protocol for desktop shell
+components, such as panels, notifications and wallpapers. It can be used to
+anchor windows to a corner or edge of the output, or stretch them across the
+entire output. It supports all Layer Shell features including popups and
+popovers.")
+ (license license:expat)))