SecBSD's official ports repository

This commit is contained in:
purplerain 2023-08-16 22:26:55 +00:00
commit 2c0afcbbf3
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
64331 changed files with 5339189 additions and 0 deletions

View file

@ -0,0 +1,33 @@
COMMENT = Python interface to libVEX and VEX IR
REVISION = 2
ANGR_PYTHON_MODULE = pyvex
USE_GMAKE = Yes
CFLAGS += -shared -fPIC -I${LOCALBASE}/include/angr-vex/
MODPY_PYTEST = Yes
BUILD_DEPENDS += devel/angr/vex>=9.0 \
devel/py-cffi${MODPY_FLAVOR} \
devel/py-cparser${MODPY_FLAVOR}
# dlopen(3)s libpyvex.so
RUN_DEPENDS += devel/angr/vex>=9.0 \
devel/py-cffi${MODPY_FLAVOR} \
devel/py-cparser${MODPY_FLAVOR} \
devel/angr/py-archinfo>=${MODPY_EGG_VERSION} \
devel/py-bitstring${MODPY_FLAVOR} \
devel/py-future${MODPY_FLAVOR}
TEST_DEPENDS = ${RUN_DEPENDS}
DOCDIR = ${PREFIX}/share/doc/py-${ANGR_PYTHON_MODULE}
pre-configure:
${SUBST_CMD} ${WRKSRC}/pyvex_c/Makefile ${WRKSRC}/setup.py
post-install:
${INSTALL_DATA_DIR} ${DOCDIR}/
${INSTALL_DATA} ${WRKSRC}/README.md ${DOCDIR}/
.include <bsd.port.mk>

View file

@ -0,0 +1,2 @@
SHA256 (pyvex-9.0.6642.tar.gz) = /VJonI25o3bQeMfrUS7J0KBo2YAUoZGqSFulNGNHfFA=
SIZE (pyvex-9.0.6642.tar.gz) = 1767564

View file

