unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCHES] Add recode, enca.
@ 2015-03-04 21:55 Taylan Ulrich Bayırlı/Kammer
  2015-03-06 22:03 ` Andreas Enge
  0 siblings, 1 reply; 7+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-03-04 21:55 UTC (permalink / raw)
  To: guix-devel

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

Is it fine to put these in a new file called encoding.scm?

In the first one, I couldn't figure out how to make the test suite run,
which uses a setup.py file to compile a small program, which fails with
"ld: cannot find -lrecode" (where recode is the library being tested).
Any help welcome.


[-- Attachment #2: patch1 --]
[-- Type: text/x-diff, Size: 3627 bytes --]

From 7f56201d97209986a9813fdd5040feee8bfe2b56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 <taylanbayirli@gmail.com>
Date: Wed, 4 Mar 2015 22:34:13 +0100
Subject: [PATCH 1/5] gnu: Add recode.

* gnu/packages/encoding.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am             |  1 +
 gnu/packages/encoding.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 gnu/packages/encoding.scm

diff --git a/gnu-system.am b/gnu-system.am
index e78d6a5..46a3a42 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -90,6 +90,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/elf.scm				\
   gnu/packages/emacs.scm			\
   gnu/packages/enchant.scm			\
+  gnu/packages/encoding.scm			\
   gnu/packages/enlightenment.scm		\
   gnu/packages/feh.scm                          \
   gnu/packages/file.scm				\
diff --git a/gnu/packages/encoding.scm b/gnu/packages/encoding.scm
new file mode 100644
index 0000000..9913e96
--- /dev/null
+++ b/gnu/packages/encoding.scm
@@ -0,0 +1,55 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;;
+;;; 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 encoding)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages python))
+
+(define-public recode
+  (package
+    (name "recode")
+    ;; Last beta release (3.7-beta2) is from 2008; last commit from Feb 2014.
+    ;; So we use that commit instead.
+    (version "3.7.0.201402")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "http://github.com/pinard/Recode.git")
+             (commit "2d7092a9999194fc0e9449717a8048c8d8e26c18")))
+       (sha256
+        (base32 "1wssv8z6g3ryrw33sksz4rjhlnhgvvdqszw1ggl4rcwks34n86zm"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("python" ,python-2)))
+    (arguments
+     ;; Test-suite uses a setup.py file to compile a file, which then
+     ;; complains "ld: cannot find -lrecode".
+     '(#:tests? #f))
+    (home-page "https://github.com/pinard/Recode")
+    (synopsis "Text encoding converter")
+    (description "The Recode library converts files between character sets and
+usages.  It recognises or produces over 200 different character sets (or about
+300 if combined with an iconv library) and transliterates files between almost
+any pair.  When exact transliteration are not possible, it gets rid of
+offending characters or falls back on approximations.  The recode program is a
+handy front-end to the library.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
-- 
2.2.1


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: patch2 --]
[-- Type: text/x-diff, Size: 1553 bytes --]

From 440acf1194e3105bd386b28eff92a9aeed25ace1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 <taylanbayirli@gmail.com>
Date: Wed, 4 Mar 2015 22:35:15 +0100
Subject: [PATCH 2/5] gnu: Add enca.

* gnu/packages/encoding.scm (enca): New variable.
---
 gnu/packages/encoding.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/encoding.scm b/gnu/packages/encoding.scm
index 9913e96..6b9ccb0 100644
--- a/gnu/packages/encoding.scm
+++ b/gnu/packages/encoding.scm
@@ -53,3 +53,23 @@ any pair.  When exact transliteration are not possible, it gets rid of
 offending characters or falls back on approximations.  The recode program is a
 handy front-end to the library.")
     (license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public enca
+  (package
+    (name "enca")
+    (version "1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/nijel/enca/archive/" version ".tar.gz"))
+       (sha256
+        (base32 "1xik00x0yvhswsw2isnclabhv536xk1s42cf5z54gfbpbhc7ni8l"))))
+    (build-system gnu-build-system)
+    (inputs `(("recode" ,recode)))
+    (home-page "https://github.com/nijel/enca")
+    (synopsis "Text encoding detection tool")
+    (description "Enca (Extremely Naive Charset Analyser) consists of libenca,
+an encoding detection library, and enca, a command line frontend, integrating
+libenca and several charset conversion libraries and tools.")
+    (license license:gpl2)))
-- 
2.2.1


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

* Re: [PATCHES] Add recode, enca.
  2015-03-04 21:55 [PATCHES] Add recode, enca Taylan Ulrich Bayırlı/Kammer
