[PATCH] gnu-maintenance: update-package-source: Only update the desired package.

2016-04-04 Thread 宋文武
Fixes .
Suggested by Andy Wingo.

* guix/upstream.scm (update-package-source): Use a customized 'substitute'
to work within lines of the package's source.
---
 guix/upstream.scm | 81 +--
 1 file changed, 67 insertions(+), 14 deletions(-)

diff --git a/guix/upstream.scm b/guix/upstream.scm
index cea23fe..f4bc09c 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -23,7 +23,11 @@
   #:use-module ((guix download)
 #:select (download-to-store))
   #:use-module ((guix build utils)
-#:select (substitute))
+#:select (with-atomic-file-replacement))
+  #:use-module ((ice-9 rdelim)
+#:select (read-line))
+  #:use-module ((rnrs io ports)
+#:select (get-string-all))
   #:use-module (guix gnupg)
   #:use-module (guix packages)
   #:use-module (guix ui)
@@ -205,6 +209,37 @@ and 'interactive' (default)."
   "Modify the source file that defines PACKAGE to refer to VERSION,
 whose tarball has SHA256 HASH (a bytevector).  Return the new version string
 if an update was made, and #f otherwise."
+  (define (substitute+ file start end pattern+procs)
+;; Same as substitute, but within lines from START to END.
+(let ((rx+proc  (map (match-lambda
+(((? regexp? pattern) . proc)
+ (cons pattern proc))
+((pattern . proc)
+ (cons (make-regexp pattern regexp/extended)
+   proc)))
+   pattern+procs)))
+(with-atomic-file-replacement file
+  (lambda (in out)
+(while (< (port-line in) (- start 1))
+  (display (read-line in 'concat) out))
+
+(let loop ((line (read-line in 'concat)))
+  (let ((line (fold (lambda (r+p line)
+  (match r+p
+((regexp . proc)
+ (match (list-matches regexp line)
+   ((and m+ (_ _ ...))
+(proc line m+))
+   (_ line)
+line
+rx+proc)))
+(display line out)
+(if (< (port-line in) end)
+(loop (read-line in 'concat))
+(begin
+  (display (get-string-all in) out)
+  #t
+
   (define (new-line line matches replacement)
 ;; Iterate over MATCHES and return the modified line based on LINE.
 ;; Replace each match with REPLACEMENT.
@@ -222,24 +257,40 @@ if an update was made, and #f otherwise."
   (substring line o (match:start m))
   r))
 
-  (define (update-source file old-version version
+  (define (update-source file start end old-version version
  old-hash hash)
-;; Update source file FILE, replacing occurrences OLD-VERSION by VERSION
-;; and occurrences of OLD-HASH by HASH (base32 representation thereof).
-
-;; TODO: Currently this is a bit of a sledgehammer: if VERSION occurs in
-;; different unrelated places, we may modify it more than needed, for
-;; instance.  We should try to make changes only within the sexp that
-;; corresponds to the definition of PACKAGE.
+;; Update source file FILE within lines from START to END,
+;; replacing occurrences OLD-VERSION by VERSION and occurrences
+;; of OLD-HASH by HASH (base32 representation thereof).
 (let ((old-hash (bytevector->nix-base32-string old-hash))
   (hash (bytevector->nix-base32-string hash)))
-  (substitute file
-  `((,(regexp-quote old-version)
- . ,(cut new-line <> <> version))
-(,(regexp-quote old-hash)
- . ,(cut new-line <> <> hash
+  (substitute+ file start end
+   `((,(regexp-quote old-version)
+  . ,(cut new-line <> <> version))
+ (,(regexp-quote old-hash)
+  . ,(cut new-line <> <> hash
   version))
 
+
+  (define (package-location-line-start package)
+(location-line (package-location package)))
+
+  (define (package-location-line-end package)
+(define (goto port line column)
+  (unless (and (= (port-column port)) (- column 1)
+   (= (port-line port) (- line 1)))
+(unless (eof-object? (read-char port))
+  (goto port line column
+
+(match (package-location package)
+  (($  file line column)
+   (call-with-input-file (search-path %load-path file)
+ (lambda (port)
+   (goto port line column)
+   (match (read port)
+ (('package _ ...)
+  (1+ (port-line port)
+
   (let ((name (package-name package))
 (loc  (package-field-location package 'version)))
 (if 

qt: monolithic or modular?

2016-04-04 Thread Efraim Flashner
I try very hard to not build qt on my laptop, mostly because of the long build 
time (7 hours on hydra [0]). Currently we download and use the big download of 
qt[1] and frankly I'd rather not. Qt does also ship in smaller bits[2], 32 if I 
counted correctly. I propose we package the submodules and over time we go 
through the packages that use qt and switch out the monolithic qt for just the 
parts that the program actually uses. It makes it less daunting to build, 
should make the closures smaller, and means that if a submodule fails to build 
on an architecture then they only lose that module, not all of qt.

[0] http://hydra.gnu.org/build/1114596
[1] 
https://download.qt.io/official_releases/qt/5.6/5.6.0/single/qt-everywhere-opensource-src-5.6.0.tar.xz
[2] https://download.qt.io/official_releases/qt/5.6/5.6.0/submodules/

-- 
Efraim Flashner      אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


pgpIFQngN6Kps.pgp
Description: OpenPGP digital signature


Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software

2016-04-04 Thread alírio eyng
Felipe Sanches:
>On Mon, Apr 4, 2016 at 7:23 PM, alírio eyng  wrote:
>> this development environment works for all architectures mame supports?
>Yes. The debugger dialog is generic
...
>mame/src/devices/cpu$ ls
...
>i386
the debugger works on all architectures
i can use i386
i can use z80 and read your code as example
it still seem useless supporting obselete architectures with only
nonfree software depending on it



Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software

2016-04-04 Thread Felipe Sanches
The other situation when I was able to benefit from the automatically
generated custom debugger UI was when working on emulating the
(non-free) game Another World from the 90's. It was originally
executed on Amiga computers, so the debugger would let me see the
opcodes of the Amiga CPU. But the game was actually originally
implemented in a custom virtual machine created by its author, Eric
Chahi. I decided to emulate this virtual machine in MAME as if it were
a real CPU. The end-result was that I got for the first time the
ability to inspect the game (non-free) bytecode at the virtual-machine
level by running it on the automatically generated debugger that MAME
provides.

This opens up a new level of insight on the internal workings of the
program that was never possible before with so much ease. A screenshot
of that can be seen here:
https://twitter.com/juca_gnu/status/686597622417719296

Happy Hacking,
Felipe Sanches

On Mon, Apr 4, 2016 at 7:47 PM, Felipe Sanches  wrote:
> On Mon, Apr 4, 2016 at 7:23 PM, alírio eyng  wrote:
>> Felipe Sanches:
>>>MAME provides an interactive debugger
>> so mame is not just an emulator.
>> it is a emulator, disassembler and debugger.
>> this is relevant information i can't see in official documentation, thanks.
>>
>> it seems even with a obsolete executable format, it can be a
>> interesting development environment.
>> a interesting development environment is useful in itself and don't
>> need free games.
>> is there a similar environment to a current architecture?
>> can this development environment be used in freedom to develop a game
>> from scratch?
>
> Yes. I did it.
> https://github.com/garoa/GunSmoke/tree/master/
>
>> this development environment works for all architectures mame supports?
> Yes. The debugger dialog is generic and you get it automatically as a
> bonus if you implement a new CPU emulation module. This happened with
> me a couple times already. I got access to the technical manuals of
> the first computer designed and manufactured in Brazil, which was
> called "Patinho Feio" (meaning something like "Ugly Duckling
> Computer"). I got the printed documentation from the hands of one of
> my university professors at the engineering school. He was involved in
> the team that developed the pioneer computer back in 1972.
>
> Based on the documentation (which I published it all on the Internet
> Archive with authorization form the original author:
> https://archive.org/details/Montador_do_Patinho_Feio__Julho1977) I
> wrote a new CPU emulation driver in MAME to emulate the custom
> instruction set of this Brazilian machine. Not only emulation works
> when loading its sample software - a trivially simple hello-world
> extracted from a punched data tape, trivial enough to not even be
> copyrightable I guess... - It also allows me to run the code step by
> step and to inspect the system memory because the whole debugging
> framework was "magically" inherited by the way MAME codebase is
> structured.
>
> So this makes it sure that absolutely every CPU architecture supported
> by MAME does also provide such nice interactive debugger. And the list
> of supported CPUs is absurdly broad:
>
> felipe@guarana:~/mame/src/devices/cpu$ ls
> 8x300  arm   drcbec.cppdrccache.h  e0c6200   hd61700
> i860 m6800 mcs51pdp8   sc61860  sm8500   tms32010
> ucom4x86emit.h
> adsp2100   arm7  drcbec.h  drcfe.cpp   e132xshmcs40
> i960 m68000mcs96pic16c5x   scmp spc700   tms32025
> uml.cpp  x86log.cpp
> alph8201   asap  drcbeut.cpp   drcfe.h es5510hphybrid
> ie15 m6805 melps4   pic16c62x  scoressem tms32031
> uml.hx86log.h
> alto2  avr8  drcbeut.h drcuml.cpp  esrip i386
> jaguar   m6809 minx powerpcscudsp   ssp1601  tms32051
> unsp z180
> am29000ccpu  drcbex64.cpp  drcuml.hf8i4004
> lc8670   mb86233   mips pps4   se3208   superfx  tms32082
> upd7725  z8
> amis2000   cop400drcbex64.hdrcumlsh.h  g65816i8008
> lh5801   mb86235   mn10200  psxsh2  t11  tms34010
> upd7810  z80
> apexc  cosmacdrcbex86.cpp  dsp16   h6280 i8085
> lr35902  mb88xxnec  rspsh4  tlcs90   tms57002
> v30mzz8000
> arccp1610drcbex86.hdsp32   h8i8089
> m37710   mc68hc11  patinhofeio  s2650  sharctlcs900  tms7000
> v60
> arcompact  cubeqcpu  drccache.cpp  dsp56k  hcd62121  i86
> m6502mcs48 pdp1 saturn sm510tms1000  tms9900
> v810



Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software

2016-04-04 Thread Felipe Sanches
On Mon, Apr 4, 2016 at 7:23 PM, alírio eyng  wrote:
> Felipe Sanches:
>>MAME provides an interactive debugger
> so mame is not just an emulator.
> it is a emulator, disassembler and debugger.
> this is relevant information i can't see in official documentation, thanks.
>
> it seems even with a obsolete executable format, it can be a
> interesting development environment.
> a interesting development environment is useful in itself and don't
> need free games.
> is there a similar environment to a current architecture?
> can this development environment be used in freedom to develop a game
> from scratch?

Yes. I did it.
https://github.com/garoa/GunSmoke/tree/master/

> this development environment works for all architectures mame supports?
Yes. The debugger dialog is generic and you get it automatically as a
bonus if you implement a new CPU emulation module. This happened with
me a couple times already. I got access to the technical manuals of
the first computer designed and manufactured in Brazil, which was
called "Patinho Feio" (meaning something like "Ugly Duckling
Computer"). I got the printed documentation from the hands of one of
my university professors at the engineering school. He was involved in
the team that developed the pioneer computer back in 1972.

Based on the documentation (which I published it all on the Internet
Archive with authorization form the original author:
https://archive.org/details/Montador_do_Patinho_Feio__Julho1977) I
wrote a new CPU emulation driver in MAME to emulate the custom
instruction set of this Brazilian machine. Not only emulation works
when loading its sample software - a trivially simple hello-world
extracted from a punched data tape, trivial enough to not even be
copyrightable I guess... - It also allows me to run the code step by
step and to inspect the system memory because the whole debugging
framework was "magically" inherited by the way MAME codebase is
structured.

So this makes it sure that absolutely every CPU architecture supported
by MAME does also provide such nice interactive debugger. And the list
of supported CPUs is absurdly broad:

felipe@guarana:~/mame/src/devices/cpu$ ls
8x300  arm   drcbec.cppdrccache.h  e0c6200   hd61700
i860 m6800 mcs51pdp8   sc61860  sm8500   tms32010
ucom4x86emit.h
adsp2100   arm7  drcbec.h  drcfe.cpp   e132xshmcs40
i960 m68000mcs96pic16c5x   scmp spc700   tms32025
uml.cpp  x86log.cpp
alph8201   asap  drcbeut.cpp   drcfe.h es5510hphybrid
ie15 m6805 melps4   pic16c62x  scoressem tms32031
uml.hx86log.h
alto2  avr8  drcbeut.h drcuml.cpp  esrip i386
jaguar   m6809 minx powerpcscudsp   ssp1601  tms32051
unsp z180
am29000ccpu  drcbex64.cpp  drcuml.hf8i4004
lc8670   mb86233   mips pps4   se3208   superfx  tms32082
upd7725  z8
amis2000   cop400drcbex64.hdrcumlsh.h  g65816i8008
lh5801   mb86235   mn10200  psxsh2  t11  tms34010
upd7810  z80
apexc  cosmacdrcbex86.cpp  dsp16   h6280 i8085
lr35902  mb88xxnec  rspsh4  tlcs90   tms57002
v30mzz8000
arccp1610drcbex86.hdsp32   h8i8089
m37710   mc68hc11  patinhofeio  s2650  sharctlcs900  tms7000
v60
arcompact  cubeqcpu  drccache.cpp  dsp56k  hcd62121  i86
m6502mcs48 pdp1 saturn sm510tms1000  tms9900
v810



Re: [PATCH] gnu: Add wmbattery

2016-04-04 Thread Danny Milosavljevic
On Mon, 4 Apr 2016 17:04:51 -0400
Kei Yamashita  wrote:

> The source tarball comes from Debian. Hopefully this patch is formatted
> correctly.

Spurios tab characters here:

  (method url-fetch)
  (uri (string-append

"http://http.debian.net/debian/pool/main/w/wmbattery/wmbattery_2.50.orig.tar.gz;))
  (sha256
   (base32
"0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"
^

Please run "guix lint wmbattery".

Otherwise I've tested it and it does install and run fine. 



Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software

2016-04-04 Thread alírio eyng
Felipe Sanches:
>MAME provides an interactive debugger
so mame is not just an emulator.
it is a emulator, disassembler and debugger.
this is relevant information i can't see in official documentation, thanks.

it seems even with a obsolete executable format, it can be a
interesting development environment.
a interesting development environment is useful in itself and don't
need free games.
is there a similar environment to a current architecture?
can this development environment be used in freedom to develop a game
from scratch?
this development environment works for all architectures mame supports?



Re: Python and propagation

2016-04-04 Thread Danny Milosavljevic
Or:

3) Use Python importlib[1] metapath functionality[2] in order to register your 
own module finder early[3].

You can override the entire module loading functionality like this, both the 
finding of modules and the loading them (off a stone tablet for example ^^).
You can even override builtin (!!) module loaders that way.

The default sys.metapath is [, 
, ].

(All these classes do not need to be instantiated since you use them via 
classmethods)

The frozen importer is used in order to find dependencies in order to build a 
self-contained special python interpreter which includes all the dependencies 
you use (see Tools/freeze/ [4]).

So while I'm not sure what you want to achieve in detail (I've read some of the 
E-Mails in this thread but not every word), I think you can either use "freeze" 
or modify sitecustomize.py in order to make it magically modify metapath so it 
does what you want - without patching any of the other files.

(For comparison, check out what pip freeze does (despite the name, it just 
determines dependencies - a la ldd - and prints them))

On the other hand, virtualenv also builds a special Python interpreter.

Note that if you want to do something equivalent to 

  sys.path = ["a"]
  import x
  sys.path = ["b"]
  import x

if both a/x.py and b/x.py exist (and are different) and have the latter 
"import" import another x (after the former "import" succeeded), that's 
impossible and Python's semantics forbid that that works in any case. The 
latter import must use the already-loaded module (because of the same name). 
Also, the name "x" is visible in the remainder of the script that did the 
import, so no renaming either. Since Python does dynamic binding, you also 
can't just have the first "x" be visible in the first half and the second "x" 
in the second half - although (only) Python3 changed some stuff to allow 
lexical binding in some special cases.

Also not:

  sys.path = ["a"]
  import x
  sys.path = ["c"]
  import d

where
  c/d.py:
sys.path = ["../b"]
import x # nope! It's still the old one!

Also, it's customary to do this:

  a/__init__.py:
x = 3
import b
y = 4
  a/b.py:
import a
print(a.x)
  main.py:
import a
print(a.y)

and it should work fine, printing 3 and 4. So while a module is being loaded, 
it should be able to import modules. (here, a/__init__.py is running, importing 
b, and b is using "a" although it's only half-there - b at this point in time 
also only sees the first half - i.e. it doesn't see y yet).

[1] https://docs.python.org/3/library/importlib.html
[2] https://www.python.org/dev/peps/pep-0302/ (search for "metapath")
[3] in lib/python.../site-packages/sitecustomize.py
[4] https://wiki.python.org/moin/Freeze



Re: Struggling with a caching substitute server

2016-04-04 Thread Pjotr Prins
On Mon, Apr 04, 2016 at 11:04:12PM +0200, Ludovic Courtès wrote:
> Did you authorize the singing key of that server?

Maybe I did not. I'll check tomorrow. It would be nice if we got some
feedback from the system. Silent failures is not so great.

Pj.



Re: [PATCH v7] Add hplip

2016-04-04 Thread Ludovic Courtès
Hi,

Here’s an improved version of the patch you posted, which removes the
dependency on Autoconf/Automake and keeps using /var as the
localstatedir.

However, programs now need help to find their Python modules:

--8<---cut here---start->8---
$ /gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-scan --version
Traceback (most recent call last):
  File "/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-scan", 
line 40, in 
import scanext
ImportError: No module named 'scanext'
$ /gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-probe 
Traceback (most recent call last):
  File "/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-probe", 
line 38, in 
from base import device, utils, tui, module
  File 
"/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/share/hplip/base/device.py",
 line 42, in 
from . import status
  File 
"/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/share/hplip/base/status.py",
 line 33, in 
import cupsext
ImportError: No module named 'cupsext'
--8<---cut here---end--->8---

Could someone add a phase to do this?

TIA.  :-)

Ludo’.

diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index ff3d152..82541ad 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ricardo Wurmus 
-;;; Copyright © 2015 Ludovic Courtès 
+;;; Copyright © 2015, 2016 Ludovic Courtès 
 ;;; Copyright © 2015 Efraim Flashner 
+;;; Copyright © 2016 Danny Milosavljevic 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,10 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages scanner)
   #:use-module (gnu packages image)
   #:use-module (gnu packages fonts) ;font-dejavu
   #:use-module (gnu packages fontutils)
@@ -297,3 +302,105 @@ device-specific programs to convert and print many types of files.")
("gnutls" ,gnutls)
("cups-filters" ,cups-filters)
("zlib"  ,zlib)
+
+(define-public hplip
+  (package
+(name "hplip")
+(version "3.16.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "mirror://sourceforge/hplip/"
+  "/hplip-" version ".tar.gz"))
+  (sha256
+   (base32
+"1nflgrbyl0fz35djnkn7qsfr5g4sh8lixqna9jvs52wasjllbj7j"
+(build-system gnu-build-system)
+(home-page "http://hplipopensource.com/;)
+(synopsis "HP Printer Drivers")
+(description "Hewlett-Packard Printer Drivers and PPDs.")
+;; Note: X11 license is only used in install-sh.
+(license (list license:gpl2 license:bsd-3 license:expat license:x11))
+;; TODO install apparmor profile files eventually.
+(arguments
+ `(#:configure-flags
+   `("--disable-network-build"
+ ,(string-append "--prefix=" (assoc-ref %outputs "out"))
+ ,(string-append "--sysconfdir=" (assoc-ref %outputs "out") "/etc")
+ ;; Disable until mime.types merging works (FIXME).
+ "--disable-fax-build"
+ "--enable-hpcups-install"
+ "--enable-new-hpcups"
+ "--enable-cups_ppd_install"
+ "--enable-cups_drv_install"
+ ;; TODO add foomatic drv install eventually.
+ ;; TODO --enable-policykit eventually.
+ ,(string-append "--with-cupsfilterdir="
+ (assoc-ref %outputs "out")
+ "/lib/cups/filter")
+ ,(string-append "--with-cupsbackenddir="
+ (assoc-ref %outputs "out")
+ "/lib/cups/backend")
+ ,(string-append "--with-icondir="
+ (assoc-ref %outputs "out")
+ "/share/applications")
+ ,(string-append "--with-systraydir="
+ (assoc-ref %outputs "out")
+ "/etc/xdg"))
+   #:phases (modify-phases %standard-phases
+  ;; FIXME: Add phase to wrap bin/* so that the Python libs
+  ;; are found.
+  (add-after 'unpack 'fix-hard-coded-file-names
+(lambda* (#:key inputs outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out"))
+;; FIXME: use merged ppds (I think actually only
+;; drvs need to be merged).
+(cupsdir (assoc-ref inputs "cups-minimal")))
+(substitute* "base/g.py"
+  (("'/usr/share;[^']*'")
+   (string-append 

Re: [PATCH] Port Arrayfire to GNU Guix

2016-04-04 Thread Ludovic Courtès
Hi,

Dennis Mungai  skribis:

> The patch attached adds Arrayfire, a software library for GPU computing.
> For compliance with the GPL licenses, I've configured the package not
> to build with CUDA support, and the OpenCL backend builds with the
> open source OpenCL ICD and the standard Khronos OpenCL headers for
> vendor neutrality.

Sorry for the late reply, and thanks for your work!

> From c25732b9beb99a0788349c086f460d45f228dd74 Mon Sep 17 00:00:00 2001
> From: Dennis Mungai 
> Date: Sun, 20 Mar 2016 04:51:15 +0300
> Subject: [PATCH] Ported ArrayFire to GNU Guix
>
> ---
>  arrayfire.scm | 362 
> ++

Could you:

  1. Send a patch against Guix ‘master’, where this file should be
 called gnu/packages/opencl.scm?  (I think ‘opencl’ is more
 appropriate than ‘arrayfire’.)

  2. Send one patch per package, to simply the review workflow?

  3. Run ‘guix lint’ for each package and address any problems it raises
 (hopefully simple to do, but feel free to ask for help on #guix).

  4. Provide ChangeLog-style commit logs, as noted at
 
?

That’s a bit of extra work, but it will really help us!

Some more specific comments:

> +(define-module (gn packages arrayfire)

s/gn/gnu/

> +(define-public arrayfire
> +(package
> +(name "arrayfire")

Please try to indent as in the other files.

> +   ("cmake" ,cmake)))
> +(build-system cmake-build-system)

CMake is not needed in ‘inputs’ when using ‘cmake-build-system’.

> +(arguments 
> + `(#:configure-flags '("-DBUILD_OPENCL=ON" "-DBUILD_CUDA=OFF" 
> "-DBUILD_GRAPHICS=OFF" "-DUSE_SYSTEM_BOOST_COMPUTE=ON" 
> "-DUSE_SYSTEM_CLBLAS=ON" "-DUSE_SYSTEM_CLFFT=ON") 
> +   #:tests? #f)) 

Please add a comment above #:tests? #f to justify why tests are skipped.

> +(synopsis "ArrayFire: a general purpose GPU library. 
> https://arrayfire.com;)
> +(description "ArrayFire is a high performance software library for 
> parallel computing with an easy-to-use API. Its array based function set 
> makes parallel programming simple.Now on Guix")

‘guix lint’ will suggest some changes here.  :-)

> +(home-page "http://arrayfire.com/;)
> +(license (list license:gpl2 
> +   license:gpl2+ 
> +   license:gpl3 
> +   license:gpl3+

What does it mean?  Please add a comment above explaining what the
license list is about.

> +(synopsis "glfw is an Open Source, multi-platform library for creating 
> windows with OpenGL contexts and receiving input and events.")
> +(description "glfw is an Open Source, multi-platform library for 
> creating windows with OpenGL contexts and receiving input and events.")

s/Open Source//g

The GNU project focuses on free software, not “open source” (see
), and
since every package in Guix is free, we don’t mention it in synopses.

Also, please see

on the kind of synopses/descriptions we try to provide to our users.

> +(define-public clBLAS
> +  (package
> +(name "clBLAS")

Variable and package names should be lower-case.

> +(version "v2.10")

No “v”.

> +(native-inputs `(("autoconf" ,autoconf)
> +("automake" ,automake)

Indentation.

> +(define-public opencl-headers
> +(let ((commit "c1770dc"))
> +  (package

Indentation.

Could you send updated patches, preferably using ‘git send-email’?

Thank you!

Ludo’.



[PATCH] gnu: Add wmbattery

2016-04-04 Thread Kei Yamashita
The source tarball comes from Debian. Hopefully this patch is formatted
correctly.

0001-gnu-Add-wmbattery.patch
Description: Binary data


Re: Struggling with a caching substitute server

2016-04-04 Thread Ludovic Courtès
Pjotr Prins  skribis:

> I am running client and server in exactly the same checked out guix
> repository. Server:
>
>   ./pre-inst-env guix publish -u guix-publisher
> publishing /gnu/store on 0.0.0.0, port 8080
>
> Client on the same server
>
>   ./pre-inst-env guix package -i hello --dry-run

If ‘guix publish’ and ‘guix package’ run on the same machine, then
nothing will happen: ‘guix publish’ serves what’s in /gnu/store, and
‘guix package’ will resort to substitutes only when something’s missing
from /gnu/store, in which case ‘guix publish’ won’t have it either.

> Now from a different remote machine using my substitute caching server
>
>   ./pre-inst-env guix package -i hello 
> --substitute-urls="http://guix.myserver.org; --dry-run
>
> keeps on wanting to build the thing from scratch.

Did you authorize the singing key of that server?

> Query from main server:
>
> GET /nix-cache-info
> GET /xgm6wxkja6llvkz8jck95i6cmh3c93yh.narinfo
> GET /w6im8ck36hpjyh9zjmz9mr2vkppfhzid.narinfo
> GET /9wq9z5jq3g691f836lhi0633g26lfl8n.narinfo
>
> Query from remote
>
> GET /nix-cache-info
> GET /x2lhjhbxd5dqmis350gkc352v9z1pr8r.narinfo
> GET /jkxa2ga4x0gqvx6x790anpwhnm7d278w.narinfo
> GET /ic8sabq35jisj5wmi860d85i09qghq1x.narinfo
>
> which suggests the files it wants to fetch are not the same, though the 
> starting point 
> (the checked out guix dir) should be exactly the same. The last commit is the 
> same.

The set of narinfos queried is a function of what’s in the local
/gnu/store (clients only ask about things not already on disk) so it’s
normal that the requests differ.

HTH!

Ludo’.



Re: Substitute URLs

2016-04-04 Thread Ludovic Courtès
Pjotr Prins  skribis:

> The convention of substitute URLs is a bit weird:
>
> http://guix.myserver.org points to port 8080.

What makes you think so?  AFAIK it’s port 80.

Ludo’.



Re: bug#22693: `guix refresh -u` updates other packages with same version

2016-04-04 Thread Ludovic Courtès
Andy Wingo  skribis:

> On Mon 04 Apr 2016 12:20, iyzs...@member.fsf.org (宋文武) writes:
>
>> How to fix this?
>>
>> The procedure is ‘update-package-source’ in (guix upstream).
>> it find the file, then use ‘substitute’ to replace the version and
>> hash.  ‘substitute’ works line-by-line, it can’t match mutiple lines.
>>
>> I try:
>>  - use ‘package-location’ and ‘read’ to get the package object,
>>but it lost all format and comments.
>
> One option:
>
>   1. open the source file for the package
>   2. Call (read) until port-line / port-column are beyond the
>  package-location of the package
>   3. At that point you have the ending location of the package.

Right.  ‘package-field-location’ does something along these lines.

> Then limit your substitute* to work within those lines.

A simpler yet less elegant trick used in ‘report-formatting-issues’ in
(guix scripts lint) is to have a maximum number of lines assumed to be
part of the ‘package’ form following its starting line.

Thanks,
Ludo’.



[PATCH] gnu: add sparta-dsmc

2016-04-04 Thread Lukas Gradl
Hello Guix!

Attached is a patch to add the SPARTA Direct Simulation Monte Carlo
Software.

There maybe is a problem with the source URL: The URL always points to
the latest version of the source tar ball which is constantly updated
and immediately released by upstream.  This means that the hash of the
source tar ball available at this URL changes several times a month.  Is
this acceptable or does anyone have an idea how this should be handled?

Thank you!
>From bb34f87da7df626170a51aab77dd150336112401 Mon Sep 17 00:00:00 2001
From: Lukas Gradl 
Date: Mon, 4 Apr 2016 15:19:35 -0500
Subject: [PATCH] gnu: Add sparta-dsmc.

* gnu/packages/maths.scm (sparta-dsmc): New variable.
---
 gnu/packages/maths.scm | 61 ++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d6b371e..1ae938b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2015 Mark H Weaver 
 ;;; Copyright © 2015, 2016 Efraim Flashner 
 ;;; Copyright © 2015 Fabian Harfert 
+;;; Copyright © 2016 Lukas Gradl 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2027,3 +2028,63 @@ 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+)))
+
+(define-public sparta-dsmc
+  (package
+(name "sparta-dsmc")
+(version "20160331")
+(source
+ (origin
+   (method url-fetch)
+   (uri "http://www.sandia.gov/~sjplimp/tars/sparta.tar.gz;)
+   (sha256
+(base32
+ "0w0sdiharqrw6x4msbq01havky15cq7ylkk2y6v59xyy7vnxpnss"
+(build-system gnu-build-system)
+(inputs `(("openmpi" ,openmpi)
+  ("libjpeg" ,libjpeg)
+  ("python" ,python-2)))
+(arguments
+ `(#:tests? #f ; there is no "check" target nor any other tests
+   #:phases
+   (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'patch-generated-file-shebangs 'chdir-to-src
+   (lambda _
+ (chdir "src")))
+ (add-after 'chdir-to-src
+ 'patch-makefile-shell
+   (lambda _
+ (substitute* (list "MAKE/Makefile.mpi"
+"MAKE/Makefile.serial")
+   (("/bin/sh") (which "bash")
+ (replace 'build
+   (lambda _
+ (and
+  (zero? (system* "make"
+  (format #f "-j~a" (parallel-job-count))
+  "mpi"))
+  (zero? (system* "make"
+  (format #f "-j~a" (parallel-job-count))
+  "serial")
+ (replace 'install
+   (lambda _
+ (let* ((out (assoc-ref %outputs "out"))
+(bin (string-append out "/bin"))
+(doc (string-append out "/share/doc/sparta-dsmc"))
+(examples (string-append doc "/examples")))
+   (install-file "spa_mpi" bin)
+   (install-file "spa_serial" bin)
+   (copy-recursively "../examples" examples)
+   (copy-recursively "../doc" doc)))
+(synopsis "Direct Simulation Monte Carlo (DSMC) simulator")
+(description "SPARTA is a parallel DSMC code for performing
+simulations of low-density gases in 2d or 3d.  Particles advect
+through a hierarchical Cartesian grid that overlays the simulation
+box.  The grid is used to group particles by grid cell for purposes of
+performing collisions and chemistry.  Physical objects with
+triangulated surfaces can be embedded in the grid, creating cut and
+split grid cells.  The grid is also used to efficiently find
+particle/surface collisions.")
+(home-page "http://sparta.sandia.gov/;)
+(license license:gpl2)))
-- 
2.6.3



Re: Lightning talk at Dconf

2016-04-04 Thread Ludovic Courtès
Pjotr Prins  skribis:

> I am giving a lightning talk about GNU Guix at Dconf (Berlin, May 4-6):
>
>   http://dconf.org/2016/schedule/
>
> As is the case with most programming languages, D is struggling with a
> packaging system (dub, see http://code.dlang.org/) and I want to
> explain why a simple $HOME packaging system will do fine when more
> complex deployments are handled by GNU Guix. In other words, keep it
> simple and leave the complex stuff to Guix.
>
> There is also a Birds of a Feather session on 'Building and Packaging
> Systems'
>
>   http://dconf.org/2016/talks/bof.html

Neat!  Make sure to spread the word on the perils of the proliferation
of language-specific package managers, among other things.  ;-)

Ludo’.



Re: mplayer version update

2016-04-04 Thread Mark H Weaver
ra...@openmailbox.org writes:

> In order to fix the compile error
>  I have bumped the version of
> mplayer up to 1.3.0, the most modern version.
>
> From 423c2717e00577e865bf416598b5481bfa812564 Mon Sep 17 00:00:00 2001
> From: Raymond Nicholson 
> Date: Mon, 4 Apr 2016 21:20:11 +0100
> Subject: [PATCH] gnu: mplayer: Update to 1.3.0.

Pushed, thanks!

 Mark



Re: gst-libav version update

2016-04-04 Thread Mark H Weaver
ra...@openmailbox.org writes:

> In order to fix the compile errors
>  and
>  I have bumped the version of
> gst-libav up to 1.8.0, the most modern version.
>
> From 291d304ec068f3720560957c210f77570d6730d3 Mon Sep 17 00:00:00 2001
> From: Raymond Nicholson 
> Date: Mon, 4 Apr 2016 21:01:12 +0100
> Subject: [PATCH] gnu: gst-libav: Update to 1.8.0.

Pushed, thanks!

 Mark



mplayer version update

2016-04-04 Thread rain1
In order to fix the compile error 
 I have bumped the version of 
mplayer up to 1.3.0, the most modern version.
From 423c2717e00577e865bf416598b5481bfa812564 Mon Sep 17 00:00:00 2001
From: Raymond Nicholson 
Date: Mon, 4 Apr 2016 21:20:11 +0100
Subject: [PATCH] gnu: mplayer: Update to 1.3.0.

* gnu/packages/video.scm (mplayer): Update to 1.3.0.
---
 gnu/packages/video.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 494889a..8f93950 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -602,7 +602,7 @@ treaming protocols.")
 (define-public mplayer
   (package
 (name "mplayer")
-(version "1.2.1")
+(version "1.3.0")
 (source (origin
  (method url-fetch)
  (uri (string-append
@@ -610,7 +610,7 @@ treaming protocols.")
version ".tar.xz"))
  (sha256
   (base32
-   "0prbqnsl6s7fbpp6nc6babx7gzwdrhrhzf0cmp6xz6w9gl4sy6w3"
+   "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s"
 (build-system gnu-build-system)
 ;; FIXME: Add additional inputs once available.
 (native-inputs
-- 
2.7.3



gst-libav version update

2016-04-04 Thread rain1
In order to fix the compile errors  
and  I have bumped the version of 
gst-libav up to 1.8.0, the most modern version.
From 291d304ec068f3720560957c210f77570d6730d3 Mon Sep 17 00:00:00 2001
From: Raymond Nicholson 
Date: Mon, 4 Apr 2016 21:01:12 +0100
Subject: [PATCH] gnu: gst-libav: Update to 1.8.0.

* gnu/packages/ffmpeg.scm (gst-libav): Update to 1.8.0.
---
 gnu/packages/gstreamer.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 5cf59cd..9790095 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -371,7 +371,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
 (define-public gst-libav
   (package
 (name "gst-libav")
-(version "1.6.3")
+(version "1.8.0")
 (source (origin
   (method url-fetch)
   (uri (string-append
@@ -379,7 +379,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
 name "-" version ".tar.xz"))
   (sha256
(base32
-"1aylbg1xnm68c3wc49mzx813qhsjfg23hqnjqqwdwdq31839qyw5"
+"0719njp8aarhvn038pijq6dmsnli0zlg146hyfs3rsdffs4f472s"
 (build-system gnu-build-system)
 (arguments
  '(#:configure-flags '("--with-system-libav")
-- 
2.7.3



[PATCH 5/6] emacs: Add interface for package locations.

2016-04-04 Thread Alex Kost
* emacs/guix-main.scm (%package-location-param-alist): New variable.
(package-location->sexp, package-location-entries): New procedures.
* emacs/guix-ui-location.el: New file.
* emacs.am (ELFILES): Add it.
* doc/emacs.texi (Emacs Locations): Document 'guix-locations'.
* NEWS: Mention it.
---
 NEWS  |  6 
 doc/emacs.texi|  7 
 emacs.am  |  1 +
 emacs/guix-main.scm   | 12 +++
 emacs/guix-ui-location.el | 83 +++
 5 files changed, 109 insertions(+)
 create mode 100644 emacs/guix-ui-location.el

diff --git a/NEWS b/NEWS
index 2ab208f..267c197 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,12 @@ Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès 

 
 Please send Guix bug reports to bug-g...@gnu.org.
 
+* Changes in 0.11.0 (since 0.10.0)
+
+** Package management
+
+*** New Emacs interface for package locations: M-x guix-locations
+
 * Changes in 0.10.0 (since 0.9.0)
 
 ** Community
diff --git a/doc/emacs.texi b/doc/emacs.texi
index 5a5fbc2..5348d78 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -554,6 +554,13 @@ getting lost in these locations:
 
 @table @kbd
 
+@item M-x guix-locations
+Display a list of package locations.  You can press @key{RET} there to
+display packages placed in the current location in the same way as
+@kbd{M-x guix-packages-by-location} would do (@pxref{Emacs Commands}).
+Note that when the point is on a location button, @key{RET} will open
+this location file.
+
 @item M-x guix-find-location
 Find package location file (press @key{TAB} to choose a location from a
 completion list).
diff --git a/emacs.am b/emacs.am
index c0d294d..4d9 100644
--- a/emacs.am
+++ b/emacs.am
@@ -48,6 +48,7 @@ ELFILES = \
   emacs/guix-profiles.el   \
   emacs/guix-read.el   \
   emacs/guix-ui.el \
+  emacs/guix-ui-location.el\
   emacs/guix-ui-package.el \
   emacs/guix-ui-generation.el  \
   emacs/guix-ui-system-generation.el   \
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index 9950cad..f2266a8 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -1135,3 +1135,15 @@ Return #t if the shell command was executed 
successfully."
 (define (packages-by-location location)
   "Return a list of packages placed in LOCATION."
   (hash-ref (package-location-table) location))
+
+(define %package-location-param-alist
+  `((id   . ,identity)
+(location . ,identity)
+(number-of-packages . ,(lambda (location)
+ (length (packages-by-location location))
+
+(define package-location->sexp
+  (object-transformer %package-location-param-alist))
+
+(define (package-location-entries)
+  (map package-location->sexp (package-locations)))
diff --git a/emacs/guix-ui-location.el b/emacs/guix-ui-location.el
new file mode 100644
index 000..0027c1f
--- /dev/null
+++ b/emacs/guix-ui-location.el
@@ -0,0 +1,83 @@
+;;; guix-ui-location.el --- Interface for displaying package locations
+
+;; Copyright © 2016 Alex Kost 
+
+;; 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 Location as published by
+;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details.
+
+;; You should have received a copy of the GNU General Public Location
+;; along with this program.  If not, see .
+
+;;; Commentary:
+
+;; This file provides a 'list' interface for displaying locations of Guix
+;; packages.
+
+;;; Code:
+
+(require 'guix-buffer)
+(require 'guix-list)
+(require 'guix-location)
+(require 'guix-backend)
+
+(guix-define-entry-type location)
+
+(defun guix-location-get-entries ()
+  "Receive 'package location' entries."
+  (guix-eval-read "(package-location-entries)"))
+
+
+;;; Location 'list'
+
+(guix-list-define-interface location
+  :buffer-name "*Guix Package Locations*"
+  :get-entries-function 'guix-location-get-entries
+  :format '((location guix-location-list-file-name-specification 50 t)
+(number-of-packages nil 10 guix-list-sort-numerically-1
+:right-align t))
+  :sort-key '(location))
+
+(let ((map guix-location-list-mode-map))
+  (define-key map (kbd "RET") 'guix-location-list-show-packages)
+  ;; "Location Info" buffer is not defined (it would be useless), so
+  ;; unbind "i" key (by default, it is used to display Info buffer).
+  (define-key map (kbd "i") nil))
+
+(defun 

[PATCH 6/6] emacs: Add license/location "Packages" buttons to Info buffer.

2016-04-04 Thread Alex Kost
* emacs/guix-ui-package.el (guix-package-info-insert-location)
(guix-package-info-insert-license): New procedures.
(guix-package-info-format): Use them.
(guix-output-info-format): Likewise.
---
 emacs/guix-ui-package.el | 40 
 1 file changed, 36 insertions(+), 4 deletions(-)

diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el
index aba30ab..e6f836d 100644
--- a/emacs/guix-ui-package.el
+++ b/emacs/guix-ui-package.el
@@ -223,9 +223,9 @@ ENTRIES is a list of package entries to get info about 
packages."
 ignore
 (outputs simple guix-package-info-insert-outputs)
 (source simple guix-package-info-insert-source)
-(location format (format guix-package-location))
+(location simple guix-package-info-insert-location)
+(license simple guix-package-info-insert-license)
 (home-url format (format guix-url))
-(license format (format guix-package-license))
 (systems format guix-package-info-insert-systems)
 (inputs format (format guix-package-input))
 (native-inputs format (format guix-package-native-input))
@@ -383,6 +383,38 @@ formatted with this string, an action button is inserted.")
'guix-package-heading
'spec (guix-package-entry->name-specification entry)))
 
+(defun guix-package-info-insert-location (location  _)
+  "Insert package LOCATION at point."
+  (if (null location)
+  (guix-format-insert nil)
+(let ((location-file (car (split-string location ":"
+  (guix-info-insert-value-indent location 'guix-package-location)
+  (guix-info-insert-indent)
+  (guix-info-insert-action-button
+   "Packages"
+   (lambda (btn)
+ (guix-package-get-display (guix-ui-current-profile)
+   'location
+   (button-get btn 'location)))
+   (concat "Show packages from location: " location-file)
+   'location location-file
+
+(defun guix-package-info-insert-license (licenses  _)
+  "Insert package LICENSES at point."
+  (if (null licenses)
+  (guix-format-insert nil)
+(dolist (license licenses)
+  (guix-info-insert-value-indent license 'guix-package-license)
+  (guix-info-insert-indent)
+  (guix-info-insert-action-button
+   "Packages"
+   (lambda (btn)
+ (guix-package-get-display (guix-ui-current-profile)
+   'license
+   (button-get btn 'license)))
+   (concat "Show packages with license: " license)
+   'license license
+
 (defun guix-package-info-insert-systems (systems entry)
   "Insert supported package SYSTEMS at point."
   (guix-info-insert-value-format
@@ -798,9 +830,9 @@ for all ARGS."
 (source simple guix-package-info-insert-source)
 (path simple (indent guix-file))
 (dependencies simple (indent guix-file))
-(location format (format guix-package-location))
+(location simple guix-package-info-insert-location)
+(license simple guix-package-info-insert-license)
 (home-url format (format guix-url))
-(license format (format guix-package-license))
 (systems format guix-package-info-insert-systems)
 (inputs format (format guix-package-input))
 (native-inputs format (format guix-package-native-input))
-- 
2.7.3




[PATCH 4/6] doc: emacs: Add "Locations" section.

2016-04-04 Thread Alex Kost
* doc/emacs.texi (Emacs Commands): Move description of 'guix-edit'
command to...
(Emacs Locations): ... here.  Document 'guix-find-location'.  New
section.
* doc/guix.texi (Top): Add it.
---
 doc/emacs.texi | 63 --
 doc/guix.texi  |  1 +
 2 files changed, 40 insertions(+), 24 deletions(-)

diff --git a/doc/emacs.texi b/doc/emacs.texi
index 16ff4d5..5a5fbc2 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -10,6 +10,7 @@ Guix convenient and fun.
 * Initial Setup: Emacs Initial Setup.  Preparing @file{~/.emacs}.
 * Package Management: Emacs Package Management.Managing packages and 
generations.
 * Licenses: Emacs Licenses.Interface for licenses of Guix packages.
+* Locations: Emacs Locations.  Interface for package locations.
 * Popup Interface: Emacs Popup Interface.  Magit-like interface for guix 
commands.
 * Prettify Mode: Emacs Prettify.   Abbreviating @file{/gnu/store/@dots{}} 
file names.
 * Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
@@ -220,30 +221,6 @@ With @kbd{C-u}, make it verbose.
 Once @command{guix pull} has succeeded, the Guix REPL is restared.  This
 allows you to keep using the Emacs interface with the updated Guix.
 
-Finally, there is an Emacs variant of @command{guix edit} command
-(@pxref{Invoking guix edit}):
-
-@table @kbd
-@item M-x guix-edit
-As with @kbd{M-x guix-packages-by-name}, you can press @key{TAB} to
-complete a package name.
-@end table
-
-If you are contributing to Guix, you may find it useful for @kbd{M-x
-guix-edit} to open package files from your git directory.  This can be
-done by setting @code{guix-directory} variable.  For example, after
-this:
-
-@example
-(setq guix-directory "~/src/guix")
-@end example
-
-@kbd{M-x guix-edit guix} opens
-@file{~/src/guix/gnu/packages/package-management.scm} file.
-
-Also you can use @kbd{C-u} prefix argument to specify a directory just
-for the current @kbd{M-x guix-edit} command.
-
 
 @node Emacs General info
 @subsection General information
@@ -568,6 +545,44 @@ guix-packages-by-license} would do (@pxref{Emacs 
Commands}).
 @end table
 
 
+@node Emacs Locations
+@section Locations
+
+As you know, package definitions are placed in Guile files, also known
+as @dfn{package locations}.  The following commands should help you not
+getting lost in these locations:
+
+@table @kbd
+
+@item M-x guix-find-location
+Find package location file (press @key{TAB} to choose a location from a
+completion list).
+
+@item M-x guix-edit
+Find location of a specified package.  This is an Emacs analog of
+@command{guix edit} command (@pxref{Invoking guix edit}).  As with
+@kbd{M-x guix-packages-by-name}, you can press @key{TAB} to complete a
+package name.
+
+@end table
+
+If you are contributing to Guix, you may find it useful for @kbd{M-x
+guix-find-location} and @kbd{M-x guix-edit} to open locations from your
+git directory.  This can be done by setting @code{guix-directory}
+variable.  For example, after this:
+
+@example
+(setq guix-directory "~/src/guix")
+@end example
+
+@kbd{M-x guix-edit guix} opens
+@file{~/src/guix/gnu/packages/package-management.scm} file.
+
+Also you can use @kbd{C-u} prefix argument to specify a directory just
+for the current @kbd{M-x guix-find-location} or @kbd{M-x guix-edit}
+command.
+
+
 @node Emacs Popup Interface
 @section Popup Interface
 
diff --git a/doc/guix.texi b/doc/guix.texi
index a34d547..710adbd 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -118,6 +118,7 @@ Emacs Interface
 * Initial Setup: Emacs Initial Setup.  Preparing @file{~/.emacs}.
 * Package Management: Emacs Package Management.Managing packages and 
generations.
 * Licenses: Emacs Licenses.Interface for licenses of Guix packages.
+* Locations: Emacs Locations.  Interface for package locations.
 * Popup Interface: Emacs Popup Interface.  Magit-like interface for guix 
commands.
 * Prettify Mode: Emacs Prettify.   Abbreviating @file{/gnu/store/@dots{}} 
file names.
 * Build Log Mode: Emacs Build Log. Highlighting Guix build logs.
-- 
2.7.3




[PATCH 2/6] emacs: Separate package location code.

2016-04-04 Thread Alex Kost
* emacs/guix-base.el (guix-directory, guix-read-directory)
(guix-set-directory, guix-find-location, guix-package-location)
(guix-edit): Move to...
* emacs/guix-location.el: ... here.  New file.
* emacs/guix-ui-package.el: Use it.
* emacs.am (ELFILES): Add it.
---
 emacs.am |  1 +
 emacs/guix-base.el   | 62 +---
 emacs/guix-location.el   | 94 
 emacs/guix-ui-package.el |  1 +
 4 files changed, 97 insertions(+), 61 deletions(-)
 create mode 100644 emacs/guix-location.el

diff --git a/emacs.am b/emacs.am
index 1897e2e..c0d294d 100644
--- a/emacs.am
+++ b/emacs.am
@@ -40,6 +40,7 @@ ELFILES = \
   emacs/guix-init.el   \
   emacs/guix-license.el\
   emacs/guix-list.el   \
+  emacs/guix-location.el   \
   emacs/guix-messages.el   \
   emacs/guix-pcomplete.el  \
   emacs/guix-popup.el  \
diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index 75d19cb..364 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -48,53 +48,7 @@
   (when output (concat ":" output
 
 
-;;; Location of packages, profiles and manifests
-
-(defvar guix-directory nil
-  "Default Guix directory.
-If it is not set by a user, it is set after starting Guile REPL.
-This directory is used to define location of the packages.")
-
-(defun guix-read-directory ()
-  "Return `guix-directory' or prompt for it.
-This function is intended for using in `interactive' forms."
-  (if current-prefix-arg
-  (read-directory-name "Directory with Guix modules: "
-   guix-directory)
-guix-directory))
-
-(defun guix-set-directory ()
-  "Set `guix-directory' if needed."
-  (or guix-directory
-  (setq guix-directory
-(guix-eval-read "%guix-dir"
-
-(add-hook 'guix-after-start-repl-hook 'guix-set-directory)
-
-(defun guix-find-location (location  directory)
-  "Go to LOCATION of a package.
-LOCATION is a string of the form:
-
-  \"PATH:LINE:COLUMN\"
-
-If PATH is relative, it is considered to be relative to
-DIRECTORY (`guix-directory' by default)."
-  (cl-multiple-value-bind (path line col)
-  (split-string location ":")
-(let ((file (expand-file-name path (or directory guix-directory)))
-  (line (string-to-number line))
-  (col  (string-to-number col)))
-  (find-file file)
-  (goto-char (point-min))
-  (forward-line (- line 1))
-  (move-to-column col)
-  (recenter 1
-
-(defun guix-package-location (id-or-name)
-  "Return location of a package with ID-OR-NAME.
-For the meaning of location, see `guix-find-location'."
-  (guix-eval-read (guix-make-guile-expression
-   'package-location-string id-or-name)))
+;;; Location of profiles and manifests
 
 (defun guix-generation-file (profile generation)
   "Return the file name of a PROFILE's GENERATION."
@@ -120,20 +74,6 @@ See `guix-packages-profile'."
   (expand-file-name "manifest"
 (guix-packages-profile profile generation system?)))
 
-;;;###autoload
-(defun guix-edit (id-or-name  directory)
-  "Edit (go to location of) package with ID-OR-NAME.
-See `guix-find-location' for the meaning of package location and
-DIRECTORY.
-Interactively, with prefix argument, prompt for DIRECTORY."
-  (interactive
-   (list (guix-read-package-name)
- (guix-read-directory)))
-  (let ((loc (guix-package-location id-or-name)))
-(if loc
-(guix-find-location loc directory)
-  (message "Couldn't find package location."
-
 
 ;;; Actions on packages and generations
 
diff --git a/emacs/guix-location.el b/emacs/guix-location.el
new file mode 100644
index 000..c6f9b86
--- /dev/null
+++ b/emacs/guix-location.el
@@ -0,0 +1,94 @@
+;;; guix-location.el --- Package locations
+
+;; Copyright © 2016 Alex Kost 
+
+;; 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 Location as published by
+;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details.
+
+;; You should have received a copy of the GNU General Public Location
+;; along with this program.  If not, see .
+
+;;; Commentary:
+
+;; This file provides the code to work with locations of Guix packages.
+
+;;; Code:
+
+(require 'guix-backend)
+(require 'guix-read)
+(require 'guix-guile)
+
+(defvar guix-directory nil
+  "Default Guix directory.
+If it is not set by a user, it is 

[PATCH 1/6] emacs: Add 'guix-packages-by-location' command.

2016-04-04 Thread Alex Kost
* emacs/guix-main.scm (%package-location-table): New variable.
(package-location-table, package-locations, packages-by-location): New
procedures.
(%patterns-makers): Add 'location' search type.
* emacs/guix-messages.el (guix-message-packages-by-location): New procedure.
(guix-messages): Use it.
* emacs/guix-read.el (guix-package-locations)
(guix-read-package-location): New procedures.
* emacs/guix-ui-package.el (guix-packages-by-location): New command.
* doc/emacs.texi (Emacs Commands): Document it.
---
 doc/emacs.texi   |  3 +++
 emacs/guix-main.scm  | 38 ++
 emacs/guix-messages.el   | 15 +++
 emacs/guix-read.el   | 10 ++
 emacs/guix-ui-package.el | 12 +++-
 5 files changed, 77 insertions(+), 1 deletion(-)

diff --git a/doc/emacs.texi b/doc/emacs.texi
index c4fdfff..16ff4d5 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -160,6 +160,9 @@ Display package(s) with the specified name.
 @item M-x guix-packages-by-license
 Display package(s) with the specified license.
 
+@item M-x guix-packages-by-location
+Display package(s) placed in the specified location.
+
 @item M-x guix-search-by-regexp
 Search for packages by a specified regexp.  By default ``name'',
 ``synopsis'' and ``description'' of the packages will be searched.  This
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index c620440..9950cad 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -39,6 +39,9 @@
 ;;
 ;; - `%package-table' - Hash table of
 ;;   "name+version key"/"list of packages" pairs.
+;;
+;; - `%location-table' - Hash table of
+;;   "package location"/"list of packages" pairs.
 
 ;;; Code:
 
@@ -684,6 +687,8 @@ ENTRIES is a list of installed manifest entries."
  (license-proc  (lambda (_ license-name)
   (packages-by-license
(lookup-license license-name
+ (location-proc (lambda (_ location)
+  (packages-by-location location)))
  (all-proc  (lambda _ (all-available-packages)))
  (newest-proc   (lambda _ (newest-available-packages
 `((package
@@ -693,6 +698,7 @@ ENTRIES is a list of installed manifest entries."
(obsolete . ,(apply-to-first obsolete-package-patterns))
(regexp   . ,regexp-proc)
(license  . ,license-proc)
+   (location . ,location-proc)
(all-available. ,all-proc)
(newest-available . ,newest-proc))
   (output
@@ -702,6 +708,7 @@ ENTRIES is a list of installed manifest entries."
(obsolete . ,(apply-to-first obsolete-output-patterns))
(regexp   . ,regexp-proc)
(license  . ,license-proc)
+   (location . ,location-proc)
(all-available. ,all-proc)
(newest-available . ,newest-proc)
 
@@ -1097,3 +1104,34 @@ Return #t if the shell command was executed 
successfully."
 (define (license-entries search-type . search-values)
   (map license->sexp
(apply find-licenses search-type search-values)))
+
+
+;;; Package locations
+
+(define %package-location-table
+  (delay
+(let ((table (make-hash-table
+  ;; Rough guess about a number of locations: it is
+  ;; about 10 times less than the number of packages.
+  (euclidean/ (vlist-length (package-vhash)) 10
+  ;; XXX Actually, 'for-each-package' is needed but there is no such yet.
+  (fold-packages
+   (lambda (package _)
+ (let* ((location (location-file (package-location package)))
+(packages (or (hash-ref table location) '(
+   (hash-set! table location (cons package packages
+   #f)
+  table)))
+
+(define (package-location-table)
+  "Return hash table of 'location'/'list of packages' pairs."
+  (force %package-location-table))
+
+(define (package-locations)
+  "Return a list of available package locations."
+  (hash-map->list (lambda (location _) location)
+  (package-location-table)))
+
+(define (packages-by-location location)
+  "Return a list of packages placed in LOCATION."
+  (hash-ref (package-location-table) location))
diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el
index de0331f..7ebe7e8 100644
--- a/emacs/guix-messages.el
+++ b/emacs/guix-messages.el
@@ -40,6 +40,10 @@
   ,(lambda (_ entries licenses)
  (apply #'guix-message-packages-by-license
 entries 'package licenses)))
+ (location
+  ,(lambda (_ entries locations)
+ (apply #'guix-message-packages-by-location
+entries 'package locations)))
  (regexp
   (0 "No packages matching '%s'." val)
   (1 "A single package matching '%s'." val)
@@ -72,6 +76,10 @@
   ,(lambda (_ entries licenses)
  (apply #'guix-message-packages-by-license
 entries 

[PATCH 3/6] emacs: Make 'guix-find-location' interactive.

2016-04-04 Thread Alex Kost
* emacs/guix-location.el (guix-find-location): Make interactive.  Adjust
  to handle "reduced" locations (without line and column numbers).
---
 emacs/guix-location.el | 34 ++
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/emacs/guix-location.el b/emacs/guix-location.el
index c6f9b86..d28d5ef 100644
--- a/emacs/guix-location.el
+++ b/emacs/guix-location.el
@@ -56,24 +56,34 @@ For the meaning of location, see `guix-find-location'."
   (guix-eval-read (guix-make-guile-expression
'package-location-string id-or-name)))
 
+
+;;; Interactive commands
+
+;;;###autoload
 (defun guix-find-location (location  directory)
   "Go to LOCATION of a package.
 LOCATION is a string of the form:
 
-  \"PATH:LINE:COLUMN\"
+  \"FILE:LINE:COLUMN\"
+
+If FILE is relative, it is considered to be relative to
+DIRECTORY (`guix-directory' by default).
 
-If PATH is relative, it is considered to be relative to
-DIRECTORY (`guix-directory' by default)."
-  (cl-multiple-value-bind (path line col)
+Interactively, prompt for LOCATION.  With prefix argument, prompt
+for DIRECTORY as well."
+  (interactive
+   (list (guix-read-package-location)
+ (guix-read-directory)))
+  (cl-multiple-value-bind (file line column)
   (split-string location ":")
-(let ((file (expand-file-name path (or directory guix-directory)))
-  (line (string-to-number line))
-  (col  (string-to-number col)))
-  (find-file file)
-  (goto-char (point-min))
-  (forward-line (- line 1))
-  (move-to-column col)
-  (recenter 1
+(find-file (expand-file-name file (or directory guix-directory)))
+(when (and line column)
+  (let ((line   (string-to-number line))
+(column (string-to-number column)))
+(goto-char (point-min))
+(forward-line (- line 1))
+(move-to-column column)
+(recenter 1)
 
 ;;;###autoload
 (defun guix-edit (id-or-name  directory)
-- 
2.7.3




[PATCH 0/6] emacs: Add interface for package locations.

2016-04-04 Thread Alex Kost
Hello, this patchset adds an Emacs interface for package locations,
which is very similar to the existing interface for licenses
(guix-licenses, guix-packages-by-license and guix-browse-license-url
commands).

The following commands are added:

- "M-x guix-locations": display a list of package locations (see
  the left part of the screenshot¹).

- "M-x guix-packages-by-location": display packages from a particular
  location.

- "M-x guix-find-location": move to a particular location.  It is the
  same as you can do with "M-x guix-edit" but instead of selecting a
  package name, you choose a location.

Also *Guix Package Info* buffer shows "Packages" buttons that can be
used to display packages by license and by location (see the right part
of the screenshot).

[PATCH 1/6] emacs: Add 'guix-packages-by-location' command.
[PATCH 2/6] emacs: Separate package location code.
[PATCH 3/6] emacs: Make 'guix-find-location' interactive.
[PATCH 4/6] doc: emacs: Add "Locations" section.
[PATCH 5/6] emacs: Add interface for package locations.
[PATCH 6/6] emacs: Add license/location "Packages" buttons to Info.

¹ http://i.imgur.com/PBmuxex.png



Re: Lightning talk at Dconf

2016-04-04 Thread Pjotr Prins
On Mon, Apr 04, 2016 at 10:03:51PM +0300, Efraim Flashner wrote:
> On Mon, Apr 04, 2016 at 11:24:09AM +0200, Pjotr Prins wrote:
> > I am giving a lightning talk about GNU Guix at Dconf (Berlin, May 4-6):
> > 
> >   http://dconf.org/2016/schedule/
> > 
> > As is the case with most programming languages, D is struggling with a
> > packaging system (dub, see http://code.dlang.org/) and I want to
> > explain why a simple $HOME packaging system will do fine when more
> > complex deployments are handled by GNU Guix. In other words, keep it
> > simple and leave the complex stuff to Guix.
> > 
> > There is also a Birds of a Feather session on 'Building and Packaging
> > Systems'
> > 
> >   http://dconf.org/2016/talks/bof.html
> > 
> > Pj.
> > 
> 
> What language will it be in?

en_GB.utf8

> Any chance it'll be recorded?

Yes. And slides.

> Keep us updated!

:)

Pj.



imagemagick: license is Apache 2.0

2016-04-04 Thread Jean Louis
I have observed that package imagemagick, has license specified in the
definition as: FSF-free, even though I see on the website that they use
Apache 2.0 license.

It is better that correct license is specified in the package
definition.

Jean Louis



Re: Lightning talk at Dconf

2016-04-04 Thread Efraim Flashner
On Mon, Apr 04, 2016 at 11:24:09AM +0200, Pjotr Prins wrote:
> I am giving a lightning talk about GNU Guix at Dconf (Berlin, May 4-6):
> 
>   http://dconf.org/2016/schedule/
> 
> As is the case with most programming languages, D is struggling with a
> packaging system (dub, see http://code.dlang.org/) and I want to
> explain why a simple $HOME packaging system will do fine when more
> complex deployments are handled by GNU Guix. In other words, keep it
> simple and leave the complex stuff to Guix.
> 
> There is also a Birds of a Feather session on 'Building and Packaging
> Systems'
> 
>   http://dconf.org/2016/talks/bof.html
> 
> Pj.
> 

What language will it be in?
Any chance it'll be recorded?

Keep us updated!

-- 
Efraim Flashner      אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: [v3] Erlang

2016-04-04 Thread Pjotr Prins
Dear Mr Armstrong,

First of, thanks for the hard work on Erlang. I read your book when it
came out and it is cool to see how use is exploding. My latest project
is actually written in Elixir.

You may have heard of GNU Guix, the modern (functional) package
manager of the GNU project. We are trying to add Erlang and Elixir to
Guix, but we are running into the problem that building the Erlang
compiler is not deterministic and therefore not reproducible, i.e. the
beam files contain time stamps. 

For normal software built by Erlang this can be overriden with
SOURCE_DATE_EPOCH, but for the compiler itself we have not found how
to do this.

Do you have a suggestion how to bootstrap the compiler with
SOURCE_DATE_EPOCH set or disable the time stamps? I am sure as a FP
compiler designer you can appreciate determinism. Because GNU Guix is
deterministic there is no need to keep track of time stamps. For hot
reloading we can assume the start of EPOCH will do the trick, right?

Pj.

On Mon, Apr 04, 2016 at 01:49:44PM -0400, Leo Famulari wrote:
> On Mon, Apr 04, 2016 at 12:50:12PM -0400, Leo Famulari wrote:
> > On Mon, Apr 04, 2016 at 10:28:02AM +0200, Pjotr Prins wrote:
> > > On Sun, Apr 03, 2016 at 11:39:24PM -0400, Leo Famulari wrote:
> > > > Debian's package exhibits this problem. The timestamps are generated in
> > > > the following places in the source code. I don't know how to approach
> > > > this problem.
> > > > 
> > > > lib/kernel/test/global_SUITE_data/global_trace.erl:io:format("The 
> > > > trace was generated at ~p~n", [EndTime]),
> > > > lib/reltool/bin/reltool.escript:lists:flatten(io_lib:format("%% ~s 
> > > > generated at ~w ~w\n~p.\n\n",
> > > > lib/reltool/src/reltool_server.erl:IoList = io_lib:format("%% 
> > > > config generated at ~w ~w\n~p.\n\n",
> > > > lib/reltool/src/reltool_target.erl:RelIoList = io_lib:format("%% 
> > > > rel generated at ~w ~w\n~p.\n\n",
> > > > lib/reltool/src/reltool_target.erl:ScriptIoList = io_lib:format("%% 
> > > > script generated at ~w ~w\n~p.\n\n",
> > > > lib/reltool/src/reltool_target.erl:AppIoList = 
> > > > io_lib:format("%% app generated at ~w ~w\n~p.\n\n",
> > > > lib/reltool/src/reltool_target.erl:AppIoList = 
> > > > io_lib:format("%% app generated at ~w ~w\n~p.\n\n",
> > > > lib/runtime_tools/src/erts_alloc_config.erl:"generated at 
> > > > ~w-~2..0w-~2..0w ~2..0w:~2..0w.~2..0w by "
> > > > lib/sasl/src/systools_make.erl: io:format(Fd, "%% script generated 
> > > > at ~w ~w\n~p.\n",
> > > > lib/wx/src/gen/gl.erl:%% The program object's information log is 
> > > > updated and the program is generated at the time
> > > 
> > > If there is no easy work around I suggest simply patching them. 
> > > Fortunately
> > > the Erlang compiler does not change much at this level.
> > 
> > The ideal solution would be to use the value of the environment variable
> > SOURCE_DATE_EPOCH if it is set, and else to behave as it does now.
> > 
> > > We can also contact Joe Armstrong, the author of Erlang, to discuss
> > > this point. He appears to be approachable. I am sure he is open to
> > > the idea of deterministic builds in a deterministic build system ;)
> > 
> > I could go to the Erlang IRC channel or forums (whatever they use) and
> > ask for advice. Since you are actually using Erlang, I think you would
> > be the better person to contact Joe Armstrong himself, if we decide to
> > do that.
> 
> I presented the situation on IRC and it was recommended that I start the
> discussion on a mailing list.
> 
> I think that the erlang-questions list [0] could be a good place to
> start.
> 
> Pjotr, would you like to start the conversation? I can do it if you are
> too busy or something.
> 
> [0]
> http://www.erlang.org/community
> 

-- 



Re: [v3] Erlang

2016-04-04 Thread Pjotr Prins
On Mon, Apr 04, 2016 at 01:49:44PM -0400, Leo Famulari wrote:
> I think that the erlang-questions list [0] could be a good place to
> start.

Possibly, though I think it is more user-oriented.

> Pjotr, would you like to start the conversation? I can do it if you are
> too busy or something.

I'll try and approach Joe Armstrong directly and you can do the ML at
the same time. Cc this list. 

I don't think, however, that we should wait for that fix. It may take
a while before it reaches 'stable', or something other tools can depend
upon. I had the same thing with ldc (the LLVM D compiler now in Guix)
and patched tests for the time being (for ldc I'll probably be able to
resolve it at Dconf in May). If we want something usable within 3-6
months I suggest we patch a hard coded date in. It is only the
compiler itself we are talking about. A patch may also help explain
things ;)

I would love to have Erlang and Elixir in GNU Guix. GNU Guix targeting
programmers makes a load of sense.

Pj.




Re: [PATCH 0/3] Fix letsencrypt

2016-04-04 Thread Leo Famulari
On Mon, Apr 04, 2016 at 01:52:24PM -0400, Leo Famulari wrote:
> On Sun, Apr 03, 2016 at 09:14:52AM +0300, Efraim Flashner wrote:
> > On Sat, 2 Apr 2016 20:30:33 -0400
> > Leo Famulari  wrote:
> > 
> > > On Thu, Mar 31, 2016 at 11:48:30PM +0200, Ludovic Courtès wrote:
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > >  [...]  
> > > 
> > > I think the job is complete, although I don't understand Hydra's
> > > interface very well:
> > > 
> > > http://hydra.gnu.org/jobset/gnu/fix-letsencrypt/
> > > 
> > 
> > of the three new failures (compared to master), one built successfully and
> > two lost their lsh connection during building
> 
> How can I see what the new failures are?

Never mind, Mark explained it on IRC.

> 
> > 
> > -- 
> > Efraim Flashner      אפרים פלשנר
> > GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> > Confidentiality cannot be guaranteed on emails sent or received unencrypted
> 
> 
> 



Re: [PATCH] gnu: vcftools: Update to 0.1.14.

2016-04-04 Thread Roel Janssen
>From f0cc38ea5ed57018785cc20352165a7e2cd18d84 Mon Sep 17 00:00:00 2001
From: Roel Janssen 
Date: Mon, 4 Apr 2016 20:04:48 +0200
Subject: [PATCH] gnu: vcftools: Update to 0.1.14.

* gnu/packages/bioinformatics.scm (vcftools): Update to 0.1.14.
[home-page]: Update to new homepage.
---
 gnu/packages/bioinformatics.scm | 23 +--
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 250deb9..0afc0a6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3692,15 +3692,15 @@ Cuffdiff or Ballgown programs.")
 (define-public vcftools
   (package
 (name "vcftools")
-(version "0.1.12b")
+(version "0.1.14")
 (source (origin
   (method url-fetch)
   (uri (string-append
-"mirror://sourceforge/vcftools/vcftools_"
- version ".tar.gz"))
+"https://github.com/vcftools/vcftools/releases/download/v;
+version "/vcftools-" version ".tar.gz"))
   (sha256
(base32
-"148al9h7f8g8my2qdnpax51kdd2yjrivlx6frvakf4lz5r8j88wx"
+"10l5c07z9p4i9pr4gl54b2c9h6ndhqlbq1rashg2zcgwkbfrkmvn"
 (build-system gnu-build-system)
 (arguments
  `(#:tests? #f ; no "check" target
@@ -3708,18 +3708,13 @@ Cuffdiff or Ballgown programs.")
  "CFLAGS=-O2" ; override "-m64" flag
  (string-append "PREFIX=" (assoc-ref %outputs "out"))
  (string-append "MANDIR=" (assoc-ref %outputs "out")
-"/share/man/man1"))
-   #:phases
-   (alist-cons-after
-'unpack 'patch-manpage-install
-(lambda _
-  (substitute* "Makefile"
-(("cp \\$\\{PREFIX\\}/cpp/vcftools.1") "cp ./cpp/vcftools.1")))
-(alist-delete 'configure %standard-phases
+"/share/man/man1"
+(native-inputs
+ `(("pkg-config" ,pkg-config)))
 (inputs
  `(("perl" ,perl)
("zlib" ,zlib)))
-(home-page "http://vcftools.sourceforge.net/;)
+(home-page "https://vcftools.github.io/;)
 (synopsis "Tools for working with VCF files")
 (description
  "VCFtools is a program package designed for working with VCF files, such
@@ -3727,7 +3722,7 @@ as those generated by the 1000 Genomes Project.  The aim of VCFtools is to
 provide easily accessible methods for working with complex genetic variation
 data in the form of VCF files.")
 ;; The license is declared as LGPLv3 in the README and
-;; at http://vcftools.sourceforge.net/license.html
+;; at https://vcftools.github.io/license.html
 (license license:lgpl3)))
 
 (define-public vsearch
-- 
2.5.5

Dear Alex,

Thank you for your quick response.

Alex Kost writes:

> Roel Janssen (2016-04-04 15:12 +0300) wrote:
>
>> Dear Guix,
>>
>> I would like to update 'vcftools' to 0.1.14 (the latest release).
>> The project now uses Autotools, so the configure phase should be run.
>> In addition to that, I had to run autogen.sh to generate a configure
>> script.
>
> It happens because you use a source code "snapshot":
>
>   https://github.com/vcftools/vcftools/archive/v0.1.14.tar.gz
>
> Such things never contain "configure".  But look at:
>
>   https://github.com/vcftools/vcftools/releases
>
> There is a real release (made with "make dist"):
>
>   
> https://github.com/vcftools/vcftools/releases/download/v0.1.14/vcftools-0.1.14.tar.gz
>
> It contains all the required stuff, so there is no need to use autotools
> and to run "autogen.sh".

I hadn't noticed the real release file.
It also seems that the manpage is installed correctly by default now, so
I removed the substitution.

The new patch is cleaner.

Kind regards,
Roel Janssen


Re: [PATCH 0/3] Fix letsencrypt

2016-04-04 Thread Leo Famulari
On Sun, Apr 03, 2016 at 09:14:52AM +0300, Efraim Flashner wrote:
> On Sat, 2 Apr 2016 20:30:33 -0400
> Leo Famulari  wrote:
> 
> > On Thu, Mar 31, 2016 at 11:48:30PM +0200, Ludovic Courtès wrote:
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> >  [...]  
> > 
> > I think the job is complete, although I don't understand Hydra's
> > interface very well:
> > 
> > http://hydra.gnu.org/jobset/gnu/fix-letsencrypt/
> > 
> 
> of the three new failures (compared to master), one built successfully and
> two lost their lsh connection during building

How can I see what the new failures are?

> 
> -- 
> Efraim Flashner      אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted





Re: [v2] Update btrfs-progs once again and add static output

2016-04-04 Thread Leo Famulari
On Sun, Apr 03, 2016 at 09:36:26PM +0200, Tobias Geerinckx-Rice wrote:
> Hullo Guix,
> 
> Static btrfs-progs 4.5.1, with Leo's suggestions applied.

This LGTM! Any comments from anyone else?



Re: [v3] Erlang

2016-04-04 Thread Leo Famulari
On Mon, Apr 04, 2016 at 12:50:12PM -0400, Leo Famulari wrote:
> On Mon, Apr 04, 2016 at 10:28:02AM +0200, Pjotr Prins wrote:
> > On Sun, Apr 03, 2016 at 11:39:24PM -0400, Leo Famulari wrote:
> > > Debian's package exhibits this problem. The timestamps are generated in
> > > the following places in the source code. I don't know how to approach
> > > this problem.
> > > 
> > > lib/kernel/test/global_SUITE_data/global_trace.erl:io:format("The 
> > > trace was generated at ~p~n", [EndTime]),
> > > lib/reltool/bin/reltool.escript:lists:flatten(io_lib:format("%% ~s 
> > > generated at ~w ~w\n~p.\n\n",
> > > lib/reltool/src/reltool_server.erl:IoList = io_lib:format("%% config 
> > > generated at ~w ~w\n~p.\n\n",
> > > lib/reltool/src/reltool_target.erl:RelIoList = io_lib:format("%% rel 
> > > generated at ~w ~w\n~p.\n\n",
> > > lib/reltool/src/reltool_target.erl:ScriptIoList = io_lib:format("%% 
> > > script generated at ~w ~w\n~p.\n\n",
> > > lib/reltool/src/reltool_target.erl:AppIoList = 
> > > io_lib:format("%% app generated at ~w ~w\n~p.\n\n",
> > > lib/reltool/src/reltool_target.erl:AppIoList = 
> > > io_lib:format("%% app generated at ~w ~w\n~p.\n\n",
> > > lib/runtime_tools/src/erts_alloc_config.erl:  "generated at 
> > > ~w-~2..0w-~2..0w ~2..0w:~2..0w.~2..0w by "
> > > lib/sasl/src/systools_make.erl:   io:format(Fd, "%% script generated 
> > > at ~w ~w\n~p.\n",
> > > lib/wx/src/gen/gl.erl:%% The program object's information log is updated 
> > > and the program is generated at the time
> > 
> > If there is no easy work around I suggest simply patching them. Fortunately
> > the Erlang compiler does not change much at this level.
> 
> The ideal solution would be to use the value of the environment variable
> SOURCE_DATE_EPOCH if it is set, and else to behave as it does now.
> 
> > We can also contact Joe Armstrong, the author of Erlang, to discuss
> > this point. He appears to be approachable. I am sure he is open to
> > the idea of deterministic builds in a deterministic build system ;)
> 
> I could go to the Erlang IRC channel or forums (whatever they use) and
> ask for advice. Since you are actually using Erlang, I think you would
> be the better person to contact Joe Armstrong himself, if we decide to
> do that.

I presented the situation on IRC and it was recommended that I start the
discussion on a mailing list.

I think that the erlang-questions list [0] could be a good place to
start.

Pjotr, would you like to start the conversation? I can do it if you are
too busy or something.

[0]
http://www.erlang.org/community



Re: [PATCH] gnu: vcftools: Update to 0.1.14.

2016-04-04 Thread Alex Kost
Roel Janssen (2016-04-04 15:12 +0300) wrote:

> Dear Guix,
>
> I would like to update 'vcftools' to 0.1.14 (the latest release).
> The project now uses Autotools, so the configure phase should be run.
> In addition to that, I had to run autogen.sh to generate a configure
> script.

It happens because you use a source code "snapshot":

  https://github.com/vcftools/vcftools/archive/v0.1.14.tar.gz

Such things never contain "configure".  But look at:

  https://github.com/vcftools/vcftools/releases

There is a real release (made with "make dist"):

  
https://github.com/vcftools/vcftools/releases/download/v0.1.14/vcftools-0.1.14.tar.gz

It contains all the required stuff, so there is no need to use autotools
and to run "autogen.sh".

-- 
Alex



Re: [v3] Erlang

2016-04-04 Thread Leo Famulari
On Mon, Apr 04, 2016 at 10:28:02AM +0200, Pjotr Prins wrote:
> On Sun, Apr 03, 2016 at 11:39:24PM -0400, Leo Famulari wrote:
> > Debian's package exhibits this problem. The timestamps are generated in
> > the following places in the source code. I don't know how to approach
> > this problem.
> > 
> > lib/kernel/test/global_SUITE_data/global_trace.erl:io:format("The trace 
> > was generated at ~p~n", [EndTime]),
> > lib/reltool/bin/reltool.escript:lists:flatten(io_lib:format("%% ~s 
> > generated at ~w ~w\n~p.\n\n",
> > lib/reltool/src/reltool_server.erl:IoList = io_lib:format("%% config 
> > generated at ~w ~w\n~p.\n\n",
> > lib/reltool/src/reltool_target.erl:RelIoList = io_lib:format("%% rel 
> > generated at ~w ~w\n~p.\n\n",
> > lib/reltool/src/reltool_target.erl:ScriptIoList = io_lib:format("%% 
> > script generated at ~w ~w\n~p.\n\n",
> > lib/reltool/src/reltool_target.erl:AppIoList = 
> > io_lib:format("%% app generated at ~w ~w\n~p.\n\n",
> > lib/reltool/src/reltool_target.erl:AppIoList = 
> > io_lib:format("%% app generated at ~w ~w\n~p.\n\n",
> > lib/runtime_tools/src/erts_alloc_config.erl:"generated at 
> > ~w-~2..0w-~2..0w ~2..0w:~2..0w.~2..0w by "
> > lib/sasl/src/systools_make.erl: io:format(Fd, "%% script generated 
> > at ~w ~w\n~p.\n",
> > lib/wx/src/gen/gl.erl:%% The program object's information log is updated 
> > and the program is generated at the time
> 
> If there is no easy work around I suggest simply patching them. Fortunately
> the Erlang compiler does not change much at this level.

The ideal solution would be to use the value of the environment variable
SOURCE_DATE_EPOCH if it is set, and else to behave as it does now.

> We can also contact Joe Armstrong, the author of Erlang, to discuss
> this point. He appears to be approachable. I am sure he is open to
> the idea of deterministic builds in a deterministic build system ;)

I could go to the Erlang IRC channel or forums (whatever they use) and
ask for advice. Since you are actually using Erlang, I think you would
be the better person to contact Joe Armstrong himself, if we decide to
do that.



Re: [PATCH] gnu: font-gnu-freefont-ttf: Update to 20120503 and build from source.

2016-04-04 Thread alírio eyng
On 4/3/16, Ludovic Courtès  wrote:
> alírio eyng  skribis:
>> On 4/2/16, Eric Bavier  wrote:
>>> do we really want
>>> python3 for fontforge if their documentation is introducing users to
>>> python2 syntax and many font packages need python2?
...
> I think we should stay close to what Fontforge developers recommend.
following upstream is good.[1]
i don't think old documentation[2][3] last modified more than five
years ago and created before python3 was released is a recommendation.

[1]"Python 2.x is legacy, Python 3.x is the present and future of the language"
https://wiki.python.org/moin/Python2orPython3
[2]"Created on: 29-Nov-2006"
"Last modified: 30-Nov-2006"
https://github.com/fontforge/fontforge.github.io/blob/master/pythonscripts.html
[3]"Created on: 6-Apr-2007"
"Last modified: 28-Apr-2010"
https://github.com/fontforge/fontforge.github.io/blob/master/python.html



Substitute URLs

2016-04-04 Thread Pjotr Prins
The convention of substitute URLs is a bit weird:

http://guix.myserver.org points to port 8080. It should really be port
80 (the http preamble suggests that).

Pj.



Struggling with a caching substitute server

2016-04-04 Thread Pjotr Prins
I am running client and server in exactly the same checked out guix
repository. Server:

  ./pre-inst-env guix publish -u guix-publisher
publishing /gnu/store on 0.0.0.0, port 8080

Client on the same server

  ./pre-inst-env guix package -i hello --dry-run
The following derivations would be built:
 /gnu/store/ipsmyhrsfnfvyb096fpiscd7rn3d9557-profile.drv
 /gnu/store/l6z8ln2r4x9g2y6yy62ly3f8jx2k1rxy-ca-certificate-bundle.drv
 /gnu/store/v79w8yj766ryqnc6i1k8ry6wi8vfhy3f-info-dir.drv
  The following file would be downloaded:
 /gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10

After installing the package it is in 
/gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10


Now from a different remote machine using my substitute caching server

  ./pre-inst-env guix package -i hello 
--substitute-urls="http://guix.myserver.org; --dry-run

keeps on wanting to build the thing from scratch.

While from that same machine

   curl http://guix.myserver.org:8080/nix-cache-info
 StoreDir: /gnu/store
 WantMassQuery: 0

appears to work fine.

The response for both queries is:

Query from main server:

GET /nix-cache-info
GET /xgm6wxkja6llvkz8jck95i6cmh3c93yh.narinfo
GET /w6im8ck36hpjyh9zjmz9mr2vkppfhzid.narinfo
GET /9wq9z5jq3g691f836lhi0633g26lfl8n.narinfo

Query from remote

GET /nix-cache-info
GET /x2lhjhbxd5dqmis350gkc352v9z1pr8r.narinfo
GET /jkxa2ga4x0gqvx6x790anpwhnm7d278w.narinfo
GET /ic8sabq35jisj5wmi860d85i09qghq1x.narinfo

which suggests the files it wants to fetch are not the same, though the 
starting point 
(the checked out guix dir) should be exactly the same. The last commit is the 
same.

When I use hydra, no packages from source are built and the package
installed in exactly the same path
/gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10A

This is my reproducible build environment. I would like tho have the
caching substitute server do the right thing. What am I missing?

Pj.





Re: Importing all of ELPA?

2016-04-04 Thread Jan Nieuwenhuizen
> l...@gnu.org (Ludovic Courtès) writes:
>
>> Hence the random thought of the day: Should we try a mass import?
>
> If it's doable, let's do it.

First we take elpa, then we take...? ;-)

Greetings,
Jan

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



Re: Importing all of ELPA?

2016-04-04 Thread ng0
l...@gnu.org (Ludovic Courtès) writes:

> Hi!
>
> The NixOS release notes at
> 
> mention that all the ELPA and MELPA packages are now available, which
> suggests that a fully automated translation works OK (although metadata
> is largely incomplete at
> .)
>
> Hence the random thought of the day: Should we try a mass import?

If it's doable, let's do it.

> Maybe we should change ‘guix import REPO’ to import all of REPO, where
> applicable?
>
> Ludo’.
>



-- 
ng
personal contact: http://krosos.sdf.org
EDN: https://wiki.c3d2.de/EDN



Re: [PATCH] gnu: Add xz-java.

2016-04-04 Thread Roel Janssen

Ricardo Wurmus writes:

> Roel Janssen  writes:
>
>> One minor detail is the filename of the jar.  I renamed it to
>> "xz-1.5.jar", which I think is the "standard" file naming scheme for our
>> Java packages.
>
> I think it’s a bit ugly because we have the version number in the target
> directory already, but I realise that this is how the jar is originally
> named, so I think that’s okay.

The jar is originally named "xz.jar".  I thought other Java packages
included the version number in the filename, so I just followed this
practice.

Either "xz.jar" or "xz-1.5.jar" is fine with me.

> However, we should not hardcode the version string.  Instead we should
> do something like this (untested):
>
> #:jar-name ,(string-append "xz-" version ".jar")
>
> What do you think?  If this works for you I’ll commit your patch with
> this change.

I've just tested it and it works.  Since you're better at making a
stylistic decision, I want to leave it up to you whether you want to
append the version number or not.  Both ways are fine with me.

Thanks for your time.

Kind regards,
Roel Janssen



[PATCH] gnu: vcftools: Update to 0.1.14.

2016-04-04 Thread Roel Janssen
>From fc68a4593db1449bb8d55a4d8edee0a0fd05ee64 Mon Sep 17 00:00:00 2001
From: Roel Janssen 
Date: Mon, 4 Apr 2016 14:06:33 +0200
Subject: [PATCH] gnu: vcftools: Update to 0.1.14.

* gnu/packages/bioinformatics.scm (vcftools): Update to 0.1.14.
[home-page]: Update to new homepage.
---
 gnu/packages/bioinformatics.scm | 29 ++---
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 250deb9..ff8d961 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3692,15 +3692,15 @@ Cuffdiff or Ballgown programs.")
 (define-public vcftools
   (package
 (name "vcftools")
-(version "0.1.12b")
+(version "0.1.14")
 (source (origin
   (method url-fetch)
   (uri (string-append
-"mirror://sourceforge/vcftools/vcftools_"
+"https://github.com/vcftools/vcftools/archive/v;
  version ".tar.gz"))
   (sha256
(base32
-"148al9h7f8g8my2qdnpax51kdd2yjrivlx6frvakf4lz5r8j88wx"
+"1pvgv9vzlgny5h3ljcy7fl2iyn98v366kdxnxv0h36aycj20ai5s"
 (build-system gnu-build-system)
 (arguments
  `(#:tests? #f ; no "check" target
@@ -3710,16 +3710,23 @@ Cuffdiff or Ballgown programs.")
  (string-append "MANDIR=" (assoc-ref %outputs "out")
 "/share/man/man1"))
#:phases
-   (alist-cons-after
-'unpack 'patch-manpage-install
-(lambda _
-  (substitute* "Makefile"
-(("cp \\$\\{PREFIX\\}/cpp/vcftools.1") "cp ./cpp/vcftools.1")))
-(alist-delete 'configure %standard-phases
+   (modify-phases %standard-phases
+ (add-after 'configure 'patch-manpage-install
+   (lambda _
+ (substitute* "Makefile"
+   (("cp \\$\\{PREFIX\\}/cpp/vcftools.1") "cp ./cpp/vcftools.1"
+ (add-before 'configure 'run-autogen
+   (lambda _
+ (zero? (system* "sh" "autogen.sh")))
+(native-inputs
+ `(("autoconf" ,(autoconf-wrapper))
+   ("automake" ,automake)
+   ("libtool" ,libtool)
+   ("pkg-config" ,pkg-config)))
 (inputs
  `(("perl" ,perl)
("zlib" ,zlib)))
-(home-page "http://vcftools.sourceforge.net/;)
+(home-page "https://vcftools.github.io/;)
 (synopsis "Tools for working with VCF files")
 (description
  "VCFtools is a program package designed for working with VCF files, such
@@ -3727,7 +3734,7 @@ as those generated by the 1000 Genomes Project.  The aim of VCFtools is to
 provide easily accessible methods for working with complex genetic variation
 data in the form of VCF files.")
 ;; The license is declared as LGPLv3 in the README and
-;; at http://vcftools.sourceforge.net/license.html
+;; at https://github.com/vcftools/vcftools/blob/master/README.md
 (license license:lgpl3)))
 
 (define-public vsearch
-- 
2.5.5

Dear Guix,

I would like to update 'vcftools' to 0.1.14 (the latest release).
The project now uses Autotools, so the configure phase should be run.
In addition to that, I had to run autogen.sh to generate a configure
script.

They moved from Sourceforge to Github, so I updated the source link and
the homepage to Github.

Kind regards,
Roel Janssen


Re: bug#22693: `guix refresh -u` updates other packages with same version

2016-04-04 Thread Andy Wingo
On Mon 04 Apr 2016 12:20, iyzs...@member.fsf.org (宋文武) writes:

> How to fix this?
>
> The procedure is ‘update-package-source’ in (guix upstream).
> it find the file, then use ‘substitute’ to replace the version and
> hash.  ‘substitute’ works line-by-line, it can’t match mutiple lines.
>
> I try:
>  - use ‘package-location’ and ‘read’ to get the package object,
>but it lost all format and comments.

One option:

  1. open the source file for the package
  2. Call (read) until port-line / port-column are beyond the
 package-location of the package
  3. At that point you have the ending location of the package.

Then limit your substitute* to work within those lines.

Another option would be to extend substitute* to start on a certain
line, and to limit the number of substitutions.  That way if you start
on package-location and limit to one substitution you are likely to
update the correct version.

Andy



Re: [GNU-linux-libre] MAME emulator is giving incentive to use non-free software

2016-04-04 Thread Felipe Sanches
On Mon, Apr 4, 2016 at 12:26 AM, alírio eyng  wrote:
> Felipe Sanches:
>>I will try not to talk here any more, unless I
>>have something really new to say.
> i will probably continue replying while people are quoting me and
> making proposals or confusing general-purpose runtime dependencies
> with tools for reverse engineering without understanding the
> consequences.

MAME provides an interactive debugger that enables reverse engineering
of the loaded ROMs.

http://letshackarcadegames.com/?p=338

http://letshackarcadegames.com/wp-content/uploads/2015/09/dkong_watchpoint_barrel.png



Re: bug#22693: `guix refresh -u` updates other packages with same version

2016-04-04 Thread 宋文武
Leo Famulari  writes:

> I've noticed that `guix refresh -u` will update extraneous packages if
> they happen to have the same version and be in the same module.
>
> For example, from commit d694230ab, you can reproduce the bug:
>
> $ ./pre-inst-env guix environment guix -- ./pre-inst-env guix refresh -u 
> python-pytest
> $ git diff
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 3dd3862..ae14404 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -796,7 +796,7 @@ Python 3 support.")
>  (define-public python-pycrypto
>(package
>  (name "python-pycrypto")
> -(version "2.6.1")
> +(version "2.8.7")
>  (source
>   (origin
>(method url-fetch)
> @@ -1565,7 +1565,7 @@ code introspection, and logging.")
>  (define-public python-pytest
>(package
>  (name "python-pytest")
> -(version "2.6.1")
> +(version "2.8.7")
>  (source
>   (origin
> (method url-fetch)
> @@ -1574,7 +1574,7 @@ code introspection, and logging.")
>   version ".tar.gz"))
> (sha256
>  (base32
> - "0g2w4p0n42wvz8rq4k6gnzpkakgz3g8sfanxk8jrsra9675snkcr"))
> + "1bwb06g64x2gky8x5hcrfpg6r351xwvafimnhm5qxq7wajz8ck7w"))
> (modules '((guix build utils)))
> (snippet
>  ;; One of the tests involves the /usr directory, so it fails.
How to fix this?

The procedure is ‘update-package-source’ in (guix upstream).
it find the file, then use ‘substitute’ to replace the version and
hash.  ‘substitute’ works line-by-line, it can’t match mutiple lines.

I try:
 - use ‘package-location’ and ‘read’ to get the package object,
   but it lost all format and comments.
 - use ‘string-match’, but I have no idea how to match the whole
   package sexp.



Lightning talk at Dconf

2016-04-04 Thread Pjotr Prins
I am giving a lightning talk about GNU Guix at Dconf (Berlin, May 4-6):

  http://dconf.org/2016/schedule/

As is the case with most programming languages, D is struggling with a
packaging system (dub, see http://code.dlang.org/) and I want to
explain why a simple $HOME packaging system will do fine when more
complex deployments are handled by GNU Guix. In other words, keep it
simple and leave the complex stuff to Guix.

There is also a Birds of a Feather session on 'Building and Packaging
Systems'

  http://dconf.org/2016/talks/bof.html

Pj.



Re: [v3] Erlang

2016-04-04 Thread Pjotr Prins
On Sun, Apr 03, 2016 at 11:39:24PM -0400, Leo Famulari wrote:
> Debian's package exhibits this problem. The timestamps are generated in
> the following places in the source code. I don't know how to approach
> this problem.
> 
> lib/kernel/test/global_SUITE_data/global_trace.erl:io:format("The trace 
> was generated at ~p~n", [EndTime]),
> lib/reltool/bin/reltool.escript:lists:flatten(io_lib:format("%% ~s 
> generated at ~w ~w\n~p.\n\n",
> lib/reltool/src/reltool_server.erl:IoList = io_lib:format("%% config 
> generated at ~w ~w\n~p.\n\n",
> lib/reltool/src/reltool_target.erl:RelIoList = io_lib:format("%% rel 
> generated at ~w ~w\n~p.\n\n",
> lib/reltool/src/reltool_target.erl:ScriptIoList = io_lib:format("%% 
> script generated at ~w ~w\n~p.\n\n",
> lib/reltool/src/reltool_target.erl:AppIoList = io_lib:format("%% 
> app generated at ~w ~w\n~p.\n\n",
> lib/reltool/src/reltool_target.erl:AppIoList = io_lib:format("%% 
> app generated at ~w ~w\n~p.\n\n",
> lib/runtime_tools/src/erts_alloc_config.erl:  "generated at ~w-~2..0w-~2..0w 
> ~2..0w:~2..0w.~2..0w by "
> lib/sasl/src/systools_make.erl:   io:format(Fd, "%% script generated 
> at ~w ~w\n~p.\n",
> lib/wx/src/gen/gl.erl:%% The program object's information log is updated and 
> the program is generated at the time

If there is no easy work around I suggest simply patching them. Fortunately
the Erlang compiler does not change much at this level.

We can also contact Joe Armstrong, the author of Erlang, to discuss
this point. He appears to be approachable. I am sure he is open to
the idea of deterministic builds in a deterministic build system ;)

Pj.



Re: [PATCH] wxwidgets: Enable webview via webkit.

2016-04-04 Thread Andy Wingo
On Sun 03 Apr 2016 18:54, Efraim Flashner  writes:

> On Thu, Mar 31, 2016 at 11:20:19PM +0200, Ludovic Courtès wrote:
>> Efraim Flashner  skribis:
>> 
>> > On Thu, 31 Mar 2016 11:29:52 +0200
>> > Ricardo Wurmus  wrote:
>> >> store item   total
>> >> self
>> >> /gnu/store/js2mqmm3llc1ispcqll08c9s7nyi1i40-wxwidgets-3.0.2   1108.5  
>> >>   33.8   3.0%
>> >> /gnu/store/yj7hx4r02g8nzgfna8pwsyqynxw0fkwy-webkitgtk-2.4.10  1053.5  
>> >>  137.3  12.4%
>
> This sounds like a LGTM to me, and then we'll work on cutting down on
> duplicates among the dependancies.

WebKitGTK+ 2.4 is old and has security vulnerabilities; see
https://blogs.gnome.org/mcatanzaro/2016/03/30/positive-progress-on-webkitgtk-security-updates/.
Is there no upstream update that uses more recent WebKitGTK+?

Andy