Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 613896 - net-im/gajim-0.16.6 (via dev-python/pycryptodome -> dev-python/cffi) w/ dev-python/pycparser-2.17: KeyError: 'pycparser.lextab'
Summary: net-im/gajim-0.16.6 (via dev-python/pycryptodome -> dev-python/cffi) w/ dev-p...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Python Gentoo Team
URL: https://github.com/eliben/pycparser/i...
Whiteboard:
Keywords: REGRESSION
Depends on:
Blocks: 611628
  Show dependency tree
 
Reported: 2017-03-26 13:27 UTC by Michał Górny
Modified: 2023-02-22 15:25 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-03-26 13:27:26 UTC
I'm not sure whether it's problem in pycparser itself, or how gajim uses it but after installing it, it doesn't start:

$ gajim
tworzenie katalogu /home/mgorny/.cache/gajim
Traceback (most recent call last):
  File "gajim.py", line 492, in <module>
    from gui_interface import Interface
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/gajim/gui_interface.py", line 63, in <module>
    from chat_control import ChatControlBase
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/gajim/chat_control.py", line 49, in <module>
    from message_control import MessageControl
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/gajim/message_control.py", line 34, in <module>
    from common.stanza_session import EncryptedStanzaSession, ArchivingStanzaSession
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/gajim/common/stanza_session.py", line 44, in <module>
    from Crypto.Cipher import AES
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/Crypto/Cipher/__init__.py", line 78, in <module>
    from Crypto.Cipher._mode_ecb import _create_ecb_cipher
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/Crypto/Cipher/_mode_ecb.py", line 29, in <module>
    from Crypto.Util._raw_api import (load_pycryptodome_raw_lib,
  File "/usr/lib64/python2.7/site-packages/gajim/common/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib64/python2.7/site-packages/Crypto/Util/_raw_api.py", line 89, in <module>
    Array = ffi.new("uint8_t[1]").__class__.__bases__
  File "/usr/lib64/python2.7/site-packages/cffi/api.py", line 248, in new
    cdecl = self._typeof(cdecl)
  File "/usr/lib64/python2.7/site-packages/cffi/api.py", line 168, in _typeof
    result = self._typeof_locked(cdecl)
  File "/usr/lib64/python2.7/site-packages/cffi/api.py", line 153, in _typeof_locked
    type = self._parser.parse_type(cdecl)
  File "/usr/lib64/python2.7/site-packages/cffi/cparser.py", line 450, in parse_type
    return self.parse_type_and_quals(cdecl)[0]
  File "/usr/lib64/python2.7/site-packages/cffi/cparser.py", line 453, in parse_type_and_quals
    ast, macros = self._parse('void __dummy(\n%s\n);' % cdecl)[:2]
  File "/usr/lib64/python2.7/site-packages/cffi/cparser.py", line 260, in _parse
    ast = _get_parser().parse(csource)
  File "/usr/lib64/python2.7/site-packages/cffi/cparser.py", line 40, in _get_parser
    _parser_cache = pycparser.CParser()
  File "/usr/lib64/python2.7/site-packages/pycparser/c_parser.py", line 87, in __init__
    outputdir=taboutputdir)
  File "/usr/lib64/python2.7/site-packages/pycparser/c_lexer.py", line 66, in build
    self.lexer = lex.lex(object=self, **kwargs)
  File "/usr/lib64/python2.7/site-packages/pycparser/ply/lex.py", line 911, in lex
    lexobj.readtab(lextab, ldict)
  File "/usr/lib64/python2.7/site-packages/pycparser/ply/lex.py", line 216, in readtab
    lextab = sys.modules[tabfile]
KeyError: 'pycparser.lextab'




