diff --git a/archivers/py-borgbackup/Makefile b/archivers/py-borgbackup/Makefile index 66d0c3d0af95..0c077fa11177 100644 --- a/archivers/py-borgbackup/Makefile +++ b/archivers/py-borgbackup/Makefile @@ -1,76 +1,77 @@ PORTNAME= borgbackup DISTVERSION= 1.4.4 +PORTREVISION= 1 CATEGORIES= archivers python MASTER_SITES= https://github.com/borgbackup/borg/releases/download/${DISTVERSION}/ \ PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= mandree@FreeBSD.org COMMENT= Deduplicating backup program WWW= https://pypi.org/project/borgbackup/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE # note that borgbackup pins the msgpack version range per patchlevel version! -_BB_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msgpack>=1.0.3<1.1.3:devel/py-msgpack@${PY_FLAVOR} +_BB_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msgpack>=1.0.3<1.2.1_99:devel/py-msgpack@${PY_FLAVOR} BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pkgconfig>=0:devel/py-pkgconfig@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8:devel/py-setuptools-scm@${PY_FLAVOR} \ ${_BB_DEPENDS} LIB_DEPENDS= liblz4.so:archivers/liblz4 \ libzstd.so:archivers/zstd \ libxxhash.so:devel/xxhash RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=19.0:devel/py-packaging@${PY_FLAVOR} \ ${_BB_DEPENDS} TEST_DEPENDS= ${RUN_DEPENDS} \ ${PYTHON_PKGNAMEPREFIX}tox>=4.19:devel/py-tox@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}virtualenv>=0:devel/py-virtualenv@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} \ fakeroot:security/fakeroot USES= pkgconfig python ssl USE_PYTHON= autoplist cython distutils MAKE_ENV= BORG_OPENSSL_PREFIX=${OPENSSLBASE} OPTIONS_DEFINE= FUSE OPTIONS_DEFAULT= FUSE FUSE_DESC= Support to mount locally borg backup files FUSE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}llfuse>0:filesystems/py-llfuse@${PY_FLAVOR} _BORGHOME=${WRKDIR}/testhome _BORGENV=-i BORG_PASSPHRASE=secret123 PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR} HOME=${_BORGHOME} post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/share/man/man1/ ${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}${PREFIX}/share/man/man1/ ${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/borg/ -name "*.so" \ -exec ${STRIP_CMD} {} \; @${ECHO_MSG} "----> running borg smoke tests" ${MKDIR} ${_BORGHOME} ${SETENV} PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR} ${STAGEDIR}${PREFIX}/bin/borg -V ${RM} -r ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg init --encryption=repokey ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg key export ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg create ${WRKDIR}/borgrepo::test1 ${WRKSRC} ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg create ${WRKDIR}/borgrepo::test2 ${WRKSRC} ${STAGEDIR} ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg check --verify-data ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg info ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg prune --keep-last 1 ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg check --verify-data ${WRKDIR}/borgrepo ${ECHO_CMD} YES \ | ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg check --repair ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg compact --progress ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg check --verify-data ${WRKDIR}/borgrepo ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg extract --dry-run --progress ${WRKDIR}/borgrepo::test2 ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg export-tar ${WRKDIR}/borgrepo::test2 - >/dev/null ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg list ${WRKDIR}/borgrepo # long output - ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg list ${WRKDIR}/borgrepo::test2 | ${GREP} -v ^d ${SETENV} ${_BORGENV} ${STAGEDIR}${PREFIX}/bin/borg info ${WRKDIR}/borgrepo do-test: # work around https://github.com/tox-dev/tox/issues/3602 ${RM} ${WRKSRC}/setup.cfg # the PATH dance works around a strange "pkg-config" file not found error. cd ${WRKSRC} && ${SETENV} ${_BORGENV} PATH=${PATH}:${LOCALBASE}/bin tox-${PYTHON_VER} -e ${PY_FLAVOR} -vv .include diff --git a/archivers/py-borgbackup/files/patch-msgpack b/archivers/py-borgbackup/files/patch-msgpack new file mode 100644 index 000000000000..548ed34cd46d --- /dev/null +++ b/archivers/py-borgbackup/files/patch-msgpack @@ -0,0 +1,25 @@ +Obtained from: https://github.com/borgbackup/borg/commit/2b93c83c179569d9aeb02c6aa387e5312590f505 + https://github.com/borgbackup/borg/commit/8abdd3b8bf065dceecd52d2b22d92b3c407a7c1d + +--- pyproject.toml.orig 2026-03-18 18:57:08 UTC ++++ pyproject.toml +@@ -35,7 +35,7 @@ dependencies = [ + # Please note: + # Using any other msgpack version is not supported by Borg development and + # any feedback related to issues caused by this will be ignored. +- "msgpack >=1.0.3, <=1.1.2", ++ "msgpack >=1.0.3, <=1.2.1", + "packaging", + ] + +--- src/borg/helpers/msgpack.py.orig 2026-03-18 18:57:08 UTC ++++ src/borg/helpers/msgpack.py +@@ -145,7 +145,7 @@ def is_supported_msgpack(): + version_check = os.environ.get('BORG_MSGPACK_VERSION_CHECK', 'yes').strip().lower() + + return version_check == 'no' or ( +- (1, 0, 3) <= msgpack.version[:3] <= (1, 1, 2) and ++ (1, 0, 3) <= msgpack.version[:3] <= (1, 2, 1) and + msgpack.version not in [] + ) +