[MacPorts] #69245: p5.34-xml-parser: Expat must be installed prior to building XML::Parser and I can't find it

MacPorts noreply at macports.org
Fri Feb 9 15:43:38 UTC 2024


#69245: p5.34-xml-parser: Expat must be installed prior to building XML::Parser and
I can't find it
-------------------------------+-----------------------
  Reporter:  ballapete         |      Owner:  (none)
      Type:  defect            |     Status:  new
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:  2.9.0
Resolution:                    |   Keywords:  tiger ppc
      Port:  p5.34-xml-parser  |
-------------------------------+-----------------------

Comment (by ryandesign):

 Replying to [ticket:69245 ballapete]:
 > Invoking the `build command` on the `command line` I get:
 >
 > {{{
 > /opt/local/bin/perl5.34 Makefile.PL INSTALLDIRS=vendor
 CC="/opt/local/bin/gcc-apple-4.2" LD="/opt/local/bin/gcc-apple-4.2"
 EXPATLIBPATH=/opt/local/lib EXPATINCPATH=/opt/local/include
 > Use of uninitialized value $line in substitution (s///) at
 /opt/local/lib/perl5/vendor_perl/5.34/Text/ParseWords.pm line 21.
 > }}}

 Right, running a command yourself on the command line is not the same as
 MacPorts running it when you omit a lot of the things MacPorts did. In
 this case, the most relevant omission is that you did not set the `CC`
 environment variable which is what Makefile.PL is passing to ParseWords.
 Since that environment variable wasn't set, the value that ParseWords sees
 is uninitialized, and the rest of the script fails. (You are setting `CC`
 as a command line argument but that's not the same as an environment
 variable.)


 Replying to [comment:5 ballapete]:
 > So presumingly Tiger's `make 3.80` is a bit too old (gmake is 4.4.1). I
 tried to `port -vd upgrade p5.34-xml-parser MAKE=gmake` but this failed…

 Sure, that won't work. MacPorts doesn't automatically take arguments that
 you pass to the `port` command and pass them as arguments or environment
 variables to the build phase.


 Replying to [comment:6 ballapete]:
 > After some days I found that `port -vsd build p5.34-xml-parser
 build.cmd=gmake` would substitute `make` with `gmake` – and it worked:

 Yes, you can specify MacPorts Portfile options like `build.cmd` on the
 command line to override the defaults, for debugging purposes. But the
 problem here isn't that a Makefile was generated that is incompatible with
 your version of make. The problem is that no Makefile was generated at all
 due to the failure to find expat.


 This bug looks like #64543 again, which was fixed by
 [changeset:ed49a07e78f902c75c0a32da2de20a152eea4198/macports-ports using
 the compiler specified in the CC environment variable]. Previously it
 would have used whatever compiler perl had been built with, and the
 problem with that was that the compiler that had been used to build perl
 on, for example, Snow Leopard, was a newer MacPorts version of clang which
 was not necessarily installed anymore at the time that a perl module was
 being built.

 We really need to see what's happening in Makefile.PL as it runs, and
 since it doesn't generate a config.log for us, maybe we'll have to do
 ourselves. I added the p5-devel-dumptrace port which provides a module for
 printing information about each line of a perl script as it's executed.
 Wait at least an hour from now and then run:

 {{{
 sudo port clean p5.34-xml-parser
 sudo port sync
 sudo port install --unrequested p5.34-devel-dumptrace
 sudo port configure p5.34-xml-parser configure.pre_args='-d:DumpTrace
 Makefile.PL'
 }}}

 When this fails, please attach the main.log file so that we can inspect
 the output. There will be a lot of output so attaching the main.log is
 better than pasting its contents into a comment.

-- 
Ticket URL: <https://trac.macports.org/ticket/69245#comment:8>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list