@ -0,0 +1,14 @@
Use 'cc' as default compiler.
Index: make_ffi.py
--- make_ffi.py.orig
+++ make_ffi.py
@@ -76,7 +76,7 @@ def doit(vex_path):
errs = []
for cpp in cpplist:
cmd = [cpp, '-I' + vex_path, os.path.join("pyvex_c", "pyvex.h")]
- if cpp in ('cl', 'clang', 'gcc', 'cc', 'clang++', 'g++'):
+ if cpp in ('cc'):
cmd.append("-E")
try:
p = subprocess.Popen(cmd,

View file

@ -0,0 +1,28 @@
- Don't overwrite CFLAGS
- Force use of shared libraries
Index: pyvex_c/Makefile
--- pyvex_c/Makefile.orig
+++ pyvex_c/Makefile
@@ -33,18 +33,17 @@ sq = $(subst $(sp),?,$1)
CC?=gcc
AR=ar
INCFLAGS=-I "$(VEX_INCLUDE_PATH)"
-CFLAGS=-g -O2 -Wall -shared -fPIC -std=c99 $(INCFLAGS)
OBJECTS=pyvex.o logging.o analysis.o postprocess.o
HEADERS=pyvex.h
-all: $(LIBRARY_FILE) $(STATIC_LIBRARY_FILE)
+all: $(LIBRARY_FILE)
%.o: %.c
$(CC) -c $(CFLAGS) $<
-$(LIBRARY_FILE): $(OBJECTS) $(HEADERS) $(call sq,$(VEX_LIB_PATH)/libvex.a)
- $(CC) $(CFLAGS) -o $(LIBRARY_FILE) $(OBJECTS) "$(VEX_LIB_PATH)/libvex.a" $(LDFLAGS)
+$(LIBRARY_FILE): $(OBJECTS) $(HEADERS)
+ $(CC) $(CFLAGS) -o $(LIBRARY_FILE) $(OBJECTS) $(LDFLAGS)
$(STATIC_LIBRARY_FILE): $(OBJECTS) $(HEADERS) $(call sq,$(VEX_LIB_PATH)/libvex.a)
$(AR) rcs $(STATIC_LIBRARY_FILE) $(OBJECTS)

View file

@ -0,0 +1,26 @@
- match the guest with amd64-cx16-rdtscp-sse3-avx-avx2-bmi
as the host and guest hardware capabilities much be equal for VEX to work
- remove LZCNT from the guest as the host might not support it on OpenBSD
Index: pyvex_c/pyvex.c
--- pyvex_c/pyvex.c.orig
+++ pyvex_c/pyvex.c
@@ -175,6 +175,10 @@ int vex_init() {
#error "Unsupported host arch"
#endif
+ // Set the host capabilities to match the guest as defined
+ // in vex_prepare_vai().
+ vai_host.hwcaps = 0xf60;
+
vta.archinfo_host = vai_host;
//
@@ -222,7 +226,6 @@ static void vex_prepare_vai(VexArch arch, VexArchInfo
case VexArchAMD64:
vai->hwcaps = VEX_HWCAPS_AMD64_SSE3 |
VEX_HWCAPS_AMD64_CX16 |
- VEX_HWCAPS_AMD64_LZCNT |
VEX_HWCAPS_AMD64_AVX |
VEX_HWCAPS_AMD64_RDTSCP |
VEX_HWCAPS_AMD64_BMI |

View file

@ -0,0 +1,69 @@
- Remove urllib import which is not required when not downloading the sources
- Fix various paths to LibVEX
- Skip building a local copy of LibVEX
- Force use of the static library
Index: setup.py
--- setup.py.orig
+++ setup.py
@@ -7,7 +7,6 @@ import glob
import tarfile
import multiprocessing
import time
-from urllib.request import urlopen
import platform
if bytes is str:
@@ -45,7 +44,7 @@ else:
VEX_LIB_NAME = "vex" # can also be vex-amd64-linux
-VEX_PATH = os.path.abspath(os.path.join(PROJECT_DIR, '..', 'vex'))
+VEX_PATH = '${LOCALBASE}'
if not os.path.exists(VEX_PATH):
VEX_PATH = os.path.join(PROJECT_DIR, 'vex')
@@ -87,14 +86,14 @@ def _build_vex():
def _build_pyvex():
e = os.environ.copy()
- e['VEX_LIB_PATH'] = VEX_PATH
- e['VEX_INCLUDE_PATH'] = os.path.join(VEX_PATH, 'pub')
- e['VEX_LIB_FILE'] = os.path.join(VEX_PATH, 'libvex.lib')
+ e['VEX_LIB_PATH'] = os.path.join(VEX_PATH, 'lib')
+ e['VEX_INCLUDE_PATH'] = os.path.join(VEX_PATH, 'include/angr-vex')
+ e['VEX_LIB_FILE'] = os.path.join(VEX_PATH, 'lib/libvex.so')
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):
+ for cmd in (cmd3):
try:
if subprocess.call(cmd, cwd='pyvex_c', env=e) == 0:
break
@@ -112,7 +111,6 @@ def _shuffle_files():
pyvex_c_dir = os.path.join(PROJECT_DIR, 'pyvex_c')
shutil.copy(os.path.join(pyvex_c_dir, LIBRARY_FILE), LIB_DIR)
- shutil.copy(os.path.join(pyvex_c_dir, STATIC_LIBRARY_FILE), LIB_DIR)
shutil.copy(os.path.join(pyvex_c_dir, 'pyvex.h'), INCLUDE_DIR)
for f in glob.glob(os.path.join(VEX_PATH, 'pub', '*')):
shutil.copy(f, INCLUDE_DIR)
@@ -138,14 +136,14 @@ def _copy_sources():
def _build_ffi():
import make_ffi
try:
- make_ffi.doit(os.path.join(VEX_PATH, 'pub'))
+ make_ffi.doit(os.path.join(VEX_PATH, 'include/angr-vex'))
except Exception as e:
print(repr(e))
raise
class build(_build):
def run(self):
- self.execute(_build_vex, (), msg="Building libVEX")
+ #self.execute(_build_vex, (), msg="Building libVEX")
self.execute(_build_pyvex, (), msg="Building libpyvex")
self.execute(_shuffle_files, (), msg="Copying libraries and headers")
self.execute(_build_ffi, (), msg="Creating CFFI defs file")

View file

@ -0,0 +1 @@
Python bindings for Valgrind's VEX IR.

View file

@ -0,0 +1,90 @@
lib/python${MODPY_VERSION}/site-packages/pyvex/
lib/python${MODPY_VERSION}/site-packages/pyvex-${MODPY_EGG_VERSION}.dist-info/
lib/python${MODPY_VERSION}/site-packages/pyvex-${MODPY_EGG_VERSION}.dist-info/LICENSE
lib/python${MODPY_VERSION}/site-packages/pyvex-${MODPY_EGG_VERSION}.dist-info/METADATA
lib/python${MODPY_VERSION}/site-packages/pyvex-${MODPY_EGG_VERSION}.dist-info/RECORD
lib/python${MODPY_VERSION}/site-packages/pyvex-${MODPY_EGG_VERSION}.dist-info/WHEEL
lib/python${MODPY_VERSION}/site-packages/pyvex-${MODPY_EGG_VERSION}.dist-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/pyvex/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}block.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}block.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}const.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}const.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}data_ref.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}data_ref.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}enums.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}enums.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}errors.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}errors.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}expr.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}expr.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}stmt.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}stmt.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}vex_ffi.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/${MODPY_PYCACHE}vex_ffi.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/block.py
lib/python${MODPY_VERSION}/site-packages/pyvex/const.py
lib/python${MODPY_VERSION}/site-packages/pyvex/data_ref.py
lib/python${MODPY_VERSION}/site-packages/pyvex/enums.py
lib/python${MODPY_VERSION}/site-packages/pyvex/errors.py
lib/python${MODPY_VERSION}/site-packages/pyvex/expr.py
lib/python${MODPY_VERSION}/site-packages/pyvex/include/
lib/python${MODPY_VERSION}/site-packages/pyvex/include/pyvex.h
lib/python${MODPY_VERSION}/site-packages/pyvex/lib/
@so lib/python${MODPY_VERSION}/site-packages/pyvex/lib/libpyvex.so
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}libvex.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}libvex.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}lifter.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}lifter.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}post_processor.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}post_processor.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}zerodivision.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/${MODPY_PYCACHE}zerodivision.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}aarch64_spotter.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}aarch64_spotter.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}arm_spotter.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/${MODPY_PYCACHE}arm_spotter.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/aarch64_spotter.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/gym/arm_spotter.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/libvex.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/lifter.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/post_processor.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}instr_helper.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}instr_helper.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}irsb_postprocess.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}irsb_postprocess.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}lifter_helper.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}lifter_helper.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}syntax_wrapper.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}syntax_wrapper.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}vex_helper.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/${MODPY_PYCACHE}vex_helper.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/instr_helper.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/irsb_postprocess.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/lifter_helper.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/syntax_wrapper.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/util/vex_helper.py
lib/python${MODPY_VERSION}/site-packages/pyvex/lifting/zerodivision.py
lib/python${MODPY_VERSION}/site-packages/pyvex/py.typed
lib/python${MODPY_VERSION}/site-packages/pyvex/stmt.py
lib/python${MODPY_VERSION}/site-packages/pyvex/vex_ffi.py
share/doc/py-pyvex/
share/doc/py-pyvex/README.md