a82212bd36e1074408974b466798b9966bbaf49bvboxsyncDaily Use Guide for using Savannah for lwIP
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTable of Contents:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync1 - Obtaining lwIP from the CVS repository
a82212bd36e1074408974b466798b9966bbaf49bvboxsync2 - Committers/developers CVS access using SSH (to be written)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync3 - Merging from DEVEL branch to main trunk (stable branch)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync4 - How to release lwIP
a82212bd36e1074408974b466798b9966bbaf49bvboxsync1 Obtaining lwIP from the CVS repository
a82212bd36e1074408974b466798b9966bbaf49bvboxsync----------------------------------------
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTo perform an anonymous CVS checkout of the main trunk (this is where
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncbug fixes and incremental enhancements occur), do this:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncOr, obtain a stable branch (updated with bug fixes only) as follows:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \
a82212bd36e1074408974b466798b9966bbaf49bvboxsync -r STABLE-0_7 -d lwip-0.7 lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncOr, obtain a specific (fixed) release as follows:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \
a82212bd36e1074408974b466798b9966bbaf49bvboxsync -r STABLE-0_7_0 -d lwip-0.7.0 lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync3 Committers/developers CVS access using SSH
a82212bd36e1074408974b466798b9966bbaf49bvboxsync--------------------------------------------
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncThe Savannah server uses SSH (Secure Shell) protocol 2 authentication and encryption.
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncAs such, CVS commits to the server occur through a SSH tunnel for project members.
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTo create a SSH2 key pair in UNIX-like environments, do this:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncssh-keygen -t dsa
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncUnder Windows, a recommended SSH client is "PuTTY", freely available with good
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncdocumentation and a graphic user interface. Use its key generator.
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncNow paste the id_dsa.pub contents into your Savannah account public key list. Wait
a82212bd36e1074408974b466798b9966bbaf49bvboxsynca while so that Savannah can update its configuration (This can take minutes).
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTry to login using SSH:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncssh -v your_login@cvs.sv.gnu.org
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncIf it tells you:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncAuthenticating with public key "your_key_name"...
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncServer refused to allocate pty
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncthen you could login; Savannah refuses to give you a shell - which is OK, as we
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncare allowed to use SSH for CVS only. Now, you should be able to do this:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncexport CVS_RSH=ssh
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncafter which you can edit your local files with bug fixes or new features and
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccommit them. Make sure you know what you are doing when using CVS to make
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncchanges on the repository. If in doubt, ask on the lwip-members mailing list.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(If SSH asks about authenticity of the host, you can check the key
a82212bd36e1074408974b466798b9966bbaf49bvboxsync fingerprint against http://savannah.nongnu.org/cvs/?group=lwip)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync3 Merging from DEVEL branch to main trunk (stable)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync--------------------------------------------------
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncMerging is a delicate process in CVS and requires the
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncfollowing disciplined steps in order to prevent conflicts
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncin the future. Conflicts can be hard to solve!
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncMerging from branch A to branch B requires that the A branch
a82212bd36e1074408974b466798b9966bbaf49bvboxsynchas a tag indicating the previous merger. This tag is called
a82212bd36e1074408974b466798b9966bbaf49bvboxsync'merged_from_A_to_B'. After merging, the tag is moved in the
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncA branch to remember this merger for future merge actions.
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncIMPORTANT: AFTER COMMITTING A SUCCESFUL MERGE IN THE
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncREPOSITORY, THE TAG MUST BE SET ON THE SOURCE BRANCH OF THE
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncMERGE ACTION (REPLACING EXISTING TAGS WITH THE SAME NAME).
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncMerge all changes in DEVEL since our last merge to main:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncIn the working copy of the main trunk:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs update -P -jmerged_from_DEVEL_to_main -jDEVEL
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(This will apply the changes between 'merged_from_DEVEL_to_main'
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncand 'DEVEL' to your work set of files)
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncWe can now commit the merge result.
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs commit -R -m "Merged from DEVEL to main."
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncIf this worked out OK, we now move the tag in the DEVEL branch
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncto this merge point, so we can use this point for future merges:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs rtag -F -r DEVEL merged_from_DEVEL_to_main lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync4 How to release lwIP
a82212bd36e1074408974b466798b9966bbaf49bvboxsync---------------------
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncFirst, checkout a clean copy of the branch to be released. Tag this set with
a82212bd36e1074408974b466798b9966bbaf49bvboxsynctag name "STABLE-0_6_3". (I use release number 0.6.3 throughout this example).
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncLogin CVS using pserver authentication, then export a clean copy of the
a82212bd36e1074408974b466798b9966bbaf49bvboxsynctagged tree. Export is similar to a checkout, except that the CVS metadata
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncis not created locally.
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncexport CVS_RSH=ssh
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \
a82212bd36e1074408974b466798b9966bbaf49bvboxsync -r STABLE-0_6_3 -d lwip-0.6.3 lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncArchive this directory using tar, gzip'd, bzip2'd and zip'd.
a82212bd36e1074408974b466798b9966bbaf49bvboxsynctar czvf lwip-0.6.3.tar.gz lwip-0.6.3
a82212bd36e1074408974b466798b9966bbaf49bvboxsynctar cjvf lwip-0.6.3.tar.bz2 lwip-0.6.3
a82212bd36e1074408974b466798b9966bbaf49bvboxsynczip -r lwip-0.6.3.zip lwip-0.6.3
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncNow, sign the archives with a detached GPG binary signature as follows:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncUpload these files using anonymous FTP:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncncftp>mput *0.6.3.*
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncAdditionally, you may post a news item on Savannah, like this:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncA new 0.6.3 release is now available here:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynchttp://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncYou will have to submit this via the user News interface, then approve
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncthis via the Administrator News interface.