Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Sorry, I do not really understand what “It can't open the files” means exactly. Could you make a screenshot of the error you get from QMPlay2, when you try opening some YouTube video (from within the app itself)?

Also, the output of `port -v installed QMPlay2 yt-dlp ffmpeg | grep active`.
It very quickly flashes that it can't open the stream on the status line.
cannot open YouTube://{The URL}

$ port -v installed QMPlay2 yt-dlp ffmpeg | grep active
ffmpeg @4.4.5_3+gpl2 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2025-01-14T15:09:22-0600'
QMPlay2 @18.12.08_1 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2025-01-14T15:12:13-0600'
yt-dlp @2024.12.23_0+ffmpeg+python312 (active) requested_variants='' platform='darwin any' archs='noarch' date='2025-01-14T15:11:03-0600'
 
It very quickly flashes that it can't open the stream on the status line.
cannot open YouTube://{The URL}

$ port -v installed QMPlay2 yt-dlp ffmpeg | grep active
ffmpeg @4.4.5_3+gpl2 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2025-01-14T15:09:22-0600'
QMPlay2 @18.12.08_1 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2025-01-14T15:12:13-0600'
yt-dlp @2024.12.23_0+ffmpeg+python312 (active) requested_variants='' platform='darwin any' archs='noarch' date='2025-01-14T15:11:03-0600'

Hmm, okay. I will try installing a pre-built QMPlay2 on another system to make sure that it still works (though the very technology I use is supposed to ensure identical tarballs per-name, since rsync overwrites remote versions if those are changed locally; i.e. even though portfiles may not be identical, pre-built ports should).

Just to verify, you use utdns for internet access and you confirmed that a symlink to `yt-dlp` is actually present in ~/.qmplay2 folder and points to the correct original binary? To rule out possible issues external to QMPlay2 as such.
Also, did I understand correctly, that YouTube search in QMPlay2 works, only opening those vids from the search does not?
 
Hmm, okay. I will try installing a pre-built QMPlay2 on another system to make sure that it still works (though the very technology I use is supposed to ensure identical tarballs per-name, since rsync overwrites remote versions if those are changed locally; i.e. even though portfiles may not be identical, pre-built ports should).

Just to verify, you use utdns for internet access and you confirmed that a symlink to `yt-dlp` is actually present in ~/.qmplay2 folder and points to the correct original binary? To rule out possible issues external to QMPlay2 as such.
Also, did I understand correctly, that YouTube search in QMPlay2 works, only opening those vids from the search does not?
Yes, I'm using utdns. I normally reply to these posts using tenfourfox on the iMac itself so it's clear the DNS and internet are working.
I did verify that the symlink is as you say.
QMPlay2 plays video on the iMac (albeit with fairly slow video frame rates, the same as Quicktime).
The youtube browser shows the videos in the player with a thumbnail for each. They just don't play.
I should probably build yt-dlp from source, that is a continuously moving target every time YouTube catches up with them.
 
Yes, I'm using utdns. I normally reply to these posts using tenfourfox on the iMac itself so it's clear the DNS and internet are working.
I did verify that the symlink is as you say.
QMPlay2 plays video on the iMac (albeit with fairly slow video frame rates, the same as Quicktime).
The youtube browser shows the videos in the player with a thumbnail for each. They just don't play.
I should probably build yt-dlp from source, that is a continuously moving target every time YouTube catches up with them.

Thank you for confirming. I think yt-dlp from 2024.12 should work perfectly fine, and it did when I tried it last time (I updated it to 2025.01 just today). It is not immediately clear why it does not work on your end, since it does work for me, but I will try rebuilding from source again and running it on a new system to see if I can reproduce a failure.

P. S. If you have an Intel machine with some older macOS, you could try installing QMPlay2 there to see if it works as expected. MacPorts has pre-built ports for 10.6+ for Intel, so it should be fast. This is not required to do, of course, I just mention this as an option.
 
I did verify that the symlink is as you say.

You have probably done it correctly already, but just in case, portfile has a typo in notes: correct folder name is `qmplay2`, not `qmplay`. I.e. just copy-pasting the command will do it wrongly.
Besides, does it point to the original? If you call TextWrangler or BBEdit to open it, does the file from Python framework open? (`edit ~/.qmplay2/yt-dlp`, or `bbedit ~/.qmplay2/yt-dlp`.)
 
You have probably done it correctly already, but just in case, portfile has a typo in notes: correct folder name is `qmplay2`, not `qmplay`. I.e. just copy-pasting the command will do it wrongly.
Besides, does it point to the original? If you call TextWrangler or BBEdit to open it, does the file from Python framework open? (`edit ~/.qmplay2/yt-dlp`, or `bbedit ~/.qmplay2/yt-dlp`.)

Yes, the symlink was in the wrong place. I put it in ~/.qmplay2
Now it hesitates a long time before giving what appears to the same connection error.

Since I can run yt-dlp from the .qmplay2 directory I tried it out. It still ends with an error 403 on the download.
I've got some diagnostics but for some reason can't seem to paste into this webpage on the machine itself. I'll put them into a file and attach it when I get a chance.
 
Last edited:
Yes, the symlink was in the wrong place. I put it in ~/.qmplay2
Now it hesitates a long time before giving what appears to the same connection error.

Since I can run yt-dlp from the .qmplay2 directory I tried it out. It still ends with an error 403 on the download.
I've got some diagnostics but for some reason can't seem to paste into this webpage on the machine itself. I'll put them into a file and attach it when I get a chance.

The issue is unrelated to QMPlay2 or my port for it. There are apparently numerous cases being reported to YT-DLP, see:
etc.
And on known issue topic: https://github.com/yt-dlp/yt-dlp/issues/3766

This is why I cannot reproduce it on my end. Please check if YT-DLP upstream suggests anything useful in the threads.
I would also try a different way of connecting to the web, if possible, and VPN (Tunnelblick is a free, opensource client with GUI, it should work with different providers).
 
It is clearly evidenced across the internet, your continued efforts to engage upstream developers and maintainers to support the Mac PowerPC platform on behalf of all of us in this community.
This is admirable but also it’s clear that many of those projects simply refuse to be supportive, even when you’ve demonstrated that minimal changes are required to continue to support our old hardware in some cases. Most fixes and patches will not be upstreamed.

I wanna add a note on this part:

Most of submitted fixes in fact were and are being upstreamed. There were a number of cases when an alternative solution was found, so a specific PR was closed as redundant. Some upstreams prefer cherry-picking a fix from a PR (still referring to an author of it), and PR itself is closed (so it may look as if it was not merged from PR history in a repo). There were a few cases when a credible fix was rejected for no good reason, both in MacPorts and a few other upstreams, but these cases compose a tiny percentage. Finally, there are a number of fixes which I do not submit (usually because it is either just too huge to be accepted, or thought of as a temporary hack, or too specific for 10.6 ppc case), so they aren’t merged either.

Overall, it is not as pointless as it may seem from your remark above. Usually reasonably concise fixes are accepted.
 
  • Like
Reactions: ChrisCharman
I wanna add a note on this part:

Most of submitted fixes in fact were and are being upstreamed. There were a number of cases when an alternative solution was found, so a specific PR was closed as redundant. Some upstreams prefer cherry-picking a fix from a PR (still referring to an author of it), and PR itself is closed (so it may look as if it was not merged from PR history in a repo). There were a few cases when a credible fix was rejected for no good reason, both in MacPorts and a few other upstreams, but these cases compose a tiny percentage. Finally, there are a number of fixes which I do not submit (usually because it is either just too huge to be accepted, or thought of as a temporary hack, or too specific for 10.6 ppc case), so they aren’t merged either.

Overall, it is not as pointless as it may seem from your remark above. Usually reasonably concise fixes are accepted.
For you or anybody else misunderstanding my above posts, as @barracuda156 states, it is certainly not a pointless endeavour. Just an ongoing battle that you are waging constantly with people who care very little about PowerPC big endian Mac platforms. There are a few others, also on the Linux side that are in the same boat (Rene Rebe of T2SDE for example). People that are constantly finding and discovering fixes and providing support for vintage and retro platforms but get little acknowledgment or support from upstream - even fixes that are sent upstream are often ignored for years. There are numerous cases where PowerPC support is just deleted ‘to reduce maintenance burden’ or ‘clean up the code base’ even when the code is modular and has no effect on other architectures. I think one of the most valuable resources moving forward is @barracuda156 powerpc mac ports themselves, particularly the prebuilt packages. My point is simply that the community can count on people like you directly @barracuda156 to provide support far more consistently than anybody upstream in the vast majority of cases. It is important for users who care about the platform and opensource support to continue to file tickets and bug reports but i wouldn’t hold my breath for a renewed interest in Mac PowerPC upstream. This is just my opinion of course and nobody is obligated to agree.
 
  • Like
