How to use DragonFly BSD's Developer Central

January 20, 2005

DragonFly has a number of developer resources available. This document lists the different tools and rules available for developers with or without commit access. If an issue is not covered in this guide, please ask on the docs mailing list for more detail.

1 Resources available, the current location of DragonFly Developer Central, has a number of web resources. A searchable mailing list archive of the DragonFly mailing lists. Online DragonFly man pages Recent builds of the DragonFly documentation from CVS

Development accounts are also available.

1.1 Mailing lists, man pages, and documentation

The printed resources are relatively self-explanatory, so just the links to them will be listed here.

Searchable mailing list archives

Online DragonFly man pages

Current builds of documentation

2 Development accounts

2.1 Obtaining a development account

Accounts on a DragonFly server are available for DragonFly-related work. Public-key encryption is used to administer users; a public and private DSA key must be created to use it.

% ssh-keygen -t dsa

Warning: When prompted during key generation, enter a key phrase. Don't leave it blank.

This will create two files: ~/.ssh/id_dsa and ~/.ssh/ The file ending in .pub is the public key. The other file is the private key. Keep the private key safe. The public key is the one used to create your development account. You will be asked for it when an account is created.

That public key data is placed in ~/.ssh/authorized_keys in the development account. When logging in to the development account, the private key in the local account is used to encrypt data, and that public key in authorized_keys is used to decrypt that data.

Account limitations: Development accounts are for working on DragonFly-related issues only. Porting drivers, testing builds of third-party applications, writing documentation, and adding to the DragonFly source code are all worthwhile reasons. To obtain an account, ask on the kernel mailing list, and supply a reason for the need.

2.2 Committing from the development account

Committing changes to the DragonFly source requires a valid public-key. This is a problem when using the development account, as there is no public key in the development account - only in the local account.

ssh-agent is a program run on the local machine that listens for any public key requests and answers them. It's not run as a server program, but as an launch for other programs that need that publickey info.

% ssh-agent tcsh
% ssh-add
% ssh -A

This command will will run tcsh with ssh-agent to answer key requests over the lifetime of the tcsh program. ssh-add will add existing public keys to the environment. The "ssh -A" allows authorization to be forwarded back to the computer with the private key. This option may not be needed depending on the local computer settings in /etc/ssh_config, but it doesn't hurt. Any program, including X, can be launched with ssh-agent to provide key support.

Once on leaf, it is possible to check out sources and check changes back in.

% cvs -R -d checkout targetname
% cvs -d update filename
% cvs -d commit filename

Remember, changes should be placed in a unified diff (diff -u) and posted to the submit mailing list for peer review before committing.

Contact the Documentation mailing list for comments, suggestions and questions about this document.