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