diff --git a/devel/brz/Makefile b/devel/brz/Makefile index 3b4bd31aff42..07f4af128868 100644 --- a/devel/brz/Makefile +++ b/devel/brz/Makefile @@ -1,60 +1,57 @@ PORTNAME= brz DISTVERSION= 3.2.2 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= devel MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} DISTNAME= breezy-${PORTVERSION} MAINTAINER= fullermd@over-yonder.net COMMENT= Distributed version control system based on bzr WWW= https://www.breezy-vcs.org/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING.txt -DEPRECATED= Depends on expired lang/cython0 -EXPIRATION_DATE=2026-09-15 - BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}configobj>=0:devel/py-configobj@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}configobj>=0:devel/py-configobj@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}fastbencode>=0:devel/py-fastbencode@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}launchpadlib>=0:devel/py-launchpadlib@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}patiencediff>=0:textproc/py-patiencediff@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}testtools>=0:devel/py-testtools@${PY_FLAVOR} USES= gettext-tools python shebangfix -USE_PYTHON= autoplist concurrent cython0 distutils +USE_PYTHON= autoplist concurrent cython distutils SHEBANG_FILES= brz MAKE_ENV= BRZ_LOG=/dev/null PLIST_FILES= bin/bzr OPTIONS_DEFINE= CA_BUNDLE DULWICH SFTP OPTIONS_DEFAULT= CA_BUNDLE DULWICH CA_BUNDLE_DESC= Include CA bundle for SSL cert validation DULWICH_DESC= Depend on Dulwich for git support SFTP_DESC= Paramiko for SFTP support CA_BUNDLE_RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss DULWICH_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dulwich>=0:devel/py-dulwich@${PY_FLAVOR} SFTP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}paramiko>=0:security/py-paramiko@${PY_FLAVOR} post-patch: @${REINPLACE_CMD} -e 's|man/man1|share/man/man1|' ${WRKSRC}/setup.py @${RM} ${WRKSRC}/breezy/*_pyx.c ${WRKSRC}/breezy/bzr/*_pyx.c post-install: ${INSTALL_MAN} ${WRKSRC}/brz.1 ${STAGEDIR}${PREFIX}/share/man/man1 ${STRIP_CMD} \ ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/breezy/*.so \ ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/breezy/bzr/*.so ${RLN} ${STAGEDIR}${PREFIX}/bin/brz ${STAGEDIR}${PREFIX}/bin/bzr do-test: cd ${WRKSRC} && ./brz selftest .include diff --git a/devel/brz/files/patch-breezy_bzr___chk__map__pyx.pyx b/devel/brz/files/patch-breezy_bzr___chk__map__pyx.pyx new file mode 100644 index 000000000000..6e9d28a7fb52 --- /dev/null +++ b/devel/brz/files/patch-breezy_bzr___chk__map__pyx.pyx @@ -0,0 +1,31 @@ +--- breezy/bzr/_chk_map_pyx.pyx.orig 2026-09-06 21:14:33 UTC ++++ breezy/bzr/_chk_map_pyx.pyx +@@ -40,8 +40,8 @@ from cpython.dict cimport ( + from cpython.dict cimport ( + PyDict_SetItem, + ) +-from cpython.int cimport ( +- PyInt_AsUnsignedLongMask, ++from cpython.long cimport ( ++ PyLong_AsUnsignedLongMask, + ) + from cpython.object cimport ( + PyObject, +@@ -102,7 +102,7 @@ def _search_key_16(key): + if i > 0: + c_out[0] = c'\x00' + c_out = c_out + 1 +- crc_val = PyInt_AsUnsignedLongMask(crc32(key[i])) & 0xFFFFFFFFUL ++ crc_val = PyLong_AsUnsignedLongMask(crc32(key[i])) & 0xFFFFFFFFUL + # Hex(val) order + sprintf(c_out, '%08lX', crc_val) + c_out = c_out + 8 +@@ -127,7 +127,7 @@ def _search_key_255(key): + if i > 0: + c_out[0] = c'\x00' + c_out = c_out + 1 +- crc_val = PyInt_AsUnsignedLongMask(crc32(key[i])) ++ crc_val = PyLong_AsUnsignedLongMask(crc32(key[i])) + # MSB order + c_out[0] = (crc_val >> 24) & 0xFF + c_out[1] = (crc_val >> 16) & 0xFF diff --git a/devel/brz/files/patch-breezy_bzr___dirstate__helpers__pyx.pyx b/devel/brz/files/patch-breezy_bzr___dirstate__helpers__pyx.pyx new file mode 100644 index 000000000000..18e25e4472e6 --- /dev/null +++ b/devel/brz/files/patch-breezy_bzr___dirstate__helpers__pyx.pyx @@ -0,0 +1,38 @@ +--- breezy/bzr/_dirstate_helpers_pyx.pyx.orig 2026-09-06 21:17:46 UTC ++++ breezy/bzr/_dirstate_helpers_pyx.pyx +@@ -98,7 +98,7 @@ cdef extern from "Python.h": + object PyTuple_GetItem_void_object "PyTuple_GET_ITEM" (void* tpl, int index) + object PyTuple_GET_ITEM(object tpl, Py_ssize_t index) + +- unsigned long PyInt_AsUnsignedLongMask(object number) except? -1 ++ unsigned long PyLong_AsUnsignedLongMask(object number) except? -1 + + char *PyBytes_AsString(object p) + char *PyBytes_AsString_obj "PyBytes_AsString" (PyObject *string) +@@ -800,7 +800,7 @@ cdef unsigned long _time_to_unsigned(object t): # can + cdef unsigned long _time_to_unsigned(object t): # cannot_raise + if PyFloat_Check(t): + t = t.__int__() +- return PyInt_AsUnsignedLongMask(t) ++ return PyLong_AsUnsignedLongMask(t) + + + cdef _pack_stat(stat_value): +@@ -812,13 +812,13 @@ cdef _pack_stat(stat_value): + cdef char result[6*4] # 6 long ints + cdef int *aliased + aliased = result +- aliased[0] = htonl(PyInt_AsUnsignedLongMask(stat_value.st_size)) ++ aliased[0] = htonl(PyLong_AsUnsignedLongMask(stat_value.st_size)) + # mtime and ctime will often be floats but get converted to PyInt within + aliased[1] = htonl(_time_to_unsigned(stat_value.st_mtime)) + aliased[2] = htonl(_time_to_unsigned(stat_value.st_ctime)) +- aliased[3] = htonl(PyInt_AsUnsignedLongMask(stat_value.st_dev)) +- aliased[4] = htonl(PyInt_AsUnsignedLongMask(stat_value.st_ino)) +- aliased[5] = htonl(PyInt_AsUnsignedLongMask(stat_value.st_mode)) ++ aliased[3] = htonl(PyLong_AsUnsignedLongMask(stat_value.st_dev)) ++ aliased[4] = htonl(PyLong_AsUnsignedLongMask(stat_value.st_ino)) ++ aliased[5] = htonl(PyLong_AsUnsignedLongMask(stat_value.st_mode)) + packed = PyBytes_FromStringAndSize(result, 6*4) + return _encode(packed)[:-1] +