Today I decided to try out the ~amd64 dev-lang/erlang-13.2 package, it worked fine until I tried to run a program using the new wxwindows support. Specifically: the debugger. The directory mentioned in the error doesn't exist. However the parent directory does (and it contains ebin, src and so on as expected). Reproducible: Always Steps to Reproduce: 1. emerge dev-lang/erlang-13.2 with the wxwindows USE flag turned on. In a shell: 2. erl In Erlang shell: 3. toolbar:start(). 4. Click the debugger button in the toolbar that pops up. 5. Observe the old Tk window opens and the error in the terminal. In a normal shell: 6. ls /usr/lib64/erlang/lib/wx-0.98.1 Actual Results: $ erl Erlang R13B (erts-5.7.1) [source] [64-bit] [rq:1] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.7.1 (abort with ^G) 1> toolbar:start(). <0.34.0> 2> =ERROR REPORT==== 23-Apr-2009::21:53:04 === WX ERROR: Could not find suitable 'wxe_driver' for x86_64-pc-linux-gnu in: /usr/lib64/erlang/lib/wx-0.98.1/priv ^C BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution a $ ls /usr/lib64/erlang/lib/wx-0.98.1 ebin examples include src Expected Results: The error should not show up, and the directory mentioned should exist (and contain something). # emerge -pv erlang These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/erlang-13.2 USE="doc emacs hipe kpoll ssl tk wxwindows -java -odbc -sctp -smp" 60,188 kB Total: 1 package (1 reinstall), Size of downloads: 60,188 kB # emerge --info Portage 2.1.6.7 (default/linux/amd64/2008.0/desktop, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.27-gentoo-r8-1 x86_64) ================================================================= System uname: Linux-2.6.27-gentoo-r8-1-x86_64-AMD_Sempron-tm-_Processor_3300+-with-glibc2.2.5 Timestamp of tree: Thu, 23 Apr 2009 19:30:01 +0000 ccache version 2.4 [disabled] app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7-r1, 2.1.7 dev-lang/python: 2.5.4-r2 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r7 dev-util/cmake: 2.6.2-r1 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-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="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8-sse3 -pipe -O2" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/bind /var/gopher/gophermap" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=k8-sse3 -pipe -O2" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://gentoo.ynet.sk/pub http://ftp.ds.karen.hj.se/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.ds.karen.hj.se/gentoo/ http://mirror.muntinternet.net/pub/gentoo/ http://ftp.ing.umu.se/linux/gentoo/ http://mirror.gentoo.no/ http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.linux.ee/pub/gentoo/distfiles/" LINGUAS="en en_GB sv sv_SE" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" 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/local/portage/crossdev-overlay /usr/local/portage/cpan-overlay /usr/local/portage/nethack-overlay /usr/local/portage/generic-overlay" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X acl acpi alsa amd64 audiofile bash-completion berkdb bzip2 cairo caps ccache cdb cddb cdr cli cracklib crypt cups curl dbus dri dvd dvdr dvdread emacs emboss encode evo exif expat fam fastcgi fbcon firefox flac fontconfig foomaticdb fortran gd gdbm geoip gif glep gmp gnutls gpm gstreamer gtk iconv idea idn ieee1394 imlib iproute2 ipv6 isdnlog javascript joystick jpeg jpeg2k kde kdeenablefinal kdehiddenvisibility kqemu lcms lm_sensors logrotate loop-aes lyx mad mbox midi mikmod mmap mmx mmxext mng mono mozdevelop mp3 mpeg mudflap multilib mysqli ncurses nls nodrm nptl nptlonly nsplugin objc ogg openexr opengl pam pcre pdf perl pg-intdatetime php physfs pic png ppds pppd python qt3 qt3support qt4 quicktime readline reflection rle sasl scanner sdl session sndfile spell spl sqlite sse sse2 ssl startup-notification svg sysfs tcl tcpd tiff tk truetype unicode usb utempter vorbis webdav-serf xcomposite xorg xpm xulrunner xv zlib zsh-completion" ALSA_CARDS="emu10k1 loopback seq-dummy dummy" 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse joystick evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB sv sv_SE" USERLAND="GNU" VIDEO_CARDS="vesa fbdev nv nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Found some more details when manually compiling it: checking for wxWidgets version >= 2.8.0 (--unicode)... no (version 2.6.4 is not new enough) configure: WARNING: wxWidgets must be installed on your system. Please check that wx-config is in path, the directory where wxWidgets libraries are installed (returned by 'wx-config --libs' or 'wx-config --static --libs' command) is in LD_LIBRARY_PATH or equivalent variable and wxWidgets version is 2.8.0 or above. But: [I] x11-libs/wxGTK Available versions: (2.6) 2.6.4.0-r4 (2.8) 2.8.9.1-r3 ~2.8.9.2 ~2.8.9.2-r1 Both are installed. The ebuild should be able to select the right one as far as I can see. Hope this is fixed soon.
(In reply to comment #1) > Available versions: > (2.6) 2.6.4.0-r4 > (2.8) 2.8.9.1-r3 ~2.8.9.2 ~2.8.9.2-r1 Err this was unclear (forgot that colour coding wasn't shown in bugzilla). Installed versions: 2.6.4.0-r4(2.6)(13:26:25 10/17/08)(X opengl sdl unicode -debug -doc -gnome -odbc -pch) 2.8.9.1-r3(2.8)(00:28:07 01/20/09)(X gstreamer opengl sdl -debug -doc -gnome -odbc -pch) Is more relevant.
Thanks for your report. Could you please tell me what the output of eselect wxwidgets list is?
# eselect wxwidgets list Available wxWidgets profiles: [1] gtk2-ansi-release-2.6 [2] gtk2-unicode-release-2.6 * [3] gtk2-unicode-release-2.8 As far as I remember, ebuilds are supposed to select the ones they need using some eclass, the eselected one only being used for out-of-portage builds.
(In reply to comment #4) > # eselect wxwidgets list > Available wxWidgets profiles: > [1] gtk2-ansi-release-2.6 > [2] gtk2-unicode-release-2.6 * > [3] gtk2-unicode-release-2.8 > > As far as I remember, ebuilds are supposed to select the ones they need using > some eclass, the eselected one only being used for out-of-portage builds. Yes, I know, but I wanted to be sure, that you really have something different from 2.8. So thanks for the information, will update the ebuild today.
Should be fixed now, remerge and report back please.
I don't think you can do it like you did for conditional wxwidgets support. I believe it will now require wxwidgets to be available even with USE=-wxwindows I'm not sure what exactly must be done for that offhand, but at least it seems you should have your own pkg_setup that overrides wxwidgets_pkg_setup because that one seems to make an unconditional check for wxGTK existence. Maybe we shouldn't export pkg_setup with EAPI=2, hmm... CCing wxwidgets@ to make sure my thoughts are right for erlang ebuild changes - dirtyepic, can you comment? Maybe we should discuss on IRC with dirtyepic about conditional use of wxwidgets and document how to do that in the eclass
it only checks during pkg_setup if WX_GTK_VER is set before inheriting the eclass AND you only have wxBase installed. it's to catch some corner case Diego came up with. so yes, if wxGTK was built with USE=-X and erlang is emerged with USE=-wxwindows you'll still get a error. i think overriding pkg_setup should work but i haven't looked at it too hard yet. i'll poke at it later today.
pkg_setup() { use wxwindows && wxwidgets_pkg_setup } Is my proposal
(In reply to comment #9) > pkg_setup() { > use wxwindows && wxwidgets_pkg_setup > } > > Is my proposal And I go with that.
good enough for me ;)