Apple

Apple related

I released odcctools today, no changes for the last month or so, so I thought I had better put something out there.

http://svn.macosforge.org/repository/odcctools/release/odcctools-20090808.tar.bz2

Cover of the book Mac for Linux GeeksI was the Technical Reviewer for the book Mac for Linux Geeks, from Apress, Inc. by Tony Steidler-Dennison. It was my first time to be a Technical Reviewer, it was interesting, but not something I plan on repeating, it simply took up too much time, with not enough pay. Getting paid by the page is not a good thing.

This is not a book review, I don’t think that I would be a good reviewer, being biased, as I am. Please find reviews elsewhere – although a quick look at amazon shows none there yet, unfortunately.

[EDIT June 22nd 2009] Found a review here http://hants.lug.org.uk/cgi-bin/wiki.pl?BookReviews/MacForLinuxGeeks. It’s the only one I could find.

One of the changes that we made in libtool-1.5.26 and cvs HEAD was to change the archive_expsym_cmds on darwin. With leopard the older method of creating the output and then using nmedit to reduce the exported symbols seems to work, but the dynamic linker then sometimes fails to load the resulting object. Both this apache bug and this gnome bug are fixed by using ld’s -exported_symbols_list flag instead. I am glad the change made it into 1.5.26 :)

Of course the reason that libtool did not use -exported_symbols_list in the first place is that Mac OS X 10.0 and 10.1 do not support it, and nmedit did the job just fine up to 10.5. Apple seems to have allowed nmedit to bitrot, it no longer does the same job that it did in 10.4. Filing a bug that you know in advance is just going to be closed with “use ld’s -exported_symbols_list flag” seems kind of pointless, but I guess I should do it anyway.

Well, I was not sure that there would be a source release with 10.5, in fact I had convinced myself that there would not be any non GPLed sources released, but they are here.Thanks Kevin! 

Leopard’s X11

I have now installed leopard GM on my macbook, so far things are going well. But the new X11 does not appear to be as popular as I had assumed.It does have some pretty major bugs:

  1. Fullscreen does not work (I never really used fullscreen, so it is not an issue for me)
  2. If you don’t have a three button mouse, you may have some issues, modifier keys do not work.
  3. xinerama does not work.
  4. The Applications menu has issues.
  5. Broken with spaces (I never really expected that people would expect this to work, but they do)
  6. xterm does not do unicode

Now, this is disappointing, but remember that people have been complaining for quite a while that Apple’s X11 is ancient, and have been requesting that Apple upgrade to the latest x.org. They did that, and it was a major change, so there are bound to be bugs. Would it be better I wonder to have all the old known bugs forever?

The integration with launchd has thrown a few people also. The DISPLAY environment variable is set when you log in, it points to a socket that is controlled by launchd. As soon as any application accesses the socket X11 will launch if it was not already running. So you can double-click on an X11 app in the finder, and it will start X and run. Pretty darn cool. People who set DISPLAY in their login shells without testing if it was already set have had issues.

Ben Byer has not yet learned that he is not required by his contract to provide help and support on mailing lists, so he has been busy answering questions and being polite, even with all the vitriol on the x11-users list, when he could have just stuck with dealing with formally reported bugs. Some seem to believe that he’s the head of an X11 team within Apple, I’m sure that he just wishes he could devote more of his time to X11.

Today there was more friendly discussion, Ben has asked for help and patches, and there was someone looking for the sources to xterm so that they could fix the bug that bothered them (and then give Ben the patch so that everyone could benefit), now if everyone with a pet bug would download the source and fix their issue we would have a better X11 in a much shorter time.

Apple has committed their changes to upstream git, and hope to eventually do all development in the freedesktop.org repository, with bugs also at the freedesktop bugzilla (open bugs, none of this closed radar crap), so I have nothing to complain about. There are bugs, some serious, if one really bothers me, I will attempt to track it down and fix it. If a bug bothers you, why not do the same.

Update:

Ben took off his Apple employee hat and made a private release of sources and an Xquartz binary that has a number of bug fixes. How’s that for service!

WWDC

WWDC is Apple’s developer conference. In recent years it has been held at the Moscone center in San Francisco. It is being held there this year also, from June 11th to the 15th.

I have been to it twice before, in 2004 and last year. This year, I was lucky enough to again recieve an invitation to the event, so will be in San Francisco from June 10th to the 16th. The invitation includes a conference pass, but no hotels or flights. Luckily again, this year, having moved to Canada, and having flown a lot in recent years, I can get to San Francisco on airline points (well, ok, I have to buy $69 worth of points and pay $75 in taxes etc.). So really, I only have to cover hotels and expenses, which shouldn’t be too much.

I am looking forward to meeting Ben Byer, Ben Reed and others that I have only ever communicated with electronically, and, of course, meeting others that I have met at previous WWDCs.

Way back in December 2005, a message was posted to Apple’s darwin-dev list asking for help porting x.org 7.x to Mac OS X. I was on holidays at the time and, having some free time, albeit temporarily, volunteered.

By June 2006, we had a working copy, working in the sense that it all built and started up. not working in the sense of actually, well, working. I could launch an xterm, and it would start with completely black windows and, if I recall correctly, no working mouse or keyboard. It was kind of hard to keep up with a fast-develping upstream source when I could only devote a day or two at odd intervals. The source would refuse to build even though that module had built for me the month before and so on. It was a pain.

Kevin Van Vechten (Apple BSD Group manager) put Ben Byer on the job last fall and things really started moving. Apple fixed the major issues, the black windows, non-functional mice and keyboards, even the terrible startup times and then pushed the source changes upstream. The announcement was greeted with great fanfare and celebration. Okay, there seems to have been no reaction whatever, a tad disappointing. :(

There are some questions of library compatibility, the newer x.org libraries have a higher compatibility_version than the older Apple X11 libraries. This means that programs linked to the older libraries can still run with the newer ones, but that programs linked to the new libraries can not run if you remove the new X and reinstall Apple’s X11 from tiger. Should not be a problem for most people. If you go against all reccommendations and have DYLD_* environment variables set, you’re on your own. Anyway the issue got me to hack this up last night. A library version number editor. It was a fun hack, I strongly advise that you never use it though, there is a better way!