Initial import of Avery Pennarun's redo implementation.

redo is a competitor to the long-lived, but sadly imperfect, make
program. Unlike other such competitors, redo captures the essential
simplicity and flexibility of make, while avoiding its flaws. It manages
to do this while being simultaneously simpler than make, more flexible
than make, and more powerful than make, and without sacrificing
performance -- a rare combination of features.

The original design for redo comes from Daniel J. Bernstein. This
from-scratch implementation of redo is based on that design.
This commit is contained in:
schmonz 2019-07-20 21:17:11 +00:00
parent 73f2012528
commit 200083e41d
7 changed files with 168 additions and 0 deletions

View file

@ -0,0 +1,9 @@
redo is a competitor to the long-lived, but sadly imperfect, make
program. Unlike other such competitors, redo captures the essential
simplicity and flexibility of make, while avoiding its flaws. It manages
to do this while being simultaneously simpler than make, more flexible
than make, and more powerful than make, and without sacrificing
performance -- a rare combination of features.
The original design for redo comes from Daniel J. Bernstein. This
from-scratch implementation of redo is based on that design.

View file

@ -0,0 +1,29 @@
# $NetBSD: Makefile,v 1.1 2019/07/20 21:17:11 schmonz Exp $
DISTNAME= redo-0.41
PKGNAME= apenwarr-${DISTNAME}
CATEGORIES= devel
MASTER_SITES= -https://codeload.github.com/apenwarr/redo/tar.gz/${DISTNAME}
MAINTAINER= schmonz@NetBSD.org
HOMEPAGE= https://github.com/apenwarr/redo/
COMMENT= Python implementation of DJB's redo build tool
LICENSE= apache-2.0
CONFLICTS+= jdebp-redo-[0-9]*
PYTHON_VERSIONS_ACCEPTED= 27
BUILD_DEPENDS+= ${PYPKGPREFIX}-beautifulsoup-[0-9]*:../../www/py-beautifulsoup
BUILD_DEPENDS+= ${PYPKGPREFIX}-markdown-[0-9]*:../../textproc/py-markdown
DEPENDS+= dash-[0-9]*:../../shells/dash
DEPENDS+= ${PYPKGPREFIX}-setproctitle-[0-9]*:../../sysutils/py-setproctitle
DEPENDS+= ${PYPKGPREFIX}-sqlite3-[0-9]*:../../databases/py-sqlite3
WRKSRC= ${WRKDIR}/redo-${DISTNAME}
INSTALL_ENV+= MANDIR=${DESTDIR}${PREFIX}/${PKGMANDIR}
.include "../../lang/python/application.mk"
.include "../../mk/bsd.pkg.mk"

77
devel/apenwarr-redo/PLIST Normal file
View file

@ -0,0 +1,77 @@
@comment $NetBSD: PLIST,v 1.1 2019/07/20 21:17:11 schmonz Exp $
bin/redo
bin/redo-always
bin/redo-ifchange
bin/redo-ifcreate
bin/redo-log
bin/redo-ood
bin/redo-sh
bin/redo-sources
bin/redo-stamp
bin/redo-targets
bin/redo-unlocked
bin/redo-whichdo
lib/redo/__init__.py
lib/redo/__init__.pyc
lib/redo/atoi.py
lib/redo/atoi.pyc
lib/redo/builder.py
lib/redo/builder.pyc
lib/redo/cmd_always.py
lib/redo/cmd_always.pyc
lib/redo/cmd_ifchange.py
lib/redo/cmd_ifchange.pyc
lib/redo/cmd_ifcreate.py
lib/redo/cmd_ifcreate.pyc
lib/redo/cmd_log.py
lib/redo/cmd_log.pyc
lib/redo/cmd_ood.py
lib/redo/cmd_ood.pyc
lib/redo/cmd_redo.py
lib/redo/cmd_redo.pyc
lib/redo/cmd_sources.py
lib/redo/cmd_sources.pyc
lib/redo/cmd_stamp.py
lib/redo/cmd_stamp.pyc
lib/redo/cmd_targets.py
lib/redo/cmd_targets.pyc
lib/redo/cmd_unlocked.py
lib/redo/cmd_unlocked.pyc
lib/redo/cmd_whichdo.py
lib/redo/cmd_whichdo.pyc
lib/redo/cycles.py
lib/redo/cycles.pyc
lib/redo/deps.py
lib/redo/deps.pyc
lib/redo/env.py
lib/redo/env.pyc
lib/redo/helpers.py
lib/redo/helpers.pyc
lib/redo/jobserver.py
lib/redo/jobserver.pyc
lib/redo/logs.py
lib/redo/logs.pyc
lib/redo/options.py
lib/redo/options.pyc
lib/redo/paths.py
lib/redo/paths.pyc
lib/redo/sh
lib/redo/state.py
lib/redo/state.pyc
lib/redo/title.py
lib/redo/title.pyc
lib/redo/version/__init__.py
lib/redo/version/__init__.pyc
lib/redo/version/_version.py
lib/redo/version/_version.pyc
man/man1/redo-always.1
man/man1/redo-ifchange.1
man/man1/redo-ifcreate.1
man/man1/redo-log.1
man/man1/redo-ood.1
man/man1/redo-sources.1
man/man1/redo-stamp.1
man/man1/redo-targets.1
man/man1/redo-whichdo.1
man/man1/redo.1
share/doc/redo/README.md

