On a FreeBSD system, installing CVSup is as simple as installing the net/cvsup or net/cvsup-without-gui port. After updating the Ports Collection, just change to the /usr/ports/net/cvsup/ or /usr/ports/net/cvsup-without-gui/ directory and type make all install clean.
On non-FreeBSD systems, your best bet is compiling CVSup from source. Since CVSup is written in the Modula-3 programming language, you will need a Modula-3 compiler. The best choice for a fast and easy CVSup deployment is the Ezm3 - a Modula-3 compiler also provided by John D. Polstra, based on the PM3 compiler.
As mentioned before, Ezm3 is a stripped-down, more portable, easier to install version of the PM3 compiler. To install it, you should do the following:
Obtain the Ezm3 source
The source is available at the FreeBSD FTP sites, in the /pub/FreeBSD/development/CVSup/ezm3/ directory. There are two files that you will need - a bootstrap version for your OS/platform (in the case of Linux using glibc 6, it is named ezm3-1.0-LINUXLIBC6-boot.tar.bz2) and the Ezm3 source itself, named ezm3-1.0-src.tar.bz2.
Thus, for a Linux installation you will need two files: ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/ezm3/ezm3-1.0-src.tar.bz2 and ftp://ftp.freebsd.org/pub/FreeBSD/development/CVSup/ezm3/ezm3-1.0-LINUXLIBC6-boot.tar.bz2.
Unpack the Ezm3 source
In a directory of your choice, execute the following two commands:
% tar -jxf /path/to/ezm3-1.0-src.tar.bz2
% tar -jxf /path/to/ezm3-1.0-LINUXLIBC6-boot.tar.bz2
As a result, an ezm3-1.0/ directory will be created, containing all the necessary files.
Make sure byacc exists
Ezm3 uses the yacc parser generator as part of its build. However, it requires - or at least presumes - a Berkeley version of yacc, which it invokes under the name byacc. If byacc is available as a package or port for your platform, you should install it prior to building Ezm3. However, most versions of yacc are quite sufficient for the needs of Emz3, so you can safely use your system's native yacc(1); however, you have to make sure that it may be invoked as byacc. This can be accomplished by creating a symbolic link, either in yacc(1)'s native directory, or in any other directory you choose:
# ln -s /usr/bin/yacc /usr/bin/byacc
# ln -s /usr/bin/yacc $HOME/bin/byacc
Note: If you choose to use the second form, placing the byacc link into another directory, make sure that directory (in the case shown, $HOME/bin/) is in your shell's search path (the PATH environment variable) when you build Ezm3.
Change to the Ezm3 directory
% cd ezm3-1.0/
Configure the Ezm3 build options
By default, Ezm3 installs into the /usr/local/ directory tree. You can change that by modifying the m3config/src/TARGET file, where TARGET is the name of your platform (LINUXLIBC6 for Linux). Find and modify the INSTALL_ROOT variable to your liking.
If you have X11 installed on your machine, and you want Ezm3 to provide Modula-3 bindings for the X API, you should check the definition of X11ROOT. It should point to the directory which contains the X11 libraries, and which has a subdirectory named X11.
Build and install Ezm3
Ezm3 is built and installed in a single step. It is not possible to separate the build from the installation, and the installed files will not work if you move them to another location. To build and install Ezm3, issue the following command
# make
Note: You may need to acquire root privileges for this.
At this stage, you should have a working Ezm3 Modula-3 compiler. It should be installed under the directory referenced by the INSTALL_ROOT variable mentioned above - the m3build, m3bundle and m3ship binaries in the bin subdirectory, manual pages in the man/man1 subdirectory, and Modula-3 libraries in the lib/m3 subdirectory. You should now be able to proceed to the actual CVSup build.
To install CVSup follow this procedure:
Obtain the CVSup sources
CVSup is also distributed on the FreeBSD FTP sites, in the /pub/FreeBSD/development/CVSup/snapshots/ directory. As of the time of this writing, the latest CVSup snapshot is at version 16.1f, and it can be obtained from ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/snapshots/cvsup-snap-16.1f.tar.gz.
Unpack the CVSup source
In a directory of your choosing, execute the command:
% tar -zxf /path/to/cvsup-snap-16.1f.tar.gz
As a result, a cvsup-snap-16.1f/ directory will be created, containing all the necessary files.
Change to the CVSup build directory
% cd cvsup-snap-16.1f/
Build CVSup
Unlike Ezm3, the build and install of CVSup may be done separately. For the build, you will need a GNU version of make(1). To build CVSup, issue the following command:
% make
Install CVSup
To install CVSup, all you need to do is type:
# make install
Note: Since the CVSup install stage requires the ability to install files into some system directories, again you might need to acquire root privileges before executing this command.
And this is all! Now, you should have a working installation of CVSup - the cvsup, cvsupd and cvpasswd binaries, as well as the accompanying manual pages.
This, and other documents, can be downloaded from ftp://ftp.FreeBSD-bg.ringlet.net/pub/FreeBSD-bg/doc/.
For questions about FreeBSD, read the
documentation
before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD-bg.ringlet.net>.