jwz - how much does Snow Leopard suck? [entries|archive|friends|userinfo]
jwz

  www.jwz.org
  userinfo
  archive
  rss

Links
[»| [DNA Lounge] [Blog] [iCal] ]
[»| [DNA Lounge Legal Defense Fund] ]
[»| [WebCollage] [LJ WebCollage] ]

how much does Snow Leopard suck? [Fri, 28-Aug-2009 2:07 PM]
Previous Entry Add to Memories Tell a Friend Next Entry
[Tags|, , ]

In the interest of not burying the lede: if you install Snow Leopard, none of your 3rd-party screen savers will work (.qtz files may work but .saver files will not).


Normally I wouldn't give a shit about installing this OS upgrade, except that apparently Apple has fucked up ScreenSaverEngine, so in order to make the XScreenSaver distribion work on 10.6, I have to do a 64-bit build of all of the savers... and that's not possible on 10.5, because the 10.5 version of the ScreenSaver.framework bundle doesn't include the x86_64 architecture.

How angry am I going to be if I install 10.6 on my only computer?

Will it break Photoshop, Illustrator and Lightroom?

The nature of Apple's screen saver fuckup is that .saver bundles aren't separate programs (like they are in XScreenSaver under X11) but instead are dynamically loaded code into the ScreenSaverEngine app. And now they've changed ScreenSaverEngine to a 64-bit app which refuses to load 32-bit code -- meaning they broke every third party .saver bundle.

Dynamically loading the code this was always an idiotic idea. Even before Apple's current fuck-up, it had already meant that one screen saver could screw up the namespace of one that happens to run later (e.g., there are some savers that you can't run consecutively in System Preferences); and it means that a buggy screen saver that hangs can make you need to power-cycle the computer, since deactivation requires the cooperation of the 3rd party saver itself, instead of that being handled at a higher level. With X11 XScreenSaver, user activity guns down the saver whether it is responsive or not: a sandbox, basically, which is the only sensible way to do it.

I'd volunteer to rewrite ScreenSaverEngine from scratch, to make it less flaky and more compatible, if I thought there was any chance Apple would accept and ship my contribution.


Update: Progress is being made. I have questions.

linkReply

Comments:
[User Picture]From: [info]salyu
Fri, 28-Aug-2009 9:25 PM (UTC)

(Link)

i believe it does load 32, 64 bit is backwards compatible, no?
[User Picture]From: [info]jwz
Fri, 28-Aug-2009 9:26 PM (UTC)

(Link)

Believe what you want, unless you want to believe the truth.
From: [info]cjensen
Fri, 28-Aug-2009 9:49 PM (UTC)

(Link)

No. Almost all compatibility issues I've seen on Snow Leopard are related to plugins because of the code change. Just as xscreensaver is failing, so are the release version of the 1password plugin, all version of the Evernote plugin, etc...
From: [info]blasdelf
Fri, 28-Aug-2009 11:29 PM (UTC)

(Link)

You're right in that 32-bit processes run just fine on [OS X, Linux, FreeBSD, Windows] machines that otherwise run 64-bit code, for [x86_64, ppc970, Itanium]

What you can't do is load cross-load plugins on any of those ISAs or OSes.

If you have a 64-bit machine, 10.6 is running the 64-bit version of the ScreenSaverEngine, which is incapable of loading 32-bit saver plugins.
[User Picture]From: [info]fantasygoat
Fri, 28-Aug-2009 9:26 PM (UTC)

(Link)

Photoshop CS3 seems to work fine.

I think this is more of a $30 service pack than a true OS upgrade.
[User Picture]From: [info]gen_witt
Sat, 29-Aug-2009 2:03 AM (UTC)

(Link)

Photoshop CS3 is not supported on OS X.6.
[User Picture]From: [info]leopanthera
Fri, 28-Aug-2009 9:28 PM (UTC)

(Link)

Snow Leopard compatibility list

I'm running it. Spotlight is broken if you have more than one disk/partition. Fixable by erasing the .Spotlight-V100 and .fseventsd folders, and rebooting. Otherwise seems OK.
[User Picture]From: [info]bifrosty2k
Fri, 28-Aug-2009 9:49 PM (UTC)

(Link)