Reactions: barracuda156
For you or anybody else misunderstanding my above posts, as @barracuda156 states, it is certainly not a pointless endeavour. Just an ongoing battle that you are waging constantly with people who care very little about PowerPC big endian Mac platforms. There are a few others, also on the Linux side that are in the same boat (Rene Rebe of T2SDE for example). People that are constantly finding and discovering fixes and providing support for vintage and retro platforms but get little acknowledgment or support from upstream - even fixes that are sent upstream are often ignored for years. There are numerous cases where PowerPC support is just deleted ‘to reduce maintenance burden’ or ‘clean up the code base’ even when the code is modular and has no effect on other architectures. I think one of the most valuable resources moving forward is @barracuda156 powerpc mac ports themselves, particularly the prebuilt packages. My point is simply that the community can count on people like you directly @barracuda156 to provide support far more consistently than anybody upstream in the vast majority of cases. It is important for users who care about the platform and opensource support to continue to file tickets and bug reports but i wouldn’t hold my breath for a renewed interest in Mac PowerPC upstream. This is just my opinion of course and nobody is obligated to agree.

Thank you, we are on the same page here.
There are few things consider in regard to submission of patches upstream or to MacPorts (and in principle to other downstream distribution systems, just not many of them are there which can be considered).

1. What is often a no-go with upstreams (and may or may not be accepted to MacPorts, perhaps will be hard in any case) is something very complex and/or huge. For rather obvious and credible reason: it is hard to maintain such code for upstream (in this case truly, and not only because they may not want to, but also because nobody of upstream team may even understand the code without consulting with very specific documentation, so it is likely to get broken pretty fast).
With exception of MacPorts earlier, I normally don’t bother trying to submit such patches. A typical example would be Qt-using ports: to restore compatibility with Qt4 takes a lot, even if most of fixes are trivial (restoring older code, adding conditions to use it). Also it is actually rather painful to write such patches in a way that can be mergeable in principle – and way easier and faster just to replace whatever needed, throwing away breaking code chunks, and have a fixed version for yourself. Another example are projects heavily using Apple ObjC/ObjC++ extensions and Cocoa: again, fixing that, if possible at all, often means maintaining two versions in parallel, and nobody wants that.

2. On a positive note, Darwin ppc issues are more often than not decomposable into a) powerpc issues and b) macOS SDK issues. It is easier to convince to accept a fix for either on their own than anything applying only to macOS on powerpc. Because all endianness and 32-bit issues apply to Linux and BSD, many of which are currently supported, unlike macOS (so the argument “oh that’s 20-year old OS, why bother” does not stand), and legacy macOS SDK issues are relevant for x86 systems, which at least are likely to have more users due to hardware availability.
There are perhaps very few scenarios where something is in fact specific only to Darwin ppc. Assembler is one (but assembler usage is usually limited nowadays, and then if a fix is tiny or separable – and easy to understand – it can be well accepted, even if it is specific to an old unsupported platform: my fix for coroutines was accepted to Ruby upstream, and Boost upstream accepted a joint work on fixing assembler in context library). Other case is some differences between x86 vs ppc for the same SDK: not many of those, but they exist.

3. MacPorts at least nominally supports 10.4+ and ppc/ppc64 archs. This does not mean, unfortunately, that something is systemically tested or fixed pro-actively, but as long as it can be shown that a bug affects one of supported systems and a fix is credible and understandable to a reviewer, it probably will be accepted. 10a190 is not a supported system, and while nothing in MacPorts T&C or conventions prohibits fixes specific to an unsupported system, there are folks who just don’t like it, and may be eager to spend time just to create trouble to you. Unfortunate reality, however: there were very few bugs genuinely specific to 10a190, and with 10.6.8 ppc now there are almost none such. It does not matter (well, it should not at least) on which system you demonstrate a bug, as long as it is understandable that it is relevant for 10.5 ppc, or for 10.6 regardless of the arch. Something which affects 10.6.8 ppc but also 10.6.8 Rosetta is in a grey zone; in principle, 10.6.8 Rosetta is an official Apple release and therefore should be supported; in practice, as I noted, some individuals just love to have it broken. Still, accepting a credible patch is up to a port maintainer and/or particular reviewer. So at least it could work. Just don’t bother submitting 10a190-specific patches to MacPorts. But also do not use 10a190 now yourself, use 10.6.8 ppc :)
 
  • Like
