Re: [PATCH} Add RAID devices.

2016-07-26 Thread Chris Marusich
Hi Andreas,

Ludo's response clarified a lot of things for me.  The only remaining
feedback I have is that (1) to aid the reader, you should consider
adding a cross-reference from "(guix) Mapped Devices" (in the part where
you mention that certain modules must be added) to "(guix) Initial RAM
Disk", and (2) you might want to look into using the "Auto Assembly"
feature of mdadm (see below).

If you've tested the changes, though, and it works, I see no reason not
to commit this and enable everyone to enjoy the use of RAID arrays! :)

Andreas Enge  writes:

> On Sat, Jul 23, 2016 at 10:43:58PM -0700, Chris Marusich wrote:
>> Cool!  Is it possible to use them in combination?  Using the example
>> From the documentation, would it possible to use LUKS to create an
>> encrypted /dev/mapper/home which uses /dev/md0 instead of /dev/sda3?
>
> unfortunately not. This is an area where some work should be invested.
> It would require to do things properly in order also. LVM support also
> comes to mind. I think these devices can be staged in an arbitrarily
> complex way, no? Encrypting a RAID device, or creating a RAID device
> from encrypted partitions, for instance (of which the former sounds more
> reasonable to me).

I agree it would be a nice feature, but if your patch is working right
now to enable the use of RAID, then I think it would be fine to submit
your patch now and add such a feature later.

>> I understand that in Linux, the device file names (e.g., /dev/sda3) can
>> sometimes change unexpectedly.  If they change later on, will anything
>> bad happen?
>
> Yes, the RAID could not be assembled, and then the machine could not boot
> up. But I have never experienced this kind of problem for hard disks.

It occurs occasionally [1], but the fewer disks you have, the less
likely you are to observe it.  I wonder if you can use mdadm's "Auto
Assembly" feature (see "man 8 mdadm" for details) to avoid this issue
entirely?  It sounds like you might not even need to specify a source
device list, if the description of "Auto Assembly" is to be believed.

[1] For example: 
https://serverfault.com/questions/140071/hard-drive-device-names-are-different-from-one-reboot-to-another-in-ubuntu

-- 
Chris


signature.asc
Description: PGP signature


Re: Odd behavior with --dry-run and --upgrade

2016-07-26 Thread Ludovic Courtès
Roel Janssen  skribis:

> Ludovic Courtès writes:
>
>> Hi!
>>
>> Alex Kost  skribis:
>>
>>> Roel Janssen (2016-07-23 18:11 +0300) wrote:
>>>
 Dear Guix,

 For some time now, running `guix package --dry-run --upgrade' results in
 build actions involving grafting.  For a dry-run, I find that really
 odd.  I believe the correct behavior should be what can be achieved
 with: `guix package --dry-run --no-grafts --upgrade'.
>>>
>>> I'm totally agree with this; nowadays I always use --dry-run with
>>> --no-grafts option.
>>
>> Same here…
>>
>>> As a user I expect that --dry-run means no building at all.
>>>
>>> BTW it's not just about ‘guix package --dry-run --upgrade’, it relates
>>> to all commands, for example ‘guix build --dry-run foo’, etc.
>>>
>>> OTOH, if a future ‘--dry-run’ would mean what ‘--dry-run --no-grafts’
>>> means now, than how to achieve what ‘--dry-run’ means now?  Or rather:
>>> does anyone use just --dry-run (without --no-grafts)?  Is it really
>>> useful?
>>
>> In theory it could be useful for ‘guix build’, since it’s a “low level”
>> tool and people using it may want to be able to distinguish between
>> grafted and non-grafted results.
>>
>> But honestly, I think changing ‘--dry-run’ to do ‘--dry-run --no-grafts’
>> would be fine, and probably better than the current situation.
>
> Could you provide some insight in where I should be looking to att the
> check to 'graft?'?

Everything that relates to command-line argument processing is in (guix
scripts build), for the common options, and then in each (guix scripts
*) module.

Roughly, the change I suggest would be along these lines:

diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index a02a0d5..daa60b9 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -541,7 +541,8 @@ must be one of 'package', 'all', or 'transitive'~%")
(alist-cons 'file arg result)))
  (option '(#\n "dry-run") #f #f
  (lambda (opt name arg result)
-   (alist-cons 'dry-run? #t result)))
+   (alist-cons 'dry-run? #t
+   (alist-cons 'graft? #f result
  (option '(#\r "root") #t #f
  (lambda (opt name arg result)
(alist-cons 'gc-root arg result)))

However, since --dry-run is processed separately in each command, this
change should probably be duplicated.

Would you like to look into it?

Something similar should be done in the Emacs interface.

Thanks,
Ludo’.


Re: DMD

2016-07-26 Thread Ludovic Courtès
Hi,

Andreas Enge  skribis:

> I just noticed that we still have a dmd package (that does not build on arm).
> Should we not drop it now that we have the shepherd?

Yes, please do.

Ludo’.



Re: Odd behavior with --dry-run and --upgrade

2016-07-26 Thread Roel Janssen

Ludovic Courtès writes:

> Roel Janssen  skribis:
>
>> Ludovic Courtès writes:
>>
>>> Hi!
>>>
>>> Alex Kost  skribis:
>>>
 Roel Janssen (2016-07-23 18:11 +0300) wrote:

> Dear Guix,
>
> For some time now, running `guix package --dry-run --upgrade' results in
> build actions involving grafting.  For a dry-run, I find that really
> odd.  I believe the correct behavior should be what can be achieved
> with: `guix package --dry-run --no-grafts --upgrade'.

 I'm totally agree with this; nowadays I always use --dry-run with
 --no-grafts option.
>>>
>>> Same here…
>>>
 As a user I expect that --dry-run means no building at all.

 BTW it's not just about ‘guix package --dry-run --upgrade’, it relates
 to all commands, for example ‘guix build --dry-run foo’, etc.

 OTOH, if a future ‘--dry-run’ would mean what ‘--dry-run --no-grafts’
 means now, than how to achieve what ‘--dry-run’ means now?  Or rather:
 does anyone use just --dry-run (without --no-grafts)?  Is it really
 useful?
>>>
>>> In theory it could be useful for ‘guix build’, since it’s a “low level”
>>> tool and people using it may want to be able to distinguish between
>>> grafted and non-grafted results.
>>>
>>> But honestly, I think changing ‘--dry-run’ to do ‘--dry-run --no-grafts’
>>> would be fine, and probably better than the current situation.
>>
>> Could you provide some insight in where I should be looking to att the
>> check to 'graft?'?
>
> Everything that relates to command-line argument processing is in (guix
> scripts build), for the common options, and then in each (guix scripts
> *) module.
>
> Roughly, the change I suggest would be along these lines:
>

Aha.  Disabling grafting when the `--dry-run' switch is provided seems
like exactly what we want to do.  Should we add a `--enable-grafts' too?

> However, since --dry-run is processed separately in each command, this
> change should probably be duplicated.
>
> Would you like to look into it?

Yes!  Please allow me some time though.

> Something similar should be done in the Emacs interface.

I'm not familiar with the code of the Emacs interface.  Any other
takers for it?  Otherwise I will look into it, but that will take even
more time :)

Kind regards,
Roel Janssen



Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread Ludovic Courtès
Hello Guix!

I’m happy to announce that Ricardo Wurmus has just been appointed by the
GNU overseers to join me as co-maintainer of GNU Guix.

Ricardo is a long-time free software activist and has been making
significant contributions to Guix for the most part of its young history
in terms of code, reviews, and talks.  He has deployed Guix on the
bioinformatics clusters of his workplace and trained his co-workers.  He
undoubtedly has all the technical and social skills I would expect for
the job.  Please welcome him warmly!  :-)

I don’t like to think in terms of titles, and it’s important to me that
everyone can contribute to every aspect of the project in their
capacity, and that decision-making remains consensus-based.  So I asked
myself what it means to have a maintainer hat.  I think it boils down to
three duties: safeguarding the project (making sure we remain true to
our goals, ensure our code of conduct is honored and GNU policies are
followed), giving a direction and providing guidance (paying attention
to the release schedule, not losing track of priorities, being “present”
and aware of ongoing developments), and overseeing the infrastructure
and administrative things (build farm, FTP uploads, mailing list admin,
etc.)  Anyone can work on these tasks, but presumably maintainers have
“the big picture”.

Thank you for joining, Ricardo!

Ludo’.


signature.asc
Description: PGP signature


Re: FOSDEM 2016 was awesome! Let's do FOSDEM 2017

2016-07-26 Thread Tobias Geerinckx-Rice
Pjotr,

On 26/07/2016 4:19, Pjotr Prins wrote:
> FOSDEM 2017 call for proposals has started: [...]
> Who wants to be part of this exciting day?

\o

I've never done anything like this before, but would like to help out if
and where I can.

Kind regards,

T G-R



Re: Separate Mailing Lists for Patches vs General Dev Discussion?

2016-07-26 Thread ng0
Hi,

Florian Paul Schmidt writes:

> Hi,
>
> I'm following the Guix-Project, even if not contributing much because
> of time constraints. The one, very simple to implement, thing that
> would make following the project more easy IMHO would be a separate
> list for patches. Or maybe the other way around: A separate list for
> more general discussion :)
>
> What do you think?
>
> Regards,
> Flo
>

I don't know if that's a fix.
In my opinion we need a web application which is smart enough to
figure out what patches are and append the discussion around it
there, but it needs to offer ways to not just display this but
to contribute to the discussion in a webbrowser for example.

That's of course not our core problem, but it could make it a bit
more appealing.

I would say we could keep "guix-devel" for patches and
discussions around them and create another list for discussion,
for example "guix-discuss".

No fix, but could help to separate patches and general
discussions.

What do you all think?
-- 
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org



Re: [PATCH] gnu: Add haveged.

2016-07-26 Thread Tobias Geerinckx-Rice
Leo,

On 24/07/2016 2:06, Leo Famulari wrote:
>> but many packages — not all — also like to add a "See  in the
>> distribution." Looking at guix/licenses.scm, this seems a bit redundant
>> to me. No?
> 
> I think it's a matter of judgement. Sometimes it makes sense, sometimes
> not. The important thing is to say where the license text is.

Judged and pushed (without the apparent duplication).

Thanks,

T G-R




Re: Separate Mailing Lists for Patches vs General Dev Discussion?

2016-07-26 Thread Andreas Enge
On Tue, Jul 26, 2016 at 10:44:48AM +, ng0 wrote:
> I would say we could keep "guix-devel" for patches and
> discussions around them and create another list for discussion,
> for example "guix-discuss".
> No fix, but could help to separate patches and general
> discussions.

Notice we already have the help-guix mailing list (which admittedly does not
serve the same purpose). Usually I mix them up anyway, since they appear in
the same mailbox for me...

Andreas




Re: FOSDEM 2016 was awesome! Let's do FOSDEM 2017

2016-07-26 Thread Manolis Ragkousis
Hello Pjotr,

On 07/26/16 05:19, Pjotr Prins wrote:
> FOSDEM 2017 call for proposals has started:
> 
>   https://fosdem.org/2017/news/2016-07-20-call-for-participation/
> 
> We need help with writing the proposal (we can build on last years
> this time), we need help on selecting talks and we need help creating
> the schedule. Finally, if we get a slot, we need help to organise the
> day.
> 
> Who wants to be part of this exciting day? 
> 
> Pj.

Count me in!!

Do we have a libreplanet page to suggest talks as last year?

Manolis



Re: Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread Manolis Ragkousis
Congratulations Ricardo and best of luck with your new duties :-D

Manolis



Re: Go & bundling

2016-07-26 Thread Alex Griffin
I realized my previous message was probably confusing. Here are some
missing details that you may need to make sense of it.

* Go embeds its dependency information right into the source code.

* The command I gave gets its list of dependencies by parsing source
code, not that manifest file. Also, it lists packages, not repositories.
There may be several packages coming from a single repository.

* Those manifest files, then, are just lists of bundled libraries. This
might be a litte confusing coming from other languages, because it is
not directly analogous to the package manager manifests that other
languages use. They are not written manually, nor does the tooling
necessarily make it easy to keep up-to-date (it may take 2-3 separately
maintained, non-standard tools to keep a vendor/ directory in good
working order). The packages in them may not even be dependencies any
more if the maintainer has not been vigilant.

Ultimately I think a Go importer will be tricky to get right. In some
cases it may even make the most sense to just use what's bundled,
unfortunately...
-- 
Alex Griffin



Re: Separate Mailing Lists for Patches vs General Dev Discussion?

2016-07-26 Thread Ludovic Courtès
Hello!

Florian Paul Schmidt  skribis:

> I'm following the Guix-Project, even if not contributing much because
> of time constraints. The one, very simple to implement, thing that
> would make following the project more easy IMHO would be a separate
> list for patches. Or maybe the other way around: A separate list for
> more general discussion :)
>
> What do you think?

GCC has a gcc-patches@ mailing list in addition to gcc@.  However, as a
passerby, I found it’s not super clear whether to use gcc@, or
gcc-patches@, or the Bugzilla instance.  So I’m not sure it would
improve the situation.

Thoughts?

FWIW, I filter help-guix, guix-devel, and guix-sysadmin in separate
folders, and then I use Gnus’ scoring mechanism for things in guix-devel
(you could assign a low score to messages whose subject contains
“[PATCH]” for instance.)

Ludo’.



Re: [PATCH] gnu: gmime: Remove gpg to gpg2 patch.

2016-07-26 Thread Ludovic Courtès
Leo Famulari  skribis:

> On Mon, Jul 25, 2016 at 11:47:51AM +, ng0 wrote:
>>  (with-fluids ((%default-port-encoding #f))
>>(substitute* (find-files "tests" "\\.c$")
>>  (("(system *\\(\")(/[^ ]*)" all pre prog-path)
>>   (let* ((base (basename prog-path))
>> -(prog (which (if (string=? base "gpg") "gpg2" 
>> base
>> +(prog (which base)))
>> (string-append pre
>>(or prog (error "not found: " 
>> base
>
> I can confirm this fixes the build failure. But, I don't fully
> understand the code that was changed. Can somebody double-check it?

LGTM.  The comment above this hunk should also be changed.

Thanks,
Ludo’.



Re: Odd behavior with --dry-run and --upgrade

2016-07-26 Thread Ludovic Courtès
Roel Janssen  skribis:

> Ludovic Courtès writes:
>
>> Roel Janssen  skribis:
>>
>>> Ludovic Courtès writes:

[...]

>> Everything that relates to command-line argument processing is in (guix
>> scripts build), for the common options, and then in each (guix scripts
>> *) module.
>>
>> Roughly, the change I suggest would be along these lines:
>>
>
> Aha.  Disabling grafting when the `--dry-run' switch is provided seems
> like exactly what we want to do.  Should we add a `--enable-grafts' too?

I don’t think so.  Given that they’re about security updated, I think
grafts should always be enabled by default, except for --dry-run.

>> However, since --dry-run is processed separately in each command, this
>> change should probably be duplicated.
>>
>> Would you like to look into it?
>
> Yes!  Please allow me some time though.

Sure, no rush!

>> Something similar should be done in the Emacs interface.
>
> I'm not familiar with the code of the Emacs interface.  Any other
> takers for it?  Otherwise I will look into it, but that will take even
> more time :)

Maybe Alex can give a hand?  :-)

Thank you for looking into it!

Ludo’.



Re: [PATCH] gnu: Add clojure.

2016-07-26 Thread Alex Vong
Hi Ricardo,

Thanks for the review again, the package definition is now simplier.

Ricardo Wurmus  writes:

> Hi Alex,
>
> Usually, we will split bundled libraries.  For bundled “jar” archives
> this is necessary in any case as a “jar” file is a binary.
>
> If the libraries are bundled in source form (not as “jar” archives) and
> if they are closely tied to clojure (or if they were forked from
> upstream libraries to better fit clojure), we could make an exception.
>
> Packaging Java libraries for Guix still isn’t very easy as we lack a
> bootstrapped set of core libraries, but you might be able to use the
> “ant-build-system” to get closer to that goal.  I also have a couple of
> packages for Java core libraries that haven’t yet been pushed.  If you
> intend to work on this I can share my current work in progress.
>
Yes, the ASM library is included as source (not jar) and is one majar
version behind upstream (4 vs 5). Also, this SO question says it is indeed a
fork 
(https://stackoverflow.com/questions/21642115/how-does-the-clojure-compiler-generates-jvm-bytecode).

> Here are some more comments about the patch you sent:
>
>> +   (replace 'install
>> + (lambda* (#:key outputs #:allow-other-keys)
>> +   (let ((java-dir (string-append (assoc-ref outputs "out")
>> +  "/share/java/")))
>> + ;; Do not install clojure.jar to avoid collisions.
>> + (install-file (string-append "clojure-" ,version ".jar")
>> +   java-dir)
>> + #t)))
>
> You don’t need this.  The “ant-build-system” allows you to override the
> name of the “jar” archive.  You can change the name to “(string-append
> "clojure-" ,version ".jar")” there without needing to override the
> install phase.
>
Actually, build.xml does not provide any install target, so we have to
roll our own. I should have made this clear. I've added a comment to
clarify this point.

>> +   (add-after 'build 'build-doc
>> + (lambda _
>> +   (let* ((markdown-regex "(.*)\\.(md|markdown|txt)")
>> +  (gsub regexp-substitute/global)
>> +  (markdown->html (lambda (src-name)
>> +(zero? (system*
>> +"pandoc"
>> +"--output" (gsub #f
>> + markdown-regex
>> + src-name
>> + 1 ".html")
>> +"--verbose"
>> +"--from" "markdown_github"
>> +"--to" "html"
>> +src-name)
>> + (every markdown->html
>> +(find-files "./" markdown-regex)
>
> Why is this needed?  Is there no target for building the documentation?
> If you added “pandoc” to the inputs only for building the documentation
> please reconsider this decision.  The closure of the “pandoc” package is
> *massive* as it depends on countless Haskell packages.  You would make
> the “clojure” package dependent on both Java (which is large) and an
> even larger set of packages consisting of GHC and numerous packages.
>
> Couldn’t you just install the markdown files as they are?
>
Sure, we could just install the markdown files as it. Though I am
curious to know what do you mean the closure is massive. Isn't pandoc
only needed at build-time, so the user doesn't need to download the
ghc-pandoc substitute? Also, I realize I over look the `javadoc' target,
which builds documentations in addition to those markdown file. So, I
change the target to the following:

;;; The javadoc target is not built by default.
(add-after 'build 'build-doc
  (lambda _
(system* "ant" "javadoc")))

>> +   (add-after 'install 'install-doc
>> + (lambda* (#:key outputs #:allow-other-keys)
>> +   (let ((doc-dir (string-append (assoc-ref outputs "out")
>> + "/share/doc/clojure-"
>> + ,version "/"))
>> + (copy-file-to-dir (lambda (file dir)
>> + (copy-file file
>> +(string-append dir
>> +   file)
>> + (for-each delete-file
>> +   (find-files "doc/clojure/"
>> +   ".*\\.(md|markdown|txt)"))
>> + (copy-recursively "doc/clojure/" doc-dir)
>> + (for-each (cut copy-file-to-dir <> doc-dir)
>> +   (filter (cut string-match ".*\\.(html|txt)" <>)

Re: Separate Mailing Lists for Patches vs General Dev Discussion?

2016-07-26 Thread Vincent Legoll
I'm not sure a separate additional ML would enhance the situation,
the combined volume is low enough to let them stay together.

But resurrection & real use of patchwork (or any other consensus
web tracker) would be a plus for at least some of us newcomers
from different horizons.

I can understand the repulsion against some of them, but a PR-like
enabled one could ease the on-boarding of new contributors. So if
it's acceptable to committers, why not try to use one a bit more
regularly ?

-- 
Vincent Legoll



Re: [PATCH] gnu: icecat: Install icons.

2016-07-26 Thread Ludovic Courtès
Alex Griffin  skribis:

> This patch installs some icons so that the IceCat desktop menu entry
> displays its logo.
> -- 
> Alex Griffin
>
> From 3db1ee5a43de65ad14645267b1abcfd323304d45 Mon Sep 17 00:00:00 2001
> From: Alex Griffin 
> Date: Sat, 23 Jul 2016 16:44:46 -0500
> Subject: [PATCH] gnu: icecat: Install icons.
>
> * gnu/packages/gnuzilla.scm (icecat)[arguments]: Add
> 'install-icons' phase.

Applied, thanks!

Ludo’.



Re: [PATCH] doc: 7.6.3 example: revision

2016-07-26 Thread Ludovic Courtès
ng0  skribis:

> From a1a8085fa7626bde0fb1f8a28ba62f5a5c85584a Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Sun, 10 Jul 2016 19:07:03 +
> Subject: [PATCH] doc: Add the revision in the example of 7.6.3.
>
> *doc/guix.texi (Version Numbers): Add the
> revision to the example of the git package used in 7.6.3

Applied, thanks!

Ludo'.



Re: [PATCH] Enhance USB install

2016-07-26 Thread Ludovic Courtès
Vincent Legoll  skribis:

> From: Vincent Legoll 
>
> * doc/guix.texi (USB install): add download & verify subsection,

Sorry for the delay!  First some comments on the verification, which I
think should be treated in a separate commit:

>  This image contains a single partition with the tools necessary for an
>  installation.  It is meant to be copied @emph{as is} to a large-enough
> -USB stick.
> +USB stick.  It can also be used to install GuixSD in a QEmu virtual
> +machine (@pxref{USB storage Installation in a VM}).
> +
> +To download and verify this image, follow these steps:
> +
> +@enumerate
> +@item
> +Download the image & signature files using the @command{wget} command:
> +
> +@example
> +wget 
> ftp://alpha.gnu.org/gnu/guix/guixsd-usb-install-@value{VERSION}.@var{system}.xz
> +wget 
> ftp://alpha.gnu.org/gnu/guix/guixsd-usb-install-@value{VERSION}.@var{system}.xz.sign
> +@end example
> +
> +@item
> +Get the PGP key using the @command{gpg} command:
> +
> +@example
> +gpg --keyserver keys.gnupg.net --recv-keys 3D9AEBB5
> +@end example
> +
> +@item
> +Check download integrity using the @command{gpg} command:
> +
> +@example
> +gpg --verify guixsd-usb-install-@value{VERSION}.@var{system}.xz.sig
> +@end example

I took a slightly different approach in commit
debc6360e111e8efc8a938b2aef28e5b3616ada8, where I essentially copied the
text from “Binary Installation”.

I’ll comment on the rest later.

Thanks,
Ludo’.



Re: Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread Mathieu Lirzin
l...@gnu.org (Ludovic Courtès) writes:

> I’m happy to announce that Ricardo Wurmus has just been appointed by the
> GNU overseers to join me as co-maintainer of GNU Guix.

Congratulations Ricardo!

-- 
Mathieu Lirzin



packaging qt applications

2016-07-26 Thread David Craven
Hi,

A package I'm working on depends on both qtbase and qtdeclarative. In
the configure phase I get an error that Qt5Config.cmake doesn't find
Qt5QmlConfig.cmake. When I use a snippet to remove this check I get:

```scheme
(snippet
   '(substitute* "CMakeLists.txt"
 (("find_package.*Qt5.*Qml Quick.*\n")
"find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core
DBus Gui)\n")
```

```sh
CMake Error at 
/gnu/store/ngnz5l2v22a6wnr7lshlm02jykmhzl3z-qtdeclarative-5.6.1-1/lib/cmake/Qt5Qml/Qt5QmlConfig.cmake:87
(find_package):
  Could not find a package configuration file provided by "Qt5Network"
  (requested version 5.6.1) with any of the following names:

Qt5NetworkConfig.cmake
qt5network-config.cmake

  Add the installation prefix of "Qt5Network" to CMAKE_PREFIX_PATH or set
  "Qt5Network_DIR" to a directory containing one of the above files.  If
  "Qt5Network" provides a separate development package or SDK, be sure it has
  been installed.
Call Stack (most recent call first):
  declarative/compositor/CMakeLists.txt:2 (find_package)
```
The CMAKE_PREFIX_PATH seems to be set correctly and no matter what
CMAKE_PREFIX_PATH or other env variables I set I keep getting one or
the other error.

Has some else run into this issue and managed to fix it?

David



Re: [PATCH] Enhance USB install

2016-07-26 Thread Vincent Legoll
> I took a slightly different approach in commit
> debc6360e111e8efc8a938b2aef28e5b3616ada8, where I essentially copied the
> text from “Binary Installation”.

OK, I saw that duplication, but only after I sent the patch for review...

> I’ll comment on the rest later.

Thanks

-- 
Vincent Legoll



Re: Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread Andreas Enge
On Tue, Jul 26, 2016 at 09:28:56AM -0400, Thompson, David wrote:
> Congrats Ricardo!  I can think of no one better for the job. :)

Indeed, I concur! So congratulations to you, Ricardo, and also to Guix!

Andreas




Re: Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread Thompson, David
On Tue, Jul 26, 2016 at 6:27 AM, Ludovic Courtès  wrote:
> Hello Guix!
>
> I’m happy to announce that Ricardo Wurmus has just been appointed by the
> GNU overseers to join me as co-maintainer of GNU Guix.

Congrats Ricardo!  I can think of no one better for the job. :)

- Dave



Re: Odd behavior with --dry-run and --upgrade

2016-07-26 Thread Alex Kost
Ludovic Courtès (2016-07-26 12:50 +0300) wrote:

> Roel Janssen  skribis:
>
>> Ludovic Courtès writes:
[...]
>>> But honestly, I think changing ‘--dry-run’ to do ‘--dry-run --no-grafts’
>>> would be fine, and probably better than the current situation.
>>
>> Could you provide some insight in where I should be looking to att the
>> check to 'graft?'?
>
> Everything that relates to command-line argument processing is in (guix
> scripts build), for the common options, and then in each (guix scripts
> *) module.
>
> Roughly, the change I suggest would be along these lines:
>
>
> diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
> index a02a0d5..daa60b9 100644
> --- a/guix/scripts/build.scm
> +++ b/guix/scripts/build.scm
> @@ -541,7 +541,8 @@ must be one of 'package', 'all', or 'transitive'~%")
> (alist-cons 'file arg result)))
>   (option '(#\n "dry-run") #f #f
>   (lambda (opt name arg result)
> -   (alist-cons 'dry-run? #t result)))
> +   (alist-cons 'dry-run? #t
> +   (alist-cons 'graft? #f result
>   (option '(#\r "root") #t #f
>   (lambda (opt name arg result)
> (alist-cons 'gc-root arg result)))
>
> However, since --dry-run is processed separately in each command, this
> change should probably be duplicated.
>
> Would you like to look into it?
>
> Something similar should be done in the Emacs interface.

What would be "something similar" here?  For CLI it's easy to set
‘graft?’ option as you suggest, and later 'guix-package', 'guix-system'
and other similar procedures from (guix scripts ...) modules
parameterize ‘%graft?’ according to this option.

The only way I see for the Emacs interface is to modify
"emacs/guix-main.scm" to parameterize ‘%graft?’ as well and to set it
depending on the current value of ‘dry-run’.  AFAICT this
parameterization should be added to:

- 'process-package-actions': it is responsible for operations with
  profiles (installing/upgrading/removing packages);

- 'package-source-build-derivation': it is responsible for building
  package sources.

If my understanding is correct, I can make a patch for this.

I can also add 'grafts' option that will appear in prompts (in the
mode-line along with 'substitutes' and 'dry-run'), but I'm not sure if
it will be useful since dry-run will disable grafts anyway.

-- 
Alex



Re: packaging qt applications

2016-07-26 Thread John Darrington
Yes.  I have run into the problem.  Sadly, no I didn't work out how to fix it.

But during trying I did decide one thing - I will never use CMake in any of
my own projects.

J'

On Tue, Jul 26, 2016 at 03:30:48PM +0200, David Craven wrote:
 Hi,
 
 A package I'm working on depends on both qtbase and qtdeclarative. In
 the configure phase I get an error that Qt5Config.cmake doesn't find
 Qt5QmlConfig.cmake. When I use a snippet to remove this check I get:
 
 ```scheme
 (snippet
'(substitute* "CMakeLists.txt"
  (("find_package.*Qt5.*Qml Quick.*\n")
 "find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core
 DBus Gui)\n")
 ```
 
 ```sh
 CMake Error at 
/gnu/store/ngnz5l2v22a6wnr7lshlm02jykmhzl3z-qtdeclarative-5.6.1-1/lib/cmake/Qt5Qml/Qt5QmlConfig.cmake:87
 (find_package):
   Could not find a package configuration file provided by "Qt5Network"
   (requested version 5.6.1) with any of the following names:
 
 Qt5NetworkConfig.cmake
 qt5network-config.cmake
 
   Add the installation prefix of "Qt5Network" to CMAKE_PREFIX_PATH or set
   "Qt5Network_DIR" to a directory containing one of the above files.  If
   "Qt5Network" provides a separate development package or SDK, be sure it 
has
   been installed.
 Call Stack (most recent call first):
   declarative/compositor/CMakeLists.txt:2 (find_package)
 ```
 The CMAKE_PREFIX_PATH seems to be set correctly and no matter what
 CMAKE_PREFIX_PATH or other env variables I set I keep getting one or
 the other error.
 
 Has some else run into this issue and managed to fix it?
 
 David

-- 
Avoid eavesdropping.  Send strong encryted 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: [PATCH] gnu: make-bootstrap: Produce the correct %glibc-bootstrap-tarball for Hurd systems.

2016-07-26 Thread Manolis Ragkousis
Hello everyone,

This is an updated version of the patch. There was a reference to
another patch of mine, so it couldn't apply cleanly on core-updates-next.

Ludo is it okay to push to core-updates-next?

On 06/17/16 19:09, Manolis Ragkousis wrote:
> Hello everyone,
> 
> This is a patch from wip-hurd modified to apply on core-updates.
> 
> Thank you,
> Manolis
> 

Thank you,
Manolis
From a8541a554f9e1653c78b6b45f323426e330d5215 Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis 
Date: Mon, 25 Jul 2016 16:53:40 +0300
Subject: [PATCH] gnu: make-bootstrap: Produce the correct
 %glibc-bootstrap-tarball for Hurd systems.

* gnu/packages/make-bootstrap.scm (%glibc-bootstrap-tarball): Make it a procedure.
  (%glibc-stripped): Make it a procedure and move the kernel specific part from
  here to ...
* guix/build/make-bootstrap.scm (make-stripped-libc): ... here. New file.
* Makefile.am (MODULES): Add it.
---
 Makefile.am |  1 +
 gnu/packages/make-bootstrap.scm | 67 +++-
 guix/build/make-bootstrap.scm   | 84 +
 3 files changed, 108 insertions(+), 44 deletions(-)
 create mode 100644 guix/build/make-bootstrap.scm

diff --git a/Makefile.am b/Makefile.am
index 0771447..fff2500 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -107,6 +107,7 @@ MODULES =	\
   guix/build/emacs-utils.scm			\
   guix/build/graft.scm\
   guix/build/bournish.scm			\
+  guix/build/make-bootstrap.scm \
   guix/search-paths.scm\
   guix/packages.scm\
   guix/import/utils.scm\
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index def9c23..45c09a4 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -33,6 +33,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages multiprecision)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
@@ -325,61 +326,39 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
#t
 (inputs `(("binutils" ,%binutils-static)
 
-(define %glibc-stripped
+(define (%glibc-stripped)
   ;; GNU libc's essential shared libraries, dynamic linker, and headers,
   ;; with all references to store directories stripped.  As a result,
   ;; libc.so is unusable and need to be patched for proper relocation.
+  (define (hurd-triplet? triplet)
+(and (string-suffix? "-gnu" triplet)
+ (not (string-contains triplet "linux"
+
   (let ((glibc (glibc-for-bootstrap)))
 (package (inherit glibc)
   (name "glibc-stripped")
   (build-system trivial-build-system)
   (arguments
-   `(#:modules ((guix build utils))
+   `(#:modules ((guix build utils)
+(guix build make-bootstrap))
  #:builder
  (begin
-   (use-modules (guix build utils))
-
-   (setvbuf (current-output-port) _IOLBF)
-   (let* ((out(assoc-ref %outputs "out"))
-  (libdir (string-append out "/lib"))
-  (incdir (string-append out "/include"))
-  (libc   (assoc-ref %build-inputs "libc"))
-  (linux  (assoc-ref %build-inputs "kernel-headers")))
- (mkdir-p libdir)
- (for-each (lambda (file)
- (let ((target (string-append libdir "/"
-  (basename file
-   (copy-file file target)
-   (remove-store-references target)))
-   (find-files (string-append libc "/lib")
-   "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|libc_nonshared\\.a)$"))
-
- (copy-recursively (string-append libc "/include") incdir)
-
- ;; Copy some of the Linux-Libre headers that glibc headers
- ;; refer to.
- (mkdir (string-append incdir "/linux"))
- (for-each (lambda (file)
- (copy-file (string-append linux "/include/linux/" file)
-(string-append incdir "/linux/"
-   (basename file
-   '("limits.h" "errno.h" "socket.h" "kernel.h"
- "sysctl.h" "param.h" "ioctl.h" "types.h"
- "posix_types.h" "stddef.h"))
-
- (copy-recursively (string-append linux "/include/asm")
-   (string-append incdir "/asm"))
- (copy-recursively (string-append linux "/include/asm-generic")
-   (string-append incdir "/asm-generic"))
-
- #t
-  (inputs `(("libc" ,(let ((target (%current-target-system)))
+   (use-modules (guix build make-bootstrap))
+   (make-stripped-libc (assoc-ref %outputs "out

Re: Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread 宋文武
l...@gnu.org (Ludovic Courtès) writes:

> Hello Guix!
>
> I’m happy to announce that Ricardo Wurmus has just been appointed by the
> GNU overseers to join me as co-maintainer of GNU Guix.
>
> Ricardo is a long-time free software activist and has been making
> significant contributions to Guix for the most part of its young history
> in terms of code, reviews, and talks.  He has deployed Guix on the
> bioinformatics clusters of his workplace and trained his co-workers.  He
> undoubtedly has all the technical and social skills I would expect for
> the job.  Please welcome him warmly!  :-)

Great news, and welcome Ricardo :-)



Re: packaging qt applications

2016-07-26 Thread Andreas Enge
Hello David,

On Tue, Jul 26, 2016 at 03:30:48PM +0200, David Craven wrote:
> the configure phase I get an error that Qt5Config.cmake doesn't find
> Qt5QmlConfig.cmake. When I use a snippet to remove this check I get:
> 
>   Could not find a package configuration file provided by "Qt5Network"
>   (requested version 5.6.1) with any of the following names:
> Qt5NetworkConfig.cmake
> qt5network-config.cmake

only recently did we move towards a modular Qt setup; however, not all modules
are packaged so far. So it is quite possible that QML or network support are
still missing. Efraim should be able to tell you more about it, since he
started the work. (The problem reported yesterday for calibre was of the
same kind, we are missing qtwebkit.)

In the meantime, I would suggest you start packaging using the monolithic Qt
(the variable is named just "qt"; it is version 5.5 instead of the modular
5.6, which should not be a problem). So you can concentrate on your package
first.

If this works, you can still try to replace qt by the modular one. And if some
packages are missing, patches to add them will be very welcome!

Andreas




Re: [PATCH] gnu: gmime: Remove gpg to gpg2 patch.

2016-07-26 Thread Andreas Enge
Hello,

speaking of gmime and gpg, in the latest evaluation of master on hydra:
   http://hydra.gnu.org/eval/109021
gnupg@2.1 fails its tests on i686:
   http://hydra.gnu.org/build/1315032

Maybe someone involved in the recent gnupg changes could have a look?

I understand that the gmime failure is solved by the patch under
discussion; if not, please also have a look :-)

Andreas




Re: [PATCH] gnu: make-bootstrap: Produce the correct %glibc-bootstrap-tarball for Hurd systems.

2016-07-26 Thread Ludovic Courtès
Hello!

Manolis Ragkousis  skribis:

> From a8541a554f9e1653c78b6b45f323426e330d5215 Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis 
> Date: Mon, 25 Jul 2016 16:53:40 +0300
> Subject: [PATCH] gnu: make-bootstrap: Produce the correct
>  %glibc-bootstrap-tarball for Hurd systems.
>
> * gnu/packages/make-bootstrap.scm (%glibc-bootstrap-tarball): Make it a 
> procedure.
>   (%glibc-stripped): Make it a procedure and move the kernel specific part 
> from
>   here to ...
> * guix/build/make-bootstrap.scm (make-stripped-libc): ... here. New file.
> * Makefile.am (MODULES): Add it.

I like this new (guix build make-bootstrap) module!

It would be ideal if the part that introduces this module were a patch
separate from the Hurd part.  However, that’s too much of a trouble to
split the patch, it’s fine this way.

> +(define (make-stripped-libc output libc kernel-headers)
> +  "Copy to OUTPUT the subset of LIBC and KERNEL-HEADERS that is needed
> +   when producing a bootstrap libc."
  ^
Please align to the left.

> +  (for-each (lambda (file)
> +  (copy-file (string-append kernel-headers "/include/linux/" 
> file)
> + (string-append incdir "/linux/"
> +(basename file

This could be written as:

  (install-file (string-append kernel-headers "/include/linux/" file)
(string-append incdir "/linux"))

> +  (find-files (string-append libc "/lib")
> +  
> "^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|\
> +lib(machuser|hurduser).so.*|libc(rt|)_nonshared\\.a)$"))

Maybe move the regexp to a separate variable for clarity, like:

  (define %libc-object-files-rx "^…")

Otherwise LGTM!

Thanks!

Ludo’.



Re: Odd behavior with --dry-run and --upgrade

2016-07-26 Thread Ludovic Courtès
Alex Kost  skribis:

> The only way I see for the Emacs interface is to modify
> "emacs/guix-main.scm" to parameterize ‘%graft?’ as well and to set it
> depending on the current value of ‘dry-run’.  AFAICT this
> parameterization should be added to:
>
> - 'process-package-actions': it is responsible for operations with
>   profiles (installing/upgrading/removing packages);
>
> - 'package-source-build-derivation': it is responsible for building
>   package sources.
>
> If my understanding is correct, I can make a patch for this.

Yes, it sounds good.

> I can also add 'grafts' option that will appear in prompts (in the
> mode-line along with 'substitutes' and 'dry-run'), but I'm not sure if
> it will be useful since dry-run will disable grafts anyway.

Yeah, I don’t think it’s useful.

Thanks,
Ludo’.



Re: packaging qt applications

2016-07-26 Thread David Craven
The application I'm packaging requires qt >= 5.6. And it's not that
the modules aren't packaged. They aren't found. qtbase provides
Qt5NetworkConfig.cmake and Qt5Qml.cmake is provided by qtdeclarative.
That's why this is weird - I don't know why they aren't found since
CMAKE_PREFIX_PATH is set correctly according to the documentation
find-package will look for cmake files in CMAKE_PREFIX_PATH/cmake
which is exactly where they are... strace doesn't provide any insight
into where it's going wrong either :/



Re: [PATCH] gnu: Add neomutt.

2016-07-26 Thread ng0
Correction.

Segfaults when new emails are being added.
This is close to working, but needs some more fixes.

ng0  writes:

> Hi,
>
> Ricardo Wurmus  writes:
>
>> ng0  writes:
>>
>>> In gnu/packages/mail.scm I created this package.
>>> It builds succesfully, but when I run it, it segfaults.
>
> A version bump fixed this.
> Fixed, if the problem was not getting into the application and exiting,
> this is now possible.
>
>>> Running it in gdb however makes it succeed and not
>>> segfault. How do I debug such a software?
>>
>> Have you tried running with “strace -f” to see what it appears to be
>> doing when the segfault occurs?
>>
>> ~~ Ricardo
>
> Email in general makes me angry at the moment and I'm looking
> for a fix to the many many messages I have, so I'm looking to use this
> again in combination with notmuch instead of Gnus to see if it makes me
> less angry and gets me faster down to almost zero inbox.
>
> Configure "--enable-notmuch" requires gmime fix as it depends on notmuch
> and then on emacs which in turn requires this fix, this is disabled now.
> neomutt has many features, the ones I enable are the most obvious ones
> to me.
>
>
> From a530c2b70e8216d54dd48e1ca2ef5853c4b08f3f Mon Sep 17 00:00:00 2001
> From: ng0 
> Date: Tue, 26 Jul 2016 14:15:55 +
> Subject: [PATCH] gnu: Add neomutt.
>
> * gnu/packages/mail.scm (neomutt): New variable.
>
> Signed-off-by: ng0 
> ---
>  gnu/packages/mail.scm | 50 ++
>  1 file changed, 50 insertions(+)
>
> diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
> index 9214b73..24638a6 100644
> --- a/gnu/packages/mail.scm
> +++ b/gnu/packages/mail.scm
> @@ -15,6 +15,7 @@
>  ;;; Copyright © 2016 Lukas Gradl 
>  ;;; Copyright © 2016 Alex Kost 
>  ;;; Copyright © 2016 Troy Sankey 
> +;;; Copyright © 2016 ng0 
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -214,6 +215,55 @@ aliasing facilities to work just as they would on normal 
> mail.")
>  operating systems.")
>  (license gpl2+)))
>
> +(define-public neomutt
> +  (package
> +(inherit mutt)
> +(name "neomutt")
> +(version "20160723")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri (string-append "https://github.com/"; name "/" name
> +   "/archive/" name "-" version ".tar.gz"))
> +   (sha256
> +(base32
> + "038f7g3hwbb9cxmxq69gx01cw6ayxscbgsqblksrfsqf7fggxvnh"
> +(inputs
> + `(("cyrus-sasl" ,cyrus-sasl)
> +   ("gdbm" ,gdbm)
> +   ("gpgme" ,gpgme)
> +   ("ncurses" ,ncurses)
> +   ("openssl" ,openssl)
> +   ("perl" ,perl)
> +   ("libxslt" ,libxslt)
> +   ("libidn" ,libidn)))
> +   ;;("notmuch" ,notmuch))) ; enable once gmime is fixed
> +(native-inputs
> + `(("autoconf" ,autoconf)
> +   ("automake" ,automake)
> +   ("pkg-config" ,pkg-config)))
> +(arguments
> + `(#:configure-flags
> +   '("--enable-smtp"
> + "--enable-imap"
> + "--enable-pop"
> + "--enable-gpgme"
> + "--enable-hcache" ; for header caching
> + "--with-ssl"
> + "--with-sasl"
> + "--with-regex"
> + "--enable-smime"
> + ;;"--enable-notmuch" ; enable once gmime is fixed
> + "--with-idn"
> + ;; so that mutt does not check whether the path
> + ;; exists, which it does not in the chroot
> + "--with-mailpath=/var/mail")
> +   #:phases
> +   (modify-phases %standard-phases
> + (add-after 'unpack 'autoconf
> +   (lambda _
> + (zero? (system* "sh" "autoreconf" "-vfi")
> +
>  (define-public gmime
>(package
>  (name "gmime")
> --
> 2.9.1
>
>
> --
> ♥Ⓐ  ng0
> Current Keys: https://we.make.ritual.n0.is/ng0.txt
> For non-prism friendly talk find me on http://www.psyced.org
>

-- 
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org



[PATCH] gnu: Add neomutt.

2016-07-26 Thread ng0
Hi,

Ricardo Wurmus  writes:

> ng0  writes:
>
>> In gnu/packages/mail.scm I created this package.
>> It builds succesfully, but when I run it, it segfaults.

A version bump fixed this.
Fixed, if the problem was not getting into the application and exiting,
this is now possible.

>> Running it in gdb however makes it succeed and not
>> segfault. How do I debug such a software?
>
> Have you tried running with “strace -f” to see what it appears to be
> doing when the segfault occurs?
>
> ~~ Ricardo

Email in general makes me angry at the moment and I'm looking
for a fix to the many many messages I have, so I'm looking to use this
again in combination with notmuch instead of Gnus to see if it makes me
less angry and gets me faster down to almost zero inbox.

Configure "--enable-notmuch" requires gmime fix as it depends on notmuch
and then on emacs which in turn requires this fix, this is disabled now.
neomutt has many features, the ones I enable are the most obvious ones
to me.


>From a530c2b70e8216d54dd48e1ca2ef5853c4b08f3f Mon Sep 17 00:00:00 2001
From: ng0 
Date: Tue, 26 Jul 2016 14:15:55 +
Subject: [PATCH] gnu: Add neomutt.

* gnu/packages/mail.scm (neomutt): New variable.

Signed-off-by: ng0 
---
 gnu/packages/mail.scm | 50 ++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 9214b73..24638a6 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2016 Lukas Gradl 
 ;;; Copyright © 2016 Alex Kost 
 ;;; Copyright © 2016 Troy Sankey 
+;;; Copyright © 2016 ng0 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -214,6 +215,55 @@ aliasing facilities to work just as they would on normal 
mail.")
 operating systems.")
 (license gpl2+)))

+(define-public neomutt
+  (package
+(inherit mutt)
+(name "neomutt")
+(version "20160723")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/"; name "/" name
+   "/archive/" name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "038f7g3hwbb9cxmxq69gx01cw6ayxscbgsqblksrfsqf7fggxvnh"
+(inputs
+ `(("cyrus-sasl" ,cyrus-sasl)
+   ("gdbm" ,gdbm)
+   ("gpgme" ,gpgme)
+   ("ncurses" ,ncurses)
+   ("openssl" ,openssl)
+   ("perl" ,perl)
+   ("libxslt" ,libxslt)
+   ("libidn" ,libidn)))
+   ;;("notmuch" ,notmuch))) ; enable once gmime is fixed
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("pkg-config" ,pkg-config)))
+(arguments
+ `(#:configure-flags
+   '("--enable-smtp"
+ "--enable-imap"
+ "--enable-pop"
+ "--enable-gpgme"
+ "--enable-hcache" ; for header caching
+ "--with-ssl"
+ "--with-sasl"
+ "--with-regex"
+ "--enable-smime"
+ ;;"--enable-notmuch" ; enable once gmime is fixed
+ "--with-idn"
+ ;; so that mutt does not check whether the path
+ ;; exists, which it does not in the chroot
+ "--with-mailpath=/var/mail")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'autoconf
+   (lambda _
+ (zero? (system* "sh" "autoreconf" "-vfi")
+
 (define-public gmime
   (package
 (name "gmime")
--
2.9.1


--
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org



[PATCH] gnu: Add perl-db_file.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/databases.scm (perl-db_file): New variable.

---
 gnu/packages/databases.scm | 37 +
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 86cf883..b5c6de0 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1013,3 +1013,40 @@ trees (LSM), for sustained throughput under random 
insert workloads.")
 (license gpl3) ; or GPL-2
 ;; configure.ac: WiredTiger requires a 64-bit build.
 (supported-systems '("x86_64-linux" "mips64el-linux"
+
+(define-public perl-db_file
+ (package
+  (name "perl-db_file")
+  (version "1.838")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0yp5d5zr8dk9g6xdh7ygi5bq63q7nxvhd58dk2i3ki4nb7yv2yh9"
+  (build-system perl-build-system)
+  (inputs `(("bdb" ,bdb)))
+  (native-inputs `(("perl-test-pod" ,perl-test-pod)))
+  (arguments
+ `(#:phases (modify-phases %standard-phases
+  (add-before
+   'configure 'replace-config.in
+   (lambda* (#:key inputs #:allow-other-keys)
+ (call-with-output-file "config.in"
+   (lambda (port)
+ (format port "
+INCLUDE = ~a/include
+LIB = ~:*~a/lib
+PREFIX = size_t
+HASH = u_int32_t
+"
+ (assoc-ref inputs "bdb")
+  (home-page "http://search.cpan.org/dist/DB_File";)
+  (synopsis
+"Perl5 access to Berkeley DB version 1.x")
+  (description "DB_File provides access to Berkeley DB version 1.x.")
+  (license (package-license perl



Re: Ricardo Wurmus appointed co-maintainer

2016-07-26 Thread Roel Janssen

Ludovic Courtès writes:

> Hello Guix!
>
> I’m happy to announce that Ricardo Wurmus has just been appointed by the
> GNU overseers to join me as co-maintainer of GNUGuix.
>
> Ricardo is a long-time free software activist and has been making
> significant contributions to Guix for the most part of its young history
> in terms of code, reviews, and talks.  He has deployed Guix on the
> bioinformatics clusters of his workplace and trained his co-workers.  He
> undoubtedly has all the technical and social skills I would expect for
> the job.  Please welcome him warmly!  :-)
>
> I don’t like to think in terms of titles, and it’s important to me that
> everyone can contribute to every aspect of the project in their
> capacity, and that decision-making remains consensus-based.  So I asked
> myself what it means to have a maintainer hat.  I think it boils down to
> three duties: safeguarding the project (making sure we remain true to
> our goals, ensure our code of conduct is honored and GNU policies are
> followed), giving a direction and providing guidance (paying attention
> to the release schedule, not losing track of priorities, being “present”
> and aware of ongoing developments), and overseeing the infrastructure
> and administrative things (build farm, FTP uploads, mailing list admin,
> etc.)  Anyone can work on these tasks, but presumably maintainers have
> “the big picture”.
>
> Thank you for joining, Ricardo!
>
> Ludo’.

Congratulations Ricardo!  This is absolutely great news. :)

Kind regards,
Roel Janssen



Re: Separate Mailing Lists for Patches vs General Dev Discussion?

2016-07-26 Thread Danny Milosavljevic
Hi,

On Mon, 25 Jul 2016 22:35:57 +0200
Florian Paul Schmidt  wrote:

> I'm following the Guix-Project, even if not contributing much because of 
> time constraints. The one, very simple to implement, thing that would 
> make following the project more easy IMHO would be a separate list for 
> patches. Or maybe the other way around: A separate list for more general 
> discussion :)
> 
> What do you think?

I think it would be easier if you created a filter rule in your mail user agent 
that filters out E-Mails that have subjects that start with "[PATCH". No need 
to seperate mailinglists at the server for that. Also, maybe you will want to 
look at a patch later, and then you have to subscribe to the other list. There 
are enough barriers to contribution already. Patches are posted here in order 
to invite discussion, it's not a commit autobot that posts them or anything. 

Also, at least I post patches as response to non-patch discussions as well - 
that's important for context. I even post bug reports as response to other 
posts - also for context. This context would be lost in your scenario.

I don't see why one would subscribe to the devel mailing list if one didn't 
want to see patches. I mean what would the development consist of? Writing 
poems? :)

There's a user help list, help-guix. I'm not subscribed to it. Just now I 
checked help-guix archives and there was a discussion about Guix on ARM I would 
have been interested in but completely missed. Creating another list would make 
it worse in my opinion.



Re: [PATCH] gnu: Add neomutt.

2016-07-26 Thread ng0
It's not functional yet, but this reflects my work in progress.

From 4bf9dd1e37bfba583fcf2d9a1c749c535eedf612 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Tue, 26 Jul 2016 14:15:55 +
Subject: [PATCH] gnu: Add neomutt.

* gnu/packages/mail.scm (neomutt): New variable.

Signed-off-by: ng0 
---
 gnu/packages/mail.scm | 72 +++
 1 file changed, 72 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 9214b73..b54127d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2016 Lukas Gradl 
 ;;; Copyright © 2016 Alex Kost 
 ;;; Copyright © 2016 Troy Sankey 
+;;; Copyright © 2016 ng0 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -72,6 +73,7 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages docbook)
   #:use-module ((guix licenses)
 #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
non-copyleft (expat . license:expat)))
@@ -214,6 +216,76 @@ aliasing facilities to work just as they would on normal 
mail.")
 operating systems.")
 (license gpl2+)))

+(define-public neomutt
+  (package
+(inherit mutt)
+(name "neomutt")
+(version "20160723")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/"; name "/" name
+   "/archive/" name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "038f7g3hwbb9cxmxq69gx01cw6ayxscbgsqblksrfsqf7fggxvnh"
+(inputs
+ `(("cyrus-sasl" ,cyrus-sasl)
+   ("gdbm" ,gdbm)
+   ("gpgme" ,gpgme)
+   ("ncurses" ,ncurses) ; ncurses or slang
+   ("gnutls" ,gnutls)
+   ("openssl" ,openssl) ; smime
+   ("perl" ,perl)
+   ("libxslt" ,libxslt)
+   ("libidn" ,libidn)
+   ("libxml2" ,libxml2)
+   ("docbook-xsl" ,docbook-xsl)))
+   ;;("notmuch" ,notmuch))) ; enable once gmime is fixed
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("pkg-config" ,pkg-config)))
+(arguments
+ `(#:configure-flags
+   (list "--enable-smtp"
+ "--enable-imap"
+ "--enable-pop"
+ "--enable-gpgme"
+
+ ;; header caching and a database
+ "--without-tokyocabinet"
+ "--without-qdbm"
+ "--without-bdb"
+ "--without-lmdb"
+ "--with-gdbm"
+ "--enable-hcache" ; for header caching
+
+ "--with-gnutls"
+ "--without-ssl"
+ "--with-sasl"
+
+ "--with-regex"
+ "--enable-smime"
+ ;;"--enable-notmuch" ; enable once gmime is fixed
+ "--with-idn"
+
+ ;; so that mutt does not check whether the path
+ ;; exists, which it does not in the chroot
+ "--with-mailpath=/var/mail"
+
+ "--with-external-dotlock"
+ "--enable-nntp"
+ "--enable-compressed"
+
+ (string-append "--with-curses="
+(assoc-ref %build-inputs "ncurses")))
+   #:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'autoconf
+   (lambda _
+ (zero? (system* "sh" "autoreconf" "-vfi")
+
 (define-public gmime
   (package
 (name "gmime")
--
2.9.1


--
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org


signature.asc
Description: PGP signature


Re: [PATCH] gnu: gmime: Remove gpg to gpg2 patch.

2016-07-26 Thread Mark H Weaver
Leo Famulari  writes:

> On Mon, Jul 25, 2016 at 11:47:51AM +, ng0 wrote:
>>  (with-fluids ((%default-port-encoding #f))
>>(substitute* (find-files "tests" "\\.c$")
>>  (("(system *\\(\")(/[^ ]*)" all pre prog-path)
>>   (let* ((base (basename prog-path))
>> -(prog (which (if (string=? base "gpg") "gpg2" 
>> base
>> +(prog (which base)))
>> (string-append pre
>>(or prog (error "not found: " 
>> base
>
> I can confirm this fixes the build failure. But, I don't fully
> understand the code that was changed. Can somebody double-check it?

The patch looks good to me.

 Thanks!
   Mark



Re: WIP: neomutt. segfaulting outside of gdb, functional inside.

2016-07-26 Thread Tomáš Čech

On Fri, Jun 24, 2016 at 04:04:43PM +, ng0 wrote:

In gnu/packages/mail.scm I created this package.
It builds succesfully, but when I run it, it segfaults.
Running it in gdb however makes it succeed and not
segfault. How do I debug such a software?


Let it generate coredump and open that in GDB.

S_W


signature.asc
Description: Digital signature


Re: packaging qt applications

2016-07-26 Thread Andreas Enge
On Tue, Jul 26, 2016 at 04:43:05PM +0200, David Craven wrote:
> The application I'm packaging requires qt >= 5.6. And it's not that
> the modules aren't packaged. They aren't found. qtbase provides
> Qt5NetworkConfig.cmake and Qt5Qml.cmake is provided by qtdeclarative.

No idea why this could happen. Maybe you could post your work in progress,
with a bit of luck someone else will have a clue...

Andreas




Re: [PATCH] gnu: Add perl-db_file.

2016-07-26 Thread Danny Milosavljevic
Hi Andreas,

On Tue, 26 Jul 2016 20:35:31 +0200
Andreas Enge  wrote:

> > * gnu/packages/databases.scm (perl-db_file): New variable.  
> > The name should be "perl-db-file": we replace all special characters with 
> > "-".

The package name (not the variable name) was chosen by "guix import cpan". So 
it should probably be fixed in the CPAN importer, too.
 
> Here I would not rewrite the complete file, but instead use substitute* to
> replace "/usr/local/BerkeleyDB" with the assoc-ref. You will find many
> examples of this in the repository. 

Yeah, I thought about it but decided against it - there are very few options in 
that file, substitute* can't substitute entire lines (or only at the beginning 
of the line) or entire words (so it's not safe), the user is supposed to set 
PREFIX and HASH (it's just a coincidence we didn't have to change them) and if 
we did that then new versions of the package could sneak in new options we 
wouldn't notice but we should have changed. Better for it to fail instead of 
silently doing something strange.

But I will use substitute* in the next version of the patch - the unit tests 
should be able to fail for some of the errors.

> +  (description "DB_File provides access to Berkeley DB version 1.x.")
> 
> Maybe add "perl" somewhere in the description? "provides Perl bindings to..."
> or something like that?

OK!



[PATCH v2] gnu: Add perl-db_file.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/databases.scm (perl-db_file): New variable.
---
 gnu/packages/databases.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 86cf883..abda97b 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1013,3 +1013,35 @@ trees (LSM), for sustained throughput under random 
insert workloads.")
 (license gpl3) ; or GPL-2
 ;; configure.ac: WiredTiger requires a 64-bit build.
 (supported-systems '("x86_64-linux" "mips64el-linux"
+
+(define-public perl-db-file
+ (package
+  (name "perl-db-file")
+  (version "1.838")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0yp5d5zr8dk9g6xdh7ygi5bq63q7nxvhd58dk2i3ki4nb7yv2yh9"
+  (build-system perl-build-system)
+  (inputs `(("bdb" ,bdb)))
+  (native-inputs `(("perl-test-pod" ,perl-test-pod)))
+  (arguments
+ `(#:phases (modify-phases %standard-phases
+  (add-before
+   'configure 'modify-config.in
+   (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "config.in"
+   (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
+ #t)
+  (home-page "http://search.cpan.org/dist/DB_File";)
+  (synopsis
+"Perl5 access to Berkeley DB version 1.x")
+  (description
+"DB::File provides Perl bindings to Berkeley DB version 1.x.")
+  (license (package-license perl



Re: packaging qt applications

2016-07-26 Thread David Craven
Also I didn't mention that this only happens when running guix build
greenisland and not when running guix environment greenisland && cmake
.

The snippet is there because I know that Qml and Quick are there, they
just aren't being found. This let's the build continue until the
previous error.

I'm still trying to compile qt 5.6.1-1 so that should fix the problem
(when I get it to build), finding a cause to this problem would be
very nice dough...

```
(define-module (gnu packages wayland)
  #:use-module (gnu packages admin)
  #:use-module (gnu packages fontutils)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages kde-frameworks)
  #:use-module (gnu packages libunwind)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages qt)
  #:use-module (gnu packages xdisorg)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages xorg)
  #:use-module (guix build-system cmake)
  #:use-module (guix build-system gnu)
  #:use-module (guix download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages))

(define-public wayland-protocols
  (package
(name "wayland-protocols")
(version "1.4")
(source (origin
  (method url-fetch)
  (uri (string-append
"https://wayland.freedesktop.org/releases/";
"wayland-protocols-" version ".tar.xz"))
  (sha256
   (base32
"0wpm7mz7ww6nn3vrgz7a9iyk7mk6za73wnq0n54lzl8yq8irljh1"
(build-system gnu-build-system)
(inputs
  `(("wayland" ,wayland)))
(native-inputs
  `(("pkg-config" ,pkg-config)))
(synopsis "Wayland protocols")
(description "Placeholder.")
(home-page "https://wayland.freedesktop.org";)
(license license:expat)))

(define-public greenisland
  (package
(name "greenisland")
(version "0.8.90")
(source (origin
  (method url-fetch)
  (uri (string-append
"https://github.com/greenisland/";
"greenisland/archive/v" version ".tar.gz"))
  (sha256
   (base32
"0454f1xh52f7ibl4w41x3qjfr5kq5yqjpxh5ylhahl8vrzk0ykbx"))
  (modules '((guix build utils)))
  (snippet
'(substitute* "CMakeLists.txt"
  (("find_package.*Qt5.*Qml Quick.*\n")
  "find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG
REQUIRED Core DBus Gui)\n")
(build-system cmake-build-system)
(inputs
  `(("extra-cmake-modules" ,extra-cmake-modules)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("glib" ,glib)
("libdrm" ,libdrm-update)
("libinput" ,libinput)
("libxcursor" ,libxcursor)
("libxkbcommon" ,libxkbcommon)
("mesa" ,mesa-update)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("udev" ,eudev)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)
("xcb-util-cursor" ,xcb-util-cursor)))
(native-inputs
  `(("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(synopsis "QtQuick Wayland compositor and shell for desktop and mobile")
(description "Green Island provides a full blown Wayland compositor for
QtQuick as well as pluggable hardware abstraction, extensions, tools and a
Qt-style API for Wayland clients.")
(home-page "http://hawaiios.org";)
(license (list license:gpl2 license:gpl3 license:lgpl2.1 license:lgpl3
```



Re: packaging qt applications

2016-07-26 Thread David Craven
> I'm still trying to compile qt 5.6.1-1 so that should fix the problem
> (when I get it to build), finding a cause to this problem would be
> very nice dough...

FYI: Finished building qt 5.6.1-1 and got past the configure stage.
I'd still be interested why it didn't work this way...



Re: [PATCH] gnu: Add clojure.

2016-07-26 Thread Ricardo Wurmus

Hi Alex,

> Thanks for the review again, the package definition is now simplier.

You only attached the patch to the Clojure sources.  Could you please
also attach the latest patch to add the clojure package?

> Yes, the ASM library is included as source (not jar) and is one majar
> version behind upstream (4 vs 5). Also, this SO question says it is indeed a
> fork 
> (https://stackoverflow.com/questions/21642115/how-does-the-clojure-compiler-generates-jvm-bytecode).

In this case I think it’s okay to not carve it out of the Clojure source
archive.  Once we need an ASM package in the future we can revisit this
decision and see if we can express one in terms of the other.

>> Here are some more comments about the patch you sent:
>>
>>> +   (replace 'install
>>> + (lambda* (#:key outputs #:allow-other-keys)
>>> +   (let ((java-dir (string-append (assoc-ref outputs "out")
>>> +  "/share/java/")))
>>> + ;; Do not install clojure.jar to avoid collisions.
>>> + (install-file (string-append "clojure-" ,version ".jar")
>>> +   java-dir)
>>> + #t)))
>>
>> You don’t need this.  The “ant-build-system” allows you to override the
>> name of the “jar” archive.  You can change the name to “(string-append
>> "clojure-" ,version ".jar")” there without needing to override the
>> install phase.
>>
> Actually, build.xml does not provide any install target, so we have to
> roll our own. I should have made this clear. I've added a comment to
> clarify this point.

Ah, that’s because you are not using the “build.xml” file that the
“ant-build-system” would generate for you.  That’s correct — we only let
the “ant-build-system” generate a “build.xml” file with standard targets
when there is none or when the provided file cannot be used.

Adding a comment to explain why the install phase needs to be replaced
is sufficient in this case.

>>> +   (add-after 'build 'build-doc
>>> + (lambda _
>>> +   (let* ((markdown-regex "(.*)\\.(md|markdown|txt)")
>>> +  (gsub regexp-substitute/global)
>>> +  (markdown->html (lambda (src-name)
>>> +(zero? (system*
>>> +"pandoc"
>>> +"--output" (gsub #f
>>> + markdown-regex
>>> + src-name
>>> + 1 ".html")
>>> +"--verbose"
>>> +"--from" "markdown_github"
>>> +"--to" "html"
>>> +src-name)
>>> + (every markdown->html
>>> +(find-files "./" markdown-regex)
>>
>> Why is this needed?  Is there no target for building the documentation?
>> If you added “pandoc” to the inputs only for building the documentation
>> please reconsider this decision.  The closure of the “pandoc” package is
>> *massive* as it depends on countless Haskell packages.  You would make
>> the “clojure” package dependent on both Java (which is large) and an
>> even larger set of packages consisting of GHC and numerous packages.
>>
>> Couldn’t you just install the markdown files as they are?
>>
> Sure, we could just install the markdown files as it. Though I am
> curious to know what do you mean the closure is massive. Isn't pandoc
> only needed at build-time, so the user doesn't need to download the
> ghc-pandoc substitute?

I mean that the closure of the “ghc-pandoc” package is big.  Few
markdown files *actually* need the features of the markdown
implementation provided by pandoc; in many cases one of the simpler
implementations can be used.  Especially for packages that provide
programming languages I have a preference for keeping the list of
build-time inputs reasonably small.

> Also, I realize I over look the `javadoc' target,
> which builds documentations in addition to those markdown file. So, I
> change the target to the following:
>
> ;;; The javadoc target is not built by default.
> (add-after 'build 'build-doc
>   (lambda _
> (system* "ant" "javadoc")))
>

Good catch!  Please use “(zero? (system* …))” to make sure that the
phase fails when the ant target fails.

>>> +   (add-after 'install 'install-doc
>>> + (lambda* (#:key outputs #:allow-other-keys)
>>> +   (let ((doc-dir (string-append (assoc-ref outputs "out")
>>> + "/share/doc/clojure-"
>>> + ,version "/"))
>>> + (copy-file-to-dir (lambda (file dir)
>>> + (copy-file file
>>> +  

[PATCH] gnu: Add httping.

2016-07-26 Thread Tobias Geerinckx-Rice
* gnu/packages/networking.scm (httping): New variable.
---
 gnu/packages/networking.scm | 37 +
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 14ae5c3..4adc329 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -31,11 +31,13 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages linux)
@@ -376,3 +378,38 @@ sniffer}, that lets you capture and interactively browse 
the contents of
 network frames.")
 (license license:gpl2+)
 (home-page "https://www.wireshark.org/";)))
+
+(define-public httping
+  (package
+(name "httping")
+(version "2.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://www.vanheusden.com/httping/httping-";
+   version ".tgz"))
+   (sha256
+(base32
+ "1110r3gpsj9xmybdw7w4zkhj3zmn5mnv2nq0ijbvrywbn019zdfs"
+(build-system gnu-build-system)
+(native-inputs
+ `(("gettext" ,gnu-gettext)))
+(inputs
+ `(("fftw" ,fftw)
+   ("ncurses" ,ncurses)
+   ("openssl" ,openssl)))
+(arguments
+ `(#:make-flags (list "CC=gcc"
+  (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+  "PREFIX=")
+   #:tests? #f)) ; no tests
+(home-page "https://www.vanheusden.com/httping/";)
+(synopsis "Web server latency and throughput monitor")
+(description
+ "httping measures how long it takes to connect to a web server, send an
+HTTP(S) request, and receive the reply headers.  It is somewhat similar to
+@command{ping}, but can be used even in cases where ICMP traffic is blocked
+by firewalls or when you want to monitor the response time of the actual web
+application stack itself.")
+(license (list license:agpl3; with permission to link with OpenSSL
+   license:gpl2 ; man pages ('httping*.1')
-- 
2.9.1




[PATCH] gnu: Add perl-net-dns.

2016-07-26 Thread Danny Milosavljevic
From: Danny Milosavljevic 

* gnu/packages/networking.scm (perl-net-dns): New variable.
---
 gnu/packages/networking.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 9e4f7bb..a271543 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -29,6 +29,7 @@
   #:use-module (guix download)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages audio)
@@ -375,3 +376,26 @@ sniffer}, that lets you capture and interactively browse 
the contents of
 network frames.")
 (license license:gpl2+)
 (home-page "https://www.wireshark.org/";)))
+
+(define-public perl-net-dns
+ (package
+  (name "perl-net-dns")
+  (version "1.06")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "07m5331132h9xkh1i6jv9d80f571yva27iqa31aq4sm31iw7nn53"
+  (build-system perl-build-system)
+  (inputs
+`(("perl-digest-hmac" ,perl-digest-hmac)))
+  (home-page "http://search.cpan.org/dist/Net-DNS";)
+  (synopsis
+"Perl Interface to the Domain Name System")
+  (description "Net::DNS is the Perl Interface to the Domain Name System.")
+  (license license:x11)))



Re: [PATCH] gnu: Add httping.

2016-07-26 Thread Ludovic Courtès
Tobias Geerinckx-Rice  skribis:

> * gnu/packages/networking.scm (httping): New variable.

[...]

> +(license (list license:agpl3; with permission to link with 
> OpenSSL
> +   license:gpl2 ; man pages ('httping*.1')

All I see is ‘license.txt’, which says that it’s under GPLv2-only.
Should it be simply ‘license:gpl2’?

The rest looks good to me!

Thanks,
Ludo’.



Perl IO::Socket::INET6 tests need networking

2016-07-26 Thread Danny Milosavljevic
Hi,

I'm trying to package IO::Socket::INET6. However, its tests need to be able to 
listen on an IPv6 port.

guix said:

> IO::Socket::INET6: sock_info: Bad protocol 'tcp' at t/blocking.t line 34.

What now?



[PATCH] gnu: Add perl-socket6.

2016-07-26 Thread Danny Milosavljevic
From: Danny Milosavljevic 

* gnu/packages/networking.scm (perl-socket6): New variable.
---
 gnu/packages/networking.scm | 33 +
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index a271543..c56ec36 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -399,3 +399,36 @@ network frames.")
 "Perl Interface to the Domain Name System")
   (description "Net::DNS is the Perl Interface to the Domain Name System.")
   (license license:x11)))
+
+(define-public perl-socket6
+ (package
+  (name "perl-socket6")
+  (version "0.28")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "11j5jzqbzmwlws9zals43ry2f1nw9qy6im7yhn9ck5rikywrmm5z"
+  (build-system perl-build-system)
+  (arguments
+   `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(args `("Makefile.PL"
+,(string-append "PREFIX=" out)
+"INSTALLDIRS=site")))
+   (setenv "CONFIG_SHELL" (which "sh"))
+   (zero? (apply system* "perl" args
+  (home-page "http://search.cpan.org/dist/Socket6";)
+  (synopsis
+"IPv6 related part of the C socket.h defines and structure manipulators 
for Perl")
+  (description "Socket6 binds the IPv6 related part of the C socket header
+definitions and structure manipulators for Perl.")
+  (license license:bsd-3)))



[PATCH] gnu: Add perl-net-dns-resolver-programmable.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (perl-net-dns-resolver-programmable): New 
variable.
---
 gnu/packages/networking.scm | 33 +
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index c56ec36..2e2d379 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -432,3 +432,36 @@ network frames.")
   (description "Socket6 binds the IPv6 related part of the C socket header
 definitions and structure manipulators for Perl.")
   (license license:bsd-3)))
+
+(define-public perl-net-dns-resolver-programmable
+ (package
+  (name "perl-net-dns-resolver-programmable")
+  (version "v0.003")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ 
"mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
+ "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
+  (sha256
+(base32
+  "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))
+  (patches
+   (list (origin
+   (method url-fetch)
+   (uri 
"https://rt.cpan.org/Public/Ticket/Attachment/1575108/841078/patch.txt";)
+   (sha256
+ (base32
+   
"027fzq1dryqwhkprz4r32vj78qfdnx1mhjx6piag7p62p5npmdic")))
+  (build-system perl-build-system)
+  (native-inputs
+`(("perl-module-build" ,perl-module-build)))
+  (inputs `(("perl-net-dns" ,perl-net-dns)))
+  (home-page
+"http://search.cpan.org/dist/Net-DNS-Resolver-Programmable";)
+  (synopsis
+"programmable DNS resolver class for offline
+emulation of DNS")
+  (description "Net::DNS::Resolver::Programmable is a programmable DNS 
resolver for
+offline emulation of DNS.")
+  (license (package-license perl



Re: [PATCH] gnu: Add perl-db_file.

2016-07-26 Thread Andreas Enge
Hello,

On Tue, Jul 26, 2016 at 09:01:38PM +0200, Danny Milosavljevic wrote:
> Yeah, I thought about it but decided against it - there are very few options 
> in that file, substitute* can't substitute entire lines (or only at the 
> beginning of the line) or entire words (so it's not safe), the user is 
> supposed to set PREFIX and HASH (it's just a coincidence we didn't have to 
> change them) and if we did that then new versions of the package could sneak 
> in new options we wouldn't notice but we should have changed. Better for it 
> to fail instead of silently doing something strange.

well, substitute* is closer to a diff - it makes it easy to see what actually
changes. And I would make the converse argument of you - for the next version,
if more things change (an option is added to the file, for instance), then
the substitute* still has a chance to get a working package. Imagine that
someone without knowledge of the package might be the one to update it, for
instance.

I pushed with tiny changes to the description.

Thanks!

Andreas




Re: gnu/system/u-boot.scm

2016-07-26 Thread Ludovic Courtès
Hi!

Danny Milosavljevic  skribis:

> below is my (untested!) attempt at an u-boot-configuration for use like this
>
>   (bootloader (u-boot-configuration (device "/dev/sda")))

Nice!

> It has been copied from gnu/system/grub.cfg and then I s/grub/u-boot/g and 
> removed all the eyecandy stuff as far as I could. We should end up with 
> U-Boot showing a boot menu if 
>
> (1) The file "extlinux.conf" ends up on the first partition in the root if no 
> partition was marked Active or
> (2) The file "extlinux.conf" ends up on the partition which was marked Active 
> using the flag in the MBR/GPT.
>
> and if someone installed u-boot-sunxi-with-spl.bin at a special sector using 
> dd or something.

OK.  We’ll need to find out exactly what needs to be done and implement
it, similar to ‘install-grub’ in (gnu build install).

> NB: I think "device" would better be called "drive" or something. Everything 
> is a device at this point. More important is that it isn't a partition or a 
> scanner or something :)

To me “device” is to be understood as “/dev” file name in this context.

> Now how do I make u-boot-configuration available in my /etc/config.scm ? :)

Simply (use-modules (gnu system u-boot)) in your config.

However, at this point it won’t do anything useful obviously.  :-)

> NB: I also researched how to chainload grub and there's 
> https://wiki.linaro.org/LEG/Engineering/Kernel/GRUBonUBOOT that describes it. 
> Do we want that?

Dunno, it’s not clear to me what this buys us.

> NB: menu-entry is unchanged. Might make sense to generalize it and move it to 
> a common location.

For now, let’s simply reuse the one from (gnu system grub).  We can
always move it to a more appropriate place later on.

>   (u-boot  u-boot-configuration-u-boot   ; package
>(default (@ (gnu packages u-boot) (make-u-boot-package 
> board

The default value has invalid syntax.  Should be simply:

  (default (make-u-boot-package board))

but I think this doesn’t work (‘board’ will be unbound; yeah,
counter-intuitive.)

You could instead do (default #f) and call ‘make-u-boot-package’ when
that value is #f.

> (define (eye-candy config root-fs system port)
>   "dummy"
>   (mlet* %store-monad ((image #f))
> (return (and image
>  #~(format #$port "")
>

Simply remove it.  :-)

Now, with that in place, we need a few more bits:

  1. An ‘install-u-boot’ procedure that would be the counterpart of
 ‘install-grub’, as discussed above;

  2. (gnu system) should dispatch to either ‘grub-configuration-file’ or
 ‘u-boot-configuration-file’ depending on whether the config
 contains a ‘grub-configuration’ or a ‘u-boot-configuration’ object.

I’m probably forgetting other things, but this is the guts of it.

(Note that I’m happy to provide guidance for the GuixSD side of things,
but I have almost no experience with U-Boot.)

Thanks!

Ludo’.



[PATCH] gnu: Add perl-netaddr-ip.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (perl-netaddr-ip): New variable.
---
 gnu/packages/networking.scm | 33 +
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 2e2d379..684fe2d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -465,3 +465,36 @@ emulation of DNS")
   (description "Net::DNS::Resolver::Programmable is a programmable DNS 
resolver for
 offline emulation of DNS.")
   (license (package-license perl
+
+(define-public perl-netaddr-ip
+ (package
+  (name "perl-netaddr-ip")
+  (version "4.079")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "1rx0dinrz9fk9qcg4rwqq5n1dm3xv2arymixpclcv2q2nzgq4npc"
+  (build-system perl-build-system)
+  (arguments
+`(#:phases
+   (modify-phases %standard-phases
+ (replace 'configure
+   (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+(args `("Makefile.PL"
+,(string-append "PREFIX=" out)
+"INSTALLDIRS=site")))
+   (setenv "CONFIG_SHELL" (which "sh"))
+   (zero? (apply system* "perl" args
+  (home-page
+"http://search.cpan.org/dist/NetAddr-IP";)
+  (synopsis
+"Manages IPv4 and IPv6 addresses and subnets")
+  (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
+  (license (package-license perl



Re: DMD

2016-07-26 Thread Andreas Enge
On Tue, Jul 26, 2016 at 11:52:46AM +0200, Ludovic Courtès wrote:
> > I just noticed that we still have a dmd package (that does not build on 
> > arm).
> > Should we not drop it now that we have the shepherd?
> Yes, please do.

Done in commit d3896fc4ce46e26f2ff7e633344fe38e044023f3.

Andreas




[PATCH] gnu: magit: Fix interactive rebase.

2016-07-26 Thread Alex Griffin
This patch fixes magit's interactive rebase function, which calls perl
and fails if perl is not in PATH.
-- 
Alex Griffin
From 1f73f2635225bfcf942194ffe8c02a07e4705d34 Mon Sep 17 00:00:00 2001
From: Alex Griffin 
Date: Tue, 26 Jul 2016 13:29:51 -0500
Subject: [PATCH] gnu: magit: Fix interactive rebase.

* gnu/packages/emacs.scm (magit): Fix interactive rebase.
---
 gnu/packages/emacs.scm | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 8dd728b..f6e1234 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2016 Matthew Jordan 
 ;;; Copyright © 2016 Roel Janssen 
 ;;; Copyright © 2016 ng0 
+;;; Copyright © 2016 Alex Griffin 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -454,7 +455,9 @@ on stdout instead of using a socket as the Emacsclient does.")
 (build-system gnu-build-system)
 (native-inputs `(("texinfo" ,texinfo)
  ("emacs" ,emacs-minimal)))
-(inputs `(("git" ,git)))
+(inputs
+ `(("git" ,git)
+   ("perl" ,perl)))
 (propagated-inputs
  `(("dash" ,emacs-dash)
("with-editor" ,emacs-with-editor)))
@@ -487,9 +490,12 @@ on stdout instead of using a socket as the Emacsclient does.")
  (add-before
   'build 'patch-exec-paths
   (lambda* (#:key inputs #:allow-other-keys)
-(let ((git (assoc-ref inputs "git")))
+(let ((git (assoc-ref inputs "git"))
+  (perl (assoc-ref inputs "perl")))
   (emacs-substitute-variables "lisp/magit-git.el"
 ("magit-git-executable" (string-append git "/bin/git")))
+  (substitute* "lisp/magit-sequence.el"
+(("perl") (string-append perl "/bin/perl")))
   #t))
 (home-page "http://magit.github.io/";)
 (synopsis "Emacs interface for the Git version control system")
-- 
2.9.2



Re: [PATCH] gnu: Add httping.

2016-07-26 Thread Tobias Geerinckx-Rice
Ludo',

On 26/07/2016 22:34, Ludovic Courtès wrote:
> All I see is ‘license.txt’, which says that it’s under GPLv2-only.
> Should it be simply ‘license:gpl2’?

Dammit, you're right. I wrote the expression for my own use, using git,
then changed it back to a release for submission here. I didn't realise
the relicencing was so recent.

However, in my AGPL3 HEAD, license.txt and LICENSE are still GPLv2 —
i.e. wrong. I'll write myself a note to ignore them when updating. I'll
send a note upstream as well.

Thanks,

T G-R



[PATCH] gnu: Add perl-file-find-object.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/perl.scm (perl-file-find-object): New variable.
---
 gnu/packages/perl.scm | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index aed2a61..daf27f2 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2237,6 +2237,33 @@ It allows you to build rules which specify the desired 
files and
 directories.")
 (license (package-license perl
 
+(define-public perl-file-find-object
+ (package
+  (name "perl-file-find-object")
+  (version "v0.2.13")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0gf13b76b824s73r5rp00v8xrd6dnb5yi5jjavfc394scqv6ldh4"
+  (build-system perl-build-system)
+  (native-inputs
+`(("perl-module-build" ,perl-module-build)))
+  (inputs
+`(("perl-class-xsaccessor" ,perl-class-xsaccessor)))
+  (home-page
+"http://search.cpan.org/dist/File-Find-Object";)
+  (synopsis
+"Object-oriented File::Find replacement in Perl")
+  (description "File::Find::Object is an object-oriented
+File::Find replacement in Perl.")
+  (license artistic2.0)))
+
 (define-public perl-file-find-rule-perl
   (package
 (name "perl-file-find-rule-perl")



[PATCH] gnu: Add perl-file-find-object-rule.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/perl.scm (perl-file-find-object-rule): New variable.
---
 gnu/packages/perl.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index daf27f2..037edbe 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2264,6 +2264,36 @@ directories.")
 File::Find replacement in Perl.")
   (license artistic2.0)))
 
+(define-public perl-file-find-object-rule
+ (package
+  (name "perl-file-find-object-rule")
+  (version "0.0305")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0hs4n3w99q4ylkhg3qhzcwkxqn7zblfj1zjdgl06ca30afkk4cv6"
+  (build-system perl-build-system)
+  (native-inputs
+`(("perl-module-build" ,perl-module-build)))
+  (inputs
+`(("perl-class-xsaccessor" ,perl-class-xsaccessor)
+  ("perl-file-find-object" ,perl-file-find-object)
+  ("perl-number-compare" ,perl-number-compare)
+  ("perl-text-glob" ,perl-text-glob)))
+  (home-page
+"http://search.cpan.org/dist/File-Find-Object-Rule";)
+  (synopsis
+"Alternative interface to File::Find::Object")
+  (description "File::Find::Object::Rule is an alternative Perl
+interface to File::Find::Object.")
+  (license (package-license perl
+
 (define-public perl-file-find-rule-perl
   (package
 (name "perl-file-find-rule-perl")



[PATCH] gnu: Add perl-net-patricia.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (perl-net-patricia): Add variable.
---
 gnu/packages/networking.scm | 31 +++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 684fe2d..d6f9ac9 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -498,3 +498,34 @@ offline emulation of DNS.")
 "Manages IPv4 and IPv6 addresses and subnets")
   (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
   (license (package-license perl
+
+;; Maybe makes sense to add patricialib dependency (it's bundled right now).
+;; See  for the original package it was extracted from.
+;; However, the site above doesn't actually work on my computer.
+(define-public perl-net-patricia
+ (package
+  (name "perl-net-patricia")
+  (version "1.22")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"
+  (build-system perl-build-system)
+  (inputs
+`(("perl-net-cidr-lite" ,perl-net-cidr-lite)
+  ("perl-socket6" ,perl-socket6)))
+  (home-page
+"http://search.cpan.org/dist/Net-Patricia";)
+  (synopsis
+"Patricia Trie Perl module for fast IP address lookups")
+  (description
+"Net::Patricia does IP address lookups quickly in Perl.")
+  ;; The bindings are licensed under GPL2 or later.
+  ;; libpatricia is licensed under 2-clause BSD.
+  (license (list license:gpl2+ license:bsd-2



[PATCH] gnu: Add perl-test-trailingspace.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/perl.scm (perl-test-trailingspace): New variable.
---
 gnu/packages/perl.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 037edbe..ef17b48 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -5606,6 +5606,40 @@ as flexible as possible to the tester.")
   "Test-Output-" version))
 (license (package-license perl
 
+(define-public perl-test-trailingspace
+ (package
+  (name "perl-test-trailingspace")
+  (version "0.0300")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "01slmrcjfq38mpdg3hlb7lnnbgsqbn26958y3hzx0zwrif40pigr"
+  (build-system perl-build-system)
+  (native-inputs
+`(("perl-module-build" ,perl-module-build)
+  ("perl-file-find-object" ,perl-file-find-object)
+  ("perl-class-xsaccessor" ,perl-class-xsaccessor)))
+  (inputs
+`(("perl-file-find-object-rule"
+   ,perl-file-find-object-rule)
+  ("perl-text-glob"
+   ,perl-text-glob)
+  ("perl-number-compare"
+   ,perl-number-compare)))
+  (home-page
+"http://search.cpan.org/dist/Test-TrailingSpace";)
+  (synopsis
+"test for trailing space in Perl source files.")
+  (description "Test::TrailingSpace tests for trailing spaces
+in Perl source files.")
+  (license x11)))
+
 (define-public perl-test-pod
   (package
 (name "perl-test-pod")



[PATCH] gnu: Add perl-geo-ip.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (perl-geo-ip): Add variable.
---
 gnu/packages/networking.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 41c42c3..79575d0 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -551,3 +551,27 @@ offline emulation of DNS.")
 "Perl extension for merging IPv4 or IPv6 CIDR addresses")
   (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
   (license license:gpl1+)))
+
+;; TODO: Use the geolite-mirror-simple.pl script from the example
+;; directory to stay current with the databases. How?
+(define-public perl-geo-ip
+ (package
+  (name "perl-geo-ip")
+  (version "1.45")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0qinkq2br1cjicbgqb5bvrhm73h7f9f4fgc6bjfs5r6x7316bdqf"
+  (build-system perl-build-system)
+  (home-page "http://search.cpan.org/dist/Geo-IP";)
+  (synopsis
+"Look up location and network information by IP Address in Perl")
+  (description "The Perl module 'Geo::IP'. 
+It looks up location and network information by IP Address.")
+  (license (package-license perl



[PATCH] gnu: Add perl-net-cidr-lite.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (perl-net-cidr-lite): Add variable.
---
 gnu/packages/networking.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index d6f9ac9..41c42c3 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -529,3 +529,25 @@ offline emulation of DNS.")
   ;; The bindings are licensed under GPL2 or later.
   ;; libpatricia is licensed under 2-clause BSD.
   (license (list license:gpl2+ license:bsd-2
+
+(define-public perl-net-cidr-lite
+ (package
+  (name "perl-net-cidr-lite")
+  (version "0.21")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"
+  (build-system perl-build-system)
+  (home-page
+"http://search.cpan.org/dist/Net-CIDR-Lite";)
+  (synopsis
+"Perl extension for merging IPv4 or IPv6 CIDR addresses")
+  (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
+  (license license:gpl1+)))



Re: core-updates, next release, and all that

2016-07-26 Thread Andreas Enge
Hi all,

another big failure: The python update from 2.7.10 to 2.7.11 breaks on mips;
there is one more test failing now (besides the already disabled ones):
test_ctypes.

Andreas




[PATCH] gnu: Add perl-crypt-openssl-bignum.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/tls.scm (perl-crypt-openssl-bignum): New variable.
---
 gnu/packages/tls.scm | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index bdc1d7c..695ef22 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -527,3 +527,37 @@ finally access to the SSL api of the SSLeay/OpenSSL 
package so you can write
 servers or clients for more complicated applications.")
 (license (package-license perl))
 (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/";)))
+
+(define-public perl-crypt-openssl-bignum
+ (package
+  (name "perl-crypt-openssl-bignum")
+  (version "0.06")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "05yzrdglrrzp191krf77zrwfkmzrfwrsrx1vyskbj94522lszk67"
+  (build-system perl-build-system)
+  (inputs `(("openssl" ,openssl)))
+  (arguments
+   `(#:phases (modify-phases %standard-phases
+  (add-before 'configure 'patch-Makefile.PL
+(lambda* (#:key inputs #:allow-other-keys)
+  (substitute* "Makefile.PL"
+(("'LIBS'.*=>.*") (string-append "'LIBS' => ['-L"
+ (assoc-ref inputs "openssl")
+ "/lib -lcrypto'],")))
+  #t)
+  (home-page
+"http://search.cpan.org/dist/Crypt-OpenSSL-Bignum";)
+  (synopsis
+"OpenSSL's multiprecision integer arithmetic in Perl")
+  (description "Crypt::OpenSSL::Bignum provides multiprecision integer
+arithmetic in Perl.")
+  ;; At your option either gpl1+ or the Artistic License
+  (license (package-license perl



[PATCH] gnu: Add perl-crypt-openssl-random.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/tls.scm (perl-crypt-openssl-random): New variable.
---
 gnu/packages/tls.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 743cac3..7ebb41d 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -563,3 +563,27 @@ servers or clients for more complicated applications.")
 arithmetic in Perl.")
   ;; At your option either gpl1+ or the Artistic License
   (license (package-license perl
+
+(define-public perl-crypt-openssl-random
+ (package
+  (name "perl-crypt-openssl-random")
+  (version "0.11")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0yjcabkibrkafywvdkmd1xpi6br48skyk3l15ni176wvlg38335v"
+  (build-system perl-build-system)
+  (inputs `(("openssl" ,openssl)))
+  (arguments perl-crypt-arguments)
+  (home-page
+"http://search.cpan.org/dist/Crypt-OpenSSL-Random";)
+  (synopsis
+"OpenSSL/LibreSSL pseudo-random number generator access")
+  (description "Crypt::OpenSSL::Random is a OpenSSL/LibreSSL pseudo-random 
number generator")
+  (license (package-license perl



[PATCH] gnu: Add perl-encode-detect.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/perl.scm (perl-encode-detect): Add variable.
---
 gnu/packages/perl.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index ef17b48..3c9923b 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -2920,6 +2920,30 @@ commands.")
 versa using either JSON::XS or JSON::PP.")
 (license (package-license perl
 
+(define-public perl-encode-detect
+ (package
+  (name "perl-encode-detect")
+  (version "1.01")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "1wdv9ffgs4xyfh5dnh09dqkmmlbf5m1hxgdgb3qy6v6vlwx8jkc3"
+  (build-system perl-build-system)
+  (inputs
+`(("perl-module-build" ,perl-module-build)))
+  (home-page
+"http://search.cpan.org/dist/Encode-Detect";)
+  (synopsis
+"Perl Encode::Encoding subclass that detects the encoding of data")
+  (description "Encode::Detect detects the encoding of data for Perl.")
+  (license mpl1.1)))
+
 (define-public perl-json-any
   (package
 (name "perl-json-any")



[PATCH] gnu: Add perl-crypt-openssl-rsa.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/tls.scm (perl-crypt-openssl-rsa): Add variable.
---
 gnu/packages/tls.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 7ebb41d..833bef1 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -587,3 +587,32 @@ arithmetic in Perl.")
 "OpenSSL/LibreSSL pseudo-random number generator access")
   (description "Crypt::OpenSSL::Random is a OpenSSL/LibreSSL pseudo-random 
number generator")
   (license (package-license perl
+
+(define-public perl-crypt-openssl-rsa
+ (package
+  (name "perl-crypt-openssl-rsa")
+  (version "0.28")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/P/PE/PERLER/Crypt-OpenSSL-RSA-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "1gnpvv09b2gpifwdzc5jnhama3d1a4c39lzj9hcaicsb8rvzjmsk"
+  (build-system perl-build-system)
+  (inputs
+`(("perl-crypt-openssl-bignum"
+   ,perl-crypt-openssl-bignum)
+  ("perl-crypt-openssl-random"
+   ,perl-crypt-openssl-random)
+  ("openssl" ,openssl)))
+  (arguments perl-crypt-arguments)
+  (home-page
+"http://search.cpan.org/dist/Crypt-OpenSSL-RSA";)
+  (synopsis
+"RSA encoding and decoding, using the openSSL libraries")
+  (description "Crypt::OpenSSL::RSA does RSA encoding and decoding (using the 
OpenSSL libraries).")
+  (license (package-license perl



Re: [PATCH] gnu: Add perl-crypt-openssl-bignum.

2016-07-26 Thread Danny Milosavljevic
Obsolete, replaced by "[PATCH v2] gnu: Add perl-crypt-openssl-bignum."



[PATCH v2] gnu: Add perl-crypt-openssl-bignum.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/tls.scm (perl-crypt-openssl-bignum, 
perl-crypt-openssl-arguments): New variables.
---
 gnu/packages/tls.scm | 36 
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index bdc1d7c..743cac3 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -527,3 +527,39 @@ finally access to the SSL api of the SSLeay/OpenSSL 
package so you can write
 servers or clients for more complicated applications.")
 (license (package-license perl))
 (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/";)))
+
+(define perl-crypt-arguments
+   `(#:phases (modify-phases %standard-phases
+  (add-before 'configure 'patch-Makefile.PL
+(lambda* (#:key inputs #:allow-other-keys)
+  (substitute* "Makefile.PL"
+(("'LIBS'.*=>.*") (string-append "'LIBS' => ['-L"
+ (assoc-ref inputs "openssl")
+ "/lib -lcrypto'],")))
+  #t)
+
+(define-public perl-crypt-openssl-bignum
+ (package
+  (name "perl-crypt-openssl-bignum")
+  (version "0.06")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "05yzrdglrrzp191krf77zrwfkmzrfwrsrx1vyskbj94522lszk67"
+  (build-system perl-build-system)
+  (inputs `(("openssl" ,openssl)))
+  (arguments perl-crypt-arguments)
+  (home-page
+"http://search.cpan.org/dist/Crypt-OpenSSL-Bignum";)
+  (synopsis
+"OpenSSL's multiprecision integer arithmetic in Perl")
+  (description "Crypt::OpenSSL::Bignum provides multiprecision integer
+arithmetic in Perl.")
+  ;; At your option either gpl1+ or the Artistic License
+  (license (package-license perl



[PATCH] gnu: Add perl-mailtools.

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/mail.scm (perl-mailtools): New variable.
---
 gnu/packages/mail.scm | 29 +++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 5a3ebf0..a6e2279 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2016 Lukas Gradl 
 ;;; Copyright © 2016 Alex Kost 
 ;;; Copyright © 2016 Troy Sankey 
+;;; Copyright © 2016 Danny Milosavljevic 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,11 +71,13 @@
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages web) ; lots of perl packages misclassified there
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses)
-#:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
-   non-copyleft (expat . license:expat)))
+#:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0
+   non-copyleft bsd-3 (expat . license:expat)))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -1260,3 +1263,25 @@ synchronizing with a remote address book, 
@command{vdirsyncer} is recommended.
 Khard can also be used from within the email client @command{mutt}.")
 (home-page "https://github.com/scheibler/khard";)
 (license gpl3+)))
+
+(define-public perl-mailtools
+ (package
+  (name "perl-mailtools")
+  (version "2.18")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "09xm6ymyqwawb21v15wyy721ps2rfxiqx5qdy8912dsp09vrxvnz"
+  (build-system perl-build-system)
+  (inputs `(("perl-timedate" ,perl-timedate)))
+  (home-page
+"http://search.cpan.org/dist/MailTools";)
+  (synopsis "Various e-mail related modules for Perl")
+  (description "MailTools contains E-Mail related modules for Perl.")
+  (license (package-license perl



[PATCH] gnu: Add perl-mail-spf.

2016-07-26 Thread Danny Milosavljevic
* gnu/package/mail.scm (perl-mail-spf): New variable.
---
 gnu/packages/mail.scm | 41 +
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index a6e2279..6d47016 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1285,3 +1285,44 @@ Khard can also be used from within the email client 
@command{mutt}.")
   (synopsis "Various e-mail related modules for Perl")
   (description "MailTools contains E-Mail related modules for Perl.")
   (license (package-license perl
+
+(define-public perl-mail-spf
+ (package
+  (name "perl-mail-spf")
+  (version "v2.9.0")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"
+  (build-system perl-build-system)
+  (native-inputs
+`(("perl-module-build" ,perl-module-build)
+  ("perl-net-dns-resolver-programmable"
+   ,perl-net-dns-resolver-programmable)))
+  (arguments
+   `(#:phases (modify-phases %standard-phases
+   (add-before 'configure 'modify-Build.PL
+ (lambda* (#:key outputs #:allow-other-keys)
+   (substitute* "Build.PL"
+ (("'/usr/sbin'") (string-append "'"
+ (assoc-ref outputs "out")
+ "/sbin'")))
+ #t)
+  (inputs
+`(("perl-error" ,perl-error)
+  ("perl-net-dns" ,perl-net-dns)
+  ("perl-netaddr-ip" ,perl-netaddr-ip)
+  ("perl-uri" ,perl-uri)))
+  (home-page
+"http://search.cpan.org/dist/Mail-SPF";)
+  (synopsis
+"Perl implementation of Sender Policy Framework")
+  (description "Mail::SPF is the Sender Policy Framework implemented
+in Perl.")
+  (license bsd-3)))



wip spamassassin

2016-07-26 Thread Danny Milosavljevic
Hi,

I'm trying to package spamassassin.

I've got it to work with

$ guix build -S spamassassin
... extract it
$ guix environment --pure spamassassin
$ perl Makefile.PL 
PREFIX=/gnu/store/37hdpcyz1b6y5jjwzdmxw14gd1xsf9fv-spamassassin-3.4.1 
INSTALLDIRS=site
$ make
... works fine.

But

$ guix package -i spamassassin

fails with:

...
checking for h_errno... yes
checking for in_addr_t... yes
checking for INADDR_NONE... yes
checking for EX__MAX... yes
checking for EAI_ADDRFAMILY... no
checking for EAI_SYSTEM... (cached) no
checking for EAI_NODATA... (cached) no
configure: creating ./config.status
./configure: line 5848: /bin/sh: No such file or directory
Makefile:1815: recipe for target 'spamc/Makefile' failed
make: *** [spamc/Makefile] Error 1
phase `build' failed after 6.1 seconds
builder for 
`/gnu/store/y604k3bqc40zxclhvja45f2fq8yz4jnz-spamassassin-3.4.1.drv' failed 
with exit code 1
guix package: error: build failed: build of 
`/gnu/store/y604k3bqc40zxclhvja45f2fq8yz4jnz-spamassassin-3.4.1.drv' failed

Why?

Patch:

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 6d47016..1d410cb 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1326,3 +1326,41 @@ Khard can also be used from within the email client 
@command{mutt}.")
   (description "Mail::SPF is the Sender Policy Framework implemented
 in Perl.")
   (license bsd-3)))
+
+(define-public spamassassin
+  (package
+(name "spamassassin")
+(version "3.4.1")
+(source (origin
+  (method url-fetch)
+  (uri (string-append 
"http://mirror.klaus-uwe.me/apache/spamassassin/source/";
+  "Mail-SpamAssassin-" version ".tar.bz2"))
+  (sha256
+   (base32
+"0la6s5ilamf9129kyjckcma8cr6fpb6b5f2fb64v7106iy0ckhd0"
+(build-system perl-build-system)
+(inputs `(("perl-html-parser" ,perl-html-parser)
+  ("perl-net-dns" ,perl-net-dns)
+  ("perl-netaddr-ip" ,perl-netaddr-ip)
+  ("perl-digest-sha1" ,perl-digest-sha1)
+  ("perl-db-file" ,perl-db-file)
+  ("perl-mail-spf" ,perl-mail-spf)
+  ("perl-geo-ip" ,perl-geo-ip)
+  ("perl-net-cidr-lite" ,perl-net-cidr-lite)
+  ; FIXME find and re-add ("perl-razor2" ,perl-razor2)
+  ("perl-io-socket-inet6" ,perl-io-socket-inet6)
+  ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+  ;; FIXME fix and re-add ("perl-mail-dkim" ,perl-mail-dkim)
+  ("perl-dbi" ,perl-dbi)
+  ; FIXME find and re-add ("perl-lwp-useragent" 
,perl-lwp-useragent)
+  ("perl-http-date" ,perl-http-date)
+  ("perl-encode-detect" ,perl-encode-detect)
+  ("perl-net-patricia" ,perl-net-patricia)
+  ; FIXME find and re-add ("perl-net-dns-nameserver" 
,perl-net-dns-nameserver)
+))
+; TODO optional binaries: gpg wget curl fetch
+(synopsis "Spam Filter")
+(description "SpamAssassin is a complete spam checker, featuring local 
tests, remote
+tests, Bayesian filtering, and more.")
+(home-page "http://spamassassin.apache.org/";)
+(license asl2.0)))

It needs all the perl packages I've submitted lately, too.



[PATCH] gnu: Add perl-io-socket-inet6

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (perl-io-socket-inet6): New variable.
---
 gnu/packages/networking.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 14a968d..f89a73e 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -433,6 +433,38 @@ network frames.")
 definitions and structure manipulators for Perl.")
   (license license:bsd-3)))
 
+(define-public perl-io-socket-inet6
+ (package
+  (name "perl-io-socket-inet6")
+  (version "2.72")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append
+ "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-"
+ version
+ ".tar.gz"))
+  (sha256
+(base32
+  "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"
+  (build-system perl-build-system)
+  (native-inputs
+`(("perl-module-build" ,perl-module-build)
+  ("perl-test-pod" ,perl-test-pod)
+  ("perl-test-pod-coverage" ,perl-test-pod-coverage)
+  ;; this doesn't actually work if we do add it.
+  #| ("perl-test-trailingspace" ,perl-test-trailingspace) |#))
+  (inputs `(("perl-socket6" ,perl-socket6)))
+  (arguments `(;; Need network socket API
+   #:tests? #f))
+  (home-page
+"http://search.cpan.org/dist/IO-Socket-INET6";)
+  (synopsis
+"Perl object interface for AF_INET/AF_INET6 domain sockets")
+  (description "IO::Socket::INET6 is an interface for
+AF_INET/AF_INET6 domain sockets in Perl.")
+  (license (package-license perl
+
 (define-public perl-net-dns-resolver-programmable
  (package
   (name "perl-net-dns-resolver-programmable")



Re: [PATCH] gnu: gmime: Remove gpg to gpg2 patch.

2016-07-26 Thread Leo Famulari
On Mon, Jul 25, 2016 at 11:47:51AM +, ng0 wrote:
> Subject: [PATCH] gnu: gmime: Remove gpg to gpg2 patch.
> 
> * gnu/packages/mail.scm (gmime)[arguments]: Remove the patch which peviously
> changed gpg to gpg2 in 'patch-paths-in-tests phase.

Thanks, pushed as ae83dcf6ba9687b7ff123fdd4a81eb952b7b7801 !



Re: [PATCH] gnu: gmime: Remove gpg to gpg2 patch.

2016-07-26 Thread Leo Famulari
On Tue, Jul 26, 2016 at 04:35:28PM +0200, Andreas Enge wrote:
> Hello,
> 
> speaking of gmime and gpg, in the latest evaluation of master on hydra:
>http://hydra.gnu.org/eval/109021
> gnupg@2.1 fails its tests on i686:
>http://hydra.gnu.org/build/1315032
> 
> Maybe someone involved in the recent gnupg changes could have a look?
> 
> I understand that the gmime failure is solved by the patch under
> discussion; if not, please also have a look :-)

I'm confused — that gnupg@2.1 build looks like it succeeded. I read the
log of the test suite and didn't see any failures that were ignored.



Re: wip spamassassin

2016-07-26 Thread Ben Woodcroft

Hi Danny,

Thanks for all your patches.

On 27/07/16 08:50, Danny Milosavljevic wrote:

Hi,

I'm trying to package spamassassin.

I've got it to work with

$ guix build -S spamassassin
... extract it
$ guix environment --pure spamassassin
$ perl Makefile.PL 
PREFIX=/gnu/store/37hdpcyz1b6y5jjwzdmxw14gd1xsf9fv-spamassassin-3.4.1 
INSTALLDIRS=site
$ make
... works fine.

But

$ guix package -i spamassassin

fails with:

...
checking for h_errno... yes
checking for in_addr_t... yes
checking for INADDR_NONE... yes
checking for EX__MAX... yes
checking for EAI_ADDRFAMILY... no
checking for EAI_SYSTEM... (cached) no
checking for EAI_NODATA... (cached) no
configure: creating ./config.status
./configure: line 5848: /bin/sh: No such file or directory


This seems to be the error here. Is "/bin/sh" hard-coded into a file 
somewhere? This path exists outside the build environment, but doesn't 
inside, potentially explaining why compilation works outside but not inside.


ben



[PATCH] gnu: Add python2-pydns

2016-07-26 Thread Danny Milosavljevic
* gnu/packages/networking.scm (python2-pydns): New variable.
---
 gnu/packages/networking.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f89a73e..616d616 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -30,6 +30,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages audio)
@@ -607,3 +608,25 @@ offline emulation of DNS.")
   (description "The Perl module 'Geo::IP'.
 It looks up location and network information by IP Address.")
   (license (package-license perl
+
+(define-public python2-pydns
+ (package
+  (name "python2-pydns")
+  (version "2.3.6")
+  (source
+(origin
+  (method url-fetch)
+  (uri (pypi-uri "pydns" version))
+  (sha256
+(base32
+  "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi"
+  (build-system python-build-system)
+  (native-inputs
+`(("python2-setuptools" ,python2-setuptools)))
+  (arguments
+`(#:tests? #f #| there are no tests |#
+  #:python ,python-2))
+  (home-page "http://pydns.sourceforge.net/";)
+  (synopsis "Python DNS library")
+  (description "Python DNS library")
+  (license license:psfl)))



[PATCH v2] gnu: Add stellarium.

2016-07-26 Thread Danny Milosavljevic
* gnu/local.mk: Include gnu/packages/education.scm .
* gnu/packages/education.scm: Add new file.
* gnu/packages/education.scm (stellarium): New variable.
---
 gnu/local.mk   |  1 +
 gnu/packages/education.scm | 70 ++
 2 files changed, 71 insertions(+)
 create mode 100644 gnu/packages/education.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 94b55cd..08770ff 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -103,6 +103,7 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/dvtm.scm\
   %D%/packages/ebook.scm   \
   %D%/packages/ed.scm  \
+  %D%/packages/education.scm   \
   %D%/packages/elf.scm \
   %D%/packages/emacs.scm   \
   %D%/packages/enchant.scm \
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
new file mode 100644
index 000..287a6b0
--- /dev/null
+++ b/gnu/packages/education.scm
@@ -0,0 +1,70 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Danny Milosavljevic 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see .
+
+(define-module (gnu packages education)
+  #:use-module (ice-9 regex)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages perl)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix svn-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (srfi srfi-1))
+
+(define-public stellarium
+  (package
+(name "stellarium")
+(version "0.14.2")
+(source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/stellarium/"
+ "Stellarium-sources/"
+ version "/stellarium-" version ".tar.gz"))
+ (sha256 (base32
+  
"1xxil0rv61zc08znfv83cpsc47y1gjl2f3njhz0pn5zd8jpaa15a"
+(build-system cmake-build-system)
+(inputs
+  `(("qtbase" ,qtbase)
+("zlib" ,zlib)
+("qtserialport" ,qtserialport)
+("qtscript" ,qtscript)
+("gettext" ,gnu-gettext)))
+;; perl: for pod2man
+(native-inputs
+  `(("qtbase" ,qtbase) ; Qt MOC is needed at compile time
+("qttools" ,qttools) ; FIXME native only?
+("perl" ,perl)))
+(arguments
+  `(#:test-target "tests"
+#:phases (modify-phases %standard-phases
+ (add-before 'check 'set-offscreen-display
+   (lambda args
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ (setenv "HOME" "/tmp")
+ #t)
+(home-page "http://www.stellarium.org/";)
+(synopsis "3D Sky Viewer")
+(description "A sky catalogue to do astronomy with.  Includes 3D sky 
viewer and support
+for tracking using common telescopes.")
+(license license:gpl2+)))



[PATCH v3] gnu: Add stellarium.

2016-07-26 Thread Danny Milosavljevic
* gnu/local.mk: Include gnu/packages/education.scm .
* gnu/packages/education.scm: Add new file.
* gnu/packages/education.scm (stellarium): New variable.
---
 gnu/local.mk   |  1 +
 gnu/packages/education.scm | 70 ++
 2 files changed, 71 insertions(+)
 create mode 100644 gnu/packages/education.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 94b55cd..08770ff 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -103,6 +103,7 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/dvtm.scm\
   %D%/packages/ebook.scm   \
   %D%/packages/ed.scm  \
+  %D%/packages/education.scm   \
   %D%/packages/elf.scm \
   %D%/packages/emacs.scm   \
   %D%/packages/enchant.scm \
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
new file mode 100644
index 000..c8034c3
--- /dev/null
+++ b/gnu/packages/education.scm
@@ -0,0 +1,70 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Danny Milosavljevic 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see .
+
+(define-module (gnu packages education)
+  #:use-module (ice-9 regex)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages perl)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix svn-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (srfi srfi-1))
+
+(define-public stellarium
+  (package
+(name "stellarium")
+(version "0.14.2")
+(source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/stellarium/"
+ "Stellarium-sources/"
+ version "/stellarium-" version ".tar.gz"))
+ (sha256 (base32
+  
"1xxil0rv61zc08znfv83cpsc47y1gjl2f3njhz0pn5zd8jpaa15a"
+(build-system cmake-build-system)
+(inputs
+  `(("qtbase" ,qtbase)
+("zlib" ,zlib)
+("qtserialport" ,qtserialport)
+("qtscript" ,qtscript)
+("gettext" ,gnu-gettext)))
+;; perl: for pod2man
+(native-inputs
+  `(("qtbase" ,qtbase) ; Qt MOC is needed at compile time
+("qttools" ,qttools)
+("perl" ,perl)))
+(arguments
+  `(#:test-target "tests"
+#:phases (modify-phases %standard-phases
+ (add-before 'check 'set-offscreen-display
+   (lambda args
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ (setenv "HOME" "/tmp")
+ #t)
+(home-page "http://www.stellarium.org/";)
+(synopsis "3D Sky Viewer")
+(description "A sky catalogue to do astronomy with.
+Includes 3D sky viewer and support for tracking using common telescopes.")
+(license license:gpl2+)))



Re: [PATCH] gnu: Add clojure.

2016-07-26 Thread Alex Vong
Hi Ricardo,

Ricardo Wurmus  writes:

> Hi Alex,
>
>> Thanks for the review again, the package definition is now simplier.
>
> You only attached the patch to the Clojure sources.  Could you please
> also attach the latest patch to add the clojure package?
>
Ahhh, I think I formatted the wrong patch (I am a new user of
magit). This time the correct one is attached.

>> Yes, the ASM library is included as source (not jar) and is one majar
>> version behind upstream (4 vs 5). Also, this SO question says it is indeed a
>> fork
>> (https://stackoverflow.com/questions/21642115/how-does-the-clojure-compiler-generates-jvm-bytecode).
>
> In this case I think it’s okay to not carve it out of the Clojure source
> archive.  Once we need an ASM package in the future we can revisit this
> decision and see if we can express one in terms of the other.
>
Agreed, I see debian make the split, but it is because they have
multiple packages build-depend on it.

[...]

>> Finally, I want to ask do I need to sign my commit? I sign my commit and
>> do a `magit-format-patch', but it seems the patch does not contain info
>> of the signature.
>
> The signature would not make it into the repository if you sent the
> commit as a patch.  The committer to the central repository at Savannah
> is the one who signs the commit — this does not mean that the committer
> claims authorship, of course.
>
Got it!

> Thanks again for your work.  Please send the missing patch some time :)
>
> ~~ Ricardo

Cheers,
Alex

>From 420ca3add28cb493f69bff44f461b870f6546b51 Mon Sep 17 00:00:00 2001
From: Alex Vong 
Date: Tue, 5 Jul 2016 16:24:20 +0800
Subject: [PATCH] gnu: Add clojure.

* gnu/packages/java.scm (clojure): New variables.
---
 gnu/packages/java.scm | 186 ++
 1 file changed, 186 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 83ffba4..293490a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -142,6 +142,192 @@ is implemented.")
   license:mpl2.0
   license:lgpl2.1+
 
+(define-public clojure
+  (let ((remove-archives '(begin
+(for-each delete-file
+  (find-files "./" ".*\\.(jar|zip)"))
+#t)))
+(package
+  (name "clojure")
+  (version "1.8.0")
+  (source
+   (origin
+ (method url-fetch)
+ (uri
+  (string-append "http://repo1.maven.org/maven2/org/clojure/clojure/";
+ version "/clojure-" version ".zip"))
+ (sha256
+  (base32 "1nip095fz5c492sw15skril60i1vd21ibg6szin4jcvyy3xr6cym"))
+ (modules '((guix build utils)))
+ (snippet remove-archives)))
+  (build-system ant-build-system)
+  (arguments
+   `(#:modules ((guix build ant-build-system)
+(guix build utils)
+(ice-9 ftw)
+(ice-9 regex)
+(srfi srfi-1)
+(srfi srfi-26))
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+   (add-after 'unpack 'unpack-submodule-sources
+ (lambda* (#:key inputs #:allow-other-keys)
+   (let ((unpack
+  (lambda (src-name)
+(and (mkdir-p src-name)
+ (with-directory-excursion src-name
+   (zero? (system* "tar"
+   ;; Use xz for repacked tarball.
+   "--xz"
+   "--extract"
+   "--verbose"
+   "--file" (assoc-ref inputs
+   src-name)
+   "--strip-components=1"))
+ (copy (lambda (src-name)
+ (copy-recursively
+  (string-append src-name "/src/main/clojure/")
+  "src/clj/"
+ (every (lambda (src)
+  (unpack src)
+  (copy src))
+'("data-generators-src" "java-classpath-src"
+  "test-check-src" "test-generative-src"
+  "tools-namespace-src" "tools-reader-src")
+   ;;; The javadoc target is not built by default.
+   (add-after 'build 'build-doc
+ (lambda _
+   (zero? (system* "ant" "javadoc"
+   ;;; Needed since no install target is provided.
+   (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let ((java-dir (string-append (assoc-ref outputs "out")
+  "/share/java/")))
+