Opened 13 years ago

Closed 12 years ago

#28965 closed defect (fixed)

libzzip: destroot fails when user's UID is large because pax/tar header field is too small

Reported by: brian@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), amintora@…, watsodw
Port: libzzip

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I get this error staging libzzip:

$ port install libzzip
--->  Computing dependencies for libzzip
--->  Fetching libzzip
--->  Verifying checksum(s) for libzzip
--->  Extracting libzzip
--->  Applying patches to libzzip
--->  Configuring libzzip
--->  Building libzzip
--->  Staging libzzip into destroot
Error: Target org.macports.destroot returned: no files matched glob pattern "*.3"

Attachments (3)

main.log (147.2 KB) - added by brian@… 13 years ago.
main.2.log (33.4 KB) - added by amintora@… 13 years ago.
from 'sudo port install libzzip'
main.3.log (63.6 KB) - added by amintora@… 13 years ago.
debug version…

Download all attachments as: .zip

Change History (22)

Changed 13 years ago by brian@…

Attachment: main.log added

comment:1 Changed 13 years ago by brian@…

Sorry, I forgot to add a few things:

  • libzzip 0.13.60
  • OS X 10.5.8
  • XCode 3.1

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

Description: modified (diff)

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

If you're really running Xcode 3.1, you should upgrade to Xcode 3.1.4.

comment:4 Changed 13 years ago by brian@…

XCode 3.1.2, actually. Unfortunately I don't have root access to the system and getting software upgraded is not at all easy, so I only ask when it is absolutely necessary. I'd be on 10.6 if I could.

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

I bet if you wait a couple months more you can be on 10.7 :)

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

So for some reason, pax was unable to pack up the manpages during the build phase, and therefore unable to unpack them again during the destroot phase, and therefore there were no manpages for the glob command to find.

Tell me about Second_HD. Is this a normal Mac-formated hard drive? Is it case sensitive, or is there anything else unusual about it?

Tell me about /bin/pax. Does it work when you use it manually from the terminal?

What user are you when you're running the port command, and what is that user's uid? What is the MacPorts user (what is macportsuser set to in macports.conf) and what is that user's uid?

comment:7 Changed 13 years ago by brian@…

I didn't have the heart to reply before, in a couple of month I might just be 2 revs behind :(

Let's see, Second_HD is formatted case sensitive, otherwise it isn't unusual. I am not running as a root user. One issue that occasionally causes problems are the group names, the default group comes from Active Directory and has a space in the name. I run macports as user blandy, and that is the ID defined in macports.conf. The group is "HOU1\domain users". UID and GID are 20746962 and 1582497824, respectively.

Ah, pax doesn't appear to work properly. A simple command like this:

pax -x tar -w test.txt > test.tar

Gives this error message:

pax: Ustar header field is too small for uid 20746962, using nobody
pax: Ustar header field is too small for xpdfrc

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

Cc: ryandesign@… added
Summary: libzzip: error installing on Intel Leopard systemlibzzip: destroot fails because pax doesn't work

Sorry I seem to have forgotten this ticket. Were you able to figure out how to fix your pax command, for example by restoring it from your backups or reinstalling it from your Mac OS X installation media?

comment:9 Changed 13 years ago by amintora@…

I'm seeing the same problem: Running OS-X: 10.6.8 , Xcode: 3.2.6 (1761)

dsur2-lt61:~ atora$ sudo port install libzzip
--->  Computing dependencies for libzzip
--->  Staging libzzip into destroot
Error: Target org.macports.destroot returned: no files matched glob pattern "*.3"
Log for libzzip is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>
dsur2-lt61:~ atora$ 
dsur2-lt61:~ atora$

tail of main.log:

:info:destroot xinstall: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/zziplib-0.13.60/docs/zzip-parse.htm -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/destroot/opt/local/share/doc/libzzip/html/zzip-parse.htm
:info:destroot xinstall: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/zziplib-0.13.60/docs/zzip-sdl-rwops.htm -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/destroot/opt/local/share/doc/libzzip/html/zzip-sdl-rwops.htm
:info:destroot xinstall: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/zziplib-0.13.60/docs/zzip-xor.htm -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/destroot/opt/local/share/doc/libzzip/html/zzip-xor.htm
:info:destroot xinstall: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/zziplib-0.13.60/docs/zzip-zip.htm -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/work/destroot/opt/local/share/doc/libzzip/html/zzip-zip.htm
:error:destroot Target org.macports.destroot returned: no files matched glob pattern "*.3"
:debug:destroot Backtrace: no files matched glob pattern "*.3"
    while executing
"$post $targetname"
:info:destroot Warning: the following items did not execute (for libzzip): org.macports.activate org.macports.destroot org.macports.install
:notice:destroot Log for libzzip is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_archivers_libzzip/libzzip/main.log

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

Cc: amintora@… added

The end of the main.log isn't so interesting. The entire main.log might be, to see if it's the same root cause as in this ticket (pax doesn't work). If it is, same advice to you as is already above in this ticket: fix your pax command.

comment:11 Changed 13 years ago by brian@…

I believe the issue is pax can't handle large UIDs, and if you are logged in via Active Directory, you get a very large UID. I looked into this a bit and it seemed like it might be possible to tell libzzip to use a different archiver? I believe its configure script prefers pax but can fallback to other utilities.

comment:12 in reply to:  11 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to brian@…:

it might be possible to tell libzzip to use a different archiver? I believe its configure script prefers pax but can fallback to other utilities.

That would be fine. If you can provide more info on how this might be accomplished perhaps we can change the port. I did not find a configure flag for this.

comment:13 Changed 13 years ago by brian@…

No, I don't think there was a configure script option. But it looked as if, and I didn't test this, that if pax were not found in the path that it would fall back to something else.

Changed 13 years ago by amintora@…

Attachment: main.2.log added

from 'sudo port install libzzip'

comment:14 in reply to:  11 Changed 13 years ago by amintora@…

Replying to brian@…:

I believe the issue is pax can't handle large UIDs, and if you are logged in via Active Directory, you get a very large UID...

Hmm... very interesting. libzzip compiles fine on my other mac os x (with same OS, XCode, port, etc.) and fails on the mac that I have on LDAP directory... my UID is long: uid=0123456789(username)

{I've changed the digits to 0...9 for security reasons}

comment:15 in reply to:  7 Changed 13 years ago by amintora@…

Replying to brian@…:

Ah, pax doesn't appear to work properly. A simple command like this:

pax -x tar -w test.txt > test.tar

Gives this error message:

pax: Ustar header field is too small for uid 20746962, using nobody
pax: Ustar header field is too small for xpdfrc

yep same issue here, assuming it means Tar header field for UID is too small for my UID (since I'm on LDAP):

ator-abc:~ atora$ 
ator-abc:~ atora$ echo 'asd;fkajsdf;lkajsflaksjfal;kjf;asljfadj' > test.txt
ator-abc:~ atora$ cat test.txt 
asd;fkajsdf;lkajsflaksjfal;kjf;asljfadj
ator-abc:~ atora$ pax -x tar -w test.txt > test.tar
pax: Tar header field is too small for test.txt
ator-abc:~ atora$ 

Changed 13 years ago by amintora@…

Attachment: main.3.log added

debug version...

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

Fine. So if someone can figure out how to tell libzzip not to use pax and to use something else, we'll modify the port to do that.

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

Summary: libzzip: destroot fails because pax doesn't worklibzzip: destroot fails when user's UID is large because pax/tar header field is too small

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

Cc: david.w.watson@… added

Has duplicate #31764.

comment:19 Changed 12 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.