Opened 10 years ago
Closed 10 years ago
#44439 closed defect (fixed)
p5.18-pdl, p5.20-pdl: build fails in post-build fixup script.
Reported by: | dbevans (David B. Evans) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | mf2k (Frank Schima), danielluke (Daniel J. Luke), mojca (Mojca Miklavec) | |
Port: | p5-pdl |
Description (last modified by dbevans (David B. Evans))
After fixing the problem in #44420, build fails again (on both p5.18 and p5.20) as follows:
DEBUG: Executing proc-post-org.macports.build-build-0 Error: org.macports.build for port p5.20-pdl returned: Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Odd number of elements in hash assignment at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 41. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59. Use of uninitialized value in join or string at /opt/macports/trunk/dports/perl/p5-pdl/files/fix-pdldocdb.pl line 59.
This is occuring after the build proper in post-build phase trying to fix up various installation paths. The nature of the error message and the fact that it occurs on both p5.18 and p5.20 versions suggests that the problem may in part be related to changes in the perl hash implementation that hit in perl 5.18.
The perl code failing (executed from $filepath/fix-pdldocdb.pl) is taken largely from PDL::Doc with minor modifications and has not been changed in the current version (or upstream development versions) so this may indicate that there is a perl 5.18+ compatibility problem with the PDL::Doc part of this port as well.
Unfortunately, I have no idea where to start on this so any help is welcome.
Log file for p5.20-pdl build attached although it doesn't provide much more information.
Attachments (2)
Change History (11)
Changed 10 years ago by dbevans (David B. Evans)
Attachment: | p5.20-pdl.log added |
---|
comment:1 Changed 10 years ago by dbevans (David B. Evans)
Cc: | mf2k@… added; m2k removed |
---|---|
Owner: | mf2k@… deleted |
Meant CC not necessarily owner for mf2k@
comment:2 Changed 10 years ago by dbevans (David B. Evans)
Description: | modified (diff) |
---|---|
Owner: | set to macports-tickets@… |
comment:3 Changed 10 years ago by dbevans (David B. Evans)
Port: | p5.20-pdl added; p5.20 removed |
---|
comment:4 Changed 10 years ago by dbevans (David B. Evans)
Port: | p5.18-pdl, p5.20-pdl → p5.18-pdl p5.20-pdl |
---|
comment:5 Changed 10 years ago by danielluke (Daniel J. Luke)
I would probably dump the contents of %hash in ensuredb() as a first look at what's going on. (If I can get some spare time, I'll try to take a look)
comment:8 Changed 10 years ago by mvgrimes
It looks like fix-pdldocdb is parsing a set of null separated fields and turning them into a hash. The order of the list is different between 5.16 and 5.18, and in 5.18 the last field is sometimes empty. When it gets assigned to a hash, perl complains about the missing value.
Under 5.16 ... $txt = ->mn_emat ->Usage -> ->Module ->PDL::Minuit ->File ->/opt/local/var/macports/... Under 5.18 ... $txt = ->mn_emat ->File ->/opt/local/var/macports/build/... ->Module ->PDL::Minuit ->Usage -> #Odd number of elements in hash assignment at /Users...
In 5.18, perl changed the way it handles hashes and the order is no longer consistent. I'm guessing that is causing the fields to come up in a different order.
The attached patch should fix it.
Changed 10 years ago by mvgrimes
Attachment: | p5-pdl-44439.patch added |
---|
comment:9 Changed 10 years ago by mf2k (Frank Schima)
Port: | p5-pdl added; p5.18-pdl p5.20-pdl removed |
---|---|
Resolution: | → fixed |
Status: | new → closed |
This works. Thanks! r123884. I have also added you as maintainer.
Build log showing failure for p5.20-pdl