Re: libwnck

2016-02-24 Thread Fabian Harfert
On Wed, 24 Feb 2016 16:17:41 +0100
Andreas Enge <andr...@enge.fr> wrote:

> On Wed, Feb 24, 2016 at 04:06:18PM +0100, Fabian Harfert wrote:
> > the name libwnck-1 is right. The library files have this name and
> > the pkg-config file refers to that. This is because it uses Gtk+
> > 2.x and has a different API than libwnck-3. I don't know why they
> > chose this versioning, but it's their decision.  
> 
> Well, these are the sonames, which need not be related to the program
> version. A package with a given version may ship arbitrary libraries
> with arbitrary sonames. For instance, gmp-6.1 and gmp-6.0 ship
> libgmp.so.10 and libgmpxx.so.4.
> 
> Nevertheless, we still call all variables gmp and gmp-6.0,
> respectively.
> 
> So here we should also use libwnck-2. Notice that the variable name is
> something that humans edit, whereas we need not care about sonames
> that are handled by some magic.
> 
> Andreas
> 

Ok, just saw that after I read your mail.



Re: libwnck

2016-02-24 Thread Fabian Harfert
On Tue, 23 Feb 2016 12:31:38 +0100
Andreas Enge  wrote:

> Hello,
> 
> we have the following in gnome.scm:
> $ guix package -A libwnck
> libwnck   2.30.7  out gnu/packages/gnome.scm:1464:2
> libwnck   3.14.0  out gnu/packages/gnome.scm:1435:2
> 
> However, the first one is internally assigned to the variable
> "libwnck-1". I assume that someone got inspired by another case where
> the "-1" is actually a version number. Is it okay if I rename it to
> "libwnck-2"?
> 
> Andreas
> 
> 

Hello,

the name libwnck-1 is right. The library files have this name and the
pkg-config file refers to that. This is because it uses Gtk+ 2.x and
has a different API than libwnck-3. I don't know why they chose this
versioning, but it's their decision.

Fabian



Re: [PATCH 1/7] gnu: Add mate-polkit.

2016-02-20 Thread Fabian Harfert
Hello,

thanks for your reply.

On Sat, 20 Feb 2016 14:41:17 +0100
Andreas Enge  wrote:

> Hello,
> 
> before considering more mate packages, I would like to get back to
> discussing the existing ones; as I am not knowledgeable about desktop
> packages, I must admit I did not look at them too closely before. So
> maybe my comments can also be disregarded, but it would be good if
> someone more expert could chime in.
> 
> First of all, the build system. Since usually there are inputs glib
> and gtk+, would it not be more appropriate to use
> glib-or-gtk-build-system?

I thought, as the normal GNU build system is used here, I'll use that.
But reading the documentation again, I've found out, that what you
mentioned is a good idea. I'll change this.

> Second, there are lots of propagated inputs. Are these really needed?

I carefully checked all the library source dependencies and so on. I
think all these propagated inputs are needed.

> It is a bit strange that a library like libmateweather should need
> such a propagation; normally our runpath magic should have rewritten
> all references to input libraries.
> 
> If propagations are necessary, the reason should be added as a
> comment, for instance as for gnome-desktop:
> (propagated-inputs
>  ;; Required by gnome-desktop-3.0.pc.
>  `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
>("gtk+" ,gtk+)))

If that is necessary, I'll add these comments, but I think it's not too
difficult to look into the .pc files. Some of the packages have
comments, but the most don't.

> The .pc file of libmateweather indeed has the following lines:
>Requires: glib-2.0 gobject-2.0 gdk-pixbuf-2.0 gtk+-2.0 gio-2.0
>Requires.private: libxml-2.0 libsoup-2.4
> Also, weather.h contains
>#include 
> So it looks as if propagation is needed here.

I also saw that, but I thought, if the .pc file isn't referring to
something, it doesn't make sense to add it, because pkg-config
won't add the necessary compiler flags and libraries, so that gcc isn't
finding it.

But actually I don't really know. I'll recheck all the .pc files and
headers (not too much).

> 
> What do you think?
> 
> Andreas
>

In general I think you should wait until I've ready the rest of MATE
(caja, mate-control-center and stuff like documentation or wallpapers),
so that it can be tested by me first. The patches I've sent were more
for corrections and review.

So thanks for the hints!

Fabian



[PATCH] gnu: Add libunique.

2016-02-19 Thread Fabian Harfert
* gnu/packages/patches/libunique-gdbus.patch: New file.
* gnu/packages/patches/libunique-remove-G_CONST_RETURN.patch: New file.
* gnu/packages/glib.scm (libunique): New variable.
---
 gnu/packages/glib.scm  |  32 ++
 gnu/packages/patches/libunique-gdbus.patch | 529 +
 .../patches/libunique-remove-G_CONST_RETURN.patch  | 117 +
 3 files changed, 678 insertions(+)
 create mode 100644 gnu/packages/patches/libunique-gdbus.patch
 create mode 100644 gnu/packages/patches/libunique-remove-G_CONST_RETURN.patch

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f8e1541..259a744 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nik...@karetnikov.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <m...@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efr...@flashner.co.il>
+;;; Copyright © 2016 Fabian Harfert <fhmg...@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -611,3 +613,33 @@ many applications simultaneously.
 
 This package provides the library for GLib applications.")
 (license license:lgpl2.1+)))
+
+(define-public libunique
+  (package
+(name "libunique")
+(version "1.1.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "mirror://gnome/sources/libunique/"
+   (version-major+minor version) "/"
+   name "-" version ".tar.bz2"))
+   (sha256
+(base32
+ "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75"))
+   (patches
+(list (search-patch "libunique-gdbus.patch")
+  (search-patch "libunique-remove-G_CONST_RETURN.patch")
+(build-system glib-or-gtk-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("gobject-introspection" ,gobject-introspection)
+   ("glib:bin" ,glib "bin")))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "https://wiki.gnome.org/Attic/LibUnique;)
+(synopsis "Library for writing single instance application")
+(description
+ "Libunique is library providing a mechanism to allow only one running
+instance of an application.")
+(license license:lgpl2.1+)))
diff --git a/gnu/packages/patches/libunique-gdbus.patch 
b/gnu/packages/patches/libunique-gdbus.patch
new file mode 100644
index 000..880c0c0
--- /dev/null
+++ b/gnu/packages/patches/libunique-gdbus.patch
@@ -0,0 +1,529 @@
+From 01066039529c0181f231325476bb4823c16a2aea Mon Sep 17 00:00:00 2001
+From: Christian Persch <c...@gnome.org>
+Date: Sat, 15 May 2010 17:47:45 +
+Subject: Add GDBus backend
+
+Add backend using GDBus, the new D-BUS binding in GIO 2.25.
+
+Bug #618723.
+---
+diff --git a/configure.ac b/configure.ac
+index bc3163a..b6a4221 100644
+--- a/configure.ac
 b/configure.ac
+@@ -116,6 +116,19 @@ AS_IF([test "x$have_dbus" = "xyes"],
+ 
+ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
+ 
++dnl GDBus backend
++dnl This is the default backend if GIO is recent enough
++m4_define([gdbus_gio_required],[2.25.7])
++PKG_CHECK_MODULES([GDBUS],[gio-2.0 >= 
gdbus_gio_required],[have_gdbus=yes],[have_gdbus=no])
++
++AS_IF([test "x$have_gdbus" = "xyes"],
++  [
++AC_DEFINE([HAVE_GDBUS],[1],[Define if GDBus backend is enabled])
++  ]
++  )
++
++AM_CONDITIONAL([HAVE_GDBUS],[test "$have_gdbus" = "yes"])
++
+ dnl Bacon backend
+ dnl This is the fallback backend, so we *need* these headers and functions
+ dnl even if we end up using D-Bus
+@@ -146,7 +159,13 @@ AM_CONDITIONAL([HAVE_BACON], [test "x$have_bacon" = 
"xyes"])
+ 
+ dnl Choose the default backend
+ AC_MSG_CHECKING([for default IPC mechanism])
+-AS_IF([test "x$have_dbus" = "xyes"],
++AS_IF([test "x$have_gdbus" = "xyes"],
++  [
++UNIQUE_DEFAULT_BACKEND=gdbus
++AC_MSG_RESULT([GDBus])
++  ],
++
++  [test "x$have_dbus" = "xyes"],
+   [
+ UNIQUE_DEFAULT_BACKEND=dbus
+ AC_MSG_RESULT([D-Bus])
+@@ -243,6 +262,7 @@ AC_CONFIG_FILES([
+ unique/uniqueversion.h
+ unique/bacon/Makefile
+ unique/dbus/Makefile
++unique/gdbus/Makefile
+ tests/Makefile
+ po/Makefile.in
+ ])
+@@ -261,6 +281,7 @@ Configuration:
+ Backends:
+   Unix Domain Socket: $have_bacon
+D-B

[PATCH 1/7] gnu: Add mate-polkit.

2016-02-19 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-polkit): New variable.
---
 gnu/packages/mate.scm | 36 +---
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c4b75f8..7eb83de 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -31,7 +31,9 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages base)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages polkit))
 
 (define-public mate-icon-theme
   (package
@@ -81,8 +83,7 @@
("gtk-engines" ,gtk-engines)
("murrine" ,murrine)))
 (home-page "http://mate-desktop.org/;)
-(synopsis
- "Official themes for the MATE desktop")
+(synopsis "Official themes for the MATE desktop")
 (description
  "This package includes the standard themes for the MATE desktop, for
 example Menta, TraditionalOk, GreenLaguna or BlackMate.")
@@ -209,3 +210,32 @@ the MATE desktop environment.")
 specification, the MATE menu layout configuration files, .directory files and
 assorted menu related utility programs.")
 (license (list license:gpl2+ license:lgpl2.0+
+
+(define-public mate-polkit
+  (package
+(name "mate-polkit")
+(version "1.12.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1fgq3dbncdjndwqjza3rja68x55ngvafi93zsaazq42f7l60m3y3"
+(build-system gnu-build-system)
+(native-inputs
+ `(("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)
+   ("gobject-introspection" ,gobject-introspection)))
+(inputs
+ `(("gtk+" ,gtk+-2)
+   ("accountsservice" ,accountsservice)))
+(propagated-inputs
+ `(("polkit" ,polkit)))
+(home-page "http://mate-desktop.org/;)
+(synopsis "PolicyKit integration for the MATE desktop")
+(description
+ "This package contains extensions for PolicyKit used by the MATE desktop
+environment.")
+(license license:lgpl2.0+)))
-- 
1.9.1




[PATCH 2/7] gnu: Add libmatekbd.

2016-02-19 Thread Fabian Harfert
* gnu/packages/mate.scm (libmatekbd): New variable.
---
 gnu/packages/mate.scm | 34 +-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 7eb83de..ebe99cb 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -33,7 +33,8 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages python)
   #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages polkit))
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages iso-codes))
 
 (define-public mate-icon-theme
   (package
@@ -239,3 +240,34 @@ assorted menu related utility programs.")
  "This package contains extensions for PolicyKit used by the MATE desktop
 environment.")
 (license license:lgpl2.0+)))
