GNU bug report logs - #36623
[PATCH] gnu: gdal: add python support

Previous Next

Package: guix-patches;

Reported by: arne_bab <at> web.de

Date: Fri, 12 Jul 2019 21:34:01 UTC

Severity: normal

Tags: patch

Done: iyzsong <at> member.fsf.org (宋文武)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 36623 in the body.
You can then email your comments to 36623 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Fri, 12 Jul 2019 21:34:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to arne_bab <at> web.de:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Fri, 12 Jul 2019 21:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Arne Babenhauserheide <arne_bab <at> web.de>
To: guix-patches <at> gnu.org
Cc: Arne Babenhauserheide <arne_bab <at> web.de>
Subject: [PATCH] gnu: gdal: add python support
Date: Fri, 12 Jul 2019 23:32:47 +0200
* gnu/packages/geo.scm (gdal): add python support
---
 gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 4cccd97643..3e2ec04b53 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -537,6 +537,8 @@ development.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
+       ;; validating runpath does not work yet for Python, so skip this phase.
+       #:validate-runpath? #f
        #:configure-flags
        (let-syntax ((with (syntax-rules ()
                             ((_ option input)
@@ -544,6 +546,10 @@ development.")
                                             (assoc-ref %build-inputs input))))))
          (list
            ;; TODO: --with-pcidsk, --with-pcraster
+           ;; Add $libdir to the RUNPATH of all the executables.
+           (string-append "LDFLAGS=-Wl,-rpath=" %output "/apps/.libs")
+           (string-append "LD_RUN_PATH=" %output "/apps/.libs")
+           (string-append "LD_LIBRARY_PATH=" %output "/apps/.libs")
            (with "--with-freexl" "freexl")
            (with "--with-libjson-c" "json-c")
            (with "--with-png" "libpng")
@@ -553,13 +559,27 @@ development.")
            (with "--with-libtiff" "libtiff")
            (with "--with-geotiff" "libgeotiff")
            (with "--with-libz" "zlib")
-           "--with-pcre"))
+           "--with-pcre"
+           "--with-python"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-path
            (lambda _
              (substitute* "frmts/mrf/mrf_band.cpp"
-               (("\"../zlib/zlib.h\"") "<zlib.h>")))))))
+               (("\"../zlib/zlib.h\"") "<zlib.h>"))))
+         (add-after
+             'unpack 'patch-test-shebangs
+           (lambda _
+             (substitute* '("apps/GNUmakefile")
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-after
+             'unpack 'patch-test-shebangs
+           (lambda _
+             (substitute* '("GDALmake.opt.in")
+               (("LDFLAGS     = @LDFLAGS@") (string-append "LDFLAGS     = @LDFLAGS@ -Wl,-rpath=" %output "/apps -Wl,-rpath=" %output "/apps/.libs")))
+             #t)
+           ))))
     (inputs
      `(("freexl" ,freexl)
        ("geos" ,geos)
@@ -572,6 +592,11 @@ development.")
        ("libwebp" ,libwebp)
        ("pcre" ,pcre)
        ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("python" ,python)
+       ("python-setuptools" ,python-setuptools)))
     (home-page "http://www.gdal.org/")
     (synopsis "Raster and vector geospatial data format library")
     (description "GDAL is a translator library for raster and vector geospatial
--
2.22.0





Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Sat, 13 Jul 2019 08:16:02 GMT) Full text and rfc822 format available.

Message #8 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: arne_bab <at> web.de, Arne Babenhauserheide <arne_bab <at> web.de>,
 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Sat, 13 Jul 2019 10:15:22 +0200
Le 12 juillet 2019 23:32:47 GMT+02:00, Arne Babenhauserheide <arne_bab <at> web.de> a écrit :
>* gnu/packages/geo.scm (gdal): add python support
>---
> gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++--
> 1 file changed, 27 insertions(+), 2 deletions(-)
>
>diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
>index 4cccd97643..3e2ec04b53 100644
>--- a/gnu/packages/geo.scm
>+++ b/gnu/packages/geo.scm
>@@ -537,6 +537,8 @@ development.")
>     (build-system gnu-build-system)
>     (arguments
>      `(#:tests? #f
>+       ;; validating runpath does not work yet for Python, so skip
>this phase.
>+       #:validate-runpath? #f
>        #:configure-flags
>        (let-syntax ((with (syntax-rules ()
>                             ((_ option input)
>@@ -544,6 +546,10 @@ development.")
>                                   (assoc-ref %build-inputs input))))))
>          (list
>            ;; TODO: --with-pcidsk, --with-pcraster
>+           ;; Add $libdir to the RUNPATH of all the executables.
>+           (string-append "LDFLAGS=-Wl,-rpath=" %output "/apps/.libs")
>+           (string-append "LD_RUN_PATH=" %output "/apps/.libs")
>+           (string-append "LD_LIBRARY_PATH=" %output "/apps/.libs")
>            (with "--with-freexl" "freexl")
>            (with "--with-libjson-c" "json-c")
>            (with "--with-png" "libpng")
>@@ -553,13 +559,27 @@ development.")
>            (with "--with-libtiff" "libtiff")
>            (with "--with-geotiff" "libgeotiff")
>            (with "--with-libz" "zlib")
>-           "--with-pcre"))
>+           "--with-pcre"
>+           "--with-python"))
>        #:phases
>        (modify-phases %standard-phases
>          (add-before 'build 'fix-path
>            (lambda _
>              (substitute* "frmts/mrf/mrf_band.cpp"
>-               (("\"../zlib/zlib.h\"") "<zlib.h>")))))))
>+               (("\"../zlib/zlib.h\"") "<zlib.h>"))))
>+         (add-after
>+             'unpack 'patch-test-shebangs
>+           (lambda _
>+             (substitute* '("apps/GNUmakefile")
>+               (("/bin/sh") (which "sh")))
>+             #t))
>+         (add-after
>+             'unpack 'patch-test-shebangs
>+           (lambda _
>+             (substitute* '("GDALmake.opt.in")
>+               (("LDFLAGS     = @LDFLAGS@") (string-append "LDFLAGS   
>= @LDFLAGS@ -Wl,-rpath=" %output "/apps -Wl,-rpath=" %output
>"/apps/.libs")))
>+             #t)
>+           ))))

