summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO20
-rw-r--r--0001-Fix-support-for-Minecraft-version-1.12.2-data-versio.patch30
-rw-r--r--0001-Update-nbt.py.patch25
-rw-r--r--0002-Update-region.py.patch25
-rw-r--r--0003-Use-collections.abc.patch46
-rw-r--r--PKGBUILD38
6 files changed, 65 insertions, 119 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 59c31eb93e08..8b06b4c149fb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
-
diff --git a/PKGBUILD b/PKGBUILD
index 09c2f8d4ceec..fd9d1d40bbe2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"
}