I'm sitting in an OSX heavy shop right now, its totally screwy.
There are a bunch of machines that it won't even load 64 bit on...

There are some machines that apparently have 32 bit only bootloaders, that won't run 64bit code properly. You have to load in some hacked bootloader to get stuff to work. Go apple.
From: [info]blasdelf
Fri, 28-Aug-2009 11:21 PM (UTC)

(Link)

That's only if you want to boot a 64-bit kernel, which you do not unless you're a wanker. Only the recent Xserves do so by default.

OS X runs 64-bit code on a 32-bit kernel just fine (both for x86_64 and ppc970). It is novel in this regard.
[User Picture]From: [info]karlshea
Mon, 31-Aug-2009 2:39 AM (UTC)

(Link)

I challenge you to give one reason why you need to be booting the 64-bit kernel on anything other than an Xserve.
[User Picture]From: [info]rane500
Fri, 28-Aug-2009 9:54 PM (UTC)

(Link)

http://snowleopard.wikidot.com/

Grain of salt, YMMV, etc etc.

Seems to be a decent list to me, though. There are a few of my daily-use apps that are either ? or X, but not enough to stop me from upgrading in the next week.
[User Picture]From: [info]endico
Fri, 28-Aug-2009 9:57 PM (UTC)

Has anyone tried Nikon Scan 4?

(Link)

I hope Snow Leopard doesn't break Nikon Scan since Nikon has stopped supporting it. Its a bit crashy on Leopard but usable enough.
[User Picture]From: [info]pavel_lishin
Fri, 28-Aug-2009 10:22 PM (UTC)

(Link)

I'm imagining the guy responsible for the way screensavers work proudly checking in his code, going home, and giving his kids loaded pistols.

"You kids have fun now!"
[User Picture]From: [info]bugpowered
Fri, 28-Aug-2009 11:13 PM (UTC)

(Link)

I'm imagining the guy responsible for the way screensavers work proudly checking in his code, going home, and giving his kids loaded pistols.

"You kids have fun now!"


Yeah, because he's like just one guy, not a team, plus he has got no engineering experience, unlike any random LJ commenter.

3rd party screensavers? That sounds *so* critical...
[User Picture]From: [info]scullin
Fri, 28-Aug-2009 11:19 PM (UTC)

(Link)

The main issue I'm seeing building XScreenSaver is that GetWindowPort is a Carbon function, and Carbon is 32bit only, so none of the GL screen savers build.

There's also some other weirdness of "This screen saver requires Mac OS X 10.4.0 or later. Your computer has Mac OS X 10.6 installed." for the other screen savers that I'm assuming is a setting somewhere I have yet to find.
[User Picture]From: [info]jwz
Sat, 29-Aug-2009 12:39 AM (UTC)

(Link)

I believe the error message that implies that 10.6 < 10.4 is how Apple spells "you are trying to load a 32-bit bundle into a 64-bit process." If this is one you've built yourself, make sure you have the x86_64 arch selected in XCode.

I'm not sure what the new way to spell GetWindowPort is. Apple's documentation on what Cocoa function you should use to replicate Carbon or Quicktime functionality is typically deplorable.
[User Picture]From: [info]rbeef
Sat, 29-Aug-2009 1:53 AM (UTC)

(Link)

Do a project find (command-shift-f) for "10.4.0" and replace it with "10.6", and that should resolve that error. I still couldn't get the savers to run after I did that, but at least System Preferences didn't complain when I tried to open them from the Finder.

For some reason, it needs to be "10.6" rather than "10.6.0", or you'll get a nonsensical error telling you you need "10.6.0 or later" when you have "10.6".
[User Picture]From: [info]vordark
Sat, 29-Aug-2009 12:27 AM (UTC)

(Link)

Christ, the 64/32 bit conversion shit isn't behind us yet?

That said, can some of you tech-industry folks start telling people to stop doing plug-ins via object code and dynamic loading? Yeah, it's great for managing memory in tightly-integrated systems, but screensavers!?! Browser plug-ins? The FUCK!?!

I thought Apple figured out that letting any idiot with a C compiler extend the OS was a bad thing back in the old Extension days. With binary compatibility a real problem now, this is an even worse idea than it was ten years ago.
From: [info]hattifattener
Sat, 29-Aug-2009 5:00 AM (UTC)

