7 ms·
The challenges of building modern open source software on PowerPC Mac OS X
- xxpor 2y agoI’m a bit surprised there isn’t mention of big endian issues. Even if libraries nominally support it, I’d be willing to guess there’s a lot of bugs out there due to a lack of active use.
- yjftsjthsd-h 2y agoNot to worry, NetBSD has also done their part to make BE really easy to test - they have a big-endian ARM image that you can run on Raspberry Pi hardware, so you don't need an ancient/exotic/expensive box.
- wannacboatmovie 2y agoMacs of this era shipped with a buggy version of GCC 4.x. Often need to compile with GCC 3.3 if you expect something to work.
- rurban 2y agoI bought a special power macbook from a friend just to be able to support some import programs I maintained on power BE and double-double. Thanksfully those times are over for over a decade now.
- Reason077 2y ago> “dashboard widgets“ Oh man, despite its technical flaws (crashes and bad performance), I still really miss the Dashboard feature from those old Mac OS versions! Just recently, Apple have started reintroducing desktop Widgets to macOS. But I wish you could make them work like the old Dashboard, ie instantly go to them with a swipe gesture or a Fn-key press. The old Dashboard was feature just so fast and easy!
- Klonoar 2y ago> The old Dashboard was feature just so fast and easy! And, amazingly, was HTML/CSS/JS based (for widget development).
- whartung 2y agoAnd they used to have a GUI dev tool designed to make writing things like the widgets easier. Its name eludes me however.
- Lammy 2y agoDashcode https://en.wikipedia.org/wiki/Dashcode https://en.wikipedia.org/wiki/Dashcode My headcanon is that this was secretly a test run for what an iOS IDE would have looked like under the original (pre-iPhoneOS-2.0) model where there was to be no native SDK since Dashcode 2.0 does actually include the ability to target iPhone Safari.
- musicale 2y agoJobs' "sweet solution" of web apps wasn't completely terrible - they added native-look widgets to Safari as well as touch capability and multimedia features. I wonder what might have happened if we had gone further down that alternate path... Even today Amazon somehow managed to make the Luna web client work on Safari, which shows that with an appropriate server back end you can stream some fairly demanding games (and by extension, almost anything) into a web app.
- RandallBrown 2y agoAnd without Dashboard widgets we wouldn't have the canvas element.
- parl_match 2y agoSwipe left from the right edge with two fingers. Command+Expose button.
- Reason077 2y agoOk, but having to go to the edge of the screen or use a modifier key makes it more painful than it should be. Before when Dashboard was just like an extra desktop to the left of your other desktops, you could just three-finger swipe from anywhere on the screen, any time. Same gesture as switching between desktops. It works that way on iOS too. So simple! I understand why they dropped the original Dashboard, its widget platform was a technological dead-end. But now that widgets are back it would be awesome if they made the new widgets work like the old Dashboard again.
- user_of_the_wek 2y agoAs the widgets now basically _are_ your desktop, you can display them quite easily. If you have any part of the desktop visible (e.g. to the left or right of the dock) you can click there so it hides all windows. I'm not sure if you need to enable this somewhere. Also, there is a trackpad gesture to show the desktop: Keep your thumb stationary and use three fingers to swipe away, as if zooming out.
- Reason077 2y agoI don't really want widgets cluttering my desktop, I want them in their own space (ie: their own desktop). The use case for me for widgets is to display information I want to look at very briefly and then have go away again. It ought to be pretty simple for Apple to add a "special" desktop for widgets to the left of the first desktop. This would match both the old Dashboard behaviour that I miss, and the way that widgets work on iOS. (And the gesture you describe isn't "show desktop", it's "show all windows", though I'm sure it can be configured in macOS settings!)
- deleted 2y ago[deleted]
- linguae 2y agoI love the Tiger through Snow Leopard era of Mac OS X, and I feel I could be productive on a G4, G5, or early Intel Mac for lightweight computing tasks, though I’d need to use another device for web browsing and for handling modern file formats. I think one of the major challenges of using modern software on early versions of Mac OS X (and even on current macOS releases) is the fact that Linux has become the de-facto standard Unix-like operating system, and modern Linux with systemd, Wayland, dbus, and other technologies have deviated greatly from POSIX and other classical Unix technologies. Granted, the world has moved on since the last POSIX revision, and commercial Unix (e.g., Solaris, HP-UX, AIX, etc.) is not as commonplace compared to 20 years ago. Still, this has impacted the BSDs; their development communities are more conservative and some people have strong feelings about technologies like systemd and Wayland, but since Linux has a higher marketshare and an increasing amount of software is written for it without regard for the BSDs and other systems, then Linux has become the standard and the BSDs have to deal with a fragmented software base that once cared about portability among *nix systems. I wonder, though, how difficult would it be to replace older versions of Darwin (the open-source BSD and Mach layers of macOS) with updated code while ensuring the proprietary layers running on top of Darwin still work? This might be a good approach for helping older macOS versions run newer software, as well as adding compatibility layers to deal with Linuxisms. I remember reading about experiments updating the kernels of NeXTstep and Rhapsody in a similar fashion.
- znpy 2y ago> though I’d need to use another device for web browsing and for handling modern file formats Have you tried running something xquartz and have, say, firefox running on sone other computer on the network? As long as you’re on a fast lan with low noise (basically cable gigabit ethernet?) it should be mostly okay? You’d have to redirect audio as well though…
- user982 2y agoWhat's the best, most seamless option for this kind of LAN-hosted browser? X11 forwarding, Apache Guacamole, something else?
- haunter 2y agoI have a Macbook with the last Snow Leopard (10.6.8) which supports PPC through Rosetta and Xcode. Generally speaking web browsing is the biggest problem if you care about that because there is virtually no supported modern browser (apart from Lynx but that's text based). And even if there would be one the web is totally different compared to ~2010 era. Adblocking is a _must_ and without that any site with ads kills the old Core 2 Duo CPUs
- asveikau 2y agoI have an old g3 tower that has 10.4 on it. Haven't powered it on in years. I got it in the mid 2000s to port code I'd written for gnustep to cocoa. Later I wrote a bit of ppc asm. It was a cool instruction set.
- ranger_danger 2y agoThis was already posted 3 days ago: https://news.ycombinator.com/item?id=39951524 https://news.ycombinator.com/item?id=39951524
- metadat 2y agoThanks for pointing this out, but said post got zero comments and only 1 lonely upvote. Win some, and lose some (just look at my own submission history). Cheers.
- zokier 2y agoLot of the issues seem to stem from old GCC. Can't you just build a newer version of GCC (and binutils etc) to make life easier? > Rust: Even if it worked on this platform I wonder how much effort getting rust there is actually needed. rustc already has (tier3 level) support for powerpc-unknown-freebsd so PPC OSX doesn't sound like completely out of the question?
- kccqzy 2y agoI really wonder whether at least some of the compiler related issues can be worked around by using cross-compiling. Sure Xcode has GCC 4.0, but can we have a modern machine run a more modern version of GCC that targets this platform? Linker might be hard so maybe just do the linking on the actual machine. > Reduce CO2 emissions, keep writing C. This really made me chuckle. Really!? To reduce CO2 emissions just use a modern machine that's going to be so much more efficient on a performance per watt basis. The author is missing the forest for the trees. Also, Rust has great cross-compilation support no? Isn't it easier to get Rust code compiled on a modern machine for that old machine?
- torstenvl 2y agoOn any given machine, Rust compilation consumes comparatively more power. Also, I doubt mere mortals can compile Rust software for PowerPC OS X. LLVM IR isn't backward compatible and Darwin/PPC hasn't been a supported target for a while. If you used a 2018 rustc and LLVM 7.x you might get lucky.
- mistyvales 2y agoI still use my dual core PPC tower for Max MSP sometimes. I don't really know what I'm doing, but I dig the old layout. Plus it runs pretty well on an SSD.. Currently running Sorbet Leopard which is pretty sweet.
- musicale 2y agoIs there no modern gcc or clang for PowerPC? edit: looks like gcc 10.2 (at least) will work, so that's up to C++17?
- JSR_FDED 2y agoJust spent a fair amount of time figuring out how to make a Mac Mini G4 with Snow Leopard (10.5.8) usable as my home bastion for when I want to access my home systems remotely. The biggest issues are that Safari and sshd are so old they're basically useless. - I don't really need a browser on that machine, but for comfort I replaced Safari with the no longer updated but still usable TenFourFox browser. Log into your ppc system and type 'machine' at the prompt. Use the value it shows to choose which version to download from: https://sourceforge.net/projects/tenfourfox/files/fpr32.5/ https://sourceforge.net/projects/tenfourfox/files/fpr32.5/ - For sshd replacement I installed Dropbear as I couldn't get openssh to build. To get Dropbear to build I had to: 1. Comment out "LTC_CFLAGS += -Wno-nullability-completeness" in libtomcrypt/makefile_include.mk and libtommath/makefile_include.mk (as the C compiler didn't know that option). 2. In default_options_guard.h after the #ifndef related to DROPBEAR_SVR_PAM_AUTH, add "#define DROPBEAR_SVR_PASSWORD_AUTH 0" and "#define DROPBEAR_SVR_PAM_AUTH 1" (as OS X needs PAM to log in). 3. Build with: ./configure --enable-pam make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" sudo make install 4. Start the new Dropbear ssh server on port 2222 as follows: mkdir /etc/dropbear /usr/local/sbin/dropbear -F -E -R -p 2222 You can then ssh into the machine as before (ssh -p2222 user@host) and things like port forwarding work fine. Nice feeling to have a G4 Mini still doing something useful!
- spectre3d 2y agoThose are great tips regarding getting a working version of TenFourFox and installing Dropbear, thank you for sharing! Just to be clear, you’re running Leopard (10.5), not Snow Leopard (10.6). Snow Leopard requires an Intel CPU, although hacks exist to run it on PPC.