a82212bd36e1074408974b466798b9966bbaf49bvboxsyncDaily Use Guide for using Savannah for lwIP
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTable of Contents:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync1 Obtaining lwIP from the CVS repository
a82212bd36e1074408974b466798b9966bbaf49bvboxsync----------------------------------------
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTo perform an anonymous CVS checkout of the main trunk (this is where
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncbug fixes and incremental enhancements occur), do this:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync3 Committers/developers CVS access using SSH
a82212bd36e1074408974b466798b9966bbaf49bvboxsync--------------------------------------------
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:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncssh-keygen -t dsa
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncUnder Windows, a recommended SSH client is "PuTTY", freely available with good
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncdocumentation and a graphic user interface. Use its key generator.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncTry to login using SSH:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncssh -v your_login@cvs.sv.gnu.org
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncIf it tells you:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncAuthenticating with public key "your_key_name"...
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncServer refused to allocate pty
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncexport CVS_RSH=ssh
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(If SSH asks about authenticity of the host, you can check the key
a82212bd36e1074408974b466798b9966bbaf49bvboxsync fingerprint against http://savannah.nongnu.org/cvs/?group=lwip)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync3 Merging from DEVEL branch to main trunk (stable)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync--------------------------------------------------
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!
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncMerge all changes in DEVEL since our last merge to main:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncIn the working copy of the main trunk:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs update -P -jmerged_from_DEVEL_to_main -jDEVEL
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(This will apply the changes between 'merged_from_DEVEL_to_main'
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncand 'DEVEL' to your work set of files)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncWe can now commit the merge result.
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs commit -R -m "Merged from DEVEL to main."
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsynccvs rtag -F -r DEVEL merged_from_DEVEL_to_main lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync4 How to release lwIP
a82212bd36e1074408974b466798b9966bbaf49bvboxsync---------------------
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).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncArchive this directory using tar, gzip'd, bzip2'd and zip'd.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
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
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncNow, sign the archives with a detached GPG binary signature as follows:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncgpg -b lwip-0.6.3.tar.gz
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncgpg -b lwip-0.6.3.tar.bz2
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncgpg -b lwip-0.6.3.zip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncUpload these files using anonymous FTP:
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncncftp ftp://savannah.gnu.org/incoming/savannah/lwip
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncncftp>mput *0.6.3.*
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncAdditionally, you may post a news item on Savannah, like this:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncA new 0.6.3 release is now available here:
a82212bd36e1074408974b466798b9966bbaf49bvboxsynchttp://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncYou will have to submit this via the user News interface, then approve
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncthis via the Administrator News interface.