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

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
I saw something about this either here or on Macport Trac a while back so decided to keep two separate install bases: gcc7 on my iBook and gcc11 on the Powerbook. I use the iBook as my buildbox so everything in the repo should be against gcc7 and libgcc7 (except [lib]gcc11 port). There was a small amount of time before I realized this was an issue where libgcc7 was coexisting with libgcc11 on the Powerbok...I don't know if that messed things up or not to be honest. I haven't noticed any problems, but then again I don't use all the software all the time.

Will let you know if I have problems with boost181.

Well, using libgcc7 (i.e. just default settings as they are in the base) will make life easier for the time-being.

Notice, it likely implies that ppc64 is broken – but for G4 that is not a concern. (If anyone wonders – ICU did not build with gcc7 for ppc64, the bug was fixed in gcc10, I guess, and no one backported the fix.)

Mixing will be a bad idea. I recommend staying with gcc7/libgcc7 for 10.4/10.5.8 on 32-bit, or otherwise moving everything to gcc12/libgcc12 (following my PR).
gcc10-bootstrap is immune to the issue, it uses its own libraries.
gcc11 will be broken, unless everything is moved to a newer runtime – or if it is not explicitly broken, it will potentially set one up for a nightmare anyway.
 

panzerkiller

macrumors newbie
Jan 24, 2022
15
10
I have a G5 1.8DP, an iMac G5 and two G4 mini, I will be happy to see them busy doing something other than sitting in the closet.
Has anyone heard of the BOINC project? Is there any possibility/interest of creating a BOINC project to run PPC buildbots distributively?
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
I have a G5 1.8DP, an iMac G5 and two G4 mini, I will be happy to see them busy doing something other than sitting in the closet.
Has anyone heard of the BOINC project? Is there any possibility/interest of creating a BOINC project to run PPC buildbots distributively?

G5 1.8 DP should be perfectly usable, IMO, on its own. One of my PowerMacs is 2.3 DC, and while it is not as fast as the Quad, it is okay. Try maxing the RAM, and it will be good enough.
 

doctor_dog

macrumors regular
Original poster
Dec 19, 2022
109
107
The repo has been refreshed anew just now, it's up to 752 packages.

With many thanks to @barracuda156, I finally migrated my Powerbook G4 build box from libgcc7 to libgcc13! After about a week's worth of compile time, there are fresh ports in the repo, including some shiny new compilers, including:
  • gcc [11,12,13]
  • libgcc [7,9,10,11,12,13]
I'm not in a rush to re-do all the tweaks required to the .tcl files (as far as I know you can't point to your own local versions like you can with portfiles and I know it's probably just a copy-paste job but I'm spent) so I'm probably not going to be doing a port self update for a while. If you want something fresh, go out and get it while it's hot =)

P.S. I'm (probably) going to be making some changes to how all this works in the coming months. My idea is to have http://hairypotter.org be a normal, user-facing site with content and download links, and fork off a subdomain for the actual repo (something like leopard.hairypotter.org). Stay tuned for fun updates. Viva la ppc!
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
The repo has been refreshed anew just now, it's up to 752 packages.

With many thanks to @barracuda156, I finally migrated my Powerbook G4 build box from libgcc7 to libgcc13! After about a week's worth of compile time, there are fresh ports in the repo, including some shiny new compilers, including:
  • gcc [11,12,13]
  • libgcc [7,9,10,11,12,13]
I'm not in a rush to re-do all the tweaks required to the .tcl files (as far as I know you can't point to your own local versions like you can with portfiles and I know it's probably just a copy-paste job but I'm spent) so I'm probably not going to be doing a port self update for a while. If you want something fresh, go out and get it while it's hot =)

P.S. I'm (probably) going to be making some changes to how all this works in the coming months. My idea is to have http://hairypotter.org be a normal, user-facing site with content and download links, and fork off a subdomain for the actual repo (something like leopard.hairypotter.org). Stay tuned for fun updates. Viva la ppc!

