Re: Promoting the GNU Kind Communication Guidelines?

2018-10-31 Thread Thomas Danckaert
I may come as a surprise to some, but you *can* contribute to Guix 
without joining the queer or feminist movement (you can even get by 
without using singular they or zhe ;-) ).  In practice, just send 
your patches, be civil and respect all other contributors.  I can't 
remember any occasion where people were banned.  One or two people 
left when they were asked to respect people's choice of pronouns, and 
decided they'd rather leave, but nobody told them to leave...


For sure, this touches on many philosophical and political issues and 
while I respect your deep insight in these matters, and your concern 
for ethnic minorities, I don't think guix-devel is the place to 
discuss them.


Thank you for your time,

Thomas



Re: hydra.gnu.org off-line for maintenance

2018-10-26 Thread Thomas Danckaert

From: Jonathan Brielmaier 
Subject: Re: hydra.gnu.org off-line for maintenance
Date: Fri, 26 Oct 2018 08:01:11 +0200


It's described here:
https://www.gnu.org/software/guix/manual/en/guix.html#Substitute-Server-Authorization

So basically `guix archive --authorize < berlin.guixsd.org.pub`

and then run your commands with:
`--substitute-urls="https://berlin.guixsd.org`


Also, you may want to add this setting globally and permanently, so 
you don't have to specify it every time you run guix.  You can do 
this by passing the option to the guix daemon


 - when using guix on another distribution with systemd, you can 
modify the the ExecStart line in 
/etc/systemd/system/guix-daemon.service as follows:


ExecStart=/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon 
--build-users-group=guixbuild 
"--substitute-urls=https://mirror.hydra.gnu.org 
https://berlin.guixsd.org;


 - when using GuixSD, modify guix-service in your system 
configuration, by specifying the substitute-urls in the 
configuration. (see guix-configuration in 
https://www.gnu.org/software/guix/manual/en/html_node/Base-Services.html 
)


By the way: when revisiting this issue, I found the manual a bit 
confusing.  You'll find all the information you need when you read 
the entire section on substitutes from front to back, but when you 
just try to find specific information using the headlines, it's a bit 
confusing.  For example, to learn about --substitute-urls and the 
daemon settings for other substitute servers, you'll need to read 
"Official Substitute Server", which you might not do when looking to 
add another server.  The subtitle for "Substitute Server 
Authorization" says "How to enable or disable substitutes", but 
doesn't give all the information you need to enable another 
substitute server.


If people here agree, I'd be happy to send a documentation patch.

Sincerely,

Thomas



Re: Dinner in Brussels?

2018-02-01 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Dinner in Brussels?
Date: Tue, 30 Jan 2018 13:34:46 +0100

To those going to the Guix workshop in Brussels this Friday: who’s 
in

for dinner (+ drink) on Friday evening?


Hi,

I probably won't be able to come tomorrow (all day and evening) due 
to unforeseen extra work.  With a lot of luck, I might be able to 
join late afternoon/evening.


I wish you a fun and fruitful meeting!

Thomas


Re: FOSDEM 2018 and announcing a GNU Guix/Guile day!

2017-12-06 Thread Thomas Danckaert
From: Manolis Ragkousis 
Subject: Re: FOSDEM 2018 and announcing a GNU Guix/Guile day!
Date: Tue, 5 Dec 2017 19:59:38 +0200

> If you are going to attend please add your name to the wiki, or just
> respond to this email, so we can order enough lunches!

I'm going to attend.

Thomas



Re: Packaging Jitsi SIP Communicator

2017-11-08 Thread Thomas Danckaert

From: Ben Sturmfels 
Subject: Packaging Jitsi SIP Communicator
Date: Wed, 08 Nov 2017 15:01:32 +1100



Date: Wed, 08 Nov 2017 15:01:32 +1100
Message: 2
X-Mew: <3.3 body> Good PGP sign "Christopher Baines 
" [unknown] UNDEFINED


Hi Folks,

I'm having some trouble packaging Jitsi (a VoIP client written in 
Java).
The attached patch adds the package "jitsi", which completes the 
"build"
phase, but fails as below. Ignoring for now that Jitsi is bundling 
a whole lot

of dependencies, can someone help me understand what’s going on:

[...]

find-files: /gnu/store/kz7kwgm25xk83fc69immm80dazv9gb6x-jitsi-2.10: 
No such file or directory


[...]

builder for 
`/gnu/store/hxpb6xvx324d9i9kxc7ywfwwaz3zgs4z-jitsi-2.10.drv' failed 
to produce output path 
`/gnu/store/kz7kwgm25xk83fc69immm80dazv9gb6x-jitsi-2.10'
@ build-failed 
/gnu/store/hxpb6xvx324d9i9kxc7ywfwwaz3zgs4z-jitsi-2.10.drv - 1 
builder for 
`/gnu/store/hxpb6xvx324d9i9kxc7ywfwwaz3zgs4z-jitsi-2.10.drv' failed 
to produce output path `


Hi,

These messages indicate that the build procedure did not create the 
output directory, i.e. nothing was installed.  So you should have a 
look at the build procedure, and make sure there is an install phase 
that creates and populates the output directory (available as 
(assoc-ref %outputs "out")) with the items that were built.


Thomas


ledger: 5 failing tests

2017-10-26 Thread Thomas Danckaert

Hi,

while checking a change to the boost package (for core-updates), I 
noticed that the package “ledger” fails 5 tests (both before and 
after the change to boost).


In case anyone is familiar with this package and would like to have a 
look:


http://hydra.gnu.org/build/2331320

(It hasn't been built successfully since 2016-08-02 though...)

Thomas


qttools missing CMake version info

2017-10-20 Thread Thomas Danckaert

Hi,

qttools no long has a file Qt5LinguistToolsConfigVersion.cmake in 
/gnu/store/.../ /lib/cmake/Qt5LinguistTools, which breaks the build 
for (among others?) keepassxc.  During the build of qttools, I see a 
warning


WARNING: Cannot open substitute for input 
'/gnu/store/...-qttools-5.9.2/lib/qt5/mkspecs/features/data/cmake/Qt5ConfigVersion.cmake.in'


Does this ring a bell for any of the local qt experts?

Thomas



Re: FOSDEM 2018 Guile devroom

2017-10-18 Thread Thomas Danckaert

From: Manolis Ragkousis 
Subject: FOSDEM 2018 Guile devroom
Date: Thu, 5 Oct 2017 23:34:37 +0300

Unfortunately I have bad news. Our proposal for a devroom at FOSDEM 
2018
has not been accepted. But I think we can still make the best out 
of a
bad situation. That's why I want to encourage people to submit 
talks in
other devrooms/tracks. Ludo posted a list some time ago[1] on 
possible

options. The confirmed devrooms for 2018 will be announced soon. [2]


Just to get everybody excited: https://fosdem.org/2018/schedule 
includes (among others) devrooms for


 - “Package Management”

 - “HPC, Big Data and Data Science”

 - “Distributions”

 - “Containers”

 - “Config Management”

  -“Free Java”

Thomas


Re: hardcoded $HOME/.guix-profile in kdevelop

2017-10-08 Thread Thomas Danckaert

From: Ricardo Wurmus 
Subject: hardcoded $HOME/.guix-profile in kdevelop
Date: Mon, 04 Sep 2017 21:17:44 +0200


I think we should not hardcode the default user profile directory in
application wrappers.  Is it really necessary to add
“$HOME/.guix-profile” to XDG_DATA_DIRS in the wrapper?  Will the 
package

fail to work when it is installed to a different profile?


Finally fixed this (commit 3ceb70e1e).  Apologies for the delay: I 
was trying to fix the tests at the same time, but that didn't work 
out.


cheers,

Thomas


Re: Adopt a patch!

2017-09-23 Thread Thomas Danckaert

Hi Ludo and Maxim,

I knew I wasn't the first one to complain about the e-mail workflow, 
but just wanted to the practical problems I've encountered.  So 
thanks for the hints, sorry I missed them the first time.


I must admit that I'm not very experienced with gitlab or kallithea 
(I just see that gitlab's web interface is better than that of 
debbugs), but hope that someone with stronger experience and opinions 
hears the call for packages and/or services, and packages the best 
one ;-) ).


cheers,

Thomas



Re: Adopt a patch!

2017-09-22 Thread Thomas Danckaert
From: Ricardo Wurmus 
Subject: Re: Adopt a patch!
Date: Thu, 21 Sep 2017 22:31:29 +0200

 It is not only the work load, but also the work-flow […] This means
 switching forth and back between mail, shell, and browser.
>>> […]
 Compare it with an integrated workflow on e.g. Gitlab or github […]
>>>
>>> How does even more reliance on a browser help here?  Surely, we can
>>> automate more things without imposing a web browser-based workflow to
>>> everyone.
>>
>> +1. I don think the glossy interfaces of Github & co. add much to the
>> table in terms of automation. If you want to test the software, you
>> still have to checkout a local copy of it anyway (i.e., leave the
>> browser).
> 
> FWIW, I didn’t mean to claim that there are no problems with the
> email-based workflow.  I just think that we should improve upon it with
> deliberation instead of jumping to the conclusion that Gitlab or Github
> would be better.

I don't mind the e-mail-based workflow in principle, and find it has
some advantages, but there are a few practical issues.  I'll list my
frustrations, maybe there are concrete solutions for some of them:

 - I find that saving a long patch series from a bunch of e-mails, and
   applying them all to a local git checkout is tedious, with a lot of
   potential to miss a patch, apply a wrong one, or otherwise screw up
   (not to mention patches occasionally get mangled somewhere in the
   e-mail pipeline, so git won't apply them).  Also, sometimes patches
   are in the message body, at other times they are attachments,
   ... It *is* a lot of error-prone manual work, compared to just
   fetching a branch with git.  I think this is where the “glossy
   interfaces of Github & co.” do have an advantage.

   Perhaps there are better ways to deal with this, though... Am I
   missing some tricks to easily retrieve a bunch of patches from
   e-mails, and apply them?  Maybe a tutorial by someone who finds the
   current workflow comfortable, could already help.

The other issue is that, in my opinion, the only user-friendly way to
interact with debbugs, is using emacs + debbugs-gnu, once you are
familiar with both.  I think that's a really high barrier.

- I briefly subscribed to the guix-patches mailing list, but found the
  volume of e-mail much too high.

- That leaves debbugs.  I find the web interface quite terrible, it's
   just walls of text you have to find your way through. For example,
   Github's “issues” are much more readable (and you can interact with
   them via e-mail, too).

- The debbugs emacs interface is quite ok (at least there's a threaded
  conversation view), although now you have to learn to use Gnus if
  you want to participate in the conversation.

So I do see the appeal of something like gitlab, but I also wonder how
it could be integrated in the current workflow.  I think it could help
a lot if debbugs took some ideas from github/gitlab, but I don't think
debbugs is actively worked on?

Thomas


Re: hardcoded $HOME/.guix-profile in kdevelop

2017-09-05 Thread Thomas Danckaert

From: Ricardo Wurmus 
Subject: hardcoded $HOME/.guix-profile in kdevelop
Date: Mon, 04 Sep 2017 21:17:44 +0200


I just stumbled upon commit 2f4d08ee7f897e254c6e533ad2d69c7fe4998f38
while looking for an example of a package that uses QT_PLUGIN_PATH. 
 I
noticed that the above commit unconditionally adds 
“$HOME/.guix-profile”

to the XDG_DATA_DIRS.

I think we should not hardcode the default user profile directory in
application wrappers.  Is it really necessary to add
“$HOME/.guix-profile” to XDG_DATA_DIRS in the wrapper?  Will the 
package

fail to work when it is installed to a different profile?


Hi,

some icons were missing from the interface, and adding 
/share to XDG_DATA_DIRS improved that.  But you're right 
that this is not a proper solution (I was young and naive at the time 
;-) ).  Probably it can be solved just as well by installing the 
icons in the proper directory (something like 
/share/icons/hicolor ?).


I'll try to improve this.

There's a similar problem with QT_PLUGIN_PATH, though perhaps that 
will be fixed with the qt/kde install location patches people are 
currently working on.


Thomas


Re: QT install and search paths

2017-09-04 Thread Thomas Danckaert
From: Hartmut Goebel 
Subject: Re: QT install and search paths
Date: Sat, 2 Sep 2017 18:40:44 +0200

> I'll take care of the packages in kde-frameworks.scm, I assume/hope
> Thomas will take care of the ones in kde.scm.

Hi,

Just to make sure, the idea is to:

 1. apply 宋文武's qtbase patch adjusting the paths of various qt components

 2. apply your 2 patches for qtscintilla and qtwebkit

 3. adjust kde.scm so packages in there build correctly?

I'll have a look, but give me some time :)

Thomas


Re: QT install and search paths

2017-08-24 Thread Thomas Danckaert

From: Hartmut Goebel 
Subject: QT install and search paths
Date: Wed, 23 Aug 2017 20:25:10 +0200


