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 are currently three stable versions of Carpet available, plus the current development version. Versions 1 and 2 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 3 is the current stable version. There are no plans to make further changes to this version unless a serious error is detected. 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.
Carpet is a driver for Cactus. It works as a part of Cactus, and you will need to have the developers' version of Cactus installed before you can use Carpet. Please look at the Cactus web pages for an introduction to Cactus and for installation 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.
The development version of Carpet is available via git:
cd Cactus git clone -o carpet git://carpetcode.dyndns.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.
Write access to Carpet darcs repositories is handled via ssh. Once you have an account set up, you obtain e.g. the third stable version with
cd Cactus darcs get darcs@cvs.carpetcode.org:/home/darcs/carpet-stable-3 cd arrangements ln -s ../carpet-stable-3/Carpet* .
(Don't miss the dot after the Carpet*
in the last
line.) Further instructions for using darcs are
given below.
You can also obtain the darcs repository using rsync instead of darcs. For this, use the command
rsync -Paz darcs@cvs.carpetcode.org: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.
We thank the Institut für Astronomie und Astrophysik of the Universität Tübingen for hosting the CVS and darcs servers.
Write access to Carpet git repositories is also handled via ssh. Once you have an account set up, you obtain e.g. the development version with
cd Cactus git clone carpetgit@carpetcode.dyndns.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.
Carpet is managed in darcs and git repositories instead of a CVS repository. Darcs and git have a number of advantages over CVS for developers, such as:
and then some more, as described in the darcs manual and the git web pages.
The foremost source of information about darcs is the darcs wiki, especially its Getting Started pages, and the Frequently Asked Questions.
If darcs is not already installed on your system, you need to do so yourself. This is described on the darcs home page, and some links to binaries are given in the darcs wiki.
At some time you will want to update your version of Carpet and incorporate some changes from the main Carpet repository. You do this with the command
cd Cactus/carpet-stable-3 darcs pull
which will look for new changes, and then ask you which of these you want to obtain. Normally, you will want all changes.
We have some instructions on how to develop Carpet with darcs.
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.
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.
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.