Skip to content

./inject.pl is running code from installed tree and not own source #266

@nieder

Description

@nieder

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

fink/perlmod/Fink/Services.pm

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.

@TheSin-

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions