aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andree <mandree@FreeBSD.org>2022-08-13 21:58:49 +0000
committerMatthias Andree <mandree@FreeBSD.org>2022-09-03 14:33:11 +0000
commit223e50238c56ef71b07e048d6aadfcf6dab9e03a (patch)
tree078ab6255494a8a4c52efb1d6470b21004faade7
parent986872f049c509f03fb53bc074914baccc65ba9f (diff)
downloadports-223e50238c56ef71b07e048d6aadfcf6dab9e03a.tar.gz
ports-223e50238c56ef71b07e048d6aadfcf6dab9e03a.zip
archivers/py-borgbackup: update to 1.2.2+man+test, preserve 1.1
Take maintainership, because original maintainer asked for a new maintainer, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264816#c10 ¡Muchas gracias, José! Thanks for maintaining the port thus far. If there is a potential maintainer who is using BorgBackup at scale, I will be happy to pass maintainership on. Update to v1.2.2 [1, was for 1.2.1], preserve the earlier 1.1.18 version (also with manpages and self-tests added, hence bumping PORTREVISION) as py-borgbackup11, and document this in UPDATING. ChangeLog: https://www.borgbackup.org/releases/borg-1.2.html Add self-tests [1] to both 1.1 and 1.2, including - a smoke test in post-install in order to always run it - "make test" support (requires network access for tox) PR: 264816 [1] Reported by: rob2g2-freebsd@bitbert.com [1] Add manual pages to both 1.1 and 1.2. [2] PR: 263269 [2] Reported by: courtney.hicks1@icloud.com [2]
-rw-r--r--UPDATING15
-rw-r--r--archivers/Makefile1
-rw-r--r--archivers/py-borgbackup/Makefile48
-rw-r--r--archivers/py-borgbackup/distinfo6
-rw-r--r--archivers/py-borgbackup/pkg-plist35
-rw-r--r--archivers/py-borgbackup11/Makefile65
-rw-r--r--archivers/py-borgbackup11/distinfo3
-rw-r--r--archivers/py-borgbackup11/pkg-descr11
-rw-r--r--archivers/py-borgbackup11/pkg-message28
-rw-r--r--archivers/py-borgbackup11/pkg-plist33
10 files changed, 233 insertions, 12 deletions
diff --git a/UPDATING b/UPDATING
index 9d3e4718cc98..5f0a3ad039c2 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,8 +5,21 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20220903:
+ AFFECTS: users of archivers/py-borgbackup
+ AUTHOR: mandree@FreeBSD.org
+
+ Borgbackup has been upgraded to version 1.2. For users who you wish to
+ continue using version 1.1, use either of these commands for upgrading:
+
+ With binary packages through pkg:
+ pkg set -o archivers/py-borgbackup:archivers/py-borgbackup11
+ pkg upgrade
+ With portmaster or portupgrade (replace the command accordingly):
+ portmaster -o archivers/py-borgbackup11 archivers/py-borgbackup
+
20220901:
- AFFECTS: user of mail/rainloop-community
+ AFFECTS: users of mail/rainloop-community
AUTHOR: yasu@FreeBSD.org
Since 1.17.0 upstream distributes only one edition "lagacy" under MIT license
diff --git a/archivers/Makefile b/archivers/Makefile
index 39ea16b19713..95dad8fef030 100644
--- a/archivers/Makefile
+++ b/archivers/Makefile
@@ -178,6 +178,7 @@
SUBDIR += pxz
SUBDIR += py-acefile
SUBDIR += py-borgbackup
+ SUBDIR += py-borgbackup11
SUBDIR += py-brotli
SUBDIR += py-brotlicffi
SUBDIR += py-brotlipy
diff --git a/archivers/py-borgbackup/Makefile b/archivers/py-borgbackup/Makefile
index ec020d2659a9..ae58736a81ad 100644
--- a/archivers/py-borgbackup/Makefile
+++ b/archivers/py-borgbackup/Makefile
@@ -1,23 +1,30 @@
PORTNAME= borgbackup
-DISTVERSION= 1.1.18
-PORTREVISION= 1
+DISTVERSION= 1.2.2
CATEGORIES= archivers python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-MAINTAINER= jjuanino@gmail.com
+MAINTAINER= mandree@FreeBSD.org
COMMENT= Deduplicating backup program
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.7:devel/py-setuptools_scm@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.7:devel/py-setuptools_scm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}msgpack>=1.0:devel/py-msgpack@${PY_FLAVOR}
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}
-
-USES= python ssl
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=19.0:devel/py-packaging@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}msgpack>=1.0:devel/py-msgpack@${PY_FLAVOR}
+MAKE_ENV= BORG_OPENSSL_PREFIX=${OPENSSLBASE}
+TEST_DEPENDS= ${RUN_DEPENDS} \
+ ${PYTHON_PKGNAMEPREFIX}tox>3.2:devel/py-tox@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}virtualenv>=0:devel/py-virtualenv@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pkgconfig>=0:devel/py-pkgconfig@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} \
+ fakeroot:security/fakeroot
+USES= pkgconfig python:3.8+ ssl
USE_PYTHON= autoplist distutils
OPTIONS_DEFINE= FUSE
@@ -26,9 +33,34 @@ OPTIONS_DEFAULT= FUSE
FUSE_DESC= Support to mount locally borg backup files
FUSE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}llfuse>0:devel/py-llfuse@${PY_FLAVOR}
+_BORGENV=BORG_PASSPHRASE=secret123 PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR}
post-install:
- ${SETENV} PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR} ${STAGEDIR}${PREFIX}/bin/borg -V
+ ${MKDIR} ${STAGEDIR}${MAN1PREFIX}/share/man/man1/
+ ${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}${MAN1PREFIX}/share/man/man1/
@${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/borg/ -name "*.so" \
-exec ${STRIP_CMD} {} \;
+ @${ECHO_MSG} "----> running borg smoke tests"
+ ${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:
+ cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${_BORGENV} tox-${PYTHON_VER} -e ${PY_FLAVOR} -vv
.include <bsd.port.mk>
diff --git a/archivers/py-borgbackup/distinfo b/archivers/py-borgbackup/distinfo
index 7c1661cd8c31..78aa9228ee76 100644
--- a/archivers/py-borgbackup/distinfo
+++ b/archivers/py-borgbackup/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1654597105
-SHA256 (borgbackup-1.1.18.tar.gz) = 5cba5fe7db4d08944b467ec11efc017687a512b0d98ccf0ad1aa9c4329665275
-SIZE (borgbackup-1.1.18.tar.gz) = 3854385
+TIMESTAMP = 1662211963
+SHA256 (borgbackup-1.2.2.tar.gz) = d730687443f1beb602b1d72bae36318f6f9654818fcdc50458540ec579e57260
+SIZE (borgbackup-1.2.2.tar.gz) = 4042984
diff --git a/archivers/py-borgbackup/pkg-plist b/archivers/py-borgbackup/pkg-plist
new file mode 100644
index 000000000000..8582338afb36
--- /dev/null
+++ b/archivers/py-borgbackup/pkg-plist
@@ -0,0 +1,35 @@
+share/man/man1/borg-benchmark-crud.1.gz
+share/man/man1/borg-benchmark.1.gz
+share/man/man1/borg-break-lock.1.gz
+share/man/man1/borg-change-passphrase.1.gz
+share/man/man1/borg-check.1.gz
+share/man/man1/borg-common.1.gz
+share/man/man1/borg-compact.1.gz
+share/man/man1/borg-compression.1.gz
+share/man/man1/borg-config.1.gz
+share/man/man1/borg-create.1.gz
+share/man/man1/borg-delete.1.gz
+share/man/man1/borg-diff.1.gz
+share/man/man1/borg-export-tar.1.gz
+share/man/man1/borg-extract.1.gz
+share/man/man1/borg-import-tar.1.gz
+share/man/man1/borg-info.1.gz
+share/man/man1/borg-init.1.gz
+share/man/man1/borg-key-change-passphrase.1.gz
+share/man/man1/borg-key-export.1.gz
+share/man/man1/borg-key-import.1.gz
+share/man/man1/borg-key-migrate-to-repokey.1.gz
+share/man/man1/borg-key.1.gz
+share/man/man1/borg-list.1.gz
+share/man/man1/borg-mount.1.gz
+share/man/man1/borg-patterns.1.gz
+share/man/man1/borg-placeholders.1.gz
+share/man/man1/borg-prune.1.gz
+share/man/man1/borg-recreate.1.gz
+share/man/man1/borg-rename.1.gz
+share/man/man1/borg-serve.1.gz
+share/man/man1/borg-umount.1.gz
+share/man/man1/borg-upgrade.1.gz
+share/man/man1/borg-with-lock.1.gz
+share/man/man1/borg.1.gz
+share/man/man1/borgfs.1.gz
diff --git a/archivers/py-borgbackup11/Makefile b/archivers/py-borgbackup11/Makefile
new file mode 100644
index 000000000000..ec282fca19d4
--- /dev/null
+++ b/archivers/py-borgbackup11/Makefile
@@ -0,0 +1,65 @@
+PORTNAME= borgbackup
+DISTVERSION= 1.1.18
+PORTREVISION= 2
+CATEGORIES= archivers python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX= 11
+
+MAINTAINER= mandree@FreeBSD.org
+COMMENT= Deduplicating backup program
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools_scm>=1.7:devel/py-setuptools_scm@${PY_FLAVOR}
+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}
+MAKE_ENV= BORG_OPENSSL_PREFIX=${OPENSSLBASE}
+TEST_DEPENDS= ${RUN_DEPENDS} \
+ ${PYTHON_PKGNAMEPREFIX}tox>3.2:devel/py-tox@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}virtualenv>=0:devel/py-virtualenv@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pkgconfig>=0:devel/py-pkgconfig@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} \
+ fakeroot:security/fakeroot
+USES= pkgconfig python ssl
+USE_PYTHON= autoplist distutils
+
+OPTIONS_DEFINE= FUSE
+OPTIONS_DEFAULT= FUSE
+
+FUSE_DESC= Support to mount locally borg backup files
+FUSE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}llfuse>0:devel/py-llfuse@${PY_FLAVOR}
+
+_BORGENV=BORG_PASSPHRASE=secret123 PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR}
+post-install:
+ ${MKDIR} ${STAGEDIR}${MAN1PREFIX}/share/man/man1/
+ ${INSTALL_MAN} ${WRKSRC}/docs/man/* ${STAGEDIR}${MAN1PREFIX}/share/man/man1/
+ @${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/borg/ -name "*.so" \
+ -exec ${STRIP_CMD} {} \;
+ @${ECHO_MSG} "----> running borg smoke tests"
+ ${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 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:
+ cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${_BORGENV} tox-${PYTHON_VER} -e ${PY_FLAVOR} -vv
+
+.include <bsd.port.mk>
diff --git a/archivers/py-borgbackup11/distinfo b/archivers/py-borgbackup11/distinfo
new file mode 100644
index 000000000000..7c1661cd8c31
--- /dev/null
+++ b/archivers/py-borgbackup11/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1654597105
+SHA256 (borgbackup-1.1.18.tar.gz) = 5cba5fe7db4d08944b467ec11efc017687a512b0d98ccf0ad1aa9c4329665275
+SIZE (borgbackup-1.1.18.tar.gz) = 3854385
diff --git a/archivers/py-borgbackup11/pkg-descr b/archivers/py-borgbackup11/pkg-descr
new file mode 100644
index 000000000000..4bc8ec6bfb4d
--- /dev/null
+++ b/archivers/py-borgbackup11/pkg-descr
@@ -0,0 +1,11 @@
+[excerpt from borgbackup web site]
+
+BorgBackup (short: Borg) is a deduplicating backup program. Optionally, it
+supports compression and authenticated encryption.
+
+The main goal of Borg is to provide an efficient and secure way to backup data.
+The data deduplication technique used makes Borg suitable for daily backups
+since only changes are stored. The authenticated encryption technique makes it
+suitable for backups to not fully trusted targets.
+
+WWW: https://pypi.org/project/borgbackup/
diff --git a/archivers/py-borgbackup11/pkg-message b/archivers/py-borgbackup11/pkg-message
new file mode 100644
index 000000000000..8fcc0ba5f821
--- /dev/null
+++ b/archivers/py-borgbackup11/pkg-message
@@ -0,0 +1,28 @@
+[
+{ type: install
+ message: <<EOM
+In order to mount locally a remote archive or an entire repository as a FUSE
+filesystem, it is required to load fusefs module:
+
+# kldload fusefs
+
+To load the module at boot time, add
+
+fusefs_load="YES"
+
+to /boot/loader.conf by running:
+
+sysrc fusefs_load="YES"
+
+Also, if you plan to mount borg repositories as non root user, you need to run
+
+# sysctl vfs.usermount=1
+
+and add the line
+
+vfs.usermount=1
+
+to /etc/sysctl.conf to ensure the setting is loaded at boot time.
+EOM
+}
+]
diff --git a/archivers/py-borgbackup11/pkg-plist b/archivers/py-borgbackup11/pkg-plist
new file mode 100644
index 000000000000..a451c9b3f52b
--- /dev/null
+++ b/archivers/py-borgbackup11/pkg-plist
@@ -0,0 +1,33 @@
+share/man/man1/borg-benchmark-crud.1.gz
+share/man/man1/borg-benchmark.1.gz
+share/man/man1/borg-break-lock.1.gz
+share/man/man1/borg-change-passphrase.1.gz
+share/man/man1/borg-check.1.gz
+share/man/man1/borg-common.1.gz
+share/man/man1/borg-compression.1.gz
+share/man/man1/borg-config.1.gz
+share/man/man1/borg-create.1.gz
+share/man/man1/borg-delete.1.gz
+share/man/man1/borg-diff.1.gz
+share/man/man1/borg-export-tar.1.gz
+share/man/man1/borg-extract.1.gz
+share/man/man1/borg-info.1.gz
+share/man/man1/borg-init.1.gz
+share/man/man1/borg-key-change-passphrase.1.gz
+share/man/man1/borg-key-export.1.gz
+share/man/man1/borg-key-import.1.gz
+share/man/man1/borg-key-migrate-to-repokey.1.gz
+share/man/man1/borg-key.1.gz
+share/man/man1/borg-list.1.gz
+share/man/man1/borg-mount.1.gz
+share/man/man1/borg-patterns.1.gz
+share/man/man1/borg-placeholders.1.gz
+share/man/man1/borg-prune.1.gz
+share/man/man1/borg-recreate.1.gz
+share/man/man1/borg-rename.1.gz
+share/man/man1/borg-serve.1.gz
+share/man/man1/borg-umount.1.gz
+share/man/man1/borg-upgrade.1.gz
+share/man/man1/borg-with-lock.1.gz
+share/man/man1/borg.1.gz
+share/man/man1/borgfs.1.gz