Could you rename that phase to something like 'patch-rpath? Is it needed since you already pass it to the configure?

>     (inputs
>      `(("freexl" ,freexl)
>        ("geos" ,geos)
>@@ -572,6 +592,11 @@ development.")
>        ("libwebp" ,libwebp)
>        ("pcre" ,pcre)
>        ("zlib" ,zlib)))
>+    (native-inputs
>+     `(("pkg-config" ,pkg-config)))
>+    (propagated-inputs
>+     `(("python" ,python)
>+       ("python-setuptools" ,python-setuptools)))

Is setuptools really necessary at runtime? Can we patch gdal so to embed python's store path? I'd prefer not to propagate it.

>     (home-page "http://www.gdal.org/")
>     (synopsis "Raster and vector geospatial data format library")
>(description "GDAL is a translator library for raster and vector
>geospatial
>--
>2.22.0

Thank you!





Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Sat, 13 Jul 2019 21:16:01 GMT) Full text and rfc822 format available.

Message #11 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Arne Babenhauserheide <arne_bab <at> web.de>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Sat, 13 Jul 2019 23:14:56 +0200
[Message part 1 (text/plain, inline)]
Julien Lepiller <julien <at> lepiller.eu> writes:

> Le 12 juillet 2019 23:32:47 GMT+02:00, Arne Babenhauserheide <arne_bab <at> web.de> a écrit :
>>* gnu/packages/geo.scm (gdal): add python support
>>---
>> gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++--
>> 1 file changed, 27 insertions(+), 2 deletions(-)
>>
>>diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
>>index 4cccd97643..3e2ec04b53 100644
>>--- a/gnu/packages/geo.scm
>>+++ b/gnu/packages/geo.scm
>>@@ -537,6 +537,8 @@ development.")
>>     (build-system gnu-build-system)
>>     (arguments
>>      `(#:tests? #f
>>+       ;; validating runpath does not work yet for Python, so skip
>>this phase.
>>+       #:validate-runpath? #f
>>        #:configure-flags
>>        (let-syntax ((with (syntax-rules ()
>>                             ((_ option input)
>>@@ -544,6 +546,10 @@ development.")
>>                                   (assoc-ref %build-inputs input))))))
>>          (list
>>            ;; TODO: --with-pcidsk, --with-pcraster
>>+           ;; Add $libdir to the RUNPATH of all the executables.
>>+           (string-append "LDFLAGS=-Wl,-rpath=" %output "/apps/.libs")
>>+           (string-append "LD_RUN_PATH=" %output "/apps/.libs")
>>+           (string-append "LD_LIBRARY_PATH=" %output "/apps/.libs")
>>            (with "--with-freexl" "freexl")
>>            (with "--with-libjson-c" "json-c")
>>            (with "--with-png" "libpng")
>>@@ -553,13 +559,27 @@ development.")
>>            (with "--with-libtiff" "libtiff")
>>            (with "--with-geotiff" "libgeotiff")
>>            (with "--with-libz" "zlib")
>>-           "--with-pcre"))
>>+           "--with-pcre"
>>+           "--with-python"))
>>        #:phases
>>        (modify-phases %standard-phases
>>          (add-before 'build 'fix-path
>>            (lambda _
>>              (substitute* "frmts/mrf/mrf_band.cpp"
>>-               (("\"../zlib/zlib.h\"") "<zlib.h>")))))))
>>+               (("\"../zlib/zlib.h\"") "<zlib.h>"))))
>>+         (add-after
>>+             'unpack 'patch-test-shebangs
>>+           (lambda _
>>+             (substitute* '("apps/GNUmakefile")
>>+               (("/bin/sh") (which "sh")))
>>+             #t))
>>+         (add-after
>>+             'unpack 'patch-test-shebangs
>>+           (lambda _
>>+             (substitute* '("GDALmake.opt.in")
>>+               (("LDFLAGS     = @LDFLAGS@") (string-append "LDFLAGS   
>>= @LDFLAGS@ -Wl,-rpath=" %output "/apps -Wl,-rpath=" %output
>>"/apps/.libs")))
>>+             #t)
>>+           ))))
>
> Could you rename that phase to something like 'patch-rpath? Is it needed since you already pass it to the configure?

