-
Notifications
You must be signed in to change notification settings - Fork 76
Description
This has come up several times in the mailing lists, where the Services.pm , where the code to deal with macOS vs darwin versioning schemes is different
Lines 1442 to 1454 in 867a27f
| sub get_osx_vers { | |
| my $sw_vers = get_osx_vers_long(); | |
| my $darwin_osx = get_darwin_equiv(); | |
| $sw_vers =~ s/^(\d+\.\d+).*$/$1/; | |
| if ($sw_vers != $darwin_osx) { | |
| if (($sw_vers == 11.6 && $darwin_osx == 11.5) || ($sw_vers == 11.7 && $darwin_osx == 11.5) || ($sw_vers == 12.6 && $darwin_osx == 12.5) || ($sw_vers == 12.7 && $darwin_osx == 12.5) || ($sw_vers == 13.6 && $darwin_osx == 13.5)) { | |
| # special cases in Big Sur, Monterey, and Ventura where it's OK to have a mismatch | |
| } else { | |
| die "$sw_vers does not match the expected value of $darwin_osx. Please run `fink selfupdate` to download a newer version of fink"; | |
| } | |
| } | |
| return $sw_vers; | |
| } |
During updates, the ./inject.pl runs crash because existing installs don't know about a new mismatch Apple introduced, and therefore they exit.
I installed a clean tree to /opt/sw-inject, made sure my terminal only knew about this new tree, and added a die "debug text" debug line inside Services.pm::get_osx_vers() for both /opt/sw-inject/lib/perl5/Fink/Services.pm and the Services.pm in my git pull. When I run ./inject.pl, I see the following:
Modifying package description...
/bin/chmod 644 /opt/sw-inject/fink/dists/local/injected/finkinfo/*.*
Installing package...
/opt/sw-inject/bin/fink install fink-0.45.99.git-20240327.0241
Checking Services.pm in the installed tree. at /opt/sw-inject/lib/perl5/Fink/Services.pm line 1429.
### execution of /opt/sw-inject/bin/fink failed, exit code 29
Both the text and the referenced line number point to ./inject.pl using the code from the existing installed tree, not from the git pull.