I have two questions:

1) Given that pretty much the entire FOSS universe seems to be moving 
away or have already moved away from, CVS, should we perhaps consider 
integration as Obsolete, with some suitable note in the man pages or 
other docs recommending the use of alternatives such as SVN or Hg?

2) Not really architectural, but you indicate that this is released 
under GPLv1.  If so, are there are any other GPLv1 software in 
OpenSolaris?  Maybe this needs a special case of legal review?  (I am 
not entirely familiar with the differences between GPLv1 and GPLv2....)

    -- Garrett

Peter Dennis - Sustaining Engineer wrote:
> I am sponsoring this FastTrack for Maxim Kartashev.
>
> Mans pages are included in the case's materials directory.
>
> Thanks
> pete
>
> 1. Introduction
>
>   This project proposes to add the source code management (SCM)
>   system CVS[1] to the SFW consolidation for delivery on
>   OpenSolaris/Indiana. Since CVS is externally maintained open
>   source software, the SFW consolidation is a natural choice.
>
>   This project requests a Minor release binding.
>
> 2. Background and motivation
>
>   One of Indiana's (a.k.a OpenSolaris Developer Preview)[2] targets
>   is to support software development on Solaris OS. The latter
>   almost always requires use of SCM.
>
>   CVS is an open-source version control system, widely used by many
>   software developers, including Sun (for example, NetBeans developers
>   used CVS to manage sources until recently). Being in development for
>   about 20 years, CVS is rather stable and platform-independent.
>   Although loosing popularity these days, it still provides familiar
>   interface and services such as sourceforge.net[3] continue to support
>   CVS-based development.
>
>   The most recent version of CVS as the time of this writing is
>   1.12.13. The product was last updated by the community
>   2005-10-03 and latest changes are limited to bug fixes only.
>
> 3. Architecture
>
>   CVS uses client-server architecture: server stores project files
>   and history of changes (the repository), clients connect to the server
>   in order to obtain (check out) a complete copy of the project and,
>   after modifying files, check them back in. Typically, the client and
>   server connect over a LAN or over the Internet, but client and server
>   may both run on the same machine.
>
>   When remote repository is used (most common case), clients can connect
>   to it and perform authentication using two methods - "external" and
>   "pserver".
>
>   External means that cvs will use external program specified in
>   $CVS_RSH environment variable (default is 'ssh') to start a program
>   specified by $CVS_SERVER (default is 'cvs') on a remote machine. The
>   command line looks like this:
>         $CVS_RSH -l <username> <hostname> $CVS_SERVER server
>   After cvs is started on the remote machine, data are transmitted
>   through standard input and output.
>
>   The other connection method, "pserver" or password server, requires
>   cvs daemon started on a remote machine. The same executable is used
>   on both sides. Clients connect to port 2401 (configurable) and
>   server performs authentication based on passwd file located in
>   the repository client wishes to connect to. This file contains
>   passwords encrypted according to standard crypt(3C) function. Common
>   practice is to log in to a repository first, in which case CVS stores
>   password (trivially scrambled) in $HOME/.cvspass. Upon successul
>   login, subsequent cvs commands won't ask for a password.
>
>   CVS is about 70,000 lines of C code. It is released under version 1
>   of the GPL.
>
>   This project depends on PSARC/2006/537[4] to provide (optional)
>   compression of the data being transmitted. It also uses ssh
>   (PSARC/2001/212) and rsh; both are theoretically optional, but
>   used frequently in real life.
>
> 4. Documentation
>
>   CVS comes with manual pages describing commands and providing
>   examples. These manual pages are installed in /usr/share/man/man{1,5}
>   The other source of documentation is a book named "Version Management
>   with CVS"[5].
>
> 5. Interfaces
>
>   Exported Interface            Stability       Notes
>   ------------------            ---------       -----
>   SUNWcvs                       Committed       Package name.
>
>   /usr/bin/cvs                  Committed       Executable location.
>
>   $HOME/.cvsrc                  Committed       Path to user config
>                                                 file.
>
>   <repository>/CVSROOT          Committed       Path to the repository
>                                                 config files.
>
>   <working dir>/*/*/CVS         Committed       Path to the working
>                                                 directory information
>                         files.
>
>   <working dir>/*/*/CVS/Root    Committed       Path to the file that
>                                                 contains the path to
>                                                 the current repository.
>
>   <working dir>/*/*/CVS/Repository      Committed Path to the file
>                           containing the
>                           directory within the
>                                                   repository, which the
>                            current directory
>                           corresponds with.
>
>   <working dir>/*/*/CVS/Entries         Committed Contains the file/dir
>                           list of the current
>                           directory.
>
>   <working dir>/*/*/CVS/Entries.Log     Committed Backup copy of Entries
>                           file.
>
>   <working dir>/*/*/CVS/Entries.Backup  Committed Backup copy of Entries
>                           file.
>
>   <working dir>/*/*/CVS/Entries.Static  Committed Backup copy of Entries
>                           file.
>
>   <working dir>/*/*/CVS/Tag             Committed Contains per-directory
>                           sticky tags or dates.
>
>   <working dir>/*/*/CVS/Notify          Committed Stores notifications
>                           which have not yet
>                           been sent to the
>                                                   server.
>
>   <working dir>/*/*/CVS/Notify.tmp      Committed Backup copy of Notify.
>
>   <working dir>/*/*/CVS/Base/           Committed Stores the original
>                           copy of file that is
>                           being edited by
>                                                   "edit" command.
>
>   <working dir>/*/*/CVS/Baserev         Committed Contains the revision
>                           for each file stored
>                           in the Base/
>                           directory.
>
>   <working dir>/*/*/CVS/Baserev.tmp     Committed Backup copy of Baserev
>                           file.
>
>   <working dir>/*/*/CVS/Template        Committed Contains the template
>                                                   specified by the
>                           rcsinfo file.
>
>   <repository>/CVSROOT/cvsignore        Committed Path to the file with
>                                                   per-repository list of
>                                                   ignored files.
>
>   $HOME/.cvsignore                      Committed Path to the file with
>                                                   per-user list of files
>                           to ignore.
>
>   <working dir>/*/*/.cvsignore          Committed Path to the file with
>                           list of ignored files.
>                           Only applies to the
>                           directory that
>                                                   contains it.
>
>   cvs commandline               Volatile        Options, cvs commands
>                         and their options.
>
>   cvs add                       Volatile        Command.
>   cvs admin (rcs)               Volatile        Command.
>   cvs annotate                  Volatile        Command.
>   cvs checkout (co, get)        Volatile        Command.
>   cvs commit (ci)               Volatile        Command.
>   cvs diff                      Volatile        Command.
>   cvs edit                      Volatile        Command.
>   cvs editors                   Volatile        Command.
>   cvs export                    Volatile        Command.
>   cvs history                   Volatile        Command.
>   cvs import                    Volatile        Command.
>   cvs init                      Volatile        Command.
>   cvs log                       Volatile        Command.
>   cvs login                     Volatile        Command.
>   cvs logout                    Volatile        Command.
>   cvs ls                        Volatile        Command.
>   cvs pserver                   Volatile        Command.
>   cvs rannotate                 Volatile        Command.
>   cvs rdiff (patch)             Volatile        Command.
>   cvs release                   Volatile        Command.
>   cvs remove                    Volatile        Command.
>   cvs rlog                      Volatile        Command.
>   cvs rls                       Volatile        Command.
>   cvs rtag                      Volatile        Command.
>   cvs server                    Volatile        Command.
>   cvs status                    Volatile        Command.
>   cvs tag                       Volatile        Command.
>   cvs unedit                    Volatile        Command.
>   cvs update                    Volatile        Command.
>   cvs version                   Volatile        Command.
>   cvs watch                     Volatile        Command.
>   cvs watchers                  Volatile        Command.
>
>   CVSIGNORE                     Committed       Environment variable.
>   CVSWRAPPERS                   Committed       Environment variable.
>   CVSREAD                       Committed       Environment variable.
>   CVSREADONLYFS                 Committed       Environment variable.
>   CVSUMASK (client side)        Uncommitted     Environment variable.
>   CVSUMASK (server side)        Committed       Environment variable.
>   CVSROOT                       Committed       Environment variable.
>   CVSEDITOR                     Committed       Environment variable.
>   CVS_RSH                       Committed       Environment variable.
>   CVS_SERVER                    Committed       Environment variable.
>   CVS_PASSFILE                  Committed       Environment variable.
>   CVS_CLIENT_PORT               Committed       Environment variable.
>   CVS_PROXY_PORT                Committed       Environment variable.
>   CVS_RCMD_PORT                 Committed       Environment variable.
>   CVS_CLIENT_LOG                Committed       Environment variable.
>   CVS_SERVER_SLEEP              Committed       Environment variable.
>   CVS_IGNORE_REMOTE_ROOT        Committed       Environment variable.
>   CVS_LOCAL_BRANCH_NUM          Committed       Environment variable.
>   CVS_PID                       Committed       Environment variable.
>
>   Return status (except diff command)   Committed       Return status.
>   Return status of diff command         Volatile        Return status.
>
>   All commands are marked Volatile after ChangeLog examination. Command
>   actions do not change at all, but every command has additional
>   modifiers (or options) and interpretation of the latter could be
>   changed (and actually did) in a minor release. One example is
>   interpretation of '-r tag1::tag2' option of log command that changed
>   in a minor release.
>
>   Almost all environment variables are marked as Committed because they
>   have not changed since they first appeared in CVS.
>
>   Uncommitted environment variables are marked as such because the
>   documentation ("Version Management with CVS") clearly stated that
>   future versions might not use those.
>
>   Imported Interface            Specified in
>   ------------------            ------------
>   zlib                          PSARC/2006/537
>   ssh                           PSARC/2001/212
>
> 6. References
>
>   1. http://cvs.nongnu.org/
>   2. http://www.opensolaris.org/os/project/indiana/
>   3. 
> http://alexandria.wiki.sourceforge.net/CVS+-+Version+Control+for+Source+Code 
>
>   4. PSARC/2006/537 Solaris libz (zlib) upgrade to 1.2.3
>   5. http://ximbiot.com/cvs/manual/


Reply via email to