diff mbox series

[bug#38178,WIP,v2] gnu: Add grass.

Message ID 20191112150417.17249-1-wz@freeshell.de
State Accepted
Headers show
Series [bug#38178,WIP,v2] gnu: Add grass. | expand

Commit Message

Wiktor Żelazny Nov. 12, 2019, 3:04 p.m. UTC
From: Wiktor Żelazny <wzelazny@vurv.cz>

* gnu/packages/geo.scm (grass): New variable.
No GUI due to wxpython not found on runtime.
---
Hi there!
Thank you for your suggestion with regard to python-wxpython. I tried to
implement it, along with your remaining comments. I temporarily removed
python-six. I don’t remember anymore what led me to putting it there.
Unfortunately, I cannot test the result, as I’m now getting this kind of
errors:
   Status: Preprocessing /tmp/guix-build-grass-7.8.0.drv-0/tmp70mq13s0.h
   Status: gcc -E       -I/tmp/guix-build-grass-7.8.0.drv-0/grass-7.8.0/dist.x86_64-pc-linux-gnu/include -I/tmp/guix-build-grass-7.8.0.drv-0/grass-7.8.0/dist.x86_64-pc-linux-gnu/include -D__GLIBC_HAVE_LONG_LONG -U __GNUC__ -dD "-Dinline=" "-
   D__inline__=" "-D__extension__=" "-D_Bool=uint8_t" "-D__const=const" "-D__asm__(x)=" "-D__asm(x)=" "-DCTYPESGEN=1" "/tmp/guix-build-grass-7.8.0.drv-0/tmp70mq13s0.h"
   Status: Parsing /tmp/guix-build-grass-7.8.0.drv-0/tmp70mq13s0.h
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:101: Syntax error at '__readfds'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:102: Syntax error at '__writefds'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:103: Syntax error at '__exceptfds'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:104: Syntax error at '__timeout'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:113: Syntax error at '__readfds'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:114: Syntax error at '__writefds'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:115: Syntax error at '__exceptfds'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:116: Syntax error at '__timeout'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/select.h:117: Syntax error at '__sigmask'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:297: Syntax error at '__nptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:298: Syntax error at '__endptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:301: Syntax error at '__nptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:302: Syntax error at '__endptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:305: Syntax error at '__nptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:302: Syntax error at '__endptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:305: Syntax error at '__nptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:306: Syntax error at '__endptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:310: Syntax error at '__nptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/inttypes.h:311: Syntax error at '__endptr'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9752: Syntax error at 'packed'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9752: Syntax error at ')'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9755: Syntax error at 'packed'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9755: Syntax error at ')'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9762: Syntax error at 'packed'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9762: Syntax error at ')'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9765: Syntax error at 'packed'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/glext.h:9765: Syntax error at ')'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:246: Syntax error at '__filename'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:247: Syntax error at '__modes'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:252: Syntax error at '__filename'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:253: Syntax error at '__modes'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:254: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:304: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:304: Syntax error at '__buf'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:308: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:308: Syntax error at '__buf'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:309: Syntax error at 'size_t'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:314: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:314: Syntax error at '__buf'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:326: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:327: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:332: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:334: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:335: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:341: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:341: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:347: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:349: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:349: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:354: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:355: Syntax error at 'const'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:355: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:358: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:359: Syntax error at 'const'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:359: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:379: Syntax error at '__fmt'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:382: Syntax error at '__fmt'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:391: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:392: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:397: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:399: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:400: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:416: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:417: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:418: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:419: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:420: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:432: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:432: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:440: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:444: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:445: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:465: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:466: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:468: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:470: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:471: Syntax error at '__format'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:564: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:564: Syntax error at 'FILE'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:603: Syntax error at '__lineptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:604: Syntax error at '__n'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:605: Syntax error at 'FILE'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:606: Syntax error at '__lineptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:607: Syntax error at '__n'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:608: Syntax error at 'FILE'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:616: Syntax error at '__lineptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:617: Syntax error at '__n'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:616: Syntax error at '__lineptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:617: Syntax error at '__n'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:618: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:626: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:626: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:646: Syntax error at '__ptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:647: Syntax error at 'size_t'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:647: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:652: Syntax error at '__ptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:653: Syntax error at 'size_t'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:653: Syntax error at '__s'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:673: Syntax error at '__ptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:674: Syntax error at 'size_t'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:674: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:675: Syntax error at '__ptr'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:676: Syntax error at 'size_t'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:676: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:731: Syntax error at '__stream'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/stdio.h:731: Syntax error at '__pos'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/stat.h:205: Syntax error at '__file'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/stat.h:206: Syntax error at '__buf'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/stat.h:234: Syntax error at '__file'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/stat.h:235: Syntax error at '__buf'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/stat.h:259: Syntax error at '__file'
   Error: /gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/include/sys/stat.h:260: Syntax error at '__buf'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/gl.h:93: Syntax error at '\n'
   Error: /gnu/store/vf5lkc27z5rcbvaw6rkdmqisyg923m5r-mesa-19.1.4/include/GL/gl.h:97: Syntax error at '\n'
   Status: Processing description list.
   Status: Writing to OBJ.x86_64-pc-linux-gnu/nviz.py.
   Status: Wrapping complete.