What’s up with .tcl files? Which ones do you refer, what Macports installs?
The only change there I do (and only on rebuilding Macports itself) is sandbox fix for 10.6, but it is only needed on 10.6, and it is a single digit change.
If you mean portgroups and compilers settings, which you would need to modify for 10.5 to keep it on the right libgcc, the easier way would be to have a local copy in a local repo, and just overwrite default ones with two terminal commands. (Those will be annoying to do by hand every day.)
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
By the way, if anyone uses R, do yourself a favor and change gcc7/gcc12 to gcc13, both in R portfile and R-1.0.tcl portgroup.
The reason it has gcc12 there is incidental, and it actually should be moved to gcc13, I just get no time to do that, and it works fine as is. But – as is it required building an extra gcc.
 

wfburton

macrumors newbie
Feb 10, 2024
16
2
How do I request a build? I desperately need a new build of BIND9 ( 9.6.0 or later ) with
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc/bind --localstatedir=/var --enable-threads --enable-largefile (--with-openssl=yes? or pk11-kit )--with-gssapi=yes --with-dlz-filesystem=yes --with-dlz-stub=yes --with-dlopen=yes --with-libxml2=yes --enable-newstats --enable-ipv6

Adjust as necessary

TIA

server-105:etc serveradmin$ neofetch 'c. serveradmin@server-105.burtonlaboratories.com ,xNMM. --------------------------------------------- .OMMMMo OS: Mac OS X Leopard 10.5.8 9L34 Power OMMM0, Host: PowerMac10,2 .;loddo:' loolloddol;. Kernel: 9.8.0 cKMMMMMMMMMMNWMMMMMMMMMM0: Uptime: 23 hours, 35 mins .KMMMMMMMMMMMMMMMMMMMMMMMWd. Packages: 156 (port) XMMMMMMMMMMMMMMMMMMMMMMMX. Shell: bash 3.2.17 ;MMMMMMMMMMMMMMMMMMMMMMMM: DE: Aqua :MMMMMMMMMMMMMMMMMMMMMMMM: WM: Quartz Compositor .MMMMMMMMMMMMMMMMMMMMMMMMX. WM Theme: Blue (Light) kMMMMMMMMMMMMMMMMMMMMMMMMWd. Terminal: /dev/ttys002 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk GPU: ATY,RV280 .XMMMMMMMMMMMMMMMMMMMMMMMMK. Memory: 256MiB / 1024MiB kMMMMMMMMMMMMMMMMMMMMMMd ;KMMMMMMMWXXWMMMMMMMk. .cooc,. .,coo:.
 
Last edited:

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
How do I request a build? I desperately need a new build of BIND9 ( 9.6.0 or later ) with
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc/bind --localstatedir=/var --enable-threads --enable-largefile (--with-openssl=yes? or pk11-kit )--with-gssapi=yes --with-dlz-filesystem=yes --with-dlz-stub=yes --with-dlopen=yes --with-libxml2=yes --enable-newstats --enable-ipv6

Adjust as necessary

TIA

server-105:etc serveradmin$ neofetch 'c. serveradmin@server-105.burtonlaboratories.com ,xNMM. --------------------------------------------- .OMMMMo OS: Mac OS X Leopard 10.5.8 9L34 Power OMMM0, Host: PowerMac10,2 .;loddo:' loolloddol;. Kernel: 9.8.0 cKMMMMMMMMMMNWMMMMMMMMMM0: Uptime: 23 hours, 35 mins .KMMMMMMMMMMMMMMMMMMMMMMMWd. Packages: 156 (port) XMMMMMMMMMMMMMMMMMMMMMMMX. Shell: bash 3.2.17 ;MMMMMMMMMMMMMMMMMMMMMMMM: DE: Aqua :MMMMMMMMMMMMMMMMMMMMMMMM: WM: Quartz Compositor .MMMMMMMMMMMMMMMMMMMMMMMMX. WM Theme: Blue (Light) kMMMMMMMMMMMMMMMMMMMMMMMMWd. Terminal: /dev/ttys002 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk GPU: ATY,RV280 .XMMMMMMMMMMMMMMMMMMMMMMMMK. Memory: 256MiB / 1024MiB kMMMMMMMMMMMMMMMMMMMMMMd ;KMMMMMMMWXXWMMMMMMMk. .cooc,. .,coo:.

bind9 is set to depend on jemalloc, and that does not build on 10.5, as of now: https://trac.macports.org/ticket/65945

If jemalloc is not strictly required, that will make it easier. Portfile has a wrong blacklist of compilers, which will likely result in gcc-4.0 being picked, and that gonna fail.

If you need it right now, you could try this: a) remove jemalloc from dependencies (presumably configure script should detect that and disable) and try building with `sudo port -v install bind9 configure.compiler=macports-gcc-7` (or whatever gcc you want to use).

On 10.6 ppc jemalloc builds fine, so that may be another option, if it is really needed.

P. S. I can try a bit later, hopefully, but on 10.6.
 

wfburton

macrumors newbie
Feb 10, 2024
16
2
bind9 is set to depend on jemalloc, and that does not build on 10.5, as of now: https://trac.macports.org/ticket/65945

If jemalloc is not strictly required, that will make it easier. Portfile has a wrong blacklist of compilers, which will likely result in gcc-4.0 being picked, and that gonna fail.

If you need it right now, you could try this: a) remove jemalloc from dependencies (presumably configure script should detect that and disable) and try building with `sudo port -v install bind9 configure.compiler=macports-gcc-7` (or whatever gcc you want to use).

On 10.6 ppc jemalloc builds fine, so that may be another option, if it is really needed.

P. S. I can try a bit later, hopefully, but on 10.6.
Would it be in my best interest to install Snow Leopard Server/Client Developer Preview 10A96
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
Would it be in my best interest to install Snow Leopard Server/Client Developer Preview 10A96

Please avoid 10A96 for building anything, it is broken, to the best of my knowledge, and I guess no one supports it, so you gonna be on your own there. Macports does not work on 10A96.

Use 10A190 with Xcode from 10A190 (i.e. its own). Minor fix-ups are needed for Macports there, those are described in the dedicated thread. If something is unclear, ask there or in Discussions section on my GitHub.
 

wfburton

macrumors newbie
Feb 10, 2024
16
2
Please avoid 10A96 for building anything, it is broken, to the best of my knowledge, and I guess no one supports it, so you gonna be on your own there. Macports does not work on 10A96.

Use 10A190 with Xcode from 10A190 (i.e. its own). Minor fix-ups are needed for Macports there, those are described in the dedicated thread. If something is unclear, ask there or in Discussions section on my GitHub.
I read that I would have to compile Macports on unsupported macos versions. I'll have to do some more research.
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
I read that I would have to compile Macports on unsupported macos versions. I'll have to do some more research.

It is pretty easy in fact. Provided you have 10a190 with its Xcode installed, you build Macports 2.9.1 normally (no special arguments required, just cd into the directory, ./configure then make and sudo make install). After that you have to make one trivial change in /opt/local/libexec/macports/lib/port1.0/portsandbox.tcl – on line 123 change 9 to 10, so that you have:
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}/\"))"
            }
        }
    }
That is it.
There are few adjustments to the config needed: https://forums.macrumors.com/thread...0-6-powerpc-10a190-and-10-6-8-rosetta.2332711 (you can skip replacing compilers part, it should work fine as is).

Important part is editing /opt/local/etc/macports/macports.conf to have there:
Code:
build_arch ppc
universal_archs
buildfromsource always
cxx_stdlib libstdc++
(Just add these lines anywhere in that file.)

I will try to find time to update instructions there, since it is somewhat easier now.

Up-to-date ports are here: https://github.com/barracuda156/macports-ports

You will need to build everything from source, but that is the same case with 10.5.8, as of now.
 

wfburton

macrumors newbie
Feb 10, 2024
16
2
It is pretty easy in fact. Provided you have 10a190 with its Xcode installed, you build Macports 2.9.1 normally (no special arguments required, just cd into the directory, ./configure then make and sudo make install). After that you have to make one trivial change in /opt/local/libexec/macports/lib/port1.0/portsandbox.tcl – on line 123 change 9 to 10, so that you have:
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}/\"))"
            }
        }
    }
