![]() ![]() | ![]() |
sysutils/bup: Update to 0.33.2 Upstream NEWS less some bugfixes and minor improvements: Notable changes in 0.33 since 0.32 Python 3 is now required, in particular 3.7 or newer. The version of Python is no longer determined by the value of PYTHON during ./configure. It is now determined by the version of python-config selected during configuration. The BUP_PYTHON_CONFIG environment variable can be set during configuration to select a particular executable (e.g. BUP_PYTHON_CONFIG=python3.9-config ./configure). See the README for further details. The bup executable is now a binary rather than a Python script. Practically speaking, this means that the Python version is determined by the libpython that the executable is linked against (selected via python-config), and it means that bup will show up as "bup" in process listings rather than a python invocation. The output of bup ls for multiple paths includes each path before its contents, more closely matching the system ls. The bup ftp ls command should now respect the working directory (set by cd), and that directory has been added to the prompt. The index-cache is no longer included in the bup midx --dir default. Performance may have improved after the relocation of a number of operations from Python to C, and a number of improvements to the VFS. Bugs Bup should now respect the current umask, directory sgid bit, etc. when creating new files (e.g. new packfiles). Previously, it would create them via mkstemp, which would cause them to be readable only by the current user. Bup should now be able to handle repositories containing signed commits. bup tag has been changed to rely on git update-ref instead of writing the (loose) refs directly so that it can handle packed refs correctly. bup save should be more careful about noting an error and skipping paths whose type (link, regular file, ...) has changed since indexing. There should no longer be a narrow window where save could store conflicting symlink targets or conflicting sizes (in the metadata record and the packfile symlink blob) for a path if the filesystem changed at just the wrong time during a save. bup fuse should no longer become unusable after an unfinished read of commits associated with tags. The underlying VFS issue may have affected other commands too. Bup's packfile names should now match git's. Previously bup computed the SHA1 from just the sorted object list (cf. git-index-pack(1)), but git appears to include the entire pack file in the hash. Passing idx files to bup midx along with --dir should now work correctly. Resource usage (e.g. memory) may have improved, given a number of changes intended to make bup release resources more carefully and sooner. Build and install The build process should now work on systems where make isn't GNU Make (the Makefile automatically redirects to GNUmakefile). Thanks to (at least) Abdel Said, Arthur Ward, Bas Stottelaar, Brian Minton, Greg Troxel, Johannes Berg, Mark Hewitt, Muh Muhten, and Rob Browning
# $NetBSD: Makefile,v 1.63 2023/12/09 01:46:30 gdt Exp $ DISTNAME= bup-0.33.2 CATEGORIES= sysutils MASTER_SITES= ${MASTER_SITE_GITHUB:=bup/} # bup has two problems that make packaging difficult. One is that # building man pages requires non-portable tools (pandoc). The other # is that it is hosted on github, which makes hosting tarballs # difficult. The combination of this leads to having a branch "man" # in bup's git which has autogenerated man pages. The third problem # is that github.mk assumes that there is one distfile. # (Note to future updating self) We would like to fetch the following files, e.g.: # https://github.com/bup/bup/archive/0.30.tar.gz # https://github.com/bup/bup/archive/28876cde4a3dac518e773860aa7969c106f5390d.tar.gz # Upstream should have a tag, but doesn't. # EXTRACT_SUFX default value is set too late, so using it in SITES.* fails. EXTRACT_SUFX= .tar.gz MAN_TAG= a9757d6fe3509130622a636d35e92049f9e20fce MAN_UNPACK= bup-${MAN_TAG} MAN_DISTFILE= bup-man-${MAN_TAG}${EXTRACT_SUFX} SITES.${MAN_DISTFILE}= -${MASTER_SITE_GITHUB:=bup/bup/archive/}${MAN_TAG}${EXTRACT_SUFX} # Upstream provides html, but we choose not to include it in the package. #HTML_TAG= 66eccb7eb49575d006d193276018d9551ac5b4d4 DISTFILES= ${DEFAULT_DISTFILES} ${MAN_DISTFILE} MAINTAINER= gdt@NetBSD.org HOMEPAGE= https://github.com/bup/bup COMMENT= Highly efficient file backup system based on the git packfile format LICENSE= gnu-gpl-v2 USE_LANGUAGES= c USE_TOOLS+= bash gmake perl:run HAS_CONFIGURE= yes # On macOS 10.13, building bup fails with defaults but builds with # USE_CWRAPPERS=no. The error is # Looking for cpp (/path/to/pkgsrc/sysutils/bup/work/.cwrapper/bin/cpp) (can't run cpp as a pipeline) DEPENDS+= par2-[0-9]*:../../archivers/par2 DEPENDS+= ${PYPKGPREFIX}-tornado-[0-9]*:../../www/py-tornado DEPENDS+= git-base-[0-9]*:../../devel/git-base TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test TEST_DEPENDS+= rsync-[0-9]*:../../net/rsync PYTHON_VERSIONS_INCOMPATIBLE= 27 # py-tornado DIST_MANPAGES= ${WRKDIR}/${MAN_UNPACK} # Note that tests 1) will fail on a fs mounted noatime and 2) need a # lot of space, perhaps 1 GB. TEST_TARGET= test TEST_ENV+= TZ=UTC # bup's configure is buggy and ends up with a make->make symlink. # Whack it to something sensible. Reported upstream 20221204. # # bup's Makefile is buggy in that there is no install target. Whack # Makefile from GNUmakefile so that the install target will be run. # Reported upstream 20221204. post-configure: cd ${WRKSRC}/config/bin && rm -f make && ln -s ${TOOLS_PATH.gmake} make cd ${WRKSRC} && cp -pf GNUmakefile Makefile MAKE_FLAGS+= PREFIX=${PREFIX} MAKE_FLAGS+= PYTHON=${PYTHONBIN} MAKE_FLAGS+= MANDIR=${DESTDIR}${PREFIX}/${PKGMANDIR} # Even if converters/pandoc is installed, pretend as if it weren't. MAKE_FLAGS+= PANDOC= REPLACE_BASH+= lib/cmd/bup-import-rdiff-backup REPLACE_BASH+= dev/checksum REPLACE_BASH+= dev/compare-trees REPLACE_BASH+= dev/configure-sampledata REPLACE_BASH+= dev/force-delete REPLACE_BASH+= dev/git-cat-tree REPLACE_BASH+= dev/perf-glance REPLACE_BASH+= dev/prep-for-debianish-build REPLACE_BASH+= dev/prep-for-macos-build REPLACE_BASH+= dev/refresh REPLACE_BASH+= dev/sync-tree REPLACE_BASH+= dev/system-info REPLACE_BASH+= dev/update-checkout-info REPLACE_BASH+= dev/update-doc-branches REPLACE_BASH+= dev/validate-python REPLACE_BASH+= pylint REPLACE_BASH+= test/ext/test-cat-file REPLACE_BASH+= test/ext/test-command-without-init-fails REPLACE_BASH+= test/ext/test-comparative-split-join REPLACE_BASH+= test/ext/test-compression REPLACE_BASH+= test/ext/test-drecurse REPLACE_BASH+= test/ext/test-fsck REPLACE_BASH+= test/ext/test-fuse REPLACE_BASH+= test/ext/test-gc REPLACE_BASH+= test/ext/test-help REPLACE_BASH+= test/ext/test-import-duplicity REPLACE_BASH+= test/ext/test-import-rdiff-backup REPLACE_BASH+= test/ext/test-index REPLACE_BASH+= test/ext/test-index-check-device REPLACE_BASH+= test/ext/test-index-clear REPLACE_BASH+= test/ext/test-index-save-type-change REPLACE_BASH+= test/ext/test-list-idx REPLACE_BASH+= test/ext/test-ls REPLACE_BASH+= test/ext/test-ls-remote REPLACE_BASH+= test/ext/test-main REPLACE_BASH+= test/ext/test-meta REPLACE_BASH+= test/ext/test-misc REPLACE_BASH+= test/ext/test-on REPLACE_BASH+= test/ext/test-packsizelimit REPLACE_BASH+= test/ext/test-redundant-saves REPLACE_BASH+= test/ext/test-release-archive REPLACE_BASH+= test/ext/test-restore-map-owner REPLACE_BASH+= test/ext/test-restore-single-file REPLACE_BASH+= test/ext/test-rm REPLACE_BASH+= test/ext/test-rm-between-index-and-save REPLACE_BASH+= test/ext/test-save-creates-no-unrefs REPLACE_BASH+= test/ext/test-save-data-race REPLACE_BASH+= test/ext/test-save-errors REPLACE_BASH+= test/ext/test-save-restore REPLACE_BASH+= test/ext/test-save-restore-excludes REPLACE_BASH+= test/ext/test-save-smaller REPLACE_BASH+= test/ext/test-save-strip-graft REPLACE_BASH+= test/ext/test-save-symlink-race REPLACE_BASH+= test/ext/test-save-with-valid-parent REPLACE_BASH+= test/ext/test-sparse-files REPLACE_BASH+= test/ext/test-split-join REPLACE_BASH+= test/ext/test-tz REPLACE_BASH+= test/ext/test-web REPLACE_BASH+= test/ext/test-xdev REPLACE_BASH+= .sh DOCDIR= share/doc/${PKGBASE} INSTALLATION_DIRS+= ${PKGMANDIR}/man1 ${DOCDIR} post-install: ${INSTALL_DATA} ${DIST_MANPAGES}/*.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 ${INSTALL_DATA} ${WRKSRC}/DESIGN ${DESTDIR}${PREFIX}/${DOCDIR} ${INSTALL_DATA} ${WRKSRC}/README ${DESTDIR}${PREFIX}/${DOCDIR} .include "options.mk" # \todo Investigate "bup ftp" crash with NetBSD editline and resolve. .include "../../devel/readline/buildlink3.mk" .include "../../lang/python/application.mk" .include "../../mk/bsd.pkg.mk"