Re: [PATCH] Add msgpack

2016-06-18 Thread Lukas Gradl
Lukas Gradl  writes:

> So the flags -I, -L, -l for zlib are all there for both dynamic and
> static linking.  But still no store reference.

I think the reason why there is no reference is that msgpack uses
zbuffer only for tests.  Before compilation, the file only references
the name "zlib" and does not mention the hash in the path of zlib in the
store.  During compilation (during "check"), this mere name "zlib" gets
somehow resolved to the path of zlib in the store.  The binary file
resulting from compiling zbuffer should therefore contain a reference to
zlib, which should be detectable by guix gc --references.  I think
however, that this binary file does not get installed as it is only used
for tests.  All the files that do get installed in the output path of
msgpack in the store do not contain the hash part of the store-path of
zlib.  They only refer to zlib by name.  IIUC this can not be detected
by guix gc --references since it only searches for the hash part of
the store-path of zlib.

This is what I grasp from looking at libstore/references.cc and
libstore/store-api.cc.  I am not sure about this though.

Best,
Lukas



[PATCH 1/2] gnu: Add nasm.

2016-06-18 Thread Jan Nieuwenhuizen
Hi,

Trying to play an h264 video, I found this comment in gst-plugins-bad:

 ;; XXX: The following dependencies are missing:
 ;;  vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
 ;;  faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
 ;;  mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,

and packaged openh264 and its dependency nasm.  Find attached.

Later I found that h264 can be played by installing gst-libav.

As an aside, I wonder why gst-plugins-bad is made to depend on qt and
Wayland.

Greetings,
Jan

>From bfe40f5a42edf702277a2580336138438cdb8a62 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Sat, 18 Jun 2016 22:39:33 +0200
Subject: [PATCH 1/2] gnu: Add nasm.

* gnu/packages/nasm.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk  |  1 +
 gnu/packages/nasm.scm | 59 +++
 2 files changed, 60 insertions(+)
 create mode 100644 gnu/packages/nasm.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index abd05ef..f9ea769 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -242,6 +242,7 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/music.scm			\
   %D%/packages/mtools.scm			\
   %D%/packages/nano.scm\
+  %D%/packages/nasm.scm\
   %D%/packages/ncdu.scm\
   %D%/packages/ncurses.scm			\
   %D%/packages/netpbm.scm			\
diff --git a/gnu/packages/nasm.scm b/gnu/packages/nasm.scm
new file mode 100644
index 000..19a1b92
--- /dev/null
+++ b/gnu/packages/nasm.scm
@@ -0,0 +1,59 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Jan Nieuwenhuizen 
+;;;
+;;; 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 .
+
+(define-module (gnu packages nasm)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages texinfo))
+
+(define-public nasm
+  (package
+(name "nasm")
+(version "2.12.01")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/";
+  version "/" name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"12bl6vc5sjp9nnhf0iwy6l27vq783y0rxrjpp8sy84h5cb7a3fwx"
+(build-system gnu-build-system)
+(native-inputs `(("ghostscript" ,ghostscript) ; ps2pdf
+ ("perl" ,perl)  ;for test target
+ ("texinfo" ,texinfo)))
+(arguments
+ `(#:test-target "test"
+   #:phases (modify-phases %standard-phases
+  (add-after 'install 'install-info
+(lambda _
+  (zero? (system* "make" "install_doc")))
+(home-page "http://www.nasm.us/";)
+(synopsis "80x86 and x86-64 assembler")
+(description
+ "NASM, the Netwide Assembler, is an 80x86 and x86-64 assembler designed
+for portability and modularity.  It supports a range of object file formats,
+including Linux and *BSD a.out, ELF, COFF, Mach-O, Microsoft 16-bit OBJ,
+Windows32 and Windows64.  It will also output plain binary files.  Its syntax
+is designed to be simple and easy to understand, similar to Intel's but less
+complex.  It supports all currently known x86 architectural extensions, and
+has strong support for macros.")
+(license license:bsd-3)))
-- 
2.8.4

>From 950266815f8e2d8d57492c71d3cf72efc0fd9fdd Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen 
Date: Sat, 18 Jun 2016 22:40:51 +0200
Subject: [PATCH 2/2] gnu: Add openh264.

* gnu/packages/video.scm (openh264): New variable.
---
 gnu/packages/video.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 377caa9..2b4c99e 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2015 Andy Patterson 
 ;;; Copyright © 2015 Ricardo Wurmus 
 ;;; Copyright © 2015 Alex Vong 
+;;; Copyright © 2016 Jan Nieuwenhuizen 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,6 +59,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu p

[PATCH] gnu: Add Amsynth.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/music.scm (amsynth): New variable.
---
 gnu/packages/music.scm | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 78542a6..7eea7d8 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -716,6 +716,48 @@ Editor.  It is compatible with Power Tab Editor 1.7 and 
Guitar Pro.")
 oscillators and stereo effects.")
 (license license:gpl2+)))
 
+(define-public amsynth
+  (package
+(name "amsynth")
+(version "1.6.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/amsynth/amsynth/releases/";
+   "download/release-" version
+   "/amsynth-" version ".tar.bz2"))
+   (sha256
+(base32
+ "07dp9dl38g9krjqxxh89l2z42z08yzrl57cx95b1l67xnxwjp5k3"
+(build-system gnu-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'set-flags
+   (lambda _
+ ;; Compile with C++11, required by gtkmm.
+ (setenv "CXXFLAGS" "-std=c++11")
+ #t)
+(inputs
+ `(("alsa-lib" ,alsa-lib)
+   ("jack" ,jack-1)
+   ("lv2" ,lv2)
+   ("libsndfile" ,libsndfile)
+   ("gtk+" ,gtk+-2)
+   ("gtkmm" ,gtkmm-2)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(home-page "http://amsynth.github.io";)
+(synopsis "Analog modelling synthesizer")
+(description
+ "amsynth is an easy-to-use software synthesizer with a classic
+subtractive synthesizer topology.  Its features include: dual
+oscillators (sine/saw/square/noise) with hard sync; 12/24 dB/oct resonant
+filter (low-pass/high-pass/band-pass/notch); mono/poly/legato keyboard modes;
+dual ADSR envelope generators for filter and amplitude; LFO which can modulate
+the oscillators, filter, and amplitude; distortion and reverb effects.")
+(license license:gpl2+)))
+
 (define-public setbfree
   (package
 (name "setbfree")
-- 
2.8.3





[PATCH] gnu: Add fontconfig-path-max.

2016-06-18 Thread rennes

Hello Guix team,

i'm doing tests whith GNU Guix on GNU Hurd, compiling fontconfig and 
there is an error during compilation:


a) fontconfig uses the constant PATH_MAX.

Reviewing the documentation about the treatment of constant for Hurd; 
i've attached a patch for review.


References:
https://www.gnu.org/software/hurd/community/gsoc/project_ideas/maxpath.html
https://www.gnu.org/software/hurd/hurd/porting/guidelines.html

and i've a couple of questions about:

a) How Guix identify if it is a Linux or Hurd system at compile or 
install the package?.

b) i searches in ML an example, but i not found.



Thanks for your time.

ReneFrom 3195bf1e75493675dc8cbd81a0f83e0b4538263b Mon Sep 17 00:00:00 2001
From: Rene Saavedra 
Date: Sat, 18 Jun 2016 13:37:19 -0500
Subject: [PATCH] gnu: Add fontconfig-path-max.

---
 gnu/packages/fontutils.scm  |  3 +++
 gnu/packages/patches/fontconfig-fcdefault.patch | 23 +++
 gnu/packages/patches/fontconfig-fcstat.patch| 23 +++
 3 files changed, 49 insertions(+)
 create mode 100644 gnu/packages/patches/fontconfig-fcdefault.patch
 create mode 100644 gnu/packages/patches/fontconfig-fcstat.patch

diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 5f6ff15..2b84523 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -231,6 +231,9 @@ fonts to/from the WOFF2 format.")
 (uri (string-append
"https://www.freedesktop.org/software/fontconfig/release/fontconfig-";
version ".tar.bz2"))
+(patches (list
+  (search-patch "fontconfig-fcdefault.patch")
+  (search-patch "fontconfig-fcstat.patch")))
 (sha256 (base32
  "1psrl4b4gi4wmbvwwh43lk491wsl8lgvqj146prlcha3vwjc0qyp"
(build-system gnu-build-system)
diff --git a/gnu/packages/patches/fontconfig-fcdefault.patch b/gnu/packages/patches/fontconfig-fcdefault.patch
new file mode 100644
index 000..9c3b383
--- /dev/null
+++ b/gnu/packages/patches/fontconfig-fcdefault.patch
@@ -0,0 +1,23 @@
+This patch replaces the use of macro PATH_MAX by *buf constant,
+which allows dynamic memory allocation.
+
+---
+ src/fcdefault.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fcdefault.c b/src/fcdefault.c
+index 6647a8f..8e2094f 100644
+--- a/src/fcdefault.c
 b/src/fcdefault.c
+@@ -150,7 +150,7 @@ retry:
+ # if defined (HAVE_GETEXECNAME)
+ 	const char *p = getexecname ();
+ # elif defined (HAVE_READLINK)
+-	char buf[PATH_MAX + 1];
++	char *buf;
+ 	int len;
+ 	char *p = NULL;
+ 
+-- 
+2.6.3
+
diff --git a/gnu/packages/patches/fontconfig-fcstat.patch b/gnu/packages/patches/fontconfig-fcstat.patch
new file mode 100644
index 000..e075b17
--- /dev/null
+++ b/gnu/packages/patches/fontconfig-fcstat.patch
@@ -0,0 +1,23 @@
+This patch replaces the use of macro PATH_MAX by *f constant,
+which allows dynamic memory allocation.
+
+---
+ src/fcstat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fcstat.c b/src/fcstat.c
+index 1734fa4..8a438eb 100644
+--- a/src/fcstat.c
 b/src/fcstat.c
+@@ -278,7 +278,7 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
+ 	{
+ #endif
+ 	struct stat statb;
+-	char f[PATH_MAX + 1];
++	char *f;
+ 
+ 	memcpy (f, dir, len);
+ 	f[len] = FC_DIR_SEPARATOR;
+-- 
+2.6.3
+
-- 
2.6.3



Re: [PATCH] gnu: Add lbzip2.

2016-06-18 Thread Ricardo Wurmus

Leo Famulari  writes:

> On Fri, Jun 17, 2016 at 04:43:09PM +0200, Ricardo Wurmus wrote:
>
>> +(define-public lbzip2
>
>> +(description
>> + "lbzip2 is a multi-threaded compression utility with support for bzip2
>
>  support for the 
> bzip2
>
> Otherwise LGTM

Fixed it and pushed.  Thanks for the review!

~~ Ricardo




Re: [PATCH] gnu: Add emacs-multiple-cursors.

2016-06-18 Thread Ricardo Wurmus

Alex Kost  writes:

> Ricardo Wurmus (2016-06-17 23:24 +0300) wrote:
>
>> * gnu/packages/emacs.scm (emacs-multiple-cursors): New variable.
>> ---
>>  gnu/packages/emacs.scm | 21 +
>>  1 file changed, 21 insertions(+)
>>
>>
>> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
>> index bbb4baa..62e14cb 100644
>> --- a/gnu/packages/emacs.scm
>> +++ b/gnu/packages/emacs.scm
>> @@ -1356,6 +1356,27 @@ front-ends.  Company comes with many back-ends, e.g. 
>> @code{company-elisp}.
>>  These are distributed in separate files and can be used individually.")
>>  (license license:gpl3+)))
>>  
>> +(define-public emacs-multiple-cursors
>> +  (package
>> +(name "emacs-multiple-cursors")
>> +(version "1.4.0")
>> +(source
>> + (origin
>> +   (method url-fetch)
>> +   (uri (string-append 
>> "https://github.com/magnars/multiple-cursors.el/archive/";
>
> I would make this line a bit shorter.

Okay.

>> +   version ".tar.gz"))
>> +   (file-name (string-append name "-" version ".tar.gz"))
>> +   (sha256
>> +(base32
>> + "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"
>> +(build-system emacs-build-system)
>> +(home-page "https://github.com/magnars/multiple-cursors.el";)
>> +(synopsis "Multiple cursors for Emacs.")
>
> Oops, don't forget about "guix lint" ---^

Thanks for the reminder.

> Otherwise, LGTM.

Thank you for the review.  I pushed it to master.

~~ Ricardo




[PATCH 6/6] gnu: Add emacs-lispy.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-lispy): New variable.
---
 gnu/packages/emacs.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 1a68324..3f86c1d 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1855,6 +1855,36 @@ lines that match the current text being edited.  This 
gives you the effect of
 a temporary @code{keep-lines} or @code{occur}.")
 (license license:gpl3+)))
 
+(define-public emacs-lispy
+  (package
+(name "emacs-lispy")
+(version "0.26.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/abo-abo/lispy/archive/";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "15gig95cvamw5zlw99cxggd27c18b9scznjj97gvjn2zbljcaqzl"
+(build-system emacs-build-system)
+(propagated-inputs
+ `(("emacs-ace-window" ,emacs-ace-window)
+   ("emacs-iedit" ,emacs-iedit)
+   ("emacs-ivy" ,emacs-ivy)
+   ("emacs-hydra" ,emacs-hydra)))
+(home-page "https://github.com/abo-abo/lispy";)
+(synopsis "Modal S-expression editing")
+(description
+ "Due to the structure of Lisp syntax it's very rare for the programmer to
+want to insert characters right before \"(\" or right after \")\".  Thus
+unprefixed printable characters can be used to call commands when the point is
+at one of these special locations.  Lispy provides unprefixed keybindings for
+S-expression editing when point is at the beginning or end of an
+S-expression.")
+(license license:gpl3+)))
+
 (define-public emacs-clojure-mode
   (package
 (name "emacs-clojure-mode")
-- 
2.8.3





[PATCH 3/6] gnu: Add emacs-avy.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-avy): New variable.
---
 gnu/packages/emacs.scm | 36 
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 6741f58..5158059 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1768,6 +1768,42 @@ his orignal purpose, calling his proper command.  This 
makes the Hydra very
 seamless, it's like a minor mode that disables itself automatically.")
 (license license:gpl3+)))
 
+(define-public emacs-avy
+  (package
+(name "emacs-avy")
+(version "0.4.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/abo-abo/avy/archive/";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "1wdrq512h25ymzjbf2kbsdymvd2ryfwzb6bh5bc3yv7q203im796"
+(build-system emacs-build-system)
+(home-page "https://github.com/abo-abo/avy";)
+(synopsis "Tree-based completion")
+(description
+ "This package provides a generic completion method based on building a
+balanced decision tree with each candidate being a leaf.  To traverse the tree
+from the root to a desired leaf, typically a sequence of @code{read-key} can
+be used.
+
+In order for @code{read-key} to make sense, the tree needs to be visualized
+appropriately, with a character at each branch node.  So this completion
+method works only for things that you can see on your screen, all at once,
+such as
+
+@enumerate
+@item character positions
+@item word or subword start positions
+@item line beginning positions
+@item link positions
+@item window positions
+@end enumerate\n")
+(license license:gpl3+)))
+
 (define-public emacs-clojure-mode
   (package
 (name "emacs-clojure-mode")
-- 
2.8.3





[PATCH 5/6] gnu: Add emacs-iedit.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-iedit): New variable.
---
 gnu/packages/emacs.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 7104165..1a68324 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1829,6 +1829,32 @@ called.  If there are more, each window will have its 
first character
 highlighted.  Pressing that character will switch to that window.")
 (license license:gpl3+)))
 
+(define-public emacs-iedit
+  (package
+(name "emacs-iedit")
+(version "0.9.9")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/victorhge/iedit/archive/v";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "00v86zllcsivmiibigbr91qij2zdf1lr9db8z8again1sn63wkdj"
+(build-system emacs-build-system)
+(home-page "http://www.emacswiki.org/emacs/Iedit";)
+(synopsis "Edit multiple regions in the same way simultaneously")
+(description
+ "This package is an Emacs minor mode and allows you to edit one
+occurrence of some text in a buffer (possibly narrowed) or region, and
+simultaneously have other occurrences edited in the same way.
+
+You can also use Iedit mode as a quick way to temporarily show only the buffer
+lines that match the current text being edited.  This gives you the effect of
+a temporary @code{keep-lines} or @code{occur}.")
+(license license:gpl3+)))
+
 (define-public emacs-clojure-mode
   (package
 (name "emacs-clojure-mode")
-- 
2.8.3





[PATCH 4/6] gnu: Add emacs-ace-window.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-ace-window): New variable.
---
 gnu/packages/emacs.scm | 25 +
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 5158059..7104165 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1804,6 +1804,31 @@ such as
 @end enumerate\n")
 (license license:gpl3+)))
 
+(define-public emacs-ace-window
+  (package
+(name "emacs-ace-window")
+(version "0.9.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/abo-abo/ace-window/archive/";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "1p2sgfl5dml4zbd6ldql6lm2m9vmd236ah996ni32x254s48j5pn"
+(build-system emacs-build-system)
+(propagated-inputs
+ `(("emacs-avy" ,emacs-avy)))
+(home-page "https://github.com/abo-abo/ace-window";)
+(synopsis "Quickly switch windows")
+(description
+ "@code{ace-window} is meant to replace @code{other-window}.
+In fact, when there are only two windows present, @code{other-window} is
+called.  If there are more, each window will have its first character
+highlighted.  Pressing that character will switch to that window.")
+(license license:gpl3+)))
+
 (define-public emacs-clojure-mode
   (package
 (name "emacs-clojure-mode")
-- 
2.8.3





[PATCH 2/6] gnu: Add emacs-hydra.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-hydra): New variable.
---
 gnu/packages/emacs.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index c12bf12..6741f58 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1742,6 +1742,32 @@ splitting the input text by spaces and re-building it 
into a regular
 expression.")
 (license license:gpl3+)))
 
+(define-public emacs-hydra
+  (package
+(name "emacs-hydra")
+(version "0.13.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/abo-abo/hydra/archive/";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "19ynkjlg3jj7x90xxbz885324h6nkxmzlb2c2c95xkr20zckn0lk"
+(build-system emacs-build-system)
+(home-page "https://github.com/abo-abo/hydra";)
+(synopsis "Make bindings that stick around")
+(description
+ "This package can be used to tie related commands into a family of short
+bindings with a common prefix---a Hydra.  Once you summon the Hydra (through
+the prefixed binding), all the heads can be called in succession with only a
+short extension.  Any binding that isn't the Hydra's head vanquishes the
+Hydra.  Note that Hercules, besides vanquishing the Hydra, will still serve
+his orignal purpose, calling his proper command.  This makes the Hydra very
+seamless, it's like a minor mode that disables itself automatically.")
+(license license:gpl3+)))
+
 (define-public emacs-clojure-mode
   (package
 (name "emacs-clojure-mode")
-- 
2.8.3





[PATCH 1/6] gnu: Add emacs-ivy.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-ivy): New variable.
---
 gnu/packages/emacs.scm | 25 +
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index d524a7c..c12bf12 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1717,6 +1717,31 @@ features found in other packages it also brings many 
improvements as
 well as completely new features.")
 (license license:gpl3+)))
 
+(define-public emacs-ivy
+  (package
+(name "emacs-ivy")
+(version "0.8.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/abo-abo/swiper/archive/";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "18nqwl05is71dzswnvpfhlg7b0v3apvbsfxrwab9c0apwavi892q"
+(build-system emacs-build-system)
+(home-page "https://github.com/abo-abo/swiper";)
+(synopsis "Incremental vertical completion")
+(description
+ "This package provides @code{ivy-read} as an alternative to
+@code{completing-read} and similar functions.  No attempt is made to determine
+the best candidate.  Instead, the user can navigate candidates with
+@code{ivy-next-line} and @code{ivy-previous-line}.  The matching is done by
+splitting the input text by spaces and re-building it into a regular
+expression.")
+(license license:gpl3+)))
+
 (define-public emacs-clojure-mode
   (package
 (name "emacs-clojure-mode")
-- 
2.8.3





[PATCH] gnu: Add emacs-org-bullets.

2016-06-18 Thread Ricardo Wurmus
* gnu/packages/emacs.scm (emacs-org-bullets): New variable.
---
 gnu/packages/emacs.scm | 21 +
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ecefc97..d524a7c 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1646,6 +1646,27 @@ that it correctly finds RFCs even when a space appears 
before the
 number.")
 (license license:gpl3+)))
 
+(define-public emacs-org-bullets
+  (package
+(name "emacs-org-bullets")
+(version "0.2.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/sabof/org-bullets/archive/";
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "1dyxvpb73vj80v8br2q9rf255hfphrgaw91fbvwdcd735np9pcnh"
+(build-system emacs-build-system)
+(home-page "https://github.com/sabof/org-bullets";)
+(synopsis "Show bullets in org-mode as UTF-8 characters")
+(description
+ "This package provides an Emacs theme for org-mode causing bullets to be
+rendered as UTF-8 characters.")
+(license license:gpl3+)))
+
 (define-public emacs-zenburn-theme
   (package
 (name "emacs-zenburn-theme")
-- 
2.8.3





Re: [PATCH] gnu: Add quesoglc.

2016-06-18 Thread Kei Kebreau
Leo Famulari  writes:

> On Wed, Jun 15, 2016 at 07:41:39PM -0400, Kei Kebreau wrote:
>> Indeed it is. A corrected patch is attached!
>
> Thanks, looks good!

Alright then! Pushing it now.

-- 
Kei (GPG Key: 4096R/E6A5EE3C19467A0D)


signature.asc
Description: PGP signature


Re: [PATCH] gnu: Add warzone2100.

2016-06-18 Thread Kei Kebreau
Leo Famulari  writes:

> On Wed, Jun 15, 2016 at 09:39:36PM -0400, Kei Kebreau wrote:
>> * gnu/packages/games.scm (warzone2100): New variable.
>
> Cool, it's nice to see games like this continuing to be developed!
>

Indeed it is! Especially since it started out on proprietary consoles
and such.

>> +(inputs `(("fontconfig" ,fontconfig)
>
> Can you double-check that all these inputs are needed at run-time with
> `guix gc --references`?
>

The binary links to all of the libraries, but doesn't seem to require
the DejaVu fonts. I've also moved the unzip and zip binaries to
native-inputs.

>> +  ("font-dejavu" ,font-dejavu)
>> +  ("freetype" ,freetype)
>> +  ("fribidi" ,fribidi)
>> +  ("glew" ,glew)
>> +  ("libtheora" ,libtheora)
>> +  ("libvorbis" ,libvorbis)
>> +  ("libxrandr" ,libxrandr)
>> +  ("openal" ,openal)
>> +  ("physfs" ,physfs)
>> +  ("qt", qt-4)
>
> Can it run with qt-5? My understanding is that qt-4 is no longer
> supported by upstream and is thus risky from a security perspective.  We
> are slowly working to eliminate dependencies on qt-4 in Guix.
>
> If it can't use qt-5, I guess it's okay, with a friendly bug report to
> upstream :)
>
> If it can use qt-5, then it can take advantage of the modularization
> that Efraim has been working on.

It can't use qt-5 at the moment. Debian is still using the Qt4 script
library and Arch Linux uses a Qt5 compatibility layer of some sort.

An updated patch is attached for review.

From 7e24cc9f998cb13330bbc1d38a3da638cc6135b6 Mon Sep 17 00:00:00 2001
From: Kei Kebreau 
Date: Sat, 18 Jun 2016 11:07:37 -0400
Subject: [PATCH] gnu: Add warzone2100.

* gnu/packages/games.scm (warzone2100): New variable.
---
 gnu/packages/games.scm | 51 ++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b0bf4e3..4141d5e 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2396,3 +2396,54 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
 your way through an underground cave system in search of the Grue.  Can you
 capture it and get out alive?")
 (license license:agpl3+)))
+
+(define-public warzone2100
+  (package
+(name "warzone2100")
+(version "3.1.5")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://sourceforge/" name
+  "/releases/" version "/" name "-" version
+  ".tar.xz"))
+  (sha256
+   (base32
+"0hm49i2knvvg3wlnryv7h4m84s3qa7jfyym5yy6365sx8wzcrai1"
+(build-system gnu-build-system)
+(arguments
+ `(#:phases (modify-phases %standard-phases
+  (add-after 'set-paths 'set-sdl-paths
+(lambda* (#:key inputs #:allow-other-keys)
+  (setenv "CPATH"
+  (string-append (assoc-ref inputs "sdl-union")
+ "/include/SDL"))
+  #t)
+(native-inputs `(("pkg-config" ,pkg-config)
+ ("unzip" ,unzip)
+ ("zip" ,zip)))
+(inputs `(("fontconfig" ,fontconfig)
+  ("freetype" ,freetype)
+  ("fribidi" ,fribidi)
+  ("glew" ,glew)
+  ("libtheora" ,libtheora)
+  ("libvorbis" ,libvorbis)
+  ("libxrandr" ,libxrandr)
+  ("openal" ,openal)
+  ("physfs" ,physfs)
+  ("qt", qt-4)
+  ("quesoglc" ,quesoglc)
+  ("sdl-union" ,(sdl-union
+(home-page "http://wz2100.net";)
+(synopsis "3D Real-time strategy and real-time tactics game")
+(description
+ "Warzone 2100 offers campaign, multi-player, and single-player skirmish
+modes. An extensive tech tree with over 400 different technologies, combined
+with the unit design system, allows for a wide variety of possible units and
+tactics.")
+; Everything is GPLv2+ unless otherwise specified in COPYING.NONGPL
+(license (list license:bsd-3
+   license:cc0
+   license:cc-by-sa3.0
+   license:expat
+   license:gpl2+
+   license:lgpl2.1+
-- 
2.8.3


-- 
Kei (GPG Key: 4096R/E6A5EE3C19467A0D)


signature.asc
Description: PGP signature


DAT

2016-06-18 Thread Catonano
well, this is more about reproducible research and Guix than about DAT
specifically.

The current thread about pipelines is very interesting, but I feel like
there's a missing bit.

The data. The sets of files or the datasets

They are part of a pipeline and they should be versioned too. And sometimes
a pipeline produces a dataset. So there could be packages producing
packages.

There's this project, DAT, and it seems they are onto something, in this
domain.

http://dat-data.com/

Based on how they talk about the issue, I'd say they don't know about Guix.
But they do have the same concern about the exact same software running on
a dataset in order to produce a comparable result.

It seems to me that Guix has something to offer to the DAT community. They
want reproducible builds to use on their versioned bittorrent distributed
datasets, so they end up distributing code together with datasets (Gnunet
distributed substitues, anyone ?) AND because they don't know about Guix
they also end up into containerization.

They even touch the issue of the relationship between developers and users,
that I thing Guix and Guile are trying to blur.

But I didn't understand completely what she said about this because English
is not my native language.

As for distributing large amounts of data with DAG things and merkle hashes
and bittorrent like swarms, there's ipfs doing these things (ipfs aims to
distribute triples rather than raw files)  and now DAT too.

I was wondering whether GnuNet has something to say with regard to
reproducible research. These ideas about how to distribute research data in
a serverless fashion came from the "decentralize the web" arena, so maybe
GnuNet might have something to say

But this is not on topic, on the Guix list.

I just thought that you Guix people should be pointed to DAT and the issues
it raises and tries to solve.

It seems to me there's some overlapping and the respective communities
should be aware of each other.

I hope I didn't bother anyone of you with this message


Re: [PATCH] gnu: Add emacs-multiple-cursors.

2016-06-18 Thread Alex Kost
Ricardo Wurmus (2016-06-17 23:24 +0300) wrote:

> * gnu/packages/emacs.scm (emacs-multiple-cursors): New variable.
> ---
>  gnu/packages/emacs.scm | 21 +
>  1 file changed, 21 insertions(+)
>
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index bbb4baa..62e14cb 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -1356,6 +1356,27 @@ front-ends.  Company comes with many back-ends, e.g. 
> @code{company-elisp}.
>  These are distributed in separate files and can be used individually.")
>  (license license:gpl3+)))
>  
> +(define-public emacs-multiple-cursors
> +  (package
> +(name "emacs-multiple-cursors")
> +(version "1.4.0")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri (string-append 
> "https://github.com/magnars/multiple-cursors.el/archive/";

I would make this line a bit shorter.

> +   version ".tar.gz"))
> +   (file-name (string-append name "-" version ".tar.gz"))
> +   (sha256
> +(base32
> + "0hihihlvcvzayg5fnqzcg45fhvlmq6xlq58syy00rjwbry9w389k"
> +(build-system emacs-build-system)
> +(home-page "https://github.com/magnars/multiple-cursors.el";)
> +(synopsis "Multiple cursors for Emacs.")

Oops, don't forget about "guix lint" ---^

Otherwise, LGTM.

> +(description
> + "This package adds support to Emacs for editing text with multiple
> +simultaneous cursors.")
> +(license license:gpl3+)))
> +
>  (define-public typo
>(package
>  (name "emacs-typo")

-- 
Alex



Re: [PATCH] gnu: Add rottlog.

2016-06-18 Thread Jan Nieuwenhuizen
Leo Famulari writes:

> On Fri, Jun 17, 2016 at 08:51:19PM +0200, Jan Nieuwenhuizen wrote:
>> Subject: [PATCH] gnu: Add rottlog.
>
> Silly me! I just noticed that we already have this packaged in (gnu
> packages admin). Can you take a look and see if it meets your needs, or
> if it needs some changes?

Silly you?  Silly me!  Sorry, I must have misunderstood civodul,
it already looks better, now to see how to hook it up.

Greetings,
Jan

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  



Re: libgit2, libgit2-glib: pkg-config file: dependencies on other libraries: how to represent them in Guix?

2016-06-18 Thread Danny Milosavljevic
Also, it seems the only thing libgit2 uses openssl for is for the SHA1 hash. 
But there's also a builtin SHA1 hash in libgit2 under src/hash/hash_generic.c 
which we could use instead - should we?

It seems that Apple already deprecated OpenSSL so the support for libgit2 
without OpenSSL should be fine.

There's a check in CMakeFiles.txt for SHA1_TYPE=builtin . I'm not well-versed 
in cmake, however, so no idea how to set that. 

Also, USE_OPENSSL defaults to ON. That's an externally-visible option. I would 
know how to set that to OFF. 



Re: libgit2, libgit2-glib: pkg-config file: dependencies on other libraries: how to represent them in Guix?

2016-06-18 Thread Danny Milosavljevic
On Sat, 18 Jun 2016 09:47:19 +0200
Ricardo Wurmus  wrote:

> This depends on the pkg-config file that the library installs.  If this
> file contains a section that lists other libraries as private, then
> propagation is probably the correct approach.

See 

Name: libgit2
Description: The git library, take 2
Version: @LIBGIT2_VERSION_STRING@

Libs: -L"${libdir}" -lgit2
Libs.private: @LIBGIT2_PC_LIBS@
Requires.private: @LIBGIT2_PC_REQUIRES@

Cflags: -I${includedir}

And in the CMakeLists.txt :

IF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
LIST(APPEND LIBGIT2_PC_LIBS "-lssl")
ELSE()
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} openssl")
ENDIF ()

So I take it that it should have been a propagated-input in libgit2 itself 
already, right?



Re: [PATCH] Add gctp

2016-06-18 Thread Thomas Danckaert

From: Leo Famulari 
Subject: Re: [PATCH] Add gctp
Date: Fri, 17 Jun 2016 21:39:26 -0400


On Fri, Jun 17, 2016 at 02:40:17PM +0200, Thomas Danckaert wrote:
this is a patch to add the GCTP library. It seems the library is 
no longer
maintained separately (“official” sources are gone), so this 
package
downloads the HDF-EOS5 source, which contains GCTP, and patches 
the build to

only build and install GCTP. (I'm packaging HDF-EOS5 later on)


Should we package GCTP separately in that case? Is it used by 
anything

besides HDF-EOS5? Or, should we just package HDF-EOS5?


The only other use I'm aware of is in HDF-EOS2, which is a separate 
library from HDF-EOS5, built on HDF4 instead of HDF5, and which also 
bundles gctp. I intend to package HDF-EOS2 as well, once HDF4 is 
included.


We usually don't accept bundled code, but it sounds like GCTP no 
longer

exists as an independent project. Is that right?


That is my impression, too (broken urls and undeliverable e-mails). 
The package is quite small anyway, so perhaps bundling with the 2 
HDF-EOS libraries is acceptable?



Here are some comments:


[ Style issues noted, I will take care of that. ]


+(define-public gctp
+  (package
+(name "gctp")
+(version "1.0")


Is this the upstream version or is it arbitrary? I see that the 
HDF-EOS5

tarball is at version 1.15.


The archive does not contain an explicit version number or changelog 
(it just says it's the “new C version of the GCTP” -- before that, it 
seems there were some Fortran routines).  I've also found a gctpc2.0 
archive, which *does* have a changelog, and on closer inspection 
(comparing the source of this package with comments from the 
changelog from 2.0), it seems that this code corresponds to version 
1.3... (though e.g. Debian also calls it 1.0).  It's quite messy 
actually. I'll see if HDF-EOS5 builds against gctp-2.0 (for which a 
I've found a cleaner archive), and maybe package that instead...



We have a Scheme procedure for chmod. There are examples in
'gnu/packages'. Is this what required coreutils as a native-input?


That's the reason indeed. I wasn't aware of the chmod procedure, I'll 
adapt my package definition .



In general, I think these patches need some more comments and
explanation of the various changes.


I'll resubmit an improved patch.

Before I do that, though, I'll await your opinion on whether an 
independent gctp package is actually needed or not.


Some other explanations in-line:


+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
 b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected 
that it's present.

+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif


What is the effect of this?



About this and the other “TESTDRIVERS”-related stuff:
When we run automake after patching the build, it needs the 
“testdrivers” directory.  This is a set of additional 
tests/demonstration programs (HDF-EOS5 already contains tests in the 
src/samples directory), which are distributed in a separate tarball 
(the configure script will test if the testdrivers are there or not, 
so they are optional in a “standard” build scenario). In order to 
allow automake to complete, I removed all references to the 
testdrivers in my patch.  The alternative solution would be to 
download 2 tarballs (source + testdrivers) and extract them in the 
build directory. Removing the testdrivers was the easiest solution.



+ AC_OUTPUT



+diff --git a/include/HE5_HdfEosDef.h b/include/HE5_HdfEosDef.h
+index 9ed7881..abf0a90 100755
+--- a/include/HE5_HdfEosDef.h
 b/include/HE5_HdfEosDef.h
+@@ -24,6 +24,7 @@
+ #ifndef HE5_HDFEOSDEF_H_
+ #define HE5_HDFEOSDEF_H_
+
++#define H5_USE_16_API 1


What is the significance of this definition?



Actually this only affects the HDF-EOS5 package, and I now realize it 
can be removed from this patchset.  I was using the same patch for 
shared library compilation in my HDF5 and GCTP packages... lazyness.


(The HDF5 API changed in version 1.8. Code written against previous 
version (such as HDF-EOS5) needs this #define to link with newer 
versions of HDF5.)


diff --git a/gnu/packages/patches/gctp-fix-soname.patch 
b/gnu/packages/patches/gctp-fix-soname.patch

new file mode 100644
index 000..5a32970
--- /dev/null
+++ b/gnu/packages/patches/gctp-fix-soname.patch
@@ -0,0 +1,31 @@
+Make library name all-lowercase.


Is this a stylistic change or does it have some other effect?



Otherwise the library is installed as “libGctp.so.0”, which seems 
like an unconventional capitalization (?). Like this, users switching 
from Debian & Co. will have a seamless experience ;-)


Thomas


[PATCH]: gnu: Add guile-dbi.

2016-06-18 Thread 宋文武
Here are 'guile-dbi' and 'guile-dbd-sqlite3':

>From 8e73c3e1a798b134e341c71c4b1c17d60956e3d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 
Date: Fri, 17 Jun 2016 22:44:56 +0800
Subject: [PATCH 1/2] gnu: Add guile-dbi.

* gnu/packages/guile.scm (guile-dbi): New variable.
---
 gnu/packages/guile.scm | 38 ++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 6f00edb..284b123 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -958,4 +958,42 @@ provides access to that interface and its types from the Scheme level.")
 (home-page "http://www.nongnu.org/g-wrap/index.html";)
 (license lgpl2.1+)))
 
+(define-public guile-dbi
+  (package
+(name "guile-dbi")
+(version "2.1.6")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"http://download.gna.org/guile-dbi/guile-dbi-";
+version ".tar.gz"))
+  (sha256
+   (base32
+"116njrprhgrsv1qm904sp3b02rq01fx639r433d657gyhw3x159n"
+(build-system gnu-build-system)
+(arguments
+ '(#:configure-flags
+   (list (string-append
+  "--with-guile-site-dir=" %output "/share/guile/site/2.0"))
+   #:phases
+   (modify-phases %standard-phases
+ (add-after 'install 'patch-extension-path
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(dbi.scm (string-append
+  out "/share/guile/site/2.0/dbi/dbi.scm"))
+(ext (string-append out "/lib/libguile-dbi")))
+   (substitute* dbi.scm (("libguile-dbi") ext))
+   #t))
+(propagated-inputs
+ `(("guile" ,guile-2.0)))
+(synopsis "Guile database abstraction layer")
+(home-page "http://home.gna.org/guile-dbi/guile-dbi.html";)
+(description
+ "guile-dbi is a library for Guile that provides a convenient interface to
+SQL databases.  Database programming with guile-dbi is generic in that the same
+programming interface is presented regardless of which database system is used.
+It currently supports MySQL, Postgres and SQLite3.")
+(license gpl2+)))
+
 ;;; guile.scm ends here
-- 
2.8.4

>From 87c3ef658e24035715b48606fb9ef24d55aaddfa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= 
Date: Sat, 18 Jun 2016 15:49:36 +0800
Subject: [PATCH 2/2] gnu: Add guile-dbd-sqlite3.

* gnu/packages/guile.scm (guile-dbd-sqlite3): New variable.
---
 gnu/packages/guile.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 284b123..29c7ed2 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -996,4 +996,31 @@ programming interface is presented regardless of which database system is used.
 It currently supports MySQL, Postgres and SQLite3.")
 (license gpl2+)))
 
+(define-public guile-dbd-sqlite3
+  (package
+(name "guile-dbd-sqlite3")
+(version "2.1.6")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"http://download.gna.org/guile-dbi/guile-dbd-sqlite3-";
+version ".tar.gz"))
+  (sha256
+   (base32
+"0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
+(inputs
+ `(("sqlite" ,sqlite)
+   ("zlib" ,(@ (gnu packages compression) zlib
+(propagated-inputs
+ `(("guile-dbi" ,guile-dbi)))
+(synopsis "Guile DBI driver for SQLite")
+(home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3";)
+(description
+ "guile-dbi is a library for Guile that provides a convenient interface to
+SQL databases.  This package implements the interface for SQLite.")
+(license gpl2+)))
+
 ;;; guile.scm ends here
-- 
2.8.4


Unfortunately, Guile DBI loads its backends using `dlopen',
so I have to set 'LD_LIBRARY_PATH' to '$guile-dbd-sqlite/lib'
for loading it.


Re: libgit2, libgit2-glib: pkg-config file: dependencies on other libraries: how to represent them in Guix?

2016-06-18 Thread Ricardo Wurmus

Danny Milosavljevic  writes:

> I'm trying to package libgit2-glib and gnome-builder.
>
> - libgit2 has openssl as input.
> - libgit2-glib installs a pkg-config file.
> - gnome-builder uses libgit2-glib .
>
> Something always complains about missing openssl parts.
>
> For example I can get
>   Package 'openssl', required by 'libgit2', not found
> when building libgit2-glib.
>
> Almost whatever else I do instead, the error wanders around in the DAG.
>
> In order to make it work I added openssl as a propagated input in 
> libgit2-glib. This does work.
>
> But is it the right fix?

This depends on the pkg-config file that the library installs.  If this
file contains a section that lists other libraries as private, then
propagation is probably the correct approach.

~~ Ricardo