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:[email protected]:/sources/lwip checkout lwip
|
---|
19 |
|
---|
20 | Or, obtain a stable branch (updated with bug fixes only) as follows:
|
---|
21 | cvs -z3 -d:pserver:[email protected]:/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:[email protected]:/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 [email protected]
|
---|
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:[email protected]:/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:[email protected]:/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.
|
---|