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@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@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@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@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@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@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. |
---|