Carpet is distributed under the GNU General Public License (GPL). It might be released under the GNU Lesser General Public License (LGPL) in the future, to match the distribution terms of Cactus.
There is a stable version (version 4) and a development version of Carpet available, plus several outdated versions. Versions 1, 2, and 3 have been unchanged for quite some time, and should be considered outdated. There are no plans to make any further changes to these versions.
Version 4 is the current stable version. There are no plans to develop this version further, but errors will be corrected. We recommend this version for the casual users and for production runs.
The development version will always see changes, some of which might surprise you. You should not use it without keeping in close contact with the developers, i.e. following the relvant mailing lists.
Carpet is a driver for Cactus. It works as a part of Cactus, and you will need to have the Cactus installed before you can use Carpet. Please look at the Cactus web pages for an introduction to Cactus and for install instructions.
Carpet consists of several arrangements, each living in a
directory. The arrangement Carpet
contains the basic
driver part that everybody needs. The arrangement
CarpetExtra
contains useful add-ons and some example
code. Development of experimental thorns happens in the
CarpetDev
arrangement, which means that the code in
there is not to be trusted. And finally, there is a graveyard
arrangement CarpetAttic
of things that only used to
be useful and are now in a state of decay.
Version 1 of Carpet is available via anonymous CVS:
cd Cactus/arrangements cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet login cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet checkout Carpet cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet checkout CarpetExtra cvs -d :pserver:cvs_anon@cvs.carpetcode.org:/home/cvs/carpet checkout CarpetDev
The password for anonymous CVS access is anon
.
Instructions for dealing with CVS are available everywhere on the
web, e.g. also on the Cactus
pages.
Version 2 of Carpet is available via anonymous darcs:
cd Cactus darcs get http://www.carpetcode.org/~darcs/carpet-stable-2/ cd arrangements ln -s ../carpet-stable-2/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Instructions for using darcs are
given below. You can also have a look at
the version 2
source tree in your web browser.
Version 3 of Carpet is available via anonymous darcs:
cd Cactus darcs get http://www.carpetcode.org/~darcs/carpet-stable-3/ cd arrangements ln -s ../carpet-stable-3/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Instructions for using darcs are
given below. You can also have a look at
the version 3
source tree in your web browser.
You can also obtain the darcs repository using wget instead of darcs. For this, use the command
wget -r -nH -np --cut-dirs=1 -R "index.html*" http://www.carpetcode.org/\~darcs/carpet-stable-3/
This copies the darcs repository into a subdirectory called carpet-stable-3, in much the same way as the darcs get command above would. That is, you also end up with a fully functional local repository.
Version 4 of Carpet is available via git:
cd Cactus git clone -o carpet git://www.carpetcode.org/carpet.git cd arrangements ln -s ../carpet/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Instructions for using git are
given below.
The development version of Carpet is available via Mercurial:
cd Cactus hg clone http://www.carpetcode.org/hg/carpet cd arrangements ln -s ../carpetcode/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Instructions for using Mercurial are
given below.
Write access to Carpet git repositories is handled via ssh. Once you have an account set up, you obtain Carpet via
cd Cactus git clone carpetgit@carpetcode.org:carpet.git cd arrangements ln -s ../carpet/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Further instructions for using git are
given below.
The Carpet git server is a courtesy of Christian D. Ott.
Write access to Carpet Mercurial repositories is handled via ssh. Once you have an account set up, you obtain Carpet via
cd Cactus hg clone ssh://carpetmercurial@www.carpetcode.org/carpet cd arrangements ln -s ../carpet/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Further instructions for using git are
given below.
The Carpet Mercurial server is also a courtesy of Christian D. Ott.
Carpet is managed in git and Mercurial repositories instead of CVS or SVN repositories. Git and Mercurial have a number of advantages over CVS and SVN for developers, such as:
and then some more, as described on the git web pages and the Mercurial web pages.
The git web site contains introductions and documentation for git. The Linux kernel developers also maintain a tutorial for git. Git should be available for all modern operating systems. It is also not difficult to install manually.
Git comes with a convenient graphical user interface
called git-gui
. It allows you to update your code
from the master, commit local changes, compare branches, or push
local changes back to the master repository.
We have also some hints for using git.
At some time you will want to update your version of Carpet and incorporate some changes from the main Carpet repository. If you are not using the graphical user interface, then you do this with the command
cd Cactus/carpet git pull
which will download and merge the current version. Git will refuse to overwrite any conflicting local changes that you may have.
The Mercurial web site contains introductions and documentation for Mercurial. Mercurial should be available for all modern operating systems. It is also not difficult to install manually.
On Mac operating systems, Mercurial comes with a convenient
graphical user interface called MacHG
. This allows
you to update your code from the master, commit local changes,
compare branches, or push local changes back to the master
repository.
At some time you will want to update your version of Carpet and incorporate some changes from the main Carpet repository. If you are not using the graphical user interface, then you use the command
cd Cactus/carpet hg pull -u
which will download and merge the current version. Mercurial will refuse to overwrite any conflicting local changes that you may have.
SSH has two mechanisms for authentication, typing a password, or using ssh keys. When you use ssh keys, your private key is (should) be protected by a password. That means that you have to type this password every time you log into a different machine. Some people protect their private ssh key with an empty password --- in this way, they don't have to type a password, but this is not very secure. If somebody is able to copy the private ssh key, they have access to your remote accounts. Intruders can use this hop from one machine to the next. Please do not use empty passwords on your ssh keys.
SSH-agent is a convenient way to make things safe. It is an agent that starts automatically when you log in, and asks you for your ssh key password once. It remembers this password in memory, and whenever you use ssh to log into a remote account, ssh contacts the ssh-agent for the password to the key. If this password is accepted, you don't have to type anything.
I use the following lines in my .bash_profile
to
make this happen:
keychain id_dsa test -f $HOME/.keychain/$(hostname)-sh && source $HOME/.keychain/$(hostname)-sh > /dev/null
Keychain starts the ssh-agent. Keychain can also handle gpg key passwords for your encrypted and/or signed emails.
Go back to the Carpet home page.