" /> Status for Andrew DeFaria: May 1, 2005 - May 7, 2005 Archives

« April 24, 2005 - April 30, 2005 | Main | May 8, 2005 - May 14, 2005 »

May 5, 2005

New CVS Reports

I spent some time improving the web based CVS Reports. As you know I recently added reporting for Bluecat Eng and Bluecat Pkgs. But I've also improved the detailed report (e.g. See the 05/05/2005 report for Bluecat Eng) in the following ways:

  • Report now accurately counts files in ECRs as well as the Total file count. Previously if foo.c was checked in as 1.2 then later foo.c was checked in as 1.3 both would be listed thus inflating the file count. This has been fixed.
  • Changes of files since the previous report are now highlighted. This is a very useful thing because the first question you ask yourself when looking at a report is "What changed?". While this might seem trivial it required a lot of rewriting of the PHP code to accomplish this. Since this is just the PHP code that displays the report it has become immediately effective on all previous reports too!

I encourage you to visit these reports. They really can be quite useful. Maybe we can finally turn off the daily email.... ?

Changes to the LOS178/GD packaging scripts

Vinnie pointed out that the packaging script for LOS178 fails to include libstdc++.a. I've looked into this and found that while libstdc++.a is part of 2.1.0, 3.0.0 and GD the packaging script for all 3 failed to include libstdc++.a in the tar images. Further, 3.0.0 includes CR 542, the new TCPIP stack, yet the packaging script does not package up the new TCPIP stack. GD also included the new TCPIP stack ported under CR 15 and I had modified the packaging script on GD to do that.

Here's what I think should happen:

For LOS178 2.1.0:

  • Change the packaging script to include lib/libstdc++.a and lib/thread/libstdc++.a. This script will live on the REL_LOS178_2p1p0-branch.
  • What CR should this be done under?
  • Since there will probably be a rebuild of 2.1.0 do not repackage at this time.

For GD:

  • Change the packaging script for GD to include lib/libstdc++.a and lib/thread/libstdc++.a.
  • Check in those changes under CR 15 (?).
  • Repackage GD.

For LOS178 3.0.0

  • Back port the GD packaging script to 3.0.0.
  • Check in under CR 542 (?).
  • Repackage 3.0.0. This will fix both the problem of not packaging the new TCPIP stack as well as including the libstdc++ components.

May 4, 2005

BC Build failure

  • Attempted full su build of BC from scratch
  • Changed CVS Reports to highlight the differences between this report and the previous one
Andrew DeFaria wrote:

I was asked to build BC 5.3 so I started doing that yesterday (5/2). Today, thanks to the CVS Reports, comparing 20050502 and 20050503, I noticed a few files were checked in yesterday. Specifically int/etc/bc_build_packages and int/etc/build_trg.rc.pmac_g5. Since my build is already started I'm wondering what effect these checkins have.

There is yet another new checkin for int/etc/additional_bc_packages today.

Also, I attempted the build as root this time from the start hoping that picking up these new checkins would allow the build to succeed. Strangely it failed at step 4.71, building nfs-utils:

rpc_sample.c:32: warning: `sccsid' defined but not used
getiversion.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make[2]: *** [getiversion] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2
error: Bad exit status from /usr/lynx/loc_archive/build/20050429/var/tmp/rpm-tmp.28759 (%build)
    Bad exit status from /usr/lynx/loc_archive/build/20050429/var/tmp/rpm-tmp.28759 (%build)

I'm not sure how to proceed with the BC build at this point.

May 3, 2005

BC Build & LOS178 2.1.0 TOB

  • Attempted build of Bluecat 5.3. Build failed in 4.102. New checkins happened so I will attempt a rebuild
  • Built and released LOS178 2.1.0 TOB

May 2, 2005

BC 5.3 20050429 drup

  • Worked on building the 20050429 drop of BC 5.3

I was told to rebuild BC 5.3 as there have been changes that have been checked in. In talking with Sasha I learned that I should login as root and run the do_it script. Sasha said I can specify -h int@t3 to use the int user for CVS checkouts. The do_it script should su to the appropriate users at the appropriate times, etc...

One issue that I found before is one that I found where step 7 had a problem with /mnt/cdrom being already mounted, so I su'ed to root and umounted it. As this build procedure is so long I do not want to get through steps 1-6 only to hit a problem at step 7. I think, however, that step 7 should be enhanced to handle the possibility that /mnt/cdrom is already mounted or the instructions updated to reflect that /mnt/cdrom should not be mounted before starting the build script.

The next problem I had was that do_it su's to bin and attempts to create directories under archive and build for the date but it can't because these parent directories were previously created by int. Changed the owner to bin:bin.

Now I have a problem in that apparently the syntax of -t int@t3 does not work! Although do_it accepts this syntax and it does set CVSROOT to int@t3:/cm/CVS it then executes step 1 which su's to root (!) and eventually does a cvs export -r R_5_3_ppc_20050429 eng/int which fails because root cannot rsh to t3 without a password. Furthermore step 1 is a series of commands, the next of which executes bc_build_host_gnutools.sh which I suspect should be executed as root.

Switch back to starting do_it as the user int is no good because do_it first attempts to su to bin to create directories. int cannot su passwordless to bin. Catch 22!

To address this problem I changed the do_it script:

BUILD_CVS_OWNER=int
 ...
STEP1_CMD="cd $BC_SRC_PREFIX; su $BUILD_CVS_OWNER -c \"cvs export -r $BC_CVS_TAG eng/int\"; \
           $SCRIPTS_PREFIX/bc_build_host_gnutools.sh; \
           su $BUILD_CVS_OWNER -c \"$SCRIPTS_PREFIX/bc_cvs.sh\""

This addresses the cvs export command in STEP1_CMD however there's another problem: bc_build_host_gnutools.sh also issues CVS commands and they similarly fail with "permission denied" errors.

I believe the basic problem is this: BC utilizes CVS' :ext: method for accessing the repository. This method in turn utilizes the underlying transport mechanism of rsh (note that ssh can be used instead by setting CVS_RSH=ssh and, of course, you must have ssh installed - which jaguar does not). In order to use rsh as a transport you must have passwordless login via rsh as the user who executed the CVS command - not the user specification in CVSROOT!!! The Cederqvist seems to bear this out under it's troubleshooting section:

:ext: Try running the rsh program from the command line. For example: "rsh servername cvs -v" should print cvs version information. If this doesn’t work, you need to fix it before you can worry about cvs problems.

So even though CVSROOT says :ext:int@t3:/cm/CVS when a CVS command is run as the user root then the user root needs to be able to rsh to the server without specifying a password. This is a good argument for BC to be set up to use :pserver: instead of :ext: access to the CVS repository.

Changing step 1 to be executed entirely by BUILD_CVS_OWNER:

  STEP1_CMD="su $BUILD_CVS_OWNER -c \"cd $BC_SRC_PREFIX; \
             cvs export -r $BC_CVS_TAG eng/int; \
             $SCRIPTS_PREFIX/bc_build_host_gnutools.sh; \
             $SCRIPTS_PREFIX/bc_cvs.sh\""

Argh! That's not gonna work because bc_build_host_gnutools.sh wants to write out files to directories owned by bin!

I think I'm gonna go back to my stepwise method for now. Still this stepwise method produces RPMs that have ownership problems (files in RPMs are owned by int:staff instead of bin:bin).