@ 2015-03-06 22:03 ` Andreas Enge
  2015-03-07 12:54   ` Taylan Ulrich Bayırlı/Kammer
  2015-03-08 21:19   ` Ludovic Courtès
  0 siblings, 2 replies; 7+ messages in thread
From: Andreas Enge @ 2015-03-06 22:03 UTC (permalink / raw)
  To: Taylan Ulrich Bayırlı/Kammer; +Cc: guix-devel

On Wed, Mar 04, 2015 at 10:55:01PM +0100, Taylan Ulrich Bayırlı/Kammer wrote:
> Is it fine to put these in a new file called encoding.scm?

Hm, that makes me think more of audio or video encoding than of text.
Maybe textutils.scm?

> In the first one, I couldn't figure out how to make the test suite run,
> which uses a setup.py file to compile a small program, which fails with
> "ld: cannot find -lrecode" (where recode is the library being tested).
> Any help welcome.

You could set LD_LIBRARY_PATH to "." (or the subdirectory where the library
can be found) before running the tests.

Andreas

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

* Re: [PATCHES] Add recode, enca.
  2015-03-06 22:03 ` Andreas Enge
@ 2015-03-07 12:54   ` Taylan Ulrich Bayırlı/Kammer
  2015-03-08 21:19   ` Ludovic Courtès
  1 sibling, 0 replies; 7+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-03-07 12:54 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> writes:

>> In the first one, I couldn't figure out how to make the test suite
>> run, which uses a setup.py file to compile a small program, which
>> fails with "ld: cannot find -lrecode" (where recode is the library
>> being tested).  Any help welcome.
>
> You could set LD_LIBRARY_PATH to "." (or the subdirectory where the
> library can be found) before running the tests.

I tried various paths and none seem to help.  I'm guessing it's a
peculiarity of the setup.py system.  I moved this to near the end of my
patch series for mplayer2, so I guess I can look into it a bit more
after I've pushed the other dozen.

Taylan

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

* Re: [PATCHES] Add recode, enca.
  2015-03-06 22:03 ` Andreas Enge
  2015-03-07 12:54   ` Taylan Ulrich Bayırlı/Kammer
@ 2015-03-08 21:19   ` Ludovic Courtès
  2015-03-09 13:47     ` Taylan Ulrich Bayırlı/Kammer
  1 sibling, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2015-03-08 21:19 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel

Andreas Enge <andreas@enge.fr> skribis:

> On Wed, Mar 04, 2015 at 10:55:01PM +0100, Taylan Ulrich Bayırlı/Kammer wrote:
>> Is it fine to put these in a new file called encoding.scm?
>
> Hm, that makes me think more of audio or video encoding than of text.
> Maybe textutils.scm?

Sounds good to me.

>> In the first one, I couldn't figure out how to make the test suite run,
>> which uses a setup.py file to compile a small program, which fails with
>> "ld: cannot find -lrecode" (where recode is the library being tested).
>> Any help welcome.
>
> You could set LD_LIBRARY_PATH to "." (or the subdirectory where the library
> can be found) before running the tests.

This should be ‘LIBRARY_PATH’, not ‘LD_LIBRARY_PATH’, but yes, good idea.

Ludo’.

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

* Re: [PATCHES] Add recode, enca.
  2015-03-08 21:19   ` Ludovic Courtès
@ 2015-03-09 13:47     ` Taylan Ulrich Bayırlı/Kammer
  2015-03-09 20:19       ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-03-09 13:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

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

>> You could set LD_LIBRARY_PATH to "." (or the subdirectory where the
>> library can be found) before running the tests.
>
> This should be ‘LIBRARY_PATH’, not ‘LD_LIBRARY_PATH’, but yes, good
> idea.

I found out that I can patch the setup.py file to include the necessary
library dir in its instructions.  Updated patch is below.

Tell me if this should go to a 'snippet' (or patch) in the 'source'
instead (where it would patch setup.py.in).  I'm not sure if the need to
specify the ".libs" subdirectory is Guix-specific or not.


[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 3782 bytes --]

From 8bd6b2b327820a15292097c9deeabcedfb9346ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
 <taylanbayirli@gmail.com>
Date: Wed, 4 Mar 2015 22:34:13 +0100
Subject: [PATCH 22/25] gnu: Add recode.

* gnu/packages/textutils.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am              |  1 +
 gnu/packages/textutils.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)
 create mode 100644 gnu/packages/textutils.scm

diff --git a/gnu-system.am b/gnu-system.am
index 2474c1f..4119f46 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -279,6 +279,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/telephony.scm			\
   gnu/packages/texinfo.scm			\
   gnu/packages/texlive.scm			\
