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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions