OpenCM alpha16

OpenCM is designed as a secure, high-integrity replacement for CVS. A list of
the key features can be found on the features page. While not as ``feature
rich'' as CVS, it supports some useful things that CVS lacks. Briefly, OpenCM
provides first-class support for renames and configuration, cryptographic
authentication and access control, and first-class branches. 

The OpenCM project was originally started because we needed a secure,
high-integrity configuration management system for the EROS project.
Alternatives, such as BitKeeper, Subversion, and PerForce, either did not
meet our requirements or were not available at the time the work started. We
had previously used CVS, but it's absence of real branches and configurations
finally drove us to build a better tool.
This commit is contained in:
todd 2002-08-27 16:46:09 +00:00
parent fe065080cd
commit 47060f5673
21 changed files with 315 additions and 0 deletions

62
devel/opencm/Makefile Normal file
View File

@ -0,0 +1,62 @@
# $OpenBSD: Makefile,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
COMMENT= "OpenCM change management system"
COMMENT-docs= "OpenCM Documentation"
V= 0.1.0alpha16
sV= -1
DISTNAME= opencm-${V}${sV}-src
PKGNAME= opencm-${V}
FULLPKGNAME= opencm-${V}
FULLPKGNAME-docs= opencm-docs-${V}
CATEGORIES= devel
HOMEPAGE= http://www.opencm.org
MAINTAINER= Todd T. Fries <todd@openbsd.org>
# BSD/(GPL for diff3)
PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
# where the source files and patches can be fetched
#
MASTER_SITES= http://www.opencm.org/releases/
EXTRACT_SUFX= .tgz
BUILD_DEPENDS= gc.1:boehm-gc->=6.0:devel/boehm-gc
LIB_DEPENDS= gc.1:boehm-gc->=6.0:devel/boehm-gc
USE_GMAKE= Yes
MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC}
CONFIGURE_STYLE= autoconf
CONFIGURE_ARGS+= ${CONFIGURE_SHARED}
CONFIGURE_ENV= LDFLAGS="-L${LOCALBASE}/lib"
FLAVORS=docs
FLAVOR?=
MULTI_PACKAGES=
.if ${FLAVOR:L:Mdocs}
BUILD_DEPENDS+= :teTeX_base-1.0.*:print/teTeX/base
MULTI_PACKAGES+= -docs
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/opencm
${INSTALL_DATA} ${WRKSRC}/doc/opencm.html ${PREFIX}/share/doc/opencm
${INSTALL_DATA} ${WRKSRC}/doc/opencm.ps ${PREFIX}/share/doc/opencm
.else
MAKE_FLAGS= TEXI2DVI=: DVIPS=:
FAKE_FLAGS= TEXI2DVI=: DVIPS=:
.endif
MAKE_FLAGS+= LIBZ=-lz LIBGC=-lgc USOURCE_SUBDIRS="libgdiff src"
FAKE_FLAGS+= LIBZ=-lz LIBGC=-lgc USOURCE_SUBDIRS="libgdiff src"
WRKDIST= ${WRKDIR}/${PKGNAME}
WRKSRC= ${WRKDIST}/base
.include <bsd.port.mk>

3
devel/opencm/distinfo Normal file
View File

@ -0,0 +1,3 @@
MD5 (opencm-0.1.0alpha16-1-src.tgz) = b524153d79b6f138fa27d0000c5eb9b4
RMD160 (opencm-0.1.0alpha16-1-src.tgz) = 45f674a951005c569c363c438f73246646cc36ce
SHA1 (opencm-0.1.0alpha16-1-src.tgz) = 05ce1f78150b32832715c5d1bfaf89f32e361620

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-base_aclocal_m4,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
--- base/aclocal.m4.orig Wed Jul 31 05:29:31 2002
+++ base/aclocal.m4 Wed Jul 31 05:29:03 2002
@@ -1,12 +1,6 @@
AC_DEFUN([AC_AUTOCONFIG_GC], [
AC_MSG_CHECKING([if autoconf has been run for gc6.0])
- if test -r gc6.0/configure; then
- AC_MSG_RESULT([yes])
- else
- (cd gc6.0; autoconf)
- AC_MSG_RESULT([built])
- fi
- ])
+ AC_MSG_RESULT([yes])
])
dnl The check for libtermcap/libcurses is a HUGE mess. First, the headers

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-base_configure_in,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
--- base/configure.in.orig Wed Jul 31 09:35:43 2002
+++ base/configure.in Wed Jul 31 09:38:08 2002
@@ -42,7 +42,7 @@ AC_INIT(src/client/opencm.c)
AC_REVISION($Revision 0.1$)
AC_CONFIG_HEADER(config.h)
AC_AUTOCONFIG_GC()
-AC_CONFIG_SUBDIRS(gc6.0)
+dnl AC_CONFIG_SUBDIRS(gc6.0)
AC_CANONICAL_HOST

View File

@ -0,0 +1,22 @@
$OpenBSD: patch-base_doc_Makefile_in,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
--- base/doc/Makefile.in.orig Wed Jul 31 10:37:41 2002
+++ base/doc/Makefile.in Wed Jul 31 10:40:23 2002
@@ -28,6 +28,7 @@ LDFLAGS = @LDFLAGS@
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
+DVIPS = dvips
prefix = @prefix@
exec_prefix = @exec_prefix@
@@ -120,8 +121,8 @@ opencm: opencm.info.gz opencm.ps opencm.
gzip -9 $<
.dvi.ps:
- dvips -t letter $< -o tmp.ps
- mv tmp.ps $@
+ ${DVIPS} -t letter $< -o tmp.ps
+ [ -f tmp.ps ] && mv tmp.ps $@ || :
.texi.info:
makeinfo --no-split $< --output $@

View File

@ -0,0 +1,11 @@
--- base/doc/manual/cmd-ref.texi.orig Wed Aug 14 17:50:36 2002
+++ base/doc/manual/cmd-ref.texi Wed Aug 14 17:50:46 2002
@@ -21,7 +21,7 @@
have write access on the group in order to add members to it.
@item
-@command{add user} @cmdarg{cert-file} @cmdarg{('r'|'w'|'rw')}
+@command{adduser} @cmdarg{cert-file} @cmdarg{('r'|'w'|'rw')}
Registers a user on a repository by copying the new user's certificate
file (whose path is specified as @cmdarg{cert-file}) to the repository

View File

@ -0,0 +1,20 @@
--- base/doc/opencm.texi.orig Wed Aug 14 17:50:54 2002
+++ base/doc/opencm.texi Wed Aug 14 17:51:03 2002
@@ -855,7 +855,7 @@
When the administrator receives the certificate, they can create
authorize this user by typing:
@example
-@value{OPENCMD} -u admin add user jack.pem rw
+@value{OPENCMD} -u admin adduser jack.pem rw
@end example
The argument @kbd{jack.pem} is the path to the certificate file for the
@@ -1592,7 +1592,7 @@
@cmdarg{member} to the existing @cmdarg{group}.
@item
-@command{add user} @cmdarg{certfile} @cmdarg{r|w|rw} Registers a user on
+@command{adduser} @cmdarg{certfile} @cmdarg{r|w|rw} Registers a user on
a repository with the specified repository access (@cmdarg{r} is
read-only and @cmdarg{w} is write-access). You must specify the path to
the user's certificate file as @cmdarg{certfile} and all certificates

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-base_src_Makefile_in,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
--- base/src/Makefile.in.orig Mon Aug 5 20:06:48 2002
+++ base/src/Makefile.in Tue Aug 6 08:50:05 2002
@@ -235,7 +235,7 @@ distclean: clean nodepend
nodepend:
find $(TOPDIR) -name '*.m' -exec rm {} \;
-$(OPENCM): $(OBJECTS) $(LIBDIFF) $(LIBZ) $(LIBGC)
+$(OPENCM): $(OBJECTS) $(LIBDIFF)
$(CC) -o $(OPENCM) $(CFLAGS) $(OBJECTS) $(LDFLAGS) $(LIBDIFF) $(LIBZ) $(LIBGC) $(LIBS)
# Whenever we rebuild a .o file, we also need to rebuild the .m file:

View File

@ -0,0 +1,11 @@
--- base/src/client/command.c.orig Wed Aug 14 17:54:02 2002
+++ base/src/client/command.c Wed Aug 14 17:54:18 2002
@@ -154,7 +154,7 @@
{ "add", opencm_add_file, 1, CF_OPTARGS|CF_NOCONNECT|CF_WSINIT, 0,
"add.help" },
{ "adduser", opencm_add_user, 2, CF_ADMIN, 0,
- "add-user.help" },
+ "adduser.help" },
{ "bind", opencm_bind, 2, 0, 0,
"bind.help" },
{ "browse", opencm_browse, 0, CF_OPTARGS, 0, 0 },

View File

@ -0,0 +1,9 @@
--- base/src/help/add.help.orig Thu Aug 15 12:56:03 2002
+++ base/src/help/add.help Thu Aug 15 12:56:19 2002
@@ -43,5 +43,5 @@
User's workspace specifies the current (working) branch into which
the specified files will go. Permanent changes don't take effect until
-the execution of the @i{ commit} command. To undo any additions, use
+the execution of the @i{commit} command. To undo any additions, use
the @i{revert} command.

View File

@ -0,0 +1,9 @@
--- base/src/help/bind.help.orig Wed Aug 14 17:51:38 2002
+++ base/src/help/bind.help Wed Aug 14 17:51:48 2002
@@ -43,5 +43,5 @@
In most cases @i{value} is the truename of some archived object and
@i{key} is the more user-friendly name associated with that object.
-See also: @b{ls}, @b{mkdir}, @b{add user} @b{import},
+See also: @b{ls}, @b{mkdir}, @b{adduser} @b{import},
@b{create branch}.

View File

@ -0,0 +1,8 @@
--- base/src/help/create-repository.help.orig Wed Aug 14 17:52:02 2002
+++ base/src/help/create-repository.help Wed Aug 14 17:52:15 2002
@@ -44,4 +44,4 @@
is specified via @i{admin-user}, which must be the local path to a PEM file
representing the admin user's X.509 certificate.
-See also: @b{add user}, @b{create user}
+See also: @b{adduser}, @b{create user}

View File

@ -0,0 +1,11 @@
--- base/src/help/create-user.help.orig Wed Aug 14 17:52:40 2002
+++ base/src/help/create-user.help Wed Aug 14 17:52:48 2002
@@ -47,7 +47,7 @@
NOTE:
- The output cert file is used for the 'add user' command.
+ The output cert file is used for the 'adduser' command.
Safeguard all private keys!

View File

@ -0,0 +1,8 @@
--- base/src/help/gadd.help.orig Wed Aug 14 17:51:19 2002
+++ base/src/help/gadd.help Wed Aug 14 17:51:26 2002
@@ -43,4 +43,4 @@
@i{member} must either be a user or group and must be defined in executing
user's directory.
-See also: @b{bind}, @b{add user}, @b{create group}
+See also: @b{bind}, @b{adduser}, @b{create group}

View File

@ -0,0 +1,8 @@
--- base/src/help/gremove.help.orig Thu Aug 15 13:14:02 2002
+++ base/src/help/gremove.help Thu Aug 15 13:14:16 2002
@@ -41,4 +41,4 @@
Removes specified @i{member} from the existing group @i{group-spec}.
-See also: @b{add member}, @{ls}
+See also: @b{add member}, @b{ls}

View File

