Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 560910 - net-misc/dropbox-3.6.8 requires sys-libs/ncurses-5.9-r101
Summary: net-misc/dropbox-3.6.8 requires sys-libs/ncurses-5.9-r101
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Jason Zaman
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-20 12:38 UTC by Michele Alzetta
Modified: 2016-04-10 16:47 UTC (History)
7 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
grep sys-libs/ncurses /var/db/pkg/*/*/*DEPEND (ncurses_depend.txt,36.07 KB, text/plain)
2015-09-25 16:18 UTC, Michele Alzetta
Details
/var/db/pkg/net-misc/dropbox-3.6.8/NEEDED.ELF.2 (NEEDED.ELF.2,6.54 KB, text/plain)
2015-09-26 21:44 UTC, Michele Alzetta
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michele Alzetta 2015-09-20 12:38:16 UTC
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
Comment 1 Alexandre Rostovtsev (RETIRED) gentoo-dev 2015-09-23 01:04:45 UTC
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).
Comment 2 Zac Medico gentoo-dev 2015-09-23 01:21:01 UTC
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
	)"
Comment 3 Alexandre Rostovtsev (RETIRED) gentoo-dev 2015-09-23 01:34:54 UTC
(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 :/
Comment 4 Zac Medico gentoo-dev 2015-09-23 02:53:55 UTC
This command will show all installed ncurses dependencies:

grep sys-libs/ncurses /var/db/pkg/*/*/*DEPEND
Comment 5 Michele Alzetta 2015-09-25 16:15:54 UTC
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
Comment 6 Michele Alzetta 2015-09-25 16:18:44 UTC
Created attachment 412888 [details]
grep sys-libs/ncurses /var/db/pkg/*/*/*DEPEND
Comment 7 Michele Alzetta 2015-09-25 16:22:31 UTC
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")
Comment 8 Michele Alzetta 2015-09-25 16:22:45 UTC
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
Comment 9 Michele Alzetta 2015-09-25 16:25:49 UTC
Portage version installed 2.2.20.1
Upgrading to portage 2.2.22 does not fix this
Comment 10 Zac Medico gentoo-dev 2015-09-26 17:24:24 UTC
(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.
Comment 11 Zac Medico gentoo-dev 2015-09-26 17:48:52 UTC
So, anyone who has this problem should simply mask ncurses-6 as follows:

echo '>=sys-libs/ncurses-6' >> /etc/portage/package.mask
Comment 12 Michele Alzetta 2015-09-26 19:07:51 UTC
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.
Comment 13 Zac Medico gentoo-dev 2015-09-26 20:40:09 UTC
(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.
Comment 14 Alexandre Rostovtsev (RETIRED) gentoo-dev 2015-09-26 21:03:56 UTC
(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.
Comment 15 Michele Alzetta 2015-09-26 21:44:44 UTC
Created attachment 413010 [details]
/var/db/pkg/net-misc/dropbox-3.6.8/NEEDED.ELF.2
Comment 16 Michele Alzetta 2015-09-26 21:58:27 UTC
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
Comment 17 Zac Medico gentoo-dev 2015-09-26 22:12:41 UTC
(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?
Comment 18 Thomas Capricelli 2015-11-10 17:21:30 UTC
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 ?
Comment 19 Oleh 2016-04-10 09:40:48 UTC
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.
Comment 20 Oleh 2016-04-10 09:41:51 UTC
proposal to add ncurses dep back.
Comment 21 Jason Zaman gentoo-dev 2016-04-10 16:47:11 UTC
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