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.

By retail release of Snow Leopard, the Leopard/SL-dev rectangles became capsules, and I have yet to figure out where that call is. I do think it’s likely related to the Label squares in Finder being differently-sized between Leopard/SL-dev (larger) and Snow Leopard retail (smaller).

I’m still looking for this stuff..

1637865941761.png
1637866108674.png

1637866220734.png
1637866271556.png
 
  • Like
Reactions: ChrisCharman
By retail release of Snow Leopard, the Leopard/SL-dev rectangles became capsules, and I have yet to figure out where that call is. I do think it’s likely related to the Label squares in Finder being differently-sized between Leopard/SL-dev (larger) and Snow Leopard retail (smaller).

I’m still looking for this stuff..

View attachment 1918019View attachment 1918021
View attachment 1918023View attachment 1918024
I haven’t delved into the Finder rsrc files so i’m unsure if these are stored as static files or are generated and rendered on the fly.

Interestingly, if you replace the binary in System Preferences from at least some later builds with the 10A190 (or presumably 10A096) version, it will launch and function. I’m wondering what the possibilities may be doing the same with Finder, although I suspect more files would need to be transplanted.
 
Last edited:
I haven’t delved into the Finder rsrc files so i’m unsure if these are stored as static files or are generated and rendered on the fly.

Interestingly, if you replace the binary in System Preferences from at least some later builds with the 10A190 (or presumably 10A096) version, it will launch and function. I’m wondering what the possibilities may be doing the same with Finder, although I suspect more files would need to be transplanted.

I was thinking to try that with Xcode, since as they are versions from 10A261 and 10A286 crash on start.
 
I haven’t delved into the Finder rsrc files so i’m unsure if these are stored as static files or are generated and rendered on the fly.

I’ve only just begun to. At present in Finder.rsrc, there are no PICT image resources. Although there are a few PNG references, neither a resource viewer nor copy-pasting the contents from one of those PNG records into a blank file, saved as a PNG, has yielded any viewable image content.

Interestingly, if you replace the binary in System Preferences from at least some later builds with the 10A190 (or presumably 10A096) version, it will launch and function. I’m wondering what the possibilities may be doing the same with Finder, although I suspect more files would need to be transplanted.

This makes sense, insofar as long as the support files within the later version are what the binary calls for and/or expects to find.

Thus far, the only System Prefs I’ve changed in any fundamental way is ditching the 10A96 “Keyboard & Mouse” prefPane by using a hotchpotch of elements from the 10.5.8 version of Keyboard & Mouse prefPane and the Trackpad prefpane to produce something which more closely resembles what one would find in the 10.6.0 retail.
 
  • Like
Reactions: ChrisCharman
Another update on R, and I will make a break from it. I have built R GUI 1.72, which apparently works with minor bugs. R GUI 1.76 compiled but crashes on start. Both suffer from incompatible XIB files, so I had to replace those from 1.70. Perhaps benefits of using a newer app after such modifications are questionable.
To anyone who may consider making the latest R work on PowerPC with GUI, I guess it is safe and good enough to stay on either 1.67-68 or 1.70.

Screenshot 2021-11-27 06-51-00.png


Here is the list what I managed to install, most of these easily built from source, some required tweaks.

