Today I was building the opensprints-core gem. The Rakefile depends on Jeweler which depends on the Git ruby gem. No problem. I got all that flotsam and jetsam installed and wouldn't you know my version of git was too old. Shaving yaks is dangerous work. I broke out into a cold sweat because I knew git was installed via macports and macports works by rube-goldberg-inter-dimensional-voodoo-distortion-field, 800 rolls of duct tape and a buttplug. Let's just say I've had some bad experiences with it. On top of that I haven't tried updating anything ports related for a year or two. So let's upgrade.
sudo port selfupdate
sudo port upgrade outdated
Sure enough, I start upgrading and BOOM. Some obscure library fails to build.
Luckily the Google knew how to fix it.
---> Building cyrus-sasl2
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_security_cyrus-sasl2/work/cyrus-sasl-2.1.23" && /usr/bin/make -j1 all " returned error 2
Command output: /usr/bin/make all-recursive
Making all in include
make[2]: Nothing to be done for `all'.
Making all in sasldb
ar cru .libs/libsasldb.a db_ndbm.o allockey.o
Making all in plugins
make[2]: Nothing to be done for `all'.
Making all in lib
make[2]: Nothing to be done for `all'.
Making all in utils
/bin/sh ../libtool --mode=link /usr/bin/gcc-4.0 -Wall -W -O2 -arch i386 -L/opt/local/lib -Wl,-rpath,/opt/local/lib -L/opt/local/lib -o pluginviewer pluginviewer.o ../lib/libsasl2.la -lresolv -lresolv -lpam
/usr/bin/gcc-4.0 -Wall -W -O2 -arch i386 -L/opt/local/lib -Wl,-rpath,/opt/local/lib -L/opt/local/lib -o .libs/pluginviewer pluginviewer.o -L../lib/.libs -lsasl2 -ldl -lresolv -lresolv -lpam -lresolv -lresolv -lpam
Undefined symbols:
"_auxprop_plugin_info", referenced from:
_main in pluginviewer.o
_main in pluginviewer.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [pluginviewer] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
{{{Then I hit the wall
sudo port deactivate cyrus-sasl2
sudo port clean cyrus-sasl2
sudo port upgrade cyrus-sasl2
}}}
---> Building MPlayer
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_MPlayer/work/MPlayer-1.0rc2" && /usr/bin/make -j1 all " returned error 2
Command output: /usr/bin/gcc-4.0 -I../libavcodec -I../libavformat -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -march=i386 -mtune=i386 -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/opt/local/include/lzo -I/opt/local/include -I/usr/local/include -c -o ao_mpegpes.o ao_mpegpes.c
/usr/bin/gcc-4.0 -I../libavcodec -I../libavformat -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -march=i386 -mtune=i386 -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/opt/local/include/lzo -I/opt/local/include -I/usr/local/include -c -o ao_null.o ao_null.c
/usr/bin/gcc-4.0 -I../libavcodec -I../libavformat -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -march=i386 -mtune=i386 -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/opt/local/include/lzo -I/opt/local/include -I/usr/local/include -c -o ao_pcm.o ao_pcm.c
/usr/bin/gcc-4.0 -I../libavcodec -I../libavformat -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -march=i386 -mtune=i386 -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/opt/local/include/lzo -I/opt/local/include -I/usr/local/include -c -o ao_openal.o ao_openal.c
ar r libao2.a audio_out.o ao_mpegpes.o ao_null.o ao_pcm.o ao_openal.o
ar: creating archive libao2.a
ranlib libao2.a
/usr/bin/make -C input
/usr/bin/gcc-4.0 -I../libavcodec -I../libavformat -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -march=i386 -mtune=i386 -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/opt/local/include/lzo -I/opt/local/include -I/usr/local/include -c -o input.o input.c
/usr/bin/gcc-4.0 -I../libavcodec -I../libavformat -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -march=i386 -mtune=i386 -pipe -ffast-math -fomit-frame-pointer -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN -shared-libgcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/opt/local/include/lzo -I/opt/local/include -I/usr/local/include -c -o ar.o ar.c
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:29,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from ar.c:27:
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/xmmintrin.h:35:3: error: #error "SSE instruction set not enabled"
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from ar.c:27:
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:216: error: syntax error before '__m128'
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:218: error: syntax error before 'sd'
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:220: error: syntax error before '}' token
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:264: error: array type has incomplete element type
make[1]: *** [ar.o] Error 1
make: *** [input/libinput.a] Error 2
Error: Unable to upgrade port: 1
The good news is git got upgraded. Mplayer and who knows what else is not. Oh well, while I am being a hater I might as well mention that the real suckiness is the fact that Leopard doesn't have a package manager. And that IS the dumbest thing about OSX.