Yosemite woes

I recently purchased a new MacBook Pro and it came pre-installed with Yosemite. While I did examine the Yosemite betas, I only did so under a VM and only to check that the Open Source projects I work on would continue to build and operate correctly under it.

I use VPN between home and work pretty often (and in both directions), so it’s really part of my everyday workflow. In Connecting to a safe@office vpn on a Mac I described how VPN connections can lead to the execution of /etc/ppp/ip-up and /etc/ppp/ip-down for helping to perform any additional setup that may be required. As part of this process, extra options for the pppd daemon are read from /etc/ppp/peers/VPN-Connnection-Name. In my case, I stuffed the file with ipparam VPN-Connection-Name, which would then cause ip-up and ip-down to be called with an extra parameter: the connection name. I use that feature to setup better routing since our network is segmented and the default setup does not work correctly.

Yosemite decided to break with tradition here, and not in a helpful way. It appears that pppd no longer examines /etc/ppp/peers/VPN-Connection-Name–at least not for L2TP connections. This means I can no longer pass the name of the VPN to the ip-up and ip-down scripts. Additionally, Yosemite decided that a more useful trick was to pass the Ethernet address of the device that is helping to setup the link as the 6th parameter instead. This means that you’re stuck trying to determine what you’re connecting to by using the remote ip (parameter 5) to the ip-up script. This is highly frustrating because it means if you have several VPN connections and they map to the same private IP space, then you’re screwed in trying to figure out which one you are actually connecting to.

Fortunately, that wasn’t the case for me, but it points to the poor substitute of a solution Apple put into place. How they thought this was a useful thing to do, I don’t know, but I’ve got to imagine that a number of folks are torqued over the new behavior.

As if that wasn’t enough, Yosemite will now refuse to use normal DNS resolution for anything that ends with .local. This is also highly frustrating as it required a hack to get hostnames to resolve:

/usr/sbin/discoveryutil mdnsactivedirectory yes

I’m not entirely sure how this works, but I imagine it’s because Active Directory use to default to .local style names and this is to help force DNS resolution for those cases (yay, we’re one of them). However, to persist the setting you have to put together a launchd agent, which requires a small script and a plist. And, I don’t know how it affect other things, like the Multicast DNS resolution used to locate your Apple devices on your subnet.

All of this leaves me in a rather grim mood. I moved away from Windows because I was tired of Microsoft telling me that they owned my computer, and *nix-based operating system was just better for doing development. At the time, I had been dual-booting Windows and Linux, and I simply stopped. I wiped Windows off of my computer, and went all Linux. I ran that way for quite a while (8 years?) before I decided that I really like photography and wanted better access to products like Adobe Photoshop and Lightroom, and I wanted to do less configuration of my machines, less maintenance, and less troubleshooting.

Around that time, Apple switch to Mac OS X and I waited a bit before jumping on the bandwagon–I get Unix and support for some commercial software! Since that time, I’ve used only Apple computers at home and have been largely happy with that decision. They make nice hardware, and I’ve not had to do nearly as much maintenance… until these last few releases.

Apple, I know I’m not the 80% or even in the 90% of users out there–I’m probably in the 1% or the 5%, but stop f*cking sh!t up for me. I’m not a number, I’m a person, and I’m tired of chasing down issues because you cannot imagine a person like me as a user of your products. Be humane and stop treating me like a statistic.

Fix your VPN client. And add an option to turn off the damn startup chime so I don’t have to remember to mute the internal speakers.

P.S. For those of you who might suggest using sudo nvram "SystemAudioVolume=%00" (or something similar), it doesn’t work. The OS writes out an updated value before shutting down, effectively clobbering your value.