[...] I found this in qt.scm
(qtbase):

   (search-path-specification
    (variable "QT_PLUGIN_PATH")
    (files '("plugins")))

This means that `lib/plugins` is *not* included in QT_PLUGIN_PATH
and thus not searched. (Which I assume is the reason for many
test-failures.)


(indeed, e.g. for kdevplatform, I set the QT_PLUGIN_PATH before 
running tests)



Also in qt.scm (qtbase) there is:

   (substitute* qt_config.prf
  …
 (("\\$\\$\\[QT_INSTALL_PLUGINS\\]")
  "$$replace(dir, mkspecs/modules, plugins)")

I assume this should make the plugins to be in stalled in …/plugins,
but KDE framework is installing into …/lib/plugins.


I'm not sure if this is an error, or if KDE chooses this directory on 
purpose.


Either way, I think qtbase's QT_PLUGIN_PATH setting only has an 
effect if a user installs qtbase directly in their profile (or do I 
misunderstand native-search-paths?  The manual doesn't explain the 
difference between "native-search-paths" and "search-paths"), so 
applications using these plugins will still need to set the correct 
environment variable themselves somehow?


A previous discussion is here

https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00776.html

For the kdevelop package, I wrapped the executable, setting a bunch 
of Qt-related environment variables.  This works as a stop-gap, but 
it will break down when a user uses multiple Qt/KDE applications with 
different plugin requirements (some KDE daemons, such as kdeinit, 
need to find all their plugins at the moment they are started).


Ludo suggested using a profile hook to set the required environment 
variables depending on the installed applications, but I never looked 
into it further because wrapping the executable was “good enough” 
for.  For a KDE desktop, I think you'll need a better solution.


Thomas


Re: Deleting system generations

2017-07-01 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Deleting system generations
Date: Sat, 01 Jul 2017 15:15:23 +0200


Thomas: I think you (was it you?) started working on a ‘guix system
delete-generations’ sub-command so make it more accessible.  Any 
update?

:-)


Yes, that's correct :-)  No update, unfortunately, though it's still 
on my todo-list ...  If anyone wants to take over, here's the last 
message about it:


https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00194.html

(the point is to add extra boot configurations to  
so we can handle them properly in guix system switch-generation or 
delete-generations)


Thomas


bootloader API and dual boot

2017-06-01 Thread Thomas Danckaert

Hi Guix,

I had to update my system configuration, which contains a boot menu entry for another 
distribution, to use the new bootloader API, but the manual section on dual boot 
configuration (https://www.gnu.org/software/guix/manual/guix.html#index-dual-boot) was 
not updated for this new API.  I would send a patch myself, but I'm afraid I don't really 
understand the “boot-parameters” record well enough (e.g. things like “root-device” vs 
“store-device” confuse me, and I don't know what "boot-name" means).  Can you 
help me?

Currently, the manual states that extra menu entries can be added as a list of 
 records like the following:

(menu-entry
 (label "The Other Distro")
 (linux "/boot/old/vmlinux-2.6.32")
 (linux-arguments '("root=/dev/sda2"))
 (initrd "/boot/old/initrd"))

but menu-entry is specific to grub (and no longer exported from the grub module).  I 
got it to work using a list of  instead, like the following:

(boot-parameters
 (label "The Other Distro")
 (kernel "/boot/old/vmlinux-2.6.32")
 (kernel-arguments '("root=/dev/sda2"))
 (initrd "/boot/old/initrd")
 (store-device (uuid "xyz"))
 (store-mount-point "/")
 (boot-name #f) ; unnecessary?
 (root-device (uuid "xyz")) ; unnecessary?
)

So I suppose the manual should be changed to reflect this.

I have the impression that “boot-name”, “store-mount-point” and “root-device” are not 
used for a dual boot config record, but I had to add them to get guix system to 
accept my configuration (because there are no default entries for these fields?).  
Also, the names “store-device” and “store-mount-point” are a bit confusing for a 
non-GuixSD distribution (which doesn't necessarily have a store) (or I completely 
misunderstand them :-) ).  Am I right that some of those fields are redundant for 
dual boot configurations?  Can we add default values for some of 
's fields?

Thanks!

Thomas


Re: store reference detection

2017-04-27 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: store reference detection (was Re: JARs and reference 
scanning)

Date: Thu, 27 Apr 2017 15:46:59 +0200


Really? Qt/WxWidgets “hide” store references by default?


Not by default.  But there are cases were I've been bitten:

 - Qt has a “QStringLiteral”, which transforms your character literal
   to a UTF-16-encoded string at compile-time.  For example the
   kdbusaddons source used such a literal to encode the kdeinit5
   executable.  (In this case I patched the code, replacing it by a
   regular string.)

 - Similarly, when I packaged DVDStyler (a wxWidgets program), I
   noticed it also uses wchar_t strings to encode the name of
   executables.  (Here I used wrap-program to set the PATH, instead 
of

   embedding the full store location of the executables)


Does it make sense to expand the reference detecting code (perhaps
this would lead to too many different special cases?), or maybe
provide a mechanism to force references when the daemon cannot 
detect
them.  I suppose you can always add a text file with a list of 
store

items to the output, but maybe there's a more elegant way?


‘propagated-inputs’ is one way to manually specify run-time 
references.
It works at the package level and not at the store level—that is, 
the

store item’s references are unaffected by what ‘propagated-inputs’
contains.  It’s usually enough for our purposes though.

In that sense, I think jars are comparable to Python/Perl libraries,
which do not carry reference information by themselves and thus 
need a

manually-provided ‘propagated-inputs’.


I think it's nice to avoid propagated inputs if possible, because 
they pollute the profile with things the user didn't strictly as for. 
So Hartmuts proposed workaround (embed dependencies in the .jar's, 
if it's really possible, and use a .deps text file in the store to 
enable reference detection) sounds better.


Thomas


store reference detection (was Re: JARs and reference scanning)

2017-04-26 Thread Thomas Danckaert

From: Chris Marusich 
Subject: Re: JARs and reference scanning
Date: Tue, 25 Apr 2017 22:34:02 -0700

I have to admit that I do not know at all how the reference 
scanning and

dependency-tracking in the store works.


As I understand it, the mechanism used by the Guix daemon (and the 
Nix

daemon) for scanning references doesn't work when the output of a
derivation is scrambled in some way (e.g. compressed).  Therefore, 
if we

use JAR files, they should not be compressed.


The code scanning for reference is in nix/libstore/references.cc .  
It looks for base32 hashes encoded as character strings in the 
binaries.


Could/should this be generalized somehow?  Apart from compression, 
store filenames encoded with 16-bit character encodings also cause 
problems (can happen with Qt or WxWidgets).  And the are probably 
more cases where it fails.


Does it make sense to expand the reference detecting code (perhaps 
this would lead to too many different special cases?), or maybe 
provide a mechanism to force references when the daemon cannot detect 
them.  I suppose you can always add a text file with a list of store 
items to the output, but maybe there's a more elegant way?


Thomas



building kodi fails on hydra

2017-04-08 Thread Thomas Danckaert
The kodi build on hydra fails due to seemingly random test failures: 
2 to 4 of its 516 tests tend to fail due to a segfault, and it seems 
like different tests fail at each build attempt:


http://hydra.gnu.org/build/1971604
http://hydra.gnu.org/build/1973068
http://hydra.gnu.org/build/1973406

It builds fine on my laptop. Does anybody have an idea what might 
cause this
problem (could it be a hydra resource shortage)?  Does it make sense 
to restart the build once again?


Thomas



Re: "Perfect Setup" for hacking on Nix?

2017-04-03 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: "Perfect Setup" for hacking on Nix?
Date: Sun, 02 Apr 2017 11:33:16 +0200

I have sometimes found myself looking at the Nix source code that 
is

embedded in the Guix repository.  However, I don't have a lot of
experience with C++, so I don't really know how I should set up my
development environment for hacking on (or just browsing) that 
code.


So, what's the "Perfect Setup" for hacking on Nix?


Good question!  :-)  I use Emacs without any of the fancy things.  
M-x
compile, M-x grep, M-x rgrep, xgtags.el (for GNU GLOBAL tags) are 
good

enough for me.

That said, I’d be happy to hear about new tricks!  Does Semantic 
work

well these days?


I'm quite happy with it (have been, for a number of years already!).
It's code analysis is not perfect (e.g. it doesn't always distinguish
different symbols with the same name), but helps a lot.  It can take
you to function definitions and declarations, show all uses of a
function or variable, display function signatures etc.

I did have to disable Semantic for Scheme buffers, like this:

(add-to-list 'semantic-inhibit-functions
 (lambda () (member major-mode '(scheme-mode

Otherwise, I get constant debugger prompts from the semantic parser
when working with (Guile) Scheme files.  I didn't submit a bug report
so far, because I'm not sure if it's purely a bug in Semantic, or if
there's some interference with Geiser.

For really excellent code analysis of even very messy C and C++ code,
I recommend KDevelop (I tend to use it just to explore and find my 
way around a code base, and then use Emacs for actual editing).


Thomas


Re: Let’s freeze and build ‘core-updates’!

2017-03-30 Thread Thomas Danckaert

From: Marius Bakke 
Subject: Re: Let’s freeze and build ‘core-updates’!
Date: Wed, 29 Mar 2017 15:41:56 +0200


For the rest.. please share your findings!


Perhaps this is not a “finding”, but just a positive anecdote: I 
reconfigured on core-updates and it's working fine (after an 
afternoon of building nss and webkitgtk).


I'm also happy with jmd's util-linux patch d9804e501 which allows 
mount to find helper programs “mount.”.  (I needed that to mount 
cifs/samba shares easily, don't know if anyone else has managed this 
on master?)


Thomas


Re: wrong key used for signing

2017-03-29 Thread Thomas Danckaert

(now actually including the signature... sigh)

From: Marius Bakke <mba...@fastmail.com>
Subject: Re: wrong key used for signing
Date: Tue, 28 Mar 2017 15:03:23 +0200


If you can send a signed message (using key D77D54FD according to
my
books) containing the public key of the key used to sign these
commits
(so they can be verified), I think that is proof enough. Assuming
you
admit to making them, of course :-)


To be clear, simply "vouching" for the commits in a signed message
is
good enough for me. It would be good to have the signing key for
future
reference, but if you don't want to disclose it I'm fine with that.


As Leo found out, it's just an old key (that I didn't intend to use
anymore, I should probably just revoke it).  For now, I signed it
with the new key (find it here:
http://http-keys.gnupg.net/pks/lookup?search=0x91E12B08=vindex).

For sake of completeness: I vouch for the commits referenced in the
attached log.

Thomas

commit e1abe244f3810e5a1bb82ed70c2290e54d87ac95
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 14:16:54 2017 +0100

 gnu: libreoffice: Update to 5.3.1.2.

 * gnu/packages/libreoffice.scm (libreoffice): Update to 5.3.1.2.
 [inputs]: Add libstaroffice and libzmf.
 [arguments]: Remove reference to removed patch; unpack xmlsec
1.2.23 tarball.
 (xmlsec-src-libreoffice): Update to version 1.2.23 tarball.

commit 5dc2875fa279739e79c3ea7bc0bbd85814c25dcc
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 13:57:18 2017 +0100

 gnu: orcus: Update to 0.12.1.

 * gnu/packages/libreoffice.scm (orcus): Update to 0.12.1.
 [inputs]: Add python.

commit 65cb686e887d8e6311f48c716f8fd29d409db5d0
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 13:53:56 2017 +0100

 gnu: libetonyek: Update to 0.1.6.

 * gnu/packages/libreoffice.scm (libetonyek): Update to 0.1.6.
 [arguments]: Add phase 'autoreconf, because configure.ac is
patched.  Add
 configure flag "--with-mdds=1.2".
 [inputs]: Add liblangtag.
 [native-inputs]: Add autoconf and automake.
 * gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch: New
file.
 * gnu/local.mk (dist_patch_DATA): Add it.

commit c2afb00f1145e136d0a97632cbd0a8dc3ccc2ca8
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 13:37:57 2017 +0100

 gnu: Add libstaroffice.

 * gnu/packages/libreoffice.scm (libstaroffice): New variable.

commit 4e70c654d52c0d93069f8ceec0face6f24cb249e
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 12:25:29 2017 +0100

 gnu: ixion: Update to 0.12.2.

 * gnu/packages/libreoffice.scm (ixion): Update to 0.12.2.
 [inputs]: Replace python-2 by python.

commit 9adf830916a244c857187be02b18b25603551781
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 12:19:22 2017 +0100

 gnu: mdds: Upgrade to 1.2.2.

 * gnu/packages/boost.scm (mdds): Upgrade to 1.2.2.

commit 5bcb40fc37b065672c3a88811dfb170a6d44908a
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 11:58:22 2017 +0100

 gnu: Add libzmf.

 * gnu/packages/libreoffice.scm (libzmf): New Variable.


pgpQKjf7Nrf1T.pgp
Description: PGP signature


Re: wrong key used for signing

2017-03-29 Thread Thomas Danckaert

From: Marius Bakke <mba...@fastmail.com>
Subject: Re: wrong key used for signing
Date: Tue, 28 Mar 2017 15:03:23 +0200


If you can send a signed message (using key D77D54FD according to
my
books) containing the public key of the key used to sign these
commits
(so they can be verified), I think that is proof enough. Assuming
you
admit to making them, of course :-)


To be clear, simply "vouching" for the commits in a signed message
is
good enough for me. It would be good to have the signing key for
future
reference, but if you don't want to disclose it I'm fine with that.


As Leo found out, it's just an old key (that I didn't intend to use
anymore, I should probably just revoke it).  For now, I signed it
with the new key (find it here:
http://http-keys.gnupg.net/pks/lookup?search=0x91E12B08=vindex).

For sake of completeness: I vouch for the commits referenced in the
attached log.

Thomas

commit e1abe244f3810e5a1bb82ed70c2290e54d87ac95
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 14:16:54 2017 +0100

  gnu: libreoffice: Update to 5.3.1.2.

  * gnu/packages/libreoffice.scm (libreoffice): Update to 5.3.1.2.
  [inputs]: Add libstaroffice and libzmf.
  [arguments]: Remove reference to removed patch; unpack xmlsec
1.2.23 tarball.
  (xmlsec-src-libreoffice): Update to version 1.2.23 tarball.

commit 5dc2875fa279739e79c3ea7bc0bbd85814c25dcc
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 13:57:18 2017 +0100

  gnu: orcus: Update to 0.12.1.

  * gnu/packages/libreoffice.scm (orcus): Update to 0.12.1.
  [inputs]: Add python.

commit 65cb686e887d8e6311f48c716f8fd29d409db5d0
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 13:53:56 2017 +0100

  gnu: libetonyek: Update to 0.1.6.

  * gnu/packages/libreoffice.scm (libetonyek): Update to 0.1.6.
  [arguments]: Add phase 'autoreconf, because configure.ac is
patched.  Add
  configure flag "--with-mdds=1.2".
  [inputs]: Add liblangtag.
  [native-inputs]: Add autoconf and automake.
  * gnu/packages/patches/libetonyek-build-with-mdds-1.2.patch: New
file.
  * gnu/local.mk (dist_patch_DATA): Add it.

commit c2afb00f1145e136d0a97632cbd0a8dc3ccc2ca8
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 13:37:57 2017 +0100

  gnu: Add libstaroffice.

  * gnu/packages/libreoffice.scm (libstaroffice): New variable.

commit 4e70c654d52c0d93069f8ceec0face6f24cb249e
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 12:25:29 2017 +0100

  gnu: ixion: Update to 0.12.2.

  * gnu/packages/libreoffice.scm (ixion): Update to 0.12.2.
  [inputs]: Replace python-2 by python.

commit 9adf830916a244c857187be02b18b25603551781
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 12:19:22 2017 +0100

  gnu: mdds: Upgrade to 1.2.2.

  * gnu/packages/boost.scm (mdds): Upgrade to 1.2.2.

commit 5bcb40fc37b065672c3a88811dfb170a6d44908a
Author: Thomas Danckaert <thomas.dancka...@gmail.com>
Date:   Fri Mar 24 11:58:22 2017 +0100

  gnu: Add libzmf.

  * gnu/packages/libreoffice.scm (libzmf): New Variable.


wrong key used for signing

2017-03-28 Thread Thomas Danckaert
I accidentally used the wrong key when signing my commits to 
core-updates yesterday.  How can I fix this? A number of commits were 
already made on top of mine, so we'd need to rebase?


These are the offending commits:

b1a8fd2d2 gnu: libreoffice: Update to 5.3.1.2.
90ac806d3 gnu: orcus: Update to 0.12.1.
b85b56dd7 gnu: libetonyek: Update to 0.1.6.
22e52dbd0 gnu: Add libstaroffice.
cb3864392 gnu: ixion: Update to 0.12.2.
57144094b gnu: mdds: Upgrade to 1.2.2.
741916f11 gnu: Add libzmf.

Thomas



Re: Curious link error: symbols not found

2017-03-23 Thread Thomas Danckaert

From: Hartmut Goebel 
Subject: Curious link error: symbols not found
Date: Thu, 23 Mar 2017 15:33:46 +0100


Hi,

just today I tried to compile "ktouch", a KDE and QT application. 
This

failed with *link* errors (see below), which I find very curious.

Let's look at the first error message: To my understanding.the 
package

"kcmutils" should reference to *exactly* the version of Qt (or what
ever), it was build for. So how can it be that some symbol is not 
found?


I tried force-re-building qtbase and the effected packed (as listed
below), but this did not solve the issue.

/gnu/store/…-kcmutils-5.28.0/lib/libKF5KCMUtils.so.5.28.0:
undefined reference to `qt_version_tag@Qt_5.7'
[...]


Perhaps the monolithic Qt (which is at 5.6x) as well as the modular 
Qt are in your profile? If the so from the monolithic Qt is found by 
the linker (or already at profile creation time, as I think the 2 Qt 
versions would lead to collisions), maybe such errors could occur?


Thomas


Re: Let’s freeze and build ‘core-updates’!

2017-03-23 Thread Thomas Danckaert

From: Leo Famulari 
Subject: Re: Let’s freeze and build ‘core-updates’!
Date: Mon, 20 Mar 2017 14:41:45 -0400

Sometimes there is a spurious build failure: The SSH connection 
used for
offloading fails, or the build machine is out of memory. Reply to 
this

thread with a link to the failing build and we will restart it.


The build of hdf5 on armhf has failed, but the build log ends in

@ build-succeeded 
/gnu/store/y1c7fw50l2lyy0f22nndqws2fsjhrfba-hdf5-1.8.18.drv -


https://hydra.gnu.org/build/1883211/nixlog/2/raw

Thomas


Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Thomas Danckaert

From: Leo Famulari 
Subject: Re: Advice about GuixSD on Serveraptor?
Date: Tue, 21 Mar 2017 16:53:35 -0400


On Tue, Mar 21, 2017 at 04:46:20PM -0400, Leo Famulari wrote:
So what I'm doing here is trying to provide Serveraptor with a 
GuixSD

image that they'd offer to users.

People could regenerate the image themselves, but it would be 
difficult

to verify that it matches what is offered by Serveraptor.


And to clarify my previous question: Should this QEMU image be 
created
by me, or should it be created by a Guix maintainer as part of the 
Guix

release process?


Hi,

to add my 2 cents: I think it would be fine if you provided the 
image, if you are confident that it works.


When GuixSD becomes widely available on various hosting providers, 
the Guix maintainers cannot provide all those images (or guarantee 
their correctness) anyway (I imagine that typically an employee of 
such a service would create the image?).  Even now, when you provide 
an image to Serveraptor, you have no way to verify if Serveraptor 
provides the same image to their users (I think?).


Once Serveraptor provides the image you created (or any other GuixSD 
image) to its users, the responsibility lies with them.  
Serveraptor's users will have to trust Serveraptor (and, if they use 
your image, Serveraptor has to trust you, but it sounds like they 
already do :-) ).


Thomas



Re: [PATCH] gnu: Add tftp-hpa.

2017-03-16 Thread Thomas Danckaert
(sorry, something went wrong with my message there)

Hi Leo and Gábor,

I just thought of this patch again today, but Leo beat me to it.

I've looked into the licensing a bit more.  The BSD advertising
issue seems to be a misunderstanding on the part of Debian, at least
as far as the author is concerned:
http://www.syslinux.org/archives/2003-January/001484.html

So, there's no clear license statement included in the package
source, but the author's intention is to distribute the code under a
permissive license, without advertising clause.  I think we can use
(license non-copyleft)?

Without the BSD advertising issues, linking with readline should not
be a problem either, so we can include readline as an input, and
remove statements about readline from the description (I think the
description comes from the Debian/Ubuntu package repositories?).  We
could reuse the description from
https://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git/about,
something like:

 "tftp-hpa is a conglomerate of a number of versions of the BSD
 TFTP code, changed around to port to a whole collection of
 operating systems.  The goal is to work on any reasonably modern
 Unix with sockets."

WDYT?

Thomas


Re: [PATCH] gnu: Add tftp-hpa.

2017-03-16 Thread Thomas Danckaert
<20170206225825.23935-1-boskov...@gmail.com>
X-Mailer: Mew version 6.7 on Emacs 25.1 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: base64

SGkgTGVvIGFuZCBHw6Fib3IsDQoNCkkganVzdCB0aG91Z2h0IG9mIHRoaXMgcGF0Y2ggYWdhaW4g
dG9kYXksIGJ1dCBMZW8gYmVhdCBtZSB0byBpdC4NCg0KSSd2ZSBsb29rZWQgaW50byB0aGUgbGlj
ZW5zaW5nIGEgYml0IG1vcmUuICBUaGUgQlNEIGFkdmVydGlzaW5nIGlzc3VlIA0Kc2VlbXMgdG8g
YmUgYSBtaXN1bmRlcnN0YW5kaW5nIG9uIHRoZSBwYXJ0IG9mIERlYmlhbiwgYXQgbGVhc3QgYXMg
ZmFyIA0KYXMgdGhlIGF1dGhvciBpcyBjb25jZXJuZWQ6DQpodHRwOi8vd3d3LnN5c2xpbnV4Lm9y
Zy9hcmNoaXZlcy8yMDAzLUphbnVhcnkvMDAxNDg0Lmh0bWwNCg0KU28sIHRoZXJlJ3Mgbm8gY2xl
YXIgbGljZW5zZSBzdGF0ZW1lbnQgaW5jbHVkZWQgaW4gdGhlIHBhY2thZ2UgDQpzb3VyY2UsIGJ1
dCB0aGUgYXV0aG9yJ3MgaW50ZW50aW9uIGlzIHRvIGRpc3RyaWJ1dGUgdGhlIGNvZGUgdW5kZXIg
YSANCnBlcm1pc3NpdmUgbGljZW5zZSwgd2l0aG91dCBhZHZlcnRpc2luZyBjbGF1c2UuICAgSSB0
aGluayB3ZSBjYW4gdXNlIA0KKGxpY2Vuc2Ugbm9uLWNvcHlsZWZ0KT8NCg0KV2l0aG91dCB0aGUg
QlNEIGFkdmVydGlzaW5nIGlzc3VlcywgbGlua2luZyB3aXRoIHJlYWRsaW5lIHNob3VsZCBub3Qg
DQpiZSBhIHByb2JsZW0gZWl0aGVyLCBzbyB3ZSBjYW4gaW5jbHVkZSByZWFkbGluZSBhcyBhbiBp
bnB1dCwgYW5kIA0KcmVtb3ZlIHN0YXRlbWVudHMgYWJvdXQgcmVhZGxpbmUgZnJvbSB0aGUgZGVz
Y3JpcHRpb24gKEkgdGhpbmsgdGhlIA0KZGVzY3JpcHRpb24gY29tZXMgZnJvbSB0aGUgRGViaWFu
L1VidW50dSBwYWNrYWdlIHJlcG9zaXRvcmllcz8pLiAgV2UgDQpjb3VsZCByZXVzZSB0aGUgZGVz
Y3JpcHRpb24gZnJvbSANCmh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9uZXR3b3JrL3Rm
dHAvdGZ0cC1ocGEuZ2l0L2Fib3V0LCANCnNvbWV0aGluZyBsaWtlOg0KDQogICAgICAidGZ0cC1o
cGEgaXMgYSBjb25nbG9tZXJhdGUgb2YgYSBudW1iZXIgb2YgdmVyc2lvbnMgb2YgdGhlIEJTRCAN
ClRGVFAgY29kZSwNCmNoYW5nZWQgYXJvdW5kIHRvIHBvcnQgdG8gYSB3aG9sZSBjb2xsZWN0aW9u
IG9mIG9wZXJhdGluZyBzeXN0ZW1zLiAgDQpUaGUgZ29hbA0KaXMgdG8gd29yayBvbiBhbnkgcmVh
c29uYWJseSBtb2Rlcm4gVW5peCB3aXRoIHNvY2tldHMuIg0KDQpXRFlUPw0KDQpUaG9tYXMNCg==



Re: guix system delete-generations -- advice?

2017-03-07 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: guix system delete-generations -- advice?
Date: Tue, 07 Mar 2017 15:42:44 +0100


One thing I'm not satisfied with is this: `reinstall-grub' does not
reproduce custom grub menu entries added in the 
(grub-configuration)

section of a system's bootloader configuration.
[...]
Is there a way to retrieve the current custom grub entries, other 
than
providing a system configuration, or, I hardly dare say it out 
loud,

parsing grub.cfg? How could this be improved?


Very good point, it’s really a shortcoming.

To fix it we could add the extra entries to  (which
you can see as /run/current-system/parameters.)  See what I mean?


Yes, that should work!

As for how to proceed, I’m fine either way: we could commit your 
‘guix
system delete-generation’ patch first, with the understanding that 
it
has the bug you describe, and then fix the bug; or we could do it 
the

other way around.


I'd prefer to fix the bug first.  My patch is a bit messy anyway (I 
just made (delete-matching-generations) an exported function in (guix 
scripts package)), and without the grub fix, it doesn't really 
improve things a lot.



[...]
Doh!  It’s a bug in Guile’s (srfi srfi-37).  Could you send it to
bug-gu...@gnu.org?


Done!

Thomas


Re: gnu-patches back log

2017-03-01 Thread Thomas Danckaert

From: Pjotr Prins 
Subject: Re: gnu-patches back log
Date: Wed, 1 Mar 2017 11:17:15 +


This is the first thing I am trying :). The main difference with the
existing approach is that I want to have more engagement from fresh
contributors who can also peer review. Review is an excellent way of
learning. How exactly we are going to do this is not clear yet. But
that is what I am thinking.


Speaking for myself as a new/beginning contributor: there is a finite 
amount of time I can (want to) spend on Guix, and a large number of 
things I want to fix/improve/experiment for myself.  I now try to 
review some patches occasionally, but of course that takes away from 
the time I have to work on the issues I care most about myself.  (And 
for other contributors: time that cannot be spent on the many other 
important things that need to be done.)


I understand that in the long term, time spent supporting new 
contributors (i.e. helping the community grow) will probably benefit 
Guix (and therefore also me) more than trying to do everything 
myself, but it takes some effort to adopt this mindset.



Meanwhile I want to know what limits people actually have. I think 2
weeks is not acceptable (but that should be obvious).


Of course this is personal, but for me it is acceptable. I assume 
that, when a patch is good, it will eventually make it in, and accept 
that, sometimes, I have to be patient (of course faster is always 
better).  I see a lot of dedication and effort from everybody here, 
and accept that a patch I submit might not be on the top of anyone's 
priority list.


So, I hear your call to slightly reconsider priorities for my 
Guix-time, and try to spend more time mentoring (and will try to do 
that, as far as I can :) ), but also think contributors should assume 
everybody here is doing their best, and have some patience.


Thomas



Re: guix system delete-generations -- advice?

2017-02-14 Thread Thomas Danckaert
(I somehow messed up the encoding/body of previous message, so here it
is again. my apologies)

I added `guix system delete-generations' in my git checkout, WIP patch
attached.  I had started to adapt the corresponding code from `guix
package delete-generations', but then realized that
`delete-matching-generations` from (guix scripts package) contains
everything that's needed (could it be moved to (guix ui)?).

One thing I'm not satisfied with is this: `reinstall-grub' does not
reproduce custom grub menu entries added in the (grub-configuration)
section of a system's bootloader configuration.  So users with a
dual-boot system lose theire non-GuixSD grub entries after running
“guix system delete-generations” (until they run “guix system
reconfigure” again).  The existing “guix system switch-generation” has
the same problem.

Is there a way to retrieve the current custom grub entries, other than
providing a system configuration, or, I hardly dare say it out loud,
parsing grub.cfg? How could this be improved?

cheers, Thomas

ps I also noticed that passing an empty string ("") as a command line
argument to many guix commands returns a guile backtrace, e.g. guix
system list-generations "". I find this a little messy, or is it a
feature?


guix system delete-generations -- advice?

2017-02-14 Thread Thomas Danckaert
Hi Guix,
I added `guix system delete-generations' in my git checkout, WIP patch
attached.  I had started to adapt the corresponding code from `guix
package delete-generations', but then realized that
`delete-matching-generations` from (guix scripts package) contains
everything that's needed (could it be moved to (guix ui)?).
One thing I'm not satisfied with is this: `reinstall-grub' does not
reproduce custom grub menu entries added in the (grub-configuration)
section of a system's bootloader configuration.  So users with a
dual boot system, who run =?utf-8?B?4oCcZ3VpeA==?= system
 =?utf-8?B?ZGVsZXRlLWdlbmVyYXRpb25z4oCd?= will lose
their non-GuixSD grub entries, until they run =?utf-8?B?4oCcZ3VpeA==?=
 system reconfigure
...” again.  The existing =?utf-8?B?4oCcZ3VpeA==?= system
 =?utf-8?B?c3dpdGNoLWdlbmVyYXRpb27igJ0=?= has the same problem.
Is there a way to retrieve the current custom grub entries, other than
 providing a system configuration, or, I hardly dare say it out loud,
 parsing grub.cfg? How could this be improved?
cheers,
Thomas
ps I also noticed that passing an empty string ("") as a command line
 argument to many guix commands returns a guile backtrace, e.g. guix system
 list-generations "". I find this a little messy, or is it a feature?
Mime-Version: 1.0
Content-Type: Text/X-Patch; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="0001-WIP-guix-system-delete-generations.patch"

>From 9dc5a9bfee970e24fd2e65615220f80fb8436c6b Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <p...@thomasdanckaert.be>
Date: Sat, 11 Feb 2017 18:32:42 +0100
Subject: [PATCH] WIP guix system delete-generations.

TODO: how to properly generate grub.cfg?
---
 guix/scripts/package.scm |  2 +-
 guix/scripts/system.scm  | 19 +--
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 9e5b7f3c7..49233708f 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -152,7 +152,7 @@ GENERATIONS is a list of generation numbers."
   (for-each (cut delete-generation* store profile <>)
 generations))
 
