12″ PowerBook G4 PT 3

Since I last posted about dealing with pkgsrc on my PowerBook earlier this week, a patch has been committed which solves the linker issue on lang/gcc45 along with another fix related to how stripping of binaries is handled on Darwin. Unfortunately PR/48740 mentioned gcc44 to 46 suffer from the same issue but the patch has not been applied to gc44 or 46, I’m waiting to hear back from the committer.
One thing I forgot to mention in the previous post is that there is another issue with build process for GCC. There appears to be a deadlock issue where sh sits there chewing up CPU & context switching, at this point, aborting the build with & restarting again allows the build to continue.
Attaching to sh with gdb does not give any further insight as to what’s going on 🙁

Revisiting the NeXT icon set for Mac OS X

As I have a system running Mac OS X Tiger, I thought I’d give the NeXT icon set a try again, nearly all sites hosting the components required have now all shut down, thankfully for the Internet Archive copies were saved.
You can obtain a copy of ShapeShifter from here
I’d mirrored the eXec theme which is now unfetchable because it was available as a download from within ShapeShifter. Download, uncompress & rename eXec.guikit to eXec.guiKit before opening.
My NeXT icon set is available here
The original NeXT theme is available from here.
The NeXT icon set applied to Tiger
NeXT icons

NeXT icon set & eXec theme
NeXT eXec

NeXT icon set & NeXT 2.0 themeNeXT Icon set & NeXT 2.0 theme

Everything seems ok on Mac OS X 10.4.11 apart from Safari which causes the original OS X skin to display on the menu bar when it’s the active application.

Apple’s Darwin according to GCC

From gcc’s target definitions for Darwin (Mac OS X) systems

/* The definitions in this file are common to all processor types
running Darwin, which is the kernel for Mac OS X. Darwin is
basically a BSD user layer laid over a Mach kernel, then evolved
for many years (at NeXT) in parallel with other Unix systems. So
while the runtime is a somewhat idiosyncratic Mach-based thing,
other definitions look like they would for a BSD variant. */

/* Although NeXT ran on many different architectures, as of Jan 2001
the only supported Darwin targets are PowerPC and x86. */

/* One of Darwin's NeXT legacies is the Mach-O format, which is partly
like a.out and partly like COFF, with additional features like
multi-architecture binary support. */

12″ PowerBook G4 PT 2

As I wrote the previous post, the PowerBook was attempting to compile lang/gcc48 from pkgsrc & since then I’ve still been attempting to build lang/gcc48 with varying levels of success which led me to branch out from trying to build GCC 4.8 to the other 4.x releases on pkgsrc.

In-between roasting the PowerBook I managed to obtain a re-writable CD, that allowed me to install OpenBSD on the PowerBook. Everything went smoothly apart from some bug with installer/documentation. The OpenBSD install was short-lived as I swapped the 5400RPM HDD for an 64GB SSD, the empty partition is there ready for reinstall but the GCC builds have consumed most of the time with the computer so I’ve not got around to reinstalling on the new disk.

TS64GPSD330:

Capacity: 59.63 GB
Model: TS64GPSD330
Revision: 20140121
Serial Number:
Removable Media: No
Detachable Drive: No
BSD Name: disk0
Protocol: ATA
Unit Number: 1
Socket Type: Internal
OS9 Drivers: No
S.M.A.R.T. status: Verified
Volumes:
Macintosh HD:
Capacity: 41.5 GB
Available: 26.21 GB
Writable: Yes
File System: Journaled HFS+
BSD Name: disk0s3
Mount Point: /

The laptop is now running with 1.25GB of RAM which has made a big difference, more than the SSD did, though the change is mainly visible in the apple supplied application binaries e.g System Preferences or Activity Monitor which don’t bounce on the dock whilst loading, click & it’s there, running.
About This Mac 1.25GB RAM
Trying to install a newer version of GCC from pkgsrc has been quite painful, build attempts are taking up to 20+ hours before failing, depending on which languages / options are enabled.

I reverted to attempting to building with only C & C++ language support to speed up the time to success/fail. This reduced the build time down to 8-10 hours, it then became apparent (a little quicker) that all GCC 4.x releases in pkgsrc fail to build on Mac OS X Tiger.
GCC 4.4 was the easiest to fix as the only thing that prevented the build of the C/C++ language support was a space between the -I flag & the path to headers to include which caused the linker to complain, this issues is taken care of in lang/gcc47 & gcc48 but the fix wasn’t retroactively applied to previous releases.
Attempting to build with GCC 4.5 & newer revealed further issues.
Thanks to the maintainer of TigerBrew, Misty De Meo who was able to provide hints for issues that need to be addressed in-order to build a more recent version of GCC on Tiger, having gone through the same problems when adding support in TigerBrew.

I’m not sure how many iterations other builds use but on pkgsrc gcc is built with 3 iterations of tests where binaries generated are compared at each iteration. The tests would fail on the third iteration, forcing dwarf2 format for debug data allowed the tests to succeed. As the G4 is a 32-bit PowerPC CPU, the build then failed when it came to 64-bit binaries, disabling multilib support resolved this issue, the build then failed as the linker & assembler bundled with XCode 2.5 were too old & missing functionality. Bug 52482 covers this issue.

gmake[4]: Entering directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libstdc++-v3' true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=/usr/pkgsrc/lang/gcc48/work/build/./gcc/xgcc -B/usr/pkgsrc/lang/gcc48/work/build/./gcc/" "CFLAGS=-g -pipe -O2 -I/usr/pkg/include -I/usr/include" "CXXFLAGS=-g -pipe -O2 -I/usr/pkg/include -I/usr/include" "CFLAGS_FOR_BUILD=-pipe -O2 -I/usr/pkg/include -I/usr/include" "CFLAGS_FOR_TARGET=-g -pipe -O2 -I/usr/pkg/include -I/usr/include" "INSTALL=/usr/bin/install -c -o root -g wheel" "INSTALL_DATA=/usr/bin/install -c -o root -g wheel -m 644" "INSTALL_PROGRAM=/usr/bin/install -c -s -o root -g wheel -m 755" "INSTALL_SCRIPT=/usr/bin/install -c -o root -g wheel -m 755" "LDFLAGS=-L/usr/pkg/lib" "LIBCFLAGS=-g -pipe -O2 -I/usr/pkg/include -I/usr/include" "LIBCFLAGS_FOR_TARGET=-g -pipe -O2 -I/usr/pkg/include -I/usr/include" "MAKE=/usr/pkg/bin/gmake" "MAKEINFO=/usr/pkgsrc/lang/gcc48/work/.tools/bin/makeinfo --split-size=5000000 --split-size=5000000 " "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/usr/pkg/gcc48" "infodir=/usr/pkg/gcc48/info" "libdir=/usr/pkg/gcc48/lib" "includedir=/usr/pkg/gcc48/include" "prefix=/usr/pkg/gcc48" "tooldir=/usr/pkg/gcc48/powerpc-apple-darwin8" "gxx_include_dir=/usr/pkg/gcc48/include/c++/" "AR=ar" "AS=/usr/pkgsrc/lang/gcc48/work/build/./gcc/as" "LD=/usr/pkgsrc/lang/gcc48/work/build/./gcc/collect-ld" "RANLIB=ranlib" "NM=/usr/pkgsrc/lang/gcc48/work/build/./gcc/nm" "NM_FOR_BUILD=" "NM_FOR_TARGET=nm" "DESTDIR=" "WERROR=" DO=all multi-do # /usr/pkg/bin/gmake gmake[4]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libstdc++-v3' gmake[3]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libstdc++-v3' gmake[2]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libstdc++-v3' Checking multilib configuration for libitm... gmake[2]: Entering directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm' /usr/pkg/bin/gmake all-recursive gmake[3]: Entering directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm' Making all in testsuite gmake[4]: Entering directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm/testsuite' gmake[4]: Nothing to be done for 'all'. gmake[4]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm/testsuite' gmake[4]: Entering directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm' /bin/sh ./libtool --mode=compile /usr/pkgsrc/lang/gcc48/work/build/./gcc/xgcc -B/usr/pkgsrc/lang/gcc48/work/build/./gcc/ -B/usr/pkg/gcc48/powerpc-apple-darwin8/bin/ -B/usr/pkg/gcc48/powerpc-apple-darwin8/lib/ -isystem /usr/pkg/gcc48/powerpc-apple-darwin8/include -isystem /usr/pkg/gcc48/powerpc-apple-darwin8/sys-include -DHAVE_CONFIG_H -I. -I../../../gcc-4.8.2/libitm -I../../../gcc-4.8.2/libitm/config/powerpc -I../../../gcc-4.8.2/libitm/config/posix -I../../../gcc-4.8.2/libitm/config/generic -I../../../gcc-4.8.2/libitm -Wall -Werror -Wc,-pthread -g -pipe -O2 -I/usr/pkg/include -I/usr/include -MT sjlj.lo -MD -MP -MF .deps/sjlj.Tpo -c -o sjlj.lo ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S libtool: compile: /usr/pkgsrc/lang/gcc48/work/build/./gcc/xgcc -B/usr/pkgsrc/lang/gcc48/work/build/./gcc/ -B/usr/pkg/gcc48/powerpc-apple-darwin8/bin/ -B/usr/pkg/gcc48/powerpc-apple-darwin8/lib/ -isystem /usr/pkg/gcc48/powerpc-apple-darwin8/include -isystem /usr/pkg/gcc48/powerpc-apple-darwin8/sys-include -DHAVE_CONFIG_H -I. -I../../../gcc-4.8.2/libitm -I../../../gcc-4.8.2/libitm/config/powerpc -I../../../gcc-4.8.2/libitm/config/posix -I../../../gcc-4.8.2/libitm/config/generic -I../../../gcc-4.8.2/libitm -Wall -pthread -Werror -g -pipe -O2 -I/usr/pkg/include -I/usr/include -MT sjlj.lo -MD -MP -MF .deps/sjlj.Tpo -c ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S -fno-common -DPIC -o .libs/sjlj.o ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S:155:Invalid mnemonic 'FUNC' ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S:250:Invalid mnemonic 'CALL' ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S:259:Invalid mnemonic 'END' ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S:262:Invalid mnemonic 'HIDDEN' ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S:263:Invalid mnemonic 'FUNC' ../../../gcc-4.8.2/libitm/config/powerpc/sjlj.S:407:Invalid mnemonic 'END' Makefile:496: recipe for target 'sjlj.lo' failed gmake[4]: *** [sjlj.lo] Error 1 gmake[4]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm' Makefile:697: recipe for target 'all-recursive' failed gmake[3]: *** [all-recursive] Error 1 gmake[3]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm' Makefile:360: recipe for target 'all' failed gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build/powerpc-apple-darwin8/libitm' Makefile:16624: recipe for target 'all-target-libitm' failed gmake[1]: *** [all-target-libitm] Error 2 gmake[1]: Leaving directory '/usr/pkgsrc/lang/gcc48/work/build' Makefile:889: recipe for target 'all' failed gmake: *** [all] Error 2 *** Error code 2 Stop. bmake: stopped in /usr/pkgsrc/lang/gcc48 *** Error code 1