(Link)

We tell Apple that regularly, but Apple doesn't itself care— everything they do can simply be recompiled, and encapsulation is unimportant.

Actually they're slowly coming around in one way: browser plugins on SL can run in their own process. This lets the 32-bit, buggy, Flash plugin run in a 64-bit Safari browser and crash it less. They have to do it through some crazy GL hack, it's not quite as clean as it could be under X11, but hey, progress of a sort.

(Presumably you could also run a ppc plugin on an x86 machine this way, under emulation. Wonder if that works.)
[User Picture]From: [info]mattbot
Sat, 29-Aug-2009 6:09 AM (UTC)

(Link)

Dynamic extensibility is one of the defining features of Mac OS X/NextStep/OpenStep, from the current Xnu micro-kernel loading kexts to modifying Objective-C code during runtime. A privileged user can override just about anything without recompiling the kernel. They may be giving out just enough rope for someone to hang themselves but Apple has been surprisingly consistent in applying this philosophy.
[User Picture]From: [info]duskwuff
Sat, 29-Aug-2009 4:58 AM (UTC)

(Link)

Any reason you can't build a 32-bit version for Leopard and a 64-bit version for Snow Leopard, then glue them together with lipo? (Aside from the fact that it's a pain in the ass, that is.)
[User Picture]From: [info]jwz
Sat, 29-Aug-2009 11:15 AM (UTC)

(Link)

Yes, there is a reason: the 10.5 build of ScreenSaver.framework does not include a 64-bit build. So there is no way to compile a 10.6-compatible bundle using a 10.5 OS. So I have to actually spend $30 to Apple to recompile my software -- with no changes -- to make it run on their new OS. And frankly I find that offensive.
[User Picture]From: [info]primaleph
Sat, 29-Aug-2009 6:47 AM (UTC)

(Link)

I'll volunteer to build XScreensaver for you on my Macbook with Snow Leopard on it, if you can give me a quick walkthrough of the process. (I know how to compile on Linux, but I'm a fairly new Mac user, so I'm not sure how similar the process is.)
[User Picture]From: [info]jwz
Sat, 29-Aug-2009 12:05 PM (UTC)

(Link)

Well, since I haven't screwed around with 10.6, I don't know what's needed. But on 10.5, it should be just: load the xscreensaver.xcode project; Build All. I suspect 10.6 will require editing the project to include the x86_64 arch, and possibly other meaningless compatibility indignities. But as I haven't done it, I don't know.
[User Picture]From: [info]lionsphil
Sat, 29-Aug-2009 3:31 PM (UTC)

(Link)

Great. So, basically, OS X is still using xlock.

I wish I could say I was surprised, but I tried to hack about with iAlertU at one point to sync it's better-than-nothing alarm shenanigans with arbitrary screensaver [un]locking, only to find that the closest OS X seems to have to xscreensaver-command is to launch and kill ScreenSaverEngine. And that the only way to tell it "please unlock without the usual password prompt" was to use SIGKILL. Weep.
[User Picture]From: [info]kespernorth
Mon, 31-Aug-2009 4:16 AM (UTC)

(Link)

Snow Leopard is broken in fascinating ways. When a friend of mine tried to install it, the installer somehow managed to TURN ON THE DVD WRITER and etched lovely, precise concentric circles INTO THE INSTALL MEDIA:

http://www.aestheneering.com/installfail.jpg

Not kidding.
[User Picture]From: [info]jwz
Mon, 31-Aug-2009 4:19 AM (UTC)

(Link)

You know, when you see a bug like that... you've just got to sit back and admire it.
[User Picture]From: [info]rafasgj
Mon, 31-Aug-2009 6:01 PM (UTC)

(Link)

OS 10.4 (Tiger) is still better than the later versions, and 10.6 (Snow Leopard) won't run on any of my machines. (Yep, they are all PPC.)

That said... It seems there is a way to run CS 3. CS 4 is said to work "out-of-the-box". I'm not sure about LR, but I believe the latest update will also work (haven't read many complaints about it).

Anyway, it's mainly guesswork, as after any (later) update, it is "cross your fingers and reboot".