abind abind 1.4-5
arm arm 1.12-2
askpass askpass 1.1
assertthat assertthat 0.2.1
backports backports 1.4.0
base64enc base64enc 0.1-3
bayesplot bayesplot 1.8.1
bayestestR bayestestR 0.11.5
BayesX BayesX 0.3-1
BH BH 1.75.0-0
bit bit 4.0.4
bit64 bit64 4.0.5
blob blob 1.2.2
BMS BMS 0.3.4
Boom Boom 0.9.7
brew brew 1.0-6
brio brio 1.1.2
Brobdingnag Brobdingnag 1.2-6
broom broom 0.7.10
cachem cachem 1.0.6
callr callr 3.7.0
car car 3.0-12
carData carData 3.0-4
caret caret 6.0-90
cellranger cellranger 1.1.0
checkmate checkmate 2.0.0
cli cli 3.1.0
clipr clipr 0.7.1
cmdstanr cmdstanr 0.4.0
coda coda 0.19-4
colorspace colorspace 2.0-2
commonmark commonmark 1.7
CompQuadForm CompQuadForm 1.4.3
config config 0.3.1
conquer conquer 1.2.1
cpp11 cpp11 0.4.1
crayon crayon 1.4.2
credentials credentials 1.3.1
crosstalk crosstalk 1.2.0
curl curl 4.3.2
data.table data.table 1.14.2
datawizard datawizard 0.2.1
DBI DBI 1.1.1
dbplyr dbplyr 2.1.1
desc desc 1.4.0
diffobj diffobj 0.3.5
digest digest 0.6.28
distributional distributional 0.2.2
dplyr dplyr 1.0.7
dtplyr dtplyr 1.1.0
dygraphs dygraphs 1.1.1.6
e1071 e1071 1.7-9
effects effects 4.2-0
ellipsis ellipsis 0.3.2
estimability estimability 1.3
evaluate evaluate 0.14
fansi fansi 0.5.0
farver farver 2.1.0
fastmap fastmap 1.1.0
fontawesome fontawesome 0.2.2
forcats forcats 0.5.1
foreach foreach 1.5.1
Formula Formula 1.2-4
future future 1.23.0
future.apply future.apply 1.8.1
generics generics 0.1.0
gert gert 1.4.3
ggforce ggforce 0.3.3
ggplot2 ggplot2 3.3.5
ggridges ggridges 0.5.3
ggstance ggstance 0.3.5
gh gh 1.3.0
git2r git2r 0.29.0
gitcreds gitcreds 0.1.1
globals globals 0.14.0
glue glue 1.5.0
gower gower 0.2.2
gridExtra gridExtra 2.3
gtable gtable 0.3.0
gtools gtools 3.9.2
here here 1.0.1
highr highr 0.9
Hmisc Hmisc 4.6-0
hms hms 1.1.1
htmlTable htmlTable 2.3.0
htmltools htmltools 0.5.2
htmlwidgets htmlwidgets 1.5.4
httr httr 1.4.2
ids ids 1.0.1
igraph igraph 1.2.9
ini ini 0.3.1
inline inline 0.3.19
insight insight 0.14.5
ipred ipred 0.9-12
isoband isoband 0.2.5
iterators iterators 1.0.13
jpeg jpeg 0.1-9
jquerylib jquerylib 0.1.4
jsonlite jsonlite 1.7.2
knitr knitr 1.36
labeling labeling 0.4.2
LaplacesDemon LaplacesDemon 16.1.6
latticeExtra latticeExtra 0.6-29
lava lava 1.6.10
lazyeval lazyeval 0.2.2
lifecycle lifecycle 1.0.1
listenv listenv 0.8.0
lme4 lme4 1.1-27.1
loo loo 2.4.1
lubridate lubridate 1.8.0
magrittr magrittr 2.0.1
maptools maptools 1.1-2
markdown markdown 1.1
MatrixModels MatrixModels 0.5-0
matrixStats matrixStats 0.61.0
mcmc mcmc 0.9-7
memoise memoise 2.0.0
microbenchmark microbenchmark 1.4.9
mime mime 0.12
minqa minqa 1.2.4
mitools mitools 2.4
ModelMetrics ModelMetrics 1.2.2.2
modelr modelr 0.1.8
mosaicCore mosaicCore 0.9.0
munsell munsell 0.5.0
nimble nimble 0.12.1
nloptr nloptr 1.2.2.3
nortest nortest 1.0-4
numDeriv numDeriv 2016.8-1.1
openssl openssl 1.4.5
packrat packrat 0.7.0
parallelly parallelly 1.28.1
pbkrtest pbkrtest 0.5.1
pillar pillar 1.6.4
pkgbuild pkgbuild 1.2.0
pkgconfig pkgconfig 2.0.3
pkgKitten pkgKitten 0.2.2
pkgload pkgload 1.2.3
plyr plyr 1.8.6
png png 0.1-7
polyclip polyclip 1.10-0
posterior posterior 1.1.0
praise praise 1.0.0
prettyunits prettyunits 1.1.1
pROC pROC 1.18.0
processx processx 3.5.2
prodlim prodlim 2019.11.13
progress progress 1.2.2
progressr progressr 0.9.0
proxy proxy 0.4-26
ps ps 1.6.0
purrr purrr 0.3.4
quantreg quantreg 5.86
R2WinBUGS R2WinBUGS 2.1-21
R6 R6 2.5.1
rappdirs rappdirs 0.3.3
rcmdcheck rcmdcheck 1.4.0
RColorBrewer RColorBrewer 1.1-2
Rcpp Rcpp 1.0.7.3
RcppArmadillo RcppArmadillo 0.10.7.3.0
RcppEigen RcppEigen 0.3.3.9.1
RcppParallel RcppParallel 5.1.4
RcppThread RcppThread 1.0.0
readstata13 readstata13 0.10.0
readxl readxl 1.3.1
recipes recipes 0.1.17
relimp relimp 1.0-5
rematch rematch 1.0.1
rematch2 rematch2 2.1.2
remotes remotes 2.4.1
reshape2 reshape2 1.4.4
reticulate reticulate 1.22
rlang rlang 0.4.12
rmarkdown rmarkdown 2.11
roxygen2 roxygen2 7.1.2
rprojroot rprojroot 2.0.2
rsconnect rsconnect 0.8.25
rstantools rstantools 2.1.1
rstudioapi rstudioapi 0.13
runjags runjags 2.2.0-3
rversions rversions 2.1.1
rvest rvest 1.0.2
sandwich sandwich 3.0-1
scales scales 1.1.1
selectr selectr 0.4-2
sessioninfo sessioninfo 1.2.1
shapefiles shapefiles 0.7
slam slam 0.1-49
sourcetools sourcetools 0.1.7
sp sp 1.4-6
SparseM SparseM 1.81
SQUAREM SQUAREM 2021.1
StanHeaders StanHeaders 2.21.0-7
stringi stringi 1.7.5
stringr stringr 1.4.0
sundialr sundialr 0.1.4.1
survey survey 4.1-1
sys sys 3.4
tensorA tensorA 0.36.2
testthat testthat 3.1.0
tibble tibble 3.1.6
tidyr tidyr 1.1.4
tidyselect tidyselect 1.1.1
timeDate timeDate 3043.102
tinytest tinytest 1.3.1
tinytex tinytex 0.35
tweenr tweenr 1.0.2
tzdb tzdb 0.2.0
utf8 utf8 1.2.2
uuid uuid 1.0-3
vctrs vctrs 0.3.8
viridis viridis 0.6.2
viridisLite viridisLite 0.4.0
waldo waldo 0.3.1
whisker whisker 0.4
withr withr 2.4.2
xfun xfun 0.28
xml2 xml2 1.3.2
xopen xopen 1.0.0
xtable xtable 1.8-4
xts xts 0.12.1
yaml yaml 2.2.1
zip zip 2.2.0
zoo zoo 1.8-9

