PaulHowarth/Blog/2008-05-14

Wednesday 14th May 2008

Fedora 9

I got a shiny new PC at work this week so of course Fedora 9 had to be the OS. I'm up and running now after overcoming a few quirks.

Network

Fedora 9 uses NetworkManager by default rather than the traditional network initscript. A consequence of this is that the network comes up later in the boot sequence and the hostname stays as localhost.localdomain unless you tell it to use something else. I did this by using system-config-network and setting the hostname on the DNS tab.

However, this is not sufficient to support a usable workstation on the LAN (i.e. one that uses network-based authentication and home directories), so it's back to the old style for this release at least:

# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start

32-bit Application Support on x86_64

For one reason or another, it's necessary to run some 32-bit applications on a 64-bit OS. In Fedora 9, the default multilib policy is to install only 64-bit packages by default and pull in 32-bit packages only when explicitly required. This differs from previous Fedora releases where both 32- and 64-bit versions of packages were installed by default when available (this mostly covers libraries and a few key applications like wine).

A consequence of this change is that some 32-bit applications may fail in strange ways due to missing 32-bit support libraries, particularly where the dependencies aren't obvious (e.g. with VMware, which has no explicit dependencies at all), or with pam, where the dependencies depend on system configuration.

Since my company uses LDAP authentication, a lot of pain can be saved by installing the 32-bit nss_ldap package if there is any intention of running 32-bit software like VMware or Sun's Java Web Start:

# yum install nss_ldap.i386

Without this, attempting to start vmware resulted in this:

$ vmware
Cannot get temporary directory for log file.


VMware Server Error:
VMware Server unrecoverable error: (vmui)
Cannot get temporary directory for log file.
Please request support.  
To collect files to submit to VMware support, run vm-support.
We will respond on the basis of your support entitlement.


Press "Enter" to continue...

I'd expect that most people using 32-bit software would at least need pam.i386.

VMware Server

# rpm -Uvh VMware-server-1.0.5-80187.i386.rpm

Before configuring VMware, it's necessary to install a few additional packages, patch the kernel modules, and make an SELinux tweak. VMware defaults to using a reserved port (902) for the server; it's easier to make it play nice with SELinux by using an unreserved port such as 4800.

# yum install gcc-c++ kernel-devel xinetd 'perl(ExtUtils::MakeMaker)' 'perl(ExtUtils::Embed)' libXt.so.6 libXtst.so.6 libXrender.so.1 libz.so.1 libgdk-x11-2.0.so.0
# cd
# semanage port -a -t inetd_child_port_t -p tcp 4800
# wget http://download.rsbac.org/tmp/vmware-any-any-update117.tar.gz
# tar xf vmware-any-any-update117.tar.gz
# cd vmware-any-any-update117
# ./runme.pl
# restorecon -v /etc/services

{i} I found the vmware-any-any-update117.tar.gz reference at http://sidux.com/PNphpBB2-printview-t-8493-start-0.html

/!\ I found that I had to remove the computer account for my virtual machine on the domain and re-add it before I could log in using domain credentials. I suspect that this was a result of moving the virtual machine from my old machine to the new one but I'm not sure about that.

{i} Although VMware supply many of the GUI libraries needed for the console, there's a compatibility issue with Fedora 9. If the Fedora versions of libgdk-x11-2.0.so.0 and its dependencies aren't installed, attempting to start vmware results in this:

$ vmware
/usr/share/themes/Nodoka/gtk-2.0/gtkrc:37: error: unexpected character `(', expected character `}'
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0x3a7767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0x3a7831]
#2 /usr/lib/libX11.so.6(_XReply+0x244) [0x2e8f64]
#3 /usr/lib/vmware/lib/libXrender.so.1/libXrender.so.1(XRenderQueryFormats+0x109) [0x1d9969]
#4 /usr/lib/vmware/lib/libXrender.so.1/libXrender.so.1(XRenderFindFormat+0x4c) [0x1d9f4c]
#5 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0x538180]
#6 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0x538d2c]
#7 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0x508c14]
#8 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0x51524f]
#9 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0x508c14]
#10 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255) [0x514b34]
#11 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xaca298]
#12 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xaca586]
#13 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xacc77e]
#14 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0x218459]
#15 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0x2003a1]
#16 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0x200076]
#17 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0x2176eb]
#18 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit_valist+0x91e) [0x216d46]
#19 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit+0x38) [0x2170b8]
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0x3a7767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0x3a790e]
#2 /usr/lib/libX11.so.6 [0x2e8109]
#3 /usr/lib/libX11.so.6(XAddExtension+0x2c) [0x2ca23c]
#4 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2(_XftDisplayInfoGet+0x77) [0x1eaed7]
#5 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2 [0x1e98b1]
#6 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2 [0x1e9d39]
#7 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2(XftDrawPicture+0x10) [0x1e9ec0]
#8 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0x5369b6]
#9 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0x538d75]
#10 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0x508c14]
#11 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0x51524f]
#12 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0x508c14]
#13 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255) [0x514b34]
#14 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xaca298]
#15 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xaca586]
#16 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xacc77e]
#17 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0x218459]
#18 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0x2003a1]
#19 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0x200076]
vmware: xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed.

{i} Update: Since writing this, VMware-server version 1.0.6 has been released, which does not require the any-any-update to build the kernel modules in Fedora 9.

Fedora Project

  • Updated pptp to 1.7.2 in Rawhide; the newly-added Solaris compatibility in this version requires stropts.h, which isn't shipped in Fedora 9 onwards, though it was harmless to simply patch that out

Local Packages

  • Updated pptp to 1.7.2, with extra patch added to support building on Red Hat Linux 7 and 8.

PPTP Project

  • Updated pptp.spec in CVS for the new release, built the 1.7.2 packages for all supported distribution releases, and updated the repositories to support Fedora 9


Recent