Renamed, see the new patch :-)

I did not get this to work without it.

>>     (inputs
>>      `(("freexl" ,freexl)
>>        ("geos" ,geos)
>>@@ -572,6 +592,11 @@ development.")
>>        ("libwebp" ,libwebp)
>>        ("pcre" ,pcre)
>>        ("zlib" ,zlib)))
>>+    (native-inputs
>>+     `(("pkg-config" ,pkg-config)))
>>+    (propagated-inputs
>>+     `(("python" ,python)
>>+       ("python-setuptools" ,python-setuptools)))
>
> Is setuptools really necessary at runtime? Can we patch gdal so to embed python's store path? I'd prefer not to propagate it.

I’m not really sure why it is, but I did not get it working
without. Activating Python-support was harder than I thought (but I need
it working for a project on a deadline).

>>     (home-page "http://www.gdal.org/")
>>     (synopsis "Raster and vector geospatial data format library")
>>(description "GDAL is a translator library for raster and vector
>>geospatial
>>--
>>2.22.0
>
> Thank you!

Thank you for reviewing!

[0001-gnu-gdal-add-python-support.patch (text/x-patch, inline)]
From 5f8b1dc1bb5ce7b061bcca10174f9330cf89696c Mon Sep 17 00:00:00 2001
From: Arne Babenhauserheide <arne_bab <at> web.de>
Date: Sat, 11 May 2019 15:16:22 +0200
Subject: [PATCH] gnu: gdal: add python support

* gnu/packages/geo.scm (gdal): add python support
---
 gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 4cccd97643..a6942d2a45 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -537,6 +537,8 @@ development.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
+       ;; validating runpath does not work yet for Python, so skip this phase.
+       #:validate-runpath? #f
        #:configure-flags
        (let-syntax ((with (syntax-rules ()
                             ((_ option input)
@@ -544,6 +546,10 @@ development.")
                                             (assoc-ref %build-inputs input))))))
          (list
            ;; TODO: --with-pcidsk, --with-pcraster
+           ;; Add $libdir to the RUNPATH of all the executables.
+           (string-append "LDFLAGS=-Wl,-rpath=" %output "/apps/.libs")
+           (string-append "LD_RUN_PATH=" %output "/apps/.libs")
+           (string-append "LD_LIBRARY_PATH=" %output "/apps/.libs")
            (with "--with-freexl" "freexl")
            (with "--with-libjson-c" "json-c")
            (with "--with-png" "libpng")
@@ -553,13 +559,27 @@ development.")
            (with "--with-libtiff" "libtiff")
            (with "--with-geotiff" "libgeotiff")
            (with "--with-libz" "zlib")
-           "--with-pcre"))
+           "--with-pcre"
+           "--with-python"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-path
            (lambda _
              (substitute* "frmts/mrf/mrf_band.cpp"
-               (("\"../zlib/zlib.h\"") "<zlib.h>")))))))
+               (("\"../zlib/zlib.h\"") "<zlib.h>"))))
+         (add-after
+             'unpack 'patch-test-shebangs
+           (lambda _
+             (substitute* '("apps/GNUmakefile")
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-after
+             'unpack 'patch-rpath
+           (lambda _
+             (substitute* '("GDALmake.opt.in")
+               (("LDFLAGS     = @LDFLAGS@") (string-append "LDFLAGS     = @LDFLAGS@ -Wl,-rpath=" %output "/apps -Wl,-rpath=" %output "/apps/.libs")))
+             #t)
+           ))))
     (inputs
      `(("freexl" ,freexl)
        ("geos" ,geos)
@@ -572,6 +592,11 @@ development.")
        ("libwebp" ,libwebp)
        ("pcre" ,pcre)
        ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("python" ,python)
+       ("python-setuptools" ,python-setuptools)))
     (home-page "http://www.gdal.org/")
     (synopsis "Raster and vector geospatial data format library")
     (description "GDAL is a translator library for raster and vector geospatial
-- 
2.22.0

[Message part 3 (text/plain, inline)]
Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein
ohne es zu merken
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Wed, 17 Jul 2019 12:58:01 GMT) Full text and rfc822 format available.

