Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / week_2005_07_24.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
4 <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta name="generator" content="Movable Type 5.2.3" />
7
8    <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles-site.css" type="text/css" />
9    <link rel="alternate" type="application/atom+xml" title="Atom" href="http://defaria.com/blogs/Status/atom.xml" />
10    <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://defaria.com/blogs/Status/index.xml"$>" />
11
12    <title>Status for Andrew DeFaria: July 24, 2005 - July 30, 2005 Archives</title>
13
14    <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15    <link rel="prev" href="http://defaria.com/blogs/Status/archives/week_2005_07_17.html" title="July 17, 2005 - July 23, 2005" />
16    <link rel="next" href="http://defaria.com/blogs/Status/archives/week_2005_07_31.html" title="July 31, 2005 - August  6, 2005" />
17 </head>
18 <body class="layout-one-column">
19    <div id="container">
20       <div id="container-inner" class="pkg">
21
22          <div id="banner">
23             <div id="banner-inner" class="pkg">
24                <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
25                <h2 id="banner-description">Searchable status reports and work log</h2>
26             </div>
27          </div>
28
29          <div id="pagebody">
30             <div id="pagebody-inner" class="pkg">
31                <div id="alpha">
32                   <div id="alpha-inner" class="pkg">
33                      
34                      <p class="content-nav">
35                         <a href="http://defaria.com/blogs/Status/archives/week_2005_07_17.html">&laquo; July 17, 2005 - July 23, 2005</a> |
36                         <a href="http://defaria.com/blogs/Status/">Main</a>
37                         | <a href="http://defaria.com/blogs/Status/archives/week_2005_07_31.html">July 31, 2005 - August  6, 2005 &raquo;</a>
38                      </p>
39                      
40                      
41                      
42
43                      <h2 class="date-header">July 29, 2005</h2>
44                      <a id="a000395"></a>
45                      <div class="entry" id="entry-395">
46                         <h3 class="entry-header">verifycrs</h3>
47                         <div class="entry-content">
48                            <div class="entry-body">
49                               <ul>
50   <li>Created a script, verifycrs, which when given a lot of parameters will insure that the file revisions associated with a set of CRs (or ECRs) has been properly migrated into another CVS repository</li>
51 </ul>
52                               
53                               <h3>verifycrs</h3>
54
55 <p>The verifycrs script verify that the files associated with a list
56 of [E]CRs from one CVS repository are present in another CVS repository.</p>
57
58 <p>Odd as it seems we have a situation here where CVS repositories have to remain separate due to contract concerns. Nevertheless code is routinely exported from one repository to the other. Then it is needed to verify that a set of [E]CRs have successfully made it into the other repository.</p>
59
60 <p>The plan here is simple: Checkout both repositories as per a base tag to a temporary area. Then update the "from" repository by utilizing files4[e]cr in update mode. At this point we are sure that the from repository is correct.</p>
61
62 <p>The "to" repository - also checked out via a tag - should be already up to date (IOW we use a to tag of the resultant build). Then all that is needed is to compare the list of files associated with the [E]CRs being imported.</p>
63
64 <p>In order to minimize false diffs, checkouts are down without keywords (i.e. -kk).</p>
65
66 <div class="code"><pre>
67 Usage: verifycrs [-u] [-v] [-d]
68         -fcvsroot &lt;CVSROOT&gt; -fmod &lt;CVS module&gt; -ftag &lt;tag&gt;
69         -tcvsroot &lt;CVSROOT&gt; -tmod &lt;CVS module&gt; -ttag &lt;tag&gt;
70         [-c &lt;CRs...&gt;|-e &lt;ECRs...&gt;]
71
72 Where:
73
74         -u              Display usage
75         -v              Turn on verbose mode
76         -d              Turn on debug mode
77         -fcvsroot       CVSROOT specification for from repository
78         -fmod           CVS module (e.g. los178)
79         -ftag           From tag (e.g. DEV_LOS178_3p0p0_ppc_20050704)
80         -tcvsroot       CVSROOT specification for to repository
81         -tmod           CVS module (e.g. los178)
82         -ttag           To tag (e.g. DEV_HYBRIDOS_3p0p0_ppc_20050707)
83         &lt;CRs&gt;           CR numbers included in this export/import
84         &lt;ECRs&gt;          ECR numbers included in this export/import
85 </pre></div>
86                               
87                               <p class="entry-footer">
88                                  <span class="post-footers">Posted by  at 12:11 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000395.html">Permalink</a>
89                                  
90                                  
91                               </p>
92                            </div>
93                         </div>
94                      </div>
95                      
96                      
97
98                      <h2 class="date-header">July 27, 2005</h2>
99                      <a id="a000394"></a>
100                      <div class="entry" id="entry-394">
101                         <h3 class="entry-header">complogs</h3>
102                         <div class="entry-content">
103                            <div class="entry-body">
104                               <ul>
105   <li>Downloaded a Perl compatible Diff module from <a href="http://perl.plover.com/diff">Perl Diff</a> and adapted it for use with complogs</li>
106
107   <li>Created complogs to compare two log files and print out their differences in terms of warnings</li>
108 </ul>
109                               
110                               <h3>complogs</h3>
111
112 <p>I have developed a script to compare two logfile and print out the differences in terms of warnings. First of all this script leans on a prior script, <i>check</i>, (which should be in /int/bin and /int/bin should be in your path. BTW: That's where complogs is also).</p>
113
114 <p>Secondly it attempts to be semi intelligent WRT comparing warnings. In order to do this I had downloaded a <a href="http://perl.plover.com/diff/">Perl Diff module</a> and adapted it for use with complogs. Normally one would install a Perl module into the system library. But I cannot tell where complog will be run Side note: At a previous company we compiled a version of Perl and placed it on a network accessible area like /int. We also altered it to look at a network path for Perl modules. This meant that one need only install a new Perl module once in the network area and the networked Perl would automatically see it. Lacking that I've installed this Diff.pm into /int/lib.</p>
115
116 <p>This Diff.pm module allows me to diff two arrays and provide a function for determining equality. Thus I have the following function:</p>
117
118 <div class="code"><pre>
119     sub hash {
120       # Return the line possibly removing any line number. For example, a
121       # line such as the following:
122       #
123       # syscall_switch.c:14: warning: initialization from incompatible pointer type
124       #
125       # has a line number (14) in it. A subsequent compile of
126       # syscall_switch.c may generate the same warning but the line number
127       # may change (e.g. 16). It's the same warning so we will remove the
128       # string ":\d*:" from the output. This is a bit kludgy.
129       my $line = shift;
130
131       return $line =~ s/(\w*\.[ch]):\d*:( warning:)/$1$2/;
132     } # hash
133 </pre></div>
134
135 <p>This helps cut down on warnings that have only changed line numbers.</p>
136
137 <p>I've tested this with a few install.log's that I've found. For example:</p>
138
139 <div class="code"><pre>
140     saturn:complogs 20050718.install.log 20050722.install.log
141     ----------------------------------------------------------------------
142     Warnings removed:
143     ----------------------------------------------------------------------
144     1439    bsp_pcibus.c:783: warning: unused variable `bus'
145     1440    bsp_pcibus.c:784: warning: unused variable `dev'
146     1441    bsp_pcibus.c:785: warning: unused variable `func'
147     1442    bsp_pcibus.c:150: warning: 'pci_bridge_init' defined but not used
148     1443    bsp_reboot.c:168: warning: implicit declaration of function `hw_local_reset'
149     1444    bsp_reboot.c:171: warning: implicit declaration of function `stopcpu'
150     ----------------------------------------------------------------------
151     TOTAL:  6
152     ----------------------------------------------------------------------
153     Warnings added:
154     ----------------------------------------------------------------------
155     1881    /usr/los178/3.0.0/ppc_dev/sys/include/kernel/kernel.h:94:1: warning: this is the location of the previous definition
156     3378    regex.h:39:1: warning: "RE_DUP_MAX" redefined
157     3379    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
158     3380    regex.h:39:1: warning: "RE_DUP_MAX" redefined
159     3381    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
160     3382    regex.h:39:1: warning: "RE_DUP_MAX" redefined
161     3383    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
162     3384    regex.h:39:1: warning: "RE_DUP_MAX" redefined
163     3385    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
164     3386    regex.h:39:1: warning: "RE_DUP_MAX" redefined
165     3387    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
166     3388    regex.h:39:1: warning: "RE_DUP_MAX" redefined
167     3389    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
168     3390    regex.h:39:1: warning: "RE_DUP_MAX" redefined
169     3391    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
170     3392    regex.h:39:1: warning: "RE_DUP_MAX" redefined
171     3393    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
172     3394    regex.h:39:1: warning: "RE_DUP_MAX" redefined
173     3395    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
174     3396    regex.h:39:1: warning: "RE_DUP_MAX" redefined
175     3397    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
176     3398    regex.h:39:1: warning: "RE_DUP_MAX" redefined
177     3399    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
178     3400    regex.h:39:1: warning: "RE_DUP_MAX" redefined
179     3401    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
180     3403    regex.h:39:1: warning: "RE_DUP_MAX" redefined
181     3404    /usr/los178/3.0.0/ppc_dev/usr/include/limits.h:162:1: warning: this is the location of the previous definition
182     3412    regex.c:4825: warning: passing arg 2 of `bcmp_translate' discards qualifiers from pointer target type
183     3415    ../tar-1.11.2/getdate.y:807: warning: static declaration of 'getdate_yylex' follows non-static declaration
184     3416    bison.simple:332: warning: previous implicit declaration of 'getdate_yylex' was here
185     3419    /usr/los178/3.0.0/ppc_dev/usr/include/wait.h:58:2: warning: #warning Using <sys/wait.h> instead of <wait.h>
186     3421    pipesize.h:8:1: warning: "PIPESIZE" redefined
187     3422    /usr/los178/3.0.0/ppc_dev/usr/include/conf.h:76:1: warning: this is the location of the previous definition
188     3424    display.c:1155: warning: comparison is always true due to limited range of data type
189     3425    malloc.c:521: warning: conflicting types for built-in function 'malloc'
190     3426    malloc.c:798: warning: conflicting types for built-in function 'calloc'
191     3427    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
192     3428    ../ex/ex_cd.c:75: warning: assignment from incompatible pointer type
193     3429    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
194     3430    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
195     3431    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
196     3432    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
197     3433    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
198     3434    ../vi/getc.c:63: warning: passing arg 3 of `db_eget' from incompatible pointer type
199     3435    ../vi/getc.c:193: warning: passing arg 4 of `db_get' from incompatible pointer type
200     3436    ../common/key.c:159: warning: comparison is always true due to limited range of data type
201     3437    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
202     3438    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
203     3439    ../common/recover.c:368: warning: assignment from incompatible pointer type
204     3440    ../vi/v_txt.c:2184: warning: comparison of distinct pointer types lacks a cast
205     3441    ../vi/v_txt.c:2202: warning: comparison of distinct pointer types lacks a cast
206     3442    ../vi/v_ulcase.c:130: warning: passing arg 4 of `db_get' from incompatible pointer type
207     3443    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
208     3444    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
209     3445    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
210     3446    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
211     3447    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
212     3448    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
213     3449    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
214     3450    /usr/los178/3.0.0/ppc_dev/usr/include/sys/uio.h:21:2: warning: #warning Using <uio.h> instead of <sys/uio.h>
215     3451    /usr/los178/3.0.0/ppc_dev/usr/include/sys/param.h:21:2: warning: #warning Using <param.h> instead of <sys/param.h>
216     3452    /usr/los178/3.0.0/ppc_dev/usr/include/cdefs.h:21:2: warning: #warning Using <sys/cdefs.h> instead of <cdefs.h>
217     3453    /usr/los178/3.0.0/ppc_dev/usr/include/cdefs.h:21:2: warning: #warning Using <sys/cdefs.h> instead of <cdefs.h>
218     ----------------------------------------------------------------------
219     TOTAL:  63
220 </pre></div>
221                               
222                               <p class="entry-footer">
223                                  <span class="post-footers">Posted by  at  6:00 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000394.html">Permalink</a>
224                                  
225                                  
226                               </p>
227                            </div>
228                         </div>
229                      </div>
230                      
231                      
232
233                      <h2 class="date-header">July 26, 2005</h2>
234                      <a id="a000393"></a>
235                      <div class="entry" id="entry-393">
236                         <h3 class="entry-header">CVS Adm Web App Prototype</h3>
237                         <div class="entry-content">
238                            <div class="entry-body">
239                               <ul>
240   <li>Added CVSCommit to CVSAdm.pm and changed it so that CVS commits are now happening when changes happen to the file</li>
241
242   <li>Finished up CVS Adm Web App Prototype</li>
243 </ul>
244                               
245                               <h3>CVS Adm Web App Tutorial</h3>
246
247 <p>To access this web app go to http://saturn.lynx.com and select CVS Adm from the menu on the left.</p>
248
249 <p>Notice that there are several servers in the drop down list (controlled by a cvsadm.conf file). Select penguin and click on <b>Select</b>. Note you could select other servers and see other repositories but any attempts to modify files will result in CVS commit failures. We have not set up CVS access for these other repositories yet.</p>
250
251 <p>The next screen will show you the repositories available for that server. Penguin has only one - andrew-cvs - which is a test cvs repository. Click on <b>Select</b>.</p>
252
253 <p>At this point you're at the <i>Login</i> screen for this server, this repository. For now let's be cvsroot and test some of it's capabilities. The cvsroot user password for this test repository is "cvsroot123". Enter cvsroot user and cvsroot123 for the password and click <b>Login</b>.</p>
254
255 <p>You are now at the <i>Edit User</i> screen. Since you are cvsroot you will see an <b>Admin</b> button. Also as an admin you are presented with a drop down for <b>System User</b> that allows you to modify the system user for a CVS user. Admins are also presented with only a <b>New Password</b> field. This is so that an admin can re/set the password for another user.</p>
256
257 <p><b>Fullname</b> and <b>Email</b> are required fields. Many user entries do not have these fields filled in yet but will be required to enter them when/if they edit their entry. Additionally we've added the concept of groups which are listed below <b>Email</b>.</p>
258
259 <p>Next the repository and read/write access is listed. Finally you have a <b>Submit</b> and a <b>Logout</b> button.</p>
260
261 <p>To edit another user or perform any of the other administrative task select the <b>Admin</b> button. You are now at the <i>Maintenance Menu</i>. This screen presents users, groups and sysusers as drop downs and corresponding Edit/Delete/Create buttons. Let's add a new user - <i>testuser</i>. Select <b>Create User</b>. The <i>Add New User</i> screen is presented. Here you can create a new <b>Username</b> (<i>testuser</i>), assign him to a <b>System User</b>, <b>Password</b>, <b>Fullname</b>, <b>Email</b> as well as assign him to specific groups and set the read/write access to this repository for the user. Then Select <b>Add User</b>.</p>
262
263 <p>After adding <i>testuser</i> click <b>OK</b> and you will be back at the <i>Add New User</i> screen. If you are done adding users select <b>Admin</b> to return to the <i>Maintenance Menu</i>. Notice that <i>testuser</i> is now in the users drop down menu. Select testuser and then select <b>Edit User</b> to edit <i>testuser</i>'s fields.</p>
264
265 <p>Return to the <i>Maintenance Menu</i> and select <i>testuser</i> in the users drop down menu then <b>Delete User</b> to delete this user.</p>
266
267 <p>Try creating a new group <i>men</i> and another new group <i>women</i>. Use <b>Edit User</b> to edit pre-existing users. Notice the new groups of <i>men</i> and <i>women</i> are now listed (but unchecked). Find some men and assign them to be in the <i>men</i> group then click on the <b>Submit</b> button to update their records. Similarly find some women and mark them as such.</p>
268
269 <p>Now return to the <i>Maintenance Menu</i> and select the <i>men</i> group and delete it. CVSAdm will not only remove the <i>men</i> group but it will clear off the group <i>men</i> from the individual entries in the passwd file.</p>
270
271 <p>Now select the <i>women</i> group and then <b>Edit Group</b> and change <i>women</i> -> <i>wonderwomen</i>. CVSAdm will update the groups file as well as the passwd file changing <i>women</i> -> <i>wonderwomen</i>.</p>
272
273 <p>Try adding a system user of say <i>superuser</i>. It now becomes available under the <b>System User</b> drop down.</p>
274
275 <p>Edit a user who's password you do not know as cvsroot to a known password. Now <b>Logout</b> and login as that user using the newly assigned password. Unless you had assign this user to the special group cvsadm you will notice that you are not able to change groups or read/write access to the repository as a normal user.</p>
276
277 <p>The group cvsadm is a special group. It's used to allow another user to be cvsroot-like. Users in the cvsadm group for the server/repository are able to edit/delete/create other users on the <i>Maintenance Menu</i>. They are not allowed to edit/delete/create groups or system users but they are allows to assign other users to groups and/or system users. Only cvsroot can edit/delete/create groups and system users.</p>
278
279 <p>The group <i>cvsadm</i> and the system user <i>cvsroot</i> are protected from being deleted.</p>
280                               
281                               <p class="entry-footer">
282                                  <span class="post-footers">Posted by  at 12:23 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000393.html">Permalink</a>
283                                  
284                                  
285                               </p>
286                            </div>
287                         </div>
288                      </div>
289                      
290                   </div>
291                </div>
292             </div>
293          </div>
294       </div>
295    </div>
296 </body>
297 </html>