| Summary: | Bootstrapping on Mac OS X fails when compiling python | ||
|---|---|---|---|
| Product: | Gentoo/Alt | Reporter: | Volker Wegert <gentoo> |
| Component: | Prefix Support | Assignee: | Gentoo Prefix <prefix> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | m.van.kesteren, naota |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | x86 | ||
| OS: | OS X | ||
| URL: | http://forums.gentoo.org/viewtopic-t-902252.html | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
|
Description
Volker Wegert
2011-11-17 19:20:38 UTC
ld: can't open output file for writing: /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/mwegert/Library/Gentoo//usr/bin/python2.7, errno=2 for architecture i386 errno 2 = "No such file or directory" Just to check, do you have MAKEOPTS set? (your emerge --info says no) Can you check up till what directory /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/mwegert/Library/Gentoo//usr/bin exists? (In reply to comment #1) > ld: can't open output file for writing: > /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/mwegert/Library/Gentoo//usr/bin/python2.7, > errno=2 for architecture i386 > > errno 2 = "No such file or directory" > > Just to check, do you have MAKEOPTS set? (your emerge --info says no) No, I don't. > Can you check up till what directory > /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/mwegert/Library/Gentoo//usr/bin > exists? /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/mwegert/Library/Gentoo/usr/bin/ exists - but there is a double slash in the log output that's probably a bad sign...= This feels like a parallel make issue, but the info here suggests it cannot be that. On OSX, the double slash shouldn't be a problem. Just one question that may or may not be relevant here, but is your prefix on a case sensitive filesystem? I'm having the exact same problem. Only on different architecture. (x86_64)
build log (bottom part):
---------
(...)
make[1]: Leaving directory `/Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/work/Python-2.7.2/Mac'
make DESTDIR=/Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/ maninstall
/Users/micha/Gentoo/usr/bin/install -c -m 644 ./Misc/python.man \
/Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image//Users/micha/Gentoo/usr/lib/Python.framework/Versions/2.7/share/man/man1/python2.7.1
ld: can't open output file for writing: /Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/micha/Gentoo//usr/bin/python2.7, errno=2 for architecture x86_64
collect2: ld returned 1 exit status
[31;01m*[0m ERROR: dev-lang/python-2.7.2 failed (install phase):
[31;01m*[0m (no error message)
[31;01m*[0m
[31;01m*[0m Call stack:
[31;01m*[0m ebuild.sh, line 98: Called src_install
[31;01m*[0m environment, line 5869: Called die
[31;01m*[0m The specific snippet of code:
[31;01m*[0m $(tc-getCC) "${ED}"/usr/$(get_libdir)/libpython${SLOT}.dylib -o "${ED}"/usr/bin/python${SLOT} Modules/python.o || die;
[31;01m*[0m
[31;01m*[0m If you need support, post the output of 'emerge --info =dev-lang/python-2.7.2',
[31;01m*[0m the complete build log and the output of 'emerge -pqv =dev-lang/python-2.7.2'.
[31;01m*[0m The complete build log is located at '/Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/temp/build.log'.
[31;01m*[0m The ebuild environment file is located at '/Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/temp/environment'.
[31;01m*[0m S: '/Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/work/Python-2.7.2'
------------
Error (from build.log):
ld: can't open output file for writing: /Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/micha/Gentoo//usr/bin/python2.7, errno=2 for architecture x86_64
The encapsulating directory exists:
------------
Galileo:~ micha$ ls -lad /Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/micha/Gentoo//usr/bin
drwxr-xr-x 15 micha staff 510 Nov 22 17:00 /Users/micha/Gentoo/var/tmp/portage/dev-lang/python-2.7.2/image/Users/micha/Gentoo//usr/bin
------------
MAKEOPTS
------------
Galileo:~ micha$ echo $MAKEOPTS
------------
(makeopts is empty/non-existant)
emerge -info
------------
Galileo:~ micha$ emerge --info =dev-lang/python-2.7.2
Portage 2.2.01.19572-prefix (prefix/darwin/macos/10.5/x64, gcc-4.2.1, unavailable, 10.8.0 i386)
=================================================================
System Settings
=================================================================
System uname: Darwin-10.8.0-i386-64bit
Timestamp of tree: Thu, 10 Nov 2011 22:40:02 +0000
distcc 3.1-toolwhip.1 i386-apple-darwin10.0 [disabled]
app-shells/bash: 4.2_p10
dev-util/pkgconfig: 0.26
sys-devel/autoconf: 2.68
sys-devel/automake: 1.11.1
sys-devel/gcc-config: 1.4.1-r00.2
sys-devel/libtool: 2.4-r4
sys-devel/make: 3.82
Repositories: gentoo_prefix
Installed sets:
ACCEPT_KEYWORDS="~x64-macos"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-apple-darwin9"
CFLAGS="-march=nocona"
CHOST="x86_64-apple-darwin9"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo"
CPPFLAGS="-I/Users/micha/Gentoo/usr/include"
CXXFLAGS=""
DISTDIR="/Users/micha/Gentoo/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles nostrip parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-search_paths_first -L/Users/micha/Gentoo/usr/lib -L/Users/micha/Gentoo/lib"
PKGDIR="/Users/micha/Gentoo/usr/portage/packages"
PORTAGE_CONFIGROOT="/Users/micha/Gentoo/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/Users/micha/Gentoo/var/tmp"
PORTDIR="/Users/micha/Gentoo/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix"
USE="aqua bootstrap coreaudio cracklib cxx modules ncurses objc objc++ prefix readline x64-macos zlib" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="Darwin" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="Darwin" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
--------------
On my Mac the filesystem is a strange beast. It looks like it's case sensitive, but I'm not sure. For example, look at this:
-----------
Galileo:temp micha$ touch file
Galileo:temp micha$ touch File
Galileo:temp micha$ touch FILE
Galileo:temp micha$ ls -la
total 0
drwxr-xr-x 3 micha staff 102 Nov 22 17:55 .
drwxr-xr-x 62 micha staff 2108 Nov 22 17:53 ..
-rw-r--r-- 1 micha staff 0 Nov 22 17:55 file
Galileo:temp micha$ ls -l File
-rw-r--r-- 1 micha staff 0 Nov 22 17:55 File
Galileo:temp micha$ ls -l FILE
-rw-r--r-- 1 micha staff 0 Nov 22 17:55 FILE
Galileo:temp micha$ ls -l file
-rw-r--r-- 1 micha staff 0 Nov 22 17:55 file
-----------
So i'm guessing my prefix is NOT on a case-sensitive filesystem.
hmmm, this is very odd. I'll have to rebootstrap myself to investigate this problem confirming per comment #4 From http://forums.gentoo.org/viewtopic-p-6883872.html: "...it looks like a workaround which i tried and successfully emerged python and then portage: env USE="-aqua" FEATURES="-collision-protect" emerge --oneshot portage I can't confirm this isn't causing side-effects elsewhere but at least i could bootstrap and emerge my Prefix system in Mac OS X Lion." I can confirm that this lets me emerge portage, but in a later step, when emerge'ing -e system, I get a similar error when merging dev-libs/mpfr-3.1.0: make[2]: Leaving directory `/Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/work/mpfr-3.1.0' make[1]: Leaving directory `/Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/work/mpfr-3.1.0' /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/temp/environment: line 2615: pushd: /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/image/Users/mwegert/Library/Gentoo//usr/share/doc/mpfr-3.1.0: No such file or directory !!! dohtml: *.html does not exist dohtml failed * ERROR: dev-libs/mpfr-3.1.0 failed (install phase): * (no error message) * * Call stack: * ebuild.sh, line 98: Called call-ebuildshell 'src_install' * environment, line 395: Called src_install * environment, line 2616: Called die * The specific snippet of code: * dohtml *.html && rm COPYING* *.html || die; Note again the double slash in the error message: "/Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/image/Users/mwegert/Library/Gentoo//usr/share/doc/mpfr-3.1.0" /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/image/Users/mwegert/Library/Gentoo/usr/share/doc/mpfr-3.1.0 (single slash) does not exist, but /Users/mwegert/Library/Gentoo/var/tmp/portage/dev-libs/mpfr-3.1.0/image/Users/mwegert/Library/Gentoo/usr/share/doc/mpfr/ does. (In reply to comment #7) > From http://forums.gentoo.org/viewtopic-p-6883872.html: > > "...it looks like a workaround which i tried and successfully emerged python > and then portage: > env USE="-aqua" FEATURES="-collision-protect" emerge --oneshot portage > I can't confirm this isn't causing side-effects elsewhere but at least i could > bootstrap and emerge my Prefix system in Mac OS X Lion." > > I can confirm that this lets me emerge portage, but in a later step, when > emerge'ing -e system, I get a similar error when merging dev-libs/mpfr-3.1.0: Thanks, that's bug #391799. this one puzzles me, it's reproducable on any mac, it seems (Lion here) Ok, problem found. No easy workaround possible.
You can apply this change to usr/portage/dev-lang/python/python-2.7.2.ebuild:
Index: python-2.7.2.ebuild
===================================================================
--- python-2.7.2.ebuild (revision 60212)
+++ python-2.7.2.ebuild (revision 60213)
@@ -385,6 +385,7 @@
# rebuild python executable to be the non-pythonw (python wrapper)
# version so we don't get framework crap
+ rm "${ED}"/usr/bin/python${SLOT} # drop existing symlink, bug #390861
$(tc-getCC) "${ED}"/usr/$(get_libdir)/libpython${SLOT}.dylib \
-o "${ED}"/usr/bin/python${SLOT} \
Modules/python.o || die
Then run `ebuild python-2.7.2.ebuild digest`.
Next, re-execute the env FEATURES=... thing.
I will bump the bootstrap snapshot (if its state allows) tomorrow.
alternatively, you might try an emerge --sync to get the change, now the fix is on the mirrors. (In reply to comment #11) > alternatively, you might try an emerge --sync to get the change, now the fix is > on the mirrors. Please don't. A --sync before the guide tells you too is a sure way to get in trouble. (I help people that do this 2-3 times per month) Snapshot bumped, verified yesterday. Thanks for the input, all. |