Apple provides updates as part of their open source initiative, cctools contain the as & ld sources but sadly with the move to intel & the startup of the Hackintosh scene Apple has made it a little difficult to build things, their first move was to stop generating the iso of Darwin builds & the documentation seems non-existent now. Funnily enough the legacy information on the iPhone jailbreak & Hackintosh scene seems to be the commonly available documentation, that is ofcourse after you’ve excluded bug reports from fink & mac/darwinports in your search results. The main problem with building the open-source components is the bespoke build mechanism which seems to have various issues with Mac OS X, mainly missing header files, with TigerBrew, they seem to work around this issue by using the headers from a newer version of OS X. Through my search for a solution I discovered the OpenDarwin project, the project repackaged the source for the open source Apple components around the GNU toolchain. A version is available in pkgsrc in emulators/darwin_lib though it’s intended for NetBSD/PowerPC to provide binary compatibility, sadly the version it attempts to build is older than the version available with XCode 2.5. The OpenDarwin site is broken & the project doesn’t appear to be in development but I was able to find a repository on Apples MacOS Forge for the OpenDarwin cctools which contained the cctools-758. This was sufficient to allow GCC 4.x to build successfully, AS & AS_TARGET variables need to be set to where the new version of as(1) installed from odcctools however. GCC 4.7 built successfully with C, C++, Fortran, Objective C, Objective C++ & Fortran support. The code is in a SVN repository, you can obtain precompiled binaries of old versions of svn from collab.net.
Using built-in specs. COLLECT_GCC=/usr/pkg/gcc47/bin/gcc COLLECT_LTO_WRAPPER=/usr/pkg/gcc47/libexec/gcc/powerpc-apple-darwin8/4.7.3/lto-wrapper Target: powerpc-apple-darwin8 Configured with: ../gcc-4.7.3/configure --enable-languages='c obj-c++ objc java fortran c++' --enable-shared --enable-long-long --with-local-prefix=/usr/pkg/gcc47 --enable-libssp --enable-threads=posix --with-boot-ldflags='-static-libstdc++ -static-libgcc -L/usr/pkg/lib ' --with-dwarf2 --disable-multilib --disable-nls --with-gmp=/usr/pkg --with-mpc=/usr/pkg --with-mpfr=/usr/pkg --with-ecj-jar=/usr/pkgsrc/distfiles/ecj-4.5.jar --enable-java-home --with-os-directory=darwin --with-arch-directory=powerpc --with-jvm-root-dir=/usr/pkg/java/gcc47 --with-java-home=/usr/pkg/java/gcc47 --with-system-zlib --enable-__cxa_atexit --with-gxx-include-dir=/usr/pkg/gcc47/include/c++/ --with-libintl-prefix=/usr/pkg --prefix=/usr/pkg/gcc47 --build=powerpc-apple-darwin8 --host=powerpc-apple-darwin8 --infodir=/usr/pkg/gcc47/info --mandir=/usr/pkg/gcc47/man Thread model: posix gcc version 4.7.3 (GCC)
While attempting to get things to build, lang/gcc48 was updated in pkgsrc and languages were separated out to individual packages with gcc48 becoming a wrapper around this, these changes are very much in their infancy and have issues which need to be addressed. As it currently stands, it’s not possible to build individual languages as there is ties which need to be removed e.g attempting to build lang/gcc48-cc++ will build in lang/gcc48-fortran. For me, the next step is to get these changes prepared correctly & submitted for inclusion in pkgsrc, for the duration of getting things to run I hard coded the paths for as(1) & defined the configure arguments globally, where as these changes are specific to Tiger & prior / 32-bit PowerPC specific. Then there’s dealing with odcctools, I’m not sure if it will require a new package or emulators/darwin_lib should be extended. emulators/darwin_lib introduces more than just odcctools hence my leaning towards a separate package. I also want to try out building from a RAM disk using Make RAM disk to see if build can be sped up any further. Since I wrote the previous article I found out how to set the location in F.lux, thanks to co-developer of F.lux, Michael Herf

