Hello Guix, These patches add clutter and related libraries. It is a prerequisite for totem a.k.a. GNOME Videos, which I will be sending in a followup email. Comments and suggestions welcome.
Mark
>From 888a56ec560bf8e623e37a238006cce4fe5a369c Mon Sep 17 00:00:00 2001 From: Mark H Weaver <m...@netris.org> Date: Wed, 17 Jun 2015 02:28:43 -0400 Subject: [PATCH 1/5] licenses: Add the SGI Free Software License B, version 2.0. * guix/licenses.scm (sgifreeb2.0): New variable. --- guix/licenses.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/guix/licenses.scm b/guix/licenses.scm index 4804421..a036c8e 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2014, 2015 Ludovic Courtès <l...@gnu.org> ;;; Copyright © 2013, 2015 Andreas Enge <andr...@enge.fr> ;;; Copyright © 2012, 2013 Nikita Karetnikov <nik...@karetnikov.org> +;;; Copyright © 2015 Mark H Weaver <m...@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,6 +52,7 @@ psfl public-domain qpl ruby + sgifreeb2.0 silofl1.1 vim x11 x11-style @@ -318,6 +320,11 @@ at URI, which may be a file:// URI pointing the package's tree." "http://directory.fsf.org/wiki/License:Ruby" "https://www.ruby-lang.org/en/about/license.txt")) +(define sgifreeb2.0 + (license "SGI Free Software License B, version 2.0" + "http://directory.fsf.org/wiki/License:SGIFreeBv2" + "https://www.gnu.org/licenses/license-list.html#SGIFreeB")) + (define silofl1.1 (license "SIL OFL 1.1" "http://scripts.sil.org/OFL_web" -- 2.4.3
>From 7e4277f7021daa3101aa682bca181ed27885b60c Mon Sep 17 00:00:00 2001 From: Mark H Weaver <m...@netris.org> Date: Wed, 17 Jun 2015 02:56:02 -0400 Subject: [PATCH 2/5] gnu: Add cogl. * gnu/packages/gnome.scm (cogl): New variable. --- gnu/packages/gnome.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 21ca3a8..a1d9cda 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2015 Andy Wingo <wi...@igalia.com> ;;; Copyright © 2015 David Hashe <david.ha...@dhashe.com> ;;; Copyright © 2015 Ricardo Wurmus <rek...@elephly.net> +;;; Copyright © 2015 Mark H Weaver <m...@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,6 +72,7 @@ #:use-module (gnu packages webkit) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages mail) #:use-module (gnu packages backup) #:use-module (gnu packages nettle) @@ -2480,3 +2482,70 @@ which are easy to play with the aid of a mouse.") natively with GTK-Doc (the API reference system developed for GTK+ and used throughout GNOME for API documentation).") (license license:gpl2+))) + +(define-public cogl + (package + (name "cogl") + (version "1.20.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0aqrj7gc0x7v536vdycgn2i23fj3nx3qwdd3mwgx7rr9b14kb7kj")))) + (build-system gnu-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-mkenums + ("gobject-introspection" ,gobject-introspection) + ;;("xorg-server" ,xorg-server) ; for the test suite + ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("glib" ,glib) + ("gdk-pixbuf" ,gdk-pixbuf) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxfixes" ,libxfixes) + ("libxdamage" ,libxdamage) + ("libxcomposite" ,libxcomposite) + ("libxrandr" ,libxrandr))) + (inputs + `(("mesa" ,mesa) + ("cairo" ,cairo) + ("pango" ,pango) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) + (arguments + `(#:configure-flags (list "--enable-cogl-gst" + ;; Arrange to pass an absolute pathname to + ;; dlopen for libGL.so. + (string-append "--with-gl-libname=" + (assoc-ref %build-inputs "mesa") + "/lib/libGL.so")) + ;; XXX FIXME: All tests fail, with many errors printed like this: + ;; _FontTransOpen: Unable to Parse address + ;; ${prefix}/share/fonts/X11/misc/ + #:tests? #f + #; #:phases + #; + (modify-phases %standard-phases + (add-before 'check 'start-xorg-server + (lambda* (#:key inputs #:allow-other-keys) + ;; The test suite requires a running X server. + (system (format #f "~a/bin/Xvfb :1 &" + (assoc-ref inputs "xorg-server"))) + (setenv "DISPLAY" ":1") + #t))))) + (home-page "http://www.cogl3d.org") + (synopsis "Object oriented GL/GLES Abstraction/Utility Layer") + (description + "Cogl is a small library for using 3D graphics hardware to draw pretty +pictures. The API departs from the flat state machine style of OpenGL and is +designed to make it easy to write orthogonal components that can render +without stepping on each others toes.") + (license (list license:expat ; most of the code + license:bsd-3 ; cogl/cogl-point-in-poly.c + license:sgifreeb2.0 ; cogl-path/tesselator/ + license:asl2.0)))) ; examples/android/ -- 2.4.3
>From 8f42babb5ccd7e11ba05aaf32ae62b3bf31f1bc7 Mon Sep 17 00:00:00 2001 From: Mark H Weaver <m...@netris.org> Date: Sat, 20 Jun 2015 17:48:11 -0400 Subject: [PATCH 3/5] gnu: Add clutter. * gnu/packages/gnome.scm (clutter): New variable. --- gnu/packages/gnome.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a1d9cda..075be90 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -66,6 +66,7 @@ #:use-module (gnu packages ssh) #:use-module (gnu packages xml) #:use-module (gnu packages gl) + #:use-module (gnu packages qt) ; for libxkbcommon #:use-module (gnu packages compression) #:use-module (gnu packages texlive) #:use-module (gnu packages web) @@ -2549,3 +2550,49 @@ without stepping on each others toes.") license:bsd-3 ; cogl/cogl-point-in-poly.c license:sgifreeb2.0 ; cogl-path/tesselator/ license:asl2.0)))) ; examples/android/ + +(define-public clutter + (package + (name "clutter") + (version "1.22.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf")))) + (build-system gnu-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-genmarshal + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("xsltproc" ,libxslt))) + (propagated-inputs + `(("cogl" ,cogl) + ("cairo" ,cairo) + ("atk" ,atk) + ("gtk+" ,gtk+) + ("json-glib" ,json-glib) + ("glib" ,glib) + ("libxcomposite" ,libxcomposite) + ("libxdamage" ,libxdamage) + ("libxext" ,libxext) + ("xinput" ,xinput))) + (inputs + `(("libxkbcommon" ,libxkbcommon) + ("udev" ,eudev))) + (arguments + `(#:configure-flags '("--enable-x11-backend=yes") + ;; XXX FIXME: Get test suite working. It would probably fail in the + ;; same way the cogl tests fail, since clutter is based on cogl. + #:tests? #f)) + (home-page "http://www.clutter-project.org") + (synopsis "Open GL based interactive canvas library") + (description + "Clutter is an Open GL based interactive canvas library, designed for +creating fast, mainly 2D single window applications such as media box UIs, +presentations, kiosk style applications and so on.") + (license license:lgpl2.0+))) -- 2.4.3
>From 9e5b77a487fbea13c07685e2123184b665fc7c39 Mon Sep 17 00:00:00 2001 From: Mark H Weaver <m...@netris.org> Date: Sat, 20 Jun 2015 18:49:03 -0400 Subject: [PATCH 4/5] gnu: Add clutter-gtk. * gnu/packages/gnome.scm (clutter-gtk): New variable. --- gnu/packages/gnome.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 075be90..adcee3d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2596,3 +2596,31 @@ without stepping on each others toes.") creating fast, mainly 2D single window applications such as media box UIs, presentations, kiosk style applications and so on.") (license license:lgpl2.0+))) + +(define-public clutter-gtk + (package + (name "clutter-gtk") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0k93hbf5d1970hs7vjddr3nnngygc7mxqbj474r3cdm0fjsm0dc8")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("clutter" ,clutter) + ("gtk+" ,gtk+))) + (home-page "http://www.clutter-project.org") + (synopsis "Open GL based interactive canvas library GTK+ widget") + (description + "Clutter is an Open GL based interactive canvas library, designed for +creating fast, mainly 2D single window applications such as media box UIs, +presentations, kiosk style applications and so on.") + (license license:lgpl2.0+))) -- 2.4.3
>From 6fdf1635b83033a07b881e80249e8b77db1dde69 Mon Sep 17 00:00:00 2001 From: Mark H Weaver <m...@netris.org> Date: Sat, 20 Jun 2015 18:56:42 -0400 Subject: [PATCH 5/5] gnu: Add clutter-gst. * gnu/packages/gnome.scm (clutter-gst): New variable. --- gnu/packages/gnome.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index adcee3d..b3dbbe2 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2624,3 +2624,33 @@ presentations, kiosk style applications and so on.") creating fast, mainly 2D single window applications such as media box UIs, presentations, kiosk style applications and so on.") (license license:lgpl2.0+))) + +(define-public clutter-gst + (package + (name "clutter-gst") + (version "3.0.6") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0xnzfdzawl1kdx715gp31nwjp7a1kib094s7xvg7bhbwwlx4kmfn")))) + (build-system gnu-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-mkenums + ("pkg-config" ,pkg-config) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("clutter" ,clutter) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) + (home-page "http://www.clutter-project.org") + (synopsis "Open GL based interactive canvas library GStreamer elements") + (description + "Clutter is an Open GL based interactive canvas library, designed for +creating fast, mainly 2D single window applications such as media box UIs, +presentations, kiosk style applications and so on.") + (license license:lgpl2.0+))) -- 2.4.3