ceo is the CSC member creation and administration interface. It was originally written in perl by persons of mysterious-ness, and was re-written in python by Michael Spang in early 2007. The source-code for ceo can be found in git: csclub:/users/git/public/pyceo.git.
ceo can be accessed by running the "ceo" command from a terminal, or terminal emulator. By default, a curses-based menu interface is presented. Use the arrow keys to navigate; on many screens, pressing a letter will select the next menu item beginning with that letter.
Run ceo --help to see a list of command-line utilities.
Adding a New Member
After a new member has paid the membership fee and signed the Machine Usage Policy forms, a new member account is added to the CSC system by selecing "New Member" in ceo and following the on-screen instructions. The new member's username is to be identical to their NEXUS username, if applicable. For NEXUS users, the name and program fields will automatically be filled after a username is provided.
Renewing/Extending a Membership
A membership can be renewed or extended by selecting "Renew Membership" in the ceo interface.
Clubs are hosted free of charge. To create a new club account use the "New Club" option in the ceo interface.
At this time, there is no limit to the number of representatives a club may have, but representative accounts must be registered with the "New Club Rep" option, and renewed with the "Renew Club Rep" option.
Other Club Features
For access to features beyond basic hosting (ie, databases), one of the club representatives will need to email the Systems Committee to have this set up.
Feature Requests and Ideas
- Create a graphical and/or online version of ceo
- Add new members to fuse and plugdev groups
Contributing to CEO
Generate a GPG Key
In order to sign the ceo packages you will need to generate yourself a GPG key if you do not already have one. Assuming you do not run
Choose option (2) DSA (sign only). Choose no expiration when prompted and then your full name and email when asked. It will ask you to confirm the information and then for a passphrase.
Add Your Key To Mirror
ssh mirror.csclub.uwaterloo.ca gpg --list-keys
Locate the 8-character id string. For example "16E37635" in
/users/m2ellis/.gnupg/pubring.gpg --------------------------------- pub 1024D/16E37635 2010-08-19 uid Michael Ellis <email@example.com>
Now you must add this id into the file /srv/debian/conf/uploaders on mirror
sudo vim /srv/debian/conf/uploaders
Now in another terminal run
gpg --export --armor $KEYID
Now on mirror run
sudo -s GNUPGHOME=/srv/debian/gpg gpg --import
Then paste the output from gpg --export --armor $KEYID and end with CTRL-D. It should give you a confirmation, example
gpg: key 16E37635: public key "Michael Ellis <firstname.lastname@example.org>" imported gpg: Total number processed: 1 gpg: imported: 1
The source-code for ceo can be found in git: csclub:/users/git/public/pyceo.git. To checkout the code run
git clone ~git/public/pyceo.git
When you are done making your change you need to update the changelog with dch. Assuming this is a minor incremental change run
Add a description of your change and then save and quit. Once you are sure of your changes commit them to the git repository and push them (test them first!). To build the package run debuild
This will generate the *.deb files in the parent directory.
Uploading Changes to Mirror
In the directory containing the *.deb and *.changes files run
Then ssh to mirror and run
The package should now be uploaded and you can update in the usual way with apt-get/aptitude.