It seems that some people opt to cross-compile for OS X on another platform, including macports developers (sorry, I didn’t make a note of the bug report where the developer explained building packages on Linux). iTerm 0.10 from the original project is now my terminal emulator with the Inconsolata font, the font smoothing isn’t that great on this machine when using white text on black background so I’ve opted for the opposite here & it’s working out well.
There is a MAC POWERPC ? blog which provides regular articles. I found an article on how to rebuild the PowerBook battery with new cells if it should fail.

Following the instructions from floodgap.com to update the curl-ca-bundle bundled with OS X I discovered that the version included in Tiger was from 2000!!

/usr/share/curl/curl-ca-bundle.crt - Last Modified: Thu Mar 2 09:32:46 CET 2000, These were automatically extracted from Netscape Communicator 4.72's certificate database (the file `cert7.db')

Building RetroBSD on Mac OS X

Earlier this week it was announced on the RetroBSD forum that the official repository had moved to GitHub. Along with the move came changes which fixed previous issues with the build so now it is possible to build a RetroBSD image on Mac OS X.

As covered in the RetroBSD installation document, I installed the required dependencies from MacPorts & used the prebuilt PIC32 toolchain to build RetroBSD.

port install bison byacc flex libelf

The compiler was uncompressed to /usr/local to keep it inline with the code base & reduce the number of changes need to get thing to build.

I’d previously installed the command line tools from within Xcode, while this had installed clang & the rest of the toolchain into /usr, I was missing /usr/include, installing the command line tools manually with xcode-select --install fixed this.

Kernel built from the SVN code base on Google Code:
2.11 BSD Unix for PIC32, revision 892M build 2:
Compiled 2014-03-29 by xxx@xxx:
/xxx/retrobsd/sys/pic32/max32-eth
cpu: 795F512L 80 MHz, bus 80 MHz
oscillator: XT crystal, PLL div 1:2 mult x20
console: tty0 (5,0)
sd0: port SPI2, select pin C14
sd0: type SDHC, size 15339520 kbytes, speed 13 Mbit/sec
phys mem = 128 kbytes
user mem = 96 kbytes
root dev = rd0a (0,1)
root size = 102400 kbytes
swap dev = rd0b (0,2)
swap size = 2048 kbytes
temp0: allocated 30 blocks
/dev/rd0a: 588 files, 8752 used, 93247 free
temp0: released allocation
Starting daemons: update cron

2.11 BSD UNIX (pic32) (console)

Kernel built from the git code base on GitHub:
2.11 BSD Unix for PIC32, revision G38 build 1:
Compiled 2014-04-19 by xxx@xxx:
/xxx/retrobsd/sys/pic32/max32-eth
cpu: 795F512L 80 MHz, bus 80 MHz
oscillator: XT crystal, PLL div 1:2 mult x20
console: tty0 (5,0)
sd0: port SPI2, select pin C14
sd0: type SDHC, size 15339520 kbytes, speed 13 Mbit/sec
phys mem = 128 kbytes
user mem = 96 kbytes
root dev = rd0a (0,1)
root size = 102400 kbytes
swap dev = rd0b (0,2)
swap size = 2048 kbytes
/dev/rd0a: 588 files, 8752 used, 93247 free
Starting daemons: update cron

2.11 BSD UNIX (pic32) (console)

12″ PowerBook G4

