Re: 01/02: gnu: gnupg: Update to 2.1.17.

2016-12-21 Thread Mark H Weaver
mba...@fastmail.com (Marius Bakke) writes:

> mbakke pushed a commit to branch master
> in repository guix.
>
> commit 06fcd4a89ebbdf589fb49d860406e5aa7eb9bd75
> Author: Marius Bakke 
> Date:   Tue Dec 20 15:48:24 2016 +0100
>
> gnu: gnupg: Update to 2.1.17.
> 
> * gnu/packages/gnupg.scm (gnupg): Update to 2.1.17.

Unfortunately, this new version of gnupg consistently fails its test
suite on every system we support except for x86_64:

  https://hydra.gnu.org/eval/109403?filter=gnupg
  https://hydra.gnu.org/build/1734588(i686)
  https://hydra.gnu.org/build/1735072(armhf)
  https://hydra.gnu.org/build/1735062(mips64el)

The error is always the same:

--8<---cut here---start->8---
make  check-local
make[3]: Entering directory 
'/tmp/nix-build-gnupg-2.1.17.drv-0/gnupg-2.1.17/tests/gpgscm'
EXEEXT= GPGSCM_PATH=. \
./gpgscm ./t-child.scm
make[3]: *** [Makefile:838: check-local] Segmentation fault
--8<---cut here---end--->8---

If you can't find a fix quickly, please revert this commit, because
several very important packages depend on it.

Thanks,
  Mark



[PATCH] gnu: Add wwwoffle.

2016-12-21 Thread Bake Timmons
* gnu/packages/web.scm (wwwoffle): New variable.
---
 gnu/packages/web.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 184869200..c4e716c2b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -668,6 +668,34 @@ server).  It was primarily designed to be used by one 
person or a small group
 of people.")
 (license l:expat)))
 
+(define-public wwwoffle
+  (package
+(name "wwwoffle")
+(version "2.9j")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://www.gedanken.org.uk/software/;
+  "wwwoffle/download/wwwoffle-"
+  version ".tgz"))
+  (sha256
+   (base32
+"1ihil1xq9dp21hf108khxbw6f3baq0w5c0j3af038y6lkmad4vdi"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags '("--with-gnutls")
+   #:tests? #f))
+(native-inputs `(("flex" ,flex)))
+(inputs `(("gnutls" ,gnutls)
+  ("libcrypt", libgcrypt)))
+(home-page "http://www.gedanken.org.uk/software/wwwoffle/;)
+(synopsis "Caching web proxy optimized for intermittent internet links")
+(description "WWWOFFLE is a proxy web server that is especially good for
+intermittent internet links.  It can cache HTTP, HTTPS, FTP, and finger
+protocols, and supports browsing and requesting pages while offline, indexing,
+modifying pages and incoming and outgoing headers, monitoring pages for
+changes, and much more.")
+(license l:gpl2+)))
+
 (define-public libyaml
   (package
 (name "libyaml")
-- 
2.11.0




Re: [PATCH] gnu: Fix load-extension path in packaging of guile-ncurses.

2016-12-21 Thread Tobias Geerinckx-Rice
John, Danny,

[Any exasperation is due only to the sustained level of FUD I encounter
about the Guix/GNU changelog format, and not aimed at John.]

On 20/12/16 12:03, John Darrington wrote:
> Sure (I would like to see a convention where such explanations are 
> put in the commit messaage, but I have previously been outvoted on 
> that issue).

I don't think so.

1. What was ‘outvoted’ (with solid argumentation) was hiding comments
documenting code itself in commit messages, when they would do more
good as, well, comments.

2. The Guix commit log has plenty of concise explanations for why code
was *changed*. I See 64b5e41 for a random example. If that guy can get
away with it...

Most People™ badly overdo #2 when they should do #1 (consider the
average *Hub pull request). The opposite is less common.

> On Wed, Dec 21, 2016 at 09:36:56AM +0100, Danny Milosavljevic wrote:
>> No, please don't put explanations into the commit message. But do 
>> put them into the source code as a comment.

I'd just finished writing the exact same e-mail as Danny — almost to the
sentence — when that arrived. So... it must be right! :-)

> That approach can work sometimes, but more often it is a 
> non-starter.

[Examples paraphrased for length:]
> 1. ;; This variable used to be called "bar" but we changed it
> 2. ;; There used to be some code here but we deleted it
> 3. A new variable was introduced in places thoughout the code
> 4. ;; Fred typed 'xyz' when he ought to have put 'abc'

Sorry, but the first three examples are silly. :-)

Deliberately silly, I'm sure, but still these are strawmen that no-one
proposed. On the contrary: examples 1 to 3 are exactly what the current
commit log documents with tedious precision.

That leaves bugfixes.

If the bug is waiting to happen again (and again...), putting a warning
to future readers in a comment might be appropriate. No-one will spot it
in a commit message. (Of course, re-writing the misleading/dangerous
code would be the best solution.)

If the fix is trivial, as in this example, the diff usually speaks for
itself. In all other cases, a short note in the commit message is fine.
This seems to be standard policy for CVEs. So I really don't understand
your complaint.

> But nobody except me will care about bugs in the function which have
> been fixed.

Exactly! In this patch, you're replacing buggy (?) code with shiny code.
That shouldn't take more than ~50 characters to note.

> On Wed, Dec 21, 2016 at 09:36:56AM +0100, Danny Milosavljevic wrote:
>> I'm also working on other projects, some of which do what you 
>> propose. What I often end up having to do there is do git blame, 
>> then git log for each line, in order to find out why the source 
>> code does what it does. Let's not do that here.

+11, unfortunately from experience.

> That is what git blame is for.  Be thankful for it!

No and God no.

That is exactly what ‘git blame’ is not for.

Code itself should be documented in-line. Not in a commit log meant for
documenting changes, that breaks as soon as someone hits C-M-q.

> I hope this explains why putting history in comments is harmful.

It does! But this is not something anyone here suggested.

> Having it in the commit message would certainly have avoided me 
> having to explain the situation to Mark too.

Perhaps. I doubt it. I can't speak for Mark, but most confusion
seemed to stem from the commit message's accuracy, not its length.

But yes, it could have been longer — and a comment :-)

Kind regards,

T G-R

PS: On 21/12/16 10:56, John Darrington wrote:
> Hi Danny,
> 
> A small request: Can you please fold the text of your email to ~80 
> characters.  It's very hard to read otherwise.

FWIW, your replies are equally hard to read (and even harder to reply
to) because of the unconventional indentation. It certainly confuses
Thunderbird, which is easily confused.



signature.asc
Description: OpenPGP digital signature


Re: Emacs-Guix released outside from Guix

2016-12-21 Thread myglc2
On 12/17/2016 at 12:13 Alex Kost writes:

> I have committed 'emacs-guix' package, so after "guix pull" or if you
> use the git checkout, you may try it with:
>
>   guix package -i emacs-guix

Hi Alex,

Tried this on GuixSD 0.12.0 from git and I dig it!

When I google 'guix emacs github' the top hit is ...

GitHub - alezost/guix.el: (OBSOLETE) Emacs interface for Guix ...

... Which is cool, but '(OBSOLETE)' is odd. Maybe it will fix itself?

Have you decided re feedback/support? github issues? mailing list?

Many thanks for continuing to make emacs-guix cooler and cooler!

-George




Re: No more space left on device issue

2016-12-21 Thread Tobias Geerinckx-Rice
Maxim,

On 21/12/16 22:48, Ludovic Courtès wrote:
> Maxim Cournoyer  skribis:
>> What I don't understand is why the all the inodes are used at only 71%
>> of disk usage (11GB left!). There's not much else than Guix there; I
>> have a documents folder (700 MB with 4k files) and some git
>> repositories (2.6 GB, 38k files), but that's it.
> 
> Not sure, I don’t know of inode usage profiling tools.

There's always ‘du --inode’ (in combination with ‘-s’ if needed) to
quickly point the finger o' blame in the right direction.

Kind regards,

T G-R



signature.asc
Description: OpenPGP digital signature


Re: GNU Guix & GuixSD 0.12.0 released

2016-12-21 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> Hello Guix!
>
> Ricardo Wurmus  skribis:
>
>> We are pleased to announce the release of GNU Guix & GuixSD 0.12.0,
>> representing 3,572 commits by 76 people over a little more than 4 months.
>
> Woohoo!  Congrats everyone!  \o/
>
> A big big thanks to you, Ricardo!
>
> I’m really grateful that you made this release, even though I feel a bit
> guilty for all the bumps on the road and the imprecision of
> .

