1Daily Use Guide for using Savannah for lwIP 2 3Table of Contents: 4 51 - Obtaining lwIP from the CVS repository 62 - Committers/developers CVS access using SSH (to be written) 73 - Merging from DEVEL branch to main trunk (stable branch) 84 - How to release lwIP 9 10 11 121 Obtaining lwIP from the CVS repository 13---------------------------------------- 14 15To perform an anonymous CVS checkout of the main trunk (this is where 16bug fixes and incremental enhancements occur), do this: 17 18cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout lwip 19 20Or, obtain a stable branch (updated with bug fixes only) as follows: 21cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ 22 -r STABLE-0_7 -d lwip-0.7 lwip 23 24Or, obtain a specific (fixed) release as follows: 25cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ 26 -r STABLE-0_7_0 -d lwip-0.7.0 lwip 27 283 Committers/developers CVS access using SSH 29-------------------------------------------- 30 31The Savannah server uses SSH (Secure Shell) protocol 2 authentication and encryption. 32As such, CVS commits to the server occur through a SSH tunnel for project members. 33To create a SSH2 key pair in UNIX-like environments, do this: 34 35ssh-keygen -t dsa 36 37Under Windows, a recommended SSH client is "PuTTY", freely available with good 38documentation and a graphic user interface. Use its key generator. 39 40Now paste the id_dsa.pub contents into your Savannah account public key list. Wait 41a while so that Savannah can update its configuration (This can take minutes). 42 43Try to login using SSH: 44 45ssh -v your_login@cvs.sv.gnu.org 46 47If it tells you: 48 49Authenticating with public key "your_key_name"... 50Server refused to allocate pty 51 52then you could login; Savannah refuses to give you a shell - which is OK, as we 53are allowed to use SSH for CVS only. Now, you should be able to do this: 54 55export CVS_RSH=ssh 56cvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip 57 58after which you can edit your local files with bug fixes or new features and 59commit them. Make sure you know what you are doing when using CVS to make 60changes on the repository. If in doubt, ask on the lwip-members mailing list. 61 62(If SSH asks about authenticity of the host, you can check the key 63 fingerprint against http://savannah.nongnu.org/cvs/?group=lwip) 64 65 663 Merging from DEVEL branch to main trunk (stable) 67-------------------------------------------------- 68 69Merging is a delicate process in CVS and requires the 70following disciplined steps in order to prevent conflicts 71in the future. Conflicts can be hard to solve! 72 73Merging from branch A to branch B requires that the A branch 74has a tag indicating the previous merger. This tag is called 75'merged_from_A_to_B'. After merging, the tag is moved in the 76A branch to remember this merger for future merge actions. 77 78IMPORTANT: AFTER COMMITTING A SUCCESFUL MERGE IN THE 79REPOSITORY, THE TAG MUST BE SET ON THE SOURCE BRANCH OF THE 80MERGE ACTION (REPLACING EXISTING TAGS WITH THE SAME NAME). 81 82Merge all changes in DEVEL since our last merge to main: 83 84In the working copy of the main trunk: 85cvs update -P -jmerged_from_DEVEL_to_main -jDEVEL 86 87(This will apply the changes between 'merged_from_DEVEL_to_main' 88and 'DEVEL' to your work set of files) 89 90We can now commit the merge result. 91cvs commit -R -m "Merged from DEVEL to main." 92 93If this worked out OK, we now move the tag in the DEVEL branch 94to this merge point, so we can use this point for future merges: 95 96cvs rtag -F -r DEVEL merged_from_DEVEL_to_main lwip 97 984 How to release lwIP 99--------------------- 100 101First, checkout a clean copy of the branch to be released. Tag this set with 102tag name "STABLE-0_6_3". (I use release number 0.6.3 throughout this example). 103 104Login CVS using pserver authentication, then export a clean copy of the 105tagged tree. Export is similar to a checkout, except that the CVS metadata 106is not created locally. 107 108export CVS_RSH=ssh 109cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ 110 -r STABLE-0_6_3 -d lwip-0.6.3 lwip 111 112Archive this directory using tar, gzip'd, bzip2'd and zip'd. 113 114tar czvf lwip-0.6.3.tar.gz lwip-0.6.3 115tar cjvf lwip-0.6.3.tar.bz2 lwip-0.6.3 116zip -r lwip-0.6.3.zip lwip-0.6.3 117 118Now, sign the archives with a detached GPG binary signature as follows: 119 120gpg -b lwip-0.6.3.tar.gz 121gpg -b lwip-0.6.3.tar.bz2 122gpg -b lwip-0.6.3.zip 123 124Upload these files using anonymous FTP: 125ncftp ftp://savannah.gnu.org/incoming/savannah/lwip 126 127ncftp>mput *0.6.3.* 128 129Additionally, you may post a news item on Savannah, like this: 130 131A new 0.6.3 release is now available here: 132http://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3 133 134You will have to submit this via the user News interface, then approve 135this via the Administrator News interface.