unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Andreas Enge <andreas@enge.fr>
To: Cyril Roelandt <tipecaml@gmail.com>
Cc: bug-guix@gnu.org
Subject: Re: libxml2-python
Date: Thu, 7 Mar 2013 23:38:13 +0100	[thread overview]
Message-ID: <201303072338.13585.andreas@enge.fr> (raw)
In-Reply-To: <5137E3B2.4090801@gmail.com>

[-- Attachment #1: Type: Text/Plain, Size: 1886 bytes --]

Am Donnerstag, 7. März 2013 schrieb Cyril Roelandt:
>  From setup.py:
> # those are examined to find
> # - libxml2/libxml/tree.h
> # - iconv.h
> # - libxslt/xsltconfig.h
> includes_dir = [
> "/usr/include",
> "/usr/local/include",
> "/opt/include",
> os.path.join(ROOT,'include'),
> HOME
> ];
> 
> You could patch setup.py to add the right path. Or you could run
> "configure" in libxml2 with "--prefix=<yourprefix>", then cd into the
> "python" directory, and ROOT will be set to <youprefix> in setup.py.

Thanks for your help! Indeed, when running "setup.py install" from the guix 
builder, libxml2 is found after installing it, so the "--prefix" is 
honoured. However, then iconv.h is searched for in the given list of paths, 
which does not include /nix/store/...glibc.../include, and the CPATH is not 
taken into account, so iconv.h is not found.

I tried adding glibc as an explicit input and to overwrite the path in 
setup.py. However, that does not use the glibc of the CPATH, but builds 
another one on top of it. Do I understand it correctly that I need to use 
glibc-final instead?

> Try:
> $ python setup.py install --prefix=/path/to/foo/bar
> You may have to adjust $PYTHONPATH to something like:
> /path/to/foo/bar:$PYTHONPATH
> for this to work.

Specifying no --prefix, it now tries to install a file as
   /nix/store/j8f28wavspyic8g9didl1ninaz48vdq0-
python-2.7.3/lib/python2.7/site-packages/libxml2mod.so
which fails since this is another package, not libxml2.
Giving as --prefix the output path, files are instead installed into
   /nix/store/svnw8fq87qrfrpcs7grx5nram558ahkp-
libxml2-2.9.0/lib/python2.7/site-packages/
which looks reasonable.

I am attaching the resulting patch. Is it reasonable to apply it to the 
libxml2 package, or would it be preferable to create a separate libxml2-
python package?

Andreas

[-- Attachment #2: libxml2.patch --]
[-- Type: text/x-patch, Size: 1501 bytes --]

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index b3c5f7d..0a47f35 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -19,6 +19,8 @@
 
 (define-module (gnu packages xml)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
@@ -64,7 +66,22 @@ things the parser might find in the XML document (like start tags).")
     (home-page "http://www.xmlsoft.org/")
     (synopsis "libxml2, a C parser for XML")
     (inputs `(("perl" ,perl)
-              ("python" ,python)))
+              ("python" ,python)
+              ("zlib" ,zlib)
+              ("glibc" ,glibc-final)))
+    (arguments
+     `(#:phases
+        (alist-replace
+         'install
+         (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+          (let ((install (assoc-ref %standard-phases 'install))
+                (glibc (assoc-ref inputs "glibc"))
+                (out (assoc-ref outputs "out")))
+            (apply install args)
+            (chdir "python")
+            (substitute* "setup.py" (("/opt/include") (string-append glibc "/include")))
+            (system* "python" "setup.py" "install" (string-append "--prefix=" out))))
+        %standard-phases)))
     (description
      "Libxml2 is the XML C parser and toolkit developed for the Gnome project
 (but it is usable outside of the Gnome platform).")

  reply	other threads:[~2013-03-07 22:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-06 22:43 libxml2-python Andreas Enge
2013-03-07  0:47 ` libxml2-python Cyril Roelandt
2013-03-07 22:38   ` Andreas Enge [this message]
2013-03-07 23:25     ` libxml2-python Ludovic Courtès
2013-03-08 12:13       ` libxml2-python Andreas Enge
2013-03-14 13:25         ` libxml2-python Ludovic Courtès
2013-03-14 14:17           ` libxml2-python Andreas Enge
2013-03-10 16:10     ` libxml2-python Cyril Roelandt
2013-03-12 20:26       ` libxml2-python Andreas Enge
2013-03-14 17:34         ` libxml2-python Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201303072338.13585.andreas@enge.fr \
    --to=andreas@enge.fr \
    --cc=bug-guix@gnu.org \
    --cc=tipecaml@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).