Reactions: ChrisCharman
@ChrisCharman Okay, I decided in favor of separate port sources (i.e. for portfiles, not pre-built ports).

The only downside is that once MacPorts breaks something, and that port is missing in my sources repo, it will be broken until someone fixes it (as opposed to a “release snapshot” situation, when I just provide readymade tarballs periodically, and MacPorts changes do not affect users directly). In practice this translates into `port upgrade` not working smoothly, since it will err out on a broken port. But that is a common situation in MacPorts anyway: I find some broken ports every time I start rebuilding something which pulls in a lot of dependencies. So at any given time any port potentially may not build – due to dependencies being updated, due to changes in compiler etc., and there is no way to know that for sure, unless someone actually builds it. I.e. regardless of who supplies port sources, we can never be sure that everything builds what has built at some point of time. (Unless someone builds every port with every “release snapshot”. No one does this, there are 40k ports, it is unfeasible.)

Pluses of such arrangement (with multiple sources, where MacPorts remains a baseline) are several, and IMO they outweigh minuses, by a large margin. Fixes and updates arrive without delays, no one is tied to my sources and it is easy to switch to an alternative or fall back to standard MacPorts’ sources, from my side it is straightforward, I just make tarballs from macos-powerpc repo (which is an overlay and contain only a small fraction of overall ports), which is not only easier and less time-consuming, but also safer: timestamps should be preserved, since I do not rebase those repos, history is always intact, and “official” tarballs have correct mtime, so users avoid ridiculously long reindexing.

And if someone feels that he needs an absolute stability of a snapshot, it is easy just to disable syncing in sources.conf file, so the “single source” option can be effectively reproduced with little effort.
 
Okay, doing tarballs via git discards timestamps even if a branch is not rebased. Bummer.
Aside of that, everything looks like working.
I return to sorting out mtime tomorrow.

For now:
Curl + git (built for 10.6.8, install into /opt/bootstrap): https://macos-powerpc.org/PPCPorts/bootstrap-git-powerpc-darwin10.zip
MacPorts: https://macos-powerpc.org/PPCPorts/PPCPorts-2.10.5b-bootstrap_curl.zip (should be fine as such, tested aside of creating app bundles via port pkg, that should still be confirmed).

Notice, MacPorts update of existing installation keeps user’s config files. Since configs are changed, old ones won’t have correct settings for sources. In that case sources.conf should be edited manually.
The structure I use now (which is likely final) is:

1. powerpc-ports (small tarball with select ports – fixed, updated or added – to override upstream ones). Repo: https://github.com/macos-powerpc/powerpc-ports
2. Official MacPorts ports for everything which is not in these two.

Non-default sources can be enabled and disabled on the go, just comment out in sources.conf. Obviously, you can add your own ports to override those port elsewhere (for example, port has been updated, but you wanna keep the old version for some reason). Ports are used hierarchically. So put your local repo above all other.
 
Last edited:
I think the current version works fine.

There is a bug in our 10.6.8 which I mentioned in the development thread, it prevents app-created user/group from being recognized. In result, a few ports which create their own users or groups will fail to activate. For example, dbus (perhaps tor and a few others, not many). The fix is to reboot and continue installing normally. It is a bit annoying, but should be tolerable. I think it is on the OS side, we cannot fix it via MacPorts.

So when I started installing QMPlay2 to get YouTube playback from nothing, the process erred out on dbus. After reboot it completed successfully.

And I have YouTube working on the new system:

IMG_3047.jpeg
 
I have tested installing on two other systems, everything works now, with one minor issue yet to be resolved. With a move from a single big custom ports sources tarball to the smaller one with overrides and the rest from mainstream MacPorts, hierarchical portgroups search broke (what I mean here is that mainstream ports now use mainstream portgroups, while the intended scenario is that all ports use custom portgroups whenever those are present in the custom sources tarball). In most cases this is not an issue, since few portgroups have custom versions, and of those some are only used for custom ports (which works as expected). However in a few specific cases this creates a problem.

A quick fix for those familiar with MacPorts: create a local overlay repo, copy portgroups from extracted macos-powerpc sources into a corresponding location of that new local repo, set it above other two sources in `sources.conf`, run port sync. That should replicate the correct behavior.
Otherwise either wait another day until I make a fix or proceed with installing w/e wanted now, but a few ports may need to be reinstalled later. Also, if you only install pre-built ports, no problem arises.

Advised setup (actually tested on clean installations):

