git: a9619e5670cd - main - devel/py-xasm: Add py-xasm 1.2.0

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Sun, 04 Aug 2024 17:21:45 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a9619e5670cdccaa8f9930b955a5e191cabb45a0

commit a9619e5670cdccaa8f9930b955a5e191cabb45a0
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2024-08-04 16:44:05 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2024-08-04 17:13:52 +0000

    devel/py-xasm: Add py-xasm 1.2.0
    
    The Python xasm module has routines for assembly, and has a command to assemble
    bytecode for several different versions of Python.
    
    Here are some potential uses:
    - Make small changes to existing Python bytecode when you don't have source
    - Craft custom and efficient bytecode
    - Write an instruction-level optimizing compiler
    - Experiment with and learn about Python bytecode
    - Foil decompilers like uncompyle6 so that they can't disassemble bytecode (at
      least for now)
    
    This support the same kinds of bytecode that xdis supports. This is pretty much
    all released bytecode, although we tend to lag behind the latest Python
    releases.
---
 devel/Makefile                               |  1 +
 devel/py-xasm/Makefile                       | 25 +++++++++++++++++++++++++
 devel/py-xasm/distinfo                       |  3 +++
 devel/py-xasm/files/patch-____pkginfo____.py | 17 +++++++++++++++++
 devel/py-xasm/pkg-descr                      | 14 ++++++++++++++
 5 files changed, 60 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index 531922000688..8d30ff65f664 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -6023,6 +6023,7 @@
     SUBDIR += py-xarray
     SUBDIR += py-xarray-einstats
     SUBDIR += py-xarray-simlab
+    SUBDIR += py-xasm
     SUBDIR += py-xattr
     SUBDIR += py-xdg
     SUBDIR += py-xdis
diff --git a/devel/py-xasm/Makefile b/devel/py-xasm/Makefile
new file mode 100644
index 000000000000..34b250404ac4
--- /dev/null
+++ b/devel/py-xasm/Makefile
@@ -0,0 +1,25 @@
+PORTNAME=	xasm
+PORTVERSION=	1.2.0
+CATEGORIES=	devel python
+MASTER_SITES=	PYPI \
+		https://github.com/rocky/python-xasm/releases/download/${PORTVERSION}/
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Python cross-version byte-code assembler
+WWW=		https://github.com/rocky/python-xasm
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/LICENSE.gpl2
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}xdis>=6.0.3:devel/py-xdis@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-xasm/distinfo b/devel/py-xasm/distinfo
new file mode 100644
index 000000000000..3635d0d8e558
--- /dev/null
+++ b/devel/py-xasm/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1722711125
+SHA256 (xasm-1.2.0.tar.gz) = 800ed4d0e2b582fa85c39362ea2958020b8fe48e96d13c2f0895c7f7b1f5f81f
+SIZE (xasm-1.2.0.tar.gz) = 39887
diff --git a/devel/py-xasm/files/patch-____pkginfo____.py b/devel/py-xasm/files/patch-____pkginfo____.py
new file mode 100644
index 000000000000..b4e7591c79d0
--- /dev/null
+++ b/devel/py-xasm/files/patch-____pkginfo____.py
@@ -0,0 +1,17 @@
+--- __pkginfo__.py.orig	2021-11-07 21:37:38 UTC
++++ __pkginfo__.py
+@@ -35,12 +35,12 @@ ftp_url = None
+ author = "Rocky Bernstein"
+ author_email = "rb@dustyfeet.com"
+ ftp_url = None
+-install_requires = [_six]
++install_requires = ["xdis >= 6.0.3"]
+ license = "GPL-2.0"
+ mailing_list = "python-debugger@googlegroups.com"
+ modname = "xasm"
+ py_modules = None
+-setup_requires = ["pytest-runner", "xdis >= 6.0.3, < 6.1.0"]
++setup_requires = []
+ # scripts            = ['bin/pydisasm']
+ short_desc = "Python cross-version byte-code assembler"
+ tests_require = ["pytest", _six]
diff --git a/devel/py-xasm/pkg-descr b/devel/py-xasm/pkg-descr
new file mode 100644
index 000000000000..c6b9580c6385
--- /dev/null
+++ b/devel/py-xasm/pkg-descr
@@ -0,0 +1,14 @@
+The Python xasm module has routines for assembly, and has a command to assemble
+bytecode for several different versions of Python.
+
+Here are some potential uses:
+- Make small changes to existing Python bytecode when you don't have source
+- Craft custom and efficient bytecode
+- Write an instruction-level optimizing compiler
+- Experiment with and learn about Python bytecode
+- Foil decompilers like uncompyle6 so that they can't disassemble bytecode (at
+  least for now)
+
+This support the same kinds of bytecode that xdis supports. This is pretty much
+all released bytecode, although we tend to lag behind the latest Python
+releases.