Broken Leopard, New Leopard
Posted by notKlaatu , 21 July 2008 · 170 views
ChrisInDallas in IRC asked me in what way Leopard was broken. I told him I'd have to write a blog about it because the answer would be too long. This is the beginning of that blog post; although I know it will be something that will grow over the course of a few days, as I see past all the hacks I or other people have had to do in order to unbreak it.Where applicable, I note whether I have filed bugs on the complaint.How broken is Leopard? Well, people use it everyday and are happy with it, so I guess not really that badly. On the other hand, the next OS X release is called Snow Leopard and is by Apple's own admission at WWDC basically one big bug fix. In other words, this is the "real" Leopard. I gather that the current one was just an anti-Vista thing. Snow Leopard will feature bug fixes PLUS it will be 64-bit. Oh wait, I thought the current one was advertised as 64-bit? Well, it was...but this time it's actually going to be 64-bit.Virtual Desktops At first, using this is pretty nice, because you think - finally, even though I have to use a Mac for this job, I can at least have Virtual Desktops! But after a few days, you start getting the feeling that Apple just basically saw the Virtual Desktop thing on someone's Linux box, didn't really try it out themselves before borrowing the idea, and shipped it. Forget about X11 non-integration, their Virtual Desktops can't even handle its own native Cocoa space. Clicking on an icon in the dock will zip you away to another desktop whether you like it or not...seemingly at random, too. Actually it apparently bases the location of the app on where your last click was in that app. So if I have a file manager window ("Finder") open on Desktops 1 and 3, if I was last in desktop 3 but now am in Desktop 1, and I click on the Finder thinking it will reveal the Finder window there on Desktop 1....no, it will throw me over to Desktop 3 because that's the instance of the Finder that received the most recent click.Other problems include not being able to prevent applications from whisking you away to another desktop; if you're typing in one application and, say, Safari completes a download and wants to tell you about that, you will simply be interrupted, taken over to the Space that Safari is notifying you in, and you have no way of preventing that.Et cetera.Your Vista Flavoured Warnings Have ArrivedPop up dialogue boxes (that steal your window focus, naturally) notifying you that an application was downloaded from the internet - are you sure you want to run it? Well...yes, I want to run it, just like I wanted to run it yesterday and the day before and the day before that. When will it stop notifying me that I downloaded Firefox and Adium and Gimp and CyberDuck and Audacity and all the Free Software I use at work - from the internet? Where is the little preference box that makes this nonsense stop? And why isn't my FIRST acceptance of this notification being logged in a .plist somewhere?ACLThis is not well documented yet, but Apple is using an ACL structure for its files now - akin to SE Linux. It's very low-level code controlling access to files, superceding (or preceding) regular Unix File Permissions. This doesn't seem like a problem until an innocent user backs up their system with the much touted TIME MACHINE and then attempts to restore. Quite often all will go as expected, no problems. But for some people (myself included, but also a friend of mine, and a few other cases online that I've seen) the attributes of the ACLs will insist that the new computer setup just does not have permission to do anything with those files. The solution seems to be to enable root, log in, move the files around, get the attributes re-assigned, and then you're good to go...but doing this recursively through your entire backed up system is no small task. Hopefully this won't ever happen to most Leopard users because it's a real pain. No bugs filed yet, as I feel more regression and research is required.FinderAs a File Manager, Finder is a no better than, say, Nautilus (just kidding, Gnome fans). Seriously, it does not compare to Konqueror. To be fair, little does - that's why Konqueror is Konqueror...but this Finder thing has been around for a LONG time and even the Mac community has banded together to insist that it improves. Don't believe me? Google "fix the finder" or "fix the fucking finder" and see how many hits you get. Some examples, some old some new to show just how long this has been going on:http://www.roughlydr...6D7C658A01.htmlhttp://forums.macrum...ad.php?t=215412http://alek.xspaces....2005/05/04/FTFFhttp://www.macnighto...rface-for-real/http://www.shoulddot...on_details/1051http://joechip.net/b...fucking-finder/http://theappleblog....button-already/Some of the better points:The GREEN button...what is it supposed to do? because it doesn't seem to do anything consistently. It seems like a "re-size my window to any random dimension" button.FTP support. I can browse my webDAV volume with one click (the $100 iDisk) but not an FTP server? Um, stupid. Solution here.Stop making invisible files! Having been through teh moving-away-from-Mac-to-Linux thing, I know first hand now just how much meta data OS X litters your stuff with. And you know what? I'm not talking about just a little here and there, I'm talking about A LOT of extra data. Going through my data now on an XFS volume, I have freed up almost a quarter of the drive just by doing an rm -rf ._*And so on...X11 This is a well-known and now mostly solved problem, but OOB Leopoard featured a very broken (as in, would not launch, would not do what it is supposeed to do) X11. My take on the situation was always that Apple seems to think it's fine to take credit for Free Software in their system, because they advertise it like it's features that they may as well have invented, but when they break a Free Software element, they are quick (and they were, read the X11.apple mailing list) to disavow themselves of any responsibility. Nice position to be in; you take credit for the stuff that works and blame upstream for the stuff that doesn't.QuartzWMThis is that resource-hungry but ever-so-marketable graphic layer that's flopped on top of all that pure, beautiful Unix code. It's the public face of the Mac. It is the QuartzWM (window manager, plus Dock and Dashboard). The Finder is, strictly speaking, the File Manager, even though most Mac users kind of interpret it all as the same thing, which makes sense because it all feels like the same thing...but I digress. QuartzWM cannot be turned off. You can move components of it from the /System/Library and it will prevent the Dock and Dashboard and Desktop from functioning, but you still can't get away from that Cocoa layer. (Yes, super-geek, you can boot into Single User mode but everything's turned off so you won't be networked any more so have fun reconstructing your system with GNU tools and fw-cutter drivers and so on).X11Did I say this issue was fixed? Well, it is, but X11 has always been very tenuously integrated. To this day, running an application within the pure Unix environment that is X11 on a Mac requires fancy Cocoa (obj-C) and QuartzWM wrapping. And it doesn't always work very well. Focus-stealing problems abound. Apple's Virtual Desktops still don't understand X11 and will just change desktops randomly while you're working in GIMP or Inkscape or whatever X11 app you're sporting. The xterm, which I frequently use instead of the Cocoa Terminal.app (simply because I always have X11 open anyway) does not share a clipboard with the rest of the system, so copying and pasting into it is basically not possible. Dragging and Dropping is of course out of the question. Quitting an X application from the QuartzWM often causes minor crashes. Honestly, it's almost easier to just install VMware or Parallels and run your Unix(-like) OS in a VM instead of dealing with the way Leopard does(n't) deal with X11.LibrariesThis is one of those things that you don't hear complaints about from your average Mac user, and admittedly this is a pretty specialized problem...but it's indicative of deeper problems, I think. Here's a quote from codeSpeak.net:Apple regularly ships new system releases with horribly outdated system libraries. This is specifically the case for libxml2 and libxslt, where the system provided versions are too old to build lxml.While the Unix environment in Mac-OS X makes it relatively easy to install Unix/Linux style package management tools and new software, it actually seems to be hard to get libraries set up for exclusive usage that Mac-OS X ships in an older version. Alternative distributions (like macports) install their libraries in addition to the system libraries, but the compiler and the runtime loader on Mac-OS still sees the system libraries before the new libraries. This can lead to undebuggable crashes where the newer library seems to be loaded but the older system library is used.OK, so my dad doesn't care about this. It's probably not gonna effect his iPhoto or iTunes (well unless he tries to download a fancy Python-based plugin, I guess). But for some of us (myself included) this is actually a problem that appears regularly enough to require interesting workarounds.XcodeOK this isn't broken, but I wanted to mention it because I saw a surprised blog post from a developer about this and it made me chuckle a little. Apparently not everyone realizes that Xcode, the Apple developing platform, is an IDE for ONLY Cocoa programs. (Well, there are some exceptions; you can write the code in Xcode but your GUI set is limited to the Cocoa Interface Builder.) So don't open up the Dev Tools on your new OS X machine and expect a full-featured, flexible IDE like Eclipse...heck, or even like emacs. No bugs filed.CompilingIt's hard to compile stuff written for other *nix systems on a Mac, just warning you. Again, not broken...but Darwin is not the BSD kernel. It is not the Solaris kernel. And it certainly isn't the Linux kernel. No bugs filed, because it's not a bug. I guess I could enter it in as a Feature Request to change what kernel they use...File SystemsApple will be supporting ZFS soon (that's one of the new features of Snow Leopard), but until then the File System support is a joke. Microsoft and Apple are OK to use, but both their File Systems are arguably really bad! I hate the vfat format..seems like a bad joke...and HFS+ has broken down (lost contact with its journaling components, or just ditched it header files for no reason) too often for me to trust it. This is why you don't see REAL mass storage using these formats! So why shouldn't I be able to just pop in a drive formatted as XFS or ext4 or whatever, and have the Mac read it? No good reason, and the fact that I can't weakens the platform. For a while Mac seemed to have some support for UFS, although I could never get that to work...and then they had read support for ZFS...apparently in Snow they'll have it all...but only for ZFS. That's one file system out of quite a few good ones out there. That's a bug, in my mind, not just a feature request. No bugs against this from me, yet...SpacesWhy isn't Spaces -- their virtual implementation of virtual desktops -- turned on by default? EVery time i install OS X I have to go and set up Spaces?? It was a hugely advertised feature of the release, but it's not actually on OOB. Bugs have been filed.Remote Set UpI pity the sys admin (great or small) who has to install Leopard onto multiple machines. Managing this OS remotely was just NOT in the design. Sure they have Apple Remote Desktop, and sure that does some things remotely. But not that much, and to this day even Mac supporters who have to administrate OS X networks - for real - have issues with the lack of remote administration. And no, OS X server release does not fix most of these issues. Remote management of the server is also fairly well broken, to the point that physical presence is necessary for a lot of important administrative tasks. Many bugs against this have been filed, not by me but by others.Remote Set UpThis has been fixed but there are discs out there that were packaged before the fix, so it's worth noting. The initial run of Leopard featured a bug that would in some cases reset the administrator's password to an unknown value when upgrading to Leopard. The only fix to this, once it has occured, is to boot from the installer DVD, enable root, log in as root, and change the administrator's password.Compression ToolControl-Click on a file in the Finder and a contextual menu offers to compress it into a zip file for you. The problem? it generates an invisible file called ._MAC OS X or something like that in the archive along with your files. Not a big deal, right? Well, not until it crashes someone's Windows or Linux box. Not that it does crash other systems reliably, but it has happened enough times to me that just .tar.gz from an xterm when possible. (It's not always feasible, depending on where the files are being posted, though; some servers I deal with at work won't allow .gz or .bz2 files so I have to .zip). Bugs have been filed.Insert New Drive == You Must Mean Use This Drive as Aa Backup DriveHelpful prompts are great. I think they're really user-friendly and actually make an OS feel polished, like the programmers were really thinking of the User when they implemented something. But this is ridiculous; I plug in a drive that OS X doesn't remember, so it wants to either Initialize it (ie, erase) or it wants to use it as a Backup Drive for Time Machine. Can't you imagine a number of times that you might want to insert a drive NOT for the purpose of using it as a dedicated backup drive? But with just one click you can turn an empty drive into a Time Machine drive -- it won't kick in right away and you can deactivate time machine, but the computer still sees that volume as a time machine volume, whether you like it or not. Yes, you can reset everything and undo stuff with a bit of effort, but it's a pretty nice annoyance. (See the Vista-Like Dialog Boxes complaint above.)The good news:Really solid solutions for ALL of this can be found here or here or here.