Opened 10 years ago

Last modified 6 years ago

#26918 new defect

MacPorts-1.9.1 compiled to XFS NFS files system

Reported by: rletourneau@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 1.9.1
Keywords: Cc: ryandesign (Ryan Schmidt), james968
Port:

Description (last modified by jmroot (Joshua Root))

Hello,

I've been trying to install macports to /opt linked to a network file system. The file system is SGI's XFS. It is mounted via NFS. It compiles and installs with no mayjor errors. I run selfupdate, and then try to install my first package, but it always fails with Error: Target org.macports.patch returned: could not set flags for file

I've recompiled and installed many times with various configure options. I always get the same error. I created a compile and install script, to be run in the compile dir, with the following configure options ;


#!/bin/sh

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
MP_PREFIX=/opt/macports/snowleopard

./configure --prefix=$MP_PREFIX --with-tclpackage=$MP_PREFIX/Library/Tcl --with-applications-dir=$MP_PREFIX/Applications --with-install-user=root --with-install-group=wheel --with-shared-directory --with-frameworks-dir --with-universal-archs="I386 X86_64"

make && make install

Here is verbose output of installing first package ;

bash-3.2# ./port -v install py26-PyQt4 +universal
--->  Computing dependencies for py26-pyqt4................................................................................................................................................................................................................................
--->  Dependencies to be installed: py26-sip python26 bzip2 db46 gdbm gettext expat libiconv gperf ncurses ncursesw openssl zlib readline sqlite3 qt4-mac dbus autoconf help2man p5-locale-gettext perl5 perl5.8 m4 automake libtool pkgconfig jpeg libmng lcms tiff libpng qt4_select
--->  Fetching bzip2
--->  bzip2-1.0.6.tar.gz doesn't seem to exist in /opt/macports/snowleopard/var/macports/distfiles/bzip2
--->  Attempting to fetch bzip2-1.0.6.tar.gz from http://distfiles.macports.org/bzip2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  763k  100  763k    0     0   895k      0 --:--:-- --:--:-- --:--:--  925k
--->  Verifying checksum(s) for bzip2
--->  Checksumming bzip2-1.0.6.tar.gz
--->  Extracting bzip2
--->  Extracting bzip2-1.0.6.tar.gz
--->  Applying patches to bzip2
--->  Applying /Volumes/VFX/opt/macports/snowleopard/var/macports/sources/rsync.macports.org/release/ports/archivers/bzip2/files/patch-Makefile-man.diff
patching file Makefile
--->  Applying /Volumes/VFX/opt/macports/snowleopard/var/macports/sources/rsync.macports.org/release/ports/archivers/bzip2/files/patch-Makefile-links.diff
patching file Makefile
--->  Applying /Volumes/VFX/opt/macports/snowleopard/var/macports/sources/rsync.macports.org/release/ports/archivers/bzip2/files/patch-Makefile-dylib.diff
patching file Makefile
'''Error: Target org.macports.patch returned: could not set flags for file "/opt/macports/snowleopard/var/macports/build/_Volumes_VFX_opt_macports_snowleopard_var_macports_sources_rsync.macports.org_release_ports_archivers_bzip2/work/bzip2-1.0.6/Makefile": operation not supported'''
Warning: the following items did not execute (for bzip2): org.macports.activate org.macports.patch org.macports.configure org.macports.build org.macports.destroot org.macports.install
Log for bzip2 is at: /opt/macports/snowleopard/var/macports/logs/_Volumes_VFX_opt_macports_snowleopard_var_macports_sources_rsync.macports.org_release_ports_archivers_bzip2/main.log
Error: The following dependencies failed to build: py26-sip python26 bzip2 db46 gdbm gettext expat libiconv gperf ncurses ncursesw openssl zlib readline sqlite3 qt4-mac dbus autoconf help2man p5-locale-gettext perl5 perl5.8 m4 automake libtool pkgconfig jpeg libmng lcms tiff libpng qt4_select
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

