summaryrefslogtreecommitdiff
path: root/sysutils/bup/Makefile
blob: 4f6c717dd28d263e4d0617f3859db3f2498416e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# $NetBSD: Makefile,v 1.58 2022/02/05 09:05:42 adam Exp $

DISTNAME=	bup-0.32
PKGREVISION=	3
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=		2fe35faff1fb9c5e7b0ea357de371ac219f2cc38
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
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

DOCDIR=		${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

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=

USE_TOOLS+=		bash gmake perl:run

CONFIGURE_ENV+=		MAKE=${TOOLS_PATH.gmake}

REPLACE_BASH+=		cmd/import-rdiff-backup-cmd.sh
REPLACE_BASH+=		t/compare-trees
REPLACE_BASH+=		t/configure-sampledata
REPLACE_BASH+=		t/force-delete
REPLACE_BASH+=		t/subtree-hash
REPLACE_BASH+=		t/test-cat-file.sh
REPLACE_BASH+=		t/test-command-without-init-fails.sh
REPLACE_BASH+=		t/test-index-check-device.sh
REPLACE_BASH+=		t/test-meta.sh
REPLACE_BASH+=		t/test-redundant-saves.sh
REPLACE_BASH+=		t/test-restore-single-file.sh
REPLACE_BASH+=		t/test-rm-between-index-and-save.sh
REPLACE_BASH+=		t/test-save-creates-no-unrefs.sh
REPLACE_BASH+=		t/test.sh
REPLACE_BASH+=		wvtest-bup.sh

INSTALLATION_DIRS+=	${PKGMANDIR}/man1 share/doc/${PKGBASE}

post-install:
	${INSTALL_DATA} ${DOCDIR}/*.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
	${INSTALL_DATA} ${WRKSRC}/DESIGN ${DESTDIR}${PREFIX}/share/doc/bup
	${INSTALL_DATA} ${WRKSRC}/README ${DESTDIR}${PREFIX}/share/doc/bup

.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"