-(define (delete-matching-generations store profile pattern)
+(define-public (delete-matching-generations store profile pattern)
   "Delete from PROFILE all the generations matching PATTERN.  PATTERN must be
 a string denoting a set of generations: the empty list means \"all generations
 but the current one\", a number designates a generation, and other patterns
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 144a7fd37..a4e219d70 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -31,6 +31,7 @@
   #:use-module (guix records)
   #:use-module (guix profiles)
   #:use-module (guix scripts)
+  #:use-module ((guix scripts package) #:prefix package:)
   #:use-module (guix scripts build)
   #:use-module (guix graph)
   #:use-module (guix scripts graph)
@@ -548,6 +549,12 @@ PATTERN, a string.  When PATTERN is #f, display all the 
system generations."
 (else
  (leave (_ "invalid syntax: ~a~%") pattern
 
+(define* (delete-generations store pattern #:optional (profile 
%system-profile))
+  "Delete all system generations matching PATTERN, a string, but never delete
+the current generation.  Regenerate grub.cfg if we have deleted something."
+  (package:delete-matching-generations store profile pattern)
+  (reinstall-grub store (generation-number profile))) ; TODO: this removes 
custom grub menu entries.
+
 
 ;;;
 ;;; Action.
@@ -712,6 +719,8 @@ Some ACTIONS support additional ARGS.\n"))
   (display (_ "\
list-generations list the system generations\n"))
   (display (_ "\
+   delete-generations delete system generations\n"))
+  (display (_ "\
buildbuild the operating system without installing anything\n"))
   (display (_ "\
containerbuild a container that shares the host's store\n"))
@@ -880,6 +889,12 @@ argument list and OPTS is the option alist."
(list-generations pattern)))
 ;; The following commands need to use the store, but they do not need an
 ;; operating system configuration file.
+((delete-generations)
+ (let ((pattern (match args
+  ((pattern) pattern)
+  (x (leave (_ "wrong number of arguments~%"))
+   (with-store store
+ (delete-generations store pattern
 ((switch-generation)
  (let ((pattern (match args
   ((pattern) pattern)
@@ -906,8 +921,8 @@ argument list and OPTS is the option alist."
 (let ((action (string->symbol arg)))
   (case action
 ((build container vm vm-image disk-image reconfigure init
-  extension-graph shepherd-graph list-generations roll-back
-  switch-genera

Re: [PATCH 1/2] gnu: Add freerdp.

2017-02-06 Thread Thomas Danckaert

Hi Ricardo,

From: Ricardo Wurmus <rek...@elephly.net>
Subject: Re: [PATCH 1/2] gnu: Add freerdp.
Date: Mon, 06 Feb 2017 21:11:34 +0100


+(arguments
+ `(#:configure-flags
+   '("-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DWITH_PULSE=ON"
+ "-DWITH_CUPS=ON" "-DWITH_SSE2=ON")


Is WITH_SSE2 used to ensure that this won’t use uncommon CPU 
features?


Actually I don't know... why it is used, and it works just fine
without it. I got it from the (possibly outdated) build instructions
at https://github.com/FreeRDP/FreeRDP/wiki/Compilation (which also
suggest to make a “debug” build without explaining why...?).


+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'patch-cmakelists
+   (lambda _
+ (substitute* "channels/client/CMakeLists.txt"
+   (("list\\(REMOVE_DUPLICATES 
CHANNEL_STATIC_CLIENT_ENTRIES\\)")

+"")


Please add a comment that explains why this is needed.  Also make 
sure
to end the phase with “#t” because “substitute*” does not (yet) 
return a

truthy value.


I've added a comment.  It's just that this list is somehow empty, and 
CMake complains that it can't remove duplicates from an empty list 
(...).  (This fix is no longer needed when building freerdp's current 
master, but it seems I can't use freerdp master in current vinagre)



+   #:tests? #f)) ; no 'test' target


Actually, the usual target is “check” :)  The comment should 
probably
either say “no tests” or “no ’check’ target”.  But this is 
nitpicking.


Actually, in a cmake-generated Makefile, it's 'make test' :-)  But 
I'm happy with 'no tests', too. I was just aiming for absolute 
clarity.



[...]
Okay with the above changes.  Thanks!


Thanks for reviewing so quickly.

Thomas
From bcca85478a273789043f46e9574a58d26591bf56 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Mon, 6 Feb 2017 17:19:06 +0100
Subject: [PATCH] gnu: Add freerdp.

* gnu/packages/rdesktop.scm (freerdp): New variable.
---
 gnu/packages/rdesktop.scm | 71 ++-
 1 file changed, 70 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index e40852b..f98ad35 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ludovic Courtès <l...@gnu.org>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,9 +21,19 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cups)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xml))
 
 (define-public rdesktop
   (package
@@ -57,3 +68,61 @@
 capable of natively speaking Remote Desktop Protocol (RDP).  It allows users
 to remotely control a user's Windows desktop.")
 (license license:gpl3+)))
+
+(define-public freerdp
+  (package
+(name "freerdp")
+(version "1.2.0-beta1+android9")
+(source (origin
+  (method git-fetch)
+  (uri (git-reference
+(url "git://github.com/FreeRDP/FreeRDP.git")
+(commit version)))
+  (file-name (git-file-name name version))
+  (sha256
+   (base32 "1m0lzrr7hkxfvc5f9p8snimv0rmin2463zhg25mv36wig8g5k7l3"
+(build-system cmake-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("xmlto" ,xmlto)))
+(inputs
+ `(("libx11" ,libx11)
+   ("libxkbfile" ,libxkbfile)
+   ("libxcursor" ,libxcursor)
+   ("libxext" ,libxext)
+   ("libxi" ,libxi)
+   ("libxv" ,libxv)
+   ("libxrandr" ,libxrandr)
+   ("libxrender" ,libxrender)
+   ("libxinerama" ,libxinerama)
+   ("libxshmfence" ,libxshmfence)
+   ("libxml2" ,libxml2)
+   ("libxslt" ,libxslt)
+   ("cups" ,cups)
+   ("ffmpeg" ,ffmpeg)
+   ("pulseaudio" ,pulseaudio)
+   ("alsa-lib" ,alsa-lib)
+   ("gstreamer" ,gstreamer)
+   ("gst-plugins-base" ,gst-plugins-base)
+   ("zlib" ,

Re: [PATCH] gnu: Add tftp-hpa.

2017-02-06 Thread Thomas Danckaert

From: Boskovits, Gábor 
Subject: [PATCH] gnu: Add tftp-hpa.
Date: Mon,  6 Feb 2017 00:33:31 +0100


---
 gnu/packages/tftp-hpa.scm | 27 +++
 1 file changed, 27 insertions(+)


Hi!

I tested the patch and the package builds fine.


+(description
+ "This is a tftp client derived from OpenBSD tftp with some 
extra options
+added and bugs fixed.  The source includes readline support but it 
is not
+enabled due to licence conflicts between the BSD advertising 
clause and the GPL.")


“licence”->“license”


[...]
I would like to get some assistance in selecting a category for this
package.


I'll let someone else comment on this :).


Should it be networking, or something else?

I would be glad if someone could also verify if my licese selection
is correct.


Af for the license issues: I think bsd-4 is correct, but about the 
disabled GPL code: I think you can actually distribute a combined 
work of GPL and BSD as GPL, as long as you specify that the BSD parts 
of it are also BSD-licensed?  In the package's license field, you 
could say "(license (list gpl1 bsd-4))"


If you send an updated patch, you will also be asked to follow the 
gnu commit message guidelines (take a look at the log for 
inspiration).  Your commit title would be  something like “gnu: Add 
tftp-hpa.” and the body will mention the new variable.


cheers,

Thomas


[PATCH 2/2] gnu: Add vinagre.

2017-02-06 Thread Thomas Danckaert
* gnu/packages/gnome.scm (vinagre): New variable.
---
 gnu/packages/gnome.scm | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f6f7aae..23cf742 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is>
 ;;; Copyright © 2016 David Craven <da...@craven.ch>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <m...@tobias.gr>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -96,11 +97,13 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages spice)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
@@ -1900,6 +1903,45 @@ selection and URL hints.")))
  `(("gtk+" ,gtk+-2) ; required by libvte.pc
("ncurses" ,ncurses) ; required by libvte.la
 
+(define-public vinagre
+  (package
+(name "vinagre")
+(version "3.22.0")
+(source
+  (origin
+   (method url-fetch)
+  (uri (string-append
+"mirror://gnome/sources/" name "/"
+(version-major+minor version) "/"
+name "-" version ".tar.xz"))
+   (sha256
+(base32
+ "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"
+(build-system gnu-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("intltool" ,intltool)
+   ("itstool" ,itstool)
+   ("glib-bin" ,glib "bin") ; for glib-compile-schemas
+   ("gtk+-bin" ,gtk+ "bin")))   ; for gtk-update-icon-cache
+(inputs
+ `(("libxml2" ,libxml2)
+   ("gtk-vnc" ,gtk-vnc)
+   ("gnome-keyring" ,gnome-keyring)
+   ("libsecret" ,libsecret)
+   ("freerdp" ,freerdp)
+   ("spice" ,spice)
+   ("spice-gtk" ,spice-gtk)
+   ("telepathy-glib" ,telepathy-glib)
+   ("vte" ,vte)))
+(arguments
+ `(#:configure-flags '("--enable-rdp")))
+(home-page "https://wiki.gnome.org/Apps/Vinagre;)
+(synopsis "Remote desktop viewer for GNOME")
+(description "Vinagre is a remote display client supporting the VNC, SPICE
+and RDP protocols.")
+(license license:gpl3)))
+
 (define-public dconf
   (package
 (name "dconf")
-- 
2.7.4




[PATCH 1/2] gnu: Add freerdp.

2017-02-06 Thread Thomas Danckaert
* gnu/packages/rdesktop.scm (freerdp): New variable.
---
 gnu/packages/rdesktop.scm | 71 ++-
 1 file changed, 70 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index e40852b..14965e1 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ludovic Courtès <l...@gnu.org>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,9 +21,19 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cups)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xml))
 
 (define-public rdesktop
   (package
@@ -57,3 +68,61 @@
 capable of natively speaking Remote Desktop Protocol (RDP).  It allows users
 to remotely control a user's Windows desktop.")
 (license license:gpl3+)))
+
+(define-public freerdp
+  (package
+(name "freerdp")
+(version "1.2.0-beta1+android9")
+(source (origin
+  (method git-fetch)
+  (uri (git-reference
+(url "git://github.com/FreeRDP/FreeRDP.git")
+(commit version)))
+  (file-name (git-file-name name version))
+  (sha256
+   (base32 
"1m0lzrr7hkxfvc5f9p8snimv0rmin2463zhg25mv36wig8g5k7l3"
+(build-system cmake-build-system)
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("xmlto" ,xmlto)))
+(inputs
+ `(("libx11" ,libx11)
+   ("libxkbfile" ,libxkbfile)
+   ("libxcursor" ,libxcursor)
+   ("libxext" ,libxext)
+   ("libxi" ,libxi)
+   ("libxv" ,libxv)
+   ("libxrandr" ,libxrandr)
+   ("libxrender" ,libxrender)
+   ("libxinerama" ,libxinerama)
+   ("libxshmfence" ,libxshmfence)
+   ("libxml2" ,libxml2)
+   ("libxslt" ,libxslt)
+   ("cups" ,cups)
+   ("ffmpeg" ,ffmpeg)
+   ("pulseaudio" ,pulseaudio)
+   ("alsa-lib" ,alsa-lib)
+   ("gstreamer" ,gstreamer)
+   ("gst-plugins-base" ,gst-plugins-base)
+   ("zlib" ,zlib)
+   ("openssl" ,openssl)))
+(arguments
+ `(#:configure-flags
+   '("-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DWITH_PULSE=ON"
+ "-DWITH_CUPS=ON" "-DWITH_SSE2=ON")
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'patch-cmakelists
+   (lambda _
+ (substitute* "channels/client/CMakeLists.txt"
+   (("list\\(REMOVE_DUPLICATES CHANNEL_STATIC_CLIENT_ENTRIES\\)")
+"")
+   #:tests? #f)) ; no 'test' target
+(home-page "https://www.freerdp.com;)
+(synopsis "Remote Desktop Protocol implementation")
+(description "FreeRDP implements Microsoft's Remote Desktop Protocol.  It
+consists of the @code{xfreerdp} client, libraries for client and server
+functionality, and Windows Portable Runtime (WinPR), a portable implementation
+of parts of the Windows API.")
+(license license:asl2.0)))
-- 
2.7.4




Re: FOSDEM 2017 audio/video volunteers needed

2017-02-03 Thread Thomas Danckaert
From: Catonano 
Subject: Re: FOSDEM 2017 audio/video volunteers needed
Date: Fri, 3 Feb 2017 14:49:54 +0100

> 2017-01-11 4:49 GMT+01:00 Pjotr Prins :
> 
>> On Tue, Jan 10, 2017 at 04:02:32AM +, Pjotr Prins wrote:
>> > Hi all,
>> >
>> > FOSDEM provides live streaming of talks and archiving. We need
>> > volunteers to man the FOSS setup that handles the camera and mike.
>> > Ideally two people who expect to be in the room all day :). It is
>> > mostly automated and does not require special skills.
>>
>> No response. We need help! Two people can take turns over the day.
>> Please volunteer, it is important we capture all talks.
>>
> 
> Because of a hitch, Amirouche won't be there
> 
> So Ricardo and I are the only volunteers
> 
> We' ll try to manage but I won' t be offended if someone would like to step
> in :-)

I also volunteered originally and am happy to step in.

Thomas



Re: [PATCH] gnu: Add emacs-mew.

2017-02-03 Thread Thomas Danckaert

From: Alex Kost <alez...@gmail.com>
Subject: Re: [PATCH] gnu: Add emacs-mew.
Date: Fri, 03 Feb 2017 12:39:05 +0300

Oh, I just realized that's probably why you used 'load-path' 
instead of

'image-load-path', right?


load-path, shmoad-path ;-) I was just confused (even more so because 
load-path is part of image-load-path).



[...]
No problem, thanks for packaging it!  I hope we are close to finish,
could you test it with 'emacs' input and 'patch-mew-icon-directory'
phase I wrote above?


Yes, that works, and it's nice to avoid the patch file. I've attached 
a (final?) updated patch.


I tried to do something similar with emacs-substitute-variables, but 
of course that embedded all my elisp code as a string...


thanks,

Thomas
From 868c56166ce62b9572b95a9ca7a20feee970666d Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 24 Jan 2017 09:41:42 +0100
Subject: [PATCH] gnu: Add emacs-mew.

* gnu/packages/mail.scm (emacs-mew): New variable.

Co-authored-by: Alex Kost <alez...@gmail.com>
---
 gnu/packages/mail.scm | 53 +++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2318ae9..4a73484 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <j...@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mba...@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
   #:use-module (gnu packages tls)
@@ -377,6 +379,57 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
 (license gpl2+)))
 
+(define-public emacs-mew
+  (package
+(name "emacs-mew")
+(version "6.7")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://mew.org/Release/mew-;
+  version ".tar.gz"))
+  (sha256
+   (base32
+"03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"
+(native-inputs
+ `(("emacs" ,emacs)))
+(propagated-inputs
+ `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
+   ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+(build-system gnu-build-system)
+(arguments
+ (let ((elisp-dir "/share/emacs/site-lisp/guix.d/mew")
+   (icon-dir  "/share/mew"))
+   `(#:modules ((guix build gnu-build-system)
+(guix build utils)
+(guix build emacs-utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build emacs-utils))
+ #:configure-flags
+ (list (string-append "--with-elispdir=" %output ,elisp-dir)
+   (string-append "--with-etcdir=" %output ,icon-dir))
+ #:phases
+ (modify-phases %standard-phases
+   (add-after 'configure 'patch-mew-icon-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+   (emacs-substitute-sexps "mew-key.el"
+ ("(def.* mew-icon-directory"
+  `(progn
+(add-to-list 'image-load-path 'mew-icon-directory)
+,(string-append (assoc-ref outputs "out") ,icon-dir
+   #t))
+   (add-after 'install 'generate-autoloads
+ (lambda* (#:key outputs #:allow-other-keys)
+   (emacs-generate-autoloads
+"mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
+   #t)))
+ #:tests? #f)))
+(home-page "http://www.mew.org;)
+(synopsis "Emacs e-mail client")
+(description "Mew (Messaging in the Emacs World) is a user interface
+for text messages, multimedia messages (MIME), news articles and
+security functionality including PGP, S/MIME, SSH, and SSL.")
+(license bsd-3)))
+
 (define-public mu
   (package
 (name "mu")
-- 
2.7.4



Re: [PATCH] gnu: Add emacs-mew.

2017-02-02 Thread Thomas Danckaert

From: Alex Kost <alez...@gmail.com>
Subject: Re: [PATCH] gnu: Add emacs-mew.
Date: Thu, 02 Feb 2017 11:56:22 +0300

OK, I see.  We can just patch "mew-key.el" file by putting the 
following

line there:

  (add-to-list 'image-load-path 'mew-icon-directory)

WDYT?


Yes, that would be fine!  I added a patch file, don't know if there's 
a more elegant way to achieve the same result?



[...]

Also you seem to overlook my comment about autoloads.  My version of
your patch (attached in my previous message) contains a phase to
generate "mew-autoloads.el".  This file is really needed to have 
"M-x

mew" command available by default.  Otherwise, a user has to put:

  (autoload 'mew "mew" nil t)

in his/her emacs config.


Yes, sorry, I just agreed and then forgot to comment on that part.  I 
didn't know about 'emacs-generate-autoloads and think it's great  :)


Thanks for your help!

Thomas
From 3179514335f61e29f93994f4dc0f59c30b59e876 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 24 Jan 2017 09:41:42 +0100
Subject: [PATCH] gnu: Add emacs-mew.

* gnu/packages/mail.scm (emacs-mew): New variable.
* gnu/packages/patches/mew-add-icons-to-load-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Co-authored-by: Alex Kost <alez...@gmail.com>
---
 gnu/local.mk   |  1 +
 gnu/packages/mail.scm  | 52 ++
 .../patches/mew-add-icons-to-load-path.patch   | 14 ++
 3 files changed, 67 insertions(+)
 create mode 100644 gnu/packages/patches/mew-add-icons-to-load-path.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 59fc1a8..c9a5a3a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -744,6 +744,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch	\
   %D%/packages/patches/metabat-remove-compilation-date.patch	\
+  %D%/packages/patches/mew-add-icons-to-load-path.patch		\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
   %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch		\
   %D%/packages/patches/mpc123-initialize-ao.patch		\
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2318ae9..c6aa820 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <j...@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mba...@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
   #:use-module (gnu packages tls)
@@ -377,6 +379,56 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
 (license gpl2+)))
 
+(define-public emacs-mew
+  (package
+(name "emacs-mew")
+(version "6.7")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "http://mew.org/Release/mew-;
+  version ".tar.gz"))
+  (patches (search-patches "mew-add-icons-to-load-path.patch"))
+  (sha256
+   (base32
+"03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"
+(inputs
+ `(("emacs" ,emacs-minimal)))
+(propagated-inputs
+ `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
+   ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+(build-system gnu-build-system)
+(arguments
+ (let ((elisp-dir "/share/emacs/site-lisp/guix.d/mew")
+   (icon-dir  "/share/mew"))
+   `(#:modules ((guix build gnu-build-system)
+(guix build utils)
+(guix build emacs-utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build emacs-utils))
+ #:configure-flags
+ (list (string-append "--with-elispdir=" %output ,elisp-dir)
+   (string-append "--with-etcdir=" %output ,icon-dir))
+ #:phases
+ (modify-phases %standard-phases
+   (add-after 'configure 'patch-mew-icon-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+   (emacs-substitute-variables "mew-key.el"
+ ("mew-icon-directory"
+  (string-append (assoc-ref outputs "out") ,icon-dir)))
+   #t))
+   (add-after 'instal

Re: [PATCH] gnu: Add emacs-mew.

2017-02-01 Thread Thomas Danckaert

From: Alex Kost <alez...@gmail.com>
Subject: Re: [PATCH] gnu: Add emacs-mew.
Date: Wed, 01 Feb 2017 12:34:34 +0300


+ #:phases (modify-phases %standard-phases
+(add-after 'configure 'patch-mew-icon-path ; 
ensure "Mew-icon.png" is found.

+   (lambda _
+ (substitute* "mew-key.el"
+   (("\\(expand-file-name \"etc\" 
path\\)") "path")


Hm, does it work for you?  I looked at "mew-key.el" but the code
wasn't patched, probably something with the regexp.  Anyway it is
better to patch 'mew-icon-directory' variable instead.


Hi,

Ouch, I messed up my patch when rebasing.  I meant to also set
--with-etcdir=elispdir (see attached version).  The substitution does
work, but has no use without the updated --with-etcdir.


Also I see that by default it puts image files into
"share/emacs/site-lisp/mew/etc".  I don't think this is a good
place, I would rather move them to "share/mew" as most packages do
with various additional files.


Yes, that would be cleaner.  Is there also a clean way to add
share/mew to emacs' image-load-path?  The problem is that the package
needs various *.xpm icon's, which are opened with “find-image” (via
“tool-bar-add-item”), which looks on image-load-path, whereas
“Mew-icon.png” is looked up in mew-icon-directory.

My patch as originally intended (now attached) puts everything in
share/emacs/site-lisp/guix.d/mew, where find-image will find it, and
patches mew-key.el so it also looks in that directory.  Not clean, but
it works :-)

cheers,

Thomas
From 175d5b859c5615157db51ab79fa059e397a7f2b9 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 24 Jan 2017 09:41:42 +0100
Subject: [PATCH] gnu: Add emacs-mew.

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

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2318ae9b6..80a61a141 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <j...@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mba...@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
   #:use-module (gnu packages tls)
@@ -377,6 +379,42 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
 (license gpl2+)))
 
+(define-public emacs-mew
+  (package
+  (name "emacs-mew")
+  (version "6.7")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append "http://mew.org/Release/mew-; version ".tar.gz"))
+  (sha256
+   (base32
+"03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"
+  (inputs
+   `(("emacs" ,emacs-minimal)))
+  (propagated-inputs
+   `(("ruby-sqlite3" ,ruby-sqlite3) ; optionally uses an sqlite database of messages
+ ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+  (build-system gnu-build-system)
+  (arguments
+   `(#:configure-flags
+ (let ((elispdir (string-append (assoc-ref %outputs "out")
+ "/share/emacs/site-lisp/guix.d/mew")))
+   (list (string-append "--with-elispdir=" elispdir)
+ (string-append "--with-etcdir=" elispdir)))
+ #:phases (modify-phases %standard-phases
+(add-after 'configure 'patch-mew-icon-path ; ensure "Mew-icon.png" is found.
+   (lambda _
+ (substitute* "mew-key.el"
+   (("\\(expand-file-name \"etc\" path\\)") "path")
+ #:tests? #f))
+  (home-page "http://www.mew.org;)
+  (synopsis "Emacs e-mail client")
+  (description "Mew (Messaging in the Emacs World) is a user interface
+for text messages, multimedia messages (MIME), news articles and
+security functionality including PGP, S/MIME, SSH, and SSL.")
+  (license bsd-3)))
+
 (define-public mu
   (package
 (name "mu")
-- 
2.11.0



Re: [PATCH] gnu: Add emacs-mew.

2017-01-31 Thread Thomas Danckaert

From: Alex Kost <alez...@gmail.com>
Subject: Re: [PATCH] gnu: Add emacs-mew.
Date: Wed, 25 Jan 2017 12:29:14 +0300


This could happen if it adds itself to a sub-directory of
"/share/emacs/site-lisp".  In 'magit' package, for example, it is 
fixed
by using "lispdir" makeflag.  Since this package uses a full GNU 
Build

System, there should probably be "--with-lispdir" configure flag.


Indeed, done!


BTW, I can't apply this patch on the current master.


I had edited the patch file manually. Seems like this sometimes 
works, sometimes doesn't.


I've attached an updated patch, which also fixes some issues with 
paths to various icons.


Thomas
From 93118dba6e551fb66846a2b69a7bec560795ba71 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 24 Jan 2017 09:41:42 +0100
Subject: [PATCH] gnu: Add emacs-mew.

* gnu/packages/mail.scm (emacs-mew): New variable.
---
 gnu/packages/mail.scm | 36 
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2318ae9b6..d985419be 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <j...@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mba...@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
   #:use-module (gnu packages tls)
@@ -377,6 +379,40 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
 (license gpl2+)))
 
+(define-public emacs-mew
+  (package
+  (name "emacs-mew")
+  (version "6.7")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append "http://mew.org/Release/mew-; version ".tar.gz"))
+  (sha256
+   (base32
+"03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"
+  (inputs
+   `(("emacs" ,emacs-minimal)))
+  (propagated-inputs
+   `(("ruby-sqlite3" ,ruby-sqlite3) ; optionally uses an sqlite database of messages
+ ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+  (build-system gnu-build-system)
+  (arguments
+   `(#:configure-flags (list
+(string-append "--with-elispdir=" (assoc-ref %outputs "out")
+   "/share/emacs/site-lisp/guix.d/mew"))
+ #:phases (modify-phases %standard-phases
+(add-after 'configure 'patch-mew-icon-path ; ensure "Mew-icon.png" is found.
+   (lambda _
+ (substitute* "mew-key.el"
+   (("\\(expand-file-name \"etc\" path\\)") "path")
+ #:tests? #f))
+  (home-page "http://www.mew.org;)
+  (synopsis "Emacs e-mail client")
+  (description "Mew (Messaging in the Emacs World) is a user interface
+for text messages, multimedia messages (MIME), news articles and
+security functionality including PGP, S/MIME, SSH, and SSL.")
+  (license bsd-3)))
+
 (define-public mu
   (package
 (name "mu")
-- 
2.11.0



Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.

2017-01-31 Thread Thomas Danckaert
From: Leo Famulari 
Subject: Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.
Date: Tue, 31 Jan 2017 15:10:22 -0500

> I pushed with the following changes.
> 
> I added more comments to the patch files. I think that patches should
> include a link to upstream bug reports and upstream source, assuming
> they exist.

Thanks!  I'll be more precise with the patches next time.

Thomas



Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.

2017-01-30 Thread Thomas Danckaert

From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.
Date: Mon, 30 Jan 2017 17:38:21 -0500


Overall LGTM, but we should include at least the patch for the
CVE-2013-4342, introduced here:

https://github.com/xinetd-org/xinetd/pull/10


Yes, you're right.  I was under the impression that the CVE was 
already fixed in version 2.3.15, but it's not.  I took the patch from 
github (it's already in the master branch, there's just no recent 
release).


And applied as 09-TCPMUX by Debian, along with some other 
patches

that should be evaluated:

https://anonscm.debian.org/cgit/collab-maint/xinetd.git/tree/debian/patches


I've added a patch that fixes a file descriptor leak (and created a 
pull request for it).  There's also a patch to fix compilation on 
hurd, but that's probably something that should be fixed upstream?


The other patches are corrections to the man pages, which have made 
it into upstream master as well, so perhaps we do not need to add 
them all to Guix.


Thomas
>From 7a10feac4ec4035214a8fc212344aacec83bedc6 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Thu, 26 Jan 2017 11:35:50 +0100
Subject: [PATCH] gnu: Add xinetd.

* gnu/packages/web.scm (xinetd): New variable.
* gnu/packages/patches/xinetd-CVE-2013-4342.patch: New file.
* gnu/packages/patches/xinetd-fix-fd-leak.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.
---
 gnu/local.mk|  2 ++
 gnu/packages/patches/xinetd-CVE-2013-4342.patch | 27 +
 gnu/packages/patches/xinetd-fix-fd-leak.patch   | 18 +
 gnu/packages/web.scm| 25 +++
 4 files changed, 72 insertions(+)
 create mode 100644 gnu/packages/patches/xinetd-CVE-2013-4342.patch
 create mode 100644 gnu/packages/patches/xinetd-fix-fd-leak.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 59fc1a8..160a4aa 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -953,6 +953,8 @@ dist_patch_DATA =		\
   %D%/packages/patches/xfce4-panel-plugins.patch		\
   %D%/packages/patches/xfce4-session-fix-xflock4.patch		\
   %D%/packages/patches/xfce4-settings-defaults.patch		\
+  %D%/packages/patches/xinetd-fix-fd-leak.patch			\
+  %D%/packages/patches/xinetd-CVE-2013-4342.patch		\
   %D%/packages/patches/xmodmap-asprintf.patch 			\
   %D%/packages/patches/libyaml-CVE-2014-9130.patch 		\
   %D%/packages/patches/zathura-plugindir-environment-variable.patch
diff --git a/gnu/packages/patches/xinetd-CVE-2013-4342.patch b/gnu/packages/patches/xinetd-CVE-2013-4342.patch
new file mode 100644
index 000..f095a44
--- /dev/null
+++ b/gnu/packages/patches/xinetd-CVE-2013-4342.patch
@@ -0,0 +1,27 @@
+From 91e2401a219121eae15244a6b25d2e79c1af5864 Mon Sep 17 00:00:00 2001
+From: Thomas Swan <thomas.s...@gmail.com>
+Date: Wed, 2 Oct 2013 23:17:17 -0500
+Subject: [PATCH] CVE-2013-4342: xinetd: ignores user and group directives for
+ TCPMUX services
+
+Originally reported to Debian in 2005 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=324678> and rediscovered <https://bugzilla.redhat.com/show_bug.cgi?id=1006100>, xinetd would execute TCPMUX services without dropping privilege to match the service configuration allowing the service to run with same privilege as the xinetd process (root).
+---
+ xinetd/builtins.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xinetd/builtins.c b/xinetd/builtins.c
+index 3b85579..34a5bac 100644
+--- a/xinetd/builtins.c
 b/xinetd/builtins.c
+@@ -617,7 +617,7 @@ static void tcpmux_handler( const struct server *serp )
+if( SC_IS_INTERNAL( scp ) ) {
+   SC_INTERNAL(scp, nserp);
+} else {
+-  exec_server(nserp);
++  child_process(nserp);
+}
+ }
+ 
+-- 
+2.7.4
+
diff --git a/gnu/packages/patches/xinetd-fix-fd-leak.patch b/gnu/packages/patches/xinetd-fix-fd-leak.patch
new file mode 100644
index 000..70a4ec2
--- /dev/null
+++ b/gnu/packages/patches/xinetd-fix-fd-leak.patch
@@ -0,0 +1,18 @@
+Reported upstream at https://github.com/xinetd-org/xinetd/pull/26.
+
+diff --git a/xinetd/xgetloadavg.c b/xinetd/xgetloadavg.c
+index 5a26214..fe0f872 100644
+--- a/xinetd/xgetloadavg.c
 b/xinetd/xgetloadavg.c
+@@ -34,7 +34,7 @@ double xgetloadavg(void)
+ 
+if( fscanf(fd, "%lf", ) != 1 ) {
+   perror("fscanf");
+-  return -1;
++  ret = -1;
+}
+ 
+fclose(fd);
+-- 
+2.7.4
+
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 67b9797..80f52ee 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3995,3 +3995,28 @@ programs' code.  Its architecture is optimized for security, portability, and
 scalability (including load-balancing), making it suitable for large
 deployments.")
   (license l:gpl2+)))
+
+(define-public xinetd
+  (package
+(name "xinetd")
+(version "2.3.15")
+(source
+ 

Re: [PATCH] gnu: python-matplotlib: Don't propagate python-numpy-bootstrap.

2017-01-30 Thread Thomas Danckaert

From: Marius Bakke <mba...@fastmail.com>
Subject: Re: [PATCH] gnu: python-matplotlib: Don't propagate 
python-numpy-bootstrap.

Date: Fri, 27 Jan 2017 20:57:12 +0100


This patch works around it by creating an intermediate
python-matplotlib-bootstrap package as well, which is then used as 
a

native input to generate the documentation of python-numpy.
python-numpy is then used as a propagated input of 
python-matplotlib,
so python-numpy-bootstrap doesn't appear in user's profiles 
anymore.


What do you think?


This sounds sensible. Does numpy not require any matplotlib 
functions at

runtime?


No. It's just used for the documentation.  With the attached patch, 
the dependency chain is this:


matplotlib -> numpy -> matplotlib-bootstrap -> numpy-bootstrap 
(=“numpy-without-docs”)



If so, this patch LGTM. The new matplotlib-bootstrap variables
should have an explaining comment though :)


I've added a comment and fixed some long lines.

Thomas
From 8a9584dd196dae3520fe2ac4b050a9e0c88503f8 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 27 Jan 2017 12:12:42 +0100
Subject: [PATCH] gnu: python-matplotlib: Don't propagate
 python-numpy-bootstrap.

* gnu/packages/python.scm (python-matplotlib-bootstrap,python2-matplotlib-bootstrap):
  New variables.
  (python-matplotlib, python2-matplotlib) [propagated-inputs]: Use
  python-numpy instead of python-numpy-bootstrap.
  (python-numpy, python2-numpy) [propagated-inputs,native-inputs]: Replace
  matplotlib by native inputs matplotlib-bootstrap.
---
 gnu/packages/python.scm | 26 --
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 81f9200..14d2e23 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -33,7 +33,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 Julien Lepiller <jul...@lepiller.eu>
 ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <m...@tobias.gr>
-;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
+;;; Copyright © 2016, 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;; Copyright © 2017 Carlo Zancanaro <ca...@zancanaro.id.au>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -3404,11 +3404,11 @@ association studies (GWAS) on extremely large data sets.")
  `(("which" ,which)
,@(package-inputs python-numpy-bootstrap)))
 (propagated-inputs
- `(("python-matplotlib" ,python-matplotlib)
-   ("python-pyparsing" ,python-pyparsing)
+ `(("python-pyparsing" ,python-pyparsing)
,@(package-propagated-inputs python-numpy-bootstrap)))
 (native-inputs
  `(("pkg-config" ,pkg-config)
+   ("python-matplotlib" ,python-matplotlib-bootstrap) ; to build documentation
("python-sphinx" ,python-sphinx)
("python-numpydoc" ,python-numpydoc)
("texlive" ,texlive)
@@ -3458,7 +3458,11 @@ association studies (GWAS) on extremely large data sets.")
   ,phases)))
 
 (define-public python2-numpy
-  (package-with-python2 python-numpy))
+  (let ((numpy (package-with-python2 python-numpy)))
+(package (inherit numpy)
+ (native-inputs
+  `(("python-matplotlib" ,python2-matplotlib-bootstrap)
+,@(alist-delete "python-matplotlib" (package-native-inputs numpy)))
 
 (define-public python-pygit2
   (package
@@ -3623,7 +3627,7 @@ transcendental functions).")
("gobject-introspection" ,gobject-introspection)
("python-tkinter" ,python "tk")
("python-dateutil" ,python-dateutil-2)
-   ("python-numpy" ,python-numpy-bootstrap)
+   ("python-numpy" ,python-numpy)
("python-pillow" ,python-pillow)
("python-pytz" ,python-pytz)
("python-six" ,python-six)
@@ -3740,8 +3744,18 @@ toolkits.")
`(("python2-pycairo" ,python2-pycairo)
  ("python2-pygobject-2" ,python2-pygobject-2)
  ("python2-tkinter" ,python-2 "tk")
+ ("python2-numpy" ,python2-numpy)
  ,@(fold alist-delete (package-propagated-inputs matplotlib)
- '("python-pycairo" "python-pygobject" "python-tkinter")))
+ '("python-pycairo" "python-pygobject" "python-tkinter"
+   "python-numpy")))
+
+;; Use `bootstrap` versions of matplotlib to build numpy documentation.
+(define python-matplotlib-bootstrap
+  ((package-input-rewriting `((,python-numpy . ,python-numpy-bootstrap)))
+   python-matplotlib))
+(define python2-matplotlib-bootstrap
+  ((package-input-rewriting `((,python2-numpy . ,python2-numpy-bootstrap)))
+   python2-matplotlib))
 
 (define-public python2-pysnptools
   (package
-- 
2.7.4



Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.

2017-01-26 Thread Thomas Danckaert
My apologies, I forgot to attach the improved patch...  

Thomas
>From ae03afa6753e286c2bb4a58762e5419273f7002d Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Thu, 26 Jan 2017 11:35:50 +0100
Subject: [PATCH] gnu: Add xinetd.

* gnu/packages/web.scm (xinetd): New variable.
---
 gnu/packages/web.scm | 24 
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 67b9797..4be3e2d 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3995,3 +3995,27 @@ programs' code.  Its architecture is optimized for security, portability, and
 scalability (including load-balancing), making it suitable for large
 deployments.")
   (license l:gpl2+)))
+
+(define-public xinetd
+  (package
+(name "xinetd")
+(version "2.3.15")
+(source
+ (origin
+   (method url-fetch)
+   (uri "https://github.com/xinetd-org/xinetd/archive/xinetd-2-3-15.tar.gz;)
+   (sha256
+(base32
+ "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags '("--with-loadavg")
+   #:tests? #f )) ; no tests
+(home-page "https://github.com/xinetd-org/xinetd;)
+(synopsis "Internet services daemon")
+(description "@code{xinetd}, a more secure replacement for @code{inetd},
+listens for incoming requests over a network and launches the appropriate
+service for that request.  Requests are made using port numbers as identifiers
+and xinetd usually launches another daemon to handle the request.  It can be
+used to start services with both privileged and non-privileged port numbers.")
+(license (l:non-copyleft "file://COPYRIGHT"
-- 
2.7.4



Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.

2017-01-26 Thread Thomas Danckaert

From: Tobias Geerinckx-Rice 
Subject: Re: [PATCH] gnu: Add xinetd.,Re: [PATCH] gnu: Add xinetd.
Date: Thu, 26 Jan 2017 14:58:53 +0100


[...]

+   (file-name (string-append name "-" version))


file-name is used mainly to avoid polluting the store with 
meaningless

(tobias.gr/download.php?foo=123) or misleading file names.

It shouldn't be needed here, and would require its own ".tar.gz" 
suffix

otherwise.


Ah yes, for some reason I thought we insisted the file would conform 
to the version number as written here (i.e. "." instead of "-" as a 
separator), and then forgot about the suffix...



Would the simpler (and more idiomatic)

  #:tests? #f ... ; no tests

work?


totally!


+ (license (l:non-copyleft "file://COPYRIGHT"


Interesting licence. :-) Against my intuition, it appears to be
FSDG-compatible[0].


Yes, feels like this license can cause more confusion than it manages
to avoid (which is ostensibly the purpose) :-)

Thomas



[PATCH] gnu: Add xinetd.

2017-01-26 Thread Thomas Danckaert
Hi,

I'd like to use xinetd to forward some local ports via ssh (e.g. as
explained here:
https://debian-administration.org/article/487/SMTP_via_a_SSH_tunnel).

This patch provides the xinetd executables, I'll try my hand at
writing a xinetd service next...  Unless there is already an
alternative to xinetd on GuixSD?

cheers,

Thomas
>From e9709558ee99be799edb187bdb9857fdfc7f97c3 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Thu, 26 Jan 2017 11:35:50 +0100
Subject: [PATCH] gnu: Add xinetd.

* gnu/packages/web.scm (xinetd): New variable.
---
 gnu/packages/web.scm | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 67b9797..cc05a22 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3995,3 +3995,29 @@ programs' code.  Its architecture is optimized for security, portability, and
 scalability (including load-balancing), making it suitable for large
 deployments.")
   (license l:gpl2+)))
+
+(define-public xinetd
+  (package
+(name "xinetd")
+(version "2.3.15")
+(source
+ (origin
+   (method url-fetch)
+   (uri "https://github.com/xinetd-org/xinetd/archive/xinetd-2-3-15.tar.gz;)
+   (file-name (string-append name "-" version))
+   (sha256
+(base32
+ "0k59x52cbzp5fw0n8zn0y54j1ps0x9b72y8k5grzswjdmgs2a2v2"
+(build-system gnu-build-system)
+(arguments
+ `(#:configure-flags '("--with-loadavg")
+   #:phases
+   (modify-phases %standard-phases (delete 'check ; doesn't provide tests
+(home-page "https://github.com/xinetd-org/xinetd;)
+(synopsis "Internet services daemon")
+(description "@code{xinetd}, a more secure replacement for @code{inetd},
+listens for incoming requests over a network and launches the appropriate
+service for that request.  Requests are made using port numbers as identifiers
+and xinetd usually launches another daemon to handle the request.  It can be
+used to start services with both privileged and non-privileged port numbers.")
+(license (l:non-copyleft "file://COPYRIGHT"
-- 
2.7.4



[PATCH] gnu: Add stunnel.

2017-01-25 Thread Thomas Danckaert
Hi Guix,

this patch adds stunnel. For the description, I just used stunnel's “about”
page, so the second sentence is perhaps not 100% neutral.

Also, I wasn't sure if this should go in web.scm, networking.scm,
tls.scm, or still somewhere else.

Thomas
From 354c89c91414412127bc1ae54ccce0d9f0f51b0a Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 25 Jan 2017 08:50:30 +0100
Subject: [PATCH] gnu: Add stunnel.

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

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c8f8c63ec..67b9797bb 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <m...@tobias.gr>
 ;;; Copyright © 2016 Bake Timmons <b3timm...@speedymail.org>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3968,3 +3969,29 @@ useful for users behind restrictive firewalls.  As long as Web traffic is
 allowed, even through a HTTP-only proxy, httptunnel can be combined with other
 tools like SSH (Secure Shell) to reach the outside world.")
 (license l:gpl2+)))
+
+(define-public stunnel
+  (package
+  (name "stunnel")
+  (version "5.39")
+  (source
+(origin
+  (method url-fetch)
+  (uri (string-append "https://www.stunnel.org/downloads/stunnel-;
+  version ".tar.gz"))
+  (sha256
+   (base32
+"1vjdn32iw11zqsygwxbjmqgs4644dk3ql1h8ap890ls6a1x0i318"
+  (build-system gnu-build-system)
+  (inputs `(("openssl" ,openssl)))
+  (arguments
+   `(#:configure-flags
+ (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")
+  (home-page "https://www.stunnel.org;)
+  (synopsis "TLS proxy for clients or servers")
+  (description "Stunnel is a proxy designed to add TLS encryption
+functionality to existing clients and servers without any changes in the
+programs' code.  Its architecture is optimized for security, portability, and
+scalability (including load-balancing), making it suitable for large
+deployments.")
+  (license l:gpl2+)))
-- 
2.11.0



Re: [PATCH] gnu: Add emacs-mew.

2017-01-24 Thread Thomas Danckaert
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Subject: [PATCH] gnu: Add emacs-mew.
Date: Tue, 24 Jan 2017 18:01:11 +0100 (CET)

> From 3759a0a4720165e0443bdb7522f6b4b7515aec6f Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert <thomas.dancka...@gmail.com>
> Date: Tue, 24 Jan 2017 09:41:42 +0100
> Subject: [PATCH] gnu: Add emacs-mew.
> 
> * gnu/packages/mail.scm (emacs-mew): New variable.

I've just discovered this patch doesn't add the package to emacs'
load-path, so please disregard for now. (and/or tell me how to fix
this :) )

Thomas



[PATCH 1/2] gnu: Add qdbm.

2017-01-24 Thread Thomas Danckaert
* gnu/packages/databases.scm (qdbm): New variable.
---
 gnu/packages/databases.scm | 28 
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index b70d48c..4269458 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2016 Jan Nieuwenhuizen <jann...@gnu.org>
 ;;; Copyright © 2016 Andy Patterson <ajpat...@uwaterloo.ca>
 ;;; Copyright © 2017 Marius Bakke <mba...@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -425,6 +426,33 @@ TIMESTAMP.  It also supports storage of binary large 
objects, including
 pictures, sounds, or video.")
 (license (x11-style "file://COPYRIGHT"
 
+(define-public qdbm
+  (package
+(name "qdbm")
+(version "1.8.78")
+(source
+  (origin
+   (method url-fetch)
+(uri (string-append "http://fallabs.com/; name "/"
+name "-" version ".tar.gz"))
+   (sha256
+(base32
+ "0gmpvhn02pkq280ffmn4da1g4mdr1xxz7l80b7y4n7km1mrzwrml"
+(build-system gnu-build-system)
+(arguments
+ `( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+   (assoc-ref %outputs "out")
+   "/lib"
+(home-page "http://fallabs.com/qdbm;)
+(synopsis "Key-value database")
+(description "QDBM is a library of routines for managing a
+database.  The database is a simple data file containing key-value
+pairs.  Every key and value is serial bytes with variable length.
+Binary data as well as character strings can be used as a key or a
+value.  There is no concept of data tables or data types.  Records are
+organized in a hash table or B+ tree.")
+(license license:lgpl2.1+)))
+
 (define-public recutils
   (package
 (name "recutils")
-- 
2.7.4




[PATCH 2/2] gnu: Add hyperestraier.

2017-01-24 Thread Thomas Danckaert
* gnu/packages/search.scm (hyperestraier): New variable.
---
 gnu/packages/search.scm | 30 +-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index cb8b670..9f06490 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Mark H Weaver <m...@netris.org>
 ;;; Copyright © 2015, 2016 Eric Bavier <bav...@member.fsf.org>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,7 +20,7 @@
 
 (define-module (gnu packages search)
   #:use-module ((guix licenses)
-#:select (gpl2 gpl2+ gpl3+ bsd-3 x11))
+#:select (gpl2 gpl2+ gpl3+ lgpl2.1+ bsd-3 x11))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
@@ -160,6 +161,33 @@ accounting for new lines and paragraph changes.  It also 
has robust support
 for parsing HTML files.")
 (license gpl3+)))
 
+(define-public hyperestraier
+  (package
+(name "hyperestraier")
+(version "1.4.13")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "http://fallabs.com/; name "/"
+name "-" version ".tar.gz"))
+(sha256
+ (base32
+  "1qk3pxgzyrpcz5qfyd5xs2hw9q1cbb7j5zd4kp1diq501wcj2vs9"
+(inputs
+ `(("qdbm" ,qdbm)
+   ("zlib" ,zlib)))
+(build-system gnu-build-system)
+(arguments
+ `( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+   (assoc-ref %outputs "out")
+   "/lib"
+(home-page "http://fallabs.com/hyperestraier;)
+(synopsis "Full-text search system")
+(description "Hyper Estraier can be used to integrate full-text
+search into applications, using either the provided command line and CGI
+interfaces, or a C API.")
+(license lgpl2.1+)))
+
 (define-public mlocate
   (package
 (name "mlocate")
-- 
2.7.4




[PATCH] gnu: Add emacs-mew.

2017-01-24 Thread Thomas Danckaert
From 3759a0a4720165e0443bdb7522f6b4b7515aec6f Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 24 Jan 2017 09:41:42 +0100
Subject: [PATCH] gnu: Add emacs-mew.

* gnu/packages/mail.scm (emacs-mew): New variable.
---
 gnu/packages/mail.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2318ae9..8991d4d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2016 Arun Isaac <arunis...@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <j...@gnu.org>
 ;;; Copyright © 2016 Marius Bakke <mba...@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -79,6 +80,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
   #:use-module (gnu packages tls)
@@ -377,7 +379,34 @@ can read the same mailbox from multiple computers.  It supports IMAP as REMOTE
 repository and Maildir/IMAP as LOCAL repository.")
 (license gpl2+)))
 
+(define-public emacs-mew
+  (package
+  (name "emacs-mew")
+  (version "6.7")
+  (source
+(origin
+  (method url-fetch)
+  (uri "http://mew.org/Release/mew-6.7.tar.gz;)
+  (sha256
+   (base32
+"03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"
+  (inputs
+   `(("emacs" ,emacs-minimal)))
+  (propagated-inputs
+   `(("ruby-sqlite3" ,ruby-sqlite3) ; optionally uses an sqlite database of messages
+ ("ruby" ,ruby))) ; sets GEM_PATH so ruby-sqlite3 is found at runtime
+  (build-system gnu-build-system)
+  (arguments
+   `(#:phases
+ (modify-phases %standard-phases
+   (delete 'check ; there are no tests
+  (home-page "http://www.mew.org;)
+  (synopsis "Emacs e-mail client")
+  (description "Mew (Messaging in the Emacs World) is a user interface
+for text messages, multimedia messages (MIME), news articles and
+security functionality including PGP, S/MIME, SSH, and SSL.")
+  (license bsd-3)))
+
 (define-public mu
   (package
 (name "mu")
-- 
2.7.4



Re: install experience

2017-01-23 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: install experience
Date: Mon, 23 Jan 2017 15:17:16 +0100

 - When I tried to login as non-root user for the first time, my 
home
   directory was not there, and I was sent back to the login 
screen. I
   logged in as root and created/chown'ed the home directory 
myself.

   Unfortunately, I have no further information here, either.


Could it be that /home is a separate partition?  There’s a bug 
waiting

to be fixed in this area: .


Yes, that looks like the same issued. Indeed, I noticed today that a 
/home/thomas directory got created on my root partition (I suppose it 
then somehow hidden when my home partition is mounted at /home).



Now, the system works fine, though I'll try to tweak it for better
touchpad support, graphics acceleration (I'm gnome3 is currently
unusable) and sharper fonts.  Those things worked better when it 
was

running Ubuntu, though I suspect some of that was due to non-free
driver blobs etc.


If you find ways to tweak it, let us know how we can improve the 
default

settings.


Coming from Ubuntu, I don't have any experience fiddling with these 
things, but I'll do my best ;-)


Thomas


install experience

2017-01-23 Thread Thomas Danckaert

Hi Guix-devel,

Yesterday, I finally installed GuixSD on my laptop “natively”.  Thanks
to jmd and iyzsong who gave me some advice on #guix.  Overall, it went
well, didn't take long, and was quite straightforward thanks to the
clear documentation.  Just in case it's useful, here's a short account
of my stumbling through the installation:

 - I had a false start because on my first attempt, I did not have a
   BIOS boot partition (there was still an EFI system partition,
   originally from a past windows installation, I think), so the 
final

   step of the installation, installing grub, failed. 宋文武 already
   submitted a patch to point out this requirement in the docs.

 - During this first attempt, which would ultimately fail for the
   above reason, I also got an error running “herd start cow-store
   /mnt”.  The message was:

“ERROR. in procedure mount: mount "./rw-store" on "/gnu/store": 
invalid

argument”

   I decided to reboot and try again, but got the same message.
   However, when running guix system reconfigure, the store in
   /mnt/gnu/store did get populated (which is the point of cow-store,
   as I understand it), so perhaps this error was not fatal...

   On my second attempt (then with the correct boot partition), I did
   not get this error anymore.  So I have no further information, I'm
   afraid.  The only difference that I'm aware of between both
   attempts, was the partitioning scheme (2nd attempt added the BIOS
   boot partition, and removed a few unnecessary partitions).

 - I followed advice I thought I'd once read somewhere (though not in
   the manual), and first installed a basic system with the 
bare-bones

   config from

https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html#Using-the-Configuration-System,

and then switched to a full desktop environment after booting 
into

the newly installed system for the first time (perhaps I
could/should have just used a full desktop rightaway?).  I had
used the wireless during installation, but didn't include
wpa_supplicant (and whatever else might be needed to get similar
wifi support as the installation image) in my system
configuration, so I couldn't use wireless anymore after booting
into my new system :-) Therefore, I had to walk over to my router
and connect by cable to continue (at least that was the solution 
I

came up with).

 - When I tried to login as non-root user for the first time, my home
   directory was not there, and I was sent back to the login screen. 
I

   logged in as root and created/chown'ed the home directory myself.
   Unfortunately, I have no further information here, either.

Now, the system works fine, though I'll try to tweak it for better
touchpad support, graphics acceleration (I'm gnome3 is currently
unusable) and sharper fonts.  Those things worked better when it was
running Ubuntu, though I suspect some of that was due to non-free
driver blobs etc.

Thomas


Re: [PATCH 3/4] gnu: Add kdev-python.

2017-01-19 Thread Thomas Danckaert

From: Danny Milosavljevic 
Subject: Re: [PATCH 3/4] gnu: Add kdev-python.
Date: Mon, 16 Jan 2017 23:39:19 +0100


On Mon, 16 Jan 2017 22:10:42 +0100
l...@gnu.org (Ludovic Courtès) wrote:


+(arguments
+ `(#:tests? #f)) ; tests fail, require display


Could you check if running Xvfb is enough to run the tests?


To add to that, maybe even (setenv "QT_QPA_PLATFORM" "offscreen")
would be enough.


Hi,

setting QT_QPA_PLATFORM doesn't seem to help (looks like the process 
hangs indefinitely on the first test).  Running Xvfb seems to get the 
tests started, but I get a warning



_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not
be created.


and all 5 tests immediately fail with a dbus-related error like the 
following:



process 1051: D-Bus library appears to be incorrectly set up; failed
to read machine uuid: Failed to open "/etc/machine-id": No such file
or directory See the manual page for dbus-uuidgen to correct this
issue.

  D-Bus not built with -rdynamic so unable to print a backtrace


Any ideas on how to continue?

cheers,

Thomas


Re: About flashplayer

2017-01-13 Thread Thomas Danckaert

From: tumashu  
Subject: Re:Re: About flashplayer
Date: Fri, 13 Jan 2017 16:39:34 +0800 (CST)


Ok, thanks for the information!


Just for your information: even if flash or the installer-helper 
can't be included in Guix itself because of the free software 
distribution guidelines, if someone writes a package description for 
the installer-helper (or flash itself), anyone who's interested can 
put that package description in their GUIX_PACKAGE_PATH.  GNU Guix 
itself will just not include/recommend/link to such non-free 3rd 
party packages.


Thomas



[PATCH 1/4] gnu: kdevelop: Update to 5.0.3.

2017-01-11 Thread Thomas Danckaert
* gnu/packages/kde.scm (kdevelop, kdevplatform): Update to 5.0.3.
---
 gnu/packages/kde.scm | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index db8609a..5f227ac 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Efraim Flashner <efr...@flashner.co.il>
-;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
+;;; Copyright © 2016, 2017 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,7 +39,7 @@
 (define-public kdevelop
   (package
 (name "kdevelop")
-(version "5.0.2")
+(version "5.0.3")
 (source
   (origin
 (method url-fetch)
@@ -48,7 +48,7 @@
 version ".tar.xz"))
 (sha256
  (base32
-  "0rl6csmzf14gf0r0mk7z2lj7cq8fggf5qmlbxq6j68vp2q0pj0cv"
+  "00gn2c66pyd9qaa0zhn2lqam0zsg7fbyi13hk32wclxq73y8v98p"
 (build-system cmake-build-system)
 (native-inputs
  `(("extra-cmake-modules" ,extra-cmake-modules)
@@ -145,14 +145,14 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
 (define-public kdevplatform
   (package
 (name "kdevplatform")
-(version "5.0.2")
+(version "5.0.3")
 (source (origin
   (method url-fetch)
   (uri (string-append 
"https://github.com/KDE/kdevplatform/archive/v;
   version ".tar.gz"))
   (sha256
(base32
-"1m8c0ixv91diyy9bvq53d4jik4zrnf7bix7clad4ywxnlpcs4ahr"))
+"1k40wg08iwyswnpbs4bfh4yq38pp0qi78shjh4pf7yfa2kbid30j"))
   (file-name (string-append name "-" version ".tar.gz"
 (build-system cmake-build-system)
 (native-inputs
-- 
2.7.4




[PATCH 3/4] gnu: Add kdev-python.

2017-01-11 Thread Thomas Danckaert
* gnu/packages/kde.scm (kdev-python): New variable.
---
 gnu/packages/kde.scm | 47 +++
 1 file changed, 47 insertions(+)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index aef56bb..902038f 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
@@ -122,6 +123,52 @@ build systems (CMake, QMake, custom Makefiles) and version 
control
 software (Git, Subversion, Mercurial, CVS and Bazaar).")
 (license license:lgpl2.1+)))
 
+(define-public kdev-python
+  (package
+(name "kdev-python")
+(version "5.0.3")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "mirror://kde/stable/kdevelop"
+"/" version "/src/kdev-python-"
+version ".tar.xz"))
+(sha256
+ (base32
+  "1sh5k3il985f991vzlqdkihn588bz14p5dl7kymwcrgc52cp0h7i"
+(build-system cmake-build-system)
+(native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+(inputs
+ `(("kdevplatform" ,kdevplatform)
+   ("python" ,python) ; only supports Python3
+   ("grantlee" ,grantlee)
+   ("qtbase" ,qtbase)
+   ("qtdeclarative" ,qtdeclarative)
+   ("ki18n" ,ki18n)
+   ("karchive" ,karchive)
+   ("kguiaddons" ,kguiaddons)
+   ("knewstuff" ,knewstuff)
+   ("kiconthemes" ,kiconthemes)
+   ("kitemmodels" ,kitemmodels)
+   ("knotifications" ,knotifications)
+   ("knotifyconfig" ,knotifyconfig)
+   ("kparts" ,kparts)
+   ("kcrash" ,kcrash)
+   ("kwindowsystem" ,kwindowsystem)
+   ("threadweaver" ,threadweaver)
+   ("ktexteditor" ,ktexteditor)
+   ("kcmutils" ,kcmutils)
+   ("kdevelop" ,kdevelop)))
+(arguments
+ `(#:tests? #f)) ; tests fail, require display
+(home-page "https://kdevelop.org;)
+(synopsis "Python language support for KDevelop")
+(description "The KDevelop Python plugin provides semantic syntax
+highlighting, code navigation, completion, documentation integration and more
+for Python3 in KDevelop.")
+(license license:lgpl2.1+)))
+
 (define-public kdevelop-pg-qt
   (package
 (name "kdevelop-pg-qt")
-- 
2.7.4




[PATCH 4/4] gnu: Add python-autopep8.

2017-01-11 Thread Thomas Danckaert
* gnu/packages/python.scm (python-autopep8, python2-autopep8): New variables.
---
 gnu/packages/python.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index fce6217..78532e1 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -4159,6 +4159,36 @@ SQLAlchemy Database Toolkit for Python.")
 (define-public python2-alembic
   (package-with-python2 python-alembic))
 
+(define-public python-autopep8
+  (package
+  (name "python-autopep8")
+  (version "1.2.4")
+  (source
+   (origin
+ (method url-fetch)
+ (uri (pypi-uri "autopep8" version))
+ (sha256
+  (base32
+   "18parm383lfn42a00wklv3qf20p4v277f1x3cn58x019dqk1xqrq"
+  (build-system python-build-system)
+  (propagated-inputs
+`(("python-pep8" ,python-pep8)))
+  (home-page "https://github.com/hhatto/autopep8;)
+  (synopsis
+"Automatically format Python code according to the PEP 8 style
+guide")
+  (description
+"@code{autopep8} automatically formats Python code to conform to
+the PEP 8 style guide.  It uses the pycodestyle utility to determine
+what parts of the code needs to be formatted.  @code{autopep8} is
+capable of fixing most of the formatting issues that can be reported
+by pycodestyle.")
+  (license (license:non-copyleft
+"https://github.com/hhatto/autopep8/blob/master/LICENSE;
+
+(define-public python2-autopep8
+  (package-with-python2 python-autopep8))
+
 (define-public python-distutils-extra
   (package
 (name "python-distutils-extra")
-- 
2.7.4




[PATCH 0/4] kdevelop updates

2017-01-11 Thread Thomas Danckaert
Hi Guix,

This patchseries updates kdevelop & kdevplatform, sets a few more paths in the
kdevelop wrapper, and adds the kdevelop Python plugin.  The kdevelop package
is still a bit rough around the edges (still have to think of a satisfying
solution to the QT_PLUGIN_PATH issues, see
https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00652.html), but
usable.

There is one issue: when I apply this patch series on current master (after
commit e10872c gnu: gpgme: Patch CMake files), `guix build kdevelop` seems to
get stuck after completing the build (at least it doesn't return after running
at ~100%cpu for over 40minutes, with no output).  When I apply the patch
series on commit 4d0a3d8 (system: grub: Load relevant EFI modules on EFI
systems), I don't have this problem.  I'm not sure if this is an issue just on
my system, or not (I upgraded guix-daemon to lastest master, but the problem
remains). Hints on how to investigate this are welcome!

best,

Thomas Danckaert (4):
  gnu: kdevelop: Update to 5.0.3.
  gnu: kdevelop: Set more paths in wrapper script.
  gnu: Add kdev-python.
  gnu: Add python-autopep8.

 gnu/packages/kde.scm| 68 ++---
 gnu/packages/python.scm | 30 ++
 2 files changed, 89 insertions(+), 9 deletions(-)

-- 
2.7.4




[PATCH 2/4] gnu: kdevelop: Set more paths in wrapper script.

2017-01-11 Thread Thomas Danckaert
* gnu/packages/kde.scm (kdevelop)[arguments]: Add more paths in
 wrap-executable: add "/share" output of kdevplatform and kcmutils to
 $XDG_DATA_DIRS; add "lib/plugins" from user profile to $QT_PLUGIN_PATH.
---
 gnu/packages/kde.scm | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 5f227ac..aef56bb 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -98,15 +98,18 @@
  (let* ((out  (assoc-ref outputs "out"))
 (kdevplatform (assoc-ref inputs "kdevplatform"))
 (kio (assoc-ref inputs "kio"))
+(kcmutils (assoc-ref inputs "kcmutils"))
 (qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
 (qtdeclarative (assoc-ref inputs "qtdeclarative"))
-(plugins "/lib/plugins")
+(profile "$HOME/.guix-profile")
 (qml "/qml"))
(wrap-program (string-append out "/bin/kdevelop")
+ `("XDG_DATA_DIRS" ":" prefix
+   ,(map (lambda (s) (string-append s "/share"))
+ (list profile out kdevplatform kcmutils)))
  `("QT_PLUGIN_PATH" ":" prefix
-   (,(string-append out plugins)
-,(string-append kdevplatform plugins)
-,(string-append kio plugins)))
+   ,(map (lambda (s) (string-append s "/lib/plugins"))
+ (list profile out kdevplatform kio)))
  `("QML2_IMPORT_PATH" ":" prefix
(,(string-append qtquickcontrols qml)
 ,(string-append qtdeclarative qml))
-- 
2.7.4




Re: [PATCH] gnu: doxygen: Use sh from the store.

2017-01-09 Thread Thomas Danckaert

From: Danny Milosavljevic 
Subject: Re: [PATCH] gnu: doxygen: Use sh from the store.
Date: Tue, 3 Jan 2017 13:28:37 +0100


Thanks for the patch! Looks good to me.


I think this patch wasn't applied yet (or I missed it?).  Is it OK 
for staging or core-updates? (There are a lot of dependent packages.)


Thomas



[PATCH] gnu: hdf4: Update to 4.2.12.

2017-01-09 Thread Thomas Danckaert
>From 9654ad20d5039ae761970efaaff68cb0e9062179 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Mon, 9 Jan 2017 12:32:48 +0100
Subject: [PATCH] gnu: hdf4: Update to 4.2.12.

* gnu/packages/maths.scm (hdf4): Update to 4.2.12.
---
 gnu/packages/maths.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 18b06e7..c1c7a24 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -484,14 +484,14 @@ computations.")
 (define-public hdf4
   (package
 (name "hdf4")
-(version "4.2.11")
+(version "4.2.12")
 (source
  (origin
(method url-fetch)
(uri (string-append "https://support.hdfgroup.org/ftp/HDF/releases/HDF;
version "/src/hdf-" version ".tar.bz2"))
(sha256
-(base32 "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))
+(base32 "020jh563sjyxsgml8l809d2i1d4ms9shivwj3gbm7n0ilxbll8id"))
(patches (search-patches "hdf4-architectures.patch"
 "hdf4-reproducibility.patch"
 "hdf4-shared-fortran.patch"
-- 
2.7.4




Re: FOSDEM social dinner

2017-01-07 Thread Thomas Danckaert

From: Alex Sassmannshausen 
Subject: FOSDEM social dinner
Date: Fri, 06 Jan 2017 10:46:39 +0100


I have not chosen a restaurant yet, but it will be something that
provides a varietary of dietary options (omnivore, veggie, vegan).  
If

you are interested in coming along, just drop me a line to confirm.

So — who's in for Guile social dinner on Saturday 4 February 2017 in
Brussels?


I'd like to join, too.

Will the restaurant be either near FOSDEM itself, or somewhat closer 
to the centre? (I'd have to get a train back to Antwerp that evening)


best,

Thomas


[PATCH] gnu: gpgme: Patch CMake files.

2017-01-06 Thread Thomas Danckaert

Hi,

an error (https://bugs.gnupg.org/gnupg/issue2877) in the CMake config 
files for gpgme version 1.80 prevents KWallet (and perhaps other 
packages) from building.  At build time, Make looks for a file 
“libgpgme@libsuffix@” instead of “libgpgme.so” (see 
http://hydra.gnu.org/build/1748813/nixlog/1/raw).


The attached patch works around the problem by simply substituting 
“@libsuffix@” with “.so”.  This works for KWallet on my system, but 
I'm not sure if this is the right strategy (on all supported 
platforms).  Can someone with CMake-fu judge if this an acceptable 
solution until a new version of gnupg is available (or propose a 
better solution, of course)?


Thomas
>From 48f3064d3a66dfae7890308a537c205824e440c6 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 6 Jan 2017 16:52:41 +0100
Subject: [PATCH] gnu: gpgme: Patch CMake files.

* gnu/packages/gnupg.scm (gpgme)[arguments]: Substitute '@libsuffix@' by
  '.so'.
---
 gnu/packages/gnupg.scm | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 56fba45..8feb40c 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -370,6 +370,13 @@ libskba (working with X.509 certificates and CMS data).")
 (inputs
  `(("gnupg" ,gnupg-2.0)
("libassuan" ,libassuan)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'configure 'patch-cmake-file
+   (lambda _
+ (substitute* "lang/cpp/src/GpgmeppConfig.cmake.in"
+   (("@libsuffix@") ".so")))
 (home-page "https://www.gnupg.org/related_software/gpgme/;)
 (synopsis "Library providing simplified access to GnuPG functionality")
 (description
-- 
2.7.4



Re: Graphical Installer - Call for Testing.

2017-01-04 Thread Thomas Danckaert

From: John Darrington 
Subject: Graphical Installer - Call for Testing.
Date: Wed, 4 Jan 2017 08:59:28 +0100

The wip-installer branch is ready for testing and general review.


This branch provides a curses based graphical interface to the disk
images used for installing GuixSD. It is intended to allow users
unfamiliar with bash and other aspects of unix-like operating 
systems
to easily install GuixSD.   This means, it should allow you to 
install

GuixSD on a bare PC, without ever touching a shell (whilst still
providing that option for those who want it).
[...]
Please report coding and usability issues.


Hi,

I was just playing with it a bit yesterday (I built my own 
installation image according to the instructions in the manual), and 
tried to install to a qemu vm.  I also ran the installer from my git 
checkout (running ./pre-inst-env guix system installer and browsing 
the menus without actually installing anything).


Here are some remarks, which perhaps mostly illustrate my own 
confusion, but might serve to make the interface easier to understand 
:-)


 - General usability: It would be nice to have something like a
   tooltip (text at the bottom of the screen?) explaining what each
   button does when it's highlighted.  It wasn't obvious to me what
   buttons such as “Continue” “Back” “Save” “Write” or “Check” would
   do, and which buttons were required or optional.  Maybe my
   confusion was partly caused by the fact that some buttons don't
   seem to work (see next).  This is just a suggestion, I'm not sure
   if there's room on the screen for more text.  A manual 
accompanying

   the interface could also help, but a self-explanatory interface is
   of course better :)

 - From“partition the disks”, I can only go back to the main menu by
   highlighting “Continue” and pressing enter/space (using the “Back”
   button or “B” doesn't seem to work).  In the “allocate disk
   partitions” menu, the Back and Continue buttons work when I select
   them and press “space” or when I press “B” or “C”, but not when I
   select it and use “enter” (this takes me back to the allocation
   menu for the currently selected disk, possibly this is intended?)

 - For those not used to curses-based interfaces (like me
   apparently?), some explanation of which buttons to press (enter or
   space?) could help.  Also, the shortcuts (e.g. “B” for back) are
   highlighted when I run the installer from my system (in my case,
   from gnome terminal), but in the tty on the VM, this highlighting
   is invisible.  What about a pure ascii way to highlight the
   shortcuts, like “ack” and “ontinue”?

 - When I choose a mount point for a partition and run “check”, part
   of the check output seems to fall off the screen (see attached
   screenshot).  Is it possible to wrap the text lines so they fit in
   the screen (and maybe make the output scrollable?).

 - Possibly a qemu issue: the interface was rather slow to respond to
   commands on the qemu VM. Running the installer menu “natively” 
from

   the guix source dir, everything was snappy.

 - Probably a qemu issue on my system: somehow I can't get networking
   to work like it says in the manual (manual says to specifiy “-net
   default” but my qemu complains this option doesn't exist, I have 
to
   use “-net user”, but then don't seem to get a network in the VM 
:-/

   ) , and the networking setup crashes the installer (“Command
   failed: no such device (-19)”) and causes a renewed automatic 
login.


Because of the networking issue in my VM, I couldn't proceed with the
actual installation.  Will report back if/when I solve it.

Thomas


Re: [PATCH] gnu: doxygen: Use sh from the store.

2017-01-03 Thread Thomas Danckaert

From: Danny Milosavljevic 
Subject: Re: [PATCH] gnu: doxygen: Use sh from the store.
Date: Tue, 3 Jan 2017 13:28:37 +0100


Thanks for the patch! Looks good to me.

In any case, if we search for "portable_system", we find that there 
are lots of other things that don't use in-store names:


./cite.cpp:  if 
((exitCode=portable_system("perl","\""+bib2xhtmlFile+"\" 
"+bibOutputFiles+" \""+
./dia.cpp:  if 
((exitCode=portable_system(diaExe,diaArgs,FALSE))!=0) // from config

[...]


AFAIU those could work, because "portable_system()" runs “sh -c” with
the specified command.  So if the executables can be found on the
current PATH, I suppose it will work.


Aaaah found sprintf without max length specifier.

Dear god is doxygen unsafe. I should refrain from reading the 
source code of some popular packages - it doesn't end well.


:-) Perhaps this is not so critical, because users likely don't run 
doxygen on arbitrary unverified input data?


Thomas


[PATCH] gnu: doxygen: Use sh from the store.

2017-01-03 Thread Thomas Danckaert

Hi Guix,

Doxygen uses a hardcoded "/bin/sh" to run "dot" (and maybe other 
processes as well) to generate documentation graphs, which fails in a 
build environment.  This patch adds the store item of bash-minimal as 
a prefix.


According to `guix refresh --list-dependent', this patch would cause 
689 packages to be rebuilt, so it probably shouldn't be applied on 
master.


best,

Thomas
From 306e4805734bdaf5d0ef2b26a30ff2c558aaf93c Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 3 Jan 2017 12:58:28 +0100
Subject: [PATCH] gnu: doxygen: Use sh from the store.

* gnu/packages/documentation.scm (doxygen)[inputs]: Add bash-minimal.
  [arguments]: Add phase to add store prefix to "/bin/sh".
---
 gnu/packages/documentation.scm | 13 -
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index bbc25e8..6f648db 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014, 2016 Andreas Enge <andr...@enge.fr>
 ;;; Copyright © 2016 Eric Bavier <bav...@member.fsf.org>
 ;;; Copyright © 2016 Roel Janssen <r...@gnu.org>
+;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages python)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages docbook)
@@ -99,8 +101,17 @@ markup) can be customized and extended by the user.")
("flex" ,flex)
("libxml2" ,libxml2) ; provides xmllint for the tests
("python" ,python-2))) ; for creating the documentation
+(inputs
+ `(("bash" ,bash-minimal)))
 (arguments
- `(#:test-target "tests"))
+ `(#:test-target "tests"
+   #:phases (modify-phases %standard-phases
+  (add-before 'configure 'patch-sh
+  (lambda* (#:key inputs #:allow-other-keys)
+(substitute* "src/portable.cpp"
+  (("/bin/sh")
+   (string-append
+(assoc-ref inputs "bash") "/bin/sh"
 (home-page "http://www.stack.nl/~dimitri/doxygen/;)
 (synopsis "Generate documentation from annotated sources")
 (description "Doxygen is the de facto standard tool for generating
-- 
2.7.4



Re: [PATCH] gnu: Add python-netcdf4.

2016-12-27 Thread Thomas Danckaert

From: Marius Bakke <mba...@fastmail.com>
Subject: Re: [PATCH] gnu: Add python-netcdf4.
Date: Sat, 24 Dec 2016 14:59:35 +0100


Thomas Danckaert <thomas.dancka...@gmail.com> writes:

From b4b54b695e286c19332600c38d5e07fabee409f8 Mon Sep 17 00:00:00 
2001

From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 23 Dec 2016 15:06:43 +0100
Subject: [PATCH] gnu: Add python-netcdf4.

* gnu/packages/python.scm (python-netcdf4): New variable.
---
 gnu/packages/python.scm | 50 
+

 1 file changed, 50 insertions(+)


Thanks for this! The patch looks good, but the license seems to be 
ISC
with parts covered by the expat license according to the COPYING 
file.

Was there any particular reason you linked to the documentation?


Hi,

yes, you're right.  I linked the documentation because the page 
included a license statement, but now I see the COPYING file in the 
repository is more accurate.  So '(license:isc license:expat) it is.


cheers,

Thomas



[PATCH] gnu: Add python-netcdf4.

2016-12-23 Thread Thomas Danckaert
>From b4b54b695e286c19332600c38d5e07fabee409f8 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 23 Dec 2016 15:06:43 +0100
Subject: [PATCH] gnu: Add python-netcdf4.

* gnu/packages/python.scm (python-netcdf4): New variable.
---
 gnu/packages/python.scm | 50 +
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index cc53f76..37ad3df 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -800,6 +800,56 @@ concepts.")
 (define-public python2-h5py
   (package-with-python2 python-h5py))
 
+(define-public python-netcdf4
+  (package
+(name "python-netcdf4")
+(version "1.2.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (pypi-uri "netCDF4" version))
+   (sha256
+(base32
+ "1qcymsfxsdfr4sx0vl7ih5d14z66k6c9sjy4gb6rjaksk5387zvg"
+(build-system python-build-system)
+(native-inputs
+ `(("python-cython" ,python-cython)))
+(propagated-inputs
+ `(("python-numpy" ,python-numpy)))
+(inputs
+ `(("netcdf" ,netcdf)
+   ("hdf4" ,hdf4)
+   ("hdf5" ,hdf5)))
+(arguments
+ '(#:phases
+   (modify-phases %standard-phases
+ (replace 'check
+   (lambda _
+ (setenv "NO_NET" "1") ;; disable opendap tests
+ (with-directory-excursion "test"
+   (setenv "PYTHONPATH" ;; find and add the library we just built
+   (string-append
+(car (find-files "../build" "lib.*"
+ #:directories? #:t
+ #:fail-on-error? #:t))
+":" (getenv "PYTHONPATH")))
+   (zero? (system* "python" "run_all.py"
+(home-page
+ "https://github.com/Unidata/netcdf4-python;)
+(synopsis "Python/numpy interface to the netCDF library")
+(description "Netcdf4-python is a Python interface to the netCDF C
+library.  netCDF version 4 has many features not found in earlier
+versions of the library and is implemented on top of HDF5.  This module
+can read and write files in both the new netCDF 4 and the old netCDF 3
+format, and can create files that are readable by HDF5 clients.  The
+API is modelled after Scientific.IO.NetCDF, and should be familiar to
+users of that module.")
+(license
+ (license:non-copyleft "https://unidata.github.io/netcdf4-python;
+
+(define-public python2-netcdf4
+  (package-with-python2 python-netcdf4))
+
 (define-public python-lockfile
   (package
 (name "python-lockfile")
-- 
2.7.4




[PATCH] gnu: netcdf: Enable HDF4 support.

2016-12-23 Thread Thomas Danckaert

Hi Guix,

this patch enables HDF4 support in the netCDF package.

By the way, I noticed some error messages from doxygen during the 
build:


error: Problems running dot: exit code=127, command='dot', 
arguments='"/tmp/guix-build-netcdf-4.4.1.1.drv-0/netcdf-4.4.1.1/docs/html/datt_8c__incl.dot" 
-Tpng -o 
"/tmp/guix-build-netcdf-4.4.1.1.drv-0/netcdf-4.4.1.1/docs/html/datt_8c__incl.png"'
(these error are already in the present package, for example see 
http://hydra.gnu.org/build/1686038/log/raw ).


These errors don't cause the build to fail, and are related to 
html/pdf documentation, which is not installed anyway, as far is I 
can see.  So perhaps not very critical.


When I build the package myself in a “guix environment netcdf”, I 
can't reproduce the errors.


cheers,

Thomas
>From 893ef9ad6bfb8edbe64d64f3ab5d6a0bd4705a5f Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 23 Dec 2016 14:56:00 +0100
Subject: [PATCH] gnu: netcdf: Enable HDF4 support.

* gnu/packages/maths.scm (netcdf)[inputs]: Add hdf4-alt and libjpeg.
  [arguments]: Add "--enable-hdf4" configure flag.
---
 gnu/packages/maths.scm | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index e15eddc..d045895 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -726,10 +726,12 @@ HDF5 file is encoded according to the HDF File Format Specification.")
("doxygen" ,doxygen)
("graphviz" ,graphviz)))
 (inputs
- `(("hdf5" ,hdf5)
-   ("zlib" ,zlib)))
+ `(("hdf4" ,hdf4-alt)
+   ("hdf5" ,hdf5)
+   ("zlib" ,zlib)
+   ("libjpeg" ,libjpeg)))
 (arguments
- `(#:configure-flags '("--enable-doxygen" "--enable-dot")
+ `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4")
#:parallel-tests? #f))   ;various race conditions
 (home-page "http://www.unidata.ucar.edu/software/netcdf/;)
 (synopsis "Library for scientific data")
-- 
2.7.4



[PATCH] gnu: Add python-hdf4.

2016-12-22 Thread Thomas Danckaert

Hi Guix,

this patch adds python-hdf4.  I'm not sure if the line “Python-HDF4 
is a fork of pyhdf.” in the description is necessary.  The original 
and “official” pyhdf (http://hdfeos.org/software/pyhdf.php) is 
somewhat outdated (e.g. doesn't support python3).


Thomas
From 7bb5a32da7b2b7bd2a31b6cfd4244e55fe0b850a Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Thu, 22 Dec 2016 11:17:44 +0100
Subject: [PATCH] gnu: Add python-hdf4.

* gnu/packages/python.scm (python-hdf4, python2-hdf4): New variables.
---
 gnu/packages/python.scm | 29 +
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index bfa7eae..1ed3b7d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -715,6 +715,35 @@ certificate returned by the server to which a connection has been established,
 and verifies that it matches the intended target hostname.")
 (license license:psfl)))
 
+(define-public python-hdf4
+  (package
+   (name "python-hdf4")
+   (version "0.9")
+   (source
+(origin
+ (method url-fetch)
+ (uri (pypi-uri name version))
+ (sha256
+  (base32
+   "1hjiyrxvxk9817qyqky3nar4y3fs4z8wxz0n884zzb5wi6skrjks"
+   (build-system python-build-system)
+   (inputs
+`(("hdf4" ,hdf4)
+  ("libjpeg" ,libjpeg)
+  ("zlib" ,zlib)
+  ("numpy" ,python-numpy)))
+   (home-page "https://github.com/fhs/python-hdf4;)
+   (synopsis "Python interface to the NCSA HDF4 library")
+   (description
+"Python-HDF4 is a python wrapper around the NCSA HDF version 4
+library, which implements the SD (Scientific Dataset), VS (Vdata) and
+V (Vgroup) API’s.  NetCDF files can also be read and modified.
+Python-HDF4 is a fork of pyhdf.")
+   (license license:expat)))
+
+(define-public python2-hdf4
+  (package-with-python2 python-hdf4))
+
 (define-public python-h5py
   (package
 (name "python-h5py")
-- 
2.7.4



Re: [PATCH] gnu: kdbusaddons: Embed path to kdeinit5, avoid dependency cycles.

2016-12-16 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: [PATCH] gnu: kdbusaddons: Embed path to kdeinit5, avoid 
dependency cycles.

Date: Thu, 15 Dec 2016 17:06:19 +0100


Other options that come to mind: (1) make ‘QT_PLUGIN_PATH’ and
‘QML2_IMPORT_PATH’ search paths of ‘kinit’; or (2) add a “profile 
hook”
that creates a file containing the search path, and patch kinit to 
honor

that file somehow.

Option 1 sounds better, but ‘QT_PLUGIN_PATH’ really belongs to Qt, 
not

to kinit.


I think adding QT_PLUGIN_PATH to kinit (and a number of other KDE 
packages) could be justified. KDE applications heavily rely on 
QT_PLUGIN_PATH (and use a different path than the default path used 
by Qt: ${PREFIX}/lib/plugins instead of ${PREFIX}/plugins).  See for 
example the section on environment variables at 
https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source


However, I'm not sure it's enough: as far as I understand, 
search-paths will only work for packages directly installed in a 
user's profile, but KDE applications often need plugins provided by 
their dependencies (e.g. for kdevelop, plugins from kdevplatform and 
kinit must be found on the QT_PLUGIN_PATH, but a user who installs 
kdevelop shouldn't be forced to install kinit and kdevplatform in 
their profile?). (Perhaps I misunderstand how search-paths works)


So, provided option (2) can somehow find the paths of dependencies as 
well, maybe that's better? (Are there examples of such a “profile 
hook” somewhere?  I didn't find anything in the manual).


+;; This version of kdbusaddons does not use kinit as an input, 
and is used to
+;; build kinit-bootstrap, as well as bootstrap versions of all 
kinit

+;; dependencies which also rely on kdbusaddons.
+(define kdbusaddons-bootstrap
+  (package
+(inherit kdbusaddons)
+(source (origin
+  (inherit (package-source kdbusaddons))
+  (patches '(


Since ‘kdbusaddons’ doesn’t have any patches, you can omit this 
‘source’

field.


This commit adds a patch to kdbusaddons (the one that adds the kinit 
store directory), so I think does become necessary?



[...]

Isn’t it enough to do:

  (define kinit-bootstrap
((package-input-rewriting `((,kdbusaddons . 
,kdbusaddons-bootstrap)))

 kinit))

?  Remember that ‘package-input-rewriting’ replaces inputs 
recursively.


Yes, ..., yes it is :-) I had this nagging feeling that tracking the
dependency chain like that could be automated, and therefore probably
already _had_ been automated in guix :-) I didn't pay attention to the
word “recursive”... would have saved me a lot of work (you should have
seen the first versions of this patch O_o).

You can check with ‘guix graph -e '(@ (gnu packages kde) 
kdeinit-bootstrap)'’

whether you’re really getting what you want.


tangentially: this seems to work only if I make the kinit-bootstrap 
package a public variable?


diff --git a/gnu/packages/patches/kdbusaddons-kinit-path.patch 
b/gnu/packages/patches/kdbusaddons-kinit-path.patch

new file mode 100644
index 000..97c7319
--- /dev/null
+++ b/gnu/packages/patches/kdbusaddons-kinit-path.patch
@@ -0,0 +1,15 @@
+Add placeholder for kinit's store path.


s/path/file name/ please.  :-)

In GNU “path” traditionally means “search path.”


I'm happy to comply, but note that the info manual does talk about 
store paths.  Should this be changed?


  https://www.gnu.org/software/guix/manual/html_node/The-Store.html

(Also, I chose “store directory” instead of “store file name”)

Thomas
>From e6c66e9d1daafee8907fa03db2f4c11104aab2b5 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 6 Dec 2016 14:55:39 +0100
Subject: [PATCH] gnu: kdbusaddons: Embed kinit store dir, avoid dependency
 cycles.

kdbusaddons needs to know the location of the kdeinit5 executable,
provided by kinit. kinit depends on kdbusaddons, so we add bootstrap
versions of all packages in the dependency chain from kinit to
kdbusaddons to avoid cyclic dependencies.

* gnu/packages/kde-frameworks.scm (kinit-bootstrap,
  kdbusaddons-bootstrap): New variables.
  (kdbusaddons)[inputs]: Add kinit-bootstrap.
  [source,arguments]: Add patch and substitution to embed
  kinit-bootstrap's store directory in the code.
* gnu/packages/patches/kdbusaddons-kinit-file-name.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk   |  1 +
 gnu/packages/kde-frameworks.scm| 36 --
 .../patches/kdbusaddons-kinit-file-name.patch  | 15 +
 3 files changed, 49 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/kdbusaddons-kinit-file-name.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index c6cb55b..f7b661c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -639,6 +639,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
   %D%/packages/patches/jbig2dec-ignore-testtest.patch		\
   %D%/packages/p

[PATCH 2/3] gnu: Add kdevplatform.

2016-12-12 Thread Thomas Danckaert
* gnu/packages/kde.scm (kdevplatform): New variable.
---
 gnu/packages/kde.scm | 77 +++-
 1 file changed, 76 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 55386f0..95b2150 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -23,12 +23,15 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (gnu packages apr)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages qt))
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages version-control))
 
 (define-public kdevelop-pg-qt
   (package
@@ -53,6 +56,78 @@
 for some KDevelop language plugins (Ruby, PHP, CSS...).")
 (license license:lgpl2.0+)))
 
+(define-public kdevplatform
+  (package
+(name "kdevplatform")
+(version "5.0.2")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "https://github.com/KDE/kdevplatform/archive/v; 
version ".tar.gz"))
+(sha256
+ (base32
+  "1m8c0ixv91diyy9bvq53d4jik4zrnf7bix7clad4ywxnlpcs4ahr"
+(build-system cmake-build-system)
+(native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("apr" ,apr)
+   ("apr-util" ,apr-util)
+   ("boost" ,boost)
+   ("karchive" ,karchive)
+   ("kconfigwidgets" ,kconfigwidgets)
+   ("kcmutils" ,kcmutils)
+   ("kiconthemes" ,kiconthemes)
+   ("kdeclarative" ,kdeclarative)
+   ("kdoctools" ,kdoctools)
+   ("kguiaddons" ,kguiaddons)
+   ("kinit" ,kinit)
+   ("kitemmodels" ,kitemmodels)
+   ("knewstuff" ,knewstuff)
+   ("knotifications" ,knotifications)
+   ("knotifyconfig" ,knotifyconfig)
+   ("kwindowsystem" ,kwindowsystem)
+   ("kio" ,kio)
+   ("ki18n" ,ki18n)
+   ("kparts" ,kparts)
+   ("kservice" ,kservice)
+   ("grantlee" ,grantlee)
+   ("libkomparediff2" ,libkomparediff2)
+   ("sonnet" ,sonnet)
+   ("threadweaver" ,threadweaver)
+   ("ktexteditor" ,ktexteditor)
+   ("qtbase" ,qtbase)
+   ("qtdeclarative" ,qtdeclarative)
+   ("qtscript" ,qtscript)
+   ("qtwebkit" ,qtwebkit)
+   ("qtx11extras" ,qtx11extras)
+   ("plasma" ,plasma-framework)
+   ("subversion" ,subversion)
+   ("zlib" ,zlib)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'install 'check ;; add-after 'install
+(lambda* (#:key outputs #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+(setenv "QT_PLUGIN_PATH"
+(string-append out "/lib/plugins:"
+   (getenv "QT_PLUGIN_PATH")))
+(setenv "XDG_DATA_DIRS"
+(string-append out "/share:"
+   (getenv "XDG_DATA_DIRS")))
+(zero?
+ (system* "ctest" "-R" ;; almost all tests require a 
display
+  
"filteringstrategy|kdevvarlengtharray|kdevhash"
+(home-page "https://github.com/KDE/kdevplatform;)
+(synopsis "Framework to build IDE-like applications, such as KDevelop.")
+(description "KDevPlatform is the basis of KDevelop and contains some
+plugins, as well as code to create plugins, or complete applications.")
+(license license:gpl3+)))
+
 (define-public libkomparediff2
   (package
 (name "libkomparediff2")
-- 
2.7.4




[PATCH 0/3] Add KDevelop.

2016-12-12 Thread Thomas Danckaert
This patch series adds a package for the KDevelop IDE.

KDevelop needs some QT_PLUGIN_PATH and QML2_IMPORT_PATH entries.  For now I
used wrap-program for this.  If a user tries to start KDevelop while kdeinit5
is already running without the correct QT_PLUGIN_PATH and QML2_IMPORT_PATH
entries, KDevelop won't work correctly (the solution is to force restart
kdeinit5 with the correct environment).

Best,

Thomas

Thomas Danckaert (3):
  gnu: libksysguard: Correct inputs.
  gnu: Add kdevplatform.
  gnu: Add kdevelop.

 gnu/packages/kde.scm | 174 ---
 1 file changed, 167 insertions(+), 7 deletions(-)

-- 
2.7.4




[PATCH 3/3] gnu: Add kdevelop.

2016-12-12 Thread Thomas Danckaert
* gnu/packages/kde.scm (kdevelop): New variable.
---
 gnu/packages/kde.scm | 86 
 1 file changed, 86 insertions(+)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 95b2150..4332137 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -27,12 +27,98 @@
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control))
 
+(define-public kdevelop
+  (package
+(name "kdevelop")
+(version "5.0.2")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "mirror://kde/stable/kdevelop"
+"/" version "/src/kdevelop-"
+version ".tar.xz"))
+(sha256
+ (base32
+  "0rl6csmzf14gf0r0mk7z2lj7cq8fggf5qmlbxq6j68vp2q0pj0cv"
+(build-system cmake-build-system)
+(native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("kdevplatform" ,kdevplatform)
+   ("kdevelop-pg-qt" ,kdevelop-pg-qt)
+   ("qtbase" ,qtbase)
+   ("qtdeclarative" ,qtdeclarative)
+   ("qtquickcontrols" ,qtquickcontrols)
+   ("qttools" ,qttools)
+   ("qtwebkit" ,qtwebkit)
+   ("karchive" ,karchive)
+   ("kcmutils" ,kcmutils)
+   ("kconfig" ,kconfig)
+   ("kdeclarative" ,kdeclarative)
+   ("kdoctools" ,kdoctools)
+   ("kguiaddons" ,kguiaddons)
+   ("ki18n" ,ki18n)
+   ("kio" ,kio)
+   ("kiconthemes" ,kiconthemes)
+   ("kitemmodels" ,kitemmodels)
+   ("kitemviews" ,kitemviews)
+   ("kjobwidgets" ,kjobwidgets)
+   ("knotifyconfig" ,knotifyconfig)
+   ("knotifications" ,knotifications)
+   ("kparts" ,kparts)
+   ("kcrash" ,kcrash)
+   ("knewstuff" ,knewstuff)
+   ("krunner" ,krunner)
+   ("kxmlgui" ,kxmlgui)
+   ("libksysguard" ,libksysguard)
+   ("threadweaver" ,threadweaver)
+   ("ktexteditor" ,ktexteditor)
+   ("kwindowsystem" ,kwindowsystem)
+   ("plasma" ,plasma-framework)
+   ("grantlee" ,grantlee)
+   ("libepoxy" ,libepoxy)
+   ("clang" ,clang)
+   ("shared-mime-info" ,shared-mime-info)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (delete 'check) ;; there are some issues with the test suite
+ (add-after 'install 'wrap-executable
+   (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out  (assoc-ref outputs "out"))
+(kdevplatform (assoc-ref inputs "kdevplatform"))
+(kio (assoc-ref inputs "kio"))
+(qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
+(qtdeclarative (assoc-ref inputs "qtdeclarative"))
+(plugins "/lib/plugins")
+(qml "/qml"))
+   (wrap-program (string-append out "/bin/kdevelop")
+ `("QT_PLUGIN_PATH" ":" prefix
+   (,(string-append out plugins)
+,(string-append kdevplatform plugins)
+,(string-append kio plugins)))
+ `("QML2_IMPORT_PATH" ":" prefix
+   (,(string-append qtquickcontrols qml)
+,(string-append qtdeclarative qml))
+(home-page "https://kdevelop.org;)
+(synopsis "IDE for C, C++, Python, Javascript and PHP")
+(description "The KDevelop IDE provides semantic syntax highlighting, as
+well as code navigation and completion for C, C++ (using Clang/LLVM), QML,
+JavaScript, Python and PHP.  It also integrates with a debugger, different
+build systems (CMake, QMake, custom Makefiles) and version control
+software (Git, Subversion, Mercurial, CVS and Bazaar).")
+(license license:lgpl2.1+)))
+
 (define-public kdevelop-pg-qt
   (package
 (name "kdevelop-pg-qt")
-- 
2.7.4




[PATCH 1/3] gnu: libksysguard: Correct inputs.

2016-12-12 Thread Thomas Danckaert
* gnu/packages/kde.scm (libksysguard)[inputs]: Remove kdbusaddons,
  kdoctools, kinit, knewstruff, knotifications, kio; add kauth,
  kcompletion, kconfig, kcoreaddons, kwidgetsaddons.
---
 gnu/packages/kde.scm | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 9099c5f..55386f0 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -105,14 +105,13 @@ used in KDE development tools Kompare and KDevelop.")
 (inputs
  `(("kconfigwidgets" ,kconfigwidgets)
("kiconthemes" ,kiconthemes)
-   ("kdbusaddons" ,kdbusaddons)
-   ("kdoctools" ,kdoctools)
-   ("kinit" ,kinit)
-   ("knewstuff" ,knewstuff)
-   ("knotifications" ,knotifications)
("kwindowsystem" ,kwindowsystem)
-   ("kio" ,kio)
("ki18n" ,ki18n)
+   ("kauth" ,kauth)
+   ("kcompletion" ,kcompletion)
+   ("kconfig" ,kconfig)
+   ("kcoreaddons" ,kcoreaddons)
+   ("kwidgetsaddons" ,kwidgetsaddons)
("kservice" ,kservice)
("qtbase" ,qtbase)
("qtscript" ,qtscript)
-- 
2.7.4




[PATCH] gnu: kdbusaddons: Embed path to kdeinit5, avoid dependency cycles.

2016-12-12 Thread Thomas Danckaert

Hi,

kdbusaddons is responsible for (re-)starting kdeinit5 (a daemon that 
speeds up startup of KDE applications by forking itself into a new 
process) when it is not running.  However, kdbusaddons is also a 
build dependency of kinit.


This patch adds a kinit-bootstrap package, makes it  an input of 
kdbusaddons, and embeds the store path of the kdeinit5 executable (an 
output of kinit-bootstrap) in the kdbusaddons source.  Without this 
patch, applications using kdbusaddons will always need a PATH 
environment variable in order to find kdeinit5.


Because kinit depends on kdbusaddons via a number of intermediate 
packages, I had to add kdbusaddons-bootstrap and a few other extra 
packages to avoid dependency cycles.  This patch would trigger a 
build of around ~30 packages.


A remaining issue with kdeinit is, that it needs to run in an 
environment with all the required environment variables (such as 
QT_PLUGIN_PATH and QML2_IMPORT_PATH) for all possible KDE 
applications it has to start (and any libraries they depend on), in 
order to find dependencies at runtime, such as plugins and Qml 
modules.  If a user wants to run a KDE application which relies on 
kdeinit, but kdeinit is already running without all the required 
environment vars, the application will not find all the plugins or 
Qml modules it needs.  (In a conventional system, kde applications 
just need to know one central directory where they will find all KDE 
plugins present on the system)


I don't know what would be a good solution.  A “kde-master” package, 
which has references to all packaged KDE applications (and some 
libraries which provide plugins) as inputs, and just adds the 
required paths to the user's profile (not very modular, but it could 
work)? Could a kdeinit service could help with this in GuixSD 
(haven't really looked at services yet)?


Thomas
>From ba729cd9a2bbbc98bd308702ded837cae5980281 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 6 Dec 2016 14:55:39 +0100
Subject: [PATCH] gnu: kdbusaddons: Embed path to kdeinit5, avoid dependency
 cycles.

kdbusaddons needs to know the location of the kdeinit5 executable,
provided by kinit. kinit depends on kdbusaddons, so we add bootstrap
versions of all packages in the dependency chain from kinit to
kdbusaddons to avoid cyclic dependencies.

* gnu/packages/kde-frameworks.scm (kinit-bootstrap,
  kdbusaddons-bootstrap, kbookmarks-bootstrap, kglobalaccel-bootstrap,
  kio-bootstrap, kservice-bootstrap, ktextwidgets-bootstrap,
  kwallet-bootstrap, kxmlgui-bootstrap): New variables.
  (kdbusaddons)[inputs]: Add kinit-bootstrap.
  [source,arguments]: Add patch and substitution to embed
  kinit-bootstrap's store path in the code.
* gnu/packages/patches/kdbusaddons-kinit-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk  |  1 +
 gnu/packages/kde-frameworks.scm   | 68 ++-
 gnu/packages/patches/kdbusaddons-kinit-path.patch | 15 +
 3 files changed, 81 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/kdbusaddons-kinit-path.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 55dee48..b42258e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -639,6 +639,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
   %D%/packages/patches/jbig2dec-ignore-testtest.patch		\
   %D%/packages/patches/jq-CVE-2015-8863.patch			\
+  %D%/packages/patches/kdbusaddons-kinit-path.patch 		\
   %D%/packages/patches/khmer-use-libraries.patch\
   %D%/packages/patches/kmod-module-directory.patch		\
   %D%/packages/patches/kobodeluxe-paths.patch			\
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 8b84133..ea53e04 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -25,6 +25,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (gnu packages)
   #:use-module (gnu packages acl)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages attr)
@@ -50,7 +51,8 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (srfi srfi-1))
 
 (define-public extra-cmake-modules
   (package
@@ -516,7 +518,8 @@ many more.")
 name "-" version ".tar.xz"))
   (sha256
(base32
-"07mzb1xr8wyiid25p8kg6mjp6vq8ngvv1ikhq75zvd2cbax530c8"
+"07mzb1xr8wyiid25p8kg6mjp6vq8ngvv1ikhq75zvd2cbax530c8"))
+  (patches (search-patches "kdbusaddons-kinit-path.patch"
 (build-system cmake-build-system)
 (native-inputs
  `(("extra-cmake-modules" 

[PATCH] gnu: Add grantlee.

2016-12-01 Thread Thomas Danckaert
>From 2a6447853b240887810459e06e6336b1d925756f Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Thu, 1 Dec 2016 12:25:38 +0100
Subject: [PATCH] gnu: Add grantlee.

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

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index b442356..ae951aa 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -59,6 +60,38 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml))
 
+(define-public grantlee
+  (package
+(name "grantlee")
+(version "5.1.0")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "https://github.com/steveire/grantlee/archive/v;
+version ".tar.gz"))
+(file-name (string-append name "-" version ".tar.gz"))
+(sha256
+ (base32 "1lf9rkv0i0kd7fvpgg5l8jb87zw8dzcwd1liv6hji7g4wlpmfdiq"
+(native-inputs
+ `(("doxygen" ,doxygen)))
+(inputs
+ `(("qtbase" ,qtbase)
+   ("qtscript" ,qtscript)))
+(build-system cmake-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (replace 'check
+  (lambda _
+(zero? (system* "ctest" ;; exclude 2 tests which require a display
+"-E" "htmlbuildertest|plainmarkupbuildertest")))
+(home-page "https://github.com/steveire/grantlee;)
+(synopsis "Libraries for text templating with Qt")
+(description "Grantlee Templates can be used for theming and generation of
+other text such as code.  The syntax uses the syntax of the Django template
+system, and the core design of Django is reused in Grantlee.")
+(license license:lgpl2.0+)))
+
 (define-public qt
   (package
 (name "qt")
-- 
2.7.4




[PATCH] gnu: Add libksysguard.

2016-12-01 Thread Thomas Danckaert

Hi Guix,

this patch adds libksysguard.  I put it in kde.scm, but it's actually 
a part of the plasma framework.  Should there be a separate module 
'gnu/packages/plasma.scm' for if/when more plasma packages get 
packaged?


Thomas
>From 2e9a25b4f99ee354ce226759396fcf806502faa1 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Thu, 1 Dec 2016 11:56:20 +0100
Subject: [PATCH] gnu: Add libksysguard.

* gnu/packages/kde.scm (libksysguard): New variable.
---
 gnu/packages/kde.scm | 55 
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 82e7ed2..2e7e7b3 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -23,6 +23,8 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
@@ -85,7 +87,59 @@ used in KDE development tools Kompare and KDevelop.")
 ;; source archive
 (license (list license:gpl2+ license:lgpl2.0+ license:bsd-3
 
+(define-public libksysguard
+  (package
+(name "libksysguard")
+(version "5.8.2")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "mirror://kde//stable/plasma/" version
+"/libksysguard-" version ".tar.xz"))
+(sha256
+ (base32
+  "158n30wbpsgbw3axhhsc58hnwhwdd02j3zc9hhcybmnbkfl5c96l"
+(native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("kconfigwidgets" ,kconfigwidgets)
+   ("kiconthemes" ,kiconthemes)
+   ("kdbusaddons" ,kdbusaddons)
+   ("kdoctools" ,kdoctools)
+   ("kinit" ,kinit)
+   ("knewstuff" ,knewstuff)
+   ("knotifications" ,knotifications)
+   ("kwindowsystem" ,kwindowsystem)
+   ("kio" ,kio)
+   ("ki18n" ,ki18n)
+   ("kservice" ,kservice)
+   ("qtbase" ,qtbase)
+   ("qtscript" ,qtscript)
+   ("qtwebkit" ,qtwebkit)
+   ("qtx11extras" ,qtx11extras)
+   ("plasma" ,plasma-framework)
+   ("zlib" ,zlib)))
+(build-system cmake-build-system)
+(arguments
+ `(#:configure-flags
+   `(,(string-append "-DKDE_INSTALL_DATADIR=" (assoc-ref %outputs "out") "/share"))
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'patch-cmakelists
+ (lambda _
+   (substitute* "processcore/CMakeLists.txt"
+ (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"
+ (replace 'check
+  (lambda _ ;; other tests require a display and therefore fail
+(zero? (system* "ctest" "-R" "chronotest")))
+(home-page "https://www.kde.org/info/plasma-5.8.2.php;)
+(synopsis "Network enabled task and system monitoring")
+(description "KSysGuard can obtain information on system load and
+manage running processes.  It obtains this information by interacting
+with a ksysguardd daemon, which may also run on a remote system.")
+(license license:gpl3+)))
+
 (define-public qca
   (package
 (name "qca")
-- 
2.7.4



[PATCH 1/2] gnu: Add libkomparediff2.

2016-11-08 Thread Thomas Danckaert
Slowly working my way up to KDevelop...
From f01b97e522ac9a25c6f29eea09d06a6db3ec0ab5 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 8 Nov 2016 14:15:52 +0100
Subject: [PATCH 1/2] gnu: Add libkomparediff2.

* gnu/packages/kde.scm (libkomparediff2): New variable.
---
 gnu/packages/kde.scm | 35 +++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 34a5046..47ca002 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Efraim Flashner <efr...@flashner.co.il>
+;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,40 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt))
 
+(define-public libkomparediff2
+  (package
+(name "libkomparediff2")
+(version "16.08.2")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "https://github.com/KDE/libkomparediff2/archive/v;
+version ".tar.gz"))
+(file-name (string-append name "-" version ".tar.gz"))
+(sha256
+ (base32
+  "1lafifrwfxvn0jwhz67kwv7m38lm4syips3fq77rwcvfhmkiijmh"
+(native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("kcodecs" ,kcodecs)
+   ("kconfig" ,kconfig)
+   ("kcoreaddons" ,kcoreaddons)
+   ("ki18n" ,ki18n)
+   ("kio" ,kio)
+   ("kxmlgui" ,kxmlgui)
+   ("qtbase" ,qtbase)))
+(build-system cmake-build-system)
+(home-page "https://kde.org;)
+(synopsis "Library to compare files and strings, used in Kompare and KDevelop")
+(description "Libkomparediff2 is a library to work with diffs and patches,
+used in KDE development tools Kompare and KDevelop.")
+
+;; GPL, some files are also licensed under LGPL or BSD, see COPYING in the
+;; source archive
+(license (list license:gpl2+ license:lgpl2.0+ license:bsd-3
+
 (define-public qca
   (package
 (name "qca")
-- 
2.7.4



[PATCH 2/2] gnu: Add add kdevelop-pg-qt.

2016-11-08 Thread Thomas Danckaert
>From c26790b1f47e78c37d0efab82c114f2aae1515dc Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 8 Nov 2016 14:16:43 +0100
Subject: [PATCH 2/2] gnu: Add add kdevelop-pg-qt.

* gnu/packages/kde.scm (kdevelop-pg-qt): New variable.
---
 gnu/packages/kde.scm | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 47ca002..13e6ff3 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -28,6 +28,29 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt))
 
+(define-public kdevelop-pg-qt
+  (package
+(name "kdevelop-pg-qt")
+(version "2.0.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/KDE/kdevelop-pg-qt/archive/v;
+   version ".tar.gz"))
+   (file-name (string-append name "-" version ".tar.gz"))
+   (sha256
+(base32 "1av8plqz7hyhrd07avnmn6ryslqlarmxn0pw7swzvb6ddiqp59j4"
+(native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+(inputs
+ `(("qtbase" ,qtbase)))
+(build-system cmake-build-system)
+(home-page "https://kde.org;)
+(synopsis "Parser generator library for KDevplatform")
+(description "KDevelop-PG-Qt is the parser generator used in KDevplatform
+for some KDevelop language plugins (Ruby, PHP, CSS...).")
+(license license:lgpl2.0)))
+
 (define-public libkomparediff2
   (package
 (name "libkomparediff2")
-- 
2.7.4




Re: [PATCH] gnu: Add qtwebkit.

2016-11-05 Thread Thomas Danckaert

From: Leo Famulari <l...@famulari.name>
Subject: Re: [PATCH] gnu: Add qtwebkit.
Date: Sat, 5 Nov 2016 14:45:38 -0400


Can you add a code comment mentioning that this package is not
officially supported by the Qt project?


done!

I've attached an updated patch, as well as a follow-up patch for the 
texmaker package.


cheers,

Thomas
From 68a4c4accb53cb11c70d242d78e14259e788ac86 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Sat, 5 Nov 2016 21:18:13 +0100
Subject: [PATCH 2/2] gnu: texmaker: Use modular qt and qtwebkit.

* gnu/packages/tex.scm (texmaker)[inputs]: Use modular qt and qtwebkit.
---
 gnu/packages/tex.scm | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index c8114c2..9186e46 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Roel Janssen <r...@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2016 Federico Beffa <be...@fbengineering.ch>
+;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -439,7 +440,9 @@ PDF documents.")
"texmaker.pro"
 (inputs
  `(("poppler-qt5" ,poppler-qt5)
-   ("qt" ,qt)
+   ("qtbase" ,qtbase)
+   ("qtscript" ,qtscript)
+   ("qtwebkit" ,qtwebkit)
("zlib" ,zlib)))
 (native-inputs
  `(("pkg-config" ,pkg-config)))
-- 
2.7.4

From 0348e13d0aaae4034e8a76f47512e64432b1f84f Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 26 Oct 2016 11:11:01 +0200
Subject: [PATCH 1/2] gnu: Add qtwebkit.

* gnu/packages/qt.scm (qtwebkit): New variable.
---
 gnu/packages/qt.scm | 114 
 1 file changed, 114 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a1e5fde..cf6af6a 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is>
+;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1112,3 +1113,116 @@ contain over 620 classes.")
   "QtKeychain is a Qt library to store passwords and other secret data
 securely.  It will not store any data unencrypted unless explicitly requested.")
 (license license:bsd-3)))
+
+(define-public qtwebkit
+  (package
+(name "qtwebkit")
+(version "5.7.0")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "http://download.qt.io/community_releases/;
+(version-major+minor version)
+"/" version "/qtwebkit-opensource-src-" version
+".tar.xz"))
+;; note: since Qt 5.6, Qt no longer officially supports qtwebkit
+(sha256
+ (base32
+  "1prlpl3zslzpr1iv7m3irvxjxn3v8nlxh21v9k2kaq4fpwy2b8y7"
+(build-system gnu-build-system)
+(native-inputs
+ `(("perl" ,perl)
+   ("python" ,python-2.7)
+   ("ruby" ,ruby)
+   ("bison" ,bison)
+   ("flex" ,flex)
+   ("gperf" ,gperf)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("icu" ,icu4c)
+   ("libjpeg" ,libjpeg)
+   ("libpng" ,libpng)
+   ("libwebp" ,libwebp)
+   ("sqlite" ,sqlite)
+   ("fontconfig" ,fontconfig)
+   ("libxrender", libxrender)
+   ("qtbase" ,qtbase)
+   ("qtdeclarative" ,qtdeclarative)
+   ("qtmultimedia" ,qtmultimedia)
+   ("libxml2" ,libxml2)
+   ("libxslt" ,libxslt)
+   ("libx11" ,libx11)
+   ("libxcomposite" ,libxcomposite)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (replace 'configure
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (setenv "QMAKEPATH"
+  (string-append (getcwd) "/Tools/qmake:"
+ (getenv "QMAKEPATH")))
+  (system* "qmake"
+ ;; prevent webkit from trying to install into the qtbase store directory,
+ ;; and replace references to the build directory in linker options:
+ (add-before 'build 'patch-ins

Re: [PATCH] gnu: Add qtwebkit.

2016-11-02 Thread Thomas Danckaert

From: Leo Famulari 
Subject: Re: [PATCH] gnu: Add qtwebkit.
Date: Sat, 29 Oct 2016 20:22:14 -0400


Is there any official statement from Qt about these "community
releases"? I see that it is hosted on qt.io, so presumably they are
somehow blessed by Qt, but I'd like more information.


I wasn't able to find any information at all.  Maybe someone on #kde 
can tell us more.


Thomas



Re: [PATCH] gnu: Add qtwebkit.

2016-11-02 Thread Thomas Danckaert

From: Roel Janssen 
Subject: Re: [PATCH] gnu: Add qtwebkit.
Date: Wed, 02 Nov 2016 13:35:21 +0100

I think this patch works fine.  Unfortunately for me, it does not 
fix
Texmaker's build because it needs QtWebkitWidgets which is 
apparently a

different thing.


I'm quite sure QtWebkitWidgets is in there (there's a 
libqtwebkitwidgets.so or something like that if you look in the lib 
directory. See also the 'QT+=webkitwidgets' in the example I 
attached). I don't know how Texmaker's build system works, maybe some 
of qtwebkit's qmake/pkg-config/libtool auxiliary files are incomplete 
or incorrect, and this is why texmaker doesn't find qtwebkitwidgets?  
If you can find out how texmaker looks for qtwebkitwidgets, we might 
improve the patch.


Thomas



[PATCH] gnu: Add qtwebkit.

2016-10-28 Thread Thomas Danckaert

Hi,

this patch adds QtWebKit 5.7 as a separate package (hopefully this will reduce 
security concerns: only packages which really need QtWebKit will include it).

QtWebKit is not officially supported anymore as of Qt 5.6, so this is a 
“community release” (not exactly sure what that entails, or if this includes 
any updates at all since the Qt 5.5 version).  I suppose many projects are 
switching to Qt WebEngine, and there are some efforts to create an updated 
version of QtWebKit (https://github.com/annulen/webkit), but in the mean time, 
this package might help build packages which still rely on the old QtWebKit.

By default, the qmake build system for qtwebkit insists on installing into the 
same prefix as qtbase, and it seems no command line parameters will change 
that. The solution I came up with, was to substitute all the necessary paths in 
the generated Makefiles. This makes the patch a bit lengthy.

I've also attached a minimal example.

Thomas
From ef2830cfc9342a88ce473f6a9bc55fee68991b74 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 26 Oct 2016 11:11:01 +0200
Subject: [PATCH] gnu: Add qtwebkit.

* gnu/packages/qt.scm (qtwebkit): New variable.
---
 gnu/packages/qt.scm | 113 
 1 file changed, 113 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a1e5fde..8e710ab 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is>
+;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1112,3 +1113,115 @@ contain over 620 classes.")
   "QtKeychain is a Qt library to store passwords and other secret data
 securely.  It will not store any data unencrypted unless explicitly requested.")
 (license license:bsd-3)))
+
+(define-public qtwebkit
+  (package
+(name "qtwebkit")
+(version "5.7.0")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "http://download.qt.io/community_releases/;
+(version-major+minor version)
+"/" version "/qtwebkit-opensource-src-" version
+".tar.xz"))
+(sha256
+ (base32
+  "1prlpl3zslzpr1iv7m3irvxjxn3v8nlxh21v9k2kaq4fpwy2b8y7"
+(build-system gnu-build-system)
+(native-inputs
+ `(("perl" ,perl)
+   ("python" ,python-2.7)
+   ("ruby" ,ruby)
+   ("bison" ,bison)
+   ("flex" ,flex)
+   ("gperf" ,gperf)
+   ("pkg-config" ,pkg-config)))
+(inputs
+ `(("icu" ,icu4c)
+   ("libjpeg" ,libjpeg)
+   ("libpng" ,libpng)
+   ("libwebp" ,libwebp)
+   ("sqlite" ,sqlite)
+   ("fontconfig" ,fontconfig)
+   ("libxrender", libxrender)
+   ("qtbase" ,qtbase)
+   ("qtdeclarative" ,qtdeclarative)
+   ("qtmultimedia" ,qtmultimedia)
+   ("libxml2" ,libxml2)
+   ("libxslt" ,libxslt)
+   ("libx11" ,libx11)
+   ("libxcomposite" ,libxcomposite)))
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (replace 'configure
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (setenv "QMAKEPATH"
+  (string-append (getcwd) "/Tools/qmake:"
+ (getenv "QMAKEPATH")))
+  (system* "qmake"
+ ;; prevent webkit from trying to install into the qtbase store directory,
+ ;; and replace references to the build directory in linker options:
+ (add-before 'build 'patch-installpaths
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+   (let* ((out (assoc-ref outputs "out"))
+  (qtbase (assoc-ref inputs "qtbase"))
+  (builddir (getcwd))
+  (linkbuild (string-append "-L" builddir))
+  (linkout (string-append "-L" out))
+  (makefiles
+   (map-in-order
+(lambda (i)
+  (let* ((in (car i))
+ (mf (string-append (dirname in) "/"
+  

[PATCH] gnu: Add qwt.

2016-10-25 Thread Thomas Danckaert

This patch adds Qwt.

For the license, I picked LGPL2.1, but in fact Qwt has its own “Qwt 
License”, which is the same as the LGPL2.1, but relaxes (or tries to 
relax) some of its conditions (see 
http://qwt.sourceforge.net/qwtlicense.html).  Can we stick with LGPL 
for our purposes?


I had to disable building of the qtcreator plugin, because this tries 
to link against the qwt library in the build directory, which is not 
accepted by the guix ld-wrapper (at least that's my understanding of 
it).  Suggestions on how to fix this are welcome (though at the 
moment, qtcreator is not packaged for guix anyway?).


Also, I put this in qt.scm, but perhaps it should go in a separate 
file (e.g. qt_contrib.scm?), because it's a third-party library?


cheers,

Thomas
From d9b856d8719877333fb015191f287da948e6d6c6 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 14 Oct 2016 13:27:23 +0200
Subject: [PATCH] gnu: Add qwt.

* gnu/packages/qt.scm (qwt, qwt-qt-4): New variables.
---
 gnu/packages/qt.scm | 41 +
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a1e5fde..483e338 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is>
+;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1112,3 +1113,43 @@ contain over 620 classes.")
   "QtKeychain is a Qt library to store passwords and other secret data
 securely.  It will not store any data unencrypted unless explicitly requested.")
 (license license:bsd-3)))
+
+(define-public qwt
+  (package
+(name "qwt")
+(version "6.1.3")
+(source
+  (origin
+(method url-fetch)
+(uri
+ (string-append "mirror://sourceforge/qwt/qwt/"
+version "/qwt-" version ".tar.bz2"))
+(sha256
+ (base32 "0cwp63s03dw351xavb3pzbjlqvx7kj88wv7v4a2b18m9f97d7v7k"
+  (build-system gnu-build-system)
+  (inputs
+   `(("qt" ,qt)))
+  (arguments
+   `(#:phases
+ (modify-phases %standard-phases
+   (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let ((out (assoc-ref outputs "out")))
+ (substitute* '("qwtconfig.pri")
+   (("/usr/local/qwt-\\$\\$QWT\\_VERSION") out)
+   (("QWT_CONFIG += QwtDesigner") ""))
+ (system* "qmake")))
+  (home-page "http://qwt.sourceforge.net;)
+  (synopsis "Qt widgets for plots, scales, dials and other technical software
+GUI components")
+  (description
+   "The Qwt library contains widgets and components which are primarily useful
+for technical and scientific purposes.  It includes a 2-D plotting widget,
+different kinds of sliders, and much more.")
+  (license license:lgpl2.1)))
+
+(define-public qwt-qt-4
+  (package (inherit qwt)
+   (name "qwt-qt-4")
+   (inputs
+`(("qt" ,qt-4)
-- 
2.7.4



Re: [PATCH] gnu: Add coda.

2016-10-25 Thread Thomas Danckaert
Thanks for applying!

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: [PATCH] gnu: Add coda.
Date: Mon, 24 Oct 2016 23:24:17 +0200

> However I noticed that Coda bundles copies of zlib, pcre, and expat.

I hadn't noticed that. I've attached a patch.

cheers,

Thomas
>From 56ba046e6c176e8f1109bb28ab75a586daa287db Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 25 Oct 2016 10:56:46 +0200
Subject: [PATCH] gnu: coda: Remove bundled libraries.

* gnu/packages/maths.scm (coda): Remove bundled libraries.
[source]: Add patch and snippet to remove bundled zlib, pcre and expat.
[inputs]: Add system zlib, pcre and expat.
* gnu/packages/patches/coda-use-system-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk|  1 +
 gnu/packages/maths.scm  | 13 +--
 gnu/packages/patches/coda-use-system-libs.patch | 46 +
 3 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/coda-use-system-libs.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 51849f4..4ffd37a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -484,6 +484,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/clucene-pkgconfig.patch			\
   %D%/packages/patches/clx-remove-demo.patch			\
   %D%/packages/patches/cmake-fix-tests.patch			\
+  %D%/packages/patches/coda-use-system-libs.patch		\
   %D%/packages/patches/cpio-CVE-2016-2037.patch			\
   %D%/packages/patches/cpufrequtils-fix-aclocal.patch		\
   %D%/packages/patches/cracklib-CVE-2016-6318.patch		\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2928cb6..70a6212 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -123,18 +123,27 @@ interactive dialogs to guide them.")
(uri (string-append "https://github.com/stcorp/coda/releases/download/;
version "/coda-" version ".tar.gz"))
(sha256
-(base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"
+(base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"))
+   (patches (search-patches "coda-use-system-libs.patch"))
+   (modules '((guix build utils)))
+   (snippet ;; Make sure we don't use the bundled software.
+'(map (lambda (d)
+(delete-file-recursively (string-append "libcoda/" d) ))
+  '("zlib" "pcre" "expat")
 (native-inputs
  `(("fortran" ,gfortran)
("python" ,python)
("python-numpy" ,python-numpy)))
 (inputs
  `(("zlib" ,zlib)
+   ("pcre" ,pcre)
+   ("expat" ,expat)
("hdf4" ,hdf4-alt)
("hdf5" ,hdf5)))
 (build-system gnu-build-system)
 (arguments
- '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python")))
+ '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python"
+   "LIBS= -lz -lpcre -lexpat")))
 (synopsis "A common interface to various earth observation data formats")
 (description
  "The Common Data Access toolbox (CODA) provides a set of interfaces for
diff --git a/gnu/packages/patches/coda-use-system-libs.patch b/gnu/packages/patches/coda-use-system-libs.patch
new file mode 100644
index 000..fbf8441
--- /dev/null
+++ b/gnu/packages/patches/coda-use-system-libs.patch
@@ -0,0 +1,46 @@
+Remove dependencies on bundled zlib, pcre and expat.
+
+diff --git a/Makefile.in b/Makefile.in
+index 4360a26..80f9f59 100644
+--- a/Makefile.in
 b/Makefile.in
+@@ -210,8 +210,7 @@ coda_matlab_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ @BUILD_MATLAB_TRUE@@SUBPACKAGE_MODE_FALSE@	-rpath \
+ @BUILD_MATLAB_TRUE@@SUBPACKAGE_MODE_FALSE@	$(matlabmexexecdir)
+ am__DEPENDENCIES_1 =
+-libcoda_la_DEPENDENCIES = @LTLIBOBJS@ libexpat_internal.la \
+-	libpcre_internal.la libz_internal.la $(am__DEPENDENCIES_1) \
++libcoda_la_DEPENDENCIES = @LTLIBOBJS@ $(am__DEPENDENCIES_1) \
+ 	$(am__DEPENDENCIES_1)
+ am__libcoda_la_SOURCES_DIST = libcoda/coda-ascbin-cursor.c \
+ 	libcoda/coda-ascbin.h libcoda/coda-ascii-cursor.c \
+@@ -306,8 +305,7 @@ libcoda_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ 	$(libcoda_la_LDFLAGS) $(LDFLAGS) -o $@
+ @SUBPACKAGE_MODE_FALSE@am_libcoda_la_rpath = -rpath $(libdir)
+-am__DEPENDENCIES_2 = @LTLIBOBJS@ libexpat_internal.la \
+-	libpcre_internal.la libz_internal.la $(am__DEPENDENCIES_1) \
++am__DEPENDENCIES_2 = @LTLIBOBJS@ $(am__DEPENDENCIES_1) \
+ 	$(am__DEPENDENCIES_1)
+ libcoda_internal_la_DEPENDENCIES = $(am__DEPENDENCIES_2)
+ am__libcoda_internal_la_SOURCES_DIST = libcoda/coda-ascbin-cursor.c \
+@@ -898,8 +896,8 @@ INSTAL

Re: [PATCH] gnu: Add coda.

2016-10-21 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: [PATCH] gnu: Add coda.
Date: Wed, 19 Oct 2016 22:13:42 +0200


+(native-search-paths
+ (list (search-path-specification
+(variable "PYTHONPATH")
+(files '("lib/python3.4/site-packages")


Unless I’m mistaken this is not needed: this ‘native-search-paths’ 
entry

belongs in Python itself, not in users of Python.


I used ipython to test the interface, and noticed the PYTHONPATH 
setting was missing.  That's why I added it here.  So probably this 
native-search-paths entry could/should be added to the ipython 
package?


+(synopsis "Common interface to various earth observation data 
formats")

+(description
+ "The Common Data Access toolbox (CODA) provides a set of 
interfaces for
+reading remote sensing data from earth observation data files.  
These
+interfaces consist of command line applications, libraries, 
interfaces to
+scientific applications (such as IDL and MATLAB), and interfaces 
to


Let’s remove MATLAB; we can replace it with Octave if it’s valid.


I removed IDL as well, because it's the same story as Matlab 
(proprietary scripting language for scientific applications).  I 
don't think there's an Octave interface, unless Octave can 
automatically use interfaces written for Matlab (unlikely? I have no 
experience with either).



+(license license:gpl2)))


Version 2 only?  That is, is the “or any later version” wording 
missing

from license headers?


gpl2+, indeed.

I've attached an updated patch.

cheers,

Thomas
>From f521132ac56e3ad6f7e6169fa1a0fcd56beb77f6 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 19 Oct 2016 11:44:33 +0200
Subject: [PATCH] gnu: Add coda.

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

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 07934e3..c3c5b68 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -113,6 +113,37 @@ interactive dialogs to guide them.")
(license license:gpl3+)
(home-page "http://www.gnu.org/software/c-graph/;)))
 
+(define-public coda
+  (package
+(name "coda")
+(version "2.17.3")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/stcorp/coda/releases/download/;
+   version "/coda-" version ".tar.gz"))
+   (sha256
+(base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"
+(native-inputs
+ `(("fortran" ,gfortran)
+   ("python" ,python)
+   ("python-numpy" ,python-numpy)))
+(inputs
+ `(("zlib" ,zlib)
+   ("hdf4" ,hdf4-alt)
+   ("hdf5" ,hdf5)))
+(build-system gnu-build-system)
+(arguments
+ '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python")))
+(synopsis "A common interface to various earth observation data formats")
+(description
+ "The Common Data Access toolbox (CODA) provides a set of interfaces for
+reading remote sensing data from earth observation data files.  It consists of
+command line applications and interfaces to the C, Fortran, Python, and Java
+programming languages.")
+(home-page "https://stcorp.nl/coda;)
+(license license:gpl2+)))
+
 (define-public units
   (package
(name "units")
-- 
2.7.4



[PATCH] gnu: Add coda.

2016-10-19 Thread Thomas Danckaert
This is a C library wich also presents a python interface.  It can be 
used just as well without python, so I've made python only a native 
input, not a regular input.  There's currently a non-determinism 
issue for the python interface, related to 
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22533


I also tried to automatically generate the string 
“lib/python3.4/site-packages”, so it's updated automatically when the 
python version changes, but didn't manage to do that (for example I 
tried


  (version-major+minor (package-version python))

but the package variable “python” is not available when the build 
expression is turned into a derivation, as far as I understand it?). 
Advice welcome.


Thomas
>From edb38dfcc09afdef4279728c84d10688b9d0fc71 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 19 Oct 2016 11:44:33 +0200
Subject: [PATCH] gnu: Add coda.

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

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 07934e3..f28d8b4 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -113,6 +113,42 @@ interactive dialogs to guide them.")
(license license:gpl3+)
(home-page "http://www.gnu.org/software/c-graph/;)))
 
+(define-public coda
+  (package
+(name "coda")
+(version "2.17.3")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/stcorp/coda/releases/download/;
+   version "/coda-" version ".tar.gz"))
+   (sha256
+(base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h"
+(native-inputs
+ `(("fortran" ,gfortran)
+   ("python" ,python)
+   ("python-numpy" ,python-numpy)))
+(inputs
+ `(("zlib" ,zlib)
+   ("hdf4" ,hdf4-alt)
+   ("hdf5" ,hdf5)))
+(build-system gnu-build-system)
+(arguments
+ '(#:configure-flags '("--with-hdf4" "--with-hdf5" "--enable-python")))
+(native-search-paths
+ (list (search-path-specification
+(variable "PYTHONPATH")
+(files '("lib/python3.4/site-packages")
+(synopsis "Common interface to various earth observation data formats")
+(description
+ "The Common Data Access toolbox (CODA) provides a set of interfaces for
+reading remote sensing data from earth observation data files.  These
+interfaces consist of command line applications, libraries, interfaces to
+scientific applications (such as IDL and MATLAB), and interfaces to
+programming languages (such as C, Fortran, Python, and Java).")
+(home-page "https://stcorp.nl/coda;)
+(license license:gpl2)))
+
 (define-public units
   (package
(name "units")
-- 
2.7.4



Re: Guix on clusters and in HPC

2016-10-19 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Guix on clusters and in HPC
Date: Tue, 18 Oct 2016 16:20:43 +0200


So I’ve come up with an initial list of work items going from the
immediate needs to crazy ideas (batch scheduler integration!) that
hopefully make sense to cluster/HPC people.  I’d be happy to get
feedback, suggestions, etc. from whoever is interested!


Here's a semi-crazy suggestion: some HPC people really like the intel 
compiler/math kernel library, so a way to switch toolchains on 
packages, and somehow integrate “foreign” toolchains would suit them. 
But that might be “advocating the use of non-free software” (in fact 
I almost feel like a heretic for bringing this up :-) ...).


best,

Thomas


Re: 01/01: gnu: hdf4: Fix non-x86 architectures.

2016-10-19 Thread Thomas Danckaert

From: Andreas Enge 
Subject: Re: 01/01: gnu: hdf4: Fix non-x86 architectures.
Date: Tue, 18 Oct 2016 21:19:28 +0200


On Mon, Oct 17, 2016 at 04:49:47PM -0400, Mark H Weaver wrote:
Contrary to the commit log message, the only part of this that 
actually

made it into the patch was adding 'hdf4-architectures.patch'.  The
changes to local.mk and maths.scm were not included.


Indeed, this explains why the package still did not compile...
This is fixed in commit 15ca49b220b531864b9ac4d3dcbb218279ca0db3,
thanks a lot for the notice!

Andreas


Thanks to you both for the patches.

I see the arm build is complete now.  I'll wait for mips, and, if 
that succeeds, send the patch to the HDF4 maintainers (though I'd 
expect Debian has already done so?).


Thomas



Re: [PATCH] gnu: Add hdf4

2016-10-14 Thread Thomas Danckaert

From: Andreas Enge 
Subject: Re: [PATCH] gnu: Add hdf4
Date: Fri, 14 Oct 2016 10:11:45 +0200


Hello,

the packages fail to compile on arm and mips:
   http://hydra.gnu.org/eval/109281#tabs-new
   http://hydra.gnu.org/build/1521682


Hi,

as far as I understand, the header hdfi.h defines fixed width 
datatypes such as float64, uint8, int32, ... depending on the 
detected architecture, and it's not detecting mips and arm properly.


I've checked, and see that Debian has a number patches for this and 
related issues, but I'm a bit out of my depth here (and don't have 
arm or mips systems to test before submitting any patches).  What are 
the options?  It would take me quite a bit of time to understand the 
Debian patches and see what we need.


Ideally, HDF4 maintainers would fix this in a future release.  I can 
try to contact them.


cheers,

Thomas



[PATCH] gnu: Add hdf-eos2.

2016-10-13 Thread Thomas Danckaert

Hi guix,

this patch adds HDF-EOS2 (which, somewhat confusingly, is completely 
independent from HDF-EOS5).


I'm not sure what the best version name is.  The tarball is
HDF-EOS2.19v1.00.tar.Z, but documentation sometimes refers to it as
“version 2.19”.  The 2 is part of the library name, though, so I went
with (version "19.1.0") in the end :-).  Is there a policy for version
labeling in Guix, and would (version "19v1.00") be ok?

Thomas
>From 53f69f5b4f0931b259ddd41ef25fc88a2ec6c26a Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 30 Sep 2016 09:59:08 +0200
Subject: [PATCH] gnu: Add hdf-eos2.

* gnu/packages/maths.scm (hdf-eos2): New variable.
* gnu/packages/patches/hdf-eos2-build-shared.patch: New file.
* gnu/packages/patches/hdf-eos2-remove-gctp.patch: New file.
* gnu/packages/patches/hdf-eos2-fortrantests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.
---
 gnu/local.mk |   3 +
 gnu/packages/maths.scm   |  35 +++
 gnu/packages/patches/hdf-eos2-build-shared.patch |  23 ++
 gnu/packages/patches/hdf-eos2-fortrantests.patch | 329 +++
 gnu/packages/patches/hdf-eos2-remove-gctp.patch  |  55 
 5 files changed, 445 insertions(+)
 create mode 100644 gnu/packages/patches/hdf-eos2-build-shared.patch
 create mode 100644 gnu/packages/patches/hdf-eos2-fortrantests.patch
 create mode 100644 gnu/packages/patches/hdf-eos2-remove-gctp.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 521ba2d..3e1348d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -581,6 +581,9 @@ dist_patch_DATA =		\
   %D%/packages/patches/hdf4-shared-fortran.patch 		\
   %D%/packages/patches/hdf4-reproducibility.patch 		\
   %D%/packages/patches/hdf5-config-date.patch			\
+  %D%/packages/patches/hdf-eos2-build-shared.patch 		\
+  %D%/packages/patches/hdf-eos2-remove-gctp.patch		\
+  %D%/packages/patches/hdf-eos2-fortrantests.patch		\
   %D%/packages/patches/hdf-eos5-build-shared.patch 		\
   %D%/packages/patches/hdf-eos5-remove-gctp.patch		\
   %D%/packages/patches/hdf-eos5-fix-szip.patch			\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 07934e3..fd096b7 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -543,6 +543,41 @@ extremely large and complex data collections.")
 (license (license:x11-style
   "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING;
 
+(define-public hdf-eos2
+  (package
+(name "hdf-eos2")
+(version "19.1.0")
+(source
+ (origin
+   (method url-fetch)
+   (uri "ftp://edhs1.gsfc.nasa.gov\
+/edhs/hdfeos/latest_release/HDF-EOS2.19v1.00.tar.Z")
+   (sha256
+(base32 "0c9fcz25s292ldap12wxmlrvnyz99z24p63d8fwx51bf8s0s1zrz"))
+   (patches (search-patches "hdf-eos2-remove-gctp.patch"
+"hdf-eos2-build-shared.patch"
+"hdf-eos2-fortrantests.patch"
+(build-system gnu-build-system)
+(native-inputs
+ `(("gfortran" ,gfortran)))
+(inputs
+ `(("hdf4" ,hdf4-alt) ; assume most HDF-EOS2 users won't use the HDF4 netCDF API
+   ("zlib" ,zlib)
+   ("libjpeg" ,libjpeg)
+   ("gctp" ,gctp)))
+(arguments
+ `( #:configure-flags '("--enable-install-include" "--enable-shared"
+"CC=h4cc -Df2cFortran" "LIBS=-lgctp")
+#:parallel-tests? #f))
+(home-page "http://hdfeos.org/software/library.php#HDF-EOS2;)
+(synopsis "HDF4-based data format for NASA's Earth Observing System")
+(description "HDF-EOS2 is a software library built on HDF4 which supports
+the construction of data structures used in NASA's Earth Observing
+system (Grid, Point and Swath).")
+
+;; Source files carry a permissive license header.
+(license (license:non-copyleft home-page
+
 (define-public hdf-eos5
   (package
 (name "hdf-eos5")
diff --git a/gnu/packages/patches/hdf-eos2-build-shared.patch b/gnu/packages/patches/hdf-eos2-build-shared.patch
new file mode 100644
index 000..2197296
--- /dev/null
+++ b/gnu/packages/patches/hdf-eos2-build-shared.patch
@@ -0,0 +1,23 @@
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 9534473..12411bf 100644
+--- a/src/Makefile.in
 b/src/Makefile.in
+@@ -73,7 +73,7 @@ LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
+ 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ 	$(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+-LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++LINK = HDF4_USE_SHLIB=yes $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libhdfeos_la_SOURCES)
+ DIST_SOURCES = $(libhdfeos_la_SOURCES)

Re: [PATCH] gnu: Add hdf4

2016-10-12 Thread Thomas Danckaert

From: l...@gnu.org (Ludovic Courtès)
Subject: Re: [PATCH] gnu: Add hdf4
Date: Wed, 12 Oct 2016 14:54:40 +0200

 - I've also added a variant “hdf4-alt”: by default, HDF4 includes 
a
   netCDF API to access HDF4 files, which clashes with the symbols 
in
   the real netCDF library when you try to use both libraries in 
your
   program.  This variant uses the “--disable-netcdf” configure 
flag

   to avoid this.  We could call it “hdf4-nonetcdf”, but the name
   “hdf4-alt” is used by Debian, so maybe it's good to use the 
same?


Would “hdf4-minimal” sound appropriate here?  That’s a convention 
we use

in similar cases.  Otherwise “hdf4-alt” is fine with me.


With --disable-netcdf, the library still includes all the same 
features, the netCDF API function names are just mangled to avoid 
conflicts.  So it's not really more “minimal” than the regular HDF4 
:-)  I'd either go for something that explicitly mentions netCDF, or 
hdf4-alt because that's what Debian uses.



+ (substitute*
+ (map (lambda (dir) (string-append dir 
"/Makefile.in"))
+  '("hdf" "hdf/examples" "hdf/fortran" 
"hdf/src"
+"hdf/test" "hdf/util" "mfhdf" 
"mfhdf/dumper"
+"mfhdf/examples" "mfhdf/fortran" 
"mfhdf/hdfimport"
+"mfhdf/hdiff" "mfhdf/hrepack" 
"mfhdf/libsrc"
+"mfhdf/ncgen" "mfhdf/ncdump" 
"mfhdf/nctest"

+"mfhdf/test" "mfhdf/xdr"))


Maybe simply (find-files "." "^Makefile\\.in$")?


Yes, I was convinced something like that had to exist, but am not 
good at reading the docs, it seems.



- CONFIG_DATE="`date`"
+ CONFIG_DATE="$SOURCE_DATE_EPOCH"

The smaller the patch, the better.  :-)


I went with

+CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH"`

(which just results in 1 Jan 1970, but anyway)

cheers,

Thomas
>From 3778ec2dfea4e5d7c0712ae1d354b463c8ee6694 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 28 Sep 2016 10:34:58 +0200
Subject: [PATCH] gnu: Add hdf4

* gnu/packages/maths.scm (hdf4, hdf4-alt): New variables.
* gnu/packages/patches/hdf4-reproducibility.patch: New file.
* gnu/packages/patches/hdf4-shared-fortran.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.

Co-Authored-By: Jeremy Robst <j...@bas.ac.uk>
---
 gnu/local.mk|  2 +
 gnu/packages/maths.scm  | 59 +
 gnu/packages/patches/hdf4-reproducibility.patch | 35 +++
 gnu/packages/patches/hdf4-shared-fortran.patch  | 25 +++
 4 files changed, 121 insertions(+)
 create mode 100644 gnu/packages/patches/hdf4-reproducibility.patch
 create mode 100644 gnu/packages/patches/hdf4-shared-fortran.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 1ce95f2..1b65e74 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -570,6 +570,8 @@ dist_patch_DATA =		\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
+  %D%/packages/patches/hdf4-shared-fortran.patch 		\
+  %D%/packages/patches/hdf4-reproducibility.patch 		\
   %D%/packages/patches/hdf5-config-date.patch			\
   %D%/packages/patches/hdf-eos5-build-shared.patch 		\
   %D%/packages/patches/hdf-eos5-remove-gctp.patch		\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d5e82bb..07934e3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -445,6 +445,65 @@ computations.")
 (home-page "https://github.com/OkoSanto/GCTP;)
 (license license:public-domain))) ;https://www2.usgs.gov/laws/info_policies.html
 
+(define-public hdf4
+  (package
+(name "hdf4")
+(version "4.2.11")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://support.hdfgroup.org/ftp/HDF/releases/HDF;
+   version "/src/hdf-" version ".tar.bz2"))
+   (sha256
+(base32 "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))
+   (patches (search-patches "hdf4-reproducibility.patch"
+"hdf4-shared-fortran.patch"
+
+(build-system gnu-build-system)
+(native-inputs
+ `(("gfortran" ,gfortran)
+   ("bison" ,bison)
+   ("flex" ,flex)))
+(inputs
+ `(("zlib" ,zlib)
+   ("libjpeg" ,libjpeg)))
+(arguments
+ `(#:parallel-tests? #f
+   #:configure-flags '("--enable-shared")
+   #:phases
+   (modify-phases %stan

[PATCH] gnu: Add hdf4

2016-10-11 Thread Thomas Danckaert
Hi Guix,

this patch continues the work done by Jeremy Robst to package HDF4

(https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00069.html)

 - Back then, people reported occasional build failures. I've disabled
   parallel tests and don't have any problems on my system anymore
   (maybe someone else can test?).

 - I've added a patch to allow a shared build with Fortran interface,
   and some substitutions to remove bogus RPATH settings from the
   Makefiles (otherwise, build directories are included in the RPATH).

 - I've also added a variant “hdf4-alt”: by default, HDF4 includes a
   netCDF API to access HDF4 files, which clashes with the symbols in
   the real netCDF library when you try to use both libraries in your
   program.  This variant uses the “--disable-netcdf” configure flag
   to avoid this.  We could call it “hdf4-nonetcdf”, but the name
   “hdf4-alt” is used by Debian, so maybe it's good to use the same?

best,

Thomas
>From dd7eca9a3cfec364a05aa0f52b941f09b4dea039 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Wed, 28 Sep 2016 10:34:58 +0200
Subject: [PATCH] gnu: Add hdf4

* gnu/packages/maths.scm (hdf4, hdf4-alt): New variables.
* gnu/packages/patches/hdf4-reproducibility.patch: New file.
* gnu/packages/patches/hdf4-shared-fortran.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.
---
 gnu/local.mk|  2 +
 gnu/packages/maths.scm  | 65 +
 gnu/packages/patches/hdf4-reproducibility.patch | 47 ++
 gnu/packages/patches/hdf4-shared-fortran.patch  | 25 ++
 4 files changed, 139 insertions(+)
 create mode 100644 gnu/packages/patches/hdf4-reproducibility.patch
 create mode 100644 gnu/packages/patches/hdf4-shared-fortran.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 1ce95f2..1b65e74 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -570,6 +570,8 @@ dist_patch_DATA =		\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
+  %D%/packages/patches/hdf4-shared-fortran.patch 		\
+  %D%/packages/patches/hdf4-reproducibility.patch 		\
   %D%/packages/patches/hdf5-config-date.patch			\
   %D%/packages/patches/hdf-eos5-build-shared.patch 		\
   %D%/packages/patches/hdf-eos5-remove-gctp.patch		\
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d5e82bb..72abe58 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -445,6 +445,71 @@ computations.")
 (home-page "https://github.com/OkoSanto/GCTP;)
 (license license:public-domain))) ;https://www2.usgs.gov/laws/info_policies.html
 
+(define-public hdf4
+  (package
+(name "hdf4")
+(version "4.2.11")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://support.hdfgroup.org/ftp/HDF/releases/HDF;
+   version "/src/hdf-" version ".tar.bz2"))
+   (sha256
+(base32 "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))
+   (patches (search-patches "hdf4-reproducibility.patch"
+"hdf4-shared-fortran.patch"
+(build-system gnu-build-system)
+(native-inputs
+ `(("gfortran" ,gfortran)
+   ("bison" ,bison)
+   ("flex" ,flex)))
+(inputs
+ `(("zlib" ,zlib)
+   ("libjpeg" ,libjpeg)))
+(arguments
+ `(#:parallel-tests? #f
+   #:configure-flags '("--enable-shared")
+   #:phases
+   (modify-phases %standard-phases
+ (add-before 'configure 'patchbuild
+   (lambda _
+ (substitute*
+ '("mfhdf/hdfimport/testutil.sh.in" "hdf/util/testutil.sh.in")
+   (("/bin/rm") "rm")
+   (("/bin/mkdir") "mkdir"))
+ (substitute*
+ (map (lambda (dir) (string-append dir "/Makefile.in"))
+  '("hdf" "hdf/examples" "hdf/fortran" "hdf/src"
+"hdf/test" "hdf/util" "mfhdf" "mfhdf/dumper"
+"mfhdf/examples" "mfhdf/fortran" "mfhdf/hdfimport"
+"mfhdf/hdiff" "mfhdf/hrepack" "mfhdf/libsrc"
+"mfhdf/ncgen" "mfhdf/ncdump" "mfhdf/nctest"
+"mfhdf/test" "mfhdf/xdr"))
+   (("@HDF_BUILD_XDR_TRUE@XDR_ADD = \
+-R\\$\\(abs_top_builddir\\)/mfhdf/xdr/\\.libs") "")
+   (("@HDF_BUILD_SHARED_TRUE@AM_LDFLAGS = \
+-R\\$\\(

[PATCH] gnu: Add hdf-eos5.

2016-09-27 Thread Thomas Danckaert
>From f1a3bc9dcfbe9091110aacf353d8224a88788292 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Fri, 17 Jun 2016 10:51:38 +0200
Subject: [PATCH] gnu: Add hdf-eos5.

* gnu/packages/maths.scm (hdf-eos5): New variable.
* gnu/packages/patches/hdf-eos5-build-shared.patch: New file.
* gnu/packages/patches/hdf-eos5-remove-gctp.patch: New file.
* gnu/packages/patches/hdf-eos5-fix-szip.patch: New file.
---
 gnu/packages/maths.scm   | 45 
 gnu/packages/patches/hdf-eos5-build-shared.patch | 88 
 gnu/packages/patches/hdf-eos5-fix-szip.patch | 32 +
 gnu/packages/patches/hdf-eos5-headers.patch  | 14 
 gnu/packages/patches/hdf-eos5-remove-gctp.patch  | 61 
 5 files changed, 240 insertions(+)
 create mode 100644 gnu/packages/patches/hdf-eos5-build-shared.patch
 create mode 100644 gnu/packages/patches/hdf-eos5-fix-szip.patch
 create mode 100644 gnu/packages/patches/hdf-eos5-headers.patch
 create mode 100644 gnu/packages/patches/hdf-eos5-remove-gctp.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 0401cd3..1cc041d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -42,6 +42,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -483,6 +484,50 @@ extremely large and complex data collections.")
 (license (license:x11-style
   "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING;
 
+(define-public hdf-eos5
+  (package
+(name "hdf-eos5")
+(version "1.15")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "ftp://edhs1.gsfc.nasa.gov\
+/edhs/hdfeos5/latest_release/HDF-EOS5." version ".tar.Z"))
+  (sha256
+   (base32
+"1p8nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
+  (patches (search-patches "hdf-eos5-build-shared.patch"
+   "hdf-eos5-remove-gctp.patch"
+   "hdf-eos5-fix-szip.patch"
+   "hdf-eos5-headers.patch"
+(native-inputs
+ `(("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)))
+(build-system gnu-build-system)
+(inputs
+ `(("hdf5" ,hdf5)
+   ("zlib" ,zlib)
+   ("gctp" ,gctp)))
+(arguments
+ `(#:configure-flags '("--enable-install-include")
+   #:phases
+   (modify-phases %standard-phases
+ (add-before
+ 'configure 'autogen
+   (lambda _  ; configure.ac was patched
+ (and (chmod "./configure" #o755)
+  (zero? (system* "autoreconf" "--install"))
+   #:parallel-tests? #f))
+(synopsis
+ "HDF-EOS5: HDF5-based data format for NASA's Earth Observing System")
+(description
+ "HDF-EOS5 is a software library built on HDF5 to support the construction
+of data structures used in NASA's Earth Observing System (Grid, Point and
+Swath).")
+(home-page "http://www.hdfeos.org/software/library.php#HDF-EOS5;)
+(license (license:bsd-style
+  "http://www.hdfeos.org/software/library.php#HDF-EOS5;
+
 (define-public hdf5-parallel-openmpi
   (package (inherit hdf5)
 (name "hdf5-parallel-openmpi")
diff --git a/gnu/packages/patches/hdf-eos5-build-shared.patch b/gnu/packages/patches/hdf-eos5-build-shared.patch
new file mode 100644
index 000..d1b4806
--- /dev/null
+++ b/gnu/packages/patches/hdf-eos5-build-shared.patch
@@ -0,0 +1,88 @@
+Allow shared build.
+
+We remove all references to the 'testdrivers' directory.  This directory is
+not included in the distributed source archive, and its absence trips up
+automake.
+
+---
+ Makefile.am |  6 --
+ configure.ac| 12 
+ include/HE5_HdfEosDef.h |  1 +
+ src/Makefile.am |  3 ++-
+ 4 files changed, 3 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 363bcfb..01ed024 100644
+--- a/Makefile.am
 b/Makefile.am
+@@ -3,13 +3,7 @@
+ # Include boilerplate
+ include $(top_srcdir)/config/include.am
+ 
+-# List of subdirectories.
+-# Only build the testdrivers directory if configure detected that it's present.
+-if TESTDRIVERS_CONDITIONAL
+-TESTDRIVERS=testdrivers
+-else
+ TESTDRIVERS=
+-endif
+ 
+ if INSTALL_INCLUDE_CONDITIONAL
+ INCLUDE=include
+diff --git a/configure.ac b/configure.ac
+index 5d48b43..cfa9d4e 100644
+--- a/configure.ac
 b/configure.ac
+@@ -13,9 +13,6 @@ AC_C

[PATCH] gnu: git: Add input for 'git-svn'.

2016-09-27 Thread Thomas Danckaert

Hi Guix-devel,

this adds a perl dependency for git-svn.

git-svn uses Term::ReadKey to read a user's password during http 
authentication with an svn server (and perhaps for other 
authentication methods as well).


best,

Thomas
>From d5e3bf1a9e26a0fce4485f9af67118674fa6f547 Mon Sep 17 00:00:00 2001
From: Thomas Danckaert <thomas.dancka...@gmail.com>
Date: Tue, 27 Sep 2016 15:38:51 +0200
Subject: [PATCH] gnu: git: Add input for 'git-svn'.

---
 gnu/packages/version-control.scm | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 29559bd..ef65a03 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -143,6 +143,7 @@ as well as the classic centralized workflow.")
 
   ;; For 'git-svn'.
   ("subversion" ,subversion)
+  ("perl-term-readkey" ,perl-term-readkey)
 
   ;; For 'git-send-email'
   ("perl-authen-sasl" ,perl-authen-sasl)
@@ -227,14 +228,15 @@ as well as the classic centralized workflow.")
 (list gitk git-gui git-cit git-se git-svn)
 (list gitk* git-gui* git-cit* git-se* git-svn*))
 
-  ;; Tell 'git-svn' where Subversion is.
+  ;; Tell 'git-svn' where Subversion and perl-term-readkey are.
   (wrap-program git-svn*
 `("PATH" ":" prefix
   (,(string-append (assoc-ref inputs "subversion")
"/bin")))
 `("PERL5LIB" ":" prefix
-  (,(string-append (assoc-ref inputs "subversion")
-   "/lib/perl5/site_perl")))
+  ,(map (lambda (i) (string-append (assoc-ref inputs i)
+   "/lib/perl5/site_perl"))
+'("subversion" "perl-term-readkey")))
 
 ;; XXX: The .so for SVN/Core.pm lacks a RUNPATH, so
 ;; help it find 'libsvn_client-1.so'.
-- 
2.10.0



Re: [PATCH] Add gctp

2016-09-24 Thread Thomas Danckaert
From: Leo Famulari 
Subject: Re: [PATCH] Add gctp
Date: Fri, 23 Sep 2016 21:08:25 -0400

>> +(version "2.0")
>> +(source
>> + (origin
>> +   (method url-fetch)
>> +   (uri "https://github.com/OkoSanto/GCTP/archive/v2.0.0.tar.gz;)
> 
> The only thing I would like to change is this mismatch between the
> version and the tarball name. Can we call it version 2.0.0?
> 
> Also, we should add a (file-name) field so that the downloaded tarball
> has "gctp" in the name.
> 
> I can make these changes locally if you think they are okay.

Of course, go ahead!

Thanks for reviewing the patch(-es).

Thomas



  1   2   >