+  gnu/packages/textutils.scm			\
   gnu/packages/time.scm				\
   gnu/packages/tmux.scm				\
   gnu/packages/tor.scm				\
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
new file mode 100644
index 0000000..6bc7ff4
--- /dev/null
+++ b/gnu/packages/textutils.scm
@@ -0,0 +1,60 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+;;;
+;;; 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 textutils)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages python))
+
+(define-public recode
+  (package
+    (name "recode")
+    ;; Last beta release (3.7-beta2) is from 2008; last commit from Feb 2014.
+    ;; So we use that commit instead.
+    (version "3.7.0.201402")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pinard/Recode.git")
+             (commit "2d7092a9999194fc0e9449717a8048c8d8e26c18")))
+       (sha256
+        (base32 "1wssv8z6g3ryrw33sksz4rjhlnhgvvdqszw1ggl4rcwks34n86zm"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("python" ,python-2)))
+    (arguments
+     '(#:phases
+       (alist-cons-before
+        'check 'fix-setup-py
+        (lambda _
+          (substitute* "tests/setup.py"
+            (("([[:space:]]*)include_dirs=.*" all space)
+             (string-append all space "library_dirs=['../src/.libs'],\n"))))
+        %standard-phases)))
+    (home-page "https://github.com/pinard/Recode")
+    (synopsis "Text encoding converter")
+    (description "The Recode library converts files between character sets and
+usages.  It recognises or produces over 200 different character sets (or about
+300 if combined with an iconv library) and transliterates files between almost
+any pair.  When exact transliteration are not possible, it gets rid of
+offending characters or falls back on approximations.  The recode program is a
+handy front-end to the library.")
+    (license (list license:gpl2+ license:lgpl2.1+))))
-- 
2.2.1


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

* Re: [PATCHES] Add recode, enca.
  2015-03-09 13:47     ` Taylan Ulrich Bayırlı/Kammer
@ 2015-03-09 20:19       ` Ludovic Courtès
  2015-03-09 21:47         ` Taylan Ulrich Bayırlı/Kammer
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2015-03-09 20:19 UTC (permalink / raw)
  To: Taylan Ulrich "Bayırlı/Kammer"; +Cc: guix-devel

taylanbayirli@gmail.com (Taylan Ulrich "Bayırlı/Kammer") skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>>> You could set LD_LIBRARY_PATH to "." (or the subdirectory where the
>>> library can be found) before running the tests.
>>
>> This should be ‘LIBRARY_PATH’, not ‘LD_LIBRARY_PATH’, but yes, good
>> idea.
>
> I found out that I can patch the setup.py file to include the necessary
> library dir in its instructions.  Updated patch is below.
>
> Tell me if this should go to a 'snippet' (or patch) in the 'source'
> instead (where it would patch setup.py.in).

The way you did it looks fine to me.

> I'm not sure if the need to specify the ".libs" subdirectory is
> Guix-specific or not.

I don’t think so (the package uses libtool, right?)  This may be a
genuine upstream bug, which could go unnoticed when the user happens to
have a librecode.so in the loader’s search path.

> From 8bd6b2b327820a15292097c9deeabcedfb9346ac Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?=
>  <taylanbayirli@gmail.com>
> Date: Wed, 4 Mar 2015 22:34:13 +0100
> Subject: [PATCH 22/25] gnu: Add recode.
>
> * gnu/packages/textutils.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

[...]

> +    (license (list license:gpl2+ license:lgpl2.1+))))

Please add a comment telling if this is an ‘or’ or an ‘and’.

Thanks!

Ludo’.

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

* Re: [PATCHES] Add recode, enca.
  2015-03-09 20:19       ` Ludovic Courtès
@ 2015-03-09 21:47         ` Taylan Ulrich Bayırlı/Kammer
  0 siblings, 0 replies; 7+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-03-09 21:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

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

>> I'm not sure if the need to specify the ".libs" subdirectory is
>> Guix-specific or not.
>
> I don’t think so (the package uses libtool, right?)  This may be a
> genuine upstream bug, which could go unnoticed when the user happens to
> have a librecode.so in the loader’s search path.

OK, I left the patching in the build phase for now but filed a bug on
GitHub.

>> +    (license (list license:gpl2+ license:lgpl2.1+))))
>
> Please add a comment telling if this is an ‘or’ or an ‘and’.

The reason I had listed both was that some Copyright file from Debian
claims the program is under GPL and the library under LGPL, but looking
through the sources I could see no sensible separation of program and
library source files after all, and no explicit mention of what license
applies to what other than individual GPL or LGPL headers on seemingly
arbitrary .c files, so I set the license to just gpl2+ after all.

Thanks for the review!  Will push along with all the other patches. :-)

Taylan

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

end of thread, other threads:[~2015-03-09 21:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-04 21:55 [PATCHES] Add recode, enca Taylan Ulrich Bayırlı/Kammer
2015-03-06 22:03 ` Andreas Enge
2015-03-07 12:54   ` Taylan Ulrich Bayırlı/Kammer
2015-03-08 21:19   ` Ludovic Courtès
2015-03-09 13:47     ` Taylan Ulrich Bayırlı/Kammer
2015-03-09 20:19       ` Ludovic Courtès
2015-03-09 21:47         ` Taylan Ulrich Bayırlı/Kammer

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).