1. Install 10.6.8 image
2. Install standard Xcode 3.2.6
3. Install these three:
(these must be installed after Xcode).
4. Install these two:

This gets you a working setup capable of building stuff from source (in addition to installing pre-built, of course).
This does not yet provide all command-line tools which are Intel-only in 10.6.8, and select ports will fail to build from source due to that. Not an issue for using pre-built ones though.

Hopefully I get hierarchical PG search sorted tomorrow, and this will be ready-to-go.
 
Last edited:
  • Like
Reactions: saxfun
I got some sort of error installing xserver-xorg-legacy. macports seems to compile some ports, I recognized the use of gcc 4.2 eben I have gcc14 installed. do I have to edit ALL config files again like on 10.5.8 ? if so do you recommend unsinatlling ALL ports and installing them again AFTER editing the files? it was a LOT of work editing all files.
Next question: if I edit all files and the run the command "sudo port -v sync" (in opposite to selfupdate), will all edited files be again in default version? or is the cmd "sync" different?
 
I got some sort of error installing xserver-xorg-legacy. macports seems to compile some ports, I recognized the use of gcc 4.2 eben I have gcc14 installed. do I have to edit ALL config files again like on 10.5.8 ? if so do you recommend unsinatlling ALL ports and installing them again AFTER editing the files? it was a LOT of work editing all files.
Next question: if I edit all files and the run the command "sudo port -v sync" (in opposite to selfupdate), will all edited files be again in default version? or is the cmd "sync" different?

gcc-4.2 is expected to be used whenever gcc14 is not required. This is the current design in upstream MacPorts and that has not been changed, as of now.
The complete move to modern gcc is considered, but not something to do at this stage.
So this is not a bug.

Ports will build from source, once my repo does not have a prebuilt version corresponding to a) the version in portfile (anything not in my overlay depends on upstream MacPorts updates) and b) chosen variant, if it is not the default (I am not gonna build every existing variant of every port, of course, so if you try installing a non-default combo, chances are it should be built from source, unless it happens to be a combo which I prefer myself).

Which error did you get with xorg-server-legacy though?
 
do I have to edit ALL config files again like on 10.5.8 ? if so do you recommend unsinatlling ALL ports and installing them again AFTER editing the files? it was a LOT of work editing all files.
Next question: if I edit all files and the run the command "sudo port -v sync" (in opposite to selfupdate), will all edited files be again in default version? or is the cmd "sync" different?

1. No manual editing should be needed, unless you want to do something different from intended behavior. So if you think you need to edit something, please let me know what exactly you mean. Either it is a bug to be fixed or you expect something which should not be happening (like with compiler choice, as it seems).

There is an exception which I mentioned above, which is a bug, i.e. that portgroups are not used correctly with mainstream ports, which will break things in some cases. Out of my head I can say that R ports will not work until this is fixed and in certain cases Qt4 ports.
Manual fix should be possible by creating an extra overlay with local portgroups, since local sources are honored as expected.

2. To make any desired changes that will not be overridden by port sync, create a local overlay repo, as been explained before (also see official MacPorts documentation on that, the procedure is identical for this).
 
Portgroup search issue with rsync sources is fixed, links on the website updated, port sources also updated.
Please update PPCPorts and then run port sync.
 
I just installed your updated PPCPorts from your website. error.
 

Attachments

  • Screenshot 22.01.25 18.21.38.png
    Screenshot 22.01.25 18.21.38.png
    6.8 KB · Views: 10
Here is the error I got with xserver-xorg-legacy.

Ok thanks. Looks like I forgot to update it. Will fix it tonight.

Anyway, now you could just open portfile of xserver-xorg-legacy and change revision to 4. Then install it as `sudo port -v -b install xserver-xorg-legacy`, that should use pre-built port.
 
I just installed your updated PPCPorts from your website. error.

If you did not install bootstrap git, it probably cannot find `rsync` command. Quick hack: `sudo ln -s /usr/bin/rsync /opt/bootstrap/bin/rsync` (this assumes that system rsync has ppc slice).

Better do the following:

1. sudo rm -R /opt/bootstrap
2. Install bootstrap git from the link above.

P. S. You did not run sync with -v option, so I cannot see what went wrong exactly. In this update I switched the installation to use modern openssl and rsync which are anyway installed in the package with curl and git. So if that has not been installed, then something of this is missing and breaks things. Old “bootstrap curl” may not have everything needed.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.