unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* Netpbm
@ 2013-01-19 17:03 Andreas Enge
  2013-01-19 22:06 ` Netpbm Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2013-01-19 17:03 UTC (permalink / raw)
  To: bug-guix


[-- Attachment #1.1: Type: text/plain, Size: 328 bytes --]

Hello,

the attached patch is a first attempt at adding netpbm. I disabled four 
tests for which I do not know why they failed.

Now the package builds, but "guix-package -i netpbm" results in an error 
message that a user environment in the nix store could not be created.

Could someone else please test the package?

Andreas

[-- Attachment #1.2: Type: text/html, Size: 2145 bytes --]

[-- Attachment #2: 0001-gnu-Add-netpbm.patch --]
[-- Type: text/x-patch, Size: 5557 bytes --]

From 2542c6f1107f271643bfc6da177d2c94f48b2d1f Mon Sep 17 00:00:00 2001
From: Andreas Enge <andreas@enge.fr>
Date: Sat, 19 Jan 2013 17:59:46 +0100
Subject: [PATCH] gnu: Add netpbm.

* gnu/packages/netpbm.scm: New file.
* Makefile.am (MODULES): Add it.
---
 Makefile.am             |    1 +
 gnu/packages/netpbm.scm |  103 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 104 insertions(+)
 create mode 100644 gnu/packages/netpbm.scm

diff --git a/Makefile.am b/Makefile.am
index 4df699a..a8b278b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -103,6 +103,7 @@ MODULES =					\
   gnu/packages/mysql.scm			\
   gnu/packages/nano.scm				\
   gnu/packages/ncurses.scm			\
+  gnu/packages/netpbm.scm			\
   gnu/packages/nettle.scm			\
   gnu/packages/openssl.scm			\
   gnu/packages/oggvorbis.scm			\
diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm
new file mode 100644
index 0000000..2670f30
--- /dev/null
+++ b/gnu/packages/netpbm.scm
@@ -0,0 +1,103 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages netpbm)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages libtiff)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xml)
+  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public netpbm
+  (package
+   (name "netpbm")
+   (version "10.61.01")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://www.multiprecision.org/guix/netpbm-"
+                                version ".tar.xz"))
+             ;; The "super-stable" and "stable" versions do not compile
+             ;; with newer libpng; we need the "advanced" version, which is
+             ;; not available as a tarball with a fixed hash. So we put it
+             ;; onto an unrelated server.
+            (sha256 (base32
+                     "10nwvxc85kr6vhlhhahagy7s9848bbixl54b0p4ppim4g0dl10jz"))))
+   (build-system gnu-build-system)
+   (inputs `(("flex" ,flex)
+             ("ghostscript" ,ghostscript)
+             ("libjpeg" ,libjpeg)
+             ("libpng" ,libpng)
+             ("libtiff" ,libtiff)
+             ("libxml2" ,libxml2)
+             ("perl" ,perl)
+             ("pkg-config" ,pkg-config)
+             ("python" ,python)
+             ("zlib" ,zlib)))
+   (arguments
+    `(#:phases
+      (alist-replace
+       'configure
+       (lambda* (#:key #:allow-other-keys #:rest args)
+        (copy-file "config.mk.in" "config.mk")
+        (let ((f (open-file "config.mk" "a")))
+         (display "CC=gcc\n" f)
+         (display "CFLAGS_SHLIB += -fPIC\n" f)
+         (display "TIFFLIB = libtiff.so\n" f)
+         (display "JPEGLIB = libjpeg.so\n" f)
+         (display "ZLIB = libz.so\n" f)
+         (close-port f)))
+      (alist-replace
+       'check
+       (lambda* (#:key #:allow-other-keys #:rest args)
+        (let ((check (assoc-ref %standard-phases 'check)))
+          (system* "make" "package")
+           ;; install temporarily into /tmp/netpbm
+          (substitute* "test/all-in-place.test" (("pamx") ""))
+           ;; remove test requiring X
+          (substitute* "test/all-in-place.test" (("^rm ") "rm -f "))
+           ;; do not worry about non-existing file
+          (substitute* "test/Test-Order" (("all-in-place.test") ""))
+          (substitute* "test/Test-Order" (("pnmpsnr.test") ""))
+          (substitute* "test/Test-Order" (("pnmremap1.test") ""))
+          (substitute* "test/Test-Order" (("gif-roundtrip.test") ""))
+           ;; remove four tests that fail for unknown reasons
+          (apply check args)))
+      (alist-replace
+       'install
+       (lambda* (#:key outputs make-flags #:allow-other-keys)
+        (let ((out (assoc-ref outputs "out")))
+         (zero? (apply system* "make" "package" (string-append "pkgdir=" out) make-flags))))
+      %standard-phases)))))
+   (synopsis "Netpbm, a toolkit for manipulation of images")
+   (description
+    "Netpbm is a toolkit for the manipulation of graphic images, including
+the conversion of images between a variety of different formats.
+There are over 300 separate tools in the package including converters for
+about 100 graphics formats.")
+   (license gpl2)
+   (home-page "http://netpbm.sourceforge.net/")))
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-19 17:03 Netpbm Andreas Enge
@ 2013-01-19 22:06 ` Ludovic Courtès
  2013-01-19 22:24   ` Netpbm Andreas Enge
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2013-01-19 22:06 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> Could someone else please test the package?

I just tried, and it builds perfectly as
/nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-netpbm-10.61.01.

There are extraneous file in the root of that directory:

  $ ls /nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-netpbm-10.61.01/
  bin/  config_template  include/  lib/  link/  man/  misc/  pkginfo  README  VERSION

Ideally, it’d be great to (re)move them.

As for the source tarball: could you add a comment that specifies from
which revision it was obtained?

(Eventually, we’ll have an ‘subversion-fetch’ method, in addition to
‘url-fetch’, which could be used in such situations.)

Thanks, and congratulations given how painful it looked!

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-19 22:06 ` Netpbm Ludovic Courtès
@ 2013-01-19 22:24   ` Andreas Enge
  2013-01-20 14:02     ` Netpbm Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2013-01-19 22:24 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 1778 bytes --]

