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">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <meta name="generator" content="Movable Type 5.2.3" />
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"$>" />
12 <title>Status for Andrew DeFaria: July 24, 2005 - July 30, 2005 Archives</title>
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" />
18 <body class="layout-one-column">
20 <div id="container-inner" class="pkg">
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>
30 <div id="pagebody-inner" class="pkg">
32 <div id="alpha-inner" class="pkg">
34 <p class="content-nav">
35 <a href="http://defaria.com/blogs/Status/archives/week_2005_07_17.html">« 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 »</a>
43 <h2 class="date-header">July 29, 2005</h2>
45 <div class="entry" id="entry-395">
46 <h3 class="entry-header">verifycrs</h3>
47 <div class="entry-content">
48 <div class="entry-body">
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>
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>
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>
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>
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>
64 <p>In order to minimize false diffs, checkouts are down without keywords (i.e. -kk).</p>
66 <div class="code"><pre>
67 Usage: verifycrs [-u] [-v] [-d]
68 -fcvsroot <CVSROOT> -fmod <CVS module> -ftag <tag>
69 -tcvsroot <CVSROOT> -tmod <CVS module> -ttag <tag>
70 [-c <CRs...>|-e <ECRs...>]
75 -v Turn on verbose 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 <CRs> CR numbers included in this export/import
84 <ECRs> ECR numbers included in this export/import
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>
98 <h2 class="date-header">July 27, 2005</h2>
100 <div class="entry" id="entry-394">
101 <h3 class="entry-header">complogs</h3>
102 <div class="entry-content">
103 <div class="entry-body">
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>
107 <li>Created complogs to compare two log files and print out their differences in terms of warnings</li>
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>
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>
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>
118 <div class="code"><pre>
120 # Return the line possibly removing any line number. For example, a
121 # line such as the following:
123 # syscall_switch.c:14: warning: initialization from incompatible pointer type
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.
131 return $line =~ s/(\w*\.[ch]):\d*:( warning:)/$1$2/;
135 <p>This helps cut down on warnings that have only changed line numbers.</p>
137 <p>I've tested this with a few install.log's that I've found. For example:</p>
139 <div class="code"><pre>
140 saturn:complogs 20050718.install.log 20050722.install.log
141 ----------------------------------------------------------------------
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 ----------------------------------------------------------------------
152 ----------------------------------------------------------------------
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 ----------------------------------------------------------------------
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>
233 <h2 class="date-header">July 26, 2005</h2>
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">
240 <li>Added CVSCommit to CVSAdm.pm and changed it so that CVS commits are now happening when changes happen to the file</li>
242 <li>Finished up CVS Adm Web App Prototype</li>
245 <h3>CVS Adm Web App Tutorial</h3>
247 <p>To access this web app go to http://saturn.lynx.com and select CVS Adm from the menu on the left.</p>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
279 <p>The group <i>cvsadm</i> and the system user <i>cvsroot</i> are protected from being deleted.</p>
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>