PowerBook G4
With the talk on Twitter & App.net about old computers I started to get nostalgic. I had cleared out most of my collection back in 2012 & been resisting the urge to resume hoarding again largely, having successfully put off the purchase of a Ubiquiti EdgeRouter Lite to run FreeBSD on, I remembered that I was offered a G4 PowerBook a few months back which I turned down. It was still available if I wanted to take it, which made very happy. a 12″PowerBook6,4 that I’d assumed it was going to be a 15″ model. I’ve been playing about with it for the past couple of days, wiping the pre-installed copy of Leoapard & going through the Panther to Tiger path.

20140404-022224.jpg
The system is now running 10.4.11, patching was a lot of fun, java update after java update, pretty sure it didn’t seem that bad at the time.
20140404-020714.jpg
It was interesting to see that there was no iTunes update made available, having to manually fetch v9.2.1 from kb DL1056. Safari was updated to v4.1.3.

With no more updates on offer from the software update facility I disabled the java & macromedia plugins by moving them out of /Library/Internet Plug-ins & /Library/Application Support.

Going back to Tiger was a mixture of pleasure & pain, visually, I much prefer the brighter white look of aqua, as opposed to the grey theme which introduced in Leopard. Terminal.app in Tiger is not that great, font smooth is particularly poor, I may have to resort to sourcing a copy of the original iTerm. Plan9 from userspace built without issues using gcc from XCode 2.5, but I guess finder doesn’t like something about the bundled transparent icon of Glenda on the dock as it shows up with a white background & though acme launches correctly, the icon continues to bounce on the dock.
20140404-020905.jpg
F.lux 1.1 is the last supported PowerPC build which runs on Tiger, no support for UK in location settings of this build.
TenFourFox takes the place of Firefox as an up to date, maintained version for the PowerPC Mac’s. Python was updated to 2.7.6 using a package straight from python.org.

There is a PowerPC Software site, which contains links to the last builds of popular software which supported the PowerPC Mac’s.

Mercurial & Ruby built successfully from source, pkgsrc also bootstrapped without any issue, the system is currently building GCC 4.8 from pkgsrc.
Needed to declare MACOSX_DEPLOYMENT_TARGET=10.4 otherwise the build process would fail with ld: flag: -undefined
dynamic_lookup can't be used with MACOSX_DEPLOYMENT_TARGET environment
variable set to: 10.1

The system currently has 512MB of RAM & a 74GB HDD, 40GB allocated to OS X & the remaining intended for use with OpenBSD, will have to netinstall OpenBSD as I don’t have any blank CD’s with me, no USB hub, the USB ports don’t provide sufficient power to run a Zalman Virtual CD and I suspect the system is unable to boot from USB anyway. Been looking on Amazon for IDE SSD drives but probably will increase the RAM first.
20140404-020959.jpg

20140404-022158.jpg

Mac displays prohibition sign when booting from install media

I wanted to re-configure my 11″ MacBook Air so that it dual boots Mac OS X as well as OpenBSD but found that I was unable to boot from a USB flash drive containing 10.8.5.
Booting from a flash drive resulted in a prohibition sign in place of the apple logo with the spiral animation continuing to spin.

20131007-020816.jpg
Booting again but this time in verbose mode (command + v) showed that the kernel is waiting & repeating the message

Still waiting for root device

, I assumed this message was regarding the USB boot disk, it turns out it’s referring to onbroad SSD.

20131007-020903.jpg
Searching around I found a thread which used the remote recovery function along with a USB flash drive to restore the Mac (something which I was trying to completely avoid because my internet connection is really poor & the recovery process is slow), this reminded me of the recovery disk assistant which allows you to build a recovery disk as well as update the recovery partition on your system disk.
Attempting to boot from a recovery disk succeeded & allowed me to repartition the SSD in my macbook air with disk utility. I was then able to boot from the USB flash disk containing mac os x & reinstall successfully.

Edit: clarify that it was the SSD which was repartitioned in last paragraph.

L2TP/IPsec VPN clients unable to authenticate after 10.7.3 update

If you’re finding users are unable to dial-in via L2TP/IPsec VPN after upgrading Lion Server to 10.7.3 then check /var/log/ppp/vpnd.log
If you’re seeing DSAuth plugin: Failed to retrieve MPPE encryption keys from the password server: errno -14484, ctxt 4 logged on dial-in attempts then you’ll need to adjust your password policy.
There is an Apple support article HT4748 which covers how to make this change.
Thanks to the user bobgeo on the Apple discussion forums for the pointer.

Running nwdiag on Mac OS X

nwdiag is a tool written in python for generating network diagrams from text files, rack diagrams can also be built using the bundled rackdiag utility.
nwdiag requires PIL built with freetype2 support, if this is missing you’ll receive the following error when you try to generate a diagram:
ERROR: The _imagingft C module is not installed.