Message #14 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Arne Babenhauserheide <arne_bab <at> web.de>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Wed, 17 Jul 2019 14:57:04 +0200
Hello!

Complementing Julien’s feedback…

Arne Babenhauserheide <arne_bab <at> web.de> skribis:

> From 5f8b1dc1bb5ce7b061bcca10174f9330cf89696c Mon Sep 17 00:00:00 2001
> From: Arne Babenhauserheide <arne_bab <at> web.de>
> Date: Sat, 11 May 2019 15:16:22 +0200
> Subject: [PATCH] gnu: gdal: add python support
>
> * gnu/packages/geo.scm (gdal): add python support
> ---
>  gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++--
>  1 file changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
> index 4cccd97643..a6942d2a45 100644
> --- a/gnu/packages/geo.scm
> +++ b/gnu/packages/geo.scm
> @@ -537,6 +537,8 @@ development.")
>      (build-system gnu-build-system)
>      (arguments
>       `(#:tests? #f
> +       ;; validating runpath does not work yet for Python, so skip this phase.
> +       #:validate-runpath? #f

What happens when you let the ‘validate-runpath’ phase run?

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Wed, 17 Jul 2019 16:24:02 GMT) Full text and rfc822 format available.

Message #17 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Arne Babenhauserheide <arne_bab <at> web.de>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Wed, 17 Jul 2019 18:22:51 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Hello!
>
> Complementing Julien’s feedback…
>
> Arne Babenhauserheide <arne_bab <at> web.de> skribis:
>
>> From 5f8b1dc1bb5ce7b061bcca10174f9330cf89696c Mon Sep 17 00:00:00 2001
>> From: Arne Babenhauserheide <arne_bab <at> web.de>
>> Date: Sat, 11 May 2019 15:16:22 +0200
>> Subject: [PATCH] gnu: gdal: add python support
>>
>> * gnu/packages/geo.scm (gdal): add python support
>> ---
>>  gnu/packages/geo.scm | 29 +++++++++++++++++++++++++++--
>>  1 file changed, 27 insertions(+), 2 deletions(-)
>>
>> diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
>> index 4cccd97643..a6942d2a45 100644
>> --- a/gnu/packages/geo.scm
>> +++ b/gnu/packages/geo.scm
>> @@ -537,6 +537,8 @@ development.")
>>      (build-system gnu-build-system)
>>      (arguments
>>       `(#:tests? #f
>> +       ;; validating runpath does not work yet for Python, so skip this phase.
>> +       #:validate-runpath? #f
>
> What happens when you let the ‘validate-runpath’ phase run?

\ 'validate-runpath' phasebuilder for `/gnu/store/ykfnx8m38ndnggdqsv1fbgf3ycry5f88-gdal-2.2.4.drv' failed with exit code 1
build of /gnu/store/ykfnx8m38ndnggdqsv1fbgf3ycry5f88-gdal-2.2.4.drv failed
View build log at '/var/log/guix/drvs/yk/fnx8m38ndnggdqsv1fbgf3ycry5f88-gdal-2.2.4.drv.bz2'.

…
starting phase `validate-runpath'
validating RUNPATH of 6 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib"...
/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdalconst.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gnm.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_ogr.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_osr.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
validating RUNPATH of 24 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/bin"...
Backtrace:
           5 (primitive-load "/gnu/store/kzsb94cspp48r9l26y8gv9zy6la…")
In ice-9/eval.scm:
   191:35  4 (_ _)
In srfi/srfi-1.scm:
   863:16  3 (every1 #<procedure 817960 at /gnu/store/gfprsx2m62cvq…> …)
In /gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/gnu-build-system.scm:
   799:28  2 (_ _)
   558:10  1 (validate-runpath #:validate-runpath? _ # _ #:outputs _)
In unknown file:
           0 (scm-error misc-error #f "~A" ("RUNPATH validation fa…") …)

ERROR: In procedure scm-error:
RUNPATH validation failed

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein
ohne es zu merken
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Fri, 19 Jul 2019 12:08:02 GMT) Full text and rfc822 format available.

Message #20 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Arne Babenhauserheide <arne_bab <at> web.de>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Fri, 19 Jul 2019 14:07:01 +0200
Hello,

Arne Babenhauserheide <arne_bab <at> web.de> skribis:

> validating RUNPATH of 6 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib"...
> /gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")

I’m not familiar with Cython so I don’t know how this was handled
before.  However, to me, it indicates that the resulting binaries are
unlikely to work.

Namely, Python would dlopen “_gdal.cython*.so”, and that would fail to
find ‘libgdal.so’.

Thoughts?

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Fri, 19 Jul 2019 15:07:02 GMT) Full text and rfc822 format available.

Message #23 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Arne Babenhauserheide <arne_bab <at> web.de>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Fri, 19 Jul 2019 17:06:32 +0200
[Message part 1 (text/plain, inline)]
Hello Ludo`,

Ludovic Courtès <ludo <at> gnu.org> writes:

>> validating RUNPATH of 6 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib"...
>> /gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-x86_64-linux-gnu.so: error: depends on 'libgdal.so.20', which cannot be found in RUNPATH ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib" "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib" "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
>
> I’m not familiar with Cython so I don’t know how this was handled
> before.  However, to me, it indicates that the resulting binaries are
> unlikely to work.
>
> Namely, Python would dlopen “_gdal.cython*.so”, and that would fail to
> find ‘libgdal.so’.
>
> Thoughts?

Yes: It does work. But I don’t know why.

Cython runs at compile-time to generate c-code that acts as interface
for Python. Given the paths in here, this needs gdal already installed
in the runpath where it seems to be missing during validation.

How can we fix that?

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein
ohne es zu merken
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Sat, 20 Jul 2019 15:08:02 GMT) Full text and rfc822 format available.

Message #26 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> member.fsf.org (宋文武)
To: Arne Babenhauserheide <arne_bab <at> web.de>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Sat, 20 Jul 2019 22:55:40 +0800
[Message part 1 (text/plain, inline)]
Arne Babenhauserheide <arne_bab <at> web.de> writes:

> Hello Ludo`,
>
> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>>> validating RUNPATH of 6 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib"...
>>> /gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-x86_64-linux-gnu.so:
>>> error: depends on 'libgdal.so.20', which cannot be found in RUNPATH
>>> ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib"
>>> "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib"
>>> "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib"
>>> "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
>>
>> I’m not familiar with Cython so I don’t know how this was handled
>> before.  However, to me, it indicates that the resulting binaries are
>> unlikely to work.
>>
>> Namely, Python would dlopen “_gdal.cython*.so”, and that would fail to
>> find ‘libgdal.so’.

>>
>> Thoughts?
>
> Yes: It does work. But I don’t know why.

This is because the _gdal.cython*.so don't have rpath to the "lib"
directory, where libgdal.so will going.

>
> Cython runs at compile-time to generate c-code that acts as interface
> for Python. Given the paths in here, this needs gdal already installed
> in the runpath where it seems to be missing during validation.
>
> How can we fix that?

I think cython (which compile .py files to .c files) is not here..  It
has python C libraries generated by swig.
>
> Best wishes,
> Arne

In the end the python bindings for gdal can be build seperated (which
handle the missing rpath to libgdal nicely), and I prefer this way:

[0001-gnu-Add-python-gdal.patch (text/x-patch, inline)]
From 09254f646b948a5603b2b3dcb99a7f2f6ad0c8de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong <at> member.fsf.org>
Date: Sat, 20 Jul 2019 22:39:33 +0800
Subject: [PATCH] gnu: Add python-gdal.

For <https://issues.guix.gnu.org/issue/36623>, thank to Arne Babenhauserheide
for the original patch.

* gnu/packages/geo.scm (python-gdal): New package.
---
 gnu/packages/geo.scm | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index e4b6a262c7..8005c46129 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -604,6 +604,25 @@ utilities for data translation and processing.")
                ;; frmts/mrf/libLERC
                license:asl2.0))))
 
