aboutsummaryrefslogtreecommitdiff
path: root/security/py-pyvex
diff options
context:
space:
mode:
authorMateusz Piotrowski <0mp@FreeBSD.org>2020-03-03 00:21:33 +0000
committerMateusz Piotrowski <0mp@FreeBSD.org>2020-03-03 00:21:33 +0000
commiteec85f9b323a246e58b0040ec1d9b4795cdba59a (patch)
treea9310441852443002f1a6ace3fa969dcd801a7f2 /security/py-pyvex
parentf4ac01ef687efbd6011c4b7a87ed0557aa48cbfc (diff)
downloadports-eec85f9b323a246e58b0040ec1d9b4795cdba59a.tar.gz
ports-eec85f9b323a246e58b0040ec1d9b4795cdba59a.zip
New port: security/py-pyvex
PyVEX provides an interface that translates binary code into the VEX intermediate represenation (IR). WWW: https://github.com/angr/pyvex PR: 244562
Notes
Notes: svn path=/head/; revision=527657
Diffstat (limited to 'security/py-pyvex')
-rw-r--r--security/py-pyvex/Makefile42
-rw-r--r--security/py-pyvex/distinfo3
-rw-r--r--security/py-pyvex/files/patch-pyvex__c_Makefile28
-rw-r--r--security/py-pyvex/files/patch-setup.py28
-rw-r--r--security/py-pyvex/files/patch-vex_Makefile-gcc11
-rw-r--r--security/py-pyvex/pkg-descr4
6 files changed, 116 insertions, 0 deletions
diff --git a/security/py-pyvex/Makefile b/security/py-pyvex/Makefile
new file mode 100644
index 000000000000..f5c6ea707f0b
--- /dev/null
+++ b/security/py-pyvex/Makefile
@@ -0,0 +1,42 @@
+# $FreeBSD$
+
+PORTNAME= pyvex
+PORTVERSION= 8.20.1.7
+CATEGORIES= security devel python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= 0mp@FreeBSD.org
+COMMENT= Python interface to libVEX and VEX IR
+
+LICENSE= BSD2CLAUSE GPLv2+ GPLv3
+LICENSE_COMB= multi
+LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/LICENSE
+LICENSE_FILE_GPLv2+ = ${WRKSRC}/vex/LICENSE.GPL
+LICENSE_FILE_GPLv3= ${WRKSRC}/pyvex_c/LICENSE
+
+BUILD_DEPENDS= ${_MY_DEPENDS}
+RUN_DEPENDS= ${_MY_DEPENDS} \
+ ${PYTHON_PKGNAMEPREFIX}archinfo>0:devel/py-archinfo@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pycparser>0:devel/py-pycparser@${PY_FLAVOR}
+
+USES= gmake localbase python:3.5+
+USE_CSTD= c99
+USE_PYTHON= autoplist distutils
+
+MAKE_ENV= EXTRA_CFLAGS="${CFLAGS}"
+
+_MY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.0.3:devel/py-cffi@${PY_FLAVOR}
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|%%CFLAGS%%|${CFLAGS}|g' \
+ -e 's|%%LDFLAGS%%|${LDFLAGS}|g' \
+ ${WRKSRC}/pyvex_c/Makefile
+ @${REINPLACE_CMD} -e 's|%%MAKE_JOBS_NUMBER%%|${MAKE_JOBS_NUMBER}|g' \
+ ${WRKSRC}/setup.py
+
+post-install:
+ @${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}/lib/lib${PORTNAME}.so
+
+.include <bsd.port.mk>
diff --git a/security/py-pyvex/distinfo b/security/py-pyvex/distinfo
new file mode 100644
index 000000000000..9c0b60f4557e
--- /dev/null
+++ b/security/py-pyvex/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1583168013
+SHA256 (pyvex-8.20.1.7.tar.gz) = 16d84ffb61d70d735861599d9f8cb21c33a22cbc9852de4acaa6569991a2e1ce
+SIZE (pyvex-8.20.1.7.tar.gz) = 1729320
diff --git a/security/py-pyvex/files/patch-pyvex__c_Makefile b/security/py-pyvex/files/patch-pyvex__c_Makefile
new file mode 100644
index 000000000000..b0408ea31318
--- /dev/null
+++ b/security/py-pyvex/files/patch-pyvex__c_Makefile
@@ -0,0 +1,28 @@
+--- pyvex_c/Makefile.orig 2019-04-16 21:08:49 UTC
++++ pyvex_c/Makefile
+@@ -4,6 +4,11 @@ ifeq ($(UNAME), Darwin)
+ STATIC_LIBRARY_FILE=libpyvex.a
+ LDFLAGS=-Wl,-install_name,$(LIBRARY_FILE)
+ endif
++ifeq ($(UNAME), FreeBSD)
++ LIBRARY_FILE=libpyvex.so
++ STATIC_LIBRARY_FILE=libpyvex.a
++ LDFLAGS=-Wl,-soname,$(LIBRARY_FILE) %%LDFLAGS%%
++endif
+ ifeq ($(UNAME), Linux)
+ LIBRARY_FILE=libpyvex.so
+ STATIC_LIBRARY_FILE=libpyvex.a
+@@ -27,10 +32,10 @@ sp +=
+ qs = $(subst ?,$(sp),$1)
+ sq = $(subst $(sp),?,$1)
+
+-CC=gcc
+-AR=ar
++CC?=gcc
++AR?=ar
+ INCFLAGS=-I "$(VEX_INCLUDE_PATH)"
+-CFLAGS=-g -O2 -Wall -shared -fPIC -std=c99 $(INCFLAGS)
++CFLAGS=-g %%CFLAGS%% -Wall -shared -fPIC $(INCFLAGS)
+
+ OBJECTS=pyvex.o logging.o analysis.o postprocess.o
+ HEADERS=pyvex.h
diff --git a/security/py-pyvex/files/patch-setup.py b/security/py-pyvex/files/patch-setup.py
new file mode 100644
index 000000000000..2a0bbd077218
--- /dev/null
+++ b/security/py-pyvex/files/patch-setup.py
@@ -0,0 +1,28 @@
+--- setup.py.orig 2020-01-08 00:58:26 UTC
++++ setup.py
+@@ -73,10 +73,8 @@ def _build_vex():
+ e['MULTIARCH'] = '1'
+ e['DEBUG'] = '1'
+
+- cmd1 = ['nmake', '/f', 'Makefile-msvc', 'all']
+- cmd2 = ['make', '-f', 'Makefile-gcc', '-j', str(multiprocessing.cpu_count()), 'all']
+- cmd3 = ['gmake', '-f', 'Makefile-gcc', '-j', str(multiprocessing.cpu_count()), 'all']
+- for cmd in (cmd1, cmd2, cmd3):
++ cmd3 = ['gmake', '-f', 'Makefile-gcc', '-j', '%%MAKE_JOBS_NUMBER%%', 'all']
++ for cmd in (cmd3,):
+ try:
+ if subprocess.call(cmd, cwd=VEX_PATH, env=e) == 0:
+ break
+@@ -91,10 +89,8 @@ def _build_pyvex():
+ e['VEX_INCLUDE_PATH'] = os.path.join(VEX_PATH, 'pub')
+ e['VEX_LIB_FILE'] = os.path.join(VEX_PATH, 'libvex.lib')
+
+- cmd1 = ['nmake', '/f', 'Makefile-msvc']
+- cmd2 = ['make', '-j', str(multiprocessing.cpu_count())]
+- cmd3 = ['gmake', '-j', str(multiprocessing.cpu_count())]
+- for cmd in (cmd1, cmd2, cmd3):
++ cmd3 = ['gmake', '-j', '%%MAKE_JOBS_NUMBER%%']
++ for cmd in (cmd3,):
+ try:
+ if subprocess.call(cmd, cwd='pyvex_c', env=e) == 0:
+ break
diff --git a/security/py-pyvex/files/patch-vex_Makefile-gcc b/security/py-pyvex/files/patch-vex_Makefile-gcc
new file mode 100644
index 000000000000..782ab5e1a92f
--- /dev/null
+++ b/security/py-pyvex/files/patch-vex_Makefile-gcc
@@ -0,0 +1,11 @@
+--- vex/Makefile-gcc.orig 2020-03-02 17:34:06 UTC
++++ vex/Makefile-gcc
+@@ -44,7 +44,7 @@ CFLAGS := -Ipub -Ipriv \
+ ifeq ($(DEBUG),1)
+ CFLAGS += -g
+ else
+-CFLAGS += -O2
++#CFLAGS += -O2
+ endif
+
+ # These are a separate set of defines that compile for parallel environments
diff --git a/security/py-pyvex/pkg-descr b/security/py-pyvex/pkg-descr
new file mode 100644
index 000000000000..b54f354b7b88
--- /dev/null
+++ b/security/py-pyvex/pkg-descr
@@ -0,0 +1,4 @@
+PyVEX provides an interface that translates binary code into the VEX
+intermediate represenation (IR).
+
+WWW: https://github.com/angr/pyvex