Subject: Re: bug#30189: Retux game halts after preloading levels (missing ucd.sqlite uniseg database)

From: Ben Sturmfels <[email-masked]>
Date: Sun, 21 Jan 2018 18:56:05 +1100

Thanks Gábor, adding zipfile fixes the build and Retux now runs.

Patch attached and CC'd to guix-patches.

Regards,
Ben

On Sun, 21 Jan 2018, Gábor Boskovits wrote:

> I think unzip should be added to native-inputs. Can you try that?
>
> 2018-01-21 4:46 GMT+01:00 Ben Sturmfels <[email-masked]>:
>
>  Hi Folks,
>
>  I'd like to play the Retux game, but while the game starts up it
>  crashes
>  on me after the "preloading levels" screen.
>
>  There's no useful console output, but when running in the debugger, I
>  see that the python-uniseg package is looking for a file called
>  ucd.sqlite3 that doesn't exist, some kind of Unicode letter spacing
>  database that's not present in the BitBucket repository.
>
>  python3 -m pdb -c continue \
>  "/gnu/store/57psnlgdyri8phkxzasaf6q0gb8nskpz-retux-1.3.5/bin/.retux-real"
>  
>
>  See uniseg/db.py:107 and 21. Since it's also looking in the current
>  directory, I tried downloading ucd.sqlite3 from the PyPI zip package -
>  that fixes the issue.
>
>  The python-uniseg package downloads the source from BitBucket, so
>  I
>  tried changing that to PyPI:
>
>  (uri (pypi-uri "uniseg" version ".zip"))
>
>  which downloads ok, but fails but the fails at the unpack phase
>  without
>  any details. Should Guix know how to unpack a .zip? Or maybe I
>  should
>  coerce the maintainer to publish a .tar.gz?
>
>  Currently Retux is the only program that uses python-uniseg (via
>  python-sge-pygame dependency).
>
>  Regards,
>  Ben
From 42c1e69526ec9781e3f7290fb74e2a561131e3be Mon Sep 17 00:00:00 2001
From: Ben Sturmfels <[email-masked]>
Date: Sun, 21 Jan 2018 18:43:07 +1100
Subject: [PATCH] gnu: python-uniseg: Switch to PyPi source to get missing
 ucd.sqlite3.

* gnu/packages/python.scm (python-uniseg): Use PyPI, add zipfile dependency to
  unpack.
---
 gnu/packages/python.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0b582e6b7..2f1c20e31 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -773,15 +773,15 @@ Python 3 support.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://bitbucket.org/emptypage/uniseg-python/"
-                           "get/rel-" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (uri (pypi-uri "uniseg" version ".zip"))
        (sha256
         (base32
-         "1df4gddnj2a0v8z35wb2ra5vvh1f1qyxs8fgd25c8g64031mna6x"))))
+         "05jsazvz6nbmh6l3v1rph5ydkqn1hzx1pyggdyvgp2qgmgrnmiz2"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; The test suite requires network access.
+    (native-inputs
+     `(("unzip" ,unzip)))
     (home-page
      "https://bitbucket.org/emptypage/uniseg-python")
     (synopsis
-- 
2.15.1