That is it.
There are few adjustments to the config needed: https://forums.macrumors.com/thread...0-6-powerpc-10a190-and-10-6-8-rosetta.2332711 (you can skip replacing compilers part, it should work fine as is).

Important part is editing /opt/local/etc/macports/macports.conf to have there:
Code:
build_arch ppc
universal_archs
buildfromsource always
cxx_stdlib libstdc++
(Just add these lines anywhere in that file.)

I will try to find time to update instructions there, since it is somewhat easier now.

Up-to-date ports are here: https://github.com/barracuda156/macports-ports

You will need to build everything from source, but that is the same case with 10.5.8, as of now.
My mac is currently in production. Running Bind. Will take some time to upgrade to 10A190. When you get a chance can you compile jemalloc. I tried again but I'm getting nowhere. Still insisting on install jemalloc
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
My mac is currently in production. Running Bind. Will take some time to upgrade to 10A190. When you get a chance can you compile jemalloc. I tried again but I'm getting nowhere. Still insisting on install jemalloc

Ok, jemalloc is not needed, and do not bother with 10A190 just for this.

Try this: https://github.com/barracuda156/macports-ports/tree/bind9 (or just delete port:jemalloc from dependencies’ list and fix blacklist, like it is done in my commit).

P. S. I will make a PR if it builds, but cannot check at the moment, there is no power here. Once fixed, gonna try.
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
Okay... Thanks for spending the time on this!

Try building from the PR and let me know: https://github.com/macports/macports-ports/pull/22639

(While I can build against 10.5 SDK on my set-up, it will link to libgcc13, while you likely use libgcc7 on Leopard, so I am not sure a pre-built thing gonna work correctly. Better build it on your set-up. You need dependencies anyway, and bind9 takes a few minutes to compile, should not be an issue. However if there are some problems, I can upload the pre-built port.)
 

wfburton

macrumors newbie
Feb 10, 2024
16
2
Try building from the PR and let me know: https://github.com/macports/macports-ports/pull/22639

(While I can build against 10.5 SDK on my set-up, it will link to libgcc13, while you likely use libgcc7 on Leopard, so I am not sure a pre-built thing gonna work correctly. Better build it on your set-up. You need dependencies anyway, and bind9 takes a few minutes to compile, should not be an issue. However if there are some problems, I can upload the pre-built port.)
A little help here to pull the repository.. I don't do this often... do I pull the complete repository? Sorry a bit lost here.
 

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
A little help here to pull the repository.. I don't do this often... do I pull the complete repository? Sorry a bit lost here.

You just need to borrow the updated port. You could do it manually (do not forget the added patch) or you could clone the repo and then pick the port from there.

This tree has the update which is used in the PR: https://github.com/barracuda156/macports-ports/tree/bind9

Or after all, unpack the archive and replace /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/net/bind9 with the one you get.
 

Attachments

  • bind9.zip
    7.9 KB · Views: 46

wfburton

macrumors newbie
Feb 10, 2024
16
2
You just need to borrow the updated port. You could do it manually (do not forget the added patch) or you could clone the repo and then pick the port from there.

This tree has the update which is used in the PR: https://github.com/barracuda156/macports-ports/tree/bind9

Or after all, unpack the archive and replace /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/net/bind9 with the one you get.
Thank you very much! It seems to compile just fine! Now to test!
 
  • Like
Reactions: barracuda156

barracuda156

macrumors 68020
Sep 3, 2021
2,322
1,534
Still working on it. But named-checkconf doesn't like these named config Options