Following the instructions in the README file included with PIL, once the build process completes you’ll receive a summary:
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform darwin 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)]
--------------------------------------------------------------------
--- TKINTER support available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------

It appears that freetype2 support is not built by default & I wasn’t paying enough attention so I missed the notice following the summary
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
.
After a brief search I came across this blog post which covered how to define the paths for the freetype library & header files.
Setting FREETYPE_ROOT in setup_site.py to
FREETYPE_ROOT = "/usr/X11/lib", "/usr/X11/include"
solved the problem & the summary listed --- FREETYPE2 support available when I reran the build process.
After that everything worked fine, the following config generated the image at the bottom of the page:
nwdiag {
inet [shape = cloud];
inet -- router;
router;
network office {
router;
"Mail server";
"Web server";
}
}

Network diagram generated using nwdiag

The project is still in its infancy and there are features missing for implementing common elements from a cisco discipline (like representing etherchannel) but it’s promising as you can put a simple diagram together very quickly.

Connecting to shared calendars on ical server using the Lightning extension for Thunderbird

To access a shared resource/location calendar on a iCal server from the Lightning extension for you’ll need the GUID for the calendar you wish to access, see my previous post on how to obtain it.

Once you’ve obtained the GUID, construct a url using the following convention (assuming you’re connecting to the server via SSL)
https://yourserver.somewhere.local:8443/calendars/__uids__/your-shared-cal-guid/calendar/
Switch to Thunderbird, go to File > New > Calendar…
Select “On the Network” from the wizard & press continue
Select “CalDAV” as the format & for the location specify the URL you constructed using the convention above & press continue.
Once you’ve specify a name for the shared calendar & pressed continue you should have access to the shared calendar.

Connecting to shared calendars on ical server using an iPhone

To access the shared resource/location calendar on a iCal server from an iPhone via the caldav protocol you’ll need the GUID of the shared calendar.

First, find the GUID of calendar on the server using the calendarserver_manage_principals command, eg
sudo calendarserver_manage_principals --search shared
1 matches found:

your shared cal (Resource)
GUID: 6x3331a8-as12-ea2x-4ou1-ndeb3ct4wa686
Record name(s): 6x3331a8-as12-ea2x-4ou1-ndeb3ct4wa686

Then on the iPhone (assuming the device is unmanaged), create a new CalDAV calendar account & fill in the correct server, username & password field & hit next.
Assuming everything went ok, you should be back on the “Mail, Contacts, Calendars” page, select the new calendar you just created & advanced settings.
Edit the “Account URL”, replacing the UID on the end of the url with the GUID of the shared calendar you noted down on the first step.
eg:
https://username@yourserver.somewhere.local:8443/principals/__uids__/6x3331a8-as12-ea2x-4ou1-ndeb3ct4wa686

CUPS generates “Internal server error” when visiting administration page

It seems that Mac OS Lion server (10.7.0) may have been released with a broken CUPS configuration. Visiting http://localhost:631/admin would generate an “Internal server error”, this seems to be addressed in newer builds (my Macbook Pro which was install from a 10.7.2 image does not exhibit the problem yet a customers server which came bundled with 10.7.0 (upgraded to 10.7.1 > 10.7.2) does).
To resolve the issue sudo cupsctl --debug-logging
Then switch off the debug logging with sudo cupsctl --no-debug-logging

I suspect the problem is due to a missing directory because comparing the default, previous & current revisions of the /etc/cups/cupsd.conf did not show anything that could cause problems.
I’d also go far as to say that you don’t need to turn on debug logging in-order to resolve this issue, it can be any of the options that can be set via cupsctl as it checks the configuration of the system, this is just a theory as I was unable to dig further because I was on a production system. Resetting the printing system did not solve the issue when attempted previously.

Unable to transfer voice memos from iPhone

I made a few recordings on my iPhone using the Voice Memos app but out of the three recordings I was only able to transfer one of them successfully into iTunes.
The way it’s meant to work is, if you connect your iPhone to your machine & select Music > Sync Music & tick the Include voice memos then when you sync your phone, your recordings should show up in a playlist in iTunes named Voice Memos.
Assuming your files have been processed correctly that is!

