After the recent update to version 10.0, xbmc cannot start. It complains about being unable to find its data files. The exact error shown in the command line is: Unable to find path to XBMC data files! I emerged it twice just in case and removed any settings stored in my home directory. Also I tried emerging it with FEATURES="-sandbox" but the problem remained. Reproducible: Always Steps to Reproduce: Upgrade to or install (?) xbmc-10.0 Actual Results: xbmc doesn't start ~ $ emerge --info Portage 2.1.9.26 (default/linux/amd64/10.0/desktop/kde, gcc-4.5.1, glibc-2.12.1-r3, 2.6.36-gentoo-r5-Miles x86_64) ================================================================= System uname: Linux-2.6.36-gentoo-r5-Miles-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T6600_@_2.20GHz-with-gentoo-2.0.1 Timestamp of tree: Tue, 28 Dec 2010 08:00:19 +0000 distcc 3.1 x86_64-pc-linux-gnu [disabled] ccache version 3.1.3 [disabled] app-shells/bash: 4.1_p9 dev-java/java-config: 2.1.11-r3 dev-lang/python: 2.4.6, 2.6.6-r1, 3.1.3 dev-util/ccache: 3.1.3 dev-util/cmake: 2.8.3-r1 sys-apps/baselayout: 2.0.1-r1 sys-apps/openrc: 0.6.8 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.4_p6-r1, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.21 sys-devel/gcc: 4.1.2::<unknown repository>, 4.2.4-r1, 4.3.5, 4.4.5, 4.5.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82 virtual/os-headers: 2.6.36.1 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-Os -march=native" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/share/config/kdm /usr/share/config /usr/share/openvpn/easy-rsa /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.2/ext-active/ /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.2/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.2/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-Os -march=native" DISTDIR="/DB/portage/distfiles" FEATURES="assume-digests binpkg-logs candy distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userpriv" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="el gr en_GB en el en_US el_GR" MAKEOPTS="-s -j4" PKGDIR="/usr/portage/bin" 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="/DB/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/portage/local/personal /usr/portage/local/layman/qting-edge /usr/portage/local/layman/science /usr/portage/local/layman/kde /usr/portage/local/personal" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="7zip X a52 aac aalib acl acpi addressbook aiglx akonadi alsa amd64 amr aom apache2 apm archive asf audiofile avahi avi bash-completion berkdb bittorrent-external bluetooth bonjour boost branding browserplugin btrfs bzip2 cairo calendar canvas captury cdaudio cdda cddb cdparanoia cdr cjk cleartype cli commercial consolekit cracklib crypt css cups cxx dbus designer-plugin desktopglobe dga dio dirac divx4linux djconsole djvu dlloader dri drm dts dv dvb dvd dvdr dvdread ebook editor emboss encode ethereal evo exif exiv2 exscalibar fam fat fbcon festival ffmpeg firefox fits flac flash fontconfig foomatic-db fortran freetype frei0r ftp fuse gcj gd gdbm gdu geolocation gif gimp gimpprint git glib glitz glut gnokii gnutls google-gadgets gphoto2 gpm gps gpu gsm gtk gtk2 hal hfs hifieq htmlhandbook hwmixer iconv icu id3 id3tag ieee1394 imagemagick imlib ipod ipv6 irda ithreads jack java java6 javascript jdbc jfs jikes jingle joystick jpeg jpeg2k junit kde kdegraphics kdehiddenvisibility kdepim kdexdeltas kexi kig-scripting kipi kontact kpathsea ktts ladspa lame laptop lcd lcms ldap lensfun libass libnotify libsamplerate live livecd lm_sensors logrotate mad marble matroska mbox mbrola mdadm meanwhile memlimit messenger mhash mikmod mime ming mmx mmxext mng modplug modules mono moonlight mozilla moznocompose moznoirc moznomail mozsvg mp3 mp3tunes mp4 mpeg mpeg2 mplayer msn mudflap multilib musepack musicbrainz mysql mysqli nas ncurses nepomuk netpbm network networkmanager nfs nls nntp nocd nova nptl nptlonly nsplugin ntfs nvidia obex odbc offensive ogg oggvorbis ogm on-the-fly-crypt openexr opengl openmp optimized-qmake oscar otr pam pam_chroot pam_timestamp pango pcmcia pcre pda pdf pdflib perforce perl php plasma plotutils plugins png policykit portaudio posix povray ppds pppd prelude private-headers ps pulseaudio pwdb python qq qt qt3support qt4 quicktime rdesktop rdp readline recode recording reiser4 reiserfs remote reports rrdtool rss rtsp ruby samba sasl sbig scanner sdl semantic-desktop session shout skins skype slp smp sms smtp sndfile snmp sockets socks5 solver soundtouch sox speedo speex spell spl sql sqlite srt sse sse2 sse3 sse4 ssl ssse3 startup-notification stats stream svg swat sysfs tcpd test testbed theora threads thumbnail tidy tiff timidity tools truetype tunepimp udev unichrome unicode upnp usb v4l v4l2 vcd vdpau vhosts visualization vlm vnc vorbis wavpack webcam webinterface webkit wifi wlm wma wxwidgets wxwindows x264 xattr xcb xcomposite xfs xine xinerama xlib xml xml2 xorg xprint xrandr xscreensaver xulrunner xv xvid xvmc zeroconf zip zlib" ALSA_CARDS="intel8x0 intel8x0m hda-intel usb-audio" 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 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" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" 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="evdev keyboard mouse joystick synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="el gr en_GB en el en_US el_GR" LIRC_DEVICES="audio audio_alsa kworld all" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia intel fbdev v4l vesa" 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: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ~ $ eix -s xbmc [I] media-tv/xbmc Available versions: (~)9.04[1] (~)9.04.1[1] (~)9.11-r5 (~)10.0 **9999 **9999[1] {aac alsa altivec avahi css debug hal joystick midi opengl profile pulseaudio rtmp sse sse2 vaapi vdpau webserver xrandr} Installed versions: 10.0(12:46:39 PM 12/28/2010)(alsa avahi css hal joystick pulseaudio sse sse2 vdpau xrandr -altivec -debug -midi -profile -rtmp -vaapi -webserver) Homepage: http://xbmc.org/ Description: XBMC is a free and open source media-player and entertainment hub
Is that line the whole output ? Also attach build log.
Created attachment 258274 [details] build.log
The whole output is this: ~ $ xbmc ** Message: pygobject_register_sinkfunc is deprecated (GtkWindow) ** Message: pygobject_register_sinkfunc is deprecated (GtkInvisible) ** Message: pygobject_register_sinkfunc is deprecated (GtkObject) Unable to find path to XBMC data files! ~ $ But the first three lines were there from the previous versions and doesn't cause any problems.
OK, now 'equery f xbmc' to see if/where the files were installed. Then perhaps strace on xbmc to see where is it looking for those files (unless xbmc has a switch to produce more debug output).
Created attachment 258286 [details] equery -f xbmc
Created attachment 258287 [details] strace xbmc I re-emerged it with FEATURES="nostrip" USE="debug" just in case. I attached equery f xbmc and strace xbmc. I can't see any problem so I wonder if it is due to a dependency or a use flag. Anyone else with this problem?
Comment on attachment 258287 [details] strace xbmc this strace isnt terribly useful as you've straced the bash script and not actually xbmc itself. you'd need to use the -f option to strace to do that. or simply do `strace /usr/lib64/xbmc/xbmc.bin`
make sure you dont have XBMC_HOME set in your env to something bogus
Created attachment 258339 [details] strace /usr/lib64/xbmc/xbmc.bin Thanks for the help. I attached the new strace output as you suggested. The missing directory seems to be: /usr/lib/xbmc/language I found this but I'm not sure what I should do to the ebuild: http://forum.xbmc.org/showthread.php?t=81179 I tried a "ln -s /usr/share/xbmc/language /usr/lib/xbmc/language" to see what happens. Xbmc starts but it never loads, the screen stays black. After killing it I get a message that may suggest that it looks for other files in /usr/lib/xbmc too: /usr/bin/xbmc: line 133: 19688 Terminated "$LIBDIR/xbmc/xbmc.bin" $SAVED_ARGS I checked my environment and it doesn't have any xbmc variables. Also I unmerged xbmc and searched for any stray files from previous installations but I couldn't find anything (did a "locate -i xbmc" with a recently update locate database).
Comment on attachment 258274 [details] build.log i dont know why, but you added "-s" to your MAKEOPTS which makes this log useless. please rebuild xbmc without that and post the new full build log.
Created attachment 258429 [details] proper build.log Thanks again for the help, especially since this problem seems to be specific to my system.
By calling XBMC like this: XBMC_HOME=/usr/share/xbmc/ xbmc It works fine. It is strange though as I can't find any variable that sets XBMC_HOME to /usr/lib/xbmc/ I am ok with this workaround, so you can close the bug if you want. I'll give an update if I find the cause of this problem.
the hardcoded paths look correct: -DBIN_INSTALL_PATH="\"/usr/lib64/xbmc\"" -DINSTALL_PATH="\"/usr/share/xbmc\"" on the off chance it's a compiler bug, you could use -O2 instead of -Os. seems a bit odd to use -Os on a desktop x86_64 system especially when you're installing huge packages like xbmc. looking through the xbmc code, it checks $XBMC_HOME and if that isnt set, it falls back to INSTALL_PATH which defaults to /usr/share/xbmc. you dont have any funky files in /usr/local/include do you ?
I tried -O2 but the problem remains. I use -Os because despite having 4GiB of RAM, it gets full easily. It doesn't make much difference though. I can't rule out funky files and maybe this is the problem. Some years ago I had installed xbmc from an overlay. But for the last couple years the portage version worked fine. I don't have a /usr/local/include directory and a search for stray files containing xbmc in their path didn't yield any results. I don't know any other way to find flunky files (which may exist from other ebuilds and not xbmc ones). Running env, or doing a grep in /etc/env.d doesn't reveal any XBMC related variables. Thanks again for the help! Happy new year!
sorry, but i'm out of ideas. at this point, if you want to track down the issue, you'll want to emerge xbmc with debugging symbols: CFLAGS='-O0 -g' CXXFLAGS='-O0 -g' FEATURES=splitdebug emerge xbmc then run `gdb /usr/lib64/xbmc/xbmc.bin`. set a break point on CUtil::GetHomePath and CApplication::InitDirectoriesLinux and figure out where your funky paths are coming from.
There is no problem at all! You already helped more than I expected! I tried gdb (it also needed the nostrip flag in FEATURES to work properly) but I don't have any experience with it, so I couldn't find the problem (breaks didn't return directories/variables) but it doesn't matter since we found the workaround. I learned many new things from this bug report! Thanks again!