It’s all good.  Thank you so much for all the support and for your
patience!

> I think next time we should rely more on continuous integration (like
> John suggested last week), and simply upload all the files once there’s
> a green light showing there.  And surely there are things to be
> automated here and there.

Agreed.  I also took some notes, and I hope they can lead to a more
readily executable release process in addition to the script snippets in
release.org.

-- 
Ricardo
  
  GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
  http://elephly.net




Re: No more space left on device issue

2016-12-21 Thread Ludovic Courtès
Hello Maxim!

Maxim Cournoyer  skribis:

> l...@gnu.org (Ludovic Courtès) writes:
>
>> Indeed, it’s low on free inodes.  :-)
>>
>> That said, 37 G is not that much (my laptop’s root partition, which
>> includes the store, is 64 G, and I expect most users are in this
>> ballpark).
>
> I understand that my partition size is not very large; This is a 2011
> era laptop with a 64 GB SSD. Although quite dated and behind todays'
> standard, it's useful in exposing the limits of the software faster ;).

Right; what I meant is that 37 G shouldn’t cause any problems because
it’s relatively small.

> What I don't understand is why the all the inodes are used at only 71%
> of disk usage (11GB left!). There's not much else than Guix there; I
> have a documents folder (700 MB with 4k files) and some git
> repositories (2.6 GB, 38k files), but that's it.

Not sure, I don’t know of inode usage profiling tools.

Does running “guix gc” help?

> Assuming that the problem is related to the Guix store being very
> file/link intensive and that the Hydra servers deplete their inodes at a
> similar ratio, that would lead to their 1.5 TB EXT4 filesystem being
> more like 1 TB of usable storage.

[...]

> I guess we can't really compare ext3 and ext4. We'd need a filesystem
> versed person to shed some light here. I'd be more interested to know if
> the Hydra servers can (nearly) max their ext4 filesystem without running
> out of inodes.

FWIW, on hydra.gnu.org we have this:

--8<---cut here---start->8---
$ df -i /gnu/store
FilesystemInodes   IUsed   IFree IUse% Mounted on
/dev/xvda1   98304000 6864127 914398737% /
$ df -h /gnu/store
FilesystemSize  Used Avail Use% Mounted on
/dev/xvda11.5T  521G  881G  38% /
--8<---cut here---end--->8---

On mirror.hydra.gnu.org:

--8<---cut here---start->8---
$ df -i /gnu/store
Filesystem   InodesIUsedIFree IUse% Mounted on
/dev/mapper/vg0-store 100663296 10988332 89674964   11% /gnu
$ df -h /gnu/store
Filesystem Size  Used Avail Use% Mounted on
/dev/mapper/vg0-store  1.5T  1.4T  103G  93% /gnu
--8<---cut here---end--->8---

Ludo’.



'mc' package needs some fixes

