Opened 9 years ago

Closed 9 years ago

#30373 closed defect (fixed)

archive installation fails on case-insensitive filesystems

Reported by: ryan@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 2.0.1
Component: base Version: 2.0.0
Keywords: Cc: landonf (Landon Fuller), post@…, marc.schlaich@…, drkp (Dan Ports), jmroot (Joshua Root), wsiegrist@…, mww@…, ryandesign (Ryan Schmidt), fracai
Port:

Description (last modified by ryandesign (Ryan Schmidt))

I'm trying out unprivileged port installation onto an NFS volume. Some of the ports work fine, and others fail during activation with an error similar to:

Error: Target org.macports.activate returned: could not read "/tmp/mpextractRaNdMsTr/my/nfs/vol/share/some/file": no such file or directory

The random string after mpextract changes every time I invoke port. I was able to install (with activation) expat, gperf, and zlib. openssl reports:

Error: Target org.macports.activate returned: could not read "/tmp/mpextractbwThfU1Z/my/nfs/vol/share/man/man3/bn_print.3ssl.gz": no such file or directory

The error referenced a log file which reported:

:error:activate Target org.macports.activate returned: could not read "/tmp/mpex
tractbwThfU1Z/my/nfs/dir/share/man/man3/bn_print.3ssl.gz": no 
such file or directory
:debug:activate Backtrace: could not read "/tmp/mpextractbwThfU1Z/my/nfs/dir/share/man/man3/bn_print.3ssl.gz": no such file or directory

When the port command was running in one shell, I ran in another:

# find /tmp/mp* -name bn_print.3ssl.gz -ls
49783049        8 lrwxrwxrwx    1 scf      wheel          19 Jul 25 14:37 /tmp/mpextractZPRfhjbH/my/nfs/dir/share/man/man3/bn_print.3ssl.gz -> bn_internal.3ssl.gz

I repeated the search for bn_internal and, while the activation was underway in one shell, on some invocations it was there and on some it was not.

# find /tmp/mp* -name bn_internal.3ssl.gz -ls
# find /tmp/mp* -name bn_internal.3ssl.gz -ls
49786216       16 -r--r--r--    1 scf      wheel        4626 Jul 25 13:52 /tmp/mpextractZWZZGmqK/my/nfs/dir/share/man/man3/bn_internal.3ssl.gz
# find /tmp/mp* -name bn_internal.3ssl.gz -ls
# find /tmp/mp* -name bn_internal.3ssl.gz -ls
# find /tmp/mp* -name bn_internal.3ssl.gz -ls

ncurses had similar trouble.

Change History (24)

comment:1 in reply to:  description Changed 9 years ago by ryandesign (Ryan Schmidt)

Component: portsbase
Description: modified (diff)
Resolution: wontfix
Status: newclosed

Replying to ryan@…:

I'm trying out unprivileged port installation onto an NFS volume.

NFS volume? Completely unsupported. Try again installing onto a local disk.

comment:2 Changed 9 years ago by landonf (Landon Fuller)

Resolution: wontfix
Status: closedreopened

I have a user report of this occurring without NFS. The user does have multiple volumes, but their home directory is on the boot volume.

comment:3 Changed 9 years ago by jsg8pitt@…

Yup, for instance, I'm getting:

Error: Target org.macports.activate returned: could not read "/tmp/mpextractvHQPLGee/opt/local/share/terminfo/e/eterm": no such file or directory
Log for ncurses is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_ncurses/ncurses/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

comment:4 Changed 9 years ago by jmroot (Joshua Root)

That's an entirely different problem with ncurses, and is fixed now.

comment:5 Changed 9 years ago by jmroot (Joshua Root)

Or maybe it's not entirely different; it could be that the volumes containing $prefix and /tmp have different case-sensitivity.

comment:6 Changed 9 years ago by landonf (Landon Fuller)

jmr:

Either way, it's fixed now? The report I got was also related to ncurses.

comment:7 Changed 9 years ago by landonf (Landon Fuller)

Cc: landonf@… added

Cc Me!

comment:8 Changed 9 years ago by post@…

I have the same problem. Running:

sudo port install openssl +universal

Gives me the following error:

--->  Computing dependencies for openssl
--->  Activating openssl @1.0.0d_0+universal
Error: Target org.macports.activate returned: could not read "/tmp/mpextract463hbiea/opt/local/share/man/man3/bn_print.3ssl.gz": no such file or directory
Log for openssl is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_openssl/openssl/main.log
Error: Status 1 encountered during processing.

This is annoying since it prevents upgrading my other outdated packages (sudo port upgrade outdated).

comment:9 Changed 9 years ago by jmann99999@…

I am having the same problem when installing the ImageMagick port on a clean install of install Snow Leopard (with xcode and x11 installed):

Once it gets to installing Open SSL it fails:

Computing dependencies for ImageMagick
--->  Dependencies to be installed: ghostscript xorg-libXext xorg-libX11 xorg-libxcb python27 openssl python_select readline sqlite3 python27 xorg-libpthread-stubs xorg-xcb-proto libxml2 libxml2 xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-libXt xorg-libsm xorg-libice lcms liblzma p7zip urw-fonts
--->  Activating openssl @1.0.0d_0
Error: Target org.macports.activate returned: could not read "/tmp/mpextractxHe5reuh/opt/local/share/man/man3/bn_print.3ssl.gz": no such file or directory
Error: Failed to install openssl
Log for openssl is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_openssl/openssl/main.log
Error: The following dependencies were not installed: ghostscript xorg-libXext xorg-libX11 xorg-libxcb python27 openssl python_select readline sqlite3 python27 xorg-libpthread-stubs xorg-xcb-proto libxml2 libxml2 xorg-util-macros xorg-xcmiscproto xorg-xextproto xorg-xf86bigfontproto xorg-xtrans xorg-libXt xorg-libsm xorg-libice lcms liblzma p7zip urw-fonts
Error: Status 1 encountered during processing.

comment:10 Changed 9 years ago by post@…

Cc: post@… added

Cc Me!

comment:11 Changed 9 years ago by marc.schlaich@…

Cc: marc.schlaich@… added

Cc Me!

comment:12 in reply to:  5 ; Changed 9 years ago by ryan@…

Replying to jmr@…:

Or maybe it's not entirely different; it could be that the volumes containing $prefix and /tmp have different case-sensitivity.

In my case, the filesystems for $prefix and /tmp are both case-sensitive.

comment:13 in reply to:  12 Changed 9 years ago by marc.schlaich@…

Replying to ryan@…:

Replying to jmr@…:

Or maybe it's not entirely different; it could be that the volumes containing $prefix and /tmp have different case-sensitivity.

In my case, the filesystems for $prefix and /tmp are both case-sensitive.

In my case it is the same filesystem => same error.

comment:14 Changed 9 years ago by tamyrvoll@…

I had the same problem with a case-insensitive boot drive and a case-sensitive drive for Macport.

After reformatting the second drive as case-insensitive as well, the problem disappeared.

comment:15 Changed 9 years ago by drkp (Dan Ports)

Cc: dports@… added

I'm seeing the same with openssl and bn_print.3ssl.gz, and I have only one (case-insensitive) filesystem.

comment:16 Changed 9 years ago by marc.schlaich@…

Activating openssl @1.0.0d_0 is successful with 1.9.2! Seems a problem with the base system of MacPorts.

comment:17 Changed 9 years ago by neverpanic (Clemens Lang)

From some debugging on #macports is seems this might be related to the package being downloaded from packages.macports.org. Try port -s install $your_port.

comment:18 Changed 9 years ago by drkp (Dan Ports)

Cc: jmr@… wsiegrist@… added
Summary: Activating ports, /tmp/mpextractarchive installation fails on case-insensitive filesystems

OK, it looks like what's going on here is that the buildbot is running on a case-sensitive filesystem (right?), so it's producing an openssl archive that contains both BN_print.3ssl.gz and bn_print.3ssl.gz, and lists both in the +CONTENTS. When it gets untarred on a case-insensitive filesystem, only one of those files exists. But they're both listed in +CONTENTS, so when it comes time to activate the second one it won't exist.

This can probably also be considered a bug in the openssl port (which manpage does it install on a case-insensitive FS, anyway? Looks like bn_print.3ssl...), but even so the archive installation shouldn't fail this way on a case-insensitive FS. I'm sure openssl and ncurses aren't the only ports with this issue. At the least, a more informative error message would help.

comment:19 Changed 9 years ago by drkp (Dan Ports)

Cc: mww@… added

After some more people on IRC hit this one while trying to install openssl, I committed a hack to the openssl portfile to disable archive fetching for now (r81559)

comment:20 Changed 9 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added

comment:21 Changed 9 years ago by fracai

Cc: arno+macports@… added

Cc Me!

comment:22 Changed 9 years ago by jmroot (Joshua Root)

Milestone: MacPorts 2.0.1
Resolution: fixed
Status: reopenedclosed

comment:23 Changed 9 years ago by ryan@…

Resolution: fixed
Status: closedreopened

After a selfupdate, I'm still seeing the same problem. I'm building from source, installing from a case-sensitive filesystem to a case-sensitive filesystem (as in original report).

comment:24 Changed 9 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: reopenedclosed

Unfortunately this ticket appears to have become muddled and is now about two different things. One was definitely fixed in 2.0.1, so we'll retcon this ticket to have been about that and leave it closed. Please open a new ticket for the problem you are now seeing (though note that having the macports prefix on an NFS volume is still unsupported.)

Note: See TracTickets for help on using tickets.