Richard Dawe's Home Page

File::ExtAttr 1.09

File::ExtAttr 1.09

AKA the “reduce the CPAN Testers FAIL results” release.

I also fixed a minor bug on Solaris, and documented a difference in the handling of empty attribute values on Mac OS X 10.4 vs. 10.5. See File::ExtAttr on CPAN soon.

Changelog:

1.09 2009-03-07

    - (richdawe) Add note to README about needing to install
                 package that provides the headers <attr/attributes.h>
                 and <attr/xattr.h>.

    - (richdawe) Fix RT #31970: "OS X: setfattr fails to set empty value".
                 According to the CPAN Testers results, this works
                 on Mac OS X 10.5.

                 Skip the "empty" tests on Mac OS X 10.4 and earlier.
                 Document issue.

    - (richdawe) Fix #34394: "Test suite should skip on filesystems
                 with no xattr support when run non-interactively"
                 on Linux.

                 When run interactively, it will suggest what you need
                 to do, to get the test suite to pass.

    - (richdawe) Fix RT #37889: "Crash when operating on a closed file handle
                 on Solaris". This was due to using an uninitialised
                 directory handle.


  
  
  

Fedora 9 vs. VMware-server 1.0.8

Fedora 9 vs. VMware-server 1.0.8

VMware-server 1.0.8 seems to barf on the GTK+ theme files shipped with Fedora 9. I’m using Clearlooks. You can force VMware-server to use the system GTK+ libraries:

export VMWARE_USE_SHIPPED_GTK=no
vmware &

On my F9 x86_64 install, I needed to install a few i386 packages first, before VMware start. VMware-server is an i386 program, so you need these i386 packages to be installed for it to be able to use the system GTK+ libraries:

Linksys wireless gear vs. Xbox 360

Linksys wireless gear vs. Xbox 360

I’ve been trying recently to connect a wired LAN printer and my Xbox 360 to the wireless LAN in our house. This proved trickier than I expected.

First off I wanted to connect my old Linksys WRT54GS v2 wireless access point to the existing wireless network, so that I could hook my printer up to it. The wireless network is using WPA-PSK authentication. I reflash the WRT54GS with OpenWrt, version 8.09 RC1. I didn’t find OpenWrt very friendly, but I managed to get it to join the wireless network. Unfortunately there seemed to be some problem with bridging – the wired and wireless networks were not connected.

Thanks to Linux desktop developers

Thanks to Linux desktop developers

I’ve just caught up with 2 years’ worth of Linux desktop developments (NetworkManager works, user switching, built-in volume controls working on my laptop). I like. Thanks for all the hard work, Linux desktop developers!

PS: Turning on "subpixel aliasing" has made text much more readable.

Occasional lock-ups due to Parallels & FileVault?

Occasional lock-ups due to Parallels & FileVault?

I’ve been running a Windows VM under Parallels on my work Mac. I have my home directory encrypted using FileVault. I’ve had ~5 lock-ups in the past 6 months where my Mac has just locked hard. It always seems to happen when I’m using a Windows VM. I’ve allocated 768 MB of RAM to the Windows VM. The Mac has 2 GB of physical RAM. The disk image is pre-allocated, to avoid performance problems with it being resized on the encrypted volume.

3 mobile broadband on Mac

3 mobile broadband on Mac

I got some mobile broadband from 3 to cope with a two-week gap in my wired broadband provision. I had some pain getting it to work on my work Macbook Pro (which is a US one) running Mac OS X Tiger (10.4.x).

The software gave me an obscure error – "internal error 5370" or similar – when running the 3 Connection Manager software. According to a techie in the 3 store I went to, I needed to download the latest drivers from the 3 website. That was pretty hard to find. It turned out to be on the support page for the Huawei E160G on Mac OS X 10.4. (I don’t recall how I found that page.)

Knowing what rpms you've just built

Knowing what rpms you’ve just built

One idiom I’ve found myself repeating in various projects is a build-all script that builds multiple rpm packages in a certain order. This isn’t very sophisticated – each time I’ve ordered the packages being built manually.

But how do you know what rpms you will get, when you run rpmbuild? You need to know this, so you can install the rpms. Here is a solution:

File::ExtAttr 1.08, (Open)Solaris and 2 xattr schemes

File::ExtAttr 1.08, (Open)Solaris and 2 xattr schemes

I released File::ExtAttr 1.08, which has some changes to make it report errors more consistently ($! should always contain the value of errno now). It also has some build changes, which will hopefully avoid all the CPAN Testers FAIL reports on platforms that don’t have the development packages installed for using xattrs (libattr-devel rpm on Linux).

I development this release on various platforms, but the most exciting one was OpenSolaris 2008.05 (AKA Project Indiana). This is so much easier to install and use than Solaris 10. It’s much more like using a Linux distro. The OpenSolaris LiveCD is very easy to install, and things just seem to work. It took about 6 steps to get a fully functional development environment for File::ExtAttr.

rpm: Filtering dependencies differently for different subpackages

rpm: Filtering dependencies differently for different subpackages

Recently I was trying to work out how to filter rpm Requires/Provides dependencies differently for different subpackages. I was trying to produce a subpackage that was the same as another subpackage, but stripping out some library dependencies. Call the one subpackage foo and the other foo-nodeps. (Don’t ask why I was trying to do this.)

rpm has a way of hooking the dependency generation, as described in FilteringAutomaticDependencies at the Fedora wiki. This is pretty magical. You disable rpm’s internal dependency generation. You can then override the default external dependency generation scripts (if you want). Normally rpm uses find-requires and find-provides in /usr/lib/rpm, or /usr/lib/rpm/redhat on some Red Hat or Red Hat-derived systems. If you do override the scripts, it’s likely you’ll want to call them and filter their output.