[PATCH] devel/subversion repository target, fsfs support
Roman Neuhauser
neuhauser at chello.cz
Fri Feb 18 09:16:25 PST 2005
Oops, I did it again. This time, the patch *is* attached.
The attached patch devel/subversion/Makefile adds a "repository" target
and support for fsfs repositories.
If you use the -DWITH_REPOSITORY_CREATION functionality of
devel/subversion but have been missing a possibility of having the
repository created at will as opposed at just the install time, look no
further. :)
I'm not submitting this as a PR yet because I can only test fsfs
repository creation with -DWITH_SVNSERVE_WRAPPER, so please, try it
out if you access subversion through apache/dav or some other funky way.
Also, I would be very thankful if someone who uses the wrapper with
a bdb repository could confirm that everything works with a repository
created with the patch applied (look for the usual commits stuck because
of wrong permissions on files or directories).
Changes:
- SVNFSTYPE variable affects the type of repository that gets created,
defaults to "fsfs"
- the repository target allows for repository creation at any moment
- db/fs-type and db/uuid are excluded from chgrp/chmod like db/DB_CONFIG
--
If you cc me or remove the list(s) completely I'll most likely ignore
your message. see http://www.eyrie.org./~eagle/faqs/questions.html
-------------- next part --------------
Index: devel/subversion/Makefile
===================================================================
RCS file: /home/ncvs/ports/devel/subversion/Makefile,v
retrieving revision 1.74
diff -u -r1.74 Makefile
--- devel/subversion/Makefile 3 Feb 2005 20:21:53 -0000 1.74
+++ devel/subversion/Makefile 18 Feb 2005 15:58:40 -0000
@@ -6,6 +6,7 @@
PORTNAME= subversion
PORTVERSION= 1.1.3
+PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= http://subversion.tigris.org/tarballs/
@@ -43,6 +44,11 @@
.include <bsd.port.pre.mk>
SVNREPOS?= /home/svn/repos
+SVNFSTYPE?= fsfs
+
+.if defined(WITH_REPOSITORY_CREATION)
+MKREPOS_TARGET= _mkrepos
+.endif
.if defined(WITH_MAINTAINER_DEBUG)
CONFIGURE_ARGS+=--enable-maintainer-mode \
@@ -318,7 +324,7 @@
${APXS} -e -S LIBEXECDIR=${PREFIX}/libexec/apache2 -a -n dav libexec/apache2/mod_dav.so
.endif
-post-install:
+post-install: ${MKREPOS_TARGET}
@${MKDIR} ${PREFIX}/share/subversion
cd ${WRKSRC}/tools ; \
tar --exclude '*.in' -cf - * | tar -C ${PREFIX}/share/subversion -xf -
@@ -350,7 +356,14 @@
.if defined(WITH_SVNSERVE_WRAPPER)
@${INSTALL_SCRIPT} ${FILESDIR}/svnserve.wrapper ${PREFIX}/bin/svnserve
.endif
-.if defined(WITH_REPOSITORY_CREATION) && !exists(${SVNREPOS})
+
+repository: _mkrepos
+
+_SVNGRPFILES= dav db locks locks/db.lock locks/db-logs.lock
+SVNGRPFILES= ${_SVNGRPFILES:S,^,${SVNREPOS}/,}
+
+_mkrepos: .USE
+.if !exists(${SVNREPOS})
. if defined(WITH_SVNSERVE_WRAPPER)
@if /usr/sbin/pw groupshow "${SVNGROUP}" >/dev/null 2>&1; then \
${ECHO_MSG} "You already have a group \"${SVNGROUP}\", so I will use it."; \
@@ -366,18 +379,20 @@
fi
. endif
@${MKDIR} ${SVNREPOS}
- @${PREFIX}/bin/svnadmin create ${SVNREPOS}
- @${CHGRP} ${SVNGROUP} ${SVNREPOS}/db ${SVNREPOS}/locks/db.lock ${SVNREPOS}/dav
- @${CHMOD} g+w ${SVNREPOS}/db ${SVNREPOS}/locks/db.lock ${SVNREPOS}/dav
+ @${PREFIX}/bin/svnadmin create --fs-type ${SVNFSTYPE} ${SVNREPOS}
+. if defined(WITH_SVNSERVE_WRAPPER)
+ @${CHGRP} ${SVNGROUP} ${SVNGRPFILES}
+ @${CHMOD} g+w ${SVNGRPFILES}
@for i in ${SVNREPOS}/db/* ; do \
i=$${i##*/}; \
case $$i in \
- DB_CONFIG) ;; \
- *) ${CHGRP} ${SVNGROUP} ${SVNREPOS}/db/$$i; \
- ${CHMOD} g+w ${SVNREPOS}/db/$$i; \
+ DB_CONFIG|fs-type|uuid) ;; \
+ *) ${CHGRP} -R ${SVNGROUP} ${SVNREPOS}/db/$$i; \
+ ${CHMOD} -R g+w ${SVNREPOS}/db/$$i; \
;; \
esac; \
done
+. endif
.endif
post-deinstall:
More information about the freebsd-ports
mailing list