Am Samstag, 19. Januar 2013 schrieb Ludovic Courtès:
> Andreas Enge <andreas@enge.fr> skribis:
> > Could someone else please test the package?
> I just tried, and it builds perfectly as
> /nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-netpbm-10.61.01.

Thanks! For me also, it builds well, but I cannot install it:

$ guix-package -i netpbm
error: build failed: build of `/nix/store/h2s02132641hvaqr03q96i97dydlqm4i-
user-environment.drv' failed.

Maybe because of the extraneous files?

> There are extraneous file in the root of that directory:
>   bin/  config_template  include/  lib/  link/  man/  misc/  pkginfo 
> README  VERSION
> Ideally, it’d be great to (re)move them.

Okay.

> As for the source tarball: could you add a comment that specifies from
> which revision it was obtained?

Well, it was simply obtained from the download link of the "Advanced" field 
at
   http://netpbm.sourceforge.net/getting_netpbm.php
The link is
   http://netpbm.svn.sourceforge.net/viewvc/netpbm/advanced?view=tar
which would download a tarball with the name "advanced?view=tar", and with 
the hash changing every time (I did not understand why). So I downloaded it 
manually and renamed it. It is really an official release with a regular 
version number, not simply an svn/git checkout. The version number is 
recorded in a file in the tarball (which was part of the download, I did 
not add anything).

> (Eventually, we’ll have an ‘subversion-fetch’ method, in addition to
> ‘url-fetch’, which could be used in such situations.)

Before that, https would be nice!

> Thanks, and congratulations given how painful it looked!

Yes, it was quite amazing; once more, we should be grateful to the GNU 
build system...

Andreas

[-- Attachment #2: Type: text/html, Size: 7985 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-19 22:24   ` Netpbm Andreas Enge
@ 2013-01-20 14:02     ` Ludovic Courtès
  2013-01-20 15:31       ` Netpbm Andreas Enge
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2013-01-20 14:02 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> Am Samstag, 19. Januar 2013 schrieb Ludovic Courtès:
>> Andreas Enge <andreas@enge.fr> skribis:
>> > Could someone else please test the package?
>> I just tried, and it builds perfectly as
>> /nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-netpbm-10.61.01.
>
> Thanks! For me also, it builds well, but I cannot install it:
>
> $ guix-package -i netpbm
> error: build failed: build of `/nix/store/h2s02132641hvaqr03q96i97dydlqm4i-
> user-environment.drv' failed.

Can you run it with --verbose?

>> As for the source tarball: could you add a comment that specifies from
>> which revision it was obtained?
>
> Well, it was simply obtained from the download link of the "Advanced" field 
> at
>    http://netpbm.sourceforge.net/getting_netpbm.php
> The link is
>    http://netpbm.svn.sourceforge.net/viewvc/netpbm/advanced?view=tar
> which would download a tarball with the name "advanced?view=tar", and with 
> the hash changing every time (I did not understand why). So I downloaded it 
> manually and renamed it. It is really an official release with a regular 
> version number, not simply an svn/git checkout. The version number is 
> recorded in a file in the tarball (which was part of the download, I did 
> not add anything).

OK, it’s probably a generated tarball from a checkout.  Can you just add
these links to the file?

>> (Eventually, we’ll have an ‘subversion-fetch’ method, in addition to
>> ‘url-fetch’, which could be used in such situations.)
>
> Before that, https would be nice!

Yes, it’s in the pipeline.  :-)

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-20 14:02     ` Netpbm Ludovic Courtès
@ 2013-01-20 15:31       ` Andreas Enge
  2013-01-20 22:08         ` Netpbm Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2013-01-20 15:31 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix


[-- Attachment #1.1: Type: text/plain, Size: 893 bytes --]

Am Sonntag, 20. Januar 2013 schrieb Ludovic Courtès:
> > $ guix-package -i netpbm
> > error: build failed: build of
> > `/nix/store/h2s02132641hvaqr03q96i97dydlqm4i- user-environment.drv'
> > failed.
> Can you run it with --verbose?

Ah, so many options! I tried the daemon with --debug. Here is the result:
In unknown file:
   ?: 0 [mkdir "/nix/store/mv7v3y702k1yfml8067gn15r3n6pzjxm-user-
environment///nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-
netpbm-10.61.01/VERSION" ...]
ERROR: In procedure mkdir:
ERROR: In procedure mkdir: No such file or directory

So indeed, the problem is the extraneous files, and the package can be 
installed after deleting them.

> OK, it’s probably a generated tarball from a checkout.  Can you just add
> these links to the file?

Yes, I just read one could also do an svn checkout from a tag.

New patch attached.

Andreas



[-- Attachment #1.2: Type: text/html, Size: 5055 bytes --]

[-- Attachment #2: 0001-gnu-Add-netpbm.patch --]
[-- Type: text/x-patch, Size: 6256 bytes --]

From b26a654bd3e98c79e1196e3297601c65376648b4 Mon Sep 17 00:00:00 2001
From: Andreas Enge <andreas@enge.fr>
Date: Sat, 19 Jan 2013 17:59:46 +0100
Subject: [PATCH] gnu: Add netpbm.

* gnu/packages/netpbm.scm: New file.
* Makefile.am (MODULES): Add it.
---
 Makefile.am             |    1 +
 gnu/packages/netpbm.scm |  115 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 116 insertions(+)
 create mode 100644 gnu/packages/netpbm.scm

diff --git a/Makefile.am b/Makefile.am
index 9edfd99..5b08de8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -104,6 +104,7 @@ MODULES =					\
   gnu/packages/mysql.scm			\
   gnu/packages/nano.scm				\
   gnu/packages/ncurses.scm			\
+  gnu/packages/netpbm.scm			\
   gnu/packages/nettle.scm			\
   gnu/packages/openssl.scm			\
   gnu/packages/oggvorbis.scm			\
diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm
new file mode 100644
index 0000000..176cff5
--- /dev/null
+++ b/gnu/packages/netpbm.scm
@@ -0,0 +1,115 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages netpbm)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages libtiff)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xml)
+  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public netpbm
+  (package
+   (name "netpbm")
+   (version "10.61.01")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://www.multiprecision.org/guix/netpbm-"
+                                version ".tar.xz"))
+             ;; The "super-stable" and "stable" versions do not compile
+             ;; with newer libpng; we need the "advanced" version. The tarball
+             ;; on the server is generated by sourceforge from the "advanced"
+             ;; branch of the subversion repository:
+             ;; svn checkout http://netpbm.svn.sourceforge.net/svnroot/netpbm/advanced netpbm-version
+            (sha256 (base32
+                     "10nwvxc85kr6vhlhhahagy7s9848bbixl54b0p4ppim4g0dl10jz"))))
+   (build-system gnu-build-system)
+   (inputs `(("flex" ,flex)
+             ("ghostscript" ,ghostscript)
+             ("libjpeg" ,libjpeg)
+             ("libpng" ,libpng)
+             ("libtiff" ,libtiff)
+             ("libxml2" ,libxml2)
+             ("perl" ,perl)
+             ("pkg-config" ,pkg-config)
+             ("python" ,python)
+             ("zlib" ,zlib)))
+   (arguments
+    `(#:phases
+      (alist-replace
+       'configure
+       (lambda* (#:key #:allow-other-keys #:rest args)
+        (copy-file "config.mk.in" "config.mk")
+        (let ((f (open-file "config.mk" "a")))
+         (display "CC=gcc\n" f)
+         (display "CFLAGS_SHLIB += -fPIC\n" f)
+         (display "TIFFLIB = libtiff.so\n" f)
+         (display "JPEGLIB = libjpeg.so\n" f)
+         (display "ZLIB = libz.so\n" f)
+         (close-port f)))
+      (alist-replace
+       'check
+       (lambda* (#:key #:allow-other-keys #:rest args)
+        (let ((check (assoc-ref %standard-phases 'check)))
+          (system* "make" "package")
+           ;; install temporarily into /tmp/netpbm
+          (substitute* "test/all-in-place.test" (("pamx") ""))
+           ;; remove test requiring X
+          (substitute* "test/all-in-place.test" (("^rm ") "rm -f "))
+           ;; do not worry about non-existing file
+          (substitute* "test/Test-Order" (("all-in-place.test") ""))
+          (substitute* "test/Test-Order" (("pnmpsnr.test") ""))
+          (substitute* "test/Test-Order" (("pnmremap1.test") ""))
+          (substitute* "test/Test-Order" (("gif-roundtrip.test") ""))
+           ;; remove four tests that fail for unknown reasons
+          (apply check args)))
+      (alist-replace
+       'install
+       (lambda* (#:key outputs make-flags #:allow-other-keys)
+        (let ((out (assoc-ref outputs "out")))
+         (apply system* "make" "package"
+                        (string-append "pkgdir=" out) make-flags)
+         (copy-file (string-append out "/link/libnetpbm.a")
+                    (string-append out "/lib/libnetpbm.a"))
+          ;; copy static library
+         (system* "rm" "-r" (string-append out "/link"))
+         (system* "rm" "-r" (string-append out "/misc"))
+         (delete-file (string-append out "/config_template"))
+         (delete-file (string-append out "/pkginfo"))
+         (delete-file (string-append out "/README"))
+         (delete-file (string-append out "/VERSION"))))
+          ;; remove superfluous folders and files
+      %standard-phases)))))
+   (synopsis "Netpbm, a toolkit for manipulation of images")
+   (description
+    "Netpbm is a toolkit for the manipulation of graphic images, including
+the conversion of images between a variety of different formats.
+There are over 300 separate tools in the package including converters for
+about 100 graphics formats.")
+   (license gpl2)
+   (home-page "http://netpbm.sourceforge.net/")))
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-20 15:31       ` Netpbm Andreas Enge
@ 2013-01-20 22:08         ` Ludovic Courtès
  2013-01-20 22:40           ` Netpbm Andreas Enge
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2013-01-20 22:08 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> Ah, so many options! I tried the daemon with --debug. Here is the result:
> In unknown file:
>    ?: 0 [mkdir "/nix/store/mv7v3y702k1yfml8067gn15r3n6pzjxm-user-
> environment///nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-
> netpbm-10.61.01/VERSION" ...]
> ERROR: In procedure mkdir:
> ERROR: In procedure mkdir: No such file or directory

Hmm, that still means there’s a bug with top-level file handling in
(guix union).  I’ll investigate later.

A few comments:

> +         (copy-file (string-append out "/link/libnetpbm.a")
> +                    (string-append out "/lib/libnetpbm.a"))
> +          ;; copy static library

This comment should be just above.

> +         (system* "rm" "-r" (string-append out "/link"))
> +         (system* "rm" "-r" (string-append out "/misc"))

This reminds me we need an ‘rm -rf’ in (guix build utils).  (There’s one
using ‘file-system-fold’ in mysql.scm, if you’re curious, but it’s OK to
call out to Coreutils in the meantime.  ;-))

> +         (delete-file (string-append out "/config_template"))
> +         (delete-file (string-append out "/pkginfo"))
> +         (delete-file (string-append out "/README"))
> +         (delete-file (string-append out "/VERSION"))))
> +          ;; remove superfluous folders and files

