It is not possible to compile LMMS with VST support on my x86 machine. I always get: daniel@localhost /usr/portage/media-sound/lmms $ emerge -pv lmms These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-sound/lmms-0.4.2 USE="alsa ogg -debug -fftw -fluidsynth -jack -pulseaudio -sdl -stk (-vst)" 0 kB The latest stable wine-version is installed and of course I also set the "vst" use flag. Reproducible: Always localhost daniel # emerge --info Portage 2.2_rc23 (default/linux/x86/2008.0, gcc-4.3.2, glibc-2.7-r2, 2.6.27.10 i686) ================================================================= System uname: Linux-2.6.27.10-i686-Mobile_AMD_Sempron-tm-_3100+-with-glibc2.0 Timestamp of tree: Tue, 03 Feb 2009 08:10:04 +0000 app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7-r1, 2.1.6-r1 dev-lang/python: 2.4.4-r13, 2.5.2-r7 dev-python/pycrypto: 2.0.1-r6 dev-util/cmake: 2.6.2-r1 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.3.0-r1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.63 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -ftree-vectorize" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/4.1/env /usr/kde/4.1/share/config /usr/kde/4.1/shutdown /usr/kde/4.2/env /usr/kde/4.2/share/config /usr/kde/4.2/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=native -O2 -pipe -ftree-vectorize" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="de_DE.UTF-8" LC_ALL="de_DE.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="de" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" 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="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/gnustep /usr/portage/local/custom" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X a52 aac aalib acl acpi alsa bash-completion berkdb bzip2 cairo cdr cli cracklib crypt cups daap dbus divx dri dvd dvdr dvdread dvi encode esd firefox flac fortran gdbm gif gimp glitz gtk2 hal htmlhandbook iconv ieee1394 imagemagick ipod isdnlog java jpeg jpg kde kdeprefix laptop ldap lm_sensors mad midi mmx mmxext mng mp3 mp4 mpeg mudflap ncurses networkmanager nfs nls nptl nptlonly nsplugin ogg opengl openldap openmp pam pcre pda pdf perl png pppd python qt4 quicktime readline reflection samba scanner session skins spell spl sse sse2 sse3 sslssse3 startup-notification svg sysfs tcpd tiff unicode usb vcd vorbis webdav wifi win32codecs x86 xcomposite xorg xscreensaver xulrunner xv xvid zlib" ALSA_CARDS="atiixp" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" 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 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 rewritesetenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="ati radeon" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
# Alexis Ballier <aballier@gentoo.org> (17 Sep 2008) # Requires a x86-compatible architecture in order to run the binary plugins # through wine. So far it segfaults on amd64. Unmask on confirmed to work # profiles. media-sound/lmms vst I guess it could be unmasked for x86?
unmask it, try with a xcb enabled libX11 and tell us if it works first then we'll see if it can be unmasked on x86 because here it still doesn't work
(In reply to comment #1) > I guess it could be unmasked for x86? Yes, please. It would be nice if you could add at least an ~x86 keywork to the ebuild. LMMS itself works great here, but it cannot be built with VST support. (In reply to comment #2) > unmask it, try with a xcb enabled libX11 and tell us if it works first > then we'll see if it can be unmasked on x86 because here it still doesn't work What does libX11 have to do with this? In my opinion it is a problem with the ebuild itself. If I compile lmms 0.4.2 manually from the tarball, I get full VST support. I have remerged libX11 with xcb, but of course vst still does not work: localhost daniel # emerge -pv lmms These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-sound/lmms-0.4.2 USE="alsa ogg -debug -fftw -fluidsynth -jack -pulseaudio -sdl -stk (-vst)" 0 kB Why in the world does it say "(-vst)"? And why did you set the bug status to "NEEDINFO". I can give you all the information you want :P
The problem is that loading a VST's GUI crashes LMMS (or in worst cases the whole X server) with a libxcb locking assertion failure. So please try a xcb enabled libX11, load a VST, open its GUI, and see if it crashes. Setting LIBXCB_ALLOW_SLOPPY_LOCK=1 works around this. Maybe we could add some "if has_use x11-libs/libX11 xcb, then ewarn about it" stuff, but it looks like it has been fixed in upstream trunk anyway.
PS: it's about package.use.mask, not keywords. the ~x86 keyword is a different issue. Unmask it with: echo "media-sound/lmms -vst" >> /etc/portage/profile/package.use.mask
Please note that the sloppy lock usually means that there is a (mostly trivial) bug in the code. Where the "mostly trivial" often pairs with "use of ancient internal libraries" (which was the case for Sun's Java).
(In reply to comment #5) > Unmask it with: > echo "media-sound/lmms -vst" >> /etc/portage/profile/package.use.mask Thanks a lot, that helped. After years of using Gentoo I was not aware of that file :( I am now using lmms with full vst support from the tree. I have had no issues at all after using 3 different VST plugins in lmms. Not a singe crash ;) So please, could you add an ~x86 keyword to the ebuild and remove the vst-restriction for x86 platforms? BTW: I am using a xcb enabled libX11.
(In reply to comment #6) > Please note that the sloppy lock usually means that there is a (mostly trivial) > bug in the code. Where the "mostly trivial" often pairs with "use of ancient > internal libraries" (which was the case for Sun's Java). > I investigated a bit.. In this case the issue is, that the emul-linux-x86-xlibs contain a libX11 compiled _without_ xcb support, and embedding that in an app that uses a xcb-enabled libX11 causes the sloppy locking. Tested this on OpenSUSE, they provide a xcb-enabled 32bit libX11. It works just fine there. So it should indeed be perfectly safe to unmask the vst useflag for x86, it's a amd64-only issue.
PS: Daniel, could you please open a bug report and explicitly request adding ~x86 keyword and unmasking of the vst useflag there? This one doesn't count as such.
(In reply to comment #9) > PS: Daniel, could you please open a bug report and explicitly request adding > ~x86 keyword and unmasking of the vst useflag there? OK, I've done so. See Bug 260735.