Subject: bug#66015: Removal of python-pyxel

From: Simon Tournier <[email-masked]>
Date: Fri, 15 Sep 2023 21:09:59 +0200

Hi,

I am proposing to remove the package python-pyxel.  The rationale is:

 + Broken [1] since months
 + Update needs “some” work
 + Two years without an update
 + An issue about upstream source

Therefore, if someone is interested, please update it.  Else I will
remove it.

Some more explanations for the interested reader about unavailable
source. :-)

If I read correctly, ‘python-pixel’ had been added and never modified
since then.

        bca5d7dbb0fc919f954a8fe5f6236c0a89e451bd
        AuthorDate: Mon Aug 30 17:27:25 2021 +0200
        CommitDate: Tue Aug 31 23:20:09 2021 +0200

Two years later, an user gets the source of “python-pyxel” because the
Guix project still stores it.  But we cannot predict when the store of
the build farms will be garbage collected and this checkout substitute
will disappear making this package broken for many Guix revisions.

--8<---------------cut here---------------start------------->8---
$ guix build python-pyxel -S --no-substitutes
The following derivations will be built:
  /gnu/store/r84kncvf8ppr5q1lijp33rb9bsyzbgks-python-pyxel-1.4.3-checkout.drv
  /gnu/store/pi07a883dv6d7l4bkw4f1wwipw1fhin7-python-pyxel-1.4.3-checkout.drv
building /gnu/store/pi07a883dv6d7l4bkw4f1wwipw1fhin7-python-pyxel-1.4.3-checkout.drv...
guile: warning: failed to install locale
environment variable `PATH' set to `/gnu/store/y3vdq2pdkljrw63xxnc2vb6lz07ycar6-git-minimal-2.41.0/bin:/gnu/store/78rf44kf4xf6lc01jjy9ci5905j2344l-gzip-1.12/bin:/gnu/store/z45rrcnvcw31h1wbl1zh8hh79jkwv0gs-tar-1.34/bin'
Initialized empty Git repository in /gnu/store/m79d72fh3k4vypcqrsikrwikrscwqd6m-python-pyxel-1.4.3-checkout/.git/
>From https://github.com/kitao/pyxel
 * tag               v1.4.3     -> FETCH_HEAD

[...]

HEAD is now at be75b72 Merge branch 'develop'
r:sha256 hash mismatch for /gnu/store/m79d72fh3k4vypcqrsikrwikrscwqd6m-python-pyxel-1.4.3-checkout:
  expected hash: 0bwsgb5yq5s479cnf046v379zsn5ybp5195kbfvzr9l11qbaicm9
  actual hash:   03ch79cmh9fxvq6c2f3zc2snzczhqi2n01f254lsigckc7d5wz08
hash mismatch for store item '/gnu/store/m79d72fh3k4vypcqrsikrwikrscwqd6m-python-pyxel-1.4.3-checkout'
build of /gnu/store/pi07a883dv6d7l4bkw4f1wwipw1fhin7-python-pyxel-1.4.3-checkout.drv failed
View build log at '/var/log/guix/drvs/pi/07a883dv6d7l4bkw4f1wwipw1fhin7-python-pyxel-1.4.3-checkout.drv.gz'.
cannot build derivation `/gnu/store/r84kncvf8ppr5q1lijp33rb9bsyzbgks-python-pyxel-1.4.3-checkout.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/r84kncvf8ppr5q1lijp33rb9bsyzbgks-python-pyxel-1.4.3-checkout.drv' failed
--8<---------------cut here---------------end--------------->8---

Now, one can think it is a classic hash mismatch.  Arf, foolish no!
Upstream is managing using the worse workflow I have seen.

Here is the history of tag v1.4.3 replacement:

  v1.4.3 8bcb6f04eb184876d7807b89b34057ca0897b392  07 August 2021
  v1.4.3 8bcb6f04eb184876d7807b89b34057ca0897b392  09 December 2021
  v1.4.3 7d27898e218d6b4cb62779dc22b409d02860f155  27 December 2021
  v1.4.3 be75b724cae9e10e56a82a5421f9dd65390f1a06  22 September 2022
  v1.4.3 be75b724cae9e10e56a82a5421f9dd65390f1a06  today
  
And surprise surprise:

--8<---------------cut here---------------start------------->8---
$ git clone https://github.com/kitao/pyxel

$ git -C pyxel show 8bcb6f04eb184876d7807b89b34057ca0897b392
fatal: bad object 8bcb6f04eb184876d7807b89b34057ca0897b392

$ git -C pyxel show 7d27898e218d6b4cb62779dc22b409d02860f155
fatal: bad object 7d27898e218d6b4cb62779dc22b409d02860f155

$ git -C pyxel show --format=%H v1.4.3
tag v1.4.3
Tagger: Takashi Kitao <[email-masked]>

Pyxel 1.4.3
be75b724cae9e10e56a82a5421f9dd65390f1a06
--8<---------------cut here---------------end--------------->8---

Because of this, there is a mismatch.  However, good news:

--8<---------------cut here---------------start------------->8---
$ git -C pyxel checkout v1.4.3
Previous HEAD position was 5fa45abb51b8 Changed the order of the options
HEAD is now at be75b724cae9 Merge branch 'develop'

$ guix hash -rx $(guix build -S python-pyxel) pyxel
03ch79cmh9fxvq6c2f3zc2snzczhqi2n01f254lsigckc7d5wz08
03ch79cmh9fxvq6c2f3zc2snzczhqi2n01f254lsigckc7d5wz08
--8<---------------cut here---------------end--------------->8---

The ’snippet’ is now unnecessary.  The build fails though.

--8<---------------cut here---------------start------------->8---
starting phase `build'
running "python setup.py" with command "build" and parameters ()
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "setup.py", line 2, in <module>
    from pyxel import VERSION
  File "/tmp/guix-build-python-pyxel-1.4.3.drv-0/source/pyxel/__init__.py", line 6, in <module>
    from collections import MutableSequence
ImportError: cannot import name 'MutableSequence' from 'collections' (/gnu/store/dy3xh053ahkhrp2jamggq8cpsyvp8mg0-python-3.10.7/lib/python3.10/collections/__init__.py)
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "python" arguments: ("-c" "import setuptools, tokenize;__file__='setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\\r\\n', '\\n');f.close();exec(compile(code, __file__, 'exec'))" "build") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `build' failed after 0.2 seconds
command "python" "-c" "import setuptools, tokenize;__file__='setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\\r\\n', '\\n');f.close();exec(compile(code, __file__, 'exec'))" "build" failed with status 1
builder for `/gnu/store/kg2nw12ma22i89qjymxgjkbwjsbbrn3q-python-pyxel-1.4.3.drv' failed with exit code 1
build of /gnu/store/kg2nw12ma22i89qjymxgjkbwjsbbrn3q-python-pyxel-1.4.3.drv failed
View build log at '/var/log/guix/drvs/kg/2nw12ma22i89qjymxgjkbwjsbbrn3q-python-pyxel-1.4.3.drv.gz'.
guix build: error: build of `/gnu/store/kg2nw12ma22i89qjymxgjkbwjsbbrn3q-python-pyxel-1.4.3.drv' failed
--8<---------------cut here---------------end--------------->8---

Cheers,
simon

1: https://ci.guix.gnu.org/build/1840895/details