+(define-public python-gdal
+  (package (inherit gdal)
+    (name "python-gdal")
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'chdir
+           (lambda _
+             (chdir "swig/python")
+             #t)))))
+    (native-inputs '())
+    (propagated-inputs
+     `(("python-numpy" ,python-numpy)))
+    (inputs
+     `(("gdal" ,gdal)))
+    (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
+
 (define-public postgis
   (package
     (name "postgis")
-- 
2.19.2

[Message part 3 (text/plain, inline)]
I test it with "~/src/guix/pre-inst-env guix environment --ad-hoc python
python-gdal", and in it I can run "python3 swig/python/samples/rel.py"
etc.

Does it work for you, Arne?  If so, I'll push my patch, thank you!

Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Sun, 21 Jul 2019 07:50:02 GMT) Full text and rfc822 format available.

Message #29 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Arne Babenhauserheide <arne_bab <at> web.de>
To: 宋文武 <iyzsong <at> member.fsf.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Sun, 21 Jul 2019 09:48:58 +0200
[Message part 1 (text/plain, inline)]
宋文武 <iyzsong <at> member.fsf.org> writes:

> Arne Babenhauserheide <arne_bab <at> web.de> writes:
>
>> Hello Ludo`,
>>
>> Ludovic Courtès <ludo <at> gnu.org> writes:
>>
>>>> validating RUNPATH of 6 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib"...
>>>> /gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-x86_64-linux-gnu.so:
>>>> error: depends on 'libgdal.so.20', which cannot be found in RUNPATH
>>>> ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib"
>>>> "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib"
>>>> "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib"
>>>> "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
>>>
>>> I’m not familiar with Cython so I don’t know how this was handled
>>> before.  However, to me, it indicates that the resulting binaries are
>>> unlikely to work.
>>>
>>> Namely, Python would dlopen “_gdal.cython*.so”, and that would fail to
>>> find ‘libgdal.so’.
>
>>>
>>> Thoughts?
>>
>> Yes: It does work. But I don’t know why.
>
> This is because the _gdal.cython*.so don't have rpath to the "lib"
> directory, where libgdal.so will going.
>
>>
>> Cython runs at compile-time to generate c-code that acts as interface
>> for Python. Given the paths in here, this needs gdal already installed
>> in the runpath where it seems to be missing during validation.
>>
>> How can we fix that?
>
> I think cython (which compile .py files to .c files) is not here..  It
> has python C libraries generated by swig.
>>
>> Best wishes,
>> Arne
>
> In the end the python bindings for gdal can be build seperated (which
> handle the missing rpath to libgdal nicely), and I prefer this way:
>
> From 09254f646b948a5603b2b3dcb99a7f2f6ad0c8de Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong <at> member.fsf.org>
> Date: Sat, 20 Jul 2019 22:39:33 +0800
> Subject: [PATCH] gnu: Add python-gdal.
>
> For <https://issues.guix.gnu.org/issue/36623>, thank to Arne Babenhauserheide
> for the original patch.
>
> * gnu/packages/geo.scm (python-gdal): New package.
> ---
>  gnu/packages/geo.scm | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
> index e4b6a262c7..8005c46129 100644
> --- a/gnu/packages/geo.scm
> +++ b/gnu/packages/geo.scm
> @@ -604,6 +604,25 @@ utilities for data translation and processing.")
>                 ;; frmts/mrf/libLERC
>                 license:asl2.0))))
>  
> +(define-public python-gdal
> +  (package (inherit gdal)
> +    (name "python-gdal")
> +    (build-system python-build-system)
> +    (arguments
> +     '(#:tests? #f                      ; no tests
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'build 'chdir
> +           (lambda _
> +             (chdir "swig/python")
> +             #t)))))
> +    (native-inputs '())
> +    (propagated-inputs
> +     `(("python-numpy" ,python-numpy)))
> +    (inputs
> +     `(("gdal" ,gdal)))
> +    (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
> +
>  (define-public postgis
>    (package
>      (name "postgis")

Wow, that looks pretty good!

Thank you for fixing up my patch!

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein
ohne es zu merken
[signature.asc (application/pgp-signature, inline)]

Reply sent to iyzsong <at> member.fsf.org (宋文武):
You have taken responsibility. (Sun, 21 Jul 2019 13:08:02 GMT) Full text and rfc822 format available.

Notification sent to arne_bab <at> web.de:
bug acknowledged by developer. (Sun, 21 Jul 2019 13:08:02 GMT) Full text and rfc822 format available.

Message #34 received at 36623-done <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> member.fsf.org (宋文武)
To: Arne Babenhauserheide <arne_bab <at> web.de>
Cc: 36623-done <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Sun, 21 Jul 2019 21:07:14 +0800
Arne Babenhauserheide <arne_bab <at> web.de> writes:

> 宋文武 <iyzsong <at> member.fsf.org> writes:
>
>> Arne Babenhauserheide <arne_bab <at> web.de> writes:
>>
>>> Hello Ludo`,
>>>
>>> Ludovic Courtès <ludo <at> gnu.org> writes:
>>>
>>>>> validating RUNPATH of 6 binaries in "/gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib"...
>>>>> /gnu/store/q9sb0wv41ig429f1m1xspg22xm8pwpwh-gdal-2.2.4/lib/python3.7/site-packages/osgeo/_gdal.cpython-37m-x86_64-linux-gnu.so:
>>>>> error: depends on 'libgdal.so.20', which cannot be found in RUNPATH
>>>>> ("/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/lib"
>>>>> "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib"
>>>>> "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib"
>>>>> "/gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..")
>>>>
>>>> I’m not familiar with Cython so I don’t know how this was handled
>>>> before.  However, to me, it indicates that the resulting binaries are
>>>> unlikely to work.
>>>>
>>>> Namely, Python would dlopen “_gdal.cython*.so”, and that would fail to
>>>> find ‘libgdal.so’.
>>
>>>>
>>>> Thoughts?
>>>
>>> Yes: It does work. But I don’t know why.
>>
>> This is because the _gdal.cython*.so don't have rpath to the "lib"
>> directory, where libgdal.so will going.
>>
>>>
>>> Cython runs at compile-time to generate c-code that acts as interface
>>> for Python. Given the paths in here, this needs gdal already installed
>>> in the runpath where it seems to be missing during validation.
>>>
>>> How can we fix that?
>>
>> I think cython (which compile .py files to .c files) is not here..  It
>> has python C libraries generated by swig.
>>>
>>> Best wishes,
>>> Arne
>>
>> In the end the python bindings for gdal can be build seperated (which
>> handle the missing rpath to libgdal nicely), and I prefer this way:
>>
>> From 09254f646b948a5603b2b3dcb99a7f2f6ad0c8de Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong <at> member.fsf.org>
>> Date: Sat, 20 Jul 2019 22:39:33 +0800
>> Subject: [PATCH] gnu: Add python-gdal.
>>
>> For <https://issues.guix.gnu.org/issue/36623>, thank to Arne Babenhauserheide
>> for the original patch.
>>
>> * gnu/packages/geo.scm (python-gdal): New package.
>> ---
>>  gnu/packages/geo.scm | 19 +++++++++++++++++++
>>  1 file changed, 19 insertions(+)
>>
>> diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
>> index e4b6a262c7..8005c46129 100644
>> --- a/gnu/packages/geo.scm
>> +++ b/gnu/packages/geo.scm
>> @@ -604,6 +604,25 @@ utilities for data translation and processing.")
>>                 ;; frmts/mrf/libLERC
>>                 license:asl2.0))))
>>  
>> +(define-public python-gdal
>> +  (package (inherit gdal)
>> +    (name "python-gdal")
>> +    (build-system python-build-system)
>> +    (arguments
>> +     '(#:tests? #f                      ; no tests
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-before 'build 'chdir
>> +           (lambda _
>> +             (chdir "swig/python")
>> +             #t)))))
>> +    (native-inputs '())
>> +    (propagated-inputs
>> +     `(("python-numpy" ,python-numpy)))
>> +    (inputs
>> +     `(("gdal" ,gdal)))
>> +    (synopsis "GDAL (Geospatial Data Abstraction Library) python bindings")))
>> +
>>  (define-public postgis
>>    (package
>>      (name "postgis")
>
> Wow, that looks pretty good!
>
> Thank you for fixing up my patch!
>

Sure, pushed!




Information forwarded to guix-patches <at> gnu.org:
bug#36623; Package guix-patches. (Mon, 22 Jul 2019 10:24:02 GMT) Full text and rfc822 format available.

Message #37 received at 36623 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Arne Babenhauserheide <arne_bab <at> web.de>
Cc: 宋文武 <iyzsong <at> member.fsf.org>,
 Julien Lepiller <julien <at> lepiller.eu>, 36623 <at> debbugs.gnu.org
Subject: Re: [bug#36623] [PATCH] gnu: gdal: add python support
Date: Mon, 22 Jul 2019 12:23:01 +0200
Hello,

Arne Babenhauserheide <arne_bab <at> web.de> skribis:

> 宋文武 <iyzsong <at> member.fsf.org> writes:

[...]

>> From 09254f646b948a5603b2b3dcb99a7f2f6ad0c8de Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong <at> member.fsf.org>
>> Date: Sat, 20 Jul 2019 22:39:33 +0800
>> Subject: [PATCH] gnu: Add python-gdal.
>>
>> For <https://issues.guix.gnu.org/issue/36623>, thank to Arne Babenhauserheide
>> for the original patch.
>>
>> * gnu/packages/geo.scm (python-gdal): New package.

[...]

> Wow, that looks pretty good!
>
> Thank you for fixing up my patch!

Great that it works.  Please push and close this issue, 宋文武!

Thanks to both of you,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 19 Aug 2019 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 251 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.