Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
This is a continuation of @kencu instructions here: https://forums.macrumors.com/thread...s.2232031/page-45?post=30227761#post-30227761
Macports Guide: https://guide.macports.org/
[The post will keep being updated]

I refactor the post in order to make it easier: you won't need to refer to the earlier thread.
So, what you need to do step-wise:

1. Download Macports source code here: https://distfiles.macports.org/MacPorts/MacPorts-2.7.2.tar.bz2
2. Extract the archive, then:
Code:
cd MacPorts-2.7.2/
./configure
make && sudo make install

3. Assuming you have BBEdit installed,
Code:
bbedit /opt/local/etc/macports/macports.conf

That opens the config file, add the following lines, save the file:
Code:
build_arch ppc
universal_archs ppc ppc64
buildfromsource always
cxx_stdlib libstdc++
# macosx_deployment_target 10.5
# macosx_sdk_version 10.5
buildmakejobs           /NUMBER OF CPU CORES/
Last two lines are commented on purpose, you don't need them active normally, but they may happen to be useful occasionally (of course, then you uncomment them temporarily).
The following setting may be useful if you have more than one Xcode installation (relevant for 10.6.8 Rosetta):
Code:
developer_dir           /Developer

4. Then open this file:
Code:
bbedit /opt/local/etc/macports/archive_sites.conf

Uncomment the last line, so that you have:
Code:
name                    macports_archives

5. Open sandbox config:
Code:
bbedit /opt/local/libexec/macports/lib/port1.0/portsandbox.tcl

Replace one line (in fact, just a number), save the file:
Code:
@@ -121,7 +121,7 @@
     foreach dir $allow_dirs {
         foreach perm $perms {
             append portsandbox_profile " (allow $perm ("
-            if {${os.major} > 9} {
+            if {${os.major} > 10} {
                 append portsandbox_profile "subpath \"${dir}\"))"
             } else {
                 append portsandbox_profile "regex #\"^${dir}/\"))"

6. Add the following to your PATH:
Code:
PATH=/opt/local/bin:/opt/local/sbin:$PATH
See here: https://guide.macports.org/#installing.shell
This is needed for the shell (zsh, bash) to recognize "port" command. (Of course you may also run it instead as /opt/local/bin/port.)

7. Run the port sync (will take quite a while):
Code:
sudo port -v sync

8. Open this:
Code:
bbedit /opt/local/etc/macports/sources.conf

Add #override repo lines, so that in the bottom you have:
Code:
# override repo
file:///opt/PPCSnowLeopardPorts

rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]

9. Place the extracted PPCSnowLeopardPorts folder in /opt.

10. Run port sync again:
Code:
sudo port -v sync

11. Run the following:
Code:
sudo mv /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers-moved
sudo ln -s /opt/PPCSnowLeopardPorts/_resources/port1.0/compilers /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers

This (11) should be done every time after port sync. (Nothing breaks down if you don't, but Macports gonna try using compilers that are unavailable for 10.6 PPC.)

12. Build whatever you need with "sudo port -v install". More useful info here: https://guide.macports.org/

P. S. The attachment below is the original repo by @kencu

As I glance at these steps and contemplate starting over and trying again, is this something I will be able to do entirely from within the SL-PPC environment?
 
Oh wow, this is all in a VM? What is your VM setup?

I can’t speak for @barracuda156 here, but I can speak for all of the folks generally who’ve been doing continuous testing of 10.6 for PPC since 2020:

Snow Leopard on PowerPC doesn’t need a VM. It simply needs a PowerPC system on which it can run, and one of the two known developer versions of Snow Leopard which can boot and run on PowerPC Macs (in effect, it’s a universal binary).
 
  • Like
Reactions: Amethyst1
Oh wow, this is all in a VM? What is your VM setup?

I have 10.6.8 Server installed in Parallels Desktop. I did that because iOS 15 update broke Hotspot, and I cannot get internet connection on 10.6.8 installed normally. In turn, Parallels does not allow 10.6.8 client.

10A190 is installed on a PowerPC machine.
 
Snow Leopard on PowerPC doesn’t need a VM. It simply needs a PowerPC system on which it can run, and one of the two known developer versions of Snow Leopard which can boot and run on PowerPC Macs (in effect, it’s a universal binary).

It would be useful in fact if someone succeeds in installing some of the 10.6 DP in a VM. I tried to install 10A96 Server and 10A222 Server in Parallels but it did not work for me for w/e reason.
 
This is a continuation of @kencu instructions here: https://forums.macrumors.com/thread...s.2232031/page-45?post=30227761#post-30227761
Macports Guide: https://guide.macports.org/
[The post will keep being updated]

I refactor the post in order to make it easier: you won't need to refer to the earlier thread.
So, what you need to do step-wise:

1. Download Macports source code here: https://distfiles.macports.org/MacPorts/MacPorts-2.7.2.tar.bz2
2. Extract the archive, then:
Code:
cd MacPorts-2.7.2/
./configure
make && sudo make install

3. Assuming you have BBEdit installed,
Code:
bbedit /opt/local/etc/macports/macports.conf

That opens the config file, add the following lines, save the file:
Code:
build_arch ppc
universal_archs ppc ppc64
buildfromsource always
cxx_stdlib libstdc++
# macosx_deployment_target 10.5
# macosx_sdk_version 10.5
buildmakejobs           /NUMBER OF CPU CORES/
Last two lines are commented on purpose, you don't need them active normally, but they may happen to be useful occasionally (of course, then you uncomment them temporarily).
The following setting may be useful if you have more than one Xcode installation (relevant for 10.6.8 Rosetta):
Code:
developer_dir           /Developer

4. Then open this file:
Code:
bbedit /opt/local/etc/macports/archive_sites.conf

Uncomment the last line, so that you have:
Code:
name                    macports_archives

5. Open sandbox config:
Code:
bbedit /opt/local/libexec/macports/lib/port1.0/portsandbox.tcl

Replace one line (in fact, just a number), save the file:
Code:
@@ -121,7 +121,7 @@
     foreach dir $allow_dirs {
         foreach perm $perms {
             append portsandbox_profile " (allow $perm ("
-            if {${os.major} > 9} {
+            if {${os.major} > 10} {
                 append portsandbox_profile "subpath \"${dir}\"))"
             } else {
                 append portsandbox_profile "regex #\"^${dir}/\"))"

6. Add the following to your PATH:
Code:
PATH=/opt/local/bin:/opt/local/sbin:$PATH
See here: https://guide.macports.org/#installing.shell
This is needed for the shell (zsh, bash) to recognize "port" command. (Of course you may also run it instead as /opt/local/bin/port.)

7. Run the port sync (will take quite a while):
Code:
sudo port -v sync

8. Open this:
Code:
bbedit /opt/local/etc/macports/sources.conf

Add #override repo lines, so that in the bottom you have:
Code:
# override repo
file:///opt/PPCSnowLeopardPorts

rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]

9. Place the extracted PPCSnowLeopardPorts folder in /opt.

10. Run port sync again:
Code:
sudo port -v sync

11. Run the following:
Code:
sudo mv /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers-moved
sudo ln -s /opt/PPCSnowLeopardPorts/_resources/port1.0/compilers /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers

This (11) should be done every time after port sync. (Nothing breaks down if you don't, but Macports gonna try using compilers that are unavailable for 10.6 PPC.)

12. Build whatever you need with "sudo port -v install". More useful info here: https://guide.macports.org/

P. S. The attachment below is the original repo by @kencu

Update:

I followed the opening post’s instructions almost to the letter (almost, in that all instances of “PPCSnowLeopardPorts” as a directory name are “cloudedleopardports” in my environment).

I let (the first) port -v sync (Step 7) run overnight, after working through steps 1–6 (yes, a clean-slate compile of MacPorts-2.7.2; I use vi).

Code:
Total number of ports parsed:    29653
Ports successfully parsed:    29652
Ports failed:            1
Up-to-date ports skipped:    0

sh-4.3# vi /opt/local/etc/macports/sources.conf
sh-4.3# cd /opt/local/
sh-4.3# ls -la
total 8
drwxr-xr-x  12 root  admin  408 Mar 24 03:32 .
drwxr-xr-x   4 root  admin  136 Mar 24 03:31 ..
drwxr-xr-x   8 root  admin  272 Mar 24 03:32 bin
drwxr-xr-x   3 root  admin  102 Mar 24 03:32 etc
drwxr-xr-x   2 root  admin   68 Mar 24 03:32 include
drwxr-xr-x   3 root  admin  102 Mar 24 03:32 lib
drwxr-xr-x   3 root  admin  102 Mar 24 03:31 libexec
lrwxr-xr-x   1 root  admin    9 Mar 24 03:32 man -> share/man
drwxr-xr-x   2 root  admin   68 Mar 24 03:32 sbin
drwxr-xr-x   8 root  admin  272 Mar 24 03:32 share
drwxr-xr-x   8 root  admin  272 Mar 24 03:32 var
drwxr-xr-x   2 root  admin   68 Mar 24 03:32 www

Seemed fine.

Next, step 8: I modified /opt/local/etc/macports/sources.conf and, step 9, I moved the contents of the PPCSnowLeopardPorts into its new home:

Code:
sh-4.3# vi /opt/local/etc/macports/sources.conf
sh-4.3# mv /Users/nope/Desktop/cloudedleopardports /opt/

With step 10, I ran port -v sync again:

Code:
sh-4.3# cd cloudedleopardports/
sh-4.3# port -v sync
--->  Updating the ports tree
Synchronizing local ports tree from file:///opt/cloudedleopardports
Creating port index in /opt/cloudedleopardports
Adding port databases/db48
Adding port devel/cctools
Adding port devel/ld64
Adding subport ld64-97
Adding subport ld64-127
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Adding subport ld64-236
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Adding subport ld64-274
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Adding subport ld64-latest
Adding subport ld64-xcode
Adding port devel/m4
Adding port devel/openssl
Adding port lang/gcc7
Adding subport libgcc7
Adding port lang/libgcc
Adding port lang/python39
Adding port net/kerberos5
Adding port textproc/libiconv
Adding subport libiconv-bootstrap

Total number of ports parsed:    18
Ports successfully parsed:    18
Ports failed:            0
Up-to-date ports skipped:    0

Synchronizing local ports tree from rsync://rsync.macports.org/macports/release/tarballs/ports.tar

Willkommen auf dem RSYNC-server auf ftp.fau.de.
Nicht all unsere Mirror sind per rsync verfuegbar.

Welcome to the RSYNC daemon on ftp.fau.de.
Not all of our mirrors are available through rsync.


receiving file list ... done
./
ports.tar
ports.tar.rmd160

sent 68529 bytes  received 19168 bytes  4740.38 bytes/sec
total size is 95386624  speedup is 1087.68
Creating port index in /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports
Adding port devel/npm3
Adding port devel/npm4
Adding port devel/npm5
Adding port devel/npm6
Adding port devel/npm7
Adding port devel/npm8
Adding port java/openjdk18-corretto
Adding port java/openjdk18-sap
Failed to parse file lang/ghc/Portfile: can't read "ghc_build_arch": no such variable
Adding port python/py-imread
Adding subport py37-imread
Adding subport py38-imread
Adding subport py39-imread
Adding subport py310-imread
Adding port python/py-pure_eval
Adding subport py37-pure_eval
Adding subport py38-pure_eval
Adding subport py39-pure_eval
Adding subport py310-pure_eval
Adding port science/cdo

Total number of ports parsed:    20
Ports successfully parsed:    19
Ports failed:            1
Up-to-date ports skipped:    29637

So far, I think it still looks OK.

On to step 11:

Code:
sh-4.3# sudo mv /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers-moved && sudo ln -s /opt/cloudedleopardports/_resources/port1.0/compilers /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers

Next, for Step 12, let’s install neofetch because why not:

Code:
sh-4.3# port -v install neofetch
--->  Fetching distfiles for neofetch
--->  neofetch-7.1.0.tar.gz does not exist in /opt/local/var/macports/distfiles/neofetch
--->  Attempting to fetch neofetch-7.1.0.tar.gz from http://distfiles.macports.org/neofetch
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 16 95403   16 15953    0     0   2634      0  0:00:36  0:00:06  0:00:30  2634
100 95403  100 95403    0     0  13518      0  0:00:07  0:00:07 --:--:-- 79291--->  Verifying checksums for neofetch
--->  Checksumming neofetch-7.1.0.tar.gz
--->  Extracting neofetch
--->  Extracting neofetch-7.1.0.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/neofetch/neofetch-7.1.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf -
sandbox_init: Could not set default launchd policy, err=1100
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/neofetch/neofetch-7.1.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf -
Exit code: 2
Error: Failed to extract neofetch: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there
is a bug.
Error: Processing of port neofetch failed

Next, tried to install cctools. It fails in much the same way.
 
Last edited:
Update:


With step 10, I ran port -v sync again:

Code:
sh-4.3# cd cloudedleopardports/
sh-4.3# port -v sync
--->  Updating the ports tree
Synchronizing local ports tree from file:///opt/cloudedleopardports
Creating port index in /opt/cloudedleopardports
Adding port databases/db48
Adding port devel/cctools
Adding port devel/ld64
Adding subport ld64-97
Adding subport ld64-127
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Adding subport ld64-236
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Adding subport ld64-274
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Warning: All compilers are either blacklisted or unavailable; defaulting to first fallback option
Adding subport ld64-latest
Adding subport ld64-xcode
Adding port devel/m4
Adding port devel/openssl
Adding port lang/gcc7
Adding subport libgcc7
Adding port lang/libgcc
Adding port lang/python39
Adding port net/kerberos5
Adding port textproc/libiconv
Adding subport libiconv-bootstrap

Total number of ports parsed:    18
Ports successfully parsed:    18
Ports failed:            0
Up-to-date ports skipped:    0

Next, for Step 12, let’s install neofetch because why not:

Code:
sh-4.3# port -v install neofetch
--->  Checksumming neofetch-7.1.0.tar.gz
--->  Extracting neofetch
--->  Extracting neofetch-7.1.0.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/neofetch/neofetch-7.1.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf -
sandbox_init: Could not set default launchd policy, err=1100
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/neofetch/neofetch-7.1.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf -
Exit code: 2

Next, tried to install cctools. It fails in much the same way.

It looks like sandbox setting was missed:

Code:
sandbox_init: Could not set default launchd policy, err=1100

This file: bbedit /opt/local/libexec/macports/lib/port1.0/portsandbox.tcl

For ld64, you can only use ld64-97 or ld64-127 on PPC, and in fact ld64-97 is more stable. Later versions are irrelevant.

P. S. Did you use Kencu's repo or mine? You may use Kencu's one to begin with just to make sure set up is okay: it must work. I attach a copy below just in case.
Once basic set up is confirmed, you may move to my repo. Moving from gcc7 to gcc11 may be a bit tricky. I will write on that separately.
 

Attachments

  • PPCSnowLeopardPorts-main.zip
    140.5 KB · Views: 109
Last edited:
Next, for Step 12, let’s install neofetch because why not:

Just to confirm:

Code:
36-47% port -v installed neofetch
The following ports are currently installed:
  neofetch @7.1.0_0 (active) requested_variants='' platform='darwin 10' archs='noarch' date='2022-03-25T05:16:28+0800'

Installed from default portfile, no custom commands or patches. So port is fine. (It is noarch, so it will install in every case.)

Please make sure sandbox setting is made as specified in the head post. And feel free to ask anything, I want to ensure it works for you, and also that instructions are clear enough for anyone to be able to follow.
 
Oh wow, this is all in a VM? What is your VM setup?

As you can see, extending your service to SL PPC may help greatly. While I know for the matter of fact that Macports set-up is reproducible (I have done it several times), some things are not easy.

P. S. Alternatively, anyone may set up a server to distribute pre-built ports, which can be then added to sources.conf. I have pre-built ports, but no server. If anyone interested to follow this pathway, please let me know.
 
It looks like sandbox setting was missed:

Code:
sandbox_init: Could not set default launchd policy, err=1100

This file: bbedit /opt/local/libexec/macports/lib/port1.0/portsandbox.tcl

For ld64, you can only use ld64-97 or ld64-127 on PPC, and in fact ld64-97 is more stable. Later versions are irrelevant.

P. S. Did you use Kencu's repo or mine? You may use Kencu's one to begin with just to make sure set up is okay: it must work. I attach a copy below just in case.
Once basic set up is confirmed, you may move to my repo. Moving from gcc7 to gcc11 may be a bit tricky. I will write on that separately.

Thanks for getting back to me on this.

Unless I missed something, I followed every step in the wikipost above.

Let me double-check. (All screen caps via “less” view or bash prompt):

Step 1. Download Macports source

Step 2.
Extract and compile Macports

Step 3.
Add lines to “macports.conf”
1648174808224.png

(on my first try, I left the last part of the paste as “buildmakejobs /NUMBER OF CPU CORES/” without inserting number of cores)

Step 4. Uncomment last line in “archive_sites.conf”
1648174938602.png


Step 5. Change “9” to ”10” on “portsandbox.tcl”
1648175029136.png


Step 6. Add to PATH (I have several in there already, including the three in the wikipost)
1648175141674.png


Step 7. Run port -v sync
(As seen earlier today. This step took about six or seven hours)

Step 8. Add override repo line to “sources.conf”
1648175438634.png

(remember: I chose to use “cloudedleopardports”, but the contents came from the “PPCSnowLeopardPorts-main.zip” attached in the wikipost)

Step 9. Place extracted “SnowLeopardPorts-main.zip” into “/opt”
1648175596108.png


Step 10. Run port -v sync again
(As seen earlier today)

Step 11. Run the mv /ln for “compilers”
(As seen earlier today)

Step 12. Build whatever
Did not work with “port install cctools” or “port install neofetch”

* * *

Would you be able to check my work here? I don’t think I missed any steps in your wikipost, but I get the sense that something is still missing or not properly set. Cheers!

(p.s., I’m also doing this so that, if there happens to be anything I missed, I can help to edit the wikipost to be as clear as possible for anyone of any skill level to be able to successfully set up macports in the SL-PPC realm.)
 
Last edited:
Would you be able to check my work here? I don’t think I missed any steps in your wikipost, but I get the sense that something is still missing or not properly set. Cheers!

(p.s., I’m also doing this so that, if there happens to be anything I missed, I can help to edit the wikipost to be as clear as possible for anyone of any skill level to be able to successfully set up macports in the SL-PPC realm.)

Well, what I will do is to make a clean install of 10A190 from the existing image and follow procedure myself to be 100% sure it works exactly.

P. S. While I assume nothing should differ for 10A96, I am unable to guarantee that, as of now, since I was unable to install it in a functional manner. If you are using 10A190 + Xcode from 10A190, we are good, if you have to be on 10A96 for whatever reason, it may take few days for me to sort it out. (Do not bother with Xcode 10A222 etc, they are to an extent broken.)
 
Well, what I will do is to make a clean install of 10A190 from the existing image and follow procedure myself to be 100% sure it works exactly.

P. S. While I assume nothing should differ for 10A96, I am unable to guarantee that, as of now, since I was unable to install it in a functional manner. If you are using 10A190 + Xcode from 10A190, we are good, if you have to be on 10A96 for whatever reason, it may take few days for me to sort it out. (Do not bother with Xcode 10A222 etc, they are to an extent broken.)

I wouldn’t think there’d be anything fundamentally different between macports in the 10A96 setting, versus the 10A190 setting, as none of those tweaking steps seem to tap into anything related to the OS itself (beyond the major version number of 10, of which both 10A96 and 10A190 share) or the install of Xcode 3.2. So I’m not sure just yet.

Also, based on this, I get a sense you’re not seeing anything terribly amiss in the steps I followed?



As for installing 10A190 and testing it, I lack the applied experience of using it like you or @ChrisCharman do, and plans for me to test 10A190 in earnest, something I’d like to do once I reach a stopping point with 10A96, would really need to happen in parallel with the continuing work I’ve been doing with 10A96.

For me, this would mean needing to pick up another G4/G5 “mule” which is able to perform as fast or faster than the A1138 I use for 10A96 (i.e., I’m not keen on doing beta testing on, say, a 1.33GHz iBook G4, even as I’d be totally okay with using it on an ironed-out build of 10A96/10A190).

Also, I don’t want to erase and re-format the PowerBook I have running 10A96, and the SSD I have installed in it (120GB, with two equal partitions — 10A196 and 10.5.8) isn’t big enough to support tossing in a third partition for testing 10A190.
 
I wouldn’t think there’d be anything fundamentally different between macports in the 10A96 setting, versus the 10A190 setting, as none of those tweaking steps seem to tap into anything related to the OS itself (beyond the major version number of 10, of which both 10A96 and 10A190 share) or the install of Xcode 3.2. So I’m not sure just yet.

Also, based on this, I get a sense you’re not seeing anything terribly amiss in the steps I followed?



As for installing 10A190 and testing it, I lack the applied experience of using it like you or @ChrisCharman do, and plans for me to test 10A190 in earnest, something I’d like to do once I reach a stopping point with 10A96, would really need to happen in parallel with the continuing work I’ve been doing with 10A96.

For me, this would mean needing to pick up another G4/G5 “mule” which is able to perform as fast or faster than the A1138 I use for 10A96 (i.e., I’m not keen on doing beta testing on, say, a 1.33GHz iBook G4, even as I’d be totally okay with using it on an ironed-out build of 10A96/10A190).

Also, I don’t want to erase and re-format the PowerBook I have running 10A96, and the SSD I have installed in it (120GB, with two equal partitions — 10A196 and 10.5.8) isn’t big enough to support tossing in a third partition for testing 10A190.

I also do not think that 10A96 vs 10A190 should make any difference at the level of basic set up. However, I can ensure a specific set up works only on the identical OS + Unix tools.

Basic set up is rather straightforward, and I am honestly a bit surprised it failed. Myself I followed Kencu’s procedure (which is available in README file as well as in comments referred) originally, and I believe it should work as it were. After all, I can easily accept that I omitted something, but original Kencu’s instructions are there to verify against.

My current repo may not be compatible with “from scratch” approach since moving to gcc10 required additional trickery which was far from obvious for myself (it was broken for a while, and I have fixed it just recently). However what I shared here is an older version based on gcc7 so provisionally it should work like Kencu’s one: drop into /opt, configure macports.conf etc, and you are good to go. I did that a number of times, as I have two installations of Macports on 10A190 (main one and bootstrap for curl) and three 10.6.8 systems each with two Macports installations. I also have Macports on Leopard and Tiger, fully functional (at gcc7 level at the moment).

I recall I got once a sandbox error on a new installation, and that was when I forgot to change the setting. It was on 10.6.8 with 10A190 SDK. (Stock 10.6.8 does not require that change btw, though making it won’t break anything either.)

I am compiling a huge port now, mpich-gcc11, so Quad is at 100% per core for a couple of hours. Should be done soon, I then bootstrap another Macports using Kencu’s overlay repo and document every step. After that hopefully works, I encourage to move to my version of overlay repo, but stay on gcc7 at the beginning.
It works beautifully on 10A190 in fact (I cannot say the same about 10.6.8 Rosetta, sadly: it works, but it is substantially more painful and got many silly errors – but fixable – even on basic ports.)

P. S. As far as I understand, no one have tested Macports on 10A96 so far, aside of you. But again, it should be doable, and nothing in setting appear to be specific enough to make difference.
 
Last edited:
Would you be able to check my work here? I don’t think I missed any steps in your wikipost, but I get the sense that something is still missing or not properly set. Cheers!

(p.s., I’m also doing this so that, if there happens to be anything I missed, I can help to edit the wikipost to be as clear as possible for anyone of any skill level to be able to successfully set up macports in the SL-PPC realm.)

I made a separate installation in a different prefix. Below are exact steps I took in exact sequence. No other changes been made. (This is obvious, but just to be explicit: Xcode tools have to be installed prior to all this.)

Code:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
cd /Users/svacchanda/Downloads/MacPorts-2.7.2/MacPorts-2.7.2 
./configure --prefix=/opt/testing --with-curlprefix=/opt/bootstrap --with-applications-dir=/opt/testing/Applications --without-startupitems
make -j 4
sudo make install

Modify macports.conf

Code:
build_arch ppc
universal_archs ppc ppc64
buildfromsource always
cxx_stdlib libstdc++
# macosx_deployment_target 10.5
# macosx_sdk_version 10.5
buildmakejobs 4

Modify archive_site.conf

Code:
name macports_archives

Modify portsandbox.tcl

Code:
    foreach dir $allow_dirs {
        foreach perm $perms {
            append portsandbox_profile " (allow $perm ("
            if {${os.major} > 10} {
                append portsandbox_profile "subpath \"${dir}\"))"
            } else {
                append portsandbox_profile "regex #\"^${dir}/\"))"
            }
        }
    }

Sync ports:

Code:
cd /opt/testing/bin

sudo ./port -v sync

Copy old repo expanded from the archive:

Code:
sudo cp -r /Users/svacchanda/Desktop/PPCSnowLeopardPorts-Legacy /opt

Modify sources.conf

Code:
file:///opt/PPCSnowLeopardPorts-Legacy

rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]

Sync again

Code:
sudo ./port -v sync

Symlink compilers folder

Code:
sudo mv /opt/testing/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers /opt/testing/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers-moved
sudo ln -s /opt/PPCSnowLeopardPorts-Legacy/_resources/port1.0/compilers /opt/testing/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/compilers

Install neofetch

Code:
36-47% sudo ./port -v install neofetch
Warning: configured user/group macports does not exist, will build as root
--->  Fetching distfiles for neofetch
--->  neofetch-7.1.0.tar.gz does not exist in /opt/testing/var/macports/distfiles/neofetch
--->  Attempting to fetch neofetch-7.1.0.tar.gz from https://codeload.github.com/dylanaraps/neofetch/legacy.tar.gz/7.1.0?dummy=
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 95403    0 95403    0     0  29793      0 --:--:--  0:00:03 --:--:-- 29804
--->  Verifying checksums for neofetch
--->  Checksumming neofetch-7.1.0.tar.gz
--->  Extracting neofetch
--->  Extracting neofetch-7.1.0.tar.gz
Executing:  cd "/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work" && /usr/bin/gzip -dc '/opt/testing/var/macports/distfiles/neofetch/neofetch-7.1.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf - 
--->  Configuring neofetch
--->  Building neofetch
Executing:  cd "/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/neofetch-7.1.0" && /usr/bin/make -j4 -w all 
make: Entering directory `/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/dylanaraps-neofetch-60d07de'
Run 'make install' to install Neofetch.
make: Leaving directory `/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/dylanaraps-neofetch-60d07de'
--->  Staging neofetch into destroot
. changed
    gid expected 0 found 80 modified
./usr missing (created)
. missing (directory not created: File exists)
./Applications missing (created)
./Developer missing (created)
./Library missing (created)
. changed
    gid expected 80 found 0 modified
./bin missing (created)
./etc missing (created)
./include missing (created)
./lib missing (created)
./lib/pkgconfig missing (created)
./libexec missing (created)
./sbin missing (created)
./share missing (created)
./share/doc missing (created)
./share/info missing (created)
./share/man missing (created)
./share/man/cat1 missing (created)
./share/man/cat2 missing (created)
./share/man/cat3 missing (created)
./share/man/cat4 missing (created)
./share/man/cat5 missing (created)
./share/man/cat6 missing (created)
./share/man/cat7 missing (created)
./share/man/cat8 missing (created)
./share/man/cat9 missing (created)
./share/man/catl missing (created)
./share/man/catn missing (created)
./share/man/man1 missing (created)
./share/man/man2 missing (created)
./share/man/man3 missing (created)
./share/man/man4 missing (created)
./share/man/man5 missing (created)
./share/man/man6 missing (created)
./share/man/man7 missing (created)
./share/man/man8 missing (created)
./share/man/man9 missing (created)
./share/man/manl missing (created)
./share/man/mann missing (created)
./share/nls missing (created)
./share/nls/C missing (created)
./share/nls/af_ZA.ISO8859-1 missing (created)
./share/nls/af_ZA.ISO8859-15 missing (created)
./share/nls/bg_BG.CP1251 missing (created)
./share/nls/cs_CZ.ISO8859-2 missing (created)
./share/nls/da_DK.ISO8859-1 missing (created)
./share/nls/da_DK.ISO8859-15 missing (created)
./share/nls/de_AT.ISO8859-1 missing (created)
./share/nls/de_AT.ISO8859-15 missing (created)
./share/nls/de_CH.ISO8859-1 missing (created)
./share/nls/de_CH.ISO8859-15 missing (created)
./share/nls/de_DE.ISO8859-1 missing (created)
./share/nls/de_DE.ISO8859-15 missing (created)
./share/nls/el_GR.ISO8859-7 missing (created)
./share/nls/en_AU.ISO8859-1 missing (created)
./share/nls/en_AU.ISO8859-15 missing (created)
./share/nls/en_AU.US-ASCII missing (created)
./share/nls/en_CA.ISO8859-1 missing (created)
./share/nls/en_CA.ISO8859-15 missing (created)
./share/nls/en_CA.US-ASCII missing (created)
./share/nls/en_GB.ISO8859-1 missing (created)
./share/nls/en_GB.ISO8859-15 missing (created)
./share/nls/en_GB.US-ASCII missing (created)
./share/nls/en_NZ.ISO8859-1 missing (created)
./share/nls/en_NZ.ISO8859-15 missing (created)
./share/nls/en_NZ.US-ASCII missing (created)
./share/nls/en_US.ISO8859-1 missing (created)
./share/nls/en_US.ISO8859-15 missing (created)
./share/nls/es_ES.ISO8859-1 missing (created)
./share/nls/es_ES.ISO8859-15 missing (created)
./share/nls/et_EE.ISO8859-15 missing (created)
./share/nls/fi_FI.ISO8859-1 missing (created)
./share/nls/fi_FI.ISO8859-15 missing (created)
./share/nls/fr_BE.ISO8859-1 missing (created)
./share/nls/fr_BE.ISO8859-15 missing (created)
./share/nls/fr_CA.ISO8859-1 missing (created)
./share/nls/fr_CA.ISO8859-15 missing (created)
./share/nls/fr_CH.ISO8859-1 missing (created)
./share/nls/fr_CH.ISO8859-15 missing (created)
./share/nls/fr_FR.ISO8859-1 missing (created)
./share/nls/fr_FR.ISO8859-15 missing (created)
./share/nls/hi_IN.ISCII-DEV missing (created)
./share/nls/hr_HR.ISO8859-2 missing (created)
./share/nls/hu_HU.ISO8859-2 missing (created)
./share/nls/is_IS.ISO8859-1 missing (created)
./share/nls/is_IS.ISO8859-15 missing (created)
./share/nls/it_CH.ISO8859-1 missing (created)
./share/nls/it_CH.ISO8859-15 missing (created)
./share/nls/it_IT.ISO8859-1 missing (created)
./share/nls/it_IT.ISO8859-15 missing (created)
./share/nls/ja_JP.SJIS missing (created)
./share/nls/ja_JP.eucJP missing (created)
./share/nls/ko_KR.eucKR missing (created)
./share/nls/la_LN.ISO8859-1 missing (created)
./share/nls/la_LN.ISO8859-15 missing (created)
./share/nls/la_LN.ISO8859-2 missing (created)
./share/nls/la_LN.ISO8859-4 missing (created)
./share/nls/la_LN.US-ASCII missing (created)
./share/nls/lt_LT.ISO8859-4 missing (created)
./share/nls/nl_BE.ISO8859-1 missing (created)
./share/nls/nl_BE.ISO8859-15 missing (created)
./share/nls/nl_NL.ISO8859-1 missing (created)
./share/nls/nl_NL.ISO8859-15 missing (created)
./share/nls/no_NO.ISO8859-1 missing (created)
./share/nls/no_NO.ISO8859-15 missing (created)
./share/nls/pl_PL.ISO8859-2 missing (created)
./share/nls/pt_BR.ISO8859-1 missing (created)
./share/nls/pt_PT.ISO8859-1 missing (created)
./share/nls/pt_PT.ISO8859-15 missing (created)
./share/nls/ro_RO.ISO8859-2 missing (created)
./share/nls/ru_RU.CP866 missing (created)
./share/nls/ru_RU.ISO8859-5 missing (created)
./share/nls/ru_RU.KOI8-R missing (created)
./share/nls/sk_SK.ISO8859-2 missing (created)
./share/nls/sl_SI.ISO8859-2 missing (created)
./share/nls/sv_SE.ISO8859-1 missing (created)
./share/nls/sv_SE.ISO8859-15 missing (created)
./share/nls/tr_TR.ISO8859-9 missing (created)
./share/nls/uk_UA.ISO8859-5 missing (created)
./share/nls/uk_UA.KOI8-U missing (created)
./share/nls/zh_CN.eucCN missing (created)
./share/nls/zh_TW.Big5 missing (created)
./share/skel missing (created)
./var missing (created)
./var/cache missing (created)
./var/db missing (created)
./var/log missing (created)
./var/run missing (created)
./var/spool missing (created)
./www missing (created)
Executing:  cd "/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/neofetch-7.1.0" && /usr/bin/make -w install DESTDIR=/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/destroot PREFIX=/opt/testing 
make: Entering directory `/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/dylanaraps-neofetch-60d07de'
make: Leaving directory `/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/dylanaraps-neofetch-60d07de'
--->  Compressing man pages for neofetch
man1/neofetch.1:     61.5% -- replaced with man1/neofetch.1.gz
man1/neofetch.1.gz: changing permissions from 00664 to 00444
--->  Installing neofetch @7.1.0_0
Executing:  cd "/opt/testing/var/macports/build/_opt_testing_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_neofetch/neofetch/work/destroot" && /usr/bin/tar -cvf - . | /usr/bin/bzip2 -c9 > /opt/testing/var/macports/software/neofetch/neofetch-7.1.0_0.darwin_10.noarch.tbz2 
./
./+COMMENT
./+CONTENTS
./+DESC
./+PORTFILE
./+STATE
./opt/
./opt/testing/
./opt/testing/bin/
./opt/testing/bin/neofetch
./opt/testing/share/
./opt/testing/share/man/
./opt/testing/share/man/man1/
./opt/testing/share/man/man1/neofetch.1.gz
--->  Activating neofetch @7.1.0_0
./
./+COMMENT
./+CONTENTS
./+DESC
./+PORTFILE
./+STATE
./opt/
./opt/testing/
./opt/testing/bin/
./opt/testing/bin/neofetch
./opt/testing/share/
./opt/testing/share/man/
./opt/testing/share/man/man1/
./opt/testing/share/man/man1/neofetch.1.gz
--->  Cleaning neofetch
--->  Removing work directory for neofetch
 
So yes, I am sure the procedure is reproducible on 10A190 with Xcode 10A190.

Of course, if installing in default prefix, initial configure simplifies to:

Code:
cd /Users/svacchanda/Downloads/MacPorts-2.7.2/MacPorts-2.7.2 
./configure 
make -j 4
sudo make install

(Obviously, do not use --with-curlprefix flag unless you already have another working Macports installation with curl.)
 
Also, based on this, I get a sense you’re not seeing anything terribly amiss in the steps I followed?

Above sequence should work precisely. If it still fails on 10A96, then I guess there is some problem with OS itself.

To make sure arch-specific ports build, I went ahead to build gmake:

Code:
36-47% sudo ./port -v install gmake
Password:
Warning: configured user/group macports does not exist, will build as root
--->  Computing dependencies for gmake.........
The following dependencies will be installed: 
 gettext
 gettext-runtime
 gettext-tools-libs
 gperf
 libiconv
 libtextstyle
 lzip
 ncurses
Continue? [Y/n]: y

And all good:

Code:
36-47% ./port -v installed
The following ports are currently installed:
  gettext @0.21_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T19:02:25+0800'
  gettext-runtime @0.21_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T18:33:34+0800'
  gettext-tools-libs @0.21_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T18:51:38+0800'
  gmake @4.3_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T19:03:35+0800'
  gperf @3.1_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T18:28:59+0800'
  libiconv @1.16_1 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T18:30:48+0800'
  libtextstyle @0.21_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T18:40:01+0800'
  lzip @1.23_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T19:02:40+0800'
  ncurses @6.3_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-03-25T18:37:14+0800'
  neofetch @7.1.0_0 (active) requested_variants='' platform='darwin 10' archs='noarch' date='2022-03-25T18:17:30+0800'
 
Here is the minimalistic overlay repo on a basis of Kencu's.
ld64 and cctools are untouched. gcc7 and pythons updated to current versions, gcc10-bootstrap added (should build with no dependencies).

P. S. I use Legacy to differentiate from a gcc10-based set-up. It is probably wise to start with gcc7-based set-up since that requires less manual involvement. It does not hurt to build gcc10-bootstrap though.
 

Attachments

  • PPCSnowLeopardPorts-Legacy.zip
    357.3 KB · Views: 103
@barracuda156 I may be able to attempt to reproduce this MacPorts setup on my 10A190 system tonight if i have time.

Perhaps the issue on 10A096 lays with the version of Xcode Tools, and not the OS. Over the last couple days i have been overlaying binaries from the versions of Xcode that came bundled with 10A190 and 10A222 (PowerPC and Universal only) as previously i had been using only the 10A096 Server version of Xcode Command Line Tools and manually updating tools from source where needed, until you indicated that later versions are somewhat compatible with 10A190. There are a number of differences between each version of the tools and it’s possible that updating Xcode within 10A096 may fix whatever is broken.

Alternatively @B S Magnet if you’d prefer, i can restore one of my 10A096 disk images and attempt to do this myself, so it doesn’t mess up your system and report back? May be a few days though. I can do this without losing my 10A190 system as i always backup to a restorable dmg.
 
@barracuda156 I may be able to attempt to reproduce this MacPorts setup on my 10A190 system tonight if i have time.

Perhaps the issue on 10A096 lays with the version of Xcode Tools, and not the OS. Over the last couple days i have been overlaying binaries from the versions of Xcode that came bundled with 10A190 and 10A222 (PowerPC and Universal only) as previously i had been using only the 10A096 Server version of Xcode Command Line Tools and manually updating tools from source where needed, until you indicated that later versions are somewhat compatible with 10A190. There are a number of differences between each version of the tools and it’s possible that updating Xcode within 10A096 may fix whatever is broken.

Please let me know how it goes. If you will in interested then to get gcc10/gcc11 as the main compiler, I will try to figure out a step-wise procedure. (Building either is trivial now, thanks to gcc10-bootstrap port. What is less trivial is switching libgcc and tweaking Macports settings accordingly. For me it was trial & error, which eventually had complete success on 10A190, but I did not document precise steps, sadly. Also, I started from gcc7 on 10A190, which is not the same as starting from nothing.)
Idea is simple though: rebuild libgcc port with either libgcc10 or libgcc11 runtime. Problems arise due to circular dependencies and Macports routine of ignoring libgcc that does not provide runtime. So, say, installing libgcc10 may give nothing but a placeholder.

For Xcode, I never used the one from 10A96 and don't see much point in it either (at least until someone documents a function that is broken on 10A190 but works on 10A96), but you may be right. It should be fairly easy to check installing Xcode 10A190 into 10A96: that won’t require installing OS, wiping drives etc.

P. S. If anyone prepares a pre-installed 10A96 image like we have for 10A190, I can test with Xcode and Macports.
 
  • Like
Reactions: ChrisCharman
Please let me know how it goes. If you will in interested then to get gcc10/gcc11 as the main compiler, I will try to figure out a step-wise procedure. (Building either is trivial now, thanks to gcc10-bootstrap port. What is less trivial is switching libgcc and tweaking Macports settings accordingly. For me it was trial & error, which eventually had complete success on 10A190, but I did not document precise steps, sadly. Also, I started from gcc7 on 10A190, which is not the same as starting from nothing.)
Idea is simple though: rebuild libgcc port with either libgcc10 or libgcc11 runtime. Problems arise due to circular dependencies and Macports routine of ignoring libgcc that does not provide runtime. So, say, installing libgcc10 may give nothing but a placeholder.

For Xcode, I never used the one from 10A96 and don't see much point in it either (at least until someone documents a function that is broken on 10A190 but works on 10A96), but you may be right. It should be fairly easy to check installing Xcode 10A190 into 10A96: that won’t require installing OS, wiping drives etc.

P. S. If anyone prepares a pre-installed 10A96 image like we have for 10A190, I can test with Xcode and Macports.
I’ll check if i still have a clean and unmodified (without additional modifications other than those to allow boot) disk image of 10A096 and upload somewhere for you if i do.
 
  • Like
Reactions: barracuda156
I’ll check if i still have a clean and unmodified (without additional modifications other than those to allow boot) disk image of 10A096 and upload somewhere for you if i do.
Hi @barracuda156

I have uploaded what I believe to be my clean 10A096 restore image to @B S Magnet’s MacintoshGarden page for ‘Clouded Leopard’, as that seems the most appropriate place to host it. I have not verified that it is the correct .dmg so please let me know if it’s not and i’ll replace with an alternative image, if needed.
 
  • Like
Reactions: barracuda156
Hi @barracuda156

I have uploaded what I believe to be my clean 10A096 restore image to @B S Magnet’s MacintoshGarden page for ‘Clouded Leopard’, as that seems the most appropriate place to host it. I have not verified that it is the correct .dmg so please let me know if it’s not and i’ll replace with an alternative image, if needed.

Awesome, thank you! I will leave it to download overnight.

In the meanwhile, building gcc11ppc on Catalina in VM:
libgcc11.png
 
  • Like
Reactions: ChrisCharman
Hi @barracuda156

I have uploaded what I believe to be my clean 10A096 restore image to @B S Magnet’s MacintoshGarden page for ‘Clouded Leopard’, as that seems the most appropriate place to host it. I have not verified that it is the correct .dmg so please let me know if it’s not and i’ll replace with an alternative image, if needed.

The versions of 10A96 uploaded to the garden are as-they-left-Apple in 2008, i.e., “clean”.
 
Here is the minimalistic overlay repo on a basis of Kencu's.
ld64 and cctools are untouched. gcc7 and pythons updated to current versions, gcc10-bootstrap added (should build with no dependencies).

P. S. I use Legacy to differentiate from a gcc10-based set-up. It is probably wise to start with gcc7-based set-up since that requires less manual involvement. It does not hurt to build gcc10-bootstrap though.

Perhaps it makes sense to start with this repo in fact, since otherwise you will need to rebuild all ports that depend on openssl, including pythons. Kencu used openssl11 as the base, however it is unnecessary now, since newer openssl3 builds with no issues.
 
  • Like
Reactions: ChrisCharman
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.