The comment should be above, and you could instead write:

  (with-directory-excursion out
    (for-each delete-file
              '("config_template" "pkginfo" "README" "VERSION")))

> +   (license gpl2)

It seems to be more complex than this.  Some files in lib/ have this:

  ** Permission to use, copy, modify, and distribute this software and its
  ** documentation for any purpose and without fee is hereby granted, provided
  ** that the above copyright notice appear in all copies and that both that
  ** copyright notice and this permission notice appear in supporting
  ** documentation.  This software is provided "as is" without express or
  ** implied warranty.

Others in analyzer/ have GPLv2+, others have this:

  All work has been contributed to the public domain by its authors.

Debian lists a number of other issues, including unknown-status and
non-free parts:

  http://packages.debian.org/changelogs/pool/main/n/netpbm-free/netpbm-free_10.0-12.2/libnetpbm10.copyright

The software black-list (http://libreplanet.org/wiki/Software_blacklist)
doesn’t mention it.

So perhaps we should remove things that Debian remove, and use something
more representative in the ‘license’ field?

(You really picked up a hard one.  ;-))

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-20 22:08         ` Netpbm Ludovic Courtès
@ 2013-01-20 22:40           ` Andreas Enge
  2013-01-20 23:17             ` Netpbm Andreas Enge
  2013-01-21 10:25             ` Netpbm Ludovic Courtès
  0 siblings, 2 replies; 12+ messages in thread
From: Andreas Enge @ 2013-01-20 22:40 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 1870 bytes --]

Am Sonntag, 20. Januar 2013 schrieb Ludovic Courtès:
> > In unknown file:
> >    ?: 0 [mkdir "/nix/store/mv7v3y702k1yfml8067gn15r3n6pzjxm-user-
> > 
> > environment///nix/store/agjc4rdsvi4wvbz6dymgid5pb85nqcf7-
> > netpbm-10.61.01/VERSION" ...]
> > ERROR: In procedure mkdir:
> > ERROR: In procedure mkdir: No such file or directory
> 
> Hmm, that still means there’s a bug with top-level file handling in
> (guix union).  I’ll investigate later.

Well, after deleting the extraneous files, everything works well.

> A few comments:
> This comment should be just above.
> The comment should be above, and you could instead write:

Great, I am always writing my comments below... But at least this is easy 
to fix.

> > +   (license gpl2)
> 
> It seems to be more complex than this.  Some files in lib/ have this:
> 
>   ** Permission to use, copy, modify, and distribute this software and
> its ** documentation for any purpose and without fee is hereby granted,
> provided ** that the above copyright notice appear in all copies and
> that both that ** copyright notice and this permission notice appear in
> supporting ** documentation.  This software is provided "as is" without
> express or ** implied warranty.
> 
> Others in analyzer/ have GPLv2+, others have this:
> 
>   All work has been contributed to the public domain by its authors.

Should it not be possible to relicense all of these under gpl2, so that the 
license field is still correct? Anyway, we cannot track the licenses of all 
files with only one field...

> Debian lists a number of other issues, including unknown-status and
> non-free parts: 
> http://packages.debian.org/changelogs/pool/main/n/netpbm-free/netpbm-fr
> ee_10.0-12.2/libnetpbm10.copyright

This is more annoying, I will investigate and try to remove non-free parts.

Andreas

[-- Attachment #2: Type: text/html, Size: 8946 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-20 22:40           ` Netpbm Andreas Enge
@ 2013-01-20 23:17             ` Andreas Enge
  2013-01-21 10:27               ` Netpbm Ludovic Courtès
  2013-01-21 10:25             ` Netpbm Ludovic Courtès
  1 sibling, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2013-01-20 23:17 UTC (permalink / raw)
  To: bug-guix


[-- Attachment #1.1: Type: text/plain, Size: 496 bytes --]

Am Sonntag, 20. Januar 2013 schrieb Andreas Enge:
> This is more annoying, I will investigate and try to remove non-free
> parts.

Now I remember, the one marked non-free is already not distributed; 
instead, the binary explains how to get the real code. I dropped it since 
it advertises non-free software.

Of those without license according to debian, two actually are marked as 
public domain; I dropped all others.

Now it just remains to decide what to put into the license field.

Andreas

[-- Attachment #1.2: Type: text/html, Size: 2590 bytes --]

[-- Attachment #2: 0001-gnu-Add-netpbm.patch --]
[-- Type: text/x-patch, Size: 6947 bytes --]

From c8fb31c0ae33b4226e8cbf7d381fddfd59c070cc Mon Sep 17 00:00:00 2001
From: Andreas Enge <andreas@enge.fr>
Date: Sat, 19 Jan 2013 17:59:46 +0100
Subject: [PATCH] gnu: Add netpbm.

* gnu/packages/netpbm.scm: New file.
* Makefile.am (MODULES): Add it.
---
 Makefile.am             |    1 +
 gnu/packages/netpbm.scm |  126 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 127 insertions(+)
 create mode 100644 gnu/packages/netpbm.scm

diff --git a/Makefile.am b/Makefile.am
index 5e3114d..faaad99 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -105,6 +105,7 @@ MODULES =					\
   gnu/packages/mysql.scm			\
   gnu/packages/nano.scm				\
   gnu/packages/ncurses.scm			\
+  gnu/packages/netpbm.scm			\
   gnu/packages/nettle.scm			\
   gnu/packages/openssl.scm			\
   gnu/packages/oggvorbis.scm			\
diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm
new file mode 100644
index 0000000..d2213b8
--- /dev/null
+++ b/gnu/packages/netpbm.scm
@@ -0,0 +1,126 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages netpbm)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages flex)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages libjpeg)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages libtiff)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xml)
+  #:use-module ((guix licenses) #:select (gpl2))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu))
+
+(define-public netpbm
+  (package
+   (name "netpbm")
+   (version "10.61.01")
+   (source (origin
+            (method url-fetch)
+            ;; The "super-stable" and "stable" versions do not compile
+            ;; with newer libpng; we need the "advanced" version. The tarball
+            ;; on the server is generated by sourceforge from the "advanced"
+            ;; branch of the subversion repository:
+            ;; svn checkout http://netpbm.svn.sourceforge.net/svnroot/netpbm/advanced netpbm-version
+            (uri (string-append "http://www.multiprecision.org/guix/netpbm-"
+                                version ".tar.xz"))
+            (sha256 (base32
+                     "10nwvxc85kr6vhlhhahagy7s9848bbixl54b0p4ppim4g0dl10jz"))))
+   (build-system gnu-build-system)
+   (inputs `(("flex" ,flex)
+             ("ghostscript" ,ghostscript)
+             ("libjpeg" ,libjpeg)
+             ("libpng" ,libpng)
+             ("libtiff" ,libtiff)
+             ("libxml2" ,libxml2)
+             ("perl" ,perl)
+             ("pkg-config" ,pkg-config)
+             ("python" ,python)
+             ("zlib" ,zlib)))
+   (arguments
+    `(#:phases
+      (alist-replace
+       'configure
+       (lambda* (#:key #:allow-other-keys #:rest args)
+        (copy-file "config.mk.in" "config.mk")
+        (let ((f (open-file "config.mk" "a")))
+         (display "CC=gcc\n" f)
+         (display "CFLAGS_SHLIB += -fPIC\n" f)
+         (display "TIFFLIB = libtiff.so\n" f)
+         (display "JPEGLIB = libjpeg.so\n" f)
+         (display "ZLIB = libz.so\n" f)
+         (close-port f)
+         ;; drop advertisement for non-free program
+         (substitute* "converter/ppm/Makefile" (("hpcdtoppm") ""))
+         ;; drop programs without license, see
+         ;; http://packages.debian.org/changelogs/pool/main/n/netpbm-free/netpbm-free_10.0-12.2/libnetpbm10.copyright
+         (substitute* "converter/pbm/Makefile" (("pbmto4425") ""))
+         (substitute* "converter/pbm/Makefile" (("pbmtoln03") ""))
+         (substitute* "converter/pbm/Makefile" (("pbmtolps") ""))
+         (substitute* "converter/pbm/Makefile" (("pbmtopk") ""))
+         (substitute* "converter/pbm/Makefile" (("pktopbm") ""))
+         (substitute* "converter/pgm/Makefile" (("spottopgm") ""))
+         (substitute* "converter/ppm/Makefile" (("ppmtopjxl") ""))
+         ))
+      (alist-replace
+       'check
+       (lambda* (#:key #:allow-other-keys #:rest args)
+        (let ((check (assoc-ref %standard-phases 'check)))
+          ;; install temporarily into /tmp/netpbm
+          (system* "make" "package")
+          ;; remove test requiring X
+          (substitute* "test/all-in-place.test" (("pamx") ""))
+          ;; do not worry about non-existing file
+          (substitute* "test/all-in-place.test" (("^rm ") "rm -f "))
+          ;; remove four tests that fail for unknown reasons
+          (substitute* "test/Test-Order" (("all-in-place.test") ""))
+          (substitute* "test/Test-Order" (("pnmpsnr.test") ""))
+          (substitute* "test/Test-Order" (("pnmremap1.test") ""))
+          (substitute* "test/Test-Order" (("gif-roundtrip.test") ""))
+          (apply check args)))
+      (alist-replace
+       'install
+       (lambda* (#:key outputs make-flags #:allow-other-keys)
+        (let ((out (assoc-ref outputs "out")))
+         (apply system* "make" "package"
+                        (string-append "pkgdir=" out) make-flags)
+         ;; copy static library
+         (copy-file (string-append out "/link/libnetpbm.a")
+                    (string-append out "/lib/libnetpbm.a"))
+         ;; remove superfluous folders and files
+         (system* "rm" "-r" (string-append out "/link"))
+         (system* "rm" "-r" (string-append out "/misc"))
+         (with-directory-excursion out
+           (for-each delete-file
+                     '("config_template" "pkginfo" "README" "VERSION")))))
+      %standard-phases)))))
+   (synopsis "Netpbm, a toolkit for manipulation of images")
+   (description
+    "Netpbm is a toolkit for the manipulation of graphic images, including
+the conversion of images between a variety of different formats.
+There are over 300 separate tools in the package including converters for
+about 100 graphics formats.")
+   (license gpl2)
+   (home-page "http://netpbm.sourceforge.net/")))
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-20 22:40           ` Netpbm Andreas Enge
  2013-01-20 23:17             ` Netpbm Andreas Enge
@ 2013-01-21 10:25             ` Ludovic Courtès
  1 sibling, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2013-01-21 10:25 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> Am Sonntag, 20. Januar 2013 schrieb Ludovic Courtès:

[...]

>> It seems to be more complex than this.  Some files in lib/ have this:
>> 
>>   ** Permission to use, copy, modify, and distribute this software and
>> its ** documentation for any purpose and without fee is hereby granted,
>> provided ** that the above copyright notice appear in all copies and
>> that both that ** copyright notice and this permission notice appear in
>> supporting ** documentation.  This software is provided "as is" without
>> express or ** implied warranty.
>> 
>> Others in analyzer/ have GPLv2+, others have this:
>> 
>>   All work has been contributed to the public domain by its authors.
>
> Should it not be possible to relicense all of these under gpl2, so that the 
> license field is still correct? Anyway, we cannot track the licenses of all 
> files with only one field...

Actually, the ‘license’ field should reflect the license of the
“combined work”.  So, since there’s a least one GPLv2+ file, the
combined work may well be under GPLv2+, or perhaps under GPLv2-only if
there’s such a file around.

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-20 23:17             ` Netpbm Andreas Enge
@ 2013-01-21 10:27               ` Ludovic Courtès
  2013-01-21 21:00                 ` Netpbm Andreas Enge
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2013-01-21 10:27 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> Am Sonntag, 20. Januar 2013 schrieb Andreas Enge:
>> This is more annoying, I will investigate and try to remove non-free
>> parts.
>
> Now I remember, the one marked non-free is already not distributed; 
> instead, the binary explains how to get the real code. I dropped it since 
> it advertises non-free software.
>
> Of those without license according to debian, two actually are marked as 
> public domain; I dropped all others.

OK, great.

> Now it just remains to decide what to put into the license field.

Seems like it’s either GPLv2+ or GPLv2-only.  Is there a v2-only file?

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-21 10:27               ` Netpbm Ludovic Courtès
@ 2013-01-21 21:00                 ` Andreas Enge
  2013-01-21 22:44                   ` Netpbm Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Enge @ 2013-01-21 21:00 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: bug-guix

[-- Attachment #1: Type: text/plain, Size: 800 bytes --]

Am Montag, 21. Januar 2013 schrieb Ludovic Courtès:
> Seems like it’s either GPLv2+ or GPLv2-only.  Is there a v2-only file?

Good question. There are 530 C files...

I will follow the debian analysis at
   http://packages.debian.org/changelogs/pool/main/n/netpbm-free/netpbm-
free_10.0-12.2/libnetpbm10.copyright
and write down my findings here for future reference.

There is

fiasco: no license information inside netpbm, but it is distributed on its 
own as gpl2+, see   
   https://github.com/megatherion/Fiasco/blob/master/README

mdatopbm: gpl2+

pamstretch: gpl2+

pbmpage, pbmtoppa: This appears to be gpl2 only. The C files state:
 * Copyright (c) 1998 Tim Norman.  See LICENSE for details
And LICENSE is GPLv2.

So I will stop here and push as gpl2.

Andreas

[-- Attachment #2: Type: text/html, Size: 5337 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Netpbm
  2013-01-21 21:00                 ` Netpbm Andreas Enge
@ 2013-01-21 22:44                   ` Ludovic Courtès
  0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2013-01-21 22:44 UTC (permalink / raw)
  To: Andreas Enge; +Cc: bug-guix

Andreas Enge <andreas@enge.fr> skribis:

> So I will stop here and push as gpl2.

Good.  Thanks for the thorough analysis!

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-01-21 22:44 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-19 17:03 Netpbm Andreas Enge
2013-01-19 22:06 ` Netpbm Ludovic Courtès
2013-01-19 22:24   ` Netpbm Andreas Enge
2013-01-20 14:02     ` Netpbm Ludovic Courtès
2013-01-20 15:31       ` Netpbm Andreas Enge
2013-01-20 22:08         ` Netpbm Ludovic Courtès
2013-01-20 22:40           ` Netpbm Andreas Enge
2013-01-20 23:17             ` Netpbm Andreas Enge
2013-01-21 10:27               ` Netpbm Ludovic Courtès
2013-01-21 21:00                 ` Netpbm Andreas Enge
2013-01-21 22:44                   ` Netpbm Ludovic Courtès
2013-01-21 10:25             ` Netpbm Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).