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