We can safely add to Wiki that R 4.1.2 is functional with R GUI 1.67 / 1.70.
Number of packages fail to build, however what does build is enough for most of people perhaps. Then best Bayesian framework (Stan) fails, but several alternative ones have built. Some of devtools and some of tidyverse parts do not build. Nevertheless this is a usable set-up.
 
I’ve only just begun to. At present in Finder.rsrc, there are no PICT image resources. Although there are a few PNG references, neither a resource viewer nor copy-pasting the contents from one of those PNG records into a blank file, saved as a PNG, has yielded any viewable image content.
Pasting the contents of the PNG records should have worked.

The following script can convert PNG resources to png files. It gets the hex of each PNG using derez and outputs it to a file using xxd.
/tmp/Finder_PNG.rez is the derez output for only the PNG resources.
/tmp/Finder_PNG.txt is the same info with one line per resource.
/tmp/Finder_PNG is a folder containing the png results.

Code:
derez -useDF -only 'PNG ' /Volumes/SnowLeopard/System/Library/CoreServices/Finder.app/Contents/Resources/Finder.rsrc > /tmp/Finder_PNG.rez

perl -pe '
	s/^data '"'"'(....)'"'"' \(([-\d]+).*\n/$1\t$2\t/;
	s/};\n//;
	if (/^\t\$/) { s/^\t\$"//; s/".*//; s/[ \n]//g; };
' \
/tmp/Finder_PNG.rez \
| perl -pe '
	if (/^PAT#\t([^\t]+)\t/) { $id = $1; s/PAT#\t[^\t]+\t....(.*)\n/\1/; s/(.{16})/PAT#\t$id\t$1\n/g; }
	s/^(CURS\t[^\t]+\t.*)......../\1/;
' \
| sort -t '	' -u -k 3 | sort -t '	' > /tmp/Finder_PNG.txt


mkdir -p /tmp/Finder_PNG
((i=1000))
IFS=$'\n'
for theline in $(cat /tmp/Finder_PNG.txt); do
	thetype="${theline:0:4}"
	theid="${theline:5:6}"
	theid="${theid%$'\t'*}"
	thedata="${theline##*$'\t'}"
	{
		printf "%s" "$thedata"
	} | xxd -p -r > "/tmp/Finder_PNG/${i:1}_${thetype}_${theid}.png"
done

open /tmp/Finder_PNG
 
I was thinking to try that with Xcode, since as they are versions from 10A261 and 10A286 crash on start.
I agree we should try and patch the final version of 3.2 at least for compatibility, we should probably also create a 10.6u or 10.6ppc SDK at some point though that should probably wait until we have a stable build that isn’t constantly changing.
 
Last edited:
I agree we should try and patch the final version of 3.2 at least for compatibility, we should probably also create a 10.6u or 10.6ppc SDK at some point though that should probably wait until we have a stable build that isn’t constantly changing.

It might be worth also trying to make later versions of Apple GCC compiler from 10A222, 10A261 or 10A286 work in Xcode 3.2.
 
It might be worth also trying to make later versions of Apple GCC compiler from 10A222, 10A261 or 10A286 work in Xcode 3.2.
Cross-compiling apple gcc using the Xcode 3.2.1 source from intel Snow Leopard causes gcc to link to that version of Libsystem. Will try again building native.

Installation of the 10A222 Xcode packages directly into 10A190 seems to work fine thus far.
 
I was talking with a dude a few days ago in a Hackintosh Discord server who had worked between Apple and IBM to test hardware and supposedly up to and including 10A430 were built for PowerPC. 10A428 was the final one compatible with G4 machines, 10A430 was only compatible with G5 machines and dropped support for the first G5 machines. He uploaded them to archive.org but has been quiet for a while and hasn't said anything since he started uploading them. I don't have the archive.org links but maybe if we search long enough/hard enough we could find them? This could be pretty big.
I completely forgot about this. I went back to check whether he'd said anything since and it turns out he's deleted his account. That basically confirm this was just a troll or something as far as I'm concerned. Mentions of those builds in the Wikipost can probably be removed unless they've been verified to actually exist in the time since I was last here.
 
I completely forgot about this. I went back to check whether he'd said anything since and it turns out he's deleted his account. That basically confirm this was just a troll or something as far as I'm concerned. Mentions of those builds in the Wikipost can probably be removed unless they've been verified to actually exist in the time since I was last here.

Welp, that sucks. Thanks for the update.
 
  • Like
Reactions: ChrisCharman
A quick note on software compatibility:

BarCode Pro 6.1.1 and 6.1.5 work. (Anyone into desktop publishing? We have everything now.)

Multilex 1.01 works.

I bumped into a strange note in Wiki-post about Illustrator CS4 error upon installation. I had no such error. Installed CS4 with zero issues and apps start normally (didn’t use anything for practical tasks yet, but it looks all good).

P. S. I got access to Broken Stones, however could not find any developer builds of 10.6 there. In fact not much PPC software is left overall.
 
  • Like
Reactions: ChrisCharman
A quick note on software compatibility:

BarCode Pro 6.1.1 and 6.1.5 work. (Anyone into desktop publishing? We have everything now.)

Nice. You ought to throw those onto the garden (especially if those versions were released before 2012). I could certainly use BarCode Pro. :)

Multilex 1.01 works.

I bumped into a strange note in Wiki-post about Illustrator CS4 error upon installation. I had no such error. Installed CS4 with zero issues and apps start normally (didn’t use anything for practical tasks yet, but it looks all good).

That was a note from my own testing. The permissions issue I was dealing with has come up in a couple of other places, though not to the same extent as hanging an entire application upon launching (as was the issue I was facing with Illustrator). I’ve also had some quirks with Acrobat Pro 9 and Photoshop CS4 which seem to stem from pref file permissions. At some point I might just try a re-install of CS4 to see if that clears up some of these issues.

P. S. I got access to Broken Stones, however could not find any developer builds of 10.6 there. In fact not much PPC software is left overall.

That’s unfortunate, but not entirely surprising. :|
 
  • Like
Reactions: ChrisCharman
Managed to spend a good few hours continuing my work on rebuilding the system binaries today from Apple Open Source Projects. Improvements can be seen in many areas, and even Finder is starting to behave itself with only the occasional crash now - i think it will always be buggy but it can definitely be made to be far more usable and stable along with the rest of the system by simply bringing the underlying subsystems up-to-date with retail 10.6.

The reason for my post in this instance however is actually an unintended and unknown (to me) consequence of the changes that i have been making. Now, whenever i restart my system, i get a new helpful dialogue box that informs me which running programs are using, and those that are not using, the Snow Leopard 'Instant Off' feature.

Interesting.png
 
Managed to spend a good few hours continuing my work on rebuilding the system binaries today from Apple Open Source Projects. Improvements can be seen in many areas, and even Finder is starting to behave itself with only the occasional crash now - i think it will always be buggy but it can definitely be made to be far more usable and stable along with the rest of the system by simply bringing the underlying subsystems up-to-date with retail 10.6.

The reason for my post in this instance however is actually an unintended and unknown (to me) consequence of the changes that i have been making. Now, whenever i restart my system, i get a new helpful dialogue box that informs me which running programs are using, and those that are not using, the Snow Leopard 'Instant Off' feature.

View attachment 1922210

Interesting! This is the first appearance of InstantOff I’ve seen mentioned anywhere beyond the placeholder prefPane I found in 10A96. This clearly looks like they were messing about with the concept, though it does come with some surprise that mentions/calls for it were still buried in the AOSP as late as 10.6.0 — which came much later.

EDIT to add: Hey @ChrisCharman — have you by chance clicked on that “Open Wiki” button to see where it goes? It doesn’t seem like Apple to rely on wikis, but maybe for OS development they did.
 
Last edited:
  • Like
Reactions: ChrisCharman
Managed to spend a good few hours continuing my work on rebuilding the system binaries today from Apple Open Source Projects. Improvements can be seen in many areas, and even Finder is starting to behave itself with only the occasional crash now - i think it will always be buggy but it can definitely be made to be far more usable and stable along with the rest of the system by simply bringing the underlying subsystems up-to-date with retail 10.6.

The reason for my post in this instance however is actually an unintended and unknown (to me) consequence of the changes that i have been making. Now, whenever i restart my system, i get a new helpful dialogue box that informs me which running programs are using, and those that are not using, the Snow Leopard 'Instant Off' feature.

View attachment 1922210

What in particular have you rebuilt so far from AOSP?
 
What in particular have you rebuilt so far from AOSP?
Hi @barracuda156

The custom build i'm running has been modified across 3 machines so i can't provide a full list at the moment, but the most recent Apple Open Source Projects compiled on this PowerBook G4 that are still in my build directory are:

adv_cmds-138.1 (only listed subprojects)

- ps
- stty
- cap_mkdb
- colldef
- finger
- last
- locale
- localedef
- lsvfs
- md
- mklocale
- stty
- tabs
- tty
- whois

autoconf-15

awk-14

basic_cmds-49

- mesg
- uudecode
- uuencode
- write

bootstrap_cmds-72

- migcom
- config
- relpath
- decomment

CommonCrypto-36064

CoreOSMakefiles-61

cups-218

cxxfilt-9

diskdev_cmds-491 (only listed subprojects)

- clri
- dev_mkdb
- dumpfs
- fdisk
- fstyp
- fuser
- mount_devfs
- mount_fdesc
- mount_hfs
- quot
- tunefs
- vsdbutil
- vndevice

gm4

grep-26

ICU-400.37

libxml2-21

misc_cmds-27

- calendar
- leave
- ncal
- tsort
- units

OpenPAM-11

pcre-4.1

shell_cmds-149 (only listed subprojects)

- alias
- apply
- basename
- chroot
- date
- dirname
- echo
- env
- expr
- false
- find
- getopt
- hostname
- id
- jot
- kill
- killall
- lastcomm
- locate
- logname
- mktemp
- nice
- nohup
- path_helper
- printenv
- printf
- pwd
- renice
- script
- shlock
- sleep
- tee
- test
- time
- true
- uname
- users
- w
- whereis
- which
- who
- xargs
- yes

system_cmds-496 (only listed subprojects)

- ac
- accton
- arch
- bootlog
- dmesg
- dp_notify_lib
- getconf
- getty
- hostinfo
- iostat
- login
- makekey
- mkfile
- newgrp
- nologin
- sa
- sadc
- sar
- sync
- sysctl
- update
- vipw
- vifs
- zdump
- zic
- zprint

TimeZoneData-19

zip-11.1

- zip
- unzip

zlib-22

Once i've built everything i plan to build and then rebuilt it all again with the binaries, libraries, headers etc in place, i will then share a full list and an installer so that others don't need to struggle unnecessarily. Some projects depend on other projects which depend on further projects, some require headers that don't exist on 10A190 and which must be externally sourced and so on. What is clear is that the more i build, the more useable 10A190 becomes and the more closely it matches 10A432 at least on a base system level. I will continue to work on this as i have done, but it is sporadic and only when i can find time between work and childcare of course.
 
And they can compile code? Awesome, I gonna try it then.

@barracuda156 Yeah I haven’t run into any issues as of yet. If you go to AOSP you can download the relevant source for the build tools for each version of Xcode, including 3.2x. This in addition to the developer preview source bundles i found are on my todo list to test when i have time. I hoped cross-compiling from the MacBook would be faster, which of course it was, but i need to look more into how to ensure it doesn’t link against 10A432 intel to make the builds portable.

Interesting! This is the first appearance of InstantOff I’ve seen mentioned anywhere beyond the placeholder prefPane I found in 10A96. This clearly looks like they were messing about with the concept, though it does come with some surprise that mentions/calls for it were still buried in the AOSP as late as 10.6.0 — which came much later.

EDIT to add: Hey @ChrisCharman — have you by chance clicked on that “Open Wiki” button to see where it goes? It doesn’t seem like Apple to rely on wikis, but maybe for OS development they did.

@B S Magnet i believe these are friendly reminders from Apple for the devs (internal and external) working on Snow Leopard development at the time to ensure they followed best practices and made use of the new features and apis.

I hadn’t clicked the button, but i have done this now and it sends the user to the browser and redirects to a URL that times out. Based on the URL it most likely was a hyperlink to developer documentation.
 
@barracuda156 Yeah I haven’t run into any issues as of yet. If you go to AOSP you can download the relevant source for the build tools for each version of Xcode, including 3.2x. This in addition to the developer preview source bundles i found are on my todo list to test when i have time. I hoped cross-compiling from the MacBook would be faster, which of course it was, but i need to look more into how to ensure it doesn’t link against 10A432 intel to make the builds portable.



@B S Magnet i believe these are friendly reminders from Apple for the devs (internal and external) working on Snow Leopard development at the time to ensure they followed best practices and made use of the new features and apis.

I hadn’t clicked the button, but i have done this now and it sends the user to the browser and redirects to a URL that times out. Based on the URL it most likely was a hyperlink to developer documentation.

Given how InstantOff never came to pass, and given how TextEdit is in their list of “Instant Off killable”, I’m starting to think InstantOff is an early implementation of the save-state feature which restores applications and windows between restarts — without losing anything (and which became a thing from Lion onward, and from TextEdit onward in 10.6.8, if not also as far back as 10.6.0).
 
  • Like
Reactions: ChrisCharman
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.