--
Portage 2.3.5 (python 3.5.3-final-0, default/linux/amd64/13.0/desktop, gcc-5.4.0, glibc-2.24-r1, 4.10.0-pf2-mgorny-amd64+ x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.10.0-pf2-mgorny-amd64+-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_3800+-with-gentoo-2.3
KiB Mem:     4046916 total,    102996 free
KiB Swap:    1502072 total,   1501840 free
Timestamp of repository gentoo: Sun, 26 Mar 2017 04:22:19 +0000
sh bash 4.4_p12
ld GNU gold (Gentoo 2.27 p1.0 2.27) 1.12
distcc 3.2rc1 x86_64-pc-linux-gnu [enabled]
ccache version 3.3.4 [disabled]
app-shells/bash:          4.4_p12::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.24.1-r1::gentoo
dev-lang/python:          2.7.13::gentoo, 3.4.6::gentoo, 3.5.3::gentoo, 3.6.0::gentoo
dev-util/ccache:          3.3.4::gentoo
dev-util/cmake:           3.7.2::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.24.2::gentoo
sys-apps/sandbox:         2.10-r4::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.59-r7::gentoo, 2.61-r2::gentoo, 2.62-r1::gentoo, 2.63-r1::gentoo, 2.64::gentoo, 2.65-r1::gentoo, 2.67::gentoo, 2.68::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.27::gentoo
sys-devel/gcc:            5.4.0-r3::gentoo, 6.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r4::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.24-r1::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-umask: 027
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    priority: -1000

python
    location: /home/mgorny/git/python-repo
    sync-umask: 027
    masters: gentoo

mgorny
    location: /home/mgorny/git/mgorny-repo
    sync-umask: 027
    masters: gentoo
    priority: 10000

Installed sets: @mg_depends_cb_agent, @mg_depends_qaweb
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CC="x86_64-pc-linux-gnu-gcc-5.4.0"
CFLAGS="-march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -O2 -pipe -frecord-gcc-switches"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
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"
CXX="x86_64-pc-linux-gnu-g++-5.4.0"
CXXFLAGS="-march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -O2 -pipe -frecord-gcc-switches"
DISTDIR="/srv/nfs/common/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y --ask --keep-going --quiet-build=n --dynamic-deps=n"
FCFLAGS="-march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -O2 -pipe -frecord-gcc-switches"
FEATURES="assume-digests binpkg-logs binpkg-multi-instance buildpkg cgroup collision-protect config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms sign strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync webrsync-gpg"
FFLAGS="-march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=512 -O2 -pipe -frecord-gcc-switches"
GENTOO_MIRRORS="http://mirror.netcologne.de/gentoo/ http://gentoo.mirror.web4u.cz/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://gentoo.mirror.pw.edu.pl/ http://ftp.vectranet.pl/gentoo/ http://ftp.fi.muni.cz/pub/linux/gentoo/"
INSTALL_MASK="/test /usr/share/locale -/usr/share/locale/pl"
LANG="pl_PL.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j12"
PKGDIR="/srv/nfs/common/packages/athlon64"
PORTAGE_COMPRESS="lzip"
PORTAGE_COMPRESS_FLAGS="-9"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --times --compress --force --whole-file --delete --stats --timeout=45 --exclude=/distfiles --exclude=/packages --exclude=/local --exclude=CVS --exclude=/metadata/cache --omit-dir-times"
PORTAGE_TMPDIR="/tmp"
USE="3dnow 3dnowext X a52 aac acl adns aio alsa amd64 ayatana bash-completion bluetooth branding btrfs bzip2 cairo caps cdda cdr cli crypt cups curl cxx dbus djvu dri dts dvb dvd dvdr egl emboss exif fftw firefox flac fontconfig fortran gd gif glamor gmp gnuplot gnutls gphoto2 gstreamer gtk iconv idn imagemagick ipv6 jpeg jpeg2k kate latex lcms libass libatomic liblockfile libnotify libproxy libsamplerate libsecret libtiger lz4 lzma lzo mad mmap mmxext mng modules mp3 mp4 mpeg mtp multilib ncurses nls nptl ogg openal opencl opengl openmp openvg opus osmesa pam pango pch pcre pcre-jit pdf plotutils png policykit postscript ppds pulseaudio qt3support readline sctp sdl seccomp session slang smp sndfile speex spell sse3 ssl startup-notification svg systemd t1lib tcpd threads tiff truetype udev udisks unicode upower usb v4l2 vaapi vhosts vim-syntax vorbis wavpack wayland webp wmf wxwidgets x264 xattr xcb xft xml xpm xv xvid xvmc zeroconf zlib zsh-completion" ABI_X86="64 32" ALSA_CARDS="hda-intel emu10k1 mpu401 pcsp virmidi" APACHE2_MODULES="socache_shmcb unixd actions alias deflate filter mime mime_magic negotiation rewrite" 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="mmx mmxext sse sse2 3dnow 3dnowext sse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" L10N="pl" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl" LIRC_DEVICES="serial" LLVM_TARGETS="*" NGINX_MODULES_HTTP="gzip limit_conn limit_req rewrite spdy uwsgi" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4 jython2_7 pypy pypy3 python3_5 python3_6" QEMU_SOFTMMU_TARGETS="aarch64 arm i386 ppc ppc64 ppc64abi32 x86_64" QEMU_USER_TARGETS="aarch64 arm ppc ppc64" RUBY_TARGETS="ruby23" SANE_BACKENDS="artec_eplus48u" USERLAND="GNU" VIDEO_CARDS="nouveau radeon vesa r600 s3" 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="INVALID"
Unset:  CPPFLAGS, CTARGET, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

net-im/gajim-0.16.6::gentoo was built with the following:
USE="X crypt dbus libnotify nls spell srv zeroconf -gnome -gnome-keyring -idle -jingle -kde -networkmanager -test -xhtml" ABI_X86="64" PYTHON_TARGETS="python2_7"


dev-python/pycparser-2.17::gentoo was built with the following:
USE="-test" ABI_X86="64" PYTHON_TARGETS="pypy pypy3 python2_7 python3_4 python3_5 python3_6"
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-03-26 13:35:41 UTC
Works after downgrading pycparser to 2.14. The middle version fails the same.
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-03-26 13:54:02 UTC
Doesn't happen with dev-python/pycrypto. I wonder if that's a generic bug in pycparser, or sth CFFI-related.
Comment 3 Daniel Robbins 2017-12-25 02:14:45 UTC
Appears to be an issue with pycparser as downgrading to 2.17 resolves the issue. I recommend masking 2.18 until this issue is properly addressed.
Comment 4 Amadeusz Żołnowski (RETIRED) gentoo-dev 2017-12-31 17:29:49 UTC
https://github.com/eliben/pycparser/pull/198#issuecomment-317001670
Comment 5 Hanno Böck gentoo-dev 2019-05-29 15:21:08 UTC
Is this still an issue?
Comment 6 Amadeusz Żołnowski (RETIRED) gentoo-dev 2019-05-30 21:00:34 UTC
I believe it is no longer.
Comment 7 Hanno Böck gentoo-dev 2019-06-01 10:18:14 UTC
Okay, closing this as I believe this is deprecated and only affects older versions.
Please re-open if issue persists with a current system.
Comment 8 N. Andrew Walsh 2019-11-25 16:00:10 UTC
this bug just recurred (or a similar issue) with pycparser-2.19-r1. In this case, emerge failed:

-------------------
copying pycparser/ply/yacc.py -> /var/tmp/portage/dev-python/pycparser-2.19-r1/work/pycparser-2.19-python3_6/lib/pycparser/ply
copying pycparser/ply/cpp.py -> /var/tmp/portage/dev-python/pycparser-2.19-r1/work/pycparser-2.19-python3_6/lib/pycparser/ply
copying pycparser/ply/__init__.py -> /var/tmp/portage/dev-python/pycparser-2.19-r1/work/pycparser-2.19-python3_6/lib/pycparser/ply
ly
copying pycparser/_c_ast.cfg -> /var/tmp/portage/dev-python/pycparser-2.19-r1/work/pycparser-2.19-python3_6/lib/pycparser
warning: build_py: byte-compiling is disabled, skipping.

Traceback (most recent call last):
  File "_build_tables.py", line 31, in <module>
    import lextab
ModuleNotFoundError: No module named 'lextab'
 * ERROR: dev-python/pycparser-2.19-r1::gentoo failed (compile phase):
-------------------

Can you please re-open? I had the same issue with pycparser-2.18. I'm not sure why it's recurring.

Cheers
Comment 9 junkmailnotread 2019-12-02 10:57:34 UTC
Same here.

A temporary fix is to comment out line 27 in pycparser-2.19-r1.ebuild:

--- /usr/portage/dev-python/pycparser/pycparser-2.19-r1.ebuild	2019-12-02 03:09:38.000000000 +0000
+++ /tmp/pycparser-2.19-r1.ebuild	2019-12-02 10:39:16.000000000 +0000
@@ -24,7 +24,7 @@
 
 python_prepare_all() {
 	# remove the original files to guarantee their regen
-	rm pycparser/{c_ast,lextab,yacctab}.py || die
+	#rm pycparser/{c_ast,lextab,yacctab}.py || die
 
 	# kill sys.path manipulations to force the tests to use built files
 	sed -i -e '/sys\.path/d' tests/*.py || die

This allows pycparser-2.19-r1 to build, but whether it is still correct I do not know.
Comment 10 Sergey Torokhov 2019-12-27 09:47:04 UTC
Please, reopen. Failed to emerge pycparcer-2.19-r1:

  import lextab
ModuleNotFoundError: No module named 'lextab'
 * ERROR: dev-python/pycparser-2.19-r1::gentoo failed (compile phase)
Comment 11 Sergey Torokhov 2019-12-27 09:56:33 UTC
(In reply to Sergey Torokhov from comment #10)
> Please, reopen. Failed to emerge pycparcer-2.19-r1:
> 
>   import lextab
> ModuleNotFoundError: No module named 'lextab'
>  * ERROR: dev-python/pycparser-2.19-r1::gentoo failed (compile phase)

Fixed for me after emerging dev-python/{cffi,mako,xcffib,zstandard,cairocffi}.

Maybe update one of this packages repairs emerging of pycparser. Maybe it dev-python/mako as it supplies lexer.py
Comment 12 Edmar Wiggers 2019-12-27 19:06:56 UTC
(In reply to Sergey Torokhov from comment #11)

Happened to me also.
This fixed it, indeed:

emerge dev-python/mako
Comment 13 hacking 2019-12-30 11:10:27 UTC
(In reply to Edmar Wiggers from comment #12)
> (In reply to Sergey Torokhov from comment #11)
> 
> Happened to me also.
> This fixed it, indeed:
> 
> emerge dev-python/mako

emerge dev-python/mako did not help for me.
So, I did emerge -u dev-python/cffi, and then it worked.
Comment 14 Edmar Wiggers 2020-01-01 01:28:38 UTC
(In reply to hacking from comment #13)
> emerge dev-python/mako did not help for me.
> So, I did emerge -u dev-python/cffi, and then it worked.

It just happened to me again. This time, I just did...

emerge dev-python/pycparser

...and it worked. Really seems some odd runtime emerge/compile problem.

Note: I do not need dev-python/pycparser by itself, but it gets pulled by other(s) package(s).
Comment 15 Valmor de Almeida 2020-01-15 19:38:40 UTC
Same problem here but emerge --oneshot pycparser did not fix it.
Comment 16 Valmor de Almeida 2020-01-15 19:40:47 UTC
(In reply to Valmor de Almeida from comment #15)
> Same problem here but emerge --oneshot pycparser did not fix it.

BTW, the following worked:

emerge --oneshot dev-python/mako
emerge --oneshot dev-python/pycparser
Comment 17 Thomas Lindroth 2020-05-04 09:12:47 UTC
I hit the "No module named lextab" problem during a dev-python/pycparser-2.19-r1 to 2.20 upgrade. All I did to fix it was running "emerge -1 dev-python/pycparser" over and over. On the 5th try it installed fine. The build fails because of some race condition in the build system.

bug 701878 is a duplicate.
Comment 18 junkmailnotread 2020-05-04 10:31:11 UTC
Same here with dev-python/pycparser-2.20.

The suggestions to emerge dev-python/mako seemingly fixed it for me.