Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#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


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:

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)

ack.main.log (25.9 KB) - added by gthb (Gunnlaugur Thor Briem) 7 years ago.
main.log from the failing upgrade

Download all attachments as: .zip

Change History (10)

Changed 7 years ago by gthb (Gunnlaugur Thor Briem)

Attachment: ack.main.log added

main.log from the failing upgrade

comment:1 Changed 7 years ago by anowacki (Andy Nowacki)

Cc: andy.nowacki@… added

Cc Me!

comment:2 Changed 7 years ago by johnarett@…

Cc: johnarett@… added

Cc Me!

comment:3 Changed 7 years ago by ryandesign (Ryan 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 7 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 blib/lib/App/Ack/
cp blib/lib/App/Ack/Filter/

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 7 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 7 years ago by dbevans (David B. Evans)

Fixed in r142181. To configure properly, perl5.branches must appear before perl5.setup.

comment:7 Changed 7 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: newclosed

comment:8 Changed 7 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 7 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.

Note: See TracTickets for help on using tickets.