ports/127911: New port: sysutils/slack - Simple configuration management utility

Steve Atwell satwell at disjoint.net
Tue Oct 7 07:40:01 UTC 2008


>Number:         127911
>Category:       ports
>Synopsis:       New port: sysutils/slack - Simple configuration management utility
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 07 07:40:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Steve Atwell
>Release:        FreeBSD 7.0-RELEASE i386
>Organization:
>Environment:
System: FreeBSD freebsd7-dev.disjoint.net 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root at logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386



>Description:
New port, sysutils/slack.  Description:

slack is an evolution from the usual "put files in some central directory"
that is fairly common practice. It's descended from an earlier system its
author also wrote, called "subsets", and uses a multi-stage rsync to fix
some of the problems he had there.

Basically, it's a glorified wrapper around rsync.

WWW: http://code.google.com/p/slack/


>How-To-Repeat:

>Fix:


--- slack.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	slack
#	slack/Makefile
#	slack/distinfo
#	slack/files
#	slack/files/patch-installpaths
#	slack/pkg-descr
#	slack/pkg-plist
#
echo c - slack
mkdir -p slack > /dev/null 2>&1
echo x - slack/Makefile
sed 's/^X//' >slack/Makefile << 'END-of-slack/Makefile'
X# New ports collection makefile for:   slack
X# Date created:                        3 October 2008
X# Whom:                                Steve Atwell
X#
X# $FreeBSD$
X#
X
XPORTNAME=	slack
XPORTVERSION=	0.15.2
XCATEGORIES=	sysutils
XMASTER_SITES=	${MASTER_SITE_GOOGLE_CODE} \
X		http://www.sundell.net/~alan/projects/slack/
X
XMAINTAINER=	satwell at disjoint.net
XCOMMENT=	Configuration management system designed to appeal to lazy admins
X
XRUN_DEPENDS=	rsync:${PORTSDIR}/net/rsync
X
XUSE_PERL5_RUN=	5.6.0+
XUSE_GMAKE=	yes
X
XMAN1=		slack-diff.1
XMAN5=		slack.conf.5
XMAN8=		slack.8
X
XPORTDOCS=	ChangeLog COPYING CREDITS FAQ GPL README TODO \
X		fixfiles-and-dirs.txt slack-intro
X
XMAKE_ARGS=	prefix=${PREFIX} exec_prefix=${PREFIX} \
X		libexecdir=${PREFIX}/libexec mandir=${PREFIX}/man \
X		localstatedir=/var
X
Xpost-build:
X	@for f in ${WRKSRC}/src/build/*; do \
X		${REINPLACE_CMD} -e '1s,^#!.*perl,#!${PERL},' $$f; \
X	done
X
Xpost-install:
X	@${INSTALL_DATA} ${WRKSRC}/src/slack.conf ${PREFIX}/etc/slack.conf.sample
X.if !defined(NOPORTDOCS)
X	@${MKDIR} ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/ChangeLog ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/COPYING ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/CREDITS ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/FAQ ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/GPL ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/TODO ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/doc/fixfiles-and-dirs.txt ${DOCSDIR}
X	@${INSTALL_DATA} ${WRKSRC}/doc/slack-intro ${DOCSDIR}
X.endif
X
X.include <bsd.port.mk>
END-of-slack/Makefile
echo x - slack/distinfo
sed 's/^X//' >slack/distinfo << 'END-of-slack/distinfo'
XMD5 (slack-0.15.2.tar.gz) = 4056df8e7e152a6e4e6730708a86bd25
XSHA256 (slack-0.15.2.tar.gz) = 5c11a6d29035bbb202a5c20c180ae86e8d9fa8ecc89b7f110713d0e0bedf21ce
XSIZE (slack-0.15.2.tar.gz) = 51555
END-of-slack/distinfo
echo c - slack/files
mkdir -p slack/files > /dev/null 2>&1
echo x - slack/files/patch-installpaths
sed 's/^X//' >slack/files/patch-installpaths << 'END-of-slack/files/patch-installpaths'
Xdiff -uNr ./Makefile.common ../slack-0.15.2/Makefile.common
X--- ./Makefile.common	2008-04-20 18:06:15.000000000 -0700
X+++ ../slack-0.15.2/Makefile.common	2008-10-05 09:04:50.000000000 -0700
X@@ -6,7 +6,7 @@
X 
X DESTDIR		=
X 
X-prefix		= /
X+prefix		=
X exec_prefix	= /usr
X sysconfdir	= ${prefix}/etc
X mandir		= ${exec_prefix}/share/man
Xdiff -uNr ./src/Makefile ../slack-0.15.2/src/Makefile
X--- ./src/Makefile	2008-04-20 18:06:15.000000000 -0700
X+++ ../slack-0.15.2/src/Makefile	2008-10-06 22:48:40.000000000 -0700
X@@ -2,35 +2,53 @@
X
X include ../Makefile.common
X 
X+BUILDDIR = build
X+
X BACKENDS = slack-getroles slack-installfiles slack-runscript slack-sync slack-stage slack-rolediff
X 
X-all:
X+TARGETS = $(addprefix $(BUILDDIR)/,$(BACKENDS)) \
X+	  $(BUILDDIR)/Slack.pm \
X+	  $(BUILDDIR)/slack \
X+	  $(BUILDDIR)/slack-diff \
X+	  $(BUILDDIR)/slack.conf
X+
X+all: $(TARGETS)
X+
X+$(BUILDDIR)/%: %
X+	mkdir -p $(BUILDDIR)
X+	sed -e 's#@SYSCONFDIR@#$(sysconfdir)#g' \
X+	-e 's#@SLACK_LIBDIR@#$(slack_libdir)#g' \
X+	-e 's#@SLACK_LIBEXECDIR@#$(slack_libexecdir)#g' \
X+	-e 's#@SLACK_LOCALSTATEDIR@#$(slack_localstatedir)#g' \
X+	-e 's#@SLACK_LOCALCACHEDIR@#$(slack_localcachedir)#g' $< > $@
X 
X install: install-bin install-conf install-lib install-man
X 
X install-bin: all
X 	$(MKDIR) $(DESTDIR)$(sbindir)
X-	$(INSTALL) slack $(DESTDIR)$(sbindir)
X+	$(INSTALL) $(BUILDDIR)/slack $(DESTDIR)$(sbindir)
X 	$(MKDIR) $(DESTDIR)$(bindir)
X-	$(INSTALL) slack-diff $(DESTDIR)$(bindir)
X+	$(INSTALL) $(BUILDDIR)/slack-diff $(DESTDIR)$(bindir)
X 	$(MKDIR) $(DESTDIR)$(slack_libexecdir)
X 	@set -ex;\
X 	for i in $(BACKENDS); do \
X-	$(INSTALL) $$i $(DESTDIR)$(slack_libexecdir); done
X+	$(INSTALL) $(BUILDDIR)/$$i $(DESTDIR)$(slack_libexecdir); done
X 	$(INSTALL) -d -m $(PRIVDIRMODE) $(DESTDIR)$(slack_localstatedir)
X 	$(INSTALL) -d -m $(PRIVDIRMODE) $(DESTDIR)$(slack_localcachedir)
X 
X install-conf: all
X 	$(MKDIR) $(DESTDIR)$(sysconfdir)
X-	$(INSTALL) -m 0644 slack.conf $(DESTDIR)$(sysconfdir)
X+	test -f $(DESTDIR)$(sysconfdir)/slack.conf || \
X+	$(INSTALL) -m 0644 $(BUILDDIR)/slack.conf $(DESTDIR)$(sysconfdir)
X 
X install-lib: all
X 	$(MKDIR) $(DESTDIR)$(slack_libdir)
X-	$(INSTALL) -m 0644 Slack.pm $(DESTDIR)$(slack_libdir)
X+	$(INSTALL) -m 0644 $(BUILDDIR)/Slack.pm $(DESTDIR)$(slack_libdir)
X 
X install-man: all
X 
X clean:
X+	rm -rf $(BUILDDIR)
X 
X realclean: clean
X 
Xdiff -uNr ./src/slack ../slack-0.15.2/src/slack
X--- ./src/slack	2008-04-20 18:06:15.000000000 -0700
X+++ ../slack-0.15.2/src/slack	2008-10-06 20:38:16.000000000 -0700
X@@ -19,8 +19,8 @@
X use File::Find;
X use POSIX; # for strftime
X 
X-use constant LIBEXEC_DIR => '/usr/lib/slack';
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIBEXEC_DIR => '@SLACK_LIBEXECDIR@';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
Xdiff -uNr ./src/slack.conf ../slack-0.15.2/src/slack.conf
X--- ./src/slack.conf	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/slack.conf	2008-10-06 20:37:03.000000000 -0700
X@@ -3,7 +3,7 @@
X # See slack.conf(5)
X ROLE_LIST=etc/roles.conf
X SOURCE=slack-master::slack
X-CACHE=/var/cache/slack
X-STAGE=/var/lib/slack/stage
X+CACHE=@SLACK_LOCALCACHEDIR@
X+STAGE=@SLACK_LOCALSTATEDIR@/stage
X ROOT=/
X-BACKUP_DIR=/var/lib/slack/backups
X+BACKUP_DIR=@SLACK_LOCALSTATEDIR@/backups
Xdiff -uNr ./src/slack-getroles ../slack-0.15.2/src/slack-getroles
X--- ./src/slack-getroles	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/slack-getroles	2008-10-06 20:37:17.000000000 -0700
X@@ -17,7 +17,7 @@
X 
X use File::Path;
X 
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
Xdiff -uNr ./src/slack-installfiles ../slack-0.15.2/src/slack-installfiles
X--- ./src/slack-installfiles	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/slack-installfiles	2008-10-06 20:37:26.000000000 -0700
X@@ -17,7 +17,7 @@
X 
X use File::Path;
X 
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
Xdiff -uNr ./src/Slack.pm ../slack-0.15.2/src/Slack.pm
X--- ./src/Slack.pm	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/Slack.pm	2008-10-06 20:37:38.000000000 -0700
X@@ -19,7 +19,7 @@
X @EXPORT    = qw();
X @EXPORT_OK = qw();
X 
X-$DEFAULT_CONFIG_FILE = '/etc/slack.conf';
X+$DEFAULT_CONFIG_FILE = '@SYSCONFDIR@/slack.conf';
X 
X my $term;
X 
Xdiff -uNr ./src/slack-rolediff ../slack-0.15.2/src/slack-rolediff
X--- ./src/slack-rolediff	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/slack-rolediff	2008-10-06 20:37:45.000000000 -0700
X@@ -18,7 +18,7 @@
X use File::Path;
X use File::Find;
X 
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
Xdiff -uNr ./src/slack-runscript ../slack-0.15.2/src/slack-runscript
X--- ./src/slack-runscript	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/slack-runscript	2008-10-06 20:37:52.000000000 -0700
X@@ -17,7 +17,7 @@
X use File::Path;
X use File::Find;
X 
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
Xdiff -uNr ./src/slack-stage ../slack-0.15.2/src/slack-stage
X--- ./src/slack-stage	2008-04-20 18:06:15.000000000 -0700
X+++ ../slack-0.15.2/src/slack-stage	2008-10-06 20:38:01.000000000 -0700
X@@ -19,7 +19,7 @@
X use File::Path;
X use File::Find;
X 
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
Xdiff -uNr ./src/slack-sync ../slack-0.15.2/src/slack-sync
X--- ./src/slack-sync	2008-04-20 18:06:14.000000000 -0700
X+++ ../slack-0.15.2/src/slack-sync	2008-10-06 20:38:07.000000000 -0700
X@@ -17,7 +17,7 @@
X 
X use File::Path;
X 
X-use constant LIB_DIR => '/usr/lib/slack';
X+use constant LIB_DIR => '@SLACK_LIBDIR@';
X use lib LIB_DIR;
X use Slack;
X 
END-of-slack/files/patch-installpaths
echo x - slack/pkg-descr
sed 's/^X//' >slack/pkg-descr << 'END-of-slack/pkg-descr'
Xslack is an evolution from the usual "put files in some central directory"
Xthat is fairly common practice. It's descended from an earlier system its
Xauthor also wrote, called "subsets", and uses a multi-stage rsync to fix
Xsome of the problems he had there.
X
XBasically, it's a glorified wrapper around rsync.
X
XWWW: http://code.google.com/p/slack/
END-of-slack/pkg-descr
echo x - slack/pkg-plist
sed 's/^X//' >slack/pkg-plist << 'END-of-slack/pkg-plist'
X at unexec if cmp -s %D/etc/slack.conf.sample %D/etc/slack.conf; then rm -f %D/etc/slack.conf; fi
Xetc/slack.conf.sample
X at exec if [ ! -f %D/etc/slack.conf ]; then cp -p %D/%F %B/slack.conf; fi
Xlib/slack/Slack.pm
Xlibexec/slack/slack-getroles
Xlibexec/slack/slack-installfiles
Xlibexec/slack/slack-rolediff
Xlibexec/slack/slack-runscript
Xlibexec/slack/slack-stage
Xlibexec/slack/slack-sync
Xsbin/slack
X at exec install -d -m 0700 /var/lib/slack
X at exec install -d -m 0700 /var/cache/slack
X at unexec rmdir /var/lib/slack 2>/dev/null || true
X at unexec rmdir /var/lib 2>/dev/null || true
X at unexec rmdir /var/cache/slack 2>/dev/null || true
X at unexec rmdir /var/cache 2>/dev/null || true
X at dirrm lib/slack
X at dirrm libexec/slack
END-of-slack/pkg-plist
exit
--- slack.shar ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list