Opened 13 years ago

Closed 13 years ago

#31233 closed defect (worksforme)

Unable to install fuse4x-kext on Lion

Reported by: jeremy@… Owned by: drkp (Dan Ports)
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: Cc: anatol (Anatol Pomozov)
Port: fuse4x-kext

Description

It fails to install:

--->  Fetching archive for fuse4x-kext
--->  Attempting to fetch fuse4x-kext-0.8.11_0+universal.darwin_11.i386-x86_64.tgz from http://packages.macports.org/fuse4x-kext
--->  Fetching fuse4x-kext
--->  Attempting to fetch fuse4x-kext-0.8.11.tar.gz from http://distfiles.macports.org/fuse4x-kext
--->  Verifying checksum(s) for fuse4x-kext
--->  Extracting fuse4x-kext
--->  Applying patches to fuse4x-kext
--->  Configuring fuse4x-kext
--->  Building fuse4x-kext
--->  Staging fuse4x-kext into destroot
Error: Target org.macports.destroot returned: error copying "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_fuse_fuse4x-kext/fuse4x-kext/work/fuse4x-kext-0.8.11/build/Release/fuse4x.kext": no such file or directory
Log for fuse4x-kext is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_fuse_fuse4x-kext/fuse4x-kext/main.log
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

When I look in the build directory, I see that the files are directly in "build" and not in "build/Release" as the script expects:

jerbro:~/ jeremy$ ls -l /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_fuse_fuse4x-kext/fuse4x-kext/work/fuse4x-kext-0.8.11/build
total 56
drwxr-xr-x  3 root  admin    102 Sep 12 14:37 fuse4x.kext
drwxr-xr-x  3 root  admin    102 Sep 12 14:37 fuse4x.kext.dSYM
drwxr-xr-x@ 4 root  admin    136 Sep 12 14:37 kext.build
-rwxr-xr-x  1 root  admin  26244 Sep 12 14:37 load_fuse4x
drwxr-xr-x  3 root  admin    102 Sep 12 14:37 load_fuse4x.dSYM

Attachments (1)

main.log (146.8 KB) - added by jeremy@… 13 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 13 years ago by drkp (Dan Ports)

Milestone: MacPorts 2.0.4
Owner: changed from macports-tickets@… to dports@…
Priority: HighNormal
Status: newassigned

It works fine for me on Lion. What version of Xcode are you using?

Can you provide the debug log in /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_fuse_fuse4x-kext/fuse4x-kext/main.log ?

Changed 13 years ago by jeremy@…

Attachment: main.log added

comment:2 Changed 13 years ago by jeremy@…

Xcode 4.2. Log attached.

comment:3 Changed 13 years ago by anatol (Anatol Pomozov)

Cc: anatol.pomozov@… added

Cc Me!

comment:4 Changed 13 years ago by anatol (Anatol Pomozov)

Just installed xcode 4.2

$ xcodebuild -version
Xcode 4.2
Build version 4C177

on my macosx 10.6 and everything works fine.

Jeremy, what if you build https://github.com/fuse4x/kext/ do you still see binaries in "build/"? What about other projects (non fuse4x) does xcode also build them into "build/" folder?

Could it be some kind of xcode preference? Maybe CONFIGURATION_BUILD_DIR http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html#//apple_ref/doc/uid/TP40003931-CH3-SW105

comment:5 Changed 13 years ago by anatol (Anatol Pomozov)

Jeremy,

Do you still see this issue?

comment:6 Changed 13 years ago by jeremy@…

I still see the issue.

If I check out the project directly and build it, then the kext goes into:

build/Debug/fuse4x.kext

I have not seen this with other projects.

comment:7 Changed 13 years ago by anatol (Anatol Pomozov)

The ./build.rb script in fuse4x sets following XCode settings: "SYMROOT=build SHARED_PRECOMPS_DIR=build" https://github.com/fuse4x/kext/blob/master/build.rb#L26 they force to use ./build/$CONFIGURATION as output folder.

The logs above make me think that macports needs it as well. Dan, most likely adding

xcode.build.settings SYMROOT=build SHARED_PRECOMPS_DIR=build

to Portfile fix the issue.

comment:8 Changed 13 years ago by anatol (Anatol Pomozov)

Jeremy, could you please "sudo port edit fuse4x-kext", then add line

xcode.build.settings SYMROOT=build SHARED_PRECOMPS_DIR=build

and see if it solves your problem?

comment:9 Changed 13 years ago by jeremy@…

That did not work...it built the kext at "build/fuse4x.kext", but the scripts expected it at "build/Release/fuse4x.kext". This did work however:

xcode.build.settings SYMROOT=build/Release SHARED_PRECOMPS_DIR=build/Release

comment:10 Changed 13 years ago by anatol (Anatol Pomozov)

Looking at http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

I see that $CONFIGURATION_BUILD_DIR options defines where the final build files are located. By default it is $SYMROOT/$CONFIGURATION, but it looks like this option is redefined in your environment.

Jeremy, what do you see if you set in the Portfile

xcode.build.settings CONFIGURATION_BUILD_DIR=build/Release

PS I should look at the fuse4x build and avoid using hardcoded path, I think fuse4x build system should use "xcodebuild install" instead.

comment:11 Changed 13 years ago by anatol (Anatol Pomozov)

Wait, earlier you said that "./build.rb" from sources works fine. That script sets "SYMROOT=build SHARED_PRECOMPS_DIR=build", but then you said that setting the same variables in Portfile does not help. I am puzzled...

Looking at *.log file you uploaded some time ago I see that macports sets OBJROOT/SYMROOT to "build/" automatically...

comment:12 Changed 13 years ago by drkp (Dan Ports)

Resolution: worksforme
Status: assignedclosed

I haven't been able to reproduce this on any of the xcode versions I've tried, so perhaps it's something specific to your configuration?

Note: See TracTickets for help on using tickets.