#49574 closed defect (fixed)
ack @2.140.0_1 fails destroot, looking for nonexistent .../perl5/vendor_perl/5.22
Reported by: | gthb (Gunnlaugur Thor Briem) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | anowacki (Andy Nowacki), johnarett@…, lutz.horn@…, mojca (Mojca Miklavec) | |
Port: | ack |
Description
Just upgrading outdated today, and ack fails to complete destroot, saying:
---> Staging ack into destroot Error: org.macports.destroot for port ack returned: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ack/ack/work/destroot/opt/local/lib/perl5/vendor_perl/5.22: no such file or directory Please see the log file for port ack for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_ack/ack/main.log
Where it's looking for 5.22
, there is a directory 5.16.3
instead. And indeed that's my installed perl5
:
$ port installed perl5 The following ports are currently installed: perl5 @5.16.3_0+perl5_16 (active)
I notice that the ack port declares dependencies on perl5.16
and p5.22-file-next
, which seems odd. Probably one of these two dependencies is in error?
Attaching full main.log
.
Attachments (1)
Change History (10)
Changed 9 years ago by gthb (Gunnlaugur Thor Briem)
Attachment: | ack.main.log added |
---|
comment:3 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | lutz.horn@… mojca@… added |
---|
Has duplicate #49585.
The port was changed in r142095 to use perl5.22, but apparently that was not entirely successful. It seems to matter what variant of perl5 port you have installed. That's not ok either, since that would make ack not build reproducibly.
comment:4 Changed 9 years ago by mojca (Mojca Miklavec)
I'm confused. I don't understand when the following wrong version of Perl enters into equation:
Executing command line: cd "/path/to/ack/work/ack-2.14" && /usr/bin/make -j2 -w all make: Entering directory `/path/to/ack/work/ack-2.14' cp ack blib/script/ack "/opt/local/bin/perl5.<DEFAULT_VERSION>" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ack cp ConfigDefault.pm blib/lib/App/Ack/ConfigDefault.pm cp FirstLineMatch.pm blib/lib/App/Ack/Filter/FirstLineMatch.pm
I tried adding the following into the Portfile (due to the fact that Makefile.PL
is full of $(PERL)
):
configure.env-append PERL=${perl5.bin} build.env-append PERL=${perl5.bin}
which doesn't really help, but it leads to a similar problem at the end, saying that the directory doesn't exist.
comment:5 Changed 9 years ago by mojca (Mojca Miklavec)
I'll continue debugging tomorrow unless someone can figure out what controls appearance of default Perl version in that part of the make process.
(I already set +perl5_22
by the time when I tested this, so I didn't notice the problem. I'm sorry for that.)
comment:6 Changed 9 years ago by dbevans (David B. Evans)
Fixed in r142181. To configure properly, perl5.branches must appear before perl5.setup.
comment:7 Changed 9 years ago by dbevans (David B. Evans)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:8 Changed 9 years ago by mojca (Mojca Miklavec)
Thank you. I have to fix a bunch of other ports then as well. I made the same mistake everywhere.
comment:9 Changed 9 years ago by mojca (Mojca Miklavec)
The problem only affected ack which needed perl5.setup
. The rest of the ports are downloaded from elsewhere (sourceforge etc.) and thus not affected.
main.log from the failing upgrade