FS#68817 - [python-brotlipy] Upstream re-released tarball with name change.

Attached to Project: Community Packages
Opened by helle vaanzinn (glitsj16) - Wednesday, 02 December 2020, 11:15 GMT
Last edited by Andreas Radke (AndyRTR) - Tuesday, 04 May 2021, 06:18 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Felix Yan (felixonmars)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

python-brotlipy 0.7.0-8 fails to build.

Additional info:
* package version(s)
0.7.0-8
* config and/or log files etc.
$ updpkgsums
[...]
$ makepkg -rs
==> Making package: python-brotlipy 0.7.0-8 (2020-12-02T11:53:47 CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found python-brotlipy-0.7.0.tar.gz
-> Found shared-brotli.patch
-> Found brotlipy-disable-hypothesis-timeout.patch
==> Validating source files with sha512sums...
python-brotlipy-0.7.0.tar.gz ... Passed
shared-brotli.patch ... Passed
brotlipy-disable-hypothesis-timeout.patch ... Passed
==> Extracting sources...
-> Extracting python-brotlipy-0.7.0.tar.gz with bsdtar
==> Starting prepare()...
sed: can't read brotlipy-0.7.0/test/conftest.py: No such file or directory
==> ERROR: A failure occurred in prepare().
Aborting...

* link to upstream bug report, if any
https://github.com/python-hyper/brotlicffi/commit/4877f5bab817190ee4033413407e93385e345f9b
Steps to reproduce:

Upstream changed the name to brotlicffi:
https://github.com/python-hyper/brotlicffi/commit/4877f5bab817190ee4033413407e93385e345f9b

Extracted source now lives in brotlicffi-$pkgver instead of brotlipy-$pkgver, which causes sed to fails and build is aborted. The patches seem unaffected, so the only change needed is the sed in the prepare() function

bad:
sed -i 's|^TEST_DATA_DIR = .*|TEST_DATA_DIR = "/usr/share/brotli06/testdata"|' brotlipy-$pkgver/test/conftest.py

good:
sed -i 's|^TEST_DATA_DIR = .*|TEST_DATA_DIR = "/usr/share/brotli06/testdata"|' brotlicffi-$pkgver/test/conftest.py
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Tuesday, 04 May 2021, 06:18 GMT
Reason for closing:  Won't fix
Additional comments about closing:  Package python-brotlipy removed from repositories https://git.archlinux.org/svntogit/commu nity.git/commit/?id=59a79d97b86db9916806 b70e85b009a089ea4bcd

Comment by Doug Newgard (Scimmia) - Wednesday, 02 December 2020, 17:23 GMT
There's no way that file moved without the checksum changing.

Edit: oh, I see you did updpkgsums. THAT is the main issue here, upstream has re-released the tarball. You should NOT be running that as a matter of course.
Comment by Erich Eckner (deepthought) - Thursday, 21 January 2021, 16:04 GMT
Can you please update the PKGBUILD? The current one cannot be built. Alternatively I'd be happy with the original source (with matching checksum) :-)
Comment by loqs (loqs) - Wednesday, 17 March 2021, 23:53 GMT
@deepthought it is not that simple. The module name changed from brotli to brotlicffi so dependent packages needed to be updated as well.

scrapy has a checkdepends on mitmproxy which depends on python-brotli which also provides brotli so that will be used instead after the change without patching.

python-aiohttp without patching skips the tests for brotli when it can not import brotli.
python-aiohttp dropped brotlipy in favor of brotli in backport [1] which needs [2] to cherry-pick cleanly.
python-aiohttp still fails tests see [3][4] (I could not find a similar request for 3.7) which has not yet been merged and does not cherry-pick cleanly.

If python-aiohttp and scrapy have depends changed to python-brotli from python-brotlipy then nothing depends on python-brotlipy now called python-brotlicffi.

Attached:
PKGBUILD for python-brotlicffi 1.0.9.1.
PKGBUILD.scrapy.diff replace python-brotlipy with python-brotli
PKGBUILD.python-aiohttp.diff as above requires a commit that does not apply cleanly and an unmerged commit that also does not apply cleanly to pass tests also bump to 3.7.4 security release.
Edit:
PKGBUILD is probably missing a replaces entry for python-brotlypy while probably not a provides entry.
Edit2:
PKGBUILD.python-aiohttp.diff as above except manually merge cherry-picks and include the result as patches.

[1] https://github.com/aio-libs/aiohttp/commit/506d07548a15c4301affa0c8b8e23fd7826eb977
[2] https://github.com/aio-libs/aiohttp/commit/1fabfad271fe1a51165fe99cc4b828b1241af34c
[3] https://github.com/aio-libs/aiohttp/pull/5495
[4] https://github.com/aio-libs/aiohttp/pull/5495/commits/fe5e684a8f81f3a8db69a8c063641b7d1da94f61

Loading...