+
+(define-public libmatekbd
+  (package
+(name "libmatekbd")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"18jfnrxpdhpqish8a0fzcgndbqb8a0z5p8vahd3spl1zn97lk82q"
+(build-system gnu-build-system)
+(native-inputs
+ `(("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin")))
+(inputs
+ `(("dconf" ,dconf)
+   ("iso-codes" ,iso-codes)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)
+   ("glib" ,glib)
+   ("libxklavier" ,libxklavier)))
+(home-page "http://mate-desktop.org/;)
+(synopsis "MATE library to manage keyboard configuration")
+(description
+ "Libmatekbd offers an API to manage the keyboard in MATE applications and
+the GUI elements to display its operations.")
+(license license:lgpl2.0+)))
-- 
1.9.1




[PATCH 4/7] gnu: Add mate-settings-daemon.

2016-02-19 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-settings-daemon): New variable.
---
 gnu/packages/mate.scm | 45 -
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c88db14..aa2dc44 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -36,7 +36,10 @@
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages linux)
-  #:use-module (gnu packages pulseaudio))
+  #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages gnuzilla))
 
 (define-public mate-icon-theme
   (package
@@ -301,3 +304,43 @@ the GUI elements to display its operations.")
  "Libmatemixer provides an abstract API allowing access to mixer
 functionality available in the PulseAudio, ALSA and OSS sound systems.")
 (license license:lgpl2.0+)))
