Opened 9 years ago
Closed 9 years ago
#48034 closed defect (fixed)
po4a @0.45 (textproc) Undefined subroutine - build failure
Reported by: | composr@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | mojca (Mojca Miklavec), dbevans (David B. Evans) | |
Port: | po4a |
Description
Starting from a completely clean port install:
- Yosemite 10.10.3
- xcode-select 2339
- Running
sudo port -v install po4a
starts install - All dependencies correctly download and build
po4a
correctly downloads- Build fails with output:
Undefined subroutine &PerlIO::F_UTF8 called at /opt/local/lib/perl5/vendor_perl/5.16.3/Pod/Man.pm line 775. ...propagated at Po4aBuilder.pm line 267.
I've also tried directly downloading the source tarball and building manually with the same error.
Attaching full log below.
Attachments (1)
Change History (10)
Changed 9 years ago by composr@…
comment:1 follow-up: 2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to composr@…:
I've also tried directly downloading the source tarball and building manually with the same error.
Since you've already verified that this is not a MacPorts-specific issue, you should report it to the developers of po4a so that they can resolve it.
comment:2 Changed 9 years ago by composr@…
Replying to ryandesign@…:
Replying to composr@…:
I've also tried directly downloading the source tarball and building manually with the same error.
Since you've already verified that this is not a MacPorts-specific issue, you should report it to the developers of po4a so that they can resolve it.
I more or less verified that building from source using the ports-installed Perl libraries doesn't work. I should like to verify independent of anything from Ports before I'd report it upstream. Thanks for the tip!
comment:3 Changed 9 years ago by mojca (Mojca Miklavec)
Cc: | mojca@… added |
---|---|
Version: | 2.3.3 |
The build works for me if I don't run the build in trace mode, suggesting that most probably just one dependency is missing.
comment:4 Changed 9 years ago by mojca (Mojca Miklavec)
The function is defined in /opt/local/lib/perl5/5.22/PerlIO.pm
which belongs to perl5.22
. So it's weird that it doesn't work.
comment:5 Changed 9 years ago by mojca (Mojca Miklavec)
Based on the error:
I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" cannot parse http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl Undefined subroutine &PerlIO::F_UTF8 called at /opt/local/lib/perl5/vendor_perl/5.22/Pod/Man.pm line 777. ...propagated at Po4aBuilder.pm line 268.
I would suspect that it might have something to do with:
> port provides /opt/local/lib/perl5/5.22/Pod/Man.pm /opt/local/lib/perl5/5.22/Pod/Man.pm is provided by: perl5.22 > port provides /opt/local/lib/perl5/vendor_perl/5.22/Pod/Man.pm /opt/local/lib/perl5/vendor_perl/5.22/Pod/Man.pm is provided by: p5.22-podlators
where p5.22-podlators
ships a newer version that perl5.22
.
But I have no clue. Adding p5.22-podlators
to the list of dependencies and enabling trace mode doesn't solve the problem.
comment:6 Changed 9 years ago by mojca (Mojca Miklavec)
Cc: | devans@… added |
---|
comment:7 Changed 9 years ago by mojca (Mojca Miklavec)
Following the hint about the line with the failure:
system("xsltproc -o $outdir/$outfile.$section --nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $file") and die;
I first added dependency on libxslt
which provides the xsltproc
binary. Then I followed all the warnings about all files and modules that have been hidden by the trace mode and came up with the following list:
depends_build-append \ port:docbook-xml-4.1.2 \ port:docbook-xml-4.2 \ port:docbook-xml-4.3 \ port:docbook-xml-4.4 \ port:docbook-xml-4.5 \ port:docbook-xml-5.0 \ port:docbook-xsl \ port:docbook-xsl-ns \ port:libxslt \ port:p${perl5.major}-data-dumper \ port:p${perl5.major}-extutils-manifest \ port:p${perl5.major}-file-path \ port:p${perl5.major}-getopt-long \ port:p${perl5.major}-html-parser \ port:p${perl5.major}-parent \ port:p${perl5.major}-pathtools \ port:p${perl5.major}-text-parsewords
I'm almost sure that some of these might not be needed or might be part of the core already, but the compilation works fine after that.
Remaining warnings:
Warning: The following existing files were hidden from the build system by trace mode: /OPT/LOCAL/LIB/PERL5/VENDOR_PERL/5.22/POD/SIMPLE/SEARCH.PM /opt/local/bin/gzip /opt/local/bin/perl
comment:8 Changed 9 years ago by mojca (Mojca Miklavec)
After r143429 the built on the buildbots finished successfully. I leave it up to others to figure out which dependencies are superfluous (and also left a comment in the port).
comment:9 Changed 9 years ago by mojca (Mojca Miklavec)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Port build log output