ncurses has recently been upgraded to 6.0 and a new slot was created for compatibility with old applications however, the net-misc/dropbox-3.6.8 ebuild won't accept the slotted :5 ncurses ebuild ( sys-libs/ncurses-6.0 ) and wants to downgrade to ncurses-5.9-r101 Reproducible: Always Steps to Reproduce: 1. emerge ncurses 2. emerge dropbox 3. Actual Results: dropbox requires ncurses to be downgraded again to 5.9-r101 Expected Results: dropbox actually builds correctly with ncurses-6.0-r1 and the ebuild should allow for this version of ncurses
I saw this issue on one of my systems after updating from portage-2.2.20.1 to 2.2.21, but can't reproduce it any more after installing some kde packages. Perhaps this is a portage-2.2.21 regression. If you can reproduce this, please attach your "emerge --info" and the output of "emerge --pretend --debug dropbox" (if "emerge dropbox" is the command causing the error).
It's likely related to bug 558856. You might need to rebuild dropbox in order to get the latest deps: RDEPEND="|| ( sys-libs/ncurses:5/5 sys-libs/ncurses:0/5 )"
(In reply to Zac Medico from comment #2) The system where I was seeing the error had a freshly installed dropbox (re-emerged today). Portage attempted to downgrade ncurses (and printed a warning about it) when doing --update --deep @world, and then started behaving normally after I manually updated some kde ebuilds :/
This command will show all installed ncurses dependencies: grep sys-libs/ncurses /var/db/pkg/*/*/*DEPEND
emerge --info Portage 2.2.20.1 (python 2.7.10-final-0, default/linux/amd64/13.0/desktop/plasma, gcc-4.9.3, glibc-2.21-r1, 4.2.0-gentoo-r1 x86_64) ================================================================= System uname: Linux-4.2.0-gentoo-r1-x86_64-AMD_Phenom-tm-_II_X6_1100T_Processor-with-gentoo-2.2 KiB Mem: 32948548 total, 28878040 free KiB Swap: 3929084 total, 3929084 free Timestamp of repository gentoo: Fri, 25 Sep 2015 15:15:01 +0000 sh bash 4.3_p42 ld ld di GNU (Gentoo 2.25.1 p1.1) 2.25.1 ccache version 3.2.3 [enabled] app-shells/bash: 4.3_p42::gentoo dev-java/java-config: 2.2.0::gentoo dev-lang/perl: 5.22.0::gentoo dev-lang/python: 2.7.10::gentoo, 3.4.3::gentoo dev-util/ccache: 3.2.3::gentoo dev-util/cmake: 3.3.2::gentoo dev-util/pkgconfig: 0.28-r3::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.17::gentoo sys-apps/sandbox: 2.8::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r1::gentoo sys-devel/automake: 1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 2.25.1-r1::gentoo sys-devel/gcc: 4.9.3::gentoo sys-devel/gcc-config: 1.8::gentoo sys-devel/libtool: 2.4.6-r1::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.2::gentoo (virtual/os-headers) sys-libs/glibc: 2.21-r1::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.at.gentoo.org/gentoo-portage priority: -1000 haskell location: /var/lib/layman/haskell masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /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" CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--jobs=4 --load-average=6" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs ccache collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://mirror.leaseweb.com/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/" LANG="it_IT.UTF-8" LC_ALL="it_IT.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cleartype cli consolekit corefonts cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam firefox firmware flac fortran gdbm gif glamor gpm gtk iconv icu ipv6 jack java javascript jpeg kde kipi lcms ldap libnotify lm_sensors mad midi mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses nls nptl nsplugin ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds qml qt3support qt4 qt5 readline sdl seccomp semantic-desktop session spell sqlite sse sse2 ssl startup-notification svg tcpd threads tiff truetype type1 udev udisks unicode upower usb vorbis widgets wxwidgets x264 xcb xcomposite xinerama xml xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" 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 ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="it ru" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby20 ruby22" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="radeon r600" 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" USE_PYTHON="2.7 3.4" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 412888 [details] grep sys-libs/ncurses /var/db/pkg/*/*/*DEPEND
eix ncurses [I] sys-libs/ncurses Available versions: (0) 5.9-r3 (~)5.9-r4 5.9-r5(0/5) (~)6.0-r1(0/6) (5) 5.9-r99(5/5) (~)5.9-r101(5/5) (~)6.0(5/6) {ada +cxx debug doc gpm minimal profile static-libs test threads tinfo trace unicode ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"} Installed versions: 6.0(5)(13:47:13 20/09/2015)(cxx gpm unicode -ada -static-libs -tinfo ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="32 64 -x32") 6.0-r1(20:48:23 11/09/2015)(cxx gpm threads unicode -ada -debug -doc -minimal -profile -static-libs -test -tinfo -trace ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="32 64 -x32")
emerge -pv dropbox These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild UD ] sys-libs/ncurses-5.9-r101:5/5::gentoo [6.0:5/6::gentoo] USE="gpm unicode -tinfo (-ada%) (-cxx%*) (-static-libs%)" ABI_X86="32 (64) (-x32)" 2761 KiB [ebuild R ] net-misc/dropbox-3.6.8::gentoo USE="X librsync-bundled (-selinux)" 0 KiB Total: 2 packages (1 downgrade, 1 reinstall), Size of downloads: 2761 KiB
Portage version installed 2.2.20.1 Upgrading to portage 2.2.22 does not fix this
(In reply to Michele Alzetta from comment #0) > Actual Results: > dropbox requires ncurses to be downgraded again to 5.9-r101 This behavior is correct, because dropbox is not compatible with ncurses-6, and currently it is not possible to install ncurses-5 and ncurses-6 simultaneously. The arrangement of ncurses slots is confusing because of bug 558856. Slot 5 only exists as a workaround for bug 558856, so slot 0 is the only "real" slot. Therefore, you have to choose between ncurses-5 or ncurses-6. > Expected Results: > dropbox actually builds correctly with ncurses-6.0-r1 and the ebuild should > allow for this version of ncurses The dropbox ebuild installs pre-built proprietary binaries that are distributed by dropbox.com, so you can't build it against ncurses-6.
So, anyone who has this problem should simply mask ncurses-6 as follows: echo '>=sys-libs/ncurses-6' >> /etc/portage/package.mask
Actually I solved the problem in the opposite manner i.e. I masked ncurses < 6 then hacked the dropbox ebuild by removing the dependency on a specific slot of ncurses, rebuilt the manifest and emerged dropbox. With ncurses-6.0-r1 dropbox emerges without problems on my box and has been working normally ever since ncurses was updated to 6 (I decided to file the bug later on) Only that each time I want to emerge world I have to uninstall dropbox, emerge everything, then repeat the hack and emerge dropbox again. Of course, I'm no expert on ebuilds and on ncurses so this is my very personal hack, it might bite me one day and I definitely wouldn't suggest anyone else use it, unless the experts decide something of the sort is ok.
(In reply to Michele Alzetta from comment #12) > With ncurses-6.0-r1 dropbox emerges without problems on my box and has been > working normally ever since ncurses was updated to 6 (I decided to file the > bug later on) If you attach /var/db/pkg/net-misc/dropbox-3.6.8/NEEDED.ELF.2 then we can use that to check the library dependencies for correctness.
(In reply to Zac Medico from comment #10) > and currently it is not possible to install ncurses-5 and ncurses-6 > simultaneously. > > The arrangement of ncurses slots is confusing because of bug 558856. Slot 5 > only exists as a workaround for bug 558856, so slot 0 is the only "real" > slot. Therefore, you have to choose between ncurses-5 or ncurses-6. This is not correct. You have to choose one version of ncurses *headers*, but ncurses-5 and 6 *libraries* can be installed in parallel. You can install, on the same system, =ncurses-6.0-r1 (from slot 0) for all normal ncurses-using things, and =ncurses-5.9-r101 (from slot 5) for the few closed-source packages like dropbox that require old ncurses libraries. I do this on all my systems. The ncurses slotting scheme is very similar to media-libs/libpng, media-libs/tiff, and media-libs/jpeg. Slot 0 is the main slot (headers and libraries), numbered slots are library-only for compatibility with old closed-source stuff. The only confusing aspect of ncurses slotting is =ncurses-6.0 which somehow ended up in slot 5 thanks to bug #558856.
Created attachment 413010 [details] /var/db/pkg/net-misc/dropbox-3.6.8/NEEDED.ELF.2
So, if I understand the situation, the best thing is to install both: a) ncurses-6.0-r1 (slot 0, which has headers and libraries) for all the rest of my system, and b) ncurses-5.9-r101 for compatibility with dropbox only Simplest way to do this is just mask ncurses-6.0 in slot 5 From the NEEDED.ELF file it definitely seems that dropbox requires ncurses 5, although I still have to find any glitch in functioning
(In reply to Alexandre Rostovtsev from comment #14) > This is not correct. You have to choose one version of ncurses *headers*, > but ncurses-5 and 6 *libraries* can be installed in parallel. Great! (In reply to Michele Alzetta from comment #16) > So, if I understand the situation, the best thing is to install both: > > a) ncurses-6.0-r1 > > (slot 0, which has headers and libraries) for all the rest of my system, and > > b) ncurses-5.9-r101 for compatibility with dropbox only Yes. > Simplest way to do this is just mask ncurses-6.0 in slot 5 > > From the NEEDED.ELF file it definitely seems that dropbox requires ncurses > 5, although I still have to find any glitch in functioning It's just this one _curses.so library: X86_64;/opt/dropbox/_curses.so;;;libncurses.so.5,libpthread.so.0,libc.so.6;x86_64 None of the other files reference _curses.so, so maybe it's not really needed. I wonder if dropbox includes any command-line programs that might load this library somehow?
err... ok. I've read all comments, but i'm not sure of what i should do now. Right now i just can't emerge dropbox anymore ..?? How can i do ?
for unknown reasons dropbox ebuilds above version 3.6.8 .have ncurses-5.9-r101 dropped. Test case: get latest tarball (64bit in my case), unpack. oleg2 tmp # scanelf -qyRF "%F: %n" .dropbox-dist/ | sort | grep ncurses .dropbox-dist/dropbox-lnx.x86_64-3.17.31/_curses.so: libncurses.so.5,libpthread.so.0,libc.so.6 oleg2 tmp # But ebuild has no this stub ebuild dependency. In case box updated to ncurses-6 and then emerge --dpeclean ran, you have a system where drobpox will not run. Instlling ncurses-5.9-r101, which will install only libs sufficient fro dropbox and will not contaminate, because only consumer of this lib would be dropbox.
proposal to add ncurses dep back.
I added back the dep that was in 3.6.8 commit cf7a901f98941a46dc98a92751adea2225428ea0 Author: Jason Zaman <perfinion@gentoo.org> Date: Mon Apr 11 00:38:50 2016 net-misc/dropbox: version bump and add back ncurses 5 dep Package-Manager: portage-2.2.26