What happens is when you record your voice memos, they are saved as quicktime .mov files, then the app converts these to .m4a files afterwards. If you’re unlucky & this conversion process is interrupted e.g in my case I made these recordings on a iPhone 3G which meant no multitasking, switching out to another app meant that I was left with an incomplete m4a file which would never play or get imported, at the time I assumed this was due to the fact that the recording was too long for the iPhone but now that I’ve upgraded to the iPhone 4 & still experiencing the same problem I decided to look further.
I downloaded a demo version of PhoneView which gives you access to the files stored on your phone & fired it up, selecting the Voice Memos folder I could see my recordings which I selected & hit the “Copy From iPhone” button.
The file which transfered succesfully into iTunes previously played without a hitch, but the other two still wouldn’t play though file(1) reported all three files as:
ISO Media, MPEG v4 system, iTunes AAC-LC
Looking at the preferences for PhoneView I enabled “Advanced disk mode” to see if I could dig a little deeper
Advanced Disk Mode

After enabling this & selecting the Disk folder on the top left hand side I was given access to the filesystem on the phone, selecting the Recordings folder I could see .mov files of the two recordings which I couldn’t get to play so I copied them out & gave them a try in quicktime, these turned out to be the intact recordings.
View of the iPhone filesystem via advanced disk mode

Deleting the .m4a versions & reopening the Voice Memo.app restarted the conversion process again.
Voice Memos.app processing recording, converting from mov to m4a file

Running rndc without specifying a port on Mac OS X

The stock BIND config on Mac OS X (both client & server versions) is set to listen on TCP port 54 for control commands via rndc(8), the rndc utility however doesn’t have a config file, so it defaults to using TCP port 953, this mean it has to be invoked with -p 54 to work properly, to rectify the issue create /etc/rndc.conf & add the following to it
include "/etc/rndc.key";
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 54;
};

GnuCash for OS X

These packages are broken, I will upload the metapackages which include the dependenices when the option works in macports (it’s not atm!!), I apologize for wasting anyones time with these!!

Now that GnuCash is included with with Darwin Ports AKA MacPorts
I’ve made a precompiled disk image to make the installation that little bit easier (the dependency list is quiet big & it takes a while to compile)
I’ve also tweaked the original GnuCash Launcher Michael Elliot made so it works with the version of GnuCash made with Darwin Ports / MacPorts (his version was for Fink & the drag & drop file feature didn’t work on tiger)
You can grab the moded launcher here

You’ll need to install the Apple X Server from your OS X Install disks if you want to use the Launcher.
To use GnuCash you’ll need a X Server installed, either the Apple version from your OS X Disks or XFree86 from Fink or Darwin Ports AKA MacPorts
You can grab a precompiled version of XFree86 4.5.0 from here

Running Chillispot on OpenBSD, NetBSD & Mac OS X

*** 08/07/06 – Update, the patch just allows Chillispot to build successfully, tun.c needs some more patching before chillispot will work. Sorry 🙁 ***

I have made a patch which will enable Chillispot compile & run on OpenBSD, NetBSD & Mac OS X.

The patch has been tested working on the following versions of O/S’s
OpenBSD 3.9
NetBSD 3.0-STABLE & -CURRENT
Mac OS X 10.4.7
though it should work on previous versions aswell.

To build Chillipot 1.0 first download & extract Chillispot.
Then copy the patch into the Chillispot directory & issue:
patch -p1 < chillispot -1.0.patch

You should get the following result:
patching file src/chilli.c
patching file src/dhcp.c
patching file src/redir.c
patching file src/syserr.c
patching file src/tun.c

For NetBSD & OpenBSD:
Now run ./configure with the relevant switches e.g.
./configure --sysconfdir=/etc --localstatedir=/var
then for OpenBSD: run make install chilli_LDFLAGS=""

