|cAos Community Wiki||Please log in to access full functionality|
Packages for cAos Linux are maintained inside a CVS repository using Mezzanine. Each part of the OS (core, extended OS, and user sandboxes) has its own tree, all of which is stored under one big parent to be accessed either individually or all at once. The entire repository is approximately 3GB in size and growing, so be aware of the disk requirements when deciding how much of the tree to download.
Users wishing to tweak package configurations and build customized versions of cAos packages should follow the instructions for Anonymous CVS Access below. If you would like to help out directly by contributing packages, patches, and/or other software or documentation to the cAos project, please follow the instructions under Developer CVS Access instead. We exist solely based on the efforts of the community, so your help and contributions (whether monetary, packaging, or otherwise) are greatly appreciated!
Anonymous CVS Access
Note, we suggest using Mezzanine when accessing the cAos cvs repository.
For cAos2 packages
$ mkdir ~/caos2 $ cd ~/caos2 $ mzlogin -lD :pserver:[email protected]:/var/cvs $ mzget -D :pserver:[email protected]:/var/cvs caos
then to build a particular package do:
$ cd <package dir that you want to build> $ mzbuild
or using the caos2 buildroot (run as root, because ‘chroot’ is needed, but it will drop privs to nobody):
# mzbuild -r /path/to/buildroot-2 -u nobody
You can then just re-update the repository using ‘mzget’ from the root of the directory that you wish to update.
You can also build all of the packages using ‘buildtool’ from the ~/caos2/core/ directory.
Developer CVS Access
The first step is to create a SSH key pair to connect to the cAos CVS server, as only SSH key authentication is allowed:
$ ssh-keygen -t dsa -b 2048 -f ~/.ssh/caos-cvs-dsa-2048
Use a "good" (cryptographically) password at the prompts and it will produce the private and public key files:
Add the keys to your SSH client configuration file (the first line creates one if it does not already exist):
$ if [ ! -f ~/.ssh/config ]; then touch ~/.ssh/config ; chmod 600 ~/.ssh/config ; fi $ echo "Host cvs.caosity.org" >> ~/.ssh/config $ echo "IdentityFile ~/.ssh/caos-cvs-dsa-2048" >> ~/.ssh/config
And now you can ask for CVS access from KainX on #caos and email your preferred username (from 1 to 8 character in length) and public SSH key (the one with the ".pub" file extension) to him. Keep the private key secret and safe.
Now prepare an area to check out files from the cAos CVS repository. The partition the check out directory is on should have a good amount of room to allow for future expansion. If you don’t have a place already, and your "/home/" partition has lots of room, type:
$ mkdir ~/cvs-checkout $ cd ~/cvs-checkout
When you have received the green light for the CVS access, put this line in your "~/.bashrc" file (or the "rc’ file specific to your shell):
assuming "ssh" is in your PATH. Otherwise you can use the full path to "ssh" instead. Execute that command at the command prompt, along with a temporary setting for CVSROOT (in case you use other CVS repositories):
$ export CVS_RSH=ssh $ export CVSROOT=:ext:[email protected]:/cvs
where "username" is the preferred username you supplied to KainX.
You are now ready to check out files from the cAos CVS repository. Get ready to type in the password you used to encrypt the SSH key you will use for this repository, because it can ask for it more than once per CVS command:
$ mzget caos
another possibility is to avoid setting the CVSROOT environment variable and doing this "mzget" command instead"
$ mzget -D :ext:[email protected]:/cvs caos
Either way, a bunch of CVS checkout messages should be rolling up the console.
You should now have a "caos" directory, corresponding to the "caos" module name in the "mzget" command line, in the "~/cvs-checkout/" directory. When executing "mz*" commands immediately within this "caos" directory, you will be interacting with the "caos" module from the "cvs.caosity.org/cvs" repository as "username". This information is stored in the "CVS" subdirectories in the "caos" directory tree.