+
+(define-public mate-settings-daemon
+  (package
+(name "mate-settings-daemon")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1279f7mz026407bsj6wc46imyr5f3mvnrzryhw750a2qp9aymnd0"
+(build-system gnu-build-system)
+(native-inputs
+ `(("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin")))
+(inputs
+ `(("dbus-glib" ,dbus-glib)
+   ("dconf" ,dconf)
+   ("fontconfig" ,fontconfig)
+   ("gtk+" ,gtk+-2)
+   ("libcanberra-gtk2" ,libcanberra/gtk+-2)
+   ("libmatekbd" ,libmatekbd)
+   ("libmatemixer" ,libmatemixer)
+   ("libnotify" ,libnotify)
+   ("libxt" ,libxt)
+   ("mate-desktop" ,mate-desktop)
+   ("nss" ,nss)
+   ("polkit" ,polkit)
+   ("libxi" ,libxi)))
+(home-page "http://mate-desktop.org/;)
+(synopsis "Daemon handling the MATE session settings")
+(description
+ "This package contains the daemon which is responsible for setting the
+various parameters of a MATE session and the applications that run under it,
+for example keyboard, mouse or theming.")
+(license (list license:gpl2+ license:gpl3+ license:lgpl2.0+
+   license:lgpl2.1+
-- 
1.9.1




[PATCH 7/7] gnu: Add mate-panel.

2016-02-19 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-panel): New variable.
---
 gnu/packages/mate.scm | 58 +++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index de4ce21..d61cea9 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -424,3 +424,61 @@ MATE desktop environment user session.")
  "Marco is a simple Gtk+ based window manager used in the MATE desktop
 environment.")
 (license (list license:gpl2+ license:lgpl2.0+
+
+(define-public mate-panel
+  (package
+(name "mate-panel")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0i79k9apah79b53jmmk42cgq2a0qv6vwdl7pb1mhdznn0y7hg40d"
+(build-system gnu-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'fix-introspection-install-dir
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+(substitute* '("configure")
+  (("`\\$PKG_CONFIG --variable=girdir 
gobject-introspection-1.0`")
+   (string-append out "\"/share/gir-1.0/\""))
+  (("\\$\\(\\$PKG_CONFIG --variable=typelibdir 
gobject-introspection-1.0\\)")
+   (string-append out "/lib/girepository-1.0/")
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)
+   ("yelp-tools" ,yelp-tools)
+   ("glib:bin" ,glib "bin")))
+(inputs
+ `(("dbus-glib" ,dbus-glib)
+   ("dconf" ,dconf)
+   ("libwnck" ,libwnck-1)
+   ("libcanberra-gtk2" ,libcanberra/gtk+-2)
+   ("libice" ,libice)
+   ("libmateweather" ,libmateweather)
+   ("libsm" ,libsm)
+   ("libsoup" ,libsoup)
+   ("libxau" ,libxau)
+   ("libxrandr" ,libxrandr)
+   ("libxi" ,libxi)
+   ("mate-menus" ,mate-menus)
+   ("mate-desktop" ,mate-desktop)
+   ("python" ,python-2)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "https://mate-desktop.org/;)
+(synopsis "Launcher and docking facility for MATE")
+(description
+ " The MATE Panel is an essential part of the MATE Desktop, providing
+toolbar-like panels which can be attached to the sides of your desktop.  They
+are used to launch applications and embed a number of other functions, such as
+quick launch icons, the clock, the notification area, volume controls and the
+battery charge indicator, and utilities ranging from weather forecast to system
+monitoring.")
+(license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+
-- 
1.9.1




[PATCH 6/7] gnu: Add marco.

2016-02-19 Thread Fabian Harfert
* gnu/packages/mate.scm (marco): New variable.
---
 gnu/packages/mate.scm | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 0ff8b95..de4ce21 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -382,3 +382,45 @@ for example keyboard, mouse or theming.")
 manager. It will load all necessary applications for a full-featured
 MATE desktop environment user session.")
 (license (list license:gpl2+ license:lgpl2.0+
+
+(define-public marco
+  (package
+(name "marco")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"116hmm3cwkdg4qv7i9qccc747bqb3pb8igg5cd89w81ajlar2ybz"
+(build-system gnu-build-system)
+(native-inputs
+ `(("yelp-tools" ,yelp-tools)
+   ("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin")))
+(inputs
+ `(("pango" ,pango)
+   ("libxft" ,libxft)
+   ("libxcomposite" ,libxcomposite)
+   ("libxdamage" ,libxdamage)
+   ("gdk-pixbuf" ,gdk-pixbuf)
+   ("gtk+" ,gtk+-2)
+   ("libcanberra-gtk2" ,libcanberra/gtk+-2)
+   ("libgtop" ,libgtop)
+   ("libice" ,libice)
+   ("libsm" ,libsm)
+   ("libxt" ,libxt)
+   ("mate-desktop" ,mate-desktop)
+   ("startup-notification" ,startup-notification)
+   ("zenity" ,zenity)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "http://mate-desktop.org/;)
+(synopsis "Window manager for the MATE desktop")
+(description
+ "Marco is a simple Gtk+ based window manager used in the MATE desktop
+environment.")
+(license (list license:gpl2+ license:lgpl2.0+
-- 
1.9.1




[PATCH 3/7] gnu: Add libmatemixer.

2016-02-19 Thread Fabian Harfert
* gnu/packages/mate.scm (libmatemixer): New variable.
---
 gnu/packages/mate.scm | 32 +++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index ebe99cb..c88db14 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -34,7 +34,9 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages polkit)
-  #:use-module (gnu packages iso-codes))
+  #:use-module (gnu packages iso-codes)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pulseaudio))
 
 (define-public mate-icon-theme
   (package
@@ -271,3 +273,31 @@ environment.")
  "Libmatekbd offers an API to manage the keyboard in MATE applications and
 the GUI elements to display its operations.")
 (license license:lgpl2.0+)))
+
+(define-public libmatemixer
+  (package
+(name "libmatemixer")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1w0grrhlmwajw6d92cs4gfwck6nq23i30alj50243dygycaxvkfy"
+(build-system gnu-build-system)
+(native-inputs
+ `(("intltool" ,intltool)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("alsa-lib" ,alsa-lib)
+   ("pulseaudio" ,pulseaudio)))
+(propagated-inputs
+ `(("glib" ,glib)))
+(home-page "http://mate-desktop.org/;)
+(synopsis "Sound mixer library for MATE Desktop")
+(description
+ "Libmatemixer provides an abstract API allowing access to mixer
+functionality available in the PulseAudio, ALSA and OSS sound systems.")
+(license license:lgpl2.0+)))
-- 
1.9.1




[PATCH] gnu: Add libunique.

2016-02-19 Thread Fabian Harfert
* gnu/packages/glib.scm (libunique): New variable.
* gnu/packages/patches/libunique-gdbus.patch: New file.
* gnu/packages/patches/libunique-remove-G_CONST_RETURN.patch: New file.
---
 gnu/packages/glib.scm  |  32 ++
 gnu/packages/patches/libunique-gdbus.patch | 529 +
 .../patches/libunique-remove-G_CONST_RETURN.patch  | 117 +
 3 files changed, 678 insertions(+)
 create mode 100644 gnu/packages/patches/libunique-gdbus.patch
 create mode 100644 gnu/packages/patches/libunique-remove-G_CONST_RETURN.patch

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f8e1541..259a744 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2013 Nikita Karetnikov <nik...@karetnikov.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <m...@netris.org>
 ;;; Copyright © 2016 Efraim Flashner <efr...@flashner.co.il>
+;;; Copyright © 2016 Fabian Harfert <fhmg...@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system glib-or-gtk)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -611,3 +613,33 @@ many applications simultaneously.
 
 This package provides the library for GLib applications.")
 (license license:lgpl2.1+)))
+
+(define-public libunique
+  (package
+(name "libunique")
+(version "1.1.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "mirror://gnome/sources/libunique/"
+   (version-major+minor version) "/"
+   name "-" version ".tar.bz2"))
+   (sha256
+(base32
+ "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75"))
+   (patches
+(list (search-patch "libunique-gdbus.patch")
+  (search-patch "libunique-remove-G_CONST_RETURN.patch")
+(build-system glib-or-gtk-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("gobject-introspection" ,gobject-introspection)
+   ("glib:bin" ,glib "bin")))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "https://wiki.gnome.org/Attic/LibUnique;)
+(synopsis "Library for writing single instance application")
+(description
+ "Libunique is library providing a mechanism to allow only one running
+instance of an application.")
+(license license:lgpl2.1+)))
diff --git a/gnu/packages/patches/libunique-gdbus.patch 
b/gnu/packages/patches/libunique-gdbus.patch
new file mode 100644
index 000..880c0c0
--- /dev/null
+++ b/gnu/packages/patches/libunique-gdbus.patch
@@ -0,0 +1,529 @@
+From 01066039529c0181f231325476bb4823c16a2aea Mon Sep 17 00:00:00 2001
+From: Christian Persch <c...@gnome.org>
+Date: Sat, 15 May 2010 17:47:45 +
+Subject: Add GDBus backend
+
+Add backend using GDBus, the new D-BUS binding in GIO 2.25.
+
+Bug #618723.
+---
+diff --git a/configure.ac b/configure.ac
+index bc3163a..b6a4221 100644
+--- a/configure.ac
 b/configure.ac
+@@ -116,6 +116,19 @@ AS_IF([test "x$have_dbus" = "xyes"],
+ 
+ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
+ 
++dnl GDBus backend
++dnl This is the default backend if GIO is recent enough
++m4_define([gdbus_gio_required],[2.25.7])
++PKG_CHECK_MODULES([GDBUS],[gio-2.0 >= 
gdbus_gio_required],[have_gdbus=yes],[have_gdbus=no])
++
++AS_IF([test "x$have_gdbus" = "xyes"],
++  [
++AC_DEFINE([HAVE_GDBUS],[1],[Define if GDBus backend is enabled])
++  ]
++  )
++
++AM_CONDITIONAL([HAVE_GDBUS],[test "$have_gdbus" = "yes"])
++
+ dnl Bacon backend
+ dnl This is the fallback backend, so we *need* these headers and functions
+ dnl even if we end up using D-Bus
+@@ -146,7 +159,13 @@ AM_CONDITIONAL([HAVE_BACON], [test "x$have_bacon" = 
"xyes"])
+ 
+ dnl Choose the default backend
+ AC_MSG_CHECKING([for default IPC mechanism])
+-AS_IF([test "x$have_dbus" = "xyes"],
++AS_IF([test "x$have_gdbus" = "xyes"],
++  [
++UNIQUE_DEFAULT_BACKEND=gdbus
++AC_MSG_RESULT([GDBus])
++  ],
++
++  [test "x$have_dbus" = "xyes"],
+   [
+ UNIQUE_DEFAULT_BACKEND=dbus
+ AC_MSG_RESULT([D-Bus])
+@@ -243,6 +262,7 @@ AC_CONFIG_FILES([
+ unique/uniqueversion.h
+ unique/bacon/Makefile
+ unique/dbus/Makefile
++unique/gdbus/Makefile
+ tests/Makefile
+ po/Makefile.in
+ ])
+@@ -261,6 +281,7 @@ Configuration:
+ Backends:
+   Unix Domain Socket: $have_bacon
+D-B

Desktop variables and caches

2016-02-18 Thread Fabian Harfert
Hi!

While working on and testing my MATE packages I noticed the following
things:

I already mentioned this before, but it belongs here, too: Gtk+ needs
the environment variable GTK_DATA_PREFIX defined to the user profile
directory to find themes.

For GdkPixbuf it's necessary to define GDK_PIXBUF_MODULEDIR to the
sub-directory lib/gdk-pixbuf-2.0/2.10.0/loaders of the users profile to
make it finding loader modules like the one provided by librsvg for
SVG support. In addition the command 'gdk-pixbuf-query-loaders' needs
to be called to cache the different loaders. For that the variable
GDK_PIXBUF_MODULE_FILE has to contain the cache file
(lib/gdk-pixbuf-2.0/2.10.0/loaders.cache). That must be done when the
profile is built.

To allow GLib GSettings to find it's compiled settings schemas the
command 'glib-compile-schemas' with the share/glib-2.0/schemas
directory needs to be called when the profile is built.

The last two points result in the fact, that each package using
extensions to GdkPixbuf or GSettings schemas from other packages needs
to propagate them (e.g. librsvg or gsettings-desktop-schemas).

We also need to define the XDG_CONFIG_DIRS variable. It is used by
several applications to find files in etc from other applications.

Please note that I'm still not using the Guix system distribution, so I
don't know if this also applies for that platform, but I think so.

Fabian



Package modules

2016-02-18 Thread Fabian Harfert
Hi!

I don't understand the point that makes package modules necessary in
general and theoretically. We can have each package only once, so
there's no need for that.

I know that practically it is necessary because it's easy to structure
and results from the definition of packages like program code.

But why isn't it possible to include all the packages modules from (gnu
packages) automatically? Is there something speaking against that?

Fabian



Re: [PATCH 5/5] gnu: Add mate-menus.

2016-02-17 Thread Fabian Harfert
Hi!

> some of the lines were a bit long so I changed the indenting. can't
> wait for the rest of mate!

The rest will follow soon, thanks for pushing :)

Fabian



GSettings schemas

2016-02-11 Thread Fabian Harfert
Hi!

Trying to use some successfully built packages I noticed that they fail
to start because of missing installed GSettings schemas. When the
profile is build, each package, that has a gschemas.compiled file in
its share/glib-2.0/schemas/ directory overides the one of the last
package so that lots of schemas are missing.

I think it would be enough to just call 'glib-compile-schemas' with the
profile output directory as an argument after all packages are in the
profile, where their XML schema files live in share/glib-2.0/schemas/.
That would generate one gschemas.compiled for all of them.

WDYT?

Fabian



Re: [PATCH 2/5] gnu: Add mate-themes.

2016-02-11 Thread Fabian Harfert
Am Thu, 11 Feb 2016 22:51:44 +0200
schrieb Efraim Flashner <efr...@flashner.co.il>:

> On Wed, 10 Feb 2016 00:00:21 +0100
> Fabian Harfert <fhmg...@web.de> wrote:
> 
> > From: Fabian Harfert <fhmg...@web.de>
> > To: guix-devel@gnu.org
> > Subject: [PATCH 2/5] gnu: Add mate-themes.
> > Date: Wed, 10 Feb 2016 00:00:21 +0100
> > Sender: guix-devel-bounces+efraim=flashner.co...@gnu.org
> > X-Mailer: git-send-email 2.7.0
> > 
> > * gnu/packages/mate.scm (mate-themes): New variable.
> > ---
> >  gnu/packages/mate.scm | 32 
> >  1 file changed, 32 insertions(+)
> > 
> > diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
> > index d8242d6..6e5ce7c 100644
> > --- a/gnu/packages/mate.scm
> > +++ b/gnu/packages/mate.scm
> > @@ -51,3 +51,35 @@
> >  (description
> >   "This package contains the default icon theme used by the
> > MATE desktop.") (license license:lgpl3+)))
> > +
> > +(define-public mate-themes
> > +  (package
> > +(name "mate-themes")
> > +(version "1.12.2")
> > +(source (origin
> > +  (method url-fetch)
> > +  (uri (string-append
> > "http://pub.mate-desktop.org/releases/;
> > +  (version-major+minor version) "/"
> > +  name "-gtk"
> > +  (version-major+minor
> > (package-version gtk+))
> > +  "-" version ".tar.xz"))  
> I applied the first two patches to my checkout and although I was
> sure it would try to use the gtk+-2 from the inputs, it downloaded
> mate-themes-gtk3.18-1.12.2.tar.xz

That's right. Of course the themes should support the newest Gtk+
versions. I'm not sure wether gtk+-2 is really needed as an input, but
the developers mention it in their Debian and Arch packages. Because
they didn't include gtk+-3 I thought that it might be needed.

> 
> > +  (sha256
> > +   (base32
> > +
> > "0kyrlgs5azzj60gnxx2n9qszcligxn959wr42wr0iqnrpiygk5nf"
> > +(build-system gnu-build-system)
> > +(native-inputs
> > + `(("pkg-config" ,pkg-config)
> > +   ("intltool" ,intltool)))
> > +(inputs
> > + `(("gtk+" ,gtk+-2)
> > +   ("gdk-pixbuf" ,gdk-pixbuf)
> > +   ("gtk-engines" ,gtk-engines)
> > +   ("murrine" ,murrine)))
> > +(home-page "http://mate-desktop.org/;)
> > +(synopsis
> > + "Official themes for the MATE desktop")
> > +(description
> > + "This package includes the standard themes for the MATE
> > desktop, for +example Menta, TraditionalOk, GreenLaguna or
> > BlackMate.")
> > +(license (list license:lgpl2.1+ license:cc-by-sa3.0
> > license:gpl3+
> > +   license:gpl2+  
> Any chance the 4 themes match up with the 4 licenses?
> 
> It looks good to me
> 
> 



[PATCH 2/5] gnu: Add mate-themes.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-themes): New variable.
---
 gnu/packages/mate.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index d8242d6..6e5ce7c 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -51,3 +51,35 @@
 (description
  "This package contains the default icon theme used by the MATE desktop.")
 (license license:lgpl3+)))
+
+(define-public mate-themes
+  (package
+(name "mate-themes")
+(version "1.12.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-gtk"
+  (version-major+minor (package-version gtk+))
+  "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0kyrlgs5azzj60gnxx2n9qszcligxn959wr42wr0iqnrpiygk5nf"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)))
+(inputs
+ `(("gtk+" ,gtk+-2)
+   ("gdk-pixbuf" ,gdk-pixbuf)
+   ("gtk-engines" ,gtk-engines)
+   ("murrine" ,murrine)))
+(home-page "http://mate-desktop.org/;)
+(synopsis
+ "Official themes for the MATE desktop")
+(description
+ "This package includes the standard themes for the MATE desktop, for
+example Menta, TraditionalOk, GreenLaguna or BlackMate.")
+(license (list license:lgpl2.1+ license:cc-by-sa3.0 license:gpl3+
+   license:gpl2+
-- 
2.7.0




[PATCH 1/5] gnu: Add mate-icon-theme.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/mate.scm (mate-icon-theme): New variable.
---
 gnu-system.am |  1 +
 gnu/packages/mate.scm | 53 +++
 2 files changed, 54 insertions(+)
 create mode 100644 gnu/packages/mate.scm

diff --git a/gnu-system.am b/gnu-system.am
index 4d32e59..5083206 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -215,6 +215,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/mail.scm\
   gnu/packages/make-bootstrap.scm  \
   gnu/packages/markdown.scm\
+  gnu/packages/mate.scm   \
   gnu/packages/maths.scm   \
   gnu/packages/mc.scm  \
   gnu/packages/mcrypt.scm  \
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
new file mode 100644
index 000..d8242d6
--- /dev/null
+++ b/gnu/packages/mate.scm
@@ -0,0 +1,53 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Fabian Harfert <fhmg...@web.de>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages mate)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gnome))
+
+(define-public mate-icon-theme
+  (package
+(name "mate-icon-theme")
+(version "1.12.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0d91rvl9rw3xl8hmdcbb6xvi880kfmh2ra5chhrjimrjqgl57qkp"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("gtk+" ,gtk+)
+   ("icon-naming-utils" ,icon-naming-utils)))
+(home-page "http://mate-desktop.org/;)
+(synopsis "The MATE desktop environment icon theme")
+(description
+ "This package contains the default icon theme used by the MATE desktop.")
+(license license:lgpl3+)))
-- 
2.7.0




[PATCH 5/5] gnu: Add mate-menus.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-menus): New variable.
---
 gnu/packages/mate.scm | 43 ++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index d94d7b7..7f482e9 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -30,7 +30,8 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages base)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages python))
 
 (define-public mate-icon-theme
   (package
@@ -167,3 +168,43 @@ desktop and the mate-about program.")
  "This library provides acess to weather information from the internet for
 the MATE desktop environment.")
 (license license:lgpl2.1+)))
+
+(define-public mate-menus
+  (package
+(name "mate-menus")
+(version "1.12.0")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"1i4m3fj0vd85zyhqhm8x9yr0h5i08aa4l99zqvbk59ncj6z3bdxh"
+(build-system gnu-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'fix-introspection-install-dir
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+(substitute* '("configure")
+  (("`\\$PKG_CONFIG --variable=girdir 
gobject-introspection-1.0`")
+   (string-append "\"" out "/share/gir-1.0/\""))
+  (("\\$\\(\\$PKG_CONFIG --variable=typelibdir 
gobject-introspection-1.0\\)")
+   (string-append out "/lib/girepository-1.0/")
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(inputs
+ `(("python" ,python-2)))
+(propagated-inputs
+ `(("glib" ,glib)))
+(home-page "https://mate-desktop.org/;)
+(synopsis "Freedesktop menu specification implementation for MATE")
+(description
+ "The package contains an implementation of the freedesktop menu
+specification, the MATE menu layout configuration files, .directory files and
+assorted menu related utility programs.")
+(license (list license:gpl2+ license:lgpl2.0+
-- 
2.7.0




[PATCH 4/5] gnu: Add libmateweather.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (libmateweather): New variable.
---
 gnu/packages/mate.scm | 51 ++-
 1 file changed, 50 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index c377418..d94d7b7 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,7 +28,9 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages xdisorg))
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages xml))
 
 (define-public mate-icon-theme
   (package
@@ -118,3 +120,50 @@ example Menta, TraditionalOk, GreenLaguna or BlackMate.")
  "This package contains a public API shared by several applications on the
 desktop and the mate-about program.")
 (license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+
+
+(define-public libmateweather
+  (package
+(name "libmateweather")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0qrq6z6knybixnxmsvkw58hm033m91inf523mbvzgv2r822fpakl"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `(,(string-append "--with-zoneinfo-dir="
+ (assoc-ref %build-inputs "tzdata")
+ "/share/zoneinfo"))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before
+  'check 'pre-check
+  (lambda* (#:key inputs #:allow-other-keys)
+(substitute* "data/check-timezones.sh"
+  (("/usr/share/zoneinfo/zone.tab")
+   (string-append (assoc-ref inputs "tzdata")
+  "/share/zoneinfo/zone.tab")))
+#t)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("glib:bin" ,glib "bin")))
+(inputs
+ `(("dconf" ,dconf)
+   ("tzdata" ,tzdata)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)
+   ("gdk-pixbuf" ,gdk-pixbuf)
+   ("libxml2" ,libxml2)
+   ("libsoup" ,libsoup)))
+(home-page "https://mate-desktop.org/;)
+(synopsis "MATE library for weather information from the Internet")
+(description
+ "This library provides acess to weather information from the internet for
+the MATE desktop environment.")
+(license license:lgpl2.1+)))
-- 
2.7.0




[PATCH 3/5] gnu: Add mate-desktop.

2016-02-09 Thread Fabian Harfert
* gnu/packages/mate.scm (mate-desktop): New variable.
---
 gnu/packages/mate.scm | 37 -
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 6e5ce7c..c377418 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -26,7 +26,9 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
-  #:use-module (gnu packages gnome))
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xdisorg))
 
 (define-public mate-icon-theme
   (package
@@ -83,3 +85,36 @@
 example Menta, TraditionalOk, GreenLaguna or BlackMate.")
 (license (list license:lgpl2.1+ license:cc-by-sa3.0 license:gpl3+
license:gpl2+
+
+(define-public mate-desktop
+  (package
+(name "mate-desktop")
+(version "1.12.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://pub.mate-desktop.org/releases/;
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"00ssrzm07xyrjra075jhir1f8iy382lla7923fhic29lap26mffr"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("glib:bin" ,glib "bin")
+   ("gobject-introspection" ,gobject-introspection)
+   ("yelp-tools" ,yelp-tools)
+   ("gtk-doc" ,gtk-doc)))
+(inputs
+ `(("libxrandr" ,libxrandr)))
+(propagated-inputs
+ `(("dconf" ,dconf)
+   ("gtk+" ,gtk+-2)
+   ("startup-notification" ,startup-notification)))
+(home-page "https://mate-desktop.org/;)
+(synopsis "Library with common API for various MATE modules")
+(description
+ "This package contains a public API shared by several applications on the
+desktop and the mate-about program.")
+(license (list license:gpl2+ license:lgpl2.0+ license:fdl1.1+
-- 
2.7.0




Add some package definitions for MATE

2016-02-09 Thread Fabian Harfert
Hi!

These are some basic package definitions for the MATE desktop environment. I 
already finished mate-panel (these are its dependencies), but I still want to 
do some testing on it.

Fabian




[PATCH] system: Define 'GTK_DATA_PREFIX' in /etc/profile.

2016-02-08 Thread Fabian Harfert
* gnu/system.scm (operating-system-etc-service)[profile]: Add
  'GTK_DATA_PREFIX' definition.
---
 gnu/system.scm | 4 
 1 file changed, 4 insertions(+)

diff --git a/gnu/system.scm b/gnu/system.scm
index ff3a400..81c38e7 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <m...@netris.org>
 ;;; Copyright © 2015 Alex Kost <alez...@gmail.com>
+;;; Copyright © 2016 Fabian Harfert <fhmg...@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -479,6 +480,9 @@ fi
 # Allow GStreamer-based applications to find plugins.
 export GST_PLUGIN_PATH=\"$HOME/.guix-profile/lib/gstreamer-1.0\"
 
+# Allow Gtk+ to find themes
+export GTK_DATA_PREFIX=\"$HOME/.guix-profile\"
+
 if [ -n \"$BASH_VERSION\" -a -f /etc/bashrc ]
 then
   # Load Bash-specific initialization code.
-- 
2.7.0




Re: Gtk+ themes

2016-02-08 Thread Fabian Harfert
Hi!

> GTK_DATA_PREFIX is not a search path, so it’s expected that only one
> directory can be specified.  Is this a problem?

I don't know, I've sent a patch adding it to the /etc/profile file, as
Mark (Weaver) suggested first. But this affects only the user profile
and not the system profile, so far I understand it. But for example the
GStreamer plugins path environment variable is also defined there.

While I've understood the main aspects and principals of Guix as a
package manager, that's not the case for the services and the system
distribution. The reason might be (and is) that I'm not running it for
now.

Fabian.



[PATCH] gnu: Add libcanberra-gtk2.

2016-02-07 Thread Fabian Harfert
* gnu/packages/libcanberra.scm (libcanberra/gtk+-2): New variable.
---
 gnu/packages/libcanberra.scm | 8 
 1 file changed, 8 insertions(+)

diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 3769e3f..50c0f80 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andr...@enge.fr>
 ;;; Copyright © 2014, 2015 Ludovic Courtès <l...@gnu.org>
+;;; Copyright © 2016 Fabian Harfert <fhmg...@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
@@ -96,6 +98,12 @@ GNOME.  It comes with several backends (ALSA, PulseAudio, 
OSS, GStreamer,
 null) and is designed to be portable.")
 (license lgpl2.1+)))
 
+(define-public libcanberra/gtk+-2
+  (package (inherit libcanberra)
+(name "libcanberra-gtk2")
+(inputs `(,@(alist-delete "gtk+" (package-inputs libcanberra))
+  ("gtk+" ,gtk+-2)
+
 (define-public sound-theme-freedesktop
   (package
 (name "sound-theme-freedesktop")
-- 
2.7.0




Gtk+ themes

2016-02-07 Thread Fabian Harfert
Hi!

Looking into this source file I found out that it would make it
possible to support Gtk+ themes out of the box, if the environment
variable GTK_DATA_PREFIX is set to the base directory of the user's
profile (e.g. /home/rms/.guix_profile/). I tried it with lxapearance
and it seems to work. The problem Mark mentioned on IRC is that this
can't contain multiple directories. But looking at the sources (e.g.
https://git.gnome.org/browse/gtk+/tree/gtk/gtkcssprovider.c, line 2071)
this seems to be the only opportunity to set this. Any ideas? Maybe
there's a better option, I don't know.

Fabian



[PATCH] gnu: Add libcanberra-gtk2.

2016-02-06 Thread Fabian Harfert
* gnu/packages/libcanberra.scm (libcanberra/gtk+-2): New variable.
---
 gnu/packages/libcanberra.scm | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 3769e3f..2cd75ce 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andr...@enge.fr>
 ;;; Copyright © 2014, 2015 Ludovic Courtès <l...@gnu.org>
+;;; Copyright © 2016 Fabian Harfert <fhmg...@web.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -96,6 +97,19 @@ GNOME.  It comes with several backends (ALSA, PulseAudio, 
OSS, GStreamer,
 null) and is designed to be portable.")
 (license lgpl2.1+)))
 
+(define-public libcanberra/gtk+-2
+  (package (inherit libcanberra)
+(name "libcanberra-gtk2")
+(inputs
+ `(("alsa-lib" ,alsa-lib)
+   ("gstreamer" ,gstreamer)
+   ("gtk+" ,gtk+-2)
+   ("libltdl" ,libltdl)
+   ("libvorbis" ,libvorbis)
+   ("pulseaudio" ,pulseaudio)
+   ("udev" ,eudev)
+   ("sound-theme-freedesktop" ,sound-theme-freedesktop)
+
 (define-public sound-theme-freedesktop
   (package
 (name "sound-theme-freedesktop")
-- 
2.7.0




Re: [PATCH] gnu: Add gtk-engines and murrine.

2016-02-05 Thread Fabian Harfert
On Fri, 05 Feb 2016 08:08:21 +0100
Ricardo Wurmus  wrote:

> Hi Fabian,
> 
> I wonder if this will work out of the box.  Where does GTK+ look for
> engines?  Was the patch enough to GTK+ to make it respect
> GUIX_GTK2_PATH and GUIX_GTK3_PATH?
> 
> Or will we need to add some additional procedure to building profiles
> to generate a cache or a list of engines expected by GTK+?  (I know
> that at least for input method modules something like that will be
> needed.)
> 
> ~~ Ricardo
> 

Hi!

Because the gtk-xfce-engine from xfce.scm doesn't need this I thought
that this is the case for these engines, too. But really, I don't know
how this is handled. If I install the package to my profile, which is
included in the GUIX_GTK2_PATH, they are found by Gtk+.

And, as I'm still not familiar with git send-email, the gtk-engines
patch needs to be applied first (if it's okay so).

Fabian



[PATCH] gnu: Add murrine.

2016-02-04 Thread Fabian Harfert
* gnu/packages/gtk.scm (murrine): New variable.
---
 gnu/packages/gtk.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3d8a652..cf13294 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1159,3 +1159,32 @@ can also be used to document application code.")
 Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,
 Redmond95 and ThinIce.")
 (license (list license:gpl2+ license:lgpl2.0+
+
+(define-public murrine
+  (package
+(name "murrine")
+(version "0.98.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"129cs5bqw23i76h3nmc29c9mqkm9460iwc8vkl7hs4xr07h8mip9"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `("--enable-animation"
+ "--enable-animationrtl")))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "http://live.gnome.org/GnomeArt;)
+(synopsis "Cairo-based Gtk+ 2 theming engine")
+(description
+ "The murrine Gtk+ 2 engine is a cairo-based theming engine. It is named
+after the glass artworks done by Venicians glass blowers.")
+(license license:gpl2+)))
-- 
2.7.0




[PATCH] gnu: Add gtk-engines.

2016-02-04 Thread Fabian Harfert
* gnu/packages/gtk.scm (gtk-engines): New variable.
---
 gnu/packages/gtk.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3f92d0a..3d8a652 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1130,3 +1130,32 @@ information.")
 typically used to document the public API of GTK+ and GNOME libraries, but it
 can also be used to document application code.")
 (license license:gpl2+)))
+
+(define-public gtk-engines
+  (package
+(name "gtk-engines")
+(version "2.20.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+  name "-" version ".tar.bz2"))
+  (sha256
+   (base32
+"1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `("--enable-animation")))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "http://live.gnome.org/GnomeArt;)
+(synopsis "Various theming engines for Gtk+ 2")
+(description
+ "This package contains the standard Gtk+ 2 theming engines including
+Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,
+Redmond95 and ThinIce.")
+(license (list license:gpl2+ license:lgpl2.0+
-- 
2.7.0




[PATCH] gnu: Add gtk-engines and murrine.

2016-02-04 Thread Fabian Harfert
* gnu/packages/gtk.scm (gtk-engines): New variable.
* gnu/packages/gtk.scm (murrine): New variable.
---
 gnu/packages/gtk.scm | 58 
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3f92d0a..cf13294 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1130,3 +1130,61 @@ information.")
 typically used to document the public API of GTK+ and GNOME libraries, but it
 can also be used to document application code.")
 (license license:gpl2+)))
+
+(define-public gtk-engines
+  (package
+(name "gtk-engines")
+(version "2.20.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+  name "-" version ".tar.bz2"))
+  (sha256
+   (base32
+"1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `("--enable-animation")))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "http://live.gnome.org/GnomeArt;)
+(synopsis "Various theming engines for Gtk+ 2")
+(description
+ "This package contains the standard Gtk+ 2 theming engines including
+Clearlooks, Crux, High Contrast, Industrial, LighthouseBlue, Metal, Mist,
+Redmond95 and ThinIce.")
+(license (list license:gpl2+ license:lgpl2.0+
+
+(define-public murrine
+  (package
+(name "murrine")
+(version "0.98.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://gnome/sources/" name "/"
+  (version-major+minor version) "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"129cs5bqw23i76h3nmc29c9mqkm9460iwc8vkl7hs4xr07h8mip9"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags
+   `("--enable-animation"
+ "--enable-animationrtl")))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)))
+(propagated-inputs
+ `(("gtk+" ,gtk+-2)))
+(home-page "http://live.gnome.org/GnomeArt;)
+(synopsis "Cairo-based Gtk+ 2 theming engine")
+(description
+ "The murrine Gtk+ 2 engine is a cairo-based theming engine. It is named
+after the glass artworks done by Venicians glass blowers.")
+(license license:gpl2+)))
-- 
2.7.0




[PATCH] gnu: libcanberra: Add input gtk+-2.

2016-02-04 Thread Fabian Harfert
* gnu/packages/libcanberra.scm (libcanberra): Add input gtk+-2.
---
 gnu/packages/libcanberra.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 3769e3f..4110e88 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -67,6 +67,7 @@
 (inputs
  `(("alsa-lib" ,alsa-lib)
("gstreamer" ,gstreamer)
+   ("gtk+" ,gtk+-2)
("gtk+" ,gtk+)
("libltdl" ,libltdl)
("libvorbis" ,libvorbis)
-- 
2.7.0




Re: [PATCH] gnu: libcanberra: Add input gtk+-2.

2016-02-04 Thread Fabian Harfert
On Thu,  4 Feb 2016 17:04:42 +0100
Fabian Harfert <fhmg...@web.de> wrote:

> * gnu/packages/libcanberra.scm (libcanberra): Add input gtk+-2.
> ---
>  gnu/packages/libcanberra.scm | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/gnu/packages/libcanberra.scm
> b/gnu/packages/libcanberra.scm index 3769e3f..4110e88 100644
> --- a/gnu/packages/libcanberra.scm
> +++ b/gnu/packages/libcanberra.scm
> @@ -67,6 +67,7 @@
>  (inputs
>   `(("alsa-lib" ,alsa-lib)
> ("gstreamer" ,gstreamer)
> +   ("gtk+" ,gtk+-2)
> ("gtk+" ,gtk+)
> ("libltdl" ,libltdl)
> ("libvorbis" ,libvorbis)

This is because some packages I'm working on need libcanberra with
gtk+-2.0 support.



Re: [PATCH] licenses: Add the fdl1.1+.

2016-02-04 Thread Fabian Harfert
On Wed, 3 Feb 2016 22:26:55 +0200
Efraim Flashner <efr...@flashner.co.il> wrote:

> On Wed, 3 Feb 2016 21:11:22 +0100
> Fabian Harfert <fhmg...@web.de> wrote:
> 
> > Am Wed, 3 Feb 2016 21:54:15 +0200
> > schrieb Efraim Flashner <efr...@flashner.co.il>:
> > 
> >  [...]  
> >  [...]  
> >  [...]  
> > 
> > Could you please push that for me? I haven't got access to the git
> > repository(, yet).
> >   
> 
> Unfortunately something with the patch isn't letting me apply it
> against git so I'm going to have to ask someone else to do it since
> I'm about to head off to bed. Also, I realized you were missing
> `license: Add fdl1.1+` at the top line of your commit message.
> 

I thought that git generates the commit message from the mail subject.
Anyway, I don't know where else I should add the commit message.



[PATCH] licenses: Add the fdl1.1+.

2016-02-03 Thread Fabian Harfert
* guix/licenses.scm (fdl1.1+): New variable.
---
 guix/licenses.scm | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/guix/licenses.scm b/guix/licenses.scm
index d33b19f..29dd1ed 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -44,7 +44,7 @@
 giftware
 gpl1 gpl1+ gpl2 gpl2+ gpl3 gpl3+
 gfl1.0
-fdl1.3+
+fdl1.1+ fdl1.3+
 opl1.0+
 isc
 ijg
@@ -246,6 +246,11 @@ at URI, which may be a file:// URI pointing the package's 
tree."

"http://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-LICENSE.txt;
"https://www.gnu.org/licenses/license-list#LPPL-1.3a;))
 
+(define fdl1.1+
+  (license "FDL 1.1+"
+   "https://www.gnu.org/licenses/fdl-1.1;
+   "https://www.gnu.org/licenses/license-list#FDL;))
+
 (define fdl1.3+
   (license "FDL 1.3+"
"https://www.gnu.org/licenses/fdl.html;
-- 
2.7.0




Re: [PATCH] licenses: Add the fdl1.1+.

2016-02-03 Thread Fabian Harfert
Am Wed, 3 Feb 2016 21:54:15 +0200
schrieb Efraim Flashner <efr...@flashner.co.il>:

> On Wed,  3 Feb 2016 17:38:45 +0100
> Fabian Harfert <fhmg...@web.de> wrote:
> 
> > * guix/licenses.scm (fdl1.1+): New variable.
> > ---
> >  guix/licenses.scm | 7 ++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/guix/licenses.scm b/guix/licenses.scm
> > index d33b19f..29dd1ed 100644
> > --- a/guix/licenses.scm
> > +++ b/guix/licenses.scm
> > @@ -44,7 +44,7 @@
> >  giftware
> >  gpl1 gpl1+ gpl2 gpl2+ gpl3 gpl3+
> >  gfl1.0
> > -fdl1.3+
> > +fdl1.1+ fdl1.3+
> >  opl1.0+
> >  isc
> >  ijg
> > @@ -246,6 +246,11 @@ at URI, which may be a file:// URI pointing
> > the package's tree."
> > "http://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-LICENSE.txt;
> > "https://www.gnu.org/licenses/license-list#LPPL-1.3a;)) 
> > +(define fdl1.1+
> > +  (license "FDL 1.1+"
> > +   "https://www.gnu.org/licenses/fdl-1.1;
> > +   "https://www.gnu.org/licenses/license-list#FDL;))
> > +
> >  (define fdl1.3+
> >(license "FDL 1.3+"
> > "https://www.gnu.org/licenses/fdl.html;  
> 
> looks good to me!
> 

Could you please push that for me? I haven't got access to the git
repository(, yet).



Add "guix update" command

2016-01-23 Thread Fabian Harfert
Hello,

on IRC I already mentioned that, but there wasn't much resonance: I
think for the purposes of non-developers the behavior of the "guix
pull" command is too complicated.

Normal users don't need a development version of the package manager,
when they just want to get the newest package definitions to update
their installed software. So it would be much easier and faster if
there was a separate repository just containing the most recent package
definitions.

I propose to add a new command line option - e.g. "guix update" -
fetching these latest package definitions and not doing anything else.
They could be contained by a package whose definition is downloaded,
for example "guix-packages".

To avoid compatibility issues when there's a new release of Guix itself
this package must be versioned equal to the Guix version numbers. I'm
thinking of the following:

  The user is running Guix 1.2.1 and has installed the package
  guix-packages-1.2.1-4 containing the package definitions. Now he runs
  "guix update" and fetches guix-packages-1.2.1-5 with the new package
  definitions including the new Guix release 1.2.2. He now updates Guix
  to this version which has the new guix-packages-1.2.2-0 as an input.
  When he runs "guix update" again, guix-packages-1.2.2-1 is installed,
  which contains package definitions that make use of some new features.

This would just be for the time between the Guix releases. I think we
don't need support for older versions of Guix except from keeping the
last guix-packages package, but we could also do some security
or minor updates to the older package definitions which would provide
users the possibility to use GuixSD as a stable distribution like
Debian.

Another advantage of the separation between Guix itself and the package
definitions is that it's easy to provide an own or foreign
guix-packages package which would promote the decentralization of Guix.

Initially I thought of doing the same for service definitions except
from the basic ones. But I think that version compatibility problems
would occur more often because service definitions are at a lower level
than the package definitions. In addition the notorious normal users
won't change so much of their service definitions.

Fabian


I don't know why this E-Mail is shown as a reply to the transmission
patch, so I send it again, sorry.



Add "guix update" command

2016-01-23 Thread Fabian Harfert
Hello,

on IRC I already mentioned that, but there wasn't much resonance: I
think for the purposes of non-developers the behavior of the "guix
pull" command is too complicated.

Normal users don't need a development version of the package manager,
when they just want to get the newest package definitions to update
their installed software. So it would be much easier and faster if
there was a separate repository just containing the most recent package
definitions.

I propose to add a new command line option - e.g. "guix update" -
fetching these latest package definitions and not doing anything else.
They could be contained by a package whose definition is downloaded,
for example "guix-packages".

To avoid compatibility issues when there's a new release of Guix itself
this package must be versioned equal to the Guix version numbers. I'm
thinking of the following:

  The user is running Guix 1.2.1 and has installed the package
  guix-packages-1.2.1-4 containing the package definitions. Now he runs
  "guix update" and fetches guix-packages-1.2.1-5 with the new package
  definitions including the new Guix release 1.2.2. He now updates Guix
  to this version which has the new guix-packages-1.2.2-0 as an input.
  When he runs "guix update" again, guix-packages-1.2.2-1 is installed,
  which contains package definitions that make use of some new features.

This would just be for the time between the Guix releases. I think we
don't need support for older versions of Guix except from keeping the
last guix-packages package, but we could also do some security
or minor updates to the older package definitions which would provide
users the possibility to use GuixSD as a stable distribution like
Debian.

Another advantage of the separation between Guix itself and the package
definitions is that it's easy to provide an own or foreign
guix-packages package which would promote the decentralization of Guix.

Initially I thought of doing the same for service definitions except
from the basic ones. But I think that version compatibility problems
would occur more often because service definitions are at a lower level
than the package definitions. In addition the notorious normal users
won't change so much of their service definitions.

Fabian



[sr #108948] Renaming 'dmd' to 'shepherd'

2016-01-16 Thread Fabian Harfert
Follow-up Comment #4, sr #108948 (project administration):

Hello!
There's one addition: since there's a new shepherd git repository the link on
https://savannah.gnu.org/git/?group=shepherd should point to
http://git.savannah.gnu.org/cgit/shepherd.git instead of
http://git.savannah.gnu.org/cgit/dmd.git
Thanks,
Fabian

___

Reply to this item at:

  

___
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/




[Shepherd][PATCH] doc: Rename 'deco' to 'herd'.

2016-01-16 Thread Fabian Harfert
Hello!

I replaced each 'deco' with 'herd' and fixed some little things. Maybe
it should be applied after the name of the command really changed.

Fabian>From 17ab6600fe99fd0ecd48b903bd4a7f0547f12427 Mon Sep 17 00:00:00 2001
From: Fabian Harfert <fhmg...@web.de>
Date: Sat, 16 Jan 2016 19:08:23 +0100
Subject: [PATCH] doc: Rename 'deco' to 'herd'.

---
 shepherd.texi | 101 ++
 1 file changed, 53 insertions(+), 48 deletions(-)

diff --git a/shepherd.texi b/shepherd.texi
index 71796c3..389502c 100644
--- a/shepherd.texi
+++ b/shepherd.texi
@@ -23,7 +23,7 @@ Documentation License''.
 @dircategory System software
 @direntry
 * shepherd: (shepherd). The Shepherd service manager.
-* deco: (shepherd)Invoking deco
+* herd: (shepherd)Invoking herd
 Controlling the Shepherd service manager.
 * reboot: (shepherd)Invoking reboot
 Rebooting a Shepherd-controlled system.
@@ -57,7 +57,7 @@ manager for the GNU system.
 @menu
 * Introduction::  Introduction to the Shepherd service manager.
 * Jump Start::How to do simple things with the Shepherd.
-* deco and shepherd::  User interface to service management.
+* herd and shepherd:: User interface to service management.
 * Services::  Details on services.
 * Runlevels:: Details on runlevels.
 * Misc Facilities::   Generally useful things provided by the Shepherd.
@@ -97,8 +97,8 @@ the Shepherd is no different.  But don't worry: this manual should allow you to
 get started quickly.  Its first chapter is designed as a practical
 introduction to the Shepherd and should be all you need for everyday use
 (@pxref{Jump Start}).  In chapter two we will describe the
-@command{deco} and @command{shepherd} programs, and their relationship, in
-more detail (@ref{deco and shepherd}).  Subsequent chapters provide a full
+@command{herd} and @command{shepherd} programs, and their relationship, in
+more detail (@ref{herd and shepherd}).  Subsequent chapters provide a full
 reference manual and plenty of examples, covering all of Shepherd's
 capabilities.  Finally, the last chapter provides information for
 those souls brave enough to hack the Shepherd itself.
@@ -158,11 +158,12 @@ a daemon that (usually) runs in the
 background, so you will not interact with it directly.  After it is
 started, @command{shepherd} will listen on a socket special file, usually
 @code{/var/run/shepherd/socket}, for further commands.  You use the tool
-@dfn{deco} to send these commands to @command{shepherd}.  Usage of deco is simple and
-straightforward: To start a service called @code{apache}, you use:
+@dfn{herd} to send these commands to @command{shepherd}.  Usage of
+@command{herd} is simple and straightforward: To start a service called
+@code{apache}, you use:
 
 @example
-deco start apache
+herd start apache
 @end example
 
 @cindex Status (of services)
@@ -175,14 +176,14 @@ will automatically be started as well.  The current status of all the
 services defined in the configuration file can be queried like this:
 
 @example
-deco status
+herd status
 @end example
 
 @noindent
 Or, to get additional details about each service, run:
 
 @example
-deco detailed-status
+herd detailed-status
 @end example
 
 @noindent
@@ -191,7 +192,7 @@ services as started.  If you just want to know the status of the
 @code{apache} service, run:
 
 @example
-deco status apache
+herd status apache
 @end example
 
 @cindex Stopping a service
@@ -203,7 +204,7 @@ as it cannot work without the network being up.  To actually stop a
 service, you use the following, probably not very surprising, command:
 
 @example
-deco stop networking
+herd stop networking
 @end example
 
 There are two more actions you can perform on every service: The
@@ -217,8 +218,8 @@ caused it from being respawned too fast, you can start it again with
 the commands:
 
 @example
-deco enable foo
-deco start foo
+herd enable foo
+herd start foo
 @end example
 
 @cindex virtual services
@@ -243,7 +244,7 @@ reload its modules, therefore the action @code{reload-modules} might
 be available:
 
 @example
-deco reload-modules apache
+herd reload-modules apache
 @end example
 
 The service-specific actions can only be used when the service is
@@ -288,10 +289,10 @@ additional argument.  You can use @code{load} to load arbitrary code
 into the Shepherd at runtime, like this:
 
 @example
-deco load dmd ~/additional-services.scm
+herd load dmd ~/additional-services.scm
 @end example
 
-This is enough now about the @command{deco} and @command{shepherd} programs, we
+This is enough now about the @command{herd} and @command{shepherd} programs, we
 will now take a look at how to configure the Shepherd.  In the configuration
 file, we need mainly the definition of services.  We can also do
 various other things there, like starting a few services already.
@@ -306,7 +307,7 @@ Ok, to summarize:
 
 @itemize @bullet
 @item
-@command

[Shepherd][PATCH] Rename 'deco' command to 'herd'.

2016-01-16 Thread Fabian Harfert
Hello!

Now I also changed the 'deco' command to 'herd'. I hope I made
everything right because I don't know much about Guile/Scheme (I think
that will change!).

FabianFrom 20019c64c84455aea2328be37837d83a8a3a001a Mon Sep 17 00:00:00 2001
From: Fabian Harfert <fhmg...@web.de>
Date: Sat, 16 Jan 2016 20:08:18 +0100
Subject: [PATCH] Rename 'deco' command to 'herd'.

---
 Makefile.am  |   6 +-
 deco.in  |   7 --
 herd.in  |   7 ++
 modules/deco.scm | 172 ---
 modules/herd.scm | 172 +++
 modules/shepherd.scm |   4 +-
 modules/shepherd/comm.scm|   4 +-
 modules/shepherd/service.scm |   2 +-
 modules/shepherd/support.scm |   2 +-
 tests/basic.sh   |  34 -
 tests/no-home.sh |   6 +-
 tests/respawn.sh |  16 ++--
 tests/sigint.sh  |   4 +-
 tests/status-sexp.sh |   8 +-
 14 files changed, 222 insertions(+), 222 deletions(-)
 delete mode 100644 deco.in
 create mode 100644 herd.in
 delete mode 100644 modules/deco.scm
 create mode 100644 modules/herd.scm

diff --git a/Makefile.am b/Makefile.am
index 9bbc3e3..2323478 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,10 +17,10 @@
 # along with the GNU Shepherd.  If not, see <http://www.gnu.org/licenses/>.
 
 # The main programs.
-bin_SCRIPTS = shepherd deco
+bin_SCRIPTS = shepherd herd
 sbin_SCRIPTS = halt reboot
 templates =	\
-  shepherd.in deco.in halt.in reboot.in		\
+  shepherd.in herd.in halt.in reboot.in		\
   modules/shepherd/config.scm.in		\
   modules/shepherd/system.scm.in
 
@@ -30,7 +30,7 @@ BUILT_SOURCES = modules/shepherd/config.scm
 # The source files.
 shepherddir = ${datadir}/shepherd
 dist_shepherd_DATA =\
-  modules/deco.scm\
+  modules/herd.scm\
   modules/shepherd.scm\
   modules/halt.scm\
   modules/reboot.scm
diff --git a/deco.in b/deco.in
deleted file mode 100644
index cee4ebe..000
--- a/deco.in
+++ /dev/null
@@ -1,7 +0,0 @@
-#!%GUILE% --no-auto-compile
--*- scheme -*-
-!#
-
-(set! %load-path (cons "%modsrcdir%" %load-path))
-(set! %load-compiled-path (cons "%modbuilddir%" %load-compiled-path))
-(apply (@ (deco) main) (cdr (command-line)))
diff --git a/herd.in b/herd.in
new file mode 100644
index 000..bbf25e7
--- /dev/null
+++ b/herd.in
@@ -0,0 +1,7 @@
+#!%GUILE% --no-auto-compile
+-*- scheme -*-
+!#
+
+(set! %load-path (cons "%modsrcdir%" %load-path))
+(set! %load-compiled-path (cons "%modbuilddir%" %load-compiled-path))
+(apply (@ (herd) main) (cdr (command-line)))
diff --git a/modules/deco.scm b/modules/deco.scm
deleted file mode 100644
index f2298e1..000
--- a/modules/deco.scm
+++ /dev/null
@@ -1,172 +0,0 @@
-;; deco.scm -- The `DaEmon COntrol' program.
-;; Copyright (C) 2013, 2014, 2016 Ludovic Courtès <l...@gnu.org>
-;; Copyright (C) 2002, 2003 Wolfgang Jährling <wolfg...@pro-linux.de>
-;;
-;; This file is part of the GNU Shepherd.
-;;
-;; The GNU Shepherd is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3 of the License, or (at
-;; your option) any later version.
-;;
-;; The GNU Shepherd is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with the GNU Shepherd.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (deco)
-  #:use-module (shepherd config)
-  #:use-module (shepherd support)
-  #:use-module (shepherd args)
-  #:use-module (shepherd comm)
-  #:use-module (oop goops)
-  #:use-module (ice-9 rdelim)
-  #:use-module (ice-9 match)
-  #:use-module (srfi srfi-1)
-  #:export (program-name
-main))
-
-(define program-name "deco")
-
-
-(define (service-list-error services)
-  (format (current-error-port)
-  (l10n "~a: error: received an invalid service list:~%~s~%")
-  program-name services))
-
-(define-syntax alist-let*
-  (syntax-rules ()
-"Bind the given KEYs in EXP to the corresponding items in ALIST.  ALIST
-is assumed to be a list of two-element tuples rather than a traditional list
-of pairs."
-((_ alist (key ...) exp ...)
- (let ((key (and=> (assoc-ref alist 'key) car)) ...)
-   exp ...
-
-(define service-canonical-name
-  (match-lambda
-(('service ('version 0 _ ...) (provides (name0 _ ...)) _ ...)
- name0)))
-
-(define (display-status-summary services)
-  "Display a summary of the status of all of SERVICES."
-  (match services
-(('service-list ('version 0) services ...)
- (call-with

Re: Moving to beta? When?

2015-12-20 Thread Fabian Harfert
Am Fri, 18 Dec 2015 19:40:29 -0600
schrieb Christopher Allan Webber :

> Hello all,
> 
> Guix is super stable for me these days.  In a sense, more stable than
> any other system I've ever run.  We also are quickly moving to the
> point where *most* core packages people need are there.
> 
> I think the Alpha label is too conservative.  Once gnome-shell lands,
> or once the next release comes out, what do people think about Beta?
> 
> That still sounds like "not quite production ready for everyone" but
> Alpha hardly feels fair to Guix anymore.  (The most alpha thing about
> GuixSD thing at this point is the install process, and hey, it's like
> going oldschool with my install again :))
> 
> Or, when to switch?
>  - Chris
> 

I agree: Guix is not alpha software. It works perfect on my current
system and I don't need GNOME or KDE desktops. And I think guix
system init is enough as an installer. For me (I use GNU/Linux since
two years only) it was easy to follow the documentation, copy the
example config file, edit it and call 'guix init'. We just could provide
a script generating an input file for this and calling it at the end.
Apart from that there's no need to keep the alpha state for the next
release.



Re: [PATCH] Add package definition for GNU XaoS

2015-12-16 Thread Fabian Harfert
Am Wed, 16 Dec 2015 02:48:25 +0100
schrieb Andreas Enge :

> On Tue, Dec 15, 2015 at 10:23:52PM +0300, Alex Kost wrote:
> > There is  but it has a very old
> > version.
> 
> Maybe it would make sense to kindly remind them to put their releases
> on ftp.gnu.org. That would also allow us to be notified of updates
> (which could be used as an argument).
> 
> Fabian, since you have a special interest in the program, would you
> like to do this?
> 
> Andreas
> 

I couldn't get information about who's the maintainer of GNU XaoS for
GNU, but I have sent a mail to the person who owns the GitHub
repository.

Fabian



[PATCH] Add package definition for GNU XaoS

2015-12-14 Thread Fabian Harfert
Hello,

this is my first contribution to this project.  I hope everything is
right with this package definition for GNU XaoS
(see https://www.gnu.org/software/xaos/).  It's a nice program to
discover fractals, so I decided to use it for my first packaging
attempt.

"guix-lint" worked fine and without error messages after I had
corrected some little things. Please let me know if something is wrong.

Fabian HarfertFrom 6c9d69a42e1a54951a2ba0f9cedf67bec67c739e Mon Sep 17 00:00:00 2001
From: Fabian Harfert <fhmg...@web.de>
Date: Mon, 14 Dec 2015 21:53:58 +0100
Subject: [PATCH] gnu: Add XaoS.

* gnu/packages/xaos.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am |  1 +
 gnu/packages/xaos.scm | 57 +++
 2 files changed, 58 insertions(+)
 create mode 100644 gnu/packages/xaos.scm

diff --git a/gnu-system.am b/gnu-system.am
index 77a8b2e..1abce66 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -340,6 +340,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/wordnet.scm			\
   gnu/packages/wv.scm\
   gnu/packages/wxwidgets.scm			\
+  gnu/packages/xaos.scm \
   gnu/packages/xfig.scm\
   gnu/packages/xiph.scm\
   gnu/packages/xml.scm\
diff --git a/gnu/packages/xaos.scm b/gnu/packages/xaos.scm
new file mode 100644
index 000..70183a2
--- /dev/null
+++ b/gnu/packages/xaos.scm
@@ -0,0 +1,57 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Fabian Harfert <fhmg...@web.de>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages xaos)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages maths))
+
+(define-public xaos
+  (package
+(name "xaos")
+(version "3.6")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://sourceforge/xaos/xaos-" version
+  ".tar.gz"))
+  (sha256
+   (base32
+"15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq"
+(build-system gnu-build-system)
+(native-inputs `(("gettext", gnu-gettext)))
+(inputs `(("libx11" ,libx11)
+  ("zlib" ,zlib)
+  ("libpng" ,libpng)
+  ("gsl" ,gsl)))
+(arguments
+ `(#:tests? #f ;no "check" target
+   #:make-flags '("LOCALEDIR=$DATAROOTDIR/locale")))
+(synopsis "Real-time fractal zoomer")
+(description "GNU XaoS is a graphical program that generates fractal patterns and
+allows you to zoom in and out of them infinitely in a fluid, continuous
+manner.  It also includes tutorials that help to explain how fractals are
+built.  It can generate many different fractal types such as the Mandelbrot
+set.")
+(home-page "http://www.gnu.org/software/xaos/;)
+(license license:gpl2+)))
-- 
2.1.4



package dependencies

2015-12-09 Thread Fabian Harfert
Hello,

at the moment I am making my first steps in packaging for guix. I would
like to know, how to define the dependences for a package correctly.

I see three fields in the documentation: "inputs", "native-inputs" and
"propagated" inputs. Am I right if I say that "native-inputs" stands
for build dependences and "inputs" is for runtime dependences?

In general I find the guix documentation very clear and useful - and
I have to say: guix is the best package manager I have met until now.

Fabian