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)
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: | High → Normal |
Status: | new → assigned |
Changed 13 years ago by jeremy@…
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: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)
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: | assigned → closed |
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?
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 ?