Needed a break after the linker gymnastics and Perl support history. With everything setup I wanted to cover some other points which I found along the way. Since the last post I have been able to get the Intel build of Tiger installed on a system, leaving just 10.6 PowerPC beta.
Having access to the range of operating system versions has been helpful when getting software to run on OS X, since you can be accurate when a piece of functionality can & can’t be used. One such scenario is getting an up to date version of git built and installed across the range of operating systems, and working out where the enhanced regular expression support landed in regcomp(3) and FSMonitor support which allows applications to be notified of file systems changes which git can make use of. This allowed git to be built on OS X 10.7 to 10.10. For dealing with operating system versions within a code base, Apple provides macros for controlling what the minimum / maximum version of OS is required with AvailabilityMacros.h, it first landed in the December 2002 Developer Tools for OS X 10.2.
AvailabilityMacros – You can now control which OS version you want to target your
What’s New in the December 2002 Developer Tools Release
application for using the AvailabilityMacros. Please see
/Developer/Documentation/ReleaseNotes/AvailabilityMacros.h for more details.
Along with those macros, OS X 10.2 introduced support for the MACOSX_DEPLOYMENT_TARGET variable in ld(1). In OS X 10.5 Availability.h arrived which allowed the functions to be tagged with the OS version in which they first became available/which version they became deprecated so you can target operating system versions across mobile & desktop accurately.
Trying to setup the desktop environment how I usually like proved a little harder moving down to OS X 10.3, there was no facility for remapping modifier keys which first appeared in 10.4. Had to use uControl for remapping keys.
Terminal wise, /bin/sh was zsh until OS X 10.2 (user’s interactive shell was tcsh), then it became bash in OS X 10.3 for both /bin/sh & interactive. Interactive shell became zsh by default in 10.15. TERM was set to vt220 prior to OS X 10.3 when it changed to xterm-color. IPv6 support was there in all the versions of OS X I setup but it was only enabled by default in OS X 10.3. On OS X 10.2, you have to use the ip6config tool to enable support. The network preferences panel in System Preferences has no concept of IPv6 and only shows IPv4 details in OS X 10.2.
Looking around for how folks handled Perl upgrades in the past I discovered that there were compiler upgrades released for OS X 10.2 & 10.3 and made available as a download on the old ADC (Apple Developer Connection) portal which is now long gone. The wayback machine has copies of the login page but you’re not going to get very far. Hopefully one day copies of August2003gccUpdater.dmg and november2004gccupdater_7k579.dmg will turn up.
Though the history section of manuals are typically used to document when functionality was introduced and changed, Apple’s man pages generally avoid that and despite the source code published for each Darwin release is available for download and on Github, all the different components of a release are in individual archives and repositories of their own which is brought together via submodules. This makes it impossible to use Github’s search facility to investigate when changes were made, so being able to go back to as far as 10.2 makes it possible to work out which major release changed.
The whole exercise was very nostalgic, seeing the user interface changes over the releases. I remember when 10.7 first arrived, the idea of saving the state of applications was introduced and until 10.7.1 or 10.7.2 update, the check box for reopening windows when logging back in would get re-enabled on every reboot if you unticked it, which annoyed some users. I recall BT (Brian Transeau) raged about it on Twitter at the time & retreated to Mac OS 9 on a PowerMac G4 which he had purchased just to retain a working setup. The tick box was the last straw, the loss of classic mode and other changes was the lead up I guess.

Early January this year, Cory Doctrow wrote a post about The Cult of Mac and the shitty things Apple is pulling right now such as with the app store commission rate and fighting right to repair. It got me wondering about what the ecosystem of legacy hardware will be like for the machines made in the last 5 to 10 years. With the machines that are older than 10 years you likely have a chance of upgrading parts and running old releases of commercial “boxed” software alongside current open source software. As the closed and freeware software has mostly moved to the Apple app store rather than distributed independently, you are not going to have access to those legacy versions if you never acquired them at the time when they were current from the app store. An experience which has been the norm for their mobiles & tablets but it was not the case for the desktop software. Going forward, the only option will be open source software since it allows the app store to be bypassed. This is not great for preservation, but shows the strength of open source software.
During this time I was also off on a Frank & Tony deep house binge for a while and as I was digging for music I found an interview from 2013 on Fabric’s website with DJ Sprinkles, as with Cory’s blog post it’s worth a read.
based on our own cultural privileges, we become numb to the exclusions faced by people who can’t keep up with the latest OS, etc. I mean, I still run Mac OS 10.5.8, and that is causing me increasing problems – particularly when viewing the web, because my browsers are “out of date.” I mean, there are lots of people out there – particularly in Third World countries – still using really old computers that can’t handle all these pointless upgrades to Yahoo! Mail or whatever. But nobody talks about it. Nobody thinks about it. Often times, even when it affects them personally. That is the big ruse of democracy via internet access. It really displays the inherent classism and willing blindness to poverty that most people engage in.
DJs In Exchange: Francis Harris In Conversation With DJ Sprinkles, 2013
Server editions of OS X 10.3 & 10.4 had the strap line “Open Source made easy“. With the GNU ecosystem switching to GPLv3 that put an end to that, and yet today the open source ecosystem, regardless of license, is what gives their systems longevity and usefulness, because over the fence in a walled garden it’s seems to be all about consumption.
I think I’ll try and support some of these legacy systems to prolong their usefulness, and leave it at that.


























