I wish I could inspect those temporary files
(/tmp/guix-build-grass-7.8.0.drv-0/tmp70mq13s0.h in the example above), but
they dissapear too quickly. I suspected that my build environment had got
broken in the meantime, as the errors persist when I selectively rollback
various combinations of the changes. I cannot fully verify it, as I don’t know
the way to force the Guix daemon to rebuild (recompile) what’s already in the
store. I tried
   guix build --check
, then
   guix build -S --check
— to no avail. But I switched the OS state (GRUB menu on boot + user profile
generation) to the time of my first successful grass build, and building with
changes results in the same errors. Needless to say, I’m at loss now.
 gnu/packages/geo.scm | 85 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 84 insertions(+), 1 deletion(-)

Comments

Wiktor Żelazny Nov. 14, 2019, 3:30 p.m. UTC | #1
A new version of GRASS GIS got released, which gave me an opportunity
to bump the version in the old definition and recompile. The errors are
there, but do not hinder the successful build. Apparently, they have
been there from the beginning; I just didn’t notice — both bad and
good news.

The real error (for now) is

   In unknown file:
            0 (%resolve-variable (7 . wxpython) #<directory (g…>)

   ERROR: In procedure %resolve-variable:
   Unbound variable: wxpython

I tried changing “wxpython” to “python-wxpython”, but this also
is not recognized. So there’s something wrong with the way I defined
the wrapping.

WŻ
Marius Bakke March 21, 2020, 8:21 p.m. UTC | #2
Wiktor Żelazny <wz@freeshell.de> writes:

> A new version of GRASS GIS got released, which gave me an opportunity
> to bump the version in the old definition and recompile. The errors are
> there, but do not hinder the successful build. Apparently, they have
> been there from the beginning; I just didn’t notice — both bad and
> good news.
>
> The real error (for now) is
>
>    In unknown file:
>             0 (%resolve-variable (7 . wxpython) #<directory (g…>)
>
>    ERROR: In procedure %resolve-variable:
>    Unbound variable: wxpython
>
> I tried changing “wxpython” to “python-wxpython”, but this also
> is not recognized. So there’s something wrong with the way I defined
> the wrapping.

Did you get anywhere with this patch?  Can you rebase it on the current
master branch for easier testing?  TIA!

By the way, sorry for the sloooooow responses...
Wiktor Żelazny March 24, 2020, 9:16 p.m. UTC | #3
On Sat, Mar 21, 2020 at 09:21:23PM +0100, Marius Bakke wrote:

> Did you get anywhere with this patch?  Can you rebase it on the
> current master branch for easier testing?  TIA!

I abandoned it as soon as Arun Isaac posted his package definition. And
now I see that qgis is officially in Guix. That’s nice.

> By the way, sorry for the sloooooow responses...

That’s fine. I’m also slow.

Bye,

WŻ
Wiktor Żelazny March 24, 2020, 9:19 p.m. UTC | #4
On Tue, Mar 24, 2020 at 10:16:31PM +0100, Wiktor Żelazny wrote:
> On Sat, Mar 21, 2020 at 09:21:23PM +0100, Marius Bakke wrote:
>
> > Did you get anywhere with this patch?  Can you rebase it on the
> > current master branch for easier testing?
>
> I abandoned it as soon as Arun Isaac posted his package definition.
> And now I see that qgis is officially in Guix. That’s nice.

Oops, sorry. I didn’t notice that you were asking about grass, not qgis.
No, I haven’t done any progress with it, either. But I can see that it’s
in gnu/packages now, as well. So I guess the issue is not relevant,
anymore.

WŻ
diff mbox series

Patch

diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index dfb00c7547..e050e25511 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -40,16 +40,20 @@ 
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages astronomy)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
@@ -67,7 +71,9 @@ 
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages wxwidgets)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg)
+  #:use-module (ice-9 match))
 
 (define-public geos
   (package
@@ -1037,3 +1043,80 @@  persisted.
 @end itemize
 ")
     (license license:expat)))