We installed MacPorts-1.8.1, some time ago, for OS X Leopard to /opt/macports/leopard with the same compile options and it works well.

I have attached compile and install logs to this post.

Thanks,

Ryan Letourneau

Attachments (4)

macports_compile.log (23.7 KB) - added by rletourneau@… 10 years ago.
bzip2.log (7.0 KB) - added by rletourneau@… 10 years ago.
main.log (100.8 KB) - added by rletourneau@… 10 years ago.
main.2.log (6.3 KB) - added by james968 7 years ago.
Log of the install failure

Download all attachments as: .zip

Change History (15)

Changed 10 years ago by rletourneau@…

Attachment: macports_compile.log added

comment:1 Changed 10 years ago by jmroot (Joshua Root)

Component: portsbase
Description: modified (diff)

Please remember to preview and use WikiFormatting, and to select the correct component.

comment:2 Changed 10 years ago by jmroot (Joshua Root)

The log you've attached seems to just show you building base. Please attach the log from the bzip2 build.

Changed 10 years ago by rletourneau@…

Attachment: bzip2.log added

comment:3 Changed 10 years ago by rletourneau@…

o.k I've attached verbose debug log of bzip2

comment:4 Changed 10 years ago by rletourneau@…

Has anyone reviewed this ticket recently, and if so is there a solution to this issue

Thanks

Changed 10 years ago by rletourneau@…

Attachment: main.log added

comment:5 Changed 10 years ago by rletourneau@…

. . . attached is the main.log for macports after failing install of package

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

Cc: ryandesign@… added

The error in both logfiles is "could not set flags for file". I guess the network protocol implementation or the filesystem you're using don't support setting the flags MacPorts sets. Why do you want MacPorts on a network disk anyway?

comment:7 Changed 9 years ago by mathew.eis@…

I can confirm seeing the same issue. We see it regardless of whether the underlying nfs filesystem is xfs or ext3.

The culprit appears to be in proc fileAttrsAsRoot {file attributes} { in share/macports/Tcl/port1.0/portutil.tcl

Specifically, the line eval file attributes {$file} $attributes is trying to run (among other things), the following TCL command, which fails:

file attributes /path/to/foo -readonly 0

Arguments about whether running MacPorts on a network aside, would it be possible to subvert this command? It seems to me unnecessary to forcibly state that a file should NOT be read-only.

Last edited 7 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:8 Changed 9 years ago by mathew.eis@…

... also that the issue still exists in MacPorts 2.0.4

comment:9 Changed 7 years ago by james968

Cc: james@… added

Cc Me!

comment:10 Changed 7 years ago by james968

Hi,

I'm seeing this same issue on 2.1.3:

MacPorts 2.1.3
Entering interactive mode... ("help" for help, "quit" to quit)
[Users/james] > install apr
--->  Activating apr @1.4.6_1
Error: org.macports.activate for port apr returned: could not set flags for file "/opt/local/include/apr-1": operation not supported
Please see the log file for port apr for details:
    /opt/local/var/macports/logs/_net_nas_export_software_10.8_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_apr/apr/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port apr failed

Looking at the indicated log I see:

:debug:activate Error code: POSIX ENOTSUP {operation not supported}
:debug:activate Backtrace: could not set flags for file "/opt/local/include/apr-1": operation not supported
    while executing
"::file attributes $dstfile -group admin -owner root -permissions 040755 -readonly 0 -hidden 0"
    ("eval" body line 1)

I'm using autofs to mount the directory, so /opt/local is a symbolic link to the nfs share : /opt/local -> /net/nas/export/software/10.8/opt/local

Changed 7 years ago by james968

Attachment: main.2.log added

Log of the install failure

comment:11 Changed 6 years ago by jmroot (Joshua Root)

Probably has issues due to not having root privileges on the remote filesystem, so you probably need to configure for a non-root installation, i.e. set --with-install-user and --with-install-group to something other than root, and don’t use sudo when running port.

Note: See TracTickets for help on using tickets.