For Mac OS X:
Run make install chilli_LDFLAGS="-lcrypto -lresolv"
If compiling fails with the following error:
redir.c: In function 'redir_accept':
redir.c:1400: error: nested functions are not supported on MacOSX
redir.c:1406: error: nested functions are not supported on MacOSX
make[2]: *** [redir.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

then you’re using GCC 4.0.1, use gcc_select to switch to GCC 3.3 by running gcc_select 3.3 then rerunning make. When you’re done you can switch back to GCC 4 by running gcc_select 4.0 surprise surprise!!! 🙂

Booting straight to the console on Mac OS X

The guide on O’reilly Network covering howto bypass the OS X GUI doesn’t seem to work on 10.4.x (I haven’t verified it on previous versions yet), as the guide mentions you need to uncomment the first console entry & comment out the second entry in /etc/ttys

You then need to goto /etc/mach_init.d/ & remove WindowsServer.plist
I highly recommend that you move the file into somewhere else instead (I moved mine into /etc as it’s alot easier to roll back).

Once you’ve rebooted & logged in you should find that the system stays at the shell instead of jumping to a blank blue screen with a cursor.

Surprise, More Benchmark results

This time from a £300 Dell Dimension 3000 running OS X 10.4.4 with a 16MB TNT2 m64 PCI graphics card installed as the onboard card is not supported.

compare results here

Results 47.91
System Info
Xbench Version 1.2
System Version 10.4.4 (8G1171)
Physical RAM 512 MB
Model ADP2,1
Drive Type SAMSUNG SP0401N
CPU Test 50.12
GCD Loop 71.35 3.76 Mops/sec
Floating Point Basic 68.36 1.62 Gflop/sec
vecLib FFT 29.68 978.99 Mflop/sec
Floating Point Library 57.23 9.97 Mops/sec
Thread Test 95.33
Computation 70.31 1.42 Mops/sec, 4 threads
Lock Contention 147.98 6.37 Mlocks/sec, 4 threads
Memory Test 69.75
System 60.54
Allocate 45.84 168.33 Kalloc/sec
Fill 83.04 4037.70 MB/sec
Copy 63.72 1316.09 MB/sec
Stream 82.27
Copy 79.54 1642.87 MB/sec
Scale 79.94 1651.63 MB/sec
Add 85.41 1819.49 MB/sec
Triad 84.52 1808.05 MB/sec
Quartz Graphics Test 36.45
Line 33.85 2.25 Klines/sec [50% alpha]
Rectangle 23.61 7.05 Krects/sec [50% alpha]
Circle 25.20 2.05 Kcircles/sec [50% alpha]
Bezier 66.73 1.68 Kbeziers/sec [50% alpha]
Text 94.28 5.90 Kchars/sec
User Interface Test 36.60
Elements 36.60 167.97 refresh/sec
Disk Test 38.91
Sequential 71.79
Uncached Write 44.16 27.11 MB/sec [4K blocks]
Uncached Write 91.29 51.65 MB/sec [256K blocks]
Uncached Read 78.80 23.06 MB/sec [4K blocks]
Uncached Read 106.13 53.34 MB/sec [256K blocks]
Random 26.69
Uncached Write 8.84 0.94 MB/sec [4K blocks]
Uncached Write 68.24 21.85 MB/sec [256K blocks]
Uncached Read 74.52 0.53 MB/sec [4K blocks]
Uncached Read 115.52 21.44 MB/sec [256K blocks]

More Benchmark Results

XBench results from my G4 PowerMac with SATA disks installed

compare results here

Results 19.38
System Info
Xbench Version 1.2
System Version 10.4 (8A428)
Physical RAM 640 MB
Model PowerMac3,1
Processor PowerPC G4 @ 450 MHz
Version 7400 (Max) v2.8
L1 Cache 32K (instruction), 32K (data)
L2 Cache 1024K @ 225 MHz
Bus Frequency 100 MHz
Video Card ATY,R350
Drive Type WDC WD1200JS-55NCB1
CPU Test 20.67
GCD Loop 43.58 2.30 Mops/sec
Floating Point Basic 14.04 333.48 Mflop/sec
vecLib FFT 22.79 751.85 Mflop/sec
Floating Point Library 18.04 3.14 Mops/sec
Thread Test 21.41
Computation 19.39 392.84 Kops/sec, 4 threads
Lock Contention 23.90 1.03 Mlocks/sec, 4 threads
Memory Test 14.00
System 18.66
Allocate 46.73 171.62 Kalloc/sec
Fill 18.49 899.16 MB/sec
Copy 11.72 242.17 MB/sec
Stream 11.20
Copy 10.54 217.72 MB/sec [altivec]
Scale 10.65 219.94 MB/sec [altivec]
Add 11.91 253.66 MB/sec [altivec]
Triad 11.84 253.26 MB/sec [altivec]
Quartz Graphics Test 23.58
Line 21.31 1.42 Klines/sec [50% alpha]
Rectangle 19.14 5.71 Krects/sec [50% alpha]
Circle 20.11 1.64 Kcircles/sec [50% alpha]
Bezier 30.81 777.20 beziers/sec [50% alpha]
Text 32.61 2.04 Kchars/sec
OpenGL Graphics Test 28.94
Spinning Squares 28.94 36.71 frames/sec
User Interface Test 9.87
Elements 9.87 45.29 refresh/sec
Disk Test 60.80
Sequential 80.24
Uncached Write 98.83 60.68 MB/sec [4K blocks]
Uncached Write 105.54 59.72 MB/sec [256K blocks]
Uncached Read 45.87 13.43 MB/sec [4K blocks]
Uncached Read 118.21 59.41 MB/sec [256K blocks]
Random 48.94
Uncached Write 18.52 1.96 MB/sec [4K blocks]
Uncached Write 110.22 35.28 MB/sec [256K blocks]
Uncached Read 90.48 0.64 MB/sec [4K blocks]
Uncached Read 131.51 24.40 MB/sec [256K blocks]