Summary: | sys-libs/ncurses-5.7 DB->get: method not permitted before handle's open method | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Graham Murray <gmurray> |
Component: | [OLD] Core system | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | beolach+gb, candrews, caster, che, dan.dickey, dickey, dkarasik, Dries.Kimpe, heiko, jrmalaq, lack, mail, Martin.vGagern, mgorny, octoploid, pauldv, pqGungnir, Sergiy.Borodych, voyageur, zzam |
Priority: | High | ||
Version: | 2008.0 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 245374 |
Description
Graham Murray
2008-11-03 09:13:04 UTC
+1 on amd64 We should mask sys-libs/ncurses-5.7 until the problem is resolved. (In reply to comment #1) > +1 on amd64 > We should mask sys-libs/ncurses-5.7 until the problem is resolved. > anoyher reason to mask ncurses-5.7: see bug 245374 this might be caused by the berkdb useflag .... im just now recompiling it without this flag ... will report back soo. this fixed it. Please just recompile ncurses without the berkdb useflag (that is .. unless you need it). Works on amd64 like a charm now. I restarted my pc and while restarting i saw HEPS of this messages ... Now after the kernel is loaded i get : "/sbin/rc error while loading shared libaries libdb-4.6.so cannot open shared object file.No such file or directory" BUt the real problem is that i cant login to my box at all cause it says: "unable to determine your tty name" Any solution is more than welcome ...cause if i cant login i cant downgrade ! (In reply to comment #4) > this fixed it. Please just recompile ncurses without the berkdb useflag (that > is .. unless you need it). > > Works on amd64 like a charm now. > shouldn't it be masked in portage, then? Solved with chrooting :P was silly me i thought i did not made it into the shell cause of DB->get: method not permitted before handle's open method but i was :D so i just emerging without berkdb use flag sorted it out *** Bug 245378 has been marked as a duplicate of this bug. *** Furthermore, ncurses-5.7 now collides with rxvt-unicode (Probably you should look at Bug #192083) %% cvs diff Index: package.mask =================================================================== RCS file: /var/cvsroot/gentoo-x86/profiles/package.mask,v retrieving revision 1.9131 diff -u -r1.9131 package.mask --- package.mask 3 Nov 2008 13:05:34 -0000 1.9131 +++ package.mask 3 Nov 2008 16:00:37 -0000 @@ -29,6 +29,11 @@ #--- END OF EXAMPLES --- +# Jeremy Olexa <darkside@gentoo.org> (3 Nov 2008) +# Proxy commit for Cardoe, ncurses-5.7 seems broke with USE=berkdb and is +# causing issues for users, see bug #245370 +=sys-libs/ncurses-5.7 + # Daniel Gryniewicz <dang@gentoo.org> (2 Nov 2008) # Feed counts and updates seem to be broken =net-news/liferea-1.4.21b Compiling with berkdb USE flag worked for me. seeing that just the berkdb useflag seems to be disabled (-berkdb%) on older versions i think to mask the whole package might be overkill. Only happens with bdb-4.6, works up to bdb-4.5. (In reply to comment #5) > ... > Now after the kernel is loaded i get : > "/sbin/rc error while loading shared libaries libdb-4.6.so cannot open shared > object file.No such file or directory" > ... (In reply to comment #0) > After installing sys-libs/ncurses-5.7, the message "DB->get: method not > permitted before handle's open method" is frequently displayed on the terminal > when invoking a command. > The same here and the solution was to emerge ncurse-5.6-r2. ncurses-5.7 also breaks mc (GNU Midnight Commander). The up- and down-arrow keys don't work and mc is displayed in black&white... Please note, that the berkdb issues go further than displaying anoying error messages. What happens is that ncurses will fail to find terminal information for your particular terminal and falls back to some very dumb kind of terminal type. Apps like mc need terminal info (but even less needs it), and will function degraded or not at all when it isn't present. (In reply to comment #5) You can try to override the login sequence altogether by appending the following to your kernel command line: "init=/bin/bash" (or "init=/bin/sash" when your library loading is really broken). Don't forget in this case to manually mount your disk read/write (and to mount other essential partitions). The above action skips the entire init system and as such also login and the creation of pseudo-terminals. Please when finishing, also remount your partitions as read-only again, or initiate a normal boot by issuing: "exec /sbin/init" If someone manages to shoot him/herself in the foot by downgrading ncurses from 5.7 to 5.6 due to this bug, here are two tarballs which MIGHT help getting problems on your box fixed:
> http://coloss.us.to/ncurses-5.6-r2.tbz2 (~amd64 USE="unicode")
> http://coloss.us.to/ncurses-5.6-r2_32BIT_MARCH-NOCONA.tbz2 (x86 USE="unicode")
Just untar to / (`tar xzpf /path/to/downloaded/ncurses-5.6-r2*.tbz2 -C /`) and bash should start to work again.
Hth.
(In reply to comment #13) > Only happens with bdb-4.6, works up to bdb-4.5. > sys-libs/db is slotted, and I've got both 4.5 and 4.6. How would I get ncurses to use 4.5 (other than unmerging 4.6)? hmm - there are several comments. Aside from that about db4.6, they
seem to lack detail. For db4.6, I just did a build (on Debian/testing)
using db4.6, and ensured (both at configure time and run time by unsetting
TERMINFO, TERMINFO_DIRS and installing into a separate location) that
it's using the hashed-database (checked with strace).
Version:
ii libdb4.6-dev 4.6.21-11
> ldd xmas
linux-gate.so.1 => (0xb7f78000)
libncursesw.so.5 => /usr/build/ncurses/ncurses-5.7-20081213/lib/libncursesw.so.5 (0xb7f11000)
libdb-4.6.so => /usr/lib/libdb-4.6.so (0xb7dde000)
libutil.so.1 => /lib/i686/cmov/libutil.so.1 (0xb7dc2000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7d9c000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7c41000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7c3d000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7c24000)
/lib/ld-linux.so.2 (0xb7f79000)
That (and the other test-programs) have color, etc. I'm not seeing a
"DB->get:" message - perhaps it's only from certain programs.
I checked that ncurses' examples of termcap programs (demo_termcap,
railroad) work.
Likewise - for me - the keyboard works (shifted up/down arrows).
I see from some comments that removing the termcap library is said to
break slang (which is a little surprising, since slang's had its own
implementation of the termcap/terminfo libraries for a long time.
Probably what was meant is that the ebuild removed the file-system
terminfo database. slang's unable to read the hashed-database (no
surprise - it doesn't read ncurses extended data which is from 2000).
I'll look a little further, to see if I can make bash break it.
Bug 245378 had additional information - the problem is that the code (since ncurses 5.6 - 20080819) did not have a check for the open() call of db. will fix... fixed here - 20081213 + add check for failure to open hashed-database needed for db4.6 (GenToo #245370). ive added the fix from upstream to 5.7-r2 |