Opened 12 years ago

Closed 11 years ago

Last modified 9 years ago

#24227 closed defect (fixed)

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

Reported by: anddam (Andrea D'Amore) Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: leopard Cc: mf2k (Frank Schima), brian@…, cooljeanius (Eric Gallager)
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 (1)

libzzip-mp-error.txt (230.7 KB) - added by anddam (Andrea D'Amore) 12 years ago.

Download all attachments as: .zip

Change History (15)

Changed 12 years ago by anddam (Andrea D'Amore)

Attachment: libzzip-mp-error.txt added

comment:1 Changed 12 years ago by anddam (Andrea D'Amore)

Cc: macsforever2000@… added

comment:2 Changed 12 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added
Summary: libzzip broken destrootlibzzip 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 12 years ago by ryandesign (Ryan Schmidt)

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 12 years ago by anddam (Andrea D'Amore)

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 12 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… removed
Keywords: leopard added; libzzip ppc removed
Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned
Summary: libzzip destroot: no files matched glob pattern "*.3"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 12 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: assignedclosed

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

comment:7 Changed 12 years ago by ryandesign (Ryan Schmidt)

I sent the developer an email.

comment:8 Changed 12 years ago by ryandesign (Ryan Schmidt)

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 11 years ago by brian@…

Resolution: fixed
Status: closedreopened

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 11 years ago by jmroot (Joshua Root)

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 11 years ago by ryandesign (Ryan Schmidt)

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 11 years ago by brian@…

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

comment:13 Changed 11 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: reopenedclosed

comment:14 Changed 9 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

Note: See TracTickets for help on using tickets.