+
+(define-public grass
+  (package
+    (name "grass")
+    (version "7.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://grass.osgeo.org/" name
+             (match (string-split version #\.)
+               ((major minor _ ...)
+                (string-append major minor)))
+             "/source/" name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ynclznkpnm18vi0brmbfcplgi15yd7lwd424abgv7wm9qlr44ab"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         ;; Replace configure phase as the ./configure script does not like
+         ;; CONFIG_SHELL and SHELL passed as parameters
+         (replace 'configure
+           (lambda* (#:key outputs build target #:allow-other-keys)
+             (let* ((out   (assoc-ref outputs "out"))
+                    (bash  (which "bash"))
+                    (flags (list
+                            (string-append "--prefix=" out)
+                            (string-append "--build=" build)
+                            (string-append
+                             "--with-freetype-includes="
+                             (assoc-ref %build-inputs "freetype")
+                             "/include/freetype2")
+                            (string-append
+                             "--with-proj-share="
+                             (assoc-ref %build-inputs "proj.4")
+                             "/share/proj")
+                            "--with-postgres")))
+               (setenv "CONFIG_SHELL" bash)
+               (apply invoke bash "./configure" flags))))
+         (add-after 'install 'wrap-python-scripts
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/grass78")
+                 `("PYTHONPATH" ":"
+                   prefix (,(string-append wxpython "/lib/python"
+                                           (python-version python)
+                                           "/site-packages")))))
+             #t)))
+       #:tests? #f))  ;no check target
+    (native-inputs
+     `(("flex" ,flex)
+       ("bison" ,bison)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (inputs
+     `(("proj.4" ,proj.4)
+       ("gdal" ,gdal)
+       ("zlib" ,zlib)
+       ("zstd:lib" ,zstd "lib")
+       ("libtiff" ,libtiff)
+       ("libpng" ,libpng)
+       ("sqlite" ,sqlite)
+       ("freeglut" ,freeglut)
+       ("fftw" ,fftw)
+       ("cairo" ,cairo)
+       ("freetype" ,freetype)
+       ("libxt" ,libxt)
+       ("python-wxpython" ,python-wxpython) ;for gui
+       ("postgresql" ,postgresql)))
+    (home-page "https://grass.osgeo.org/")
+    (synopsis "Geographic Resources Analysis Support System")
+    (description "GRASS is a @dfn{Geographic Information System} (GIS) software
+suite used for geospatial data management and analysis, image processing,
+graphics and maps production, spatial modeling, and visualization.")
+    (license license:gpl2+)))