2016-12-21 Thread ng0
Is someone interested in fixing our `mc' package? It is
functional, but some parts of it are not functional for Guix. Grep
for "/bin/" in the directory of $(guix build mc) shows results
which assume the existence of /bin/ (not
/gnu/store/.../bin/$binary, where I don't mean shebangs but
further down in the scripts.
-- 
♥Ⓐ  ng0  | PGP keys and more: https://n0is.noblogs.org/
 |http://ng0.chaosnet.org



Re: GNU Guix & GuixSD 0.12.0 released

2016-12-21 Thread Ludovic Courtès
Hello Guix!

Ricardo Wurmus  skribis:

> We are pleased to announce the release of GNU Guix & GuixSD 0.12.0,
> representing 3,572 commits by 76 people over a little more than 4 months.

Woohoo!  Congrats everyone!  \o/

A big big thanks to you, Ricardo!

I’m really grateful that you made this release, even though I feel a bit
guilty for all the bumps on the road and the imprecision of
.

I think next time we should rely more on continuous integration (like
John suggested last week), and simply upload all the files once there’s
a green light showing there.  And surely there are things to be
automated here and there.

Anyway, I’m super happy for this new release!  :-)

Ludo’.



Re: 01/01: gnu: curl: Update replacement to 7.52.0 [fixes CVE-2016-{9586, 9952, 9953}].

2016-12-21 Thread Marius Bakke
Leo Famulari  writes:

> On Wed, Dec 21, 2016 at 02:03:21PM +, Marius Bakke wrote:
>> mbakke pushed a commit to branch master
>> in repository guix.
>> 
>> commit 42366b35c3f9f8dc8b059d3369b8196a4b832c18
>> Author: Marius Bakke 
>> Date:   Wed Dec 21 14:56:34 2016 +0100
>> 
>> gnu: curl: Update replacement to 7.52.0 [fixes 
>> CVE-2016-{9586,9952,9953}].
>> 
>> * gnu/packages/curl.scm (curl)[replacement]: Update to 7.52.0.
>> (curl-7.51.0): Replace with ...
>> (curl-7.52.0): ... this.
>
> ng0 pointed out this message from the curl maintainers:
>
> "Attention! We will release a patch update within a few days to fix a
> serious security problem found in curl 7.52.0. You may consider holding
> off until then."
>
> https://curl.haxx.se/download.html

Thanks for catching that! I think that message must have appeared after
I downloaded it from there, difficult to miss that notice.

The page was updated about 25 minutes after the commit was pushed:
$ curl -v https://curl.haxx.se/download.html >/dev/null
[...]
< Last-Modified: Wed, 21 Dec 2016 14:28:41 GMT

It was reverted around 16:52 UTC. I hope those who upgraded in between
those five hours reads this list!


signature.asc
Description: PGP signature


Re: [PATCH 6/6] gnu: Add grub-efi.

2016-12-21 Thread Danny Milosavljevic
Hi,

efibootmgr is trying to add an entry for Linux to the EFI bootmanager and set 
the boot priority order. It won't usefully autoboot without it. That said, 
depending on how good the UEFI implementation on your laptop is you might be 
able to hit a function key on POST and select the image file manually. (There 
has to be a FAT partition which is supposed to contain all the things that the 
bootloader can boot)

The problem is when you boot in legacy BIOS mode you don't have UEFI 
functionality available, including the calls that would modify the boot order 
and boot menu.

The best way would to also boot the GuixSD USB image via UEFI and not MBR. I 
think all you need for that is the image file on the USB stick on a FAT 
partition under \EFI\BOOT\BOOTX64.EFI . So it should be easy to have a dual ISO 
image.

That said, I only have Libreboot personally so I can't help much with it. I 
just had to fix UEFI problems for a customer of mine (two months ago) so it's 
still fresh in my mind.

Note that many UEFI setups have a "Lock Boot Order" option. Make sure it's not 
locked, otherwise it doesn't matter what efibootmgr does - it will just be 
cleared on next reboot.



Re: No more space left on device issue

2016-12-21 Thread Maxim Cournoyer
Hi Ludovic!

l...@gnu.org (Ludovic Courtès) writes:

> Indeed, it’s low on free inodes.  :-)
>
> That said, 37 G is not that much (my laptop’s root partition, which
> includes the store, is 64 G, and I expect most users are in this
> ballpark).

I understand that my partition size is not very large; This is a 2011
era laptop with a 64 GB SSD. Although quite dated and behind todays'
standard, it's useful in exposing the limits of the software faster ;).

What I don't understand is why the all the inodes are used at only 71%
of disk usage (11GB left!). There's not much else than Guix there; I
have a documents folder (700 MB with 4k files) and some git
repositories (2.6 GB, 38k files), but that's it.

Assuming that the problem is related to the Guix store being very
file/link intensive and that the Hydra servers deplete their inodes at a
similar ratio, that would lead to their 1.5 TB EXT4 filesystem being
more like 1 TB of usable storage.

> My root partition has different settings though (it’s really ext3):
>
> $ sudo tune2fs -l /dev/sda2
> tune2fs 1.42.13 (17-May-2015)
> Filesystem volume name:   root
> Last mounted on:  /
> Filesystem UUID:  c5307e6b-d1ba-499d-89c5-cb0b143577c4
> Filesystem magic number:  0xEF53
> Filesystem revision #:1 (dynamic)
> Filesystem features:  has_journal ext_attr resize_inode dir_index 
> filetype needs_recovery sparse_super large_file
>
> Could it be that one of these explains the difference?
>

I guess we can't really compare ext3 and ext4. We'd need a filesystem
versed person to shed some light here. I'd be more interested to know if
the Hydra servers can (nearly) max their ext4 filesystem without running
out of inodes.

Thanks for your reply,

Maxim



GNU Guix & GuixSD 0.12.0 released

2016-12-21 Thread Ricardo Wurmus
We are pleased to announce the release of GNU Guix & GuixSD 0.12.0,
representing 3,572 commits by 76 people over a little more than 4 months.


• About

  GNU Guix is a transactional package manager for the GNU system.
  The Guix System Distribution, GuixSD, is an advanced distribution
  of the GNU system.

  In addition to standard package management features, Guix supports
  transactional upgrades and roll-backs, unprivileged package
  management, and per-user profiles.  GuixSD offers a declarative
  approach to operating system configuration management and is highly
  hackable.  Guix uses low-level mechanisms from the Nix package
  manager, except that packages are defined as native Guile modules,
  using extensions to the Scheme language.

  GuixSD uses the Linux-Libre kernel and the GNU Shepherd init system.
  At this stage it can be used on an i686 or x86_64 machine.

  It is also possible to use Guix on top of an already installed
  GNU/Linux system, including on mips64el and armv7.

  https://www.gnu.org/software/guix/

• Download

  Here are the compressed sources and a GPG detached signature[*]:
ftp://alpha.gnu.org/gnu/guix/guix-0.12.0.tar.gz
ftp://alpha.gnu.org/gnu/guix/guix-0.12.0.tar.gz.sig

  Here are the bootable USB installation images and their signatures[*]:
ftp://alpha.gnu.org/gnu/guix/guixsd-usb-install-0.12.0.i686-linux.xz
ftp://alpha.gnu.org/gnu/guix/guixsd-usb-install-0.12.0.i686-linux.xz.sig
ftp://alpha.gnu.org/gnu/guix/guixsd-usb-install-0.12.0.x86_64-linux.xz
ftp://alpha.gnu.org/gnu/guix/guixsd-usb-install-0.12.0.x86_64-linux.xz.sig

  Here are the binary tarballs and their signatures[*]:
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.i686-linux.tar.xz
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.i686-linux.tar.xz.sig
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.x86_64-linux.tar.xz
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.x86_64-linux.tar.xz.sig
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.mips64el-linux.tar.xz
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.mips64el-linux.tar.xz.sig
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.armhf-linux.tar.xz
ftp://alpha.gnu.org/gnu/guix/guix-binary-0.12.0.armhf-linux.tar.xz.sig

  Use a mirror for higher download bandwidth:
http://www.gnu.org/order/ftp.html
  
  Here are the SHA1 checksums:
  
  2189ab3a658040e51b036b1bca11594c3d6e4966  guix-0.12.0.tar.gz
  5d39aafd9a45b756d419b1c4906040452b8b35c9  
guix-binary-0.12.0.armhf-linux.tar.xz
  a6b02939e7e41676c1e6feaa86f046917fc809b3  guix-binary-0.12.0.i686-linux.tar.xz
  f359d43be25cb85fbee452ebf5b07927dadc6448  
guix-binary-0.12.0.mips64el-linux.tar.xz
  786c2a5228d0b3ff57ea2f4410076a28ba650e9c  
guix-binary-0.12.0.x86_64-linux.tar.xz
  b24071f939818ff9885e836d7b8757b8b3752a2e  
guixsd-usb-install-0.12.0.i686-linux.xz
  b96554363942c9d61691893286f6fd89a5e1250b  
guixsd-usb-install-0.12.0.x86_64-linux.xz
  
  [*] Use a .sig file to verify that the corresponding file (without the
  .sig suffix) is intact.  First, be sure to download both the .sig file
  and the corresponding tarball.  Then, run a command like this:
  
gpg --verify guix-0.12.0.tar.gz.sig
  
  If that command fails because you don't have the required public key,
  then run this command to import it:
  
gpg --keyserver keys.gnupg.net --recv-keys 
BCA689B636553801C3C62150197A5888235FACAC
  
  and rerun the 'gpg --verify' command.
  
  This release was bootstrapped with the following tools:
Autoconf 2.69
Automake 1.15
Makeinfo 6.3
Help2man 1.47.4

  To install the Guix System Distribution, please see “System
  Installation” in the manual.  To install Guix on a running system,
  see “Installation” in the manual.

• Changes since version 0.11.0 (excerpt from the NEWS file)

  ** Package management
  
  *** Guix can now be built with Guile 2.1/2.2
  *** New ‘--with-graft’ package transformation option
  *** Grafting is now faster than before
  *** The ‘replacement’ of a package can now have a different name
  *** ‘guix-daemon’ offloading support now uses Guile-SSH
  *** New ‘guix offload test’ command
  *** New updaters for ‘guix refresh’: ‘kernel.org’, ‘cpan’, ‘crates’
  *** ‘guix refresh --list-updaters’ shows updater coverage
  *** New ‘cargo-build-system’ and importer for Rust packages
  *** New ‘asdf-build-system’ for Common Lisp packages
  *** Python build system now uses setuptools by default
  *** New updater for CPAN packages
  *** Added ‘--recursive’ option for importer for the CRAN/Bioconductor importer
  *** New d3.js backend for ‘guix graph’
  *** ‘guix package’ now displays generation diffs
  *** New services
  New services for CUPS printing, SPICE vdagent, SDDM, a login service,
  kmscon service, opensmtpd mail service, git service, wpa-supplicant
  service, rottlog, OpenSSH, Cuirass, and NFS related services.
  *** New arm-none-eabi cross-compiler toolchains
  *** New 'guix system' actions: ‘switch-generation’ and 

Re: GuixSD not build

2016-12-21 Thread Daniel Pimentel (d4n1)
Today I installed the GuixSD again and it works! The problem was with version 
0.11 when it not build some packages. But now all work well.

Thanks and I'm sorry for it.

Sorry for image size.On Dec 20, 2016 11:05 AM, l...@gnu.org wrote:
>
> Hi Daniel, 
>
> "Daniel Pimentel (d4n1)"  skribis: 
>
> > I tried install guixsd recently and all time there are errors about build 
> > (printscreen attached). I tried with: 
> > -guix system init ... 
> > -guix system init --fallback ... 
> > 
> > Note: my network works. I tried with desktop.scm and 
> > lightweight-desktop.scm too. 
>
> Looks like you sent too big an attachment.  Could you shrink it so that 
> it takes at most 500KB? 
>
> TIA! 
>
> Ludo’. 


[PATCH 2/3] gnu: gnurl: Make tests more verbose.

2016-12-21 Thread ng0
* gnu/packages/gnunet.scm (gnurl): Make tests more verbose.
Move [arguments](autoconf) phase into ...
new [arguments](check) phase.
[arguments](disable-test1026) phase: likewise.
---
 gnu/packages/gnunet.scm | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 5780f5e25..941e357ce 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -205,16 +205,17 @@ and support for SSL3 and TLS.")
   ;; Clear artifacts left (shebangs) from release preparation.
   (lambda _
 (zero? (system* "./buildconf"
-(add-before 'check 'disable-test1026
+(replace 'check
   (lambda _
 ;; It is unclear why test1026 fails, however the content of it
 ;; suggests that it is not vital for gnurl.
 (delete-file "tests/data/test1026")
-#t))
-(add-before 'check 'patch-runtests
-  (lambda _
+
 (substitute* "tests/runtests.pl"
   (("/bin/sh") (which "sh")))
+
+;; Make test output more verbose.
+(zero? (system* "make" "-C" "tests" "test"))
 #t)
(synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset 
of cURL")
(description
-- 
2.11.0




[PATCH 3/3] gnu: gnurl: Split man pages to doc output.

2016-12-21 Thread ng0
* gnu/packages/gnunet.scm (gnurl): Split the man pages into the doc output.
[arguments](phases)(move-man3-pages): New phase.
---
 gnu/packages/gnunet.scm | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 941e357ce..4e0e5c70a 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -173,6 +173,8 @@ and support for SSL3 and TLS.")
  (base32
   "0kbm73c7xl7drp4wvpg7919m8nvv0bf5q95pdacz6cpb2awwr3hb"
(build-system gnu-build-system)
+   (outputs '("out"
+  "doc")) ; 1.5 MiB of man3 pages
(inputs `(("gnutls" ,gnutls)
  ("libidn" ,libidn)
  ("zlib" ,zlib)))