View file

@ -0,0 +1,9 @@
$NetBSD: distinfo,v 1.1 2019/07/20 21:17:11 schmonz Exp $
SHA1 (redo-0.41.tar.gz) = 937655c5c4b2f912185f8876d88185bf3d6b7217
RMD160 (redo-0.41.tar.gz) = d3a22ef8ee7fda1b6899af035fb74322970afd9e
SHA512 (redo-0.41.tar.gz) = 94e4414a2f8120e5d4a949461734ed69dc2f39edfb7929d2efff83041ac0b941e037359ccfafcb4eff760608274e32c579df56d58fdb67b13b8a26eb1945b0d0
Size (redo-0.41.tar.gz) = 140167 bytes
SHA1 (patch-do) = 31a4413d57402fbdce1714bf8175c15cd277dcd2
SHA1 (patch-redo_sh.do) = 1b4871c04c9b73039920b4886eadc07e3b286691
SHA1 (patch-t_shelltest.od) = ca86299da6ae30b44a0e10cfe1a6ef30299dd0bc

View file

@ -0,0 +1,15 @@
$NetBSD: patch-do,v 1.1 2019/07/20 21:17:11 schmonz Exp $
Avoid spurious output.
--- do.orig 2019-01-02 19:49:33.000000000 +0000
+++ do
@@ -11,6 +11,8 @@
# redo itself does.
#
+unset CDPATH
+
die() {
echo "$0:" "$@" >&2
exit 42

View file

@ -0,0 +1,15 @@
$NetBSD: patch-redo_sh.do,v 1.1 2019/07/20 21:17:11 schmonz Exp $
Look for pkgsrc-provided dash.
--- redo/sh.do.orig 2019-01-02 19:49:33.000000000 +0000
+++ redo/sh.do
@@ -11,7 +11,7 @@ WARN=
# powerful ones. We want weaker shells to take precedence, as long as they
# pass the tests, because weaker shells are more likely to point out when you
# use some non-portable feature.
-for sh in dash /usr/xpg4/bin/sh ash posh \
+for sh in ${PREFIX}/bin/dash /usr/xpg4/bin/sh ash posh \
lksh mksh ksh ksh88 ksh93 pdksh \
zsh bash busybox /bin/sh; do
printf " %-22s" "$sh..."

View file

@ -0,0 +1,14 @@
$NetBSD: patch-t_shelltest.od,v 1.1 2019/07/20 21:17:11 schmonz Exp $
Avoid spurious output.
--- t/shelltest.od.orig 2019-01-02 19:49:33.000000000 +0000
+++ t/shelltest.od
@@ -14,6 +14,7 @@
#
exec >&2
set +e
+unset CDPATH
: ${SHELLTEST_QUIET:=}