Paul's Blog Entries for August 2006
Tuesday 1st August 2006
New Computer
With funding for my new company imminent, I placed an order for some of the bits for my new computer with Tekheads:
- Thermaltake Tsunami Aluminium Case - Silver
- Enermax Liberty 500W ELT500AWT Modular PSU - SLI Ready
- Abit AN8-32X SLI PCI-E (Socket 939) Motherboard
- AMD Athlon 64 X2 Dual Core 4600+ (939 Pin) - Retail with Fan
eVGA GeForce 7900GT 256MB GDDR3 HDTV-Out/Dual DVI (PCI-E) - Retail 10yr Warranty
- 2x Seagate Barracuda 7200.10 SATAII NCQ 3Gb/s 320GB 16MB Cache OEM
Wednesday 2nd August 2006
Hospital Visit
Drove Bingning's mum to her appointment at the Dental Hospital. Took Leon for his first visit to the City of Manchester Stadium on the way back.
New Computer
Collected some more bits for the new computer from Aria Technology:
Cherry CyMotion Expert Combo Keyboard (black)
- Logitech Premium Optical Mouse (black)
- Sony DRU820A 16x Dual Layer DVDRW
- OCZ Platinum XTC 2GB DDR2 RAM kit, PC2 6400
Arrived back home to find that I'd missed City Link's attempted delivery of the other bits, so will have to wait until tomorrow to put it all together.
Whilst I was at Aria, I also bought a new PSU and some case fans to replace those in my current desktop box, which has become very noisy recently. It's certainly much quieter now.
I actually had to drill some holes in the plastic front fascia of the case to allow air in for the front case fan (there's a nice fan mount there and holes in the metal chassis, but nowhere for the air to come from!).
Thursday 3rd August 2006
Local Packages
Updated perl-Module-CoreList to 2.06
Updated dovecot to 1.0.rc5
New Computer
The parts from Tekheads arrived just after lunchtime. It soon became apparent that I had the wrong sort of memory. Silly me didn't know the difference between dual-channel DDR and DDR2. The OCZ memory I bought was the latter but the Abit motherboard required the former. I took the memory back to Aria who gave me a credit note for the full amount, which was nice given that they have prominent signs stating that Items bought in error and no longer wanted will be subject to a 25% administration charge. So that was nice. The Corsair TWINX2048-3200PT memory I bought as a replacement was actually cheaper than the OCZ memory, so I got a refund too
Friday 4th August 2006
VirtenSys Limited
My new employer has just completed a $12 million venture capital funding round. So I'll get paid next week
Local Packages
Made some samba packages that addressed the CIFS issues I've been having.
Saturday 5th August 2006
New Computer
Got it up and running. Installed mock and built x86_64 versions of the samba packages from yesterday. Was suitably impressed with the performance. Copied my home directory over from the old box (an 800MHz Athlon) and got my desktop back. I'm a happy bunny right now.
Sunday 6th August 2006
Local Packages
Reoganised the repository to add an architecture directory underneath the distribution directory now that I can build packages for both i386 and x86_64 architectures. I updated the mirrorlists accordingly and started populating the FC5/x86_64 repo.
Monday 7th August 2006
Local Packages
Continued populating the FC5/x86_64 repository
Updated perl-Pod-Coverage to 0.18; the new "fully qualified" test fails on perl 5.8.0 though:
t/02simple.......ok 32/33# Failed test (t/02simple.t at line 84) t/02simple.......NOK 33# got: undef # expected: '1' # Looks like you failed 1 tests of 33. t/02simple.......dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 33 Failed 1/33 tests, 96.97% okay
- I worked around this by patching out this test for builds on Red Hat Linux 9 and Enterprise Linux 3
- It seems that some people aren't using the mirrorlists, and so are trying to access the repositories at the old locations; for now I'll redirect these:
RedirectMatch permanent /ftp/contrib/yum-repo/([^/]+)/repodata(.*)$ http://www.city-fan.org/ftp/contrib/yum-repo/$1/i386/repodata$2
Updated gtkwave to 3.0.8
Updated bittorrent to 4.20.7; --dfile support in the tracker is still broken
Updated curl to 7.15.5
Fedora Extras
Updated gtkwave to 3.0.8
Tuesday 8th August 2006
Local Packages
Updated dovecot to 1.0.rc6
The RedirectMatch fix for people accessing the repo using the old hierarchy worked OK for the metadata and repoview files, but not for the packages themselves, which didn't trigger the rewrite rule. So now I have a much better solution, which also redirects accesses to missing repoview pages to the repoview index for the repo concerned.
Firstly, in httpd.conf:
# RewriteLock must be in main server config RewriteEngine on RewriteLock /var/log/httpd/REWRITE.lock <VirtualHost *:80> ... RewriteEngine on RewriteLog /var/log/httpd/cfo-rewrite_log RewriteLogLevel 1 RewriteMap repo-remap prg:/usr/local/bin/repo-remap ... # # Make the ftp server's files available by http too. # Alias /ftp /home/ftp/pub <Directory /home/ftp/pub> Options Indexes Includes FollowSymLinks IndexOptions +SuppressColumnSorting +VersionSort AllowOverride None order allow,deny allow from all </Directory> # Remap accesses to files in repos that are no longer there # (Skip next 3 rules for other locations) RewriteRule !^/ftp/contrib/yum-repo/[^/]+/.*$ - [S=3] # Try remapping the request to the new locations RewriteRule ^/ftp/contrib/yum-repo/(.*)$ ${repo-remap:$1} # If we need a redirect, do it RewriteRule ^/GOTO:(.*)$ $1 [R=permanent,L] # If the file exists or is just a subtle redirect, pass through to next handler RewriteRule ^(.*)$ - [PT] </VirtualHost>
The rewrite map script, /usr/local/bin/repo-remap:
# generate substitution URL on stdout # # All input data is relative to the yum-repo directory # $repodir = '/home/ftp/pub/contrib/yum-repo'; $repouri = '/ftp/contrib/yum-repo'; $repourl = '/GOTO:http://www.city-fan.org' . $repouri; while (<>) { chomp; $reporeq = $_; # If the distro directory doesn't exist, bail out straight away ( $distro = $reporeq ) =~ s|/.*||; if ( ! -d $repodir . '/' . $distro ) { print "$repouri/$reporeq\n"; next; } # If requesting index.php, change to index.html $reporeq =~ s|/index\.php$|/index.html|; # See if it's a request using the architecture directory ( $filereq = $reporeq ) =~ s|[^/]*/||; ( $archdir = $filereq ) =~ s|/.*||; if ( -d $repodir . '/' . $distro . '/' . $archdir ) { # Request has proper directory hierarchy # If requested file exists, pass through if ( -f $repodir . '/' . $reporeq || -d $repodir . '/' . $reporeq ) { print "$repouri/$reporeq\n"; next; } # Otherwise, redirect to repo index page print $repourl . '/' . $distro . '/' . $archdir . "/repodata/index.html\n"; next; } else { # Request has old directory structure # See if inserting the 'i386' directory fixes the issue if ( -f $repodir . '/' . $distro . '/i386/' . $filereq || -d $repodir . '/' . $distro . '/i386/' . $filereq ) { print $repourl . '/' . $distro . '/i386/' . $filereq . "\n"; next; } # Otherwise, redirect to repo index page print $repourl . '/' . $distro . "/i386/repodata/index.html\n"; next; } }
- I don't do much perl, so there may be much better ways of doing the above, but it works for me
Updated unrar to 3.6.7 (a version that actually builds on my x86_64 box)
Fedora Extras
Addressed Bug #201691 on perl-MIME-tools, requesting that some of the examples be installed into /usr/bin
Wednesday 9th August 2006
Local Packages
Ugo Bellavance alerted me to a sendmail problem regarding PID files; there was also a reference to this and a shared memory issue, both of which had patches available, in Bug #198099, so I built a new package incoporating those patches
SELinux and mock
Got a bit further trying to track down the cause of the hangs in mock when trying to build for a Fedora Core 2 target on a host with SELinux enabled.
Thursday 10th August 2006
Local Packages
Updated sendmail to 8.13.8, which includes the fixes for the issues I patched last night
Updated bittorrent to 4.20.8; --dfile is still broken for the tracker
Updated bw-whois to 5.0
Updated perl-Module-CoreList to 2.07
Friday 11th August 2006
Local Packages
Updated gtkwave to 3.0.9
Finally resolved the problem with building Fedora Core 2 packages in mock on a system with SELinux enabled; it's been around a year since I first came across this issue so I'm in a good mood today!
Fedora Extras
Updated gtkwave to 3.0.9
Monday 14th August 2006
Local Packages
- Started populating x86_64 repositories for Fedora Core 4 and Red Hat Enterprise Linux 4
Updated gtorrentviewer to include missing buildreq intltool
Updated tzip to build useful debuginfo packages
Tuesday 15th August 2006
Local Packages
- Continued with the population of the Fedora Core 4 and Centos 4 x86_64 repositories
Tweaked proftpd to build successfully in mock (add buildreqs of tcp_wrappers and zlib-devel, don't fail if the ProFTPD GPG key isn't in the builder's keyring)
Tweaked smbldap-tools and perl-WeakRef to build with the right distribution tags
Fedora Extras
Had lunch with Paul Johnson (one of the people I sponsored for Fedora Extras CVS access) at The Crescent in Salford
Wednesday 16th August 2006
Local Packages
Updated buildsys-build in require python on all releases prior to Fedora Core 5; without this, most python module builds in mock break
- Completed populating the Fedora Core 4 and CentOS 4 x86_64 repositories
Website
Updated my home page to reflect my new employment status
Thursday 17th August 2006
Internet Outage
A power failure at Telehouse caused around 6 hours of downtime for my home machine (on PlusNet) and around three hours for the work mail server (on !Clara.Net)
Local Packages
Updated unrar to 3.6.8
Friday 18th August 2006
Local Packages
Updated bittorrent to 4.20.9; at last everything seems to be working
Updated dovecot to 1.0.rc7
Sunday 20th August 2006
Woken by Alarm
The temperature alarm on laurel (my old desktop) went off again, at around 4:10am. I'm not at my best at that time of day. It was running the makewhatis -w from the cron.weekly job. I killed the job, the alarm beeping stopped shortly afterwards and I went back to bed.
In the afternoon I fitted an addition fan blowing at the bridge chip on the Gigabyte GA-7IXE4 motherboard (which has a small heatsink but no fan). I also discovered that the BIOS display of the hardware monitoring page locks up after trying to display the voltage of the -5V rail and it has to be reset using the reset switch. The lm_sensors output for this rail indicates something above +3V so I suspect that there is a hardware problem there. I told lm_sensors to ignore that rail, and also the temp3 sensor, which doesn't appear to be connected. I bumped up the CPU temperature alarm to not go off until 90°C too. Running makewhatis -w manually and watching the sensors output, the CPU temperature peaked at 80.5°C so that should be OK now.
/etc/modprobe.conf:
alias char-major-89 i2c-dev
/etc/sensors.conf:
chip "w83782d-*" "w83627hf-*" label in0 "Vcore" label in1 "Vcache" label in2 "+3.3V" label in3 "+5V" label in4 "+12V" label in5 "-12V" label in6 "-5V" label in7 "V5SB" label in8 "VBat" compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1) compute in4 ((28/10)+1)*@ , @/((28/10)+1) compute in5 (5.14 * @) - 14.91 , (@ + 14.91) / 5.14 compute in6 (3.14 * @) - 7.71 , (@ + 7.71) / 3.14 compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1) set in0_min vid*0.95 set in0_max vid*1.05 set in1_max 3.81 set in1_min 2.24 set in2_min 3.3 * 0.95 set in2_max 3.3 * 1.05 set in3_min 5.0 * 0.95 set in3_max 5.0 * 1.05 set in4_min 12 * 0.90 set in4_max 12 * 1.10 set in5_max -12 * 0.90 set in5_min -12 * 1.10 set in6_max -5 * 0.95 set in6_min -5 * 1.05 set in7_min 5 * 0.95 set in7_max 5 * 1.05 set in8_min 3.0 * 0.80 set in8_max 3.0 * 1.20 ignore in6 ignore temp3 set temp1_over 40 set temp1_hyst 37 set beep_enable 1
Monday 21st August 2006
Fedora Extras
Updated gtkwave to 3.0.10
Local Packages
Updated gtkwave to 3.0.10
Updated pptpconfig to 20060821
PPTP Client
Updated pptpconfig to 20060821
Discovered a change in the way sf.net CVS access works. Instead of:
$ cvs -d :ext:username@cvs.sf.net:/cvsroot/projectname checkout modulename
- It now needs:
$ cvs -d:ext:username@projectname.cvs.sourceforge.net:/cvsroot/projectname checkout modulename
This change probably happened quite a while ago but I'm not very active in sf.net CVS.
Thursday 24th August 2006
Local Packages
Made some significant changes to my buildsystem:
Used suggestions from Extras/MockTricks to enable the autocache of mock buildroots to speed up mock. It's interesting to see how much the size of the minimal buildroot (the packages listed at fedoraProject:Packaging/Guidelines#Exceptions plus their dependencies) changes between distributions:
$ ls -l /var/lib/mock/root-cache/ total 1915456 -rw-rw-r-- 1 root mock 81888007 Aug 24 11:42 centos-3-i386.tar.gz -rw-rw-r-- 1 root mock 85405813 Aug 24 11:54 centos-3-x86_64.tar.gz -rw-rw-r-- 1 root mock 121852773 Aug 24 11:40 centos-4-i386.tar.gz -rw-rw-r-- 1 root mock 128487310 Aug 24 11:52 centos-4-x86_64.tar.gz -rw-rw-r-- 1 root mock 89651706 Aug 24 11:31 fedora-1-i386-core.tar.gz -rw-rw-r-- 1 root mock 92763322 Aug 24 11:21 fedora-2-i386-core.tar.gz -rw-rw-r-- 1 root mock 130415162 Aug 24 11:11 fedora-3-i386-core.tar.gz -rw-rw-r-- 1 root mock 138236605 Aug 24 11:03 fedora-4-i386-core.tar.gz -rw-rw-r-- 1 root mock 143118349 Aug 24 11:58 fedora-4-x86_64-core.tar.gz -rw-rw-r-- 1 root mock 128570517 Aug 24 10:59 fedora-5-i386-core.tar.gz -rw-rw-r-- 1 root mock 132355621 Aug 24 12:06 fedora-5-x86_64-core.tar.gz -rw-rw-r-- 1 root mock 223028304 Aug 24 10:53 fedora-development-i386-core.tar.gz -rw-rw-r-- 1 root mock 229692899 Aug 24 10:40 fedora-development-x86_64-core.tar.gz -rw-rw-r-- 1 root mock 57085074 Aug 24 11:48 redhat-73-i386.tar.gz -rw-rw-r-- 1 root mock 86610677 Aug 24 11:46 redhat-8-i386.tar.gz -rw-rw-r-- 1 root mock 90143315 Aug 24 11:44 redhat-9-i386.tar.gz
Also from Extras/MockTricks, I set up a local squid cache. This isn't needed for any of the current distribution releases I'm building for since I keep local mirrors of those, but it enables me to build packages for rawhide without having to constantly re-download lots of large packages.
I made myself a wrapper script (mb) to run mock, so as to ensure that I don't forget to use the --autocache option or use setarch i386 for 32-bit builds. It also gives me a shorthand notation for the distributions, so I can do:
$ mb fc4.32 some.src.rpm $ mb fc4.64 some.src.rpm
and I'll get 32 and 64 bit builds for FC4
- Here's the script in case it's of any use to anyone (it'll need tweaking):
# mb: mock build # mb distro.archbits options ... # # e.g. # mb rhl7.32 rebuild some.rpm # mb fc5.64 rebuild some.rpm # How to use mb usage () { echo "mb: usage: mb distro.archbits options ..." } # Parse distro.archbits case "$#" in 0|1) usage 1>&2 exit 1;; *) root="$1" shift;; esac distro=${root/%.*/} archbits=${root/#*.} if [ "${distro}.${archbits}" != "$root" ]; then echo "mb: cannot parse distro.archbits: $root" 1>&2 exit 1 fi # Only valid values for archbits are 32 and 64 case "$archbits" in 32|64) ;; *) echo "mb: archbits should be 32 or 64: $archbits" exit 1;; esac # Only valid values for distro are rhl[7-9], rhel[3-4], fc[1-6] case "$distro" in rhl7|rhl8|rhl9) ;; rhel3|rhel4) ;; fc1|fc2|fc3|fc4|fc5|fc6) ;; *) echo "mb: valid distros are: rhl[7-9], rhel[3-4], fc[1-6]" 1>&2 exit 1;; esac # Work out buildroot name case "$root" in rhl7.32) buildroot=redhat-73-i386;; rhl8.32) buildroot=redhat-8-i386;; rhl9.32) buildroot=redhat-9-i386;; rhel3.32) buildroot=centos-3-i386;; rhel3.64) buildroot=centos-3-x86_64;; rhel4.32) buildroot=centos-4-i386;; rhel4.64) buildroot=centos-4-x86_64;; fc1.32) buildroot=fedora-1-i386-core;; fc2.32) buildroot=fedora-2-i386-core;; fc3.32) buildroot=fedora-3-i386-core;; fc4.32) buildroot=fedora-4-i386-core;; fc4.64) buildroot=fedora-4-x86_64-core;; fc5.32) buildroot=fedora-5-i386-core;; fc5.64) buildroot=fedora-5-x86_64-core;; fc6.32) buildroot=fedora-devel-i386-core;; fc6.64) buildroot=fedora-devel-x86_64-core;; *) echo "mb: unsupported distribution/architecture: $root" 1>&2 exit 1;; esac # Run mock case $archbits in 32) echo setarch i386 mock --autocache -r $buildroot "$@" setarch i386 mock --autocache -r $buildroot "$@";; 64) echo mock --autocache -r $buildroot "$@" mock --autocache -r $buildroot "$@";; esac
Updated buildsys-macros to use the next major release version if the release version number extracted from /etc/redhat-release has a number larger than 80 after a decimal point. So for instance, building it on the current rawhide (FC 5.91) returns:
dist .fc6 fedora 6
Friday 25th August 2006
Local Packages
Updated libidn to 0.6.6
Updated perl-Mail-Mbox-MessageParser to 1.4005
Fedora Extras
Updated perl-Mail-Mbox-MessageParser to 1.4005
PPTP Client
I've cobbled together a repoclosure script to check that there are no broken dependencies in the repositories before I publish them, so as to avoid problems like the one with the SuSE package sneaking into the Fedora repo; it is very resource-intensive though, so I'm going to have to migrate it to the main buildsystem box so it doesn't cripple the server
Built libglade and gnome-libs packages for FC6 in case my Fedora Extras submissions for these packages aren't reviewed before FC6 is released
Monday 28th August 2006
Fedora Extras
Fixed Bug #202328 relating to one of the libraries shipped in ORBit having undefined weak symbol references
Local Packages
Fixed python-twisted-names not to have dependency on deprecated (and no longer in my repository) python-twisted-flow package (thanks to Quentin Arce for the report); also did a few other spec file cleanups whilst I was at it, such as preventing creation of a debuginfo package and not %ghost-ing the .pyo files
Tuesday 29th August 2006
SELinux Policy Update
The latest FC5 SELinux policy package, selinux-policy-2.3.7-2.fc5, contains my context fixes for /etc/aliases(.&) but more importantly, splits out a separate selinux-policy-devel package. This means that the procedure to BuildSeLinuxPolicyModules is now the same in FC5 as for FC6 onwards, which is nice
Fedora Extras
Removed python-devel buildreq and stopped %ghost-ing the .pyo files in bittorrent
Fixed buildreqs for lat (gtk-sharp2 split to gtk-sharp2 and gnome-sharp, both with -devel packages for FC6)
Tidied up spec files for perl-Convert-BinHex and perl-IO-stringy to my own cosmetic preferences (packages were previously orphaned)
Rebuilt as part of the FE6 mass rebuild:
bluefish
grepmail
gtorrentviewer
milter-regex
perl-Authen-DigestMD5
perl-Class-Loader
perl-Crypt-DH
perl-Crypt-DSA
perl-Crypt-Primes
perl-Crypt-Random
perl-Crypt-RSA
perl-Crypt-SmbHash
perl-Data-Buffer
perl-Date-Simple
perl-Digest-BubbleBabble
perl-Digest-MD2
perl-FileHandle-Unget
perl-IO-stringy
Local Packages
Updated contagged and mod_fcgid to simplify SELinux buildreqs
Wednesday 30th August 2006
Fedora Extras
Rebuilt as part of the FE6 mass rebuild:
perl-MailTools
perl-Math-GMP
perl-Math-Pari
perl-Tie-EncryptedHash
pptp
rbldnsd
spamass-milter
Thursday 31st August 2006
Mock/Squid Problem Resolved
As I don't want to maintain full local mirrors of the Fedora development repositories (i386 and x86_64), I've configured my buildsystem to use offsite repositories via a squid cache. Unfortunately the squid setup wasn't caching the packages. This turned out to be due to my selection of mirror:
$ HEAD "http://www.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/core/development/i386/os/Fedora/RPMS/alchemist-devel-1.0.36-1.2.2.i386.rpm" 200 OK Cache-Control: no-store Connection: close Date: Thu, 31 Aug 2006 10:22:26 GMT Via: 1.1 www.mirrorservice.org Accept-Ranges: bytes ETag: "616686-23a03-fe262140" Server: Apache/2.0.54 (Debian GNU/Linux) Content-Length: 145923 Content-Type: application/x-redhat-package-manager Last-Modified: Fri, 25 Aug 2006 02:04:13 GMT Client-Date: Thu, 31 Aug 2006 10:22:31 GMT Client-Peer: 212.219.56.133:80 Client-Response-Num: 1
Switching to a more sane mirror resolved the problem.
Local Packages
Wrote a script to check for dependency closure in my repository, which identified a number of issues:
I removed smbldap_tools from the RHL9, FC1, and RHEL3 due to unsatisfied dependencies:
perl(Unicode::MapUTF8)
perl(Net::LDAP::LDIF)
perl(Net::LDAP)
I rebuilt perl-Module-Compat with the epoch included in the versioned perl dependency for RHL9 and RHEL3
I rebuilt ud, pop3gwd, and hot-babe on older distributions to avoid dependencies on recent glibc symbols
Built RHEL4.x86_64 versions of perl-BerkeleyDB, perl-Convert-UUlib, perl-Digest-MD4, perl-MIME-XBase64, perl-Unicode-Map, perl-Unicode-Map8, perl-Unicode-String, perl-Unix-Syslog, and perl-version, all of which I'd somehow missed building when initially populating the repository
I also began to populate a Fedora Core Development version of my local repository.
Fedora Extras
Updated perl-Net-SSH-Perl so as not to run the 03-packet test, which is prone to hanging (CPAN RT#6101)
Previous Month: July 2006
Next Month: September 2006