@@ -201,6 +203,15 @@ and support for SSL3 and TLS.")
   #:phases
   ;; We have to patch runtests.pl in tests/ directory
   (modify-phases %standard-phases
+(add-after 'install 'move-man3-pages
+  (lambda* (#:key outputs #:allow-other-keys)
+;; Move section 3 man pages to "doc".
+(let ((out (assoc-ref outputs "out"))
+  (doc (assoc-ref outputs "doc")))
+  (mkdir-p (string-append doc "/share/man"))
+  (rename-file (string-append out "/share/man/man3")
+   (string-append doc "/share/man/man3"))
+  #t)))
 (add-before 'configure 'autoconf
   ;; Clear artifacts left (shebangs) from release preparation.
   (lambda _
-- 
2.11.0




[PATCH 1/3] gnu: gnurl: Update to 7.52.0 [fixes CVE-2016-{9586, 9952, 9953}].

2016-12-21 Thread ng0
* gnu/packages/gnunet.scm (gnurl): Update to 7.52.0.
* [arguments]: Add phases to disable failing test test1026,
and re-run the bootstrap to correct distribution mistakes.
---
 gnu/packages/gnunet.scm | 21 +
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 5d1baa834..5780f5e25 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015 Efraim Flashner 
 ;;; Copyright © 2016 Ricardo Wurmus 
 ;;; Copyright © 2016 Mark H Weaver 
-;;; Copyright © 2016 ng0 
+;;; Copyright © 2016 ng0 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -162,7 +162,7 @@ and support for SSL3 and TLS.")
 (define-public gnurl
   (package
(name "gnurl")
-   (version "7.51.0")
+   (version "7.52.0")
(source (origin
 (method url-fetch)
 (uri (let ((version-with-underscores
@@ -171,13 +171,16 @@ and support for SSL3 and TLS.")
   name "-" version-with-underscores 
".tar.bz2")))
 (sha256
  (base32
-  "1rgl4agrzghvyfz1afk1p5ryq4b9cz28lavx8ikrav6aiv9h00ig"
+  "0kbm73c7xl7drp4wvpg7919m8nvv0bf5q95pdacz6cpb2awwr3hb"
(build-system gnu-build-system)
(inputs `(("gnutls" ,gnutls)
  ("libidn" ,libidn)
  ("zlib" ,zlib)))
(native-inputs
-`(("groff" ,groff)
+`(("autoconf" ,autoconf)
+  ("automake" ,automake)
+  ("libtool" ,libtool)
+  ("groff" ,groff)
   ("perl" ,perl)
   ("pkg-config" ,pkg-config)
   ("python" ,python-2)))
@@ -198,6 +201,16 @@ and support for SSL3 and TLS.")
   #:phases
   ;; We have to patch runtests.pl in tests/ directory
   (modify-phases %standard-phases
+(add-before 'configure 'autoconf
+  ;; Clear artifacts left (shebangs) from release preparation.
+  (lambda _
+(zero? (system* "./buildconf"
+(add-before 'check 'disable-test1026
+  (lambda _
+;; It is unclear why test1026 fails, however the content of it
+;; suggests that it is not vital for gnurl.
+(delete-file "tests/data/test1026")
+#t))
 (add-before 'check 'patch-runtests
   (lambda _
 (substitute* "tests/runtests.pl"
-- 
2.11.0




gnurl: update and various changes to package definition

2016-12-21 Thread ng0
[PATCH 1/3] gnu: gnurl: Update to 7.52.0 [fixes CVE.

I'm aware of the warning the cURL maintainers posted and will make the gnurl 
release as soon as they release the version of cURL fixing whatever unknown 
security issue they have.

[PATCH 2/3] gnu: gnurl: Make tests more verbose.

Compare to curl.scm

[PATCH 3/3] gnu: gnurl: Split man pages to doc output.

Man pages are 1.5 MB big. Split it.



Re: 01/01: gnu: curl: Update replacement to 7.52.0 [fixes CVE-2016-{9586, 9952, 9953}].

2016-12-21 Thread Leo Famulari
On Wed, Dec 21, 2016 at 02:03:21PM +, Marius Bakke wrote:
> mbakke pushed a commit to branch master
> in repository guix.
> 
> commit 42366b35c3f9f8dc8b059d3369b8196a4b832c18
> Author: Marius Bakke 
> Date:   Wed Dec 21 14:56:34 2016 +0100
> 
> gnu: curl: Update replacement to 7.52.0 [fixes CVE-2016-{9586,9952,9953}].
> 
> * gnu/packages/curl.scm (curl)[replacement]: Update to 7.52.0.
> (curl-7.51.0): Replace with ...
> (curl-7.52.0): ... this.

ng0 pointed out this message from the curl maintainers:

"Attention! We will release a patch update within a few days to fix a
serious security problem found in curl 7.52.0. You may consider holding
off until then."

https://curl.haxx.se/download.html

So, I reverted the update for now. It seems like this new bug is more
serious than the security bug fixed in 7.52.0, CVE-2016-9586: printf
floating point buffer overflow. The other two named bugs fixed in 7.52.0
only manifest on Windows CE with the schannel TLS implementation, if I
understand correctly.



Re: [PATCH] build coqide

2016-12-21 Thread Ludovic Courtès
Hello!

julien lepiller  skribis:

>> Is there additional benefit to the ocaml search dir OCAMLPATH?  I would
>> expect coq's build system to be able to find lablgtk from OCAMLPATH
>> without needing to pass the configure flags.
> oh ! how could I not see it... OCAMLPATH is already defined
> differently by the ocaml package... I guess there was an update I
> didn't see since I wrote these patches (or maybe I'm just blind). Here
> is a a new version of the patches. I added ocaml-findlib to the
> native-inputs of coq so its configure script can find lablgtk without
> the option. and lablgtk doesn't need to be installed in site-lib
> anymore. Is this correct, or should the library be installed in
> site-lib, and this directory added to OCAMLPATH?
>
> By the way, is there someone working on an ocaml-build-system?

Not yet, but you can help!  :-)

> From 2c7e43ffd0db19362756fe7fa848482c61b263d6 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller 
> Date: Tue, 13 Dec 2016 11:21:33 +0100
> Subject: [PATCH 1/3] gnu: lablgtk: Update to 2.18.5
>
> * gnu/packages/ocaml.scm (lablgtk): Update to 2.18.5.

[...]

> From ecb9fb669c8c93c35b7efd0f19b550a942234ad6 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller 
> Date: Tue, 13 Dec 2016 11:21:51 +0100
> Subject: [PATCH 2/3] gnu: lablgtk: use ocamlfind in installation
>
> * gnu/packages/ocaml.scm (lablgtk): Use ocamlfind in installation.

[...]

> From 330fa542eebed022b4e99abe69e593b5a8f5c4f5 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller 
> Date: Tue, 13 Dec 2016 11:22:06 +0100
> Subject: [PATCH 3/3] gnu: coq: Build coqide
>
> * gnu/packages/ocaml.scm (coq): Build coqide.

Pushed all 3 patches, thanks!

Ludo’.



Re: 03/03: gnu: nss, nss-certs: Update to 3.27.2.

2016-12-21 Thread Leo Famulari
On Wed, Dec 21, 2016 at 01:09:38AM -0500, Leo Famulari wrote:
> At least some of these failures are caused by an expired test
> certificate:
> 
> https://bugzilla.mozilla.org/show_bug.cgi?id=1323978
> 
> This breaks compilation of NSS 3.27.1 and 3.27.2 across all of our
> architectures.

With the attached patch, I can build NSS 3.27.1 on x86_64. If we decide
to use this patch, let's build it on its own Hydra branch, because I
suspect there is some non-determinism in the test suite, and I'd rather
not make everyone try building it themselves if it fails on Hydra for
some reason.

By the way, Git shows the upstream patch as binary data, but if you
apply the attached patch to your work tree, there is plain text
annotation you can use to reproduce it. I recreate the annotation here:

Update expired test certificate:
https://bugzilla.mozilla.org/show_bug.cgi?id=1323978

Patch copied from upstream source repository:
https://hg.mozilla.org/projects/nss/rev/03429dfa184e

# HG changeset patch
# User Kai Engert 
# Date 1481895886 -3600
#  Fri Dec 16 14:44:46 2016 +0100
# Node ID 03429dfa184ec0a11bda4e35e6621ee2ab16a928
# Parent  5e7b5e3d301d7c3395ee982e8f082b0babc333c7
Bug 1323978, The PayPalEE test cert has expired, r=bustage

diff -r 5e7b5e3d301d -r 03429dfa184e tests/libpkix/certs/PayPalEE.cert
--- a/nss/tests/libpkix/certs/PayPalEE.cert Fri Dec 16 13:41:23 2016 +0100
+++ b/nss/tests/libpkix/certs/PayPalEE.cert Fri Dec 16 14:44:46 2016 +0100
@@ -1,8 +1,9 @@
[... binary data ...]
From e19cd9120b7e62f88dd5b0a1fae099d1e01650eb Mon Sep 17 00:00:00 2001
From: Leo Famulari 
Date: Tue, 20 Dec 2016 21:29:19 -0500
Subject: [PATCH] gnu: nss: Fix build failure caused by expired test
 certificate.

* gnu/packages/patches/nss-update-expired-test-cert.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnuzilla.scm (nss)[source]: Use it.
---
 gnu/local.mk|   1 +
 gnu/packages/gnuzilla.scm   |   3 ++-
 gnu/packages/patches/nss-update-expired-test-cert.patch | Bin 0 -> 3403 bytes
 3 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/nss-update-expired-test-cert.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 3a56c840b..77d8914bd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -741,6 +741,7 @@ dist_patch_DATA =   
\
   %D%/packages/patches/ninja-zero-mtime.patch  \
   %D%/packages/patches/node-9077.patch \
   %D%/packages/patches/nss-pkgconfig.patch \
+  %D%/packages/patches/nss-update-expired-test-cert.patch  \
   %D%/packages/patches/nvi-assume-preserve-path.patch  \
   %D%/packages/patches/nvi-dbpagesize-binpower.patch   \
   %D%/packages/patches/nvi-db4.patch   \
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 07ed2af0b..7439af131 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -203,7 +203,8 @@ in the Mozilla clients.")
(base32
 "0sraxk26swlgl7rl742rkfp5k251v5z3lqw9k8ikin0cjfhkfdpx"))
   ;; Create nss.pc and nss-config.
-  (patches (search-patches "nss-pkgconfig.patch"
+  (patches (search-patches "nss-pkgconfig.patch"
+   "nss-update-expired-test-cert.patch"
 (build-system gnu-build-system)
 (outputs '("out" "bin"))
 (arguments
diff --git a/gnu/packages/patches/nss-update-expired-test-cert.patch 
b/gnu/packages/patches/nss-update-expired-test-cert.patch
new file mode 100644
index 
..4e7cd6eda46e7b016c92561e0651ade7dc90c91b
GIT binary patch
literal 3403
zcmdT`3se)?8P0?dBm#=zrAKspAe5NoP7*>uP{Knaf{P-eD65mnBpC=vm`Mn@6(zd(
z0&%TxMX4xVA6+Z8zHoiZ3S!p>tBY0<#kykG7YMp2bOuDR?b>CcLk~8`5|KI=K
z@B9Dz-6WYcs0D}dY%@XP8rXtU78t`x3!x=2+7ZgrTP$WOR4i6ob@K>=0TpGKy5A;J
zC#Li!+Z@^>!gRzqLKBWiCDM>!1&^12S};9~nal*8R7;vNV5^z3kT{wFQzk2k;V_At
zO%!1IA)>5Mv4-Xc$OGQWs(q$7DW^?oW~mht0ush9yRK43b(*!
zW=VQ5iNZ;E5=y`^w1c$3Vd*G=N2FVcY>@^ZO9wi7?Vmvf^a-UA;A?|ppdA68dcMSQY@GkY1P4RsT>VY
z)8ll8oCMSm6Z5`4upXs)sx}%X!_`*Gg6e2iG=x?Q3&{@_W9;7h?Mg$54TRd9PGpOj
zdQ;+_HAIZb6AFbe+C@Cm5D+JbD(ma-9S7RrzhM5Y*R^1o)(w>6!y5l1Ly1ruN416Y=ZwXHaUU-*?VjX+C=^>
zHaH435Ly#yBv8a1^kWb^@%tpAMmW|);qU4K^If{Tax_yG5i$t)bl1hbdl*h2O^
zAxuW(EpZNf9<2m9X4Jrx3)rFIy?KHhSq^rnAB!I63E6fCVtseM9Czw$&*TZe{nEDn
zb;FJ!LxHD+Z>6e*Rdyif9y0b-8Q8##2&8qqLrtL}0NeIUFU(io~oHpx9f5o7n
zw%`Ga>c}Zu553yrdwADhoBbMm*t--|IKkCG|58Hz<6{zkXy(Pi|juTUc_4Ibh
zYw^l8matF0s&0M0$9VykdC){$<0R{Ls8@wMjAlo$-m{jZp!=|EUTyX#(Weo6fKj

Re: [PATCH] gnu: Add php-hello-world.

2016-12-21 Thread Ludovic Courtès
Hi Hartmut!

Hartmut Goebel  skribis:

> Am 08.12.2016 um 18:45 schrieb Hartmut Goebel:
>> * gnu/packages/php.scm (php-hello-world): New variable.
>
> This is useful for testing setups and providing examples.

I agree… but does it belong in a home-made package?

For other tools we provide what upstream provides.  For example, Qt
comes with examples, which we provide in the ‘qt’ package (IIRC).

I think it would be best to stick to that policy.  WDYT?

Thanks,
Ludo’.



Re: [PATCH] doc: add Creating a New Cross Target.

2016-12-21 Thread Ludovic Courtès
Hi Jan!

Thanks for looking into it, and thanks for coping with the latency!

Jan Nieuwenhuizen  skribis:

> From e887762bd07d77b68ff19b0ced3ab41c15faa1ac Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen 
> Date: Wed, 7 Dec 2016 17:45:29 +0100
> Subject: [PATCH] doc: add Creating a New Cross Target.
>
> * doc/guix.texi: Add Creating a New Cross Target.

[...]

> +@node Creating a New Cross Target
> +@section Creating a New Cross Target
> +
> +As a first step of making a full port, you may want to start by creating
> +a cross target.  A cross target in essence is a cross compiler
> +@code{cross-gcc-@var{}}, which depends on
> +@code{cross-binutils-@var{}} a @code{libc-@var{}} and
> +possibly @code{kernel-headers-@var{}}.  Several cross targets
> +are available, such as @code{i586-pc-hurd}, @code{armhf-linux},
> +@code{avr}, @code{i686-w64-mingw32} and @code{mips64el-linux}.
> +
> +Building a full gcc cross compiler depends on a c-library for the
> +target.  We can build a c-library for the target once we have a cross
> +compiler.  To break this loop a minimal gcc compiler can be built
> +without a c-library; we call this
> +@code{gcc-cross-sans-libc-@var{}}.  With this minimal gcc
> +compiler we cross compile the c-library and then we build the full cross
> +gcc.
> +
> +In @code{gnu/packages/cross-base.scm} are functions to create these
> +cross packages.  Also, Guix needs to know the name of the dynamic
> +linker, see @var{glibc-dynamic-linker} in
> +@code{gnu/packages/bootstrap.scm}.

I feel that some of it is redundant with, or should be added to
the “Porting” node.  WDYT?

> +@menu
> +* Rebuilding My World:: How to avoid rebuilding too often.
> +* GCC and Cross Environment Paths::  Details on the cross build setup.
> +* The MinGW Cross Target::  Some notes on MinGW.
> +@end menu
> +
> +@node Rebuilding My World
> +@subsection Rebuilding My World
> +
> +Why is it that we all tend love to rebuild our world, yet like it
> +somewhat less when others decide do it for us?  One of the great things
> +of Guix is that it tracks all dependencies and will rebuild any package
> +that is out of date: We never have to worry that doing a fresh, clean
> +build does not reproduce.

[...]

> +Now it is time to check what the impact of our changes in @var{ncurses}
> +
> +@smallexample
> +$ ./pre-inst-env guix refresh -l ncurses
> +Building the following 1056 packages would ensure 2658 dependent packages 
> are rebuilt: @dots{}
> +@end smallexample

My gut feeling is that an explanation of why something gets rebuilt does
not belong here (it is not specific to cross-compilation).  So I would
suggest putting it elsewhere; maybe we need a new “Developing with Guix”
section or similar, that would include this as well as “Defining
Packages” and “Programming Interface”, though I understand this goes
beyond this patch.

Another though is that we should provide a command to make it easier to
understand why something is rebuilt (we discussed this in Berlin last
week).  I’m not sure exactly what that command’s output would look like,
but I would welcome mockups of what people would like to see, and we can
work from there.

WDYT?

> +@node GCC and Cross Environment Paths
> +@subsection GCC and Cross Environment Paths
> +
> +@c See 
> +@c  and
> +@c 
> +@c for a discussion of what follows.
> +Some build systems compile and run programs at build time to generate
> +host-specific data.  This means we usually have two compilers installed:
> +@code{gcc} and @code{-gcc}.  Guix does not use
> +@file{/usr/include} and @file{/usr/lib} to install additional headers
> +and libraries, instead it adds to environment path variables such as
> +@var{C_INCLUDE_PATH} and @var{LIBRARY_PATH}.
> +
> +To distinguish between native build-time headers and libraries and
> +cross-built target system headers and libraries, we use a patched gcc as
> +cross compiler.  The cross compiler instead looks at
> +@var{CROSS_C_INCLUDE_PATH} and @var{CROSS_LIBRARY_PATH}.
> +
> +@node The MinGW Cross Target
> +@subsection The MinGW Cross Target
> +
> +The MinGW target is somewhat special in that it does not support
> +@var{glibc}.  @var{Gcc} needs to be passed the @code{--with-newlib} flag
> +and instead we use the combined c-library and free reïmplementation of
> +Windows kernel-headers and system-libraries provided by the MinGW-w64
> +project.  Also, it's not POSIX so it often needs explicit support,
> +sometimes we need to create a patch ourselves.
> +
> +For standard libc headers and libraries that are missing in MinGW such
> +as @var{libiconv} and @var{gettext} helper functions are available
> +
> +@example
> +(inputs
> + @dots{}
> + ,@@(libiconv-if-needed)
> + ,@@(gnu-gettext-if-needed))
> +@end example
> +
> +Finally, a simple example of how MinGW can be 

Re: [PATCH] gnu: services: Add gnunet-service.

2016-12-21 Thread ng0
Ludovic Courtès  writes:

> ng0  skribis:
>
>> +@cindex GNUnet
>> +@cindex gnunet
>> +@subsubheading GNUnet Service
>> +
>> +@deffn {Scheme Variable} gnunet-service-type
>> +This is the type of the @uref{https://gnunet.org, GNUnet}
>
> Since GNUnet is supposed to be available to unprivileged users via
> ‘gnunet-arm’, perhaps you could clarify a bit what this does and what
> the tradeoffs are?

I can document this in the next preview I send to the
list. Running gnunet via system service is the correct way to run
it, this way multiple unix users can have their own ego (gnunet
term) etc. You will no longer use gnunet-arm, you just use the
gnunet subsystems directly.

>
> [...]
>
>> +(user-account
>> + (name "gnunet")
>> + (group "gnunet")
>> + (system? #t)
>> + (comment "GNUnet system user")
>> + (home-directory "/var/empty")
>> + (shell #~(string-append #$shadow "/sbin/nologin")
>
> Prefer (file-append shadow "/sbin/nologin").

Ok.

>> +(define gnunet-activation
>> +  (match-lambda
>> +(($  package config-file)
>> + (let ((gnunet
>> +(file-append package "/lib/gnunet/libexec/gnunet-service-arm")))
>> +   #~(begin
>> +   (use-modules (guix build utils))
>> +   (define %user (getpw "gnunet"))
>> +   (mkdir-p "/var/lib/gnunet/")
>> +   (chown "/var/lib/gnunet" (passwd:uid %user) (passwd:gid %user))
>> +   (chmod "/var/lib/gnunet/" #o600)
>> +   (mkdir-p "/var/lib/gnunet/.local/share/gnunet")
>> +   (mkdir-p "/var/lib/gnunet/.cache/gnunet")
>> +   (mkdir-p "/var/lib/gnunet/.config/gnunet")
>> +   (chmod "/var/lib/gnunet/.config/gnunet" #o600)
>> +   (chmod "/var/lib/gnunet/.cache/gnunet" #o600)
>> +   (chmod "/var/lib/gnunet/.local/share/gnunet" #o600))
>
> The .local, .share, and .config sub-directories here look fishy.  I’d
> suggest reporting that as a bug upstream.  :-)

I'm discussing it right now, to figure out if this was fixed
later or if this is still relevant to report, and if it was fixed
later if it can be backported.

> The rest LGTM!
>
> Thanks,
> Ludo’.
>

Thanks for this first review.
-- 
♥Ⓐ  ng0  | PGP keys and more: https://n0is.noblogs.org/
 |http://ng0.chaosnet.org



[PATCH 01/11] gnu: Add python-flask-wtf.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-flask-wtf): New variable.
---
 gnu/packages/python.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index bfa7eae55..0e5966336 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -9219,6 +9219,34 @@ presume or force a developer to use a particular tool or 
library.")
 (define-public python2-flask
   (package-with-python2 python-flask))
 
+(define-public python-flask-wtf
+  (package
+(name "python-flask-wtf")
+(version "0.13.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "Flask-WTF" version))
+   (sha256
+(base32
+ "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990"
+(build-system python-build-system)
+(propagated-inputs
+ `(("python-flask-babel" ,python-flask-babel)
+   ("python-babel" ,python-babel)))
+(native-inputs
+ `(("python-nose" ,python-nose)
+   ("python-wtforms" ,python-wtforms)))
+  (home-page "https://github.com/lepture/flask-wtf;)
+  (synopsis "Simple integration of Flask and WTForms")
+  (description
+   "Simple integration of Flask and WTForms, including CSRF,
+file upload, and reCAPTCHA.")
+  (license license:bsd-3)))
+
+(define-public python2-flask-wtf
+  (package-with-python2 python-flask-wtf))
+
 (define-public python-cookies
   (package
 (name "python-cookies")
-- 
2.11.0




[PATCH 06/11] gnu: Add python2-openid.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python2-openid): New variable.
---
 gnu/packages/python.scm | 20 
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3203bb421..a8ede93fd 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5048,6 +5048,26 @@ features useful for text console applications.")
 (define-public python2-urwid
   (package-with-python2 python-urwid))
 
+(define-public python2-openid
+  (package
+(name "python2-openid")
+(version "2.2.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "python-openid" version))
+   (sha256
+(base32
+ "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj"
+(build-system python-build-system)
+(arguments
+ ;; Python 3 support is in `python3-openid`, a separate package.
+ `(#:python ,python-2))
+(home-page "https://github.com/openid/python-openid;)
+(synopsis "OpenID support for servers and consumers")
+(description "OpenID library for Python.")
+(license license:asl2.0)))
+
 (define-public python-urwidtrees
   (package
 (name "python-urwidtrees")
-- 
2.11.0




[PATCH 05/11] gnu: Add python-pygit2.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-pygit2): New variable.
---
 gnu/packages/python.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index fdfcf6027..3203bb421 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3374,6 +3374,34 @@ association studies (GWAS) on extremely large data 
sets.")
 (define-public python2-numpy
   (package-with-python2 python-numpy))
 
+(define-public python-pygit2
+  (package
+(name "python-pygit2")
+(version "0.24.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "pygit2" version))
+   (sha256
+(base32
+ "0shnafv9zc483wmcr4fzgvirg1qzz42xpdqd4a3ad39sdj1qbbia"
+(build-system python-build-system)
+(propagated-inputs
+ `(("python-six" ,python-six)
+   ("python-cffi" ,python-cffi)
+   ("libgit2" ,libgit2)
+   ("python-tox" ,python-tox)))
+(home-page "https://github.com/libgit2/pygit2;)
+(synopsis "Python bindings for libgit2")
+(description
+ "Pygit2 is a set of Python bindings to the libgit2
+shared library, libgit2 implements Git plumbing.")
+;; GPL2.0 only, with linking exception.
+(license license:gpl2)))
+
+(define-public python2-pygit2
+  (package-with-python2 python-pygit2))
+
 (define-public python-pyparsing
   (package
 (name "python-pyparsing")
-- 
2.11.0




[PATCH 07/11] gnu: Add python-openid-cla.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-openid-cla): New variable.
---
 gnu/packages/python.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a8ede93fd..445df2cbc 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5301,6 +5301,28 @@ another XPath engine to find the matching elements in an 
XML or HTML document.")
 (define-public python2-cssselect
   (package-with-python2 python-cssselect))
 
+(define-public python-openid-cla
+  (package
+(name "python-openid-cla")
+(version "1.2")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "python-openid-cla" version))
+   (sha256
+(base32
+ "102hy2qisvjxp5s0v9lvwqi4f2dk0dhns40vjgn008yxc7k0h3cr"
+(build-system python-build-system)
+(home-page "https://github.com/puiterwijk/python-openid-cla/;)
+(synopsis "Implementation of the OpenID cla extension for python-openid")
+(description
+ "@code{openid-cla} is an implementation of the OpenID cla
+extension for python-openid.")
+(license license:bsd-3)))
+
+(define-public python2-openid-cla
+  (package-with-python2 python-openid-cla))
+
 (define-public python-netifaces
   (package
 (name "python-netifaces")
-- 
2.11.0




[PATCH 09/11] gnu: Add python-straight-plugin.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-straight-plugin): New variable.
---
 gnu/packages/python.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4fd883fbe..27405d0b5 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6012,6 +6012,30 @@ term.js Javascript terminal emulator library.")
   ,python2-backport-ssl-match-hostname)
   ,@(package-propagated-inputs terminado))
 
+(define-public python-straight-plugin
+  (package
+(name "python-straight-plugin")
+(version "1.4.1")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "straight.plugin" version))
+   (sha256
+(base32
+ "069pjll4383p4kkgvcc40hgyvf79j2wdbpgwz77yigzxksh1gj62"
+(build-system python-build-system)
+(home-page "https://github.com/ironfroggy/straight.plugin;)
+(synopsis "Simple namespaced plugin facility")
+(description
+ "Straight Plugin provides a type of plugin you can create
+from almost any existing Python modules, and an easy way for
+outside developers to add functionality and customization to
+your projects with their own plugins.")
+(license license:expat)))
+
+(define-public python2-straight-plugin
+  (package-with-python2 python-straight-plugin))
+
 (define-public python-fonttools
   (package
 (name "python-fonttools")
-- 
2.11.0




Dependencies of pagure, revision of 2016-12-21

2016-12-21 Thread ng0
[PATCH 01/11] gnu: Add python-flask-wtf.

> Danny Milosavljevic: 
> Subject: Re: [PATCH 01/11] gnu: Add python-flask-wtf. 
>  
> Date: Wed, 21 Dec 2016 00:10:39 +0100 
>  
> Since flask-WTF directly imports flask, this package should also propagate 
> flask.

Addressed in this new revision of the patch series, thanks Danny!

[PATCH 02/11] gnu: Add python-flask-multistatic.
[PATCH 03/11] gnu: Add python-kitchen.
[PATCH 04/11] gnu: Add python-munch.
[PATCH 05/11] gnu: Add python-pygit2.
[PATCH 06/11] gnu: Add python2-openid.
[PATCH 07/11] gnu: Add python-openid-cla.
[PATCH 08/11] gnu: Add python-openid-teams.
[PATCH 09/11] gnu: Add python-straight-plugin.
[PATCH 10/11] gnu: Add python-trollius-redis.



[PATCH 10/11] gnu: Add python-trollius-redis.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-trollius-redis): New variable.
---
 gnu/packages/python.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 27405d0b5..949725756 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -8017,6 +8017,29 @@ minimal and fast API targetting the following uses:
 (define-public python2-execnet
   (package-with-python2 python-execnet))
 
+(define-public python-trollius-redis
+(package
+  (name "python-trollius-redis")
+  (version "0.1.4")
+  (source
+(origin
+  (method url-fetch)
+  (uri (pypi-uri "trollius_redis" version))
+  (sha256
+   (base32
+"0k3vypszmgmaipgw9xscvgm79h2zd6p6ci8gdp5sxl6g5kbqr9fy"
+  (build-system python-build-system)
+  (home-page "https://github.com/benjolitz/trollius-redis;)
+  (synopsis "Port of asyncio-redis to trollius")
+  (description
+   "@code{trollius-redis} is a Redis client for Python
+trollius.  It is a PEP 3156 implementation of the redis
+protocol.")
+  (license license:bsd-2)))
+
+(define-public python2-trollius-redis
+  (package-with-python2 python-trollius-redis))
+
 ;;; The software provided by this package was integrated into pytest 2.8.
 (define-public python-pytest-cache
   (package
-- 
2.11.0




[PATCH 03/11] gnu: Add python-kitchen.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-kitchen): New variable.
---
 gnu/packages/python.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index eb4289161..5c4ae5025 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2435,6 +2435,36 @@ version numbers.")
  (propagated-inputs
   `(("python2-functools32" ,python2-functools32))
 
+(define-public python-kitchen
+  (package
+(name "python-kitchen")
+(version "1.2.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "kitchen" version))
+   (sha256
+(base32
+ "0ggv3p4x8jvmmzhp0xm00h6pvh1g0gmycw71rjwagnrj8n23vxrq"
+(build-system python-build-system)
+(propagated-inputs
+ `(("python-chardet" ,python-chardet)))
+(home-page "https://fedorahosted.org/kitchen;)
+(synopsis "Python API for snippets")
+(description
+ "@code{kitchen} module provides a python API for all sorts
+of little useful snippets of code that everybody ends up
+writing for their projects but never seem big enough to build
+an independent release.  Use kitchen and stop cutting and
+pasting that code over and over.")
+(license (list license:lgpl2.1+
+   ;; subprocess.py, test_subprocess.py,
+   ;; kitchen/pycompat25/defaultdict.py:
+   license:psfl
+
+(define-public python2-kitchen
+  (package-with-python2 python-kitchen))
+
 (define-public python-unidecode
   (package
 (name "python-unidecode")
-- 
2.11.0




[PATCH 02/11] gnu: Add python-flask-multistatic.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-flask-multistatic): New variable.
---
 gnu/packages/python.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0e5966336..eb4289161 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -9247,6 +9247,30 @@ file upload, and reCAPTCHA.")
 (define-public python2-flask-wtf
   (package-with-python2 python-flask-wtf))
 
+(define-public python-flask-multistatic
+  (package
+(name "python-flask-multistatic")
+(version "1.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "flask-multistatic" version))
+   (sha256
+(base32
+ "0p4v50rwv64wcd0zlq7rzl4waprwr4hj19s3cgf1isywa7jcisgm"
+(build-system python-build-system)
+(propagated-inputs
+ `(("python-flask" ,python-flask)))
+(home-page "https://pagure.io/flask-multistatic;)
+(synopsis "Flask plugin to allow overriding static files")
+(description
+ "@code{flask-multistatic} is a simple plugin to add
+support for overriding static files to flask.")
+(license license:gpl3+)))
+
+(define-public python2-flask-multistatic
+  (package-with-python2 python-flask-multistatic))
+
 (define-public python-cookies
   (package
 (name "python-cookies")
-- 
2.11.0




[PATCH 04/11] gnu: Add python-munch.

2016-12-21 Thread ng0
* gnu/packages/python.scm (python-munch): New variable.
---
 gnu/packages/python.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 5c4ae5025..fdfcf6027 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3255,6 +3255,28 @@ capabilities.")
 (define python2-numpy-bootstrap
   (package-with-python2 python-numpy-bootstrap))
 
+(define-public python-munch
+  (package
+(name "python-munch")
+(version "2.0.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "munch" version))
+   (sha256
+(base32
+ "1cmqg91xnqx8gvnh4pmp0bfl1dfcm65d5p9mg73zz8pkjhx6h80l"
+(build-system python-build-system)
+(home-page "https://github.com/Infinidat/munch;)
+(synopsis "Dot-accessible dictionary")
+(description
+ "Munch is a dot-accessible dictionary similar to
+JavaScript objects.")
+(license license:expat)))
+
+(define-public python2-munch
+  (package-with-python2 python-munch))
+
 (define-public python2-fastlmm
   (package
 (name "python2-fastlmm")
-- 
2.11.0




Re: time out in shepherd service?

2016-12-21 Thread ng0
Ludovic Courtès  writes:

> ng0  skribis:
>
>> Is there a time out in shepherd service start/checks, or is the
>> "service could not be started" simply a result of when a service
>> encounters a fatal error and quits?
>
> “Service could not be started” just means that the ‘start’ procedure of
> the service returned #f or threw an exception.
>
> To debug this, you’d have to check the service’s log files, or use
> #:log-file to redirect the stdout/stderr to a log file.
>
> HTH!
>
> Ludo’.
>

Thanks.
Observed and tried yesterday: when I turn on logging and make the
output more verbose, the log file created is root:root and
therefore not accesible by the internal logging mechanisms of the
gnunet subsystems which as a consequence throw errors that they
can not log to this file.
#:user and #:group is now set, and some more changes which I
didn't publish so far.
There are some gnunet errors, so I have to go all the way back
1.5 - 2 years and see if this was fixed at some commit and have
to backport the fix 0.10.1 if these errors are caused by
gnunet. But seeing that it's functional without system service
it's unlikely that this is the case.
-- 
♥Ⓐ  ng0  | PGP keys and more: https://n0is.noblogs.org/
 |http://ng0.chaosnet.org



Re: [PATCH] gnu: Fix load-extension path in packaging of guile-ncurses.

2016-12-21 Thread John Darrington
On Wed, Dec 21, 2016 at 09:36:56AM +0100, Danny Milosavljevic wrote:
 > Sure (I would like to see a convention where such explanations are
 > put in the commit messaage, but I have previously been outvoted on
 > that issue):

Hi Danny, 

A small request: Can you please fold the text of your email to ~80 
characters.  It's very hard to read otherwise.
 
 No, please don't put explanations into the commit message. But do put them 
into the source code as a comment.

That approach can work sometimes, but more often it is a non-starter.

A few example scenarios:

1. Suppose I need to do a global search and replace, changing a variable name 
across many files.  It would be ludicrous  to have in dozens of files:

;; This variable used to be called "bar" but we changed it to "foo" because ...
(+ foo 4)

When reviewing the code, frankly nobody CARES what it used to be called!


2. Suppose we decide to delete something from a file. It would be equally 
ludicrous to have:

;; There used to be some code here which did:
;;(large-block-of-code
;;.
;;.
;;.
;;.
;;.
;;.)
;; but we decided to delete it because ...

Again I don't care what used to be in a file.


3.  Suppose that, due to a design change, a new variable has to be 
introduced in places thoughout the code:  It would be bizarre, 
distracting and stupid to have in many places:

;; Since we introduced the frobnicator module the signature for
;; calling wiz needs to pass it as an argument.
(wiz frobnicator)



4. Suppose I fix a bug:  It would be pejorative to write:

;; Fred Bloggs who wrote the function typed 'xyz' when he
;; ought to have put 'abc', because ...


I am just glad when a bug has been fixed.  If somebody changes
some code of mine, I might be curious as to why.  In that case
I can check the git log.  If that person has (like he should)
explained in the git log why my code was wrong, I will be 
gratefull for the explanation and the fix.  But nobody except
me will care about bugs in the function which have been fixed.


 I'm also working on other projects, some of which do what you propose. 
What I often end up having to do there is do git blame, then git log for each 
line, in order to find out why the source code does what it does. Let's not do 
that here. 

That is what git blame is for.  Be thankful for it!

  There's a perfectly good inline mechanism for it: Comments.

I am not saying that no explanations of *current* code should 
be put in comments.  It is of course good practice to explain
the working of tricky parts of code.  But to put a *history*
of the code inline is just distraction and a misuse of comments.


Your proposal takes us back to the 1970s - Occassionally I come across
code done like that.  It is  a nightmare to follow.  I am not normally
interested in the history of the code when I look a the source.  I am 
interested in what it does now.   If I want the history, then use git.
That is (amoung other things) what it was designed for.


I hope this explains why putting history in comments is harmful.
Having it in the commit message would certainly have avoided me
having to explain the situation to Mark too.


If this doesn't convince you, then I don't know what more I can say.
But I find that our current git logs are just useless.  They don't
tell me anything which I couldn't have found out by running 
git diff/git blame.

J'


-- 
Avoid eavesdropping.  Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.



signature.asc
Description: Digital signature


Re: time out in shepherd service?

2016-12-21 Thread Ludovic Courtès
ng0  skribis:

> Is there a time out in shepherd service start/checks, or is the
> "service could not be started" simply a result of when a service
> encounters a fatal error and quits?

“Service could not be started” just means that the ‘start’ procedure of
the service returned #f or threw an exception.

To debug this, you’d have to check the service’s log files, or use
#:log-file to redirect the stdout/stderr to a log file.

HTH!

Ludo’.



Re: [PATCH 6/6] gnu: Add grub-efi.

2016-12-21 Thread Ludovic Courtès
Marius Bakke  skribis:

> Ludovic Courtès  writes:

[...]

 I’m failing at installing GuixSD on a new laptop I have here.
 ‘efibootmgr’ exits with code 2 and this message:

   EFI variables are not supported on this system.

 (which ‘grub-install’ happily ignores.)

 This is because /sys/firmware/efi is missing, which apparently is
 because I booted off the GuixSD USB image (“legacy”) and not in EFI
 mode.

 What would you suggest?  :-)
>>>
>>> What I did was a normal BIOS install, backup the grub.cfg, switch laptop
>>> to UEFI (only) and boot a Debian live CD. From there "apt-get install
>>> grub-efi; grub-install /dev/sda" and afterwards copy grub.cfg in place.
>>>
>>> You may want to add "insmod efi_gop" and "insmod efi_uga" to grub.cfg,
>>> otherwise you won't get a framebuffer until the proper video driver is
>>> loaded (which may require unlocking root partition etc).
>>
>> Wait, all I need is /sys/firmware/efi in the install image.  Is it
>> impossible?
>
> Perhaps you can trick Linux into creating it without booting UEFI mode.
> Not sure if grub/efibootmgr actually need to read or write there.

‘efivar’ (used by ‘efibootmgr’) uses it, and otherwise bails out with
the error message shown above.

Thanks,
Ludo’.



Re: [PATCH] gnu: services: Add gnunet-service.

2016-12-21 Thread Ludovic Courtès
ng0  skribis:

> +@cindex GNUnet
> +@cindex gnunet
> +@subsubheading GNUnet Service
> +
> +@deffn {Scheme Variable} gnunet-service-type
> +This is the type of the @uref{https://gnunet.org, GNUnet}

Since GNUnet is supposed to be available to unprivileged users via
‘gnunet-arm’, perhaps you could clarify a bit what this does and what
the tradeoffs are?


[...]

> +(user-account
> + (name "gnunet")
> + (group "gnunet")
> + (system? #t)
> + (comment "GNUnet system user")
> + (home-directory "/var/empty")
> + (shell #~(string-append #$shadow "/sbin/nologin")

Prefer (file-append shadow "/sbin/nologin").

> +(define gnunet-activation
> +  (match-lambda
> +(($  package config-file)
> + (let ((gnunet
> +(file-append package "/lib/gnunet/libexec/gnunet-service-arm")))
> +   #~(begin
> +   (use-modules (guix build utils))
> +   (define %user (getpw "gnunet"))
> +   (mkdir-p "/var/lib/gnunet/")
> +   (chown "/var/lib/gnunet" (passwd:uid %user) (passwd:gid %user))
> +   (chmod "/var/lib/gnunet/" #o600)
> +   (mkdir-p "/var/lib/gnunet/.local/share/gnunet")
> +   (mkdir-p "/var/lib/gnunet/.cache/gnunet")
> +   (mkdir-p "/var/lib/gnunet/.config/gnunet")
> +   (chmod "/var/lib/gnunet/.config/gnunet" #o600)
> +   (chmod "/var/lib/gnunet/.cache/gnunet" #o600)
> +   (chmod "/var/lib/gnunet/.local/share/gnunet" #o600))

The .local, .share, and .config sub-directories here look fishy.  I’d
suggest reporting that as a bug upstream.  :-)

The rest LGTM!

Thanks,
Ludo’.



Re: [PATCH] gnu: Fix load-extension path in packaging of guile-ncurses.

2016-12-21 Thread Danny Milosavljevic
> Sure (I would like to see a convention where such explanations are
> put in the commit messaage, but I have previously been outvoted on
> that issue):

No, please don't put explanations into the commit message. But do put them into 
the source code as a comment.

I'm also working on other projects, some of which do what you propose. What I 
often end up having to do there is do git blame, then git log for each line, in 
order to find out why the source code does what it does. Let's not do that 
here. There's a perfectly good inline mechanism for it: Comments.