diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | 0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch | 30 | ||||
-rw-r--r-- | 0001-Update-nbt.py.patch | 25 | ||||
-rw-r--r-- | 0002-Update-region.py.patch | 25 | ||||
-rw-r--r-- | 0003-Use-collections.abc.patch | 46 | ||||
-rw-r--r-- | PKGBUILD | 38 |
6 files changed, 65 insertions, 119 deletions
@@ -1,19 +1,19 @@ pkgbase = python-nbt pkgdesc = Named Binary Tag Reader/Writer - pkgver = 1.5.0 - pkgrel = 4 + pkgver = 1.5.1 + pkgrel = 3 url = https://github.com/twoolie/NBT arch = any license = MIT + checkdepends = python-pillow makedepends = python-setuptools depends = python - source = python-nbt-1.5.0.tar.gz::https://github.com/twoolie/NBT/archive/version-1.5.0.tar.gz - source = 0001-Update-nbt.py.patch - source = 0002-Update-region.py.patch - source = 0003-Use-collections.abc.patch - sha256sums = 068111bf5d9e73156cd6d627b3d69c782e89af96e328dd7e91a971a453ba9951 - sha256sums = 28a92ddc698cc8f17ab2628dd6ca1bf552bc96803d9891f9c04fc2feb2c866db - sha256sums = 13cff14b8e0584a67e20d7a0e9924a95e283ab64e10366cffff092b7c83201d5 - sha256sums = e1931b3b9b0962bf88a8834be846accdc4fec9edccbd670b01506c6b8139c945 + noextract = Sample_World.tar.gz + source = python-nbt-1.5.1.tar.gz::https://github.com/twoolie/NBT/archive/version-1.5.1.tar.gz + source = https://github.com/twoolie/NBT/files/13199373/Sample_World.tar.gz + source = 0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch + sha256sums = 8b260dc68ed91819e990ca677ee05417e259145fb7531428a1f7b948d71367dc + sha256sums = 8966c9333b69307420512c4ae57639863980b1123d621155830f75167f79a8e8 + sha256sums = 4f16d8e0cdc6e29af972b52200c439e67626c4454d853f69a3001c58cec84b45 pkgname = python-nbt diff --git a/0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch b/0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch new file mode 100644 index 000000000000..af8e745a7a7e --- /dev/null +++ b/0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch @@ -0,0 +1,30 @@ +From dd91e56918ad8face6101637c3ba992d53e762f5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Steffen=20Kie=C3=9F?= + <steffen.kiess@cis.iti.uni-stuttgart.de> +Date: Wed, 25 Oct 2023 18:37:07 +0200 +Subject: [PATCH] Fix support for Minecraft version 1.12.2 (data version 1343) + +For data version 1343, the 'Blocks' key is needed. In +commit cd0133de7aa8b0023d80769e9fc6a1a78bd9fe57 the code was change to +no longer create an AnvilSection if there is no 'BlockStates' key. +Change this to also create an AnvilSection if there is a 'Blocks' key. +--- + nbt/chunk.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nbt/chunk.py b/nbt/chunk.py +index e0dd661..a59fcc0 100644 +--- a/nbt/chunk.py ++++ b/nbt/chunk.py +@@ -296,7 +296,7 @@ class AnvilChunk(Chunk): + self.sections = {} + if 'Sections' in self.chunk_data: + for s in self.chunk_data['Sections']: +- if "BlockStates" in s.keys(): # sections may only contain lighting information ++ if "BlockStates" in s.keys() or "Blocks" in s.keys(): # sections may only contain lighting information + self.sections[s['Y'].value] = AnvilSection(s, version) + + +-- +2.44.0 + diff --git a/0001-Update-nbt.py.patch b/0001-Update-nbt.py.patch deleted file mode 100644 index 4727a9107b49..000000000000 --- a/0001-Update-nbt.py.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e759d534d5a1be6dd5ce1958cdf2034325f970b9 Mon Sep 17 00:00:00 2001 -From: einekratzekatze <48450457+einekratzekatze@users.noreply.github.com> -Date: Mon, 25 Oct 2021 18:39:35 +0200 -Subject: [PATCH 1/3] Update nbt.py - ---- - nbt/nbt.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nbt/nbt.py b/nbt/nbt.py -index f1c9bbb..feb6d00 100644 ---- a/nbt/nbt.py -+++ b/nbt/nbt.py -@@ -7,7 +7,7 @@ https://minecraft.gamepedia.com/NBT_format - - from struct import Struct, error as StructError - from gzip import GzipFile --from collections import MutableMapping, MutableSequence, Sequence -+from typing import MutableMapping, MutableSequence, Sequence - import sys - - _PY3 = sys.version_info >= (3,) --- -2.34.1 - diff --git a/0002-Update-region.py.patch b/0002-Update-region.py.patch deleted file mode 100644 index c743946db39d..000000000000 --- a/0002-Update-region.py.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d94409a4afdcdcc0f29fbf324eeacabc3843756a Mon Sep 17 00:00:00 2001 -From: einekratzekatze <48450457+einekratzekatze@users.noreply.github.com> -Date: Mon, 25 Oct 2021 18:40:02 +0200 -Subject: [PATCH 2/3] Update region.py - ---- - nbt/region.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nbt/region.py b/nbt/region.py -index ada937a..d52b861 100644 ---- a/nbt/region.py -+++ b/nbt/region.py -@@ -7,7 +7,7 @@ https://minecraft.gamepedia.com/Region_file_format - - from .nbt import NBTFile, MalformedFileError - from struct import pack, unpack --from collections import Mapping -+from typing import Mapping - import zlib - import gzip - from io import BytesIO --- -2.34.1 - diff --git a/0003-Use-collections.abc.patch b/0003-Use-collections.abc.patch deleted file mode 100644 index bf24167f7362..000000000000 --- a/0003-Use-collections.abc.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 25684c38ae82390ac5801a681cd459f882b093f2 Mon Sep 17 00:00:00 2001 -From: Freek Dijkstra <freek@macfreek.nl> -Date: Tue, 26 Oct 2021 00:42:37 +0200 -Subject: [PATCH 3/3] Use collections.abc. With fall-back for outdated Pyton - 2.7 versions. - ---- - nbt/nbt.py | 5 ++++- - nbt/region.py | 5 ++++- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/nbt/nbt.py b/nbt/nbt.py -index feb6d00..861a385 100644 ---- a/nbt/nbt.py -+++ b/nbt/nbt.py -@@ -7,7 +7,10 @@ https://minecraft.gamepedia.com/NBT_format - - from struct import Struct, error as StructError - from gzip import GzipFile --from typing import MutableMapping, MutableSequence, Sequence -+try: -+ from collections.abc import MutableMapping, MutableSequence, Sequence -+except ImportError: # for Python 2.7 -+ from collections import MutableMapping, MutableSequence, Sequence - import sys - - _PY3 = sys.version_info >= (3,) -diff --git a/nbt/region.py b/nbt/region.py -index d52b861..224099b 100644 ---- a/nbt/region.py -+++ b/nbt/region.py -@@ -7,7 +7,10 @@ https://minecraft.gamepedia.com/Region_file_format - - from .nbt import NBTFile, MalformedFileError - from struct import pack, unpack --from typing import Mapping -+try: -+ from collections.abc import Mapping -+except ImportError: # for Python 2.7 -+ from collections import Mapping - import zlib - import gzip - from io import BytesIO --- -2.34.1 - @@ -3,29 +3,32 @@ _name=NBT pkgname=python-${_name,,} -pkgver=1.5.0 -pkgrel=4 +pkgver=1.5.1 +pkgrel=3 pkgdesc="Named Binary Tag Reader/Writer" url="https://github.com/twoolie/$_name" depends=('python') makedepends=('python-setuptools') +checkdepends=('python-pillow') license=('MIT') arch=('any') source=("$pkgname-$pkgver.tar.gz::$url/archive/version-$pkgver.tar.gz" - '0001-Update-nbt.py.patch' - '0002-Update-region.py.patch' - '0003-Use-collections.abc.patch') -sha256sums=('068111bf5d9e73156cd6d627b3d69c782e89af96e328dd7e91a971a453ba9951' - '28a92ddc698cc8f17ab2628dd6ca1bf552bc96803d9891f9c04fc2feb2c866db' - '13cff14b8e0584a67e20d7a0e9924a95e283ab64e10366cffff092b7c83201d5' - 'e1931b3b9b0962bf88a8834be846accdc4fec9edccbd670b01506c6b8139c945') + # https://github.com/twoolie/NBT/blob/766daa242197a12317564c1b734308d31fb22b4f/tests/downloadsample.py#L23 + "$url/files/13199373/Sample_World.tar.gz" + '0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch') +noextract=('Sample_World.tar.gz') +sha256sums=('8b260dc68ed91819e990ca677ee05417e259145fb7531428a1f7b948d71367dc' + '8966c9333b69307420512c4ae57639863980b1123d621155830f75167f79a8e8' + '4f16d8e0cdc6e29af972b52200c439e67626c4454d853f69a3001c58cec84b45') prepare() { cd "$_name-version-$pkgver" - for p in "$srcdir"/*.patch; do - patch -Np1 -i "$p" - done + # fix regression in 1.5.1 + patch -Np1 -i "$srcdir/0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch" + + # Python 3.12 + sed -Ei 's/(locale\.format)/\1_string/g' examples/{chest,mob}_analysis.py } build() { @@ -34,9 +37,18 @@ build() { python setup.py build } +check() { + cd "$_name-version-$pkgver" + + # use file downloaded by `makepkg` + ln -s "$srcdir/Sample_World.tar.gz" tests/ + + python tests/alltests.py +} + package() { cd "$_name-version-$pkgver" - python setup.py install --root="$pkgdir" --optimize=1 --skip-build + python setup.py install --root="$pkgdir" --optimize=1 install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } |