New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #24227 (closed defect: fixed)

Opened 3 years ago

Last modified 3 months ago

libzzip destroot fails on Leopard: no files matched glob pattern "*.3"

Reported by: and.damore@… Owned by: ryandesign@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: leopard Cc: macsforever2000@…, brian@…, egall@…
Port: libzzip

Description

After upgrade to 0.13.58 in r64707 as per #23553 libzzip doesn't complete the destroot phase anymore.

I'm attacching full debug output.

Attachments

libzzip-mp-error.txt (230.7 KB) - added by and.damore@… 3 years ago.

Change History

Changed 3 years ago by and.damore@…

comment:1 Changed 3 years ago by and.damore@…

  • Cc macsforever2000@… added

comment:2 Changed 3 years ago by ryandesign@…

  • Cc ryandesign@… added
  • Summary changed from libzzip broken destroot to libzzip destroot: no files matched glob pattern "*.3"

It works fine for me on Snow Leopard, but I see the same failure on a PowerPC machine with Leopard, like yours. I'll see if I can find out what's wrong.

comment:3 Changed 3 years ago by ryandesign@…

The relevant part of the log seems to be:

/bin/sh ../../uses/mkinstalldirs /opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_trunk_dports_archivers_libzzip/work/destroot/opt/local/share/man/man3
P=`pwd` ; test -s manpages.tar || exit 1 \
	; cd /opt/local/var/macports/build/_opt_local_var_macports_sources_svn.macports.org_trunk_dports_archivers_libzzip/work/destroot/opt/local/share/man && '/bin/pax' -r -O -f $P/manpages.tar \
        ; true
/bin/pax: illegal option -- O
usage: pax [-cdnvzO] [-E limit] [-f archive] [-s replstr] ... [-U user] ...
           [-G group] ... [-T [from_date][,to_date]] ... [pattern ...]
       pax -r [-cdiknuvzDOYZ] [-E limit] [-f archive] [-o options] ... 
           [-p string] ... [-s replstr] ... [-U user] ... [-G group] ...
	      [-T [from_date][,to_date]] ...  [pattern ...]
       pax -w [-dituvzHLOPX] [-b blocksize] [ [-a] [-f archive] ] [-x format] 
           [-B bytes] [-s replstr] ... [-o options] ... [-U user] ...
           [-G group] ... [-T [from_date][,to_date][/[c][m]]] ... [file ...]
       pax -r -w [-diklntuvDHLOPXYZ] [-p string] ... [-s replstr] ...
           [-U user] ... [-G group] ... [-T [from_date][,to_date][/[c][m]]] ... 
           [file ...] directory

I'm unclear why pax claims O is an illegal option; the usage message printed right below it clearly shows it to be a valid option, as does its manpage.

comment:4 Changed 3 years ago by and.damore@…

My man page doesn't mention -O as a valid option for -r mode, actually -O doesn't exist at all in man page, but the program output is the very same that you pasted.

The reference for Leopard's paxis here, package file_cmds and you can browse its source tree too.

I will check SnowLeopard's man page to check what -O is supposed to do, I wasn't able to find it in FreeBSD's either.

comment:5 Changed 3 years ago by ryandesign@…

  • Keywords leopard added; libzzip ppc removed
  • Owner changed from macports-tickets@… to ryandesign@…
  • Status changed from new to assigned
  • Cc ryandesign@… removed
  • Summary changed from libzzip destroot: no files matched glob pattern "*.3" to libzzip destroot fails on Leopard: no files matched glob pattern "*.3"

After some more testing, I see that this fails only on Leopard; it works fine on Tiger and Snow Leopard.

libzzip determines whether or not to use the "-O" flag to "pax" by grepping the output of "pax --help" for the regexp "pax.*-[[a-zA-Z]]*O".

On Tiger the output is as follows:

$ pax --help
pax: illegal option -- -
usage: pax [-cdnv] [-E limit] [-f archive] [-s replstr] ... [-U user] ...
           [-G group] ... [-T [from_date][,to_date]] ... [pattern ...]
       pax -r [-cdiknuvDYZ] [-E limit] [-f archive] [-o options] ...
           [-p string] ... [-s replstr] ... [-U user] ... [-G group] ...
              [-T [from_date][,to_date]] ...  [pattern ...]
       pax -w [-dituvHLPX] [-b blocksize] [ [-a] [-f archive] ] [-x format]
           [-B bytes] [-s replstr] ... [-o options] ... [-U user] ...
           [-G group] ... [-T [from_date][,to_date][/[c][m]]] ... [file ...]
       pax -r -w [-diklntuvDHLPXYZ] [-p string] ... [-s replstr] ...
           [-U user] ... [-G group] ... [-T [from_date][,to_date][/[c][m]]] ...
           [file ...] directory

libzzip correctly sees that the "-O" option is not listed and does not try to use it. This works fine.

On Leopard the output is as follows:

$ pax --help
pax: illegal option -- -
usage: pax [-cdnvzO] [-E limit] [-f archive] [-s replstr] ... [-U user] ...
           [-G group] ... [-T [from_date][,to_date]] ... [pattern ...]
       pax -r [-cdiknuvzDOYZ] [-E limit] [-f archive] [-o options] ... 
           [-p string] ... [-s replstr] ... [-U user] ... [-G group] ...
	      [-T [from_date][,to_date]] ...  [pattern ...]
       pax -w [-dituvzHLOPX] [-b blocksize] [ [-a] [-f archive] ] [-x format] 
           [-B bytes] [-s replstr] ... [-o options] ... [-U user] ...
           [-G group] ... [-T [from_date][,to_date][/[c][m]]] ... [file ...]
       pax -r -w [-diklntuvDHLOPXYZ] [-p string] ... [-s replstr] ...
           [-U user] ... [-G group] ... [-T [from_date][,to_date][/[c][m]]] ... 
           [file ...] directory

libzzip correctly sees that the "-O" option is listed and tries to use it, but although it has advertised that it supports the "-O" option, "pax" on Leopard evidently does not actually support it. Therefore this fails. There is some confusion here, in that the usage message printed by "pax --help" differs from the usage message shown in "man pax" -- the latter does not show the "-O" option, but then again the manpage does describe the "-O" option in detail:

     -O      Force the archive to be one volume.  If a volume ends prematurely, pax will
             not prompt for a new volume.  This option can be useful for automated tasks
             where error recovery cannot be performed by a human.

On Snow Leopard the output is as follows:

$ pax --help
pax: unrecognized option `--help'
usage: pax [-0cdjnOvz] [-E limit] [-f archive] [-G group] [-s replstr]
           [-T range] [-U user] [--insecure] [pattern ...]
       pax -r [-0cDdijknOuvYZz] [-E limit] [-f archive] [-G group] [-o options]
           [-p string] [-s replstr] [-T range] [-U user] [--insecure] [pattern ...]
       pax -w [-0adHijLOPtuvXz] [-B bytes] [-b blocksize] [-f archive]
           [-G group] [-o options] [-s replstr] [-T range] [-U user]
           [-x format] [--insecure] [file ...]
       pax -rw [-0DdHikLlnOPtuvXYZ] [-G group] [-p string] [-s replstr]
           [-T range] [-U user] [--insecure] [file ...] directory

libzzip incorrectly decides that the "-O" option is not listed (because the list of flags begins with a number, zero) and therefore does not try to use it. This works fine. (It would also work fine if libzzip would use the "-O" option because the "-O" option does work with Snow Leopard's "pax".)

I believe the strategy should be to introduce a patch which removes the checks for the "-O" flag from the libzzip configure script, on Leopard only.

comment:6 Changed 3 years ago by ryandesign@…

  • Status changed from assigned to closed
  • Resolution set to fixed

Committed in r65627. We still need to inform the developer about these problems.

comment:7 Changed 3 years ago by ryandesign@…

I sent the developer an email.

comment:8 Changed 3 years ago by ryandesign@…

The developer responded by releasing zziplib 0.13.59 which fixes the problem by testing whether "pax -O" actually works, rather than inferring this from "pax --help". I updated the port to this version in r65648.

comment:9 Changed 2 years ago by brian@…

  • Status changed from closed to reopened
  • Resolution fixed deleted

Hi, I'm seeing this same error again trying to install libzzip 0.13.60 on Leopard. I'm not sure if it's the same root cause, though. Im hoping someone can take a look. Thanks!

comment:10 Changed 2 years ago by jmr@…

The current version built OK for me, FWIW:

% port -v installed libzzip
The following ports are currently installed:
  libzzip @0.13.60_0 (active) platform='darwin 9' archs='ppc'

comment:11 Changed 2 years ago by ryandesign@…

  • Cc brian@… added

This ticket was resolved a year ago... it really would have been better to file a new ticket at this point. If you want help with this, you should provide the main.log so we can see what's going wrong.

comment:12 Changed 2 years ago by brian@…

Shoot, sorry! I'll open a new ticket.

comment:13 Changed 2 years ago by ryandesign@…

  • Status changed from reopened to closed
  • Resolution set to fixed

comment:14 Changed 3 months ago by egall@…

  • Cc egall@… added

Cc Me!

Note: See TracTickets for help on using tickets.