options {
max-cache-size 32m;
cleaning-interval 15;
dnssec-enable yes;
....

I had to remove them.

I am not aware of what is this even about, since I never used this port. But I would like to know the outcome, and if something still needs to be fixed for it to work.
 

wfburton

macrumors newbie
Feb 10, 2024
16
2
I am not aware of what is this even about, since I never used this port. But I would like to know the outcome, and if something still needs to be fixed for it to work.

Code:
server-105:~ serveradmin$ rndc -V status
status
create task
enabling log channel
WARNING: key file (/opt/local/etc/rndc.key) exists, but using default configuration file (/opt/local/etc/rndc.conf)
create parser
get key for server
get config key list
decode base64 secret
post event
using server 127.0.0.1 (127.0.0.1#953)
create message
render message
parse message
create message
render message
parse message
version: BIND 9.18.21 (Extended Support Version) <id:cb6cff6>
running on localhost: Darwin Power Macintosh 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC
boot time: Tue, 13 Feb 2024 14:59:01 GMT
last configured: Tue, 13 Feb 2024 14:59:02 GMT
configuration file: /opt/local/etc/named.conf
CPUs found: 1
worker threads: 1
UDP listeners per interface: 1
number of zones: 104 (99 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/900/1000
tcp clients: 0/150
TCP high-water: 0
server is up and running
server-105:~ serveradmin$

Code:
server-105:~ serveradmin$ named -V
BIND 9.18.21 (Extended Support Version) <id:cb6cff6>
running on Darwin Power Macintosh 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:57:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_PPC
built by make with  '--prefix=/opt/local' '--disable-silent-rules' '--mandir=/opt/local/share/man' '--with-openssl=/opt/local' '--with-libidn2=/opt/local' '--enable-doh' '--with-dlopen=no' '--with-jemalloc=no' 'CC=/opt/local/bin/gcc-mp-7' 'CFLAGS=-pipe -Os -I/opt/local/include/LegacySupport -arch ppc' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -lMacportsLegacySupport -arch ppc' 'CPPFLAGS=-I/opt/local/include -I/opt/local/include/LegacySupport'
compiled by GCC 7.5.0
compiled with OpenSSL version: OpenSSL 3.1.5 30 Jan 2024
linked to OpenSSL version: OpenSSL 3.1.5 30 Jan 2024
compiled with libuv version: 1.44.2
linked to libuv version: 1.44.2
compiled with libnghttp2 version: 1.59.0
linked to libnghttp2 version: 1.59.0
compiled with libxml2 version: 2.11.6
linked to libxml2 version: 21106
compiled with json-c version: 0.17
linked to json-c version: 0.17
compiled with zlib version: 1.3.1
linked to zlib version: 1.3.1
threads support is enabled
DNSSEC algorithms: RSASHA1 NSEC3RSASHA1 RSASHA256 RSASHA512 ECDSAP256SHA256 ECDSAP384SHA384 ED25519 ED448
DS algorithms: SHA-1 SHA-256 SHA-384
HMAC algorithms: HMAC-MD5 HMAC-SHA1 HMAC-SHA224 HMAC-SHA256 HMAC-SHA384 HMAC-SHA512
TKEY mode 2 support (Diffie-Hellman): yes
TKEY mode 3 support (GSS-API): yes

default paths:
  named configuration:  /opt/local/etc/named.conf
  rndc configuration:   /opt/local/etc/rndc.conf
  DNSSEC root key:      /opt/local/etc/bind.keys
  nsupdate session key: /opt/local/var/run/named/session.key
  named PID file:       /opt/local/var/run/named/named.pid
  named lock file:      /

Since it's a new bind9 version those syntax are invalid. Just need to tweek my config files... But it's up and running.

I also had to hack the launchclt org.isc.named.plist. Couldn't get macports to load bind9. Well, actually does run but the after a few minutes it fails, can't bind to interface. So, I made my own. /Library/LaunchDaemons/org.isc.named.plist. Also, removed Apples plist version so Server Admin doesn't load it.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>org.isc.named</string>
        <key>ProgramArguments</key>
        <array>
                <string>/opt/local/sbin/named</string>
                <string>-f</string>
                <string>-c</string>
                <string>/opt/local/etc/named.conf</string>
        </array>
</dict>
</plist>

Change file permissions to named:named and some are root:named. I'll need further testing.

TIA
 
  • Like
Reactions: barracuda156
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.