Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

barracuda156

macrumors 68020
Original poster
Sep 3, 2021
2,398
1,591
(Disclaimer: While this should be generally working, but: this is an experimental software, no guarantees are provided, it is advisable to back up any important data prior to installing anything.
Also, this is not an official MacPorts distribution, please do not report any possible issues to the upstream, unless the same can be reproduced on a standard set-up when building from source. MacPorts upstream bears no responsibility with regard to this software.
Finally, this distribution is modified specifically for 10.6 PPC. It may or may not work on 10.6.8 Rosetta, but it won’t work on 10.5.)

Prerequisites: 10.6 PPC (10a190 or later), matching version of Xcode. Unless you are planning to do development, use specifically 10a190 with Xcode from 10a190.

MacPorts 2.10.0 (configured to install into /opt/local)
Bootstrapped curl (recommended and required, unless you build yourself from source; installs into /opt/bootstrap)

Browsable index of pre-built ports

Basic functionality is identical to MacPorts (so if anyone is unfamiliar with MacPorts but want to use this, online guide applies).

Upon installation, please go to /opt/local/etc/macports and rename configuration files there, dropping “default”. It is advised to actually review those files, they contain basic settings to be used (skippable if you are happy with whatever defaults, but renaming should be done).

Then you can run `sudo port sync` (which may take some time to complete) and then install ports via `sudo port install`.
Do not use `port selfupdate`, it is not supported at the moment.

Please be ready that something may not work, at least not yet. Report any errors or unexpected behavior here or on GitHub here.

P. S. If you will want to use any apps which use X11 or GTK, please remove a broken X11 of 10.6 and install `xorg-server-legacy` port from MacPorts (reboot required). To remove a system X11, run (reference):
Code:
sudo rm -rf /usr/X11* /System/Library/Launch*/org.x.* /Applications/Utilities/X11.app /etc/*paths.d/X11
sudo pkgutil --forget com.apple.pkg.X11User
KDE apps require non-trivial setup and a large chunk of them are expected not to work.
For compilers: stick to default choices, and you should be good. That will be either Xcode gcc or gcc-14 (in a few cases gcc-13).
Ports which use MPICH should be installed like `sudo port install ${portname} +gcc14` (if you see an error about mpich-default, this is how to solve it).
 
On a general note:

1. At any given time it may happen that a portfile will have a version ahead of what is available pre-built. I try to avoid such cases, but something can be missed. You may build from source then, of course, of otherwise look at the link with available ports above, go inside a dir for the port of interest, it will be evident from the archive name which version is available to install. Then you can just edit its portfile, changing version to whatever wanted. That should allow it to install.

2. Same applies for cases when a port with gazillion variants is not available with specific variant you want. Check what exists, usually a default variant will be available plus possibly some other variant(s). Of course I am not gonna build every existing variant for every port :)

3. If some port is not present on the website, it does not follow that it cannot be built. Try building yourself from source, if that fails, open an issue, requesting a fix. Same can be done if you are on some archaic G4 machine, which takes a week to build anything. Ask, I will try building it.

4. Unfortunately, availability of a port does not guarantee that it works correctly. (This is not specific to my ports, it applies likewise to MacPorts itself.) It is impossible to test every port, so if I do not use some software and have no particular interest in it, it is unknown if it works. By default a port which builds is supposed to work, but it is not always the case. Upstream developers, sadly, also may not test what they release. If something does not work, please report that, it is helpful to know such cases.
 
Hi @barracuda156!

Both installer packages for MacPorts and bootstrapped Curl installed on 10A190 as expected. The installer did not export the paths however so adding the lines manually to the users .profile is currently required - please add to your instructions for new users.

Currently running Sudo Port -v Sync and seeing a lot of errors…

IMG_2104.jpeg


Will leave it synching for the moment and evaluate properly later.

I haven’t modified any of the default config files, just removed the appended ‘default’ at the end of each of them as i assume the necessary changes have been implemented already in your installer?

Running port sync a second time there were no errors, however the port index sync failed and now it isn’t possible to install ports…

IMG_2105.jpeg
 
Last edited:
  • Like
Reactions: Threaderr
Hi @barracuda156!

Both installer packages for MacPorts and bootstrapped Curl installed on 10A190 as expected. The installer did not export the paths however so adding the lines manually to the users .profile is currently required - please add to your instructions for new users.

Currently running Sudo Port -v Sync and seeing a lot of errors…

View attachment 2405923

Will leave it synching for the moment and evaluate properly later.

I haven’t modified any of the default config files, just removed the appended ‘default’ at the end of each of them as i assume the necessary changes have been implemented already in your installer?

Running port sync a second time there were no errors, however the port index sync failed and now it isn’t possible to install ports…

View attachment 2405934

It should be sudo port -v sync. (You have -v in a wrong place in a command on the screen.)

Everything works fine on my end. Could you please retry? Since you have no ports installed, you may just trash the /opt/local directory.

Just in case, rename conf files via `mv`. To make sure macOS does not add an invisible extension, that will prevent them from being read.
 
  • Like
Reactions: ChrisCharman
It should be sudo port -v sync. (You have -v in a wrong place in a command on the screen.)

Everything works fine on my end. Could you please retry? Since you have no ports installed, you may just trash the /opt/local directory.

Just in case, rename conf files via `mv`. To make sure macOS does not add an invisible extension, that will prevent them from being read.
Pretty sure the first attempt was sudo port -v sync and the second screenshot when i was trying to install ports and discovered the port index wasn’t working i’ve clearly written ‘sync -v’ but will try again with the correct syntax when i get home to be sure.
 
IMG_9466.jpeg


I did not reinstall bootstrap curl, but MacPorts is installed anew from downloaded zip.

Do you have the same in settings?
 
  • Like
Reactions: Threaderr
Pretty sure the first attempt was sudo port -v sync and the second screenshot when i was trying to install ports and discovered the port index wasn’t working i’ve clearly written ‘sync -v’ but will try again with the correct syntax when i get home to be sure.

If the error on your end will be reproducible (port groups not found), I will suggest how to debug.

P. S. Please install from scratch, not as an upgrade to existing installation.
 
If the error on your end will be reproducible (port groups not found), I will suggest how to debug.

P. S. Please install from scratch, not as an upgrade to existing installation.
Unfortunately same result starting from scratch. I will nuke it and try without installing the bootstrapped Curl.


IMG_2112.jpeg
IMG_2113.jpeg
 

Attachments

  • IMG_2113.jpeg
    IMG_2113.jpeg
    549.8 KB · Views: 42
Nope. Looks like i’ll have to try updating curl from source. As and aside the apple provided Tcl is broken even in retail Snow Leopard so needs to be updated anyway on our systems.

IMG_2114.jpeg
 
Unfortunately same result starting from scratch. I will nuke it and try without installing the bootstrapped Curl.


View attachment 2406067View attachment 2406065

It won’t work without curl, because it is linked to it.

Could you try installing a standard official 2.10.0 and run port sync?
To ensure the issue is with my packaging and not just new MacPorts in general.

P. S. Because it does seem some regression happened with port indexing in 2.10.0. So better to make sure standard 2.10.0 works – then the issue is on my packaging side.
 
Last edited:
  • Like
Reactions: ChrisCharman
If you build from source, you can control which `curl` is used etc.

`—with-curlprefix=/opt/bootstrap` is how I build it (for myself as well).

But now I would like to understand why this fails for you. Puzzling at the moment.

Until portindex works nothing else will. You did nuke the earlier corrupt installation, right? That is, delete the whole /opt/local, so anything rotten is not inherited.
 
Unfortunately same result starting from scratch. I will nuke it and try without installing the bootstrapped Curl.


View attachment 2406067View attachment 2406065

Wait, this does not look the same to me.

Originally the issue was that for some reason the Portgroup was not recognized, as if it does not exist. That was strange and I have no explanation to it. This issue cannot be on MacPorts upstream side, I think.

Everything after that appears to be a different problem – that registry database was corrupted due to an interrupted install (or some other reason), and cannot rebuild itself. This may well be upstream issue.

What happened in the third case? I see that no errors with R portgroup are displayed, but then process is suddenly interrupted.
 
It won’t work without curl, because it is linked to it.

Could you try installing a standard official 2.10.0 and run port sync?
To ensure the issue is with my packaging and not just new MacPorts in general.

P. S. Because it does seem some regression happened with port indexing in 2.10.0. So better to make sure standard 2.10.0 works – then the issue is on my packaging side.

Yeah no worries, i’ll download their package and try now after nuking again.

If you build from source, you can control which `curl` is used etc.

`—with-curlprefix=/opt/bootstrap` is how I build it (for myself as well).

But now I would like to understand why this fails for you. Puzzling at the moment.

Until portindex works nothing else will. You did nuke the earlier corrupt installation, right? That is, delete the whole /opt/local, so anything rotten is not inherited.

Yeah that’s well and good but ideally we need your simple package install method to work for users to actually want to use it, if they have to compile from source and then edit port files etc we’re not gonna get many people interested. As @B S Magnet pointed out before, the attraction of MacPorts is its ease of use for most users. It’s a real shame that Ian, Kencu and yourself are the only people who actively try and maintain it for PowerPC Darwin. Maybe we should make an Mpstats widget that falsely reports all intel macs as running on PowerPC to upstream so they show interest in the platform.

…and yes i fully nuked the MacPorts install ;)

Wait, this does not look the same to me.

Originally the issue was that for some reason the Portgroup was not recognized, as if it does not exist. That was strange and I have no explanation to it. This issue cannot be on MacPorts upstream side, I think.

Everything after that appears to be a different problem – that registry database was corrupted due to an interrupted install (or some other reason), and cannot rebuild itself. This may well be upstream issue.

What happened in the third case? I see that no errors with R portgroup are displayed, but then process is suddenly interrupted.

I got no idea what’s going on mate. The R errors only showed up the first time. It’s very strange.

UPDATE:

Official ‘Leopard’ package will not install on 10A190. So i’ve downloaded the source and currently building it from scratch.
 
Last edited:
Yeah that’s well and good but ideally we need your simple package install method to work for users to actually want to use it, if they have to compile from source and then edit port files etc we’re not gonna get many people interested.

Yes, but unless we (someone) do the testing, nothing ever gonna work.

I hope we get deterministic errors. Then it should be easy to fix.

I will try installing this on another machine locally.
 
Yes, but unless we (someone) do the testing, nothing ever gonna work.

I hope we get deterministic errors. Then it should be easy to fix.

I will try installing this on another machine locally.
UPDATE:

Official ‘Leopard’ package will not install on 10A190. So i’ve downloaded the source and currently building it from scratch.
 
  • Like
Reactions: Threaderr
UPDATE:

Official ‘Leopard’ package will not install on 10A190. So i’ve downloaded the source and currently building it from scratch.

Just to remind, if building from official source, you will need to a) make portsandbox fix and b) set C++ runtime in macports.conf. This is after installation.
 
  • Like
Reactions: ChrisCharman
I’ll have to read through your guide again when I get to that point. Time is limited today. Cheers @barracuda156

PowerBook still struggling to download 130 MB, but I installed it on Rosetta in the meanwhile from my pre-built package, and so far port indexing runs normally.

I would really appreciate if you or someone tries on another physical machine. The only thing which I could think of – which may differ between my clean install and someone’s else – is permissions/user/group. I can try tomorrow installing into a random alternative user.
 
PowerBook still struggling to download 130 MB, but I installed it on Rosetta in the meanwhile from my pre-built package, and so far port indexing runs normally.

I would really appreciate if you or someone tries on another physical machine. The only thing which I could think of – which may differ between my clean install and someone’s else – is permissions/user/group. I can try tomorrow installing into a random alternative user.
Plug the PowerBook into ethernet. Rosetta is a different beast to actual PPC hardware.

I have many systems i can test on, i just don’t have the time today unfortunately. When i do i’ll report back.
 
Plug the PowerBook into ethernet. Rosetta is a different beast to actual PPC hardware.

I have many systems i can test on, i just don’t have the time today unfortunately. When i do i’ll report back.

MacPorts has been broken on Rosetta for many versions if built for ppc, I have to build it for intel now (you can still build port for ppc). Anyway, Rosetta froze during indexing, no big surprise, it is anything but reliable and smooth.

PowerBook runs indexing normally with zero issues, but I will have to interrupt it: it is 4 AM, I cannot wait for another three hours for it to complete it LOL

But so far I cannot get any failures on native PowerPC machines, whether G5 or G4.
 
  • Like
Reactions: Threaderr
@ChrisCharman

I have done a clean install of 10a190 image on a FireWire partition, created a random user (different name from my main system) and installed Xcode from 10a190 iso.
(The only change done after that was to remove two AHCI kexts, because they have issues with my PCIe card in the Quad.)

Then I downloaded two distro archives:
Code:
curl -O http://macos-powerpc.org/MacPorts/MacPorts-2.10.0.pkg.zip
curl -O http://macos-powerpc.org/MacPorts/bootstrap_curl.zip
(System curl works for this, since no https needed.)

Extract both archives, install bootstrap_curl, then install MacPorts.

Rename files:
Code:
sudo mv /opt/local/etc/macports/archive_sites.conf.default /opt/local/etc/macports/archive_sites.conf
sudo mv /opt/local/etc/macports/macports.conf.default /opt/local/etc/macports/macports.conf
sudo mv /opt/local/etc/macports/pubkeys.conf.default /opt/local/etc/macports/pubkeys.conf
sudo mv /opt/local/etc/macports/sources.conf.default /opt/local/etc/macports/sources.conf
sudo mv /opt/local/etc/macports/variants.conf.default /opt/local/etc/macports/variants.conf

Run this in Terminal:
Code:
export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
sudo port -v sync

The archive with ports downloaded, extracted, and now indexing is running.
No issues whatsoever so far.

I will update again once indexing completes and I can install a few ports to verify everything works.

P. S. While upgrading from existing MacPorts is expected to work, it is not properly tested.
So please, do this as a clean install and do not interrupt any stage.
At the moment we need to make sure a standard process works reproducibly (on my end it does).
Once that is established, experimenting can be done.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.