@ -0,0 +1,11 @@
--- base/src/help/opt-obscure.help.orig Thu Aug 15 13:23:06 2002
+++ base/src/help/opt-obscure.help Thu Aug 15 13:23:38 2002
@@ -39,7 +39,7 @@
@C
@i{Option} @i{Description}
- @b{--configdir} @i{dir} Override the location of @HOME/.opencm for testing
+ @b{--configdir} @i{dir} Override the location of $HOME/.opencm for testing
purposes.
@b{--flush-io} Flush all output to stdout as soon as it is ready. This

View File

@ -0,0 +1,12 @@
--- base/src/help/revert.help.orig Thu Aug 15 02:27:03 2002
+++ base/src/help/revert.help Thu Aug 15 02:27:48 2002
@@ -43,7 +43,7 @@
the last @b{commit}.
If you only want to revert a single file, or a group of files, delete
-the files with 'rm' (not OpenCM's @{rm} command) and run @{update},
+the files with 'rm' (not OpenCM's @b{rm} command) and run @b{update},
which will retrieve the files as they exist in the repository.
-See also: @{update}, @{commit}
+See also: @b{update}, @b{commit}

14
devel/opencm/pkg/DESCR Normal file
View File

@ -0,0 +1,14 @@
OpenCM is designed as a secure, high-integrity replacement for CVS. A list of
the key features can be found on the features page. While not as ``feature
rich'' as CVS, it supports some useful things that CVS lacks. Briefly, OpenCM
provides first-class support for renames and configuration, cryptographic
authentication and access control, and first-class branches.
The OpenCM project was originally started because we needed a secure,
high-integrity configuration management system for the EROS project.
Alternatives, such as BitKeeper, Subversion, and PerForce, either did not
meet our requirements or were not available at the time the work started. We
had previously used CVS, but it's absence of real branches and configurations
finally drove us to build a better tool.
WWW: ${HOMEPAGE}

View File

@ -0,0 +1 @@
OpenCM documentation.

49
devel/opencm/pkg/PLIST Normal file
View File

@ -0,0 +1,49 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
bin/cm
share/opencm/help/add.help
share/opencm/help/adduser.help
share/opencm/help/bind.help
share/opencm/help/checkout.help
share/opencm/help/commit.help
share/opencm/help/create-branch.help
share/opencm/help/create-group.help
share/opencm/help/create-repository.help
share/opencm/help/create-user.help
share/opencm/help/diff.help
share/opencm/help/gadd.help
share/opencm/help/gremove.help
share/opencm/help/import.help
share/opencm/help/log.help
share/opencm/help/logmail.help
share/opencm/help/ls.help
share/opencm/help/merge.help
share/opencm/help/mkdir.help
share/opencm/help/note.help
share/opencm/help/notes.help
share/opencm/help/opt-basic.help
share/opencm/help/opt-obscure.help
share/opencm/help/opt-server.help
share/opencm/help/rebind.help
share/opencm/help/rename-entity.help
share/opencm/help/revert.help
share/opencm/help/revoke.help
share/opencm/help/rm.help
share/opencm/help/server.help
share/opencm/help/set-description.help
share/opencm/help/set-group.help
share/opencm/help/set-name.help
share/opencm/help/set-user.help
share/opencm/help/set-ws-repos.help
share/opencm/help/set-ws-user.help
share/opencm/help/show-ws-repos.help
share/opencm/help/show-ws-user.help
share/opencm/help/status.help
share/opencm/help/tag.help
share/opencm/help/unbind.help
share/opencm/help/update.help
share/opencm/help/version.help
share/opencm/tools/cvsconvert.py
share/opencm/tools/rcsparse.py
@dirrm share/opencm/tools
@dirrm share/opencm/help
@dirrm share/opencm

View File

@ -0,0 +1,5 @@
@comment $OpenBSD: PLIST-docs,v 1.1.1.1 2002/08/27 16:46:09 todd Exp $
info/opencm.info.gz
share/doc/opencm/opencm.html
share/doc/opencm/opencm.ps
@dirrm share/doc/opencm