emerge -v '=media-sound/ams-1.8.7' fails on AMD64 with the error
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/../../../../x86_64-pc-linux-gnu/bin/ld:
cannot find -lqt-mt
The root problem is that ams does not use autoconf, and its default makefile
does not work for gentoo AMD64. A workaround is to add this line to the ebuild
in src_unpack()
sed -i
"s%QT_LIB_DIR=\$(QT_BASE_DIR)/lib%QT_LIB_DIR=\$(QT_BASE_DIR)/lib64/%" Makefile
|| die "Makefile update failed."
then ams can be successfully installed with
FEATURE="-strict" emerge ams
I'm don't know how to write this such that it will work on all architectures.
emerge info:
Portage 2.1_pre3-r1 (default-linux/amd64/2005.0, gcc-3.3.4, glibc-2.3.5-r3,
2.6.1
5 x86_64)
=================================================================
System uname: 2.6.15 x86_64 AMD Opteron(tm) Processor 244
Gentoo Base System version 1.12.0_pre8
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[disabl
ed]
dev-lang/python: 2.3.5-r2, 2.4.2
sys-apps/sandbox: 1.2.13
sys-devel/autoconf: 2.13, 2.59-r7
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils: 2.16.1
sys-devel/libtool: 1.5.20
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O0"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/
config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb
/usr/lib64/
mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/sha
re/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/
platex/config/ /usr/share/texmf/xdvi/ /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O0"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sfperms strict"
GENTOO_MIRRORS="http://gentoo.binarycompass.org http://gentoo.osuosl.org/
http://
gentoo.ccccom.com"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="amd64 X aalib acpi aim alsa apache2 audiofile avi berkdb bitmap-fonts
bonobo
bzip2 crypt cups curl dga divx4linux doc dts dvd eds emboss encode exif expat
fa
m fbcon fftw flac foomaticdb fortran gd gdbm gif glut gmp gphoto2 gpm gstreamer
g
tk gtk2 gtkhtml guile idn imagemagick imlib ipv6 jack java jpeg lcms ldap
libcaca
libwww lzw lzw-tiff mad maildir mbox mikmod mng mozilla mp3 mpeg mysql ncurses
n
ls nptl offensive ogg oggvorbis opengl oscar pam pam_chroot pcre pda pdflib
perl
plotutils png python qt quicktime readline real recode samba sdl sharedmem
slang
sockets spell sqlite ssl sysvipc tcltk tcpd tetex tiff truetype truetype-fonts
ty
pe1-fonts udev usb userlocales vorbis xanim xinerama xml xml2 xmms xpm xv xvid
zl
ib elibc_glibc kernel_linux userland_GNU"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Also, the ebuild does not correctly install the program's data files. Changing
src_install() to the following makes it work on my system:
src_install() {
dobin ams
dodoc README THANKS
#docinto examples
#dodoc *.ams
insinto /usr/lib/ams/instruments/
doins instruments/*.ams
insinto /usr/lib/ams/demos/
doins demos/*.ams
insinto /usr/lib/ams/tutorial/
doins tutorial/*.ams
}