Opened 4 months ago

Closed 3 months ago

#69171 closed defect (fixed)

pulseaudio @17.0: Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module)

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: Ionic (Mihai Moldovan)
Priority: Normal Milestone:
Component: ports Version:
Keywords: lion mountainlion Cc: ShadSterling (Shad Sterling), slarew, barracuda156
Port: pulseaudio

Description

Not sure who is missing the p5.34-xml-parser dependency—pulseaudio or meson:

[53/446] /opt/local/bin/meson --internal exe --capture man/pacmd.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pacmd.1.xml
FAILED: man/pacmd.1 
/opt/local/bin/meson --internal exe --capture man/pacmd.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pacmd.1.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

[54/446] /opt/local/bin/meson --internal exe --capture man/pasuspender.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pasuspender.1.xml
FAILED: man/pasuspender.1 
/opt/local/bin/meson --internal exe --capture man/pasuspender.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pasuspender.1.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

[55/446] /opt/local/bin/meson --internal exe --capture man/default.pa.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/default.pa.5.xml
FAILED: man/default.pa.5 
/opt/local/bin/meson --internal exe --capture man/default.pa.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/default.pa.5.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

[56/446] /opt/local/bin/meson --internal exe --capture man/pulse-cli-syntax.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pulse-cli-syntax.5.xml
FAILED: man/pulse-cli-syntax.5 
/opt/local/bin/meson --internal exe --capture man/pulse-cli-syntax.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pulse-cli-syntax.5.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

ninja: build stopped: subcommand failed.

Attachments (1)

main.log (181.7 KB) - added by ShadSterling (Shad Sterling) 4 months ago.

Download all attachments as: .zip

Change History (10)

comment:1 Changed 4 months ago by ShadSterling (Shad Sterling)

Cc: ShadSterling added

comment:2 Changed 4 months ago by ShadSterling (Shad Sterling)

I have meson up to date, so I think the problem is in pulseaudio

/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/XML/Parser.pm exists and contains package XML::Parser and is in @INC, so the obvious workaround of installing p5.34-xml-parser doesn't help

Changed 4 months ago by ShadSterling (Shad Sterling)

Attachment: main.log added

comment:3 Changed 3 months ago by slarew

Cc: slarew added

comment:4 Changed 3 months ago by barracuda156

Same error on 10.8.5:

[52/446] /opt/local/bin/msgfmt -o po/eu/LC_MESSAGES/pulseaudio.mo ../pulseaudio-17.0/po/eu.po
[53/446] /opt/local/bin/meson --internal exe --capture man/pasuspender.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pasuspender.1.xml
FAILED: man/pasuspender.1 
/opt/local/bin/meson --internal exe --capture man/pasuspender.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pasuspender.1.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

[54/446] /opt/local/bin/meson --internal exe --capture man/pulse-cli-syntax.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pulse-cli-syntax.5.xml
FAILED: man/pulse-cli-syntax.5 
/opt/local/bin/meson --internal exe --capture man/pulse-cli-syntax.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pulse-cli-syntax.5.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

[55/446] /opt/local/bin/meson --internal exe --capture man/pacmd.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pacmd.1.xml
FAILED: man/pacmd.1 
/opt/local/bin/meson --internal exe --capture man/pacmd.1 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/pacmd.1.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

[56/446] /opt/local/bin/meson --internal exe --capture man/default.pa.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/default.pa.5.xml
FAILED: man/default.pa.5 
/opt/local/bin/meson --internal exe --capture man/default.pa.5 -- /opt/local/bin/perl /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman man/default.pa.5.xml
--- stderr ---
Can't locate XML/Parser.pm in @INC (you may need to install the XML::Parser module) (@INC contains: /opt/local/lib/perl5/site_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/site_perl/5.34 /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/vendor_perl/5.34 /opt/local/lib/perl5/5.34/darwin-thread-multi-2level /opt/local/lib/perl5/5.34) at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.
BEGIN failed--compilation aborted at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/pulseaudio-17.0/man/xmltoman line 20.

ninja: build stopped: subcommand failed.
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_pulseaudio/pulseaudio/work/build" && /opt/local/bin/ninja -j4 -v 
Exit code: 1

comment:5 Changed 3 months ago by barracuda156

Cc: barracuda156 added

comment:6 in reply to:  4 ; Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ShadSterling:

I have meson up to date, so I think the problem is in pulseaudio

Being up to date isn't the issue. It's that one of these ports, whichever one is using XML::Parser, seems not to be declaring a dependency on it.

/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/XML/Parser.pm exists and contains package XML::Parser and is in @INC, so the obvious workaround of installing p5.34-xml-parser doesn't help

Your log mentions a perl5.36 path, not a perl5.34 path. So in addition to the dependency being missing from whichever port is missing it, code needs to be added to force the use of perl5.34. Does installing p5.36-xml-parser help?

Replying to barracuda156:

Same error on 10.8.5:

Your log mentions perl5.34 paths. Does installing p5.34-xml-parser help?

Last edited 3 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:7 in reply to:  6 ; Changed 3 months ago by ShadSterling (Shad Sterling)

Replying to ryandesign:

Replying to ShadSterling:

I have meson up to date, so I think the problem is in pulseaudio

Being up to date isn't the issue. It's that one of these ports, whichever one is using XML::Parser, seems not to be declaring a dependency on it.

I thought being able to have meson up to date meant it isn't missing any of it's dependencies

Does installing p5.36-xml-parser help?

p5.36-xml-parser doesn't exist

pulseaudio doesn't have variants to pick dependency versions

installing *-xml-parser does not resolve the error

uninstalling *5.36* does resolve the error

so I guess it's something like pulseaudio can't be installed if you have a version of perl installed which is newer than the newest version of *-xml-parser you have installed

Last edited 3 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:8 in reply to:  7 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to ShadSterling:

I thought being able to have meson up to date meant it isn't missing any of it's dependencies

The port that is missing the dependency could be pulseaudio if it is something in pulseaudio's build process that is using XML::Parser, or it could be meson if pulseaudio is merely running a tool that is provided by meson and it is that meson tool that is using XML::Parser. Whoever updated pulseaudio last probably already had p5.34-xml-parser installed and so didn't notice the missing dependency in whichever port is missing it.

p5.36-xml-parser doesn't exist

Oh right, of course. There aren't any p5.36-* ports yet. That's #67830.

uninstalling *5.36* does resolve the error

so I guess it's something like pulseaudio can't be installed if you have a version of perl installed which is newer than the newest version of *-xml-parser you have installed

Almost. It's not about having other versions of perl installed. It's about having the perl5 port installed with a particular perl variant and not having that perl version's corresponding p5.*-xml-parser subport installed.

Looking at the build error more closely, I see it's happening when running the script man/xmltoman which is in the pulseaudio source code. That script begins with:

#!/usr/bin/perl -w
…
use XML::Parser;

So pulseaudio is the port that's missing the p5.*-xml-parser dependency and the code to arrange for the correct perl version to be used. In fact, the port used to have that, but it was removed with the most recent update in [a66e323ee48dcb954f60f89803885f3929a1f9c4/macports-ports]. So it needs to be put back again.

comment:9 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

In 82a71e3117a006be639b1c9c333f5557d6a92ce2/macports-ports (master):

pulseaudio: Use MacPorts perl and XML::Parser again

Closes: #69171

Partially reverts a66e323ee48dcb954f60f89803885f3929a1f9c4

Note: See TracTickets for help on using tickets.