>>> Preparing source in /var/tmp/portage/dev-python/pylint-1.3.0/work/pylint-1.3.0 ... make -j4 -C doc singlehtml make: Entering directory '/var/tmp/portage/dev-python/pylint-1.3.0/work/pylint-1.3.0/doc' sphinx-build -b singlehtml -d _build/doctrees . _build/singlehtml Traceback (most recent call last): File "/usr/lib/python-exec/python3.2/sphinx-build", line 9, in <module> load_entry_point('Sphinx==1.2.2', 'console_scripts', 'sphinx-build')() File "/usr/lib/python3.2/site-packages/sphinx/__init__.py", line 49, in main from sphinx import cmdline File "/usr/lib/python3.2/site-packages/sphinx/cmdline.py", line 22, in <module> from sphinx.application import Sphinx File "/usr/lib/python3.2/site-packages/sphinx/application.py", line 22, in <module> from docutils.parsers.rst import convert_directive_function, \ File "/usr/lib/python3.2/site-packages/docutils/parsers/rst/__init__.py", line 75, in <module> from docutils.parsers.rst import states File "/usr/lib/python3.2/site-packages/docutils/parsers/rst/states.py", line 116, in <module> from docutils.parsers.rst import directives, languages, tableparser, roles File "/usr/lib/python3.2/site-packages/docutils/parsers/rst/roles.py", line 78, in <module> from docutils.utils.code_analyzer import Lexer, LexerError File "/usr/lib/python3.2/site-packages/docutils/utils/code_analyzer.py", line 12, in <module> import pygments File "/usr/lib/python3.2/site-packages/pygments/__init__.py", line 37, in <module> from pygments.util import StringIO, BytesIO File "/usr/lib/python3.2/site-packages/pygments/util.py", line 224 return u'[%s-%s]' % (unichr(a), unichr(b)) ^ SyntaxError: invalid syntax Makefile:51: recipe for target 'singlehtml' failed make: *** [singlehtml] Error 1 make: Leaving directory '/var/tmp/portage/dev-python/pylint-1.3.0/work/pylint-1.3.0/doc' * ERROR: dev-python/pylint-1.3.0::gentoo failed (prepare phase): * emake failed elrond ~ # eix dev-python/sphinx [I] dev-python/sphinx Available versions: 1.1.3-r7 (~)1.2.1 (~)1.2.2 {doc latex test PYTHON_TARGETS="pypy python2_7 python3_2 python3_3 python3_4"} Installed versions: 1.2.2(21:25:49 08.08.2014)(doc latex -test PYTHON_TARGETS="python2_7 python3_2 -pypy -python3_3 -python3_4") Homepage: http://sphinx.pocoo.org/ http://pypi.python.org/pypi/Sphinx Description: Python documentation generator python-3.2 is eselected elrond ~ # emerge --info dev-python/pylint Portage 2.2.11-r1 (python 3.2.5-final-0, default/linux/x86/13.0/desktop/kde, gcc-4.8.3, glibc-2.19-r1, 3.12.6-gentoo i686) ================================================================= System Settings ================================================================= System uname: Linux-3.12.6-gentoo-i686-Pentium-R-_Dual-Core_CPU_E5300_@_2.60GHz-with-gentoo-2.2 KiB Mem: 2062036 total, 423452 free KiB Swap: 2088412 total, 2070908 free Timestamp of tree: Fri, 08 Aug 2014 08:15:01 +0000 ld GNU ld (GNU Binutils) 2.24 app-shells/bash: 4.2_p47 dev-java/java-config: 2.1.12-r1 dev-lang/python: 2.7.8, 3.2.5-r6, 3.3.5, 3.4.1 dev-util/cmake: 2.8.12.2-r1 dev-util/pkgconfig: 0.28-r2 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.12.4 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.6, 1.12.6, 1.13.4, 1.14.1 sys-devel/binutils: 2.24-r3 sys-devel/gcc: 4.7.3-r1, 4.8.3 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2-r1 sys-devel/make: 4.0-r1 sys-kernel/linux-headers: 3.16 (virtual/os-headers) sys-libs/glibc: 2.19-r1 Repositories: gentoo science lisp sunrise grozin ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="*" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /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="-O2 -march=native -pipe" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -march=i686 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms sign strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -march=native -pipe" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo" LANG="ru_RU.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j4" 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" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/science /var/lib/layman/lisp /var/lib/layman/sunrise /usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X a52 aac acpi alsa bash-completion berkdb blas bluetooth boehm-gc branding browserplugin bzip2 cairo cdda cdr consolekit cracklib crypt css cups curl cxx dbus declarative dirac doc dri dvd dvdnav dvdr emacs enca encode exif fam ffmpeg fftw firefox flac fltk fortran gd gdbm gif gmp gpm gsl gtk iconv imagemagick jpeg kde kipi kpathsea lapack latex lcms ldap leim libnotify lzma mad mmx mng modules mozilla mp3 mp4 mpeg mule ncurses nls nptl nsplugin offensive ogg opengl openmp pam pango pcre pdf phonon plasma plotutils png policykit ppds python qt3support qt4 readline schroedinger sdl semantic-desktop session speex spell sse sse2 ssl startup-notification svg tcl tcpd theora tiff tk truetype udev udisks umfpack unicode upower usb v4l2 vcd vorbis win32codecs wxwidgets x264 x86 xcb xcomposite xinerama xml xscreensaver xv xvid zlib" ABI_X86="32" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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" 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="ru" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="intel" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= dev-python/pylint-1.2.1 was built with the following: USE="doc -examples -test" PYTHON_TARGETS="python2_7 -pypy -python3_3 -python3_4"
dev-python/pylint $ USE=doc ebuild pylint-1.3.0.ebuild install ~/cvsPortage/gentoo-x86/dev-python/pylint $ ls /mnt/gen2/TmpDir/portage/dev-python/pylint-1.3.0/work/pylint-1.3.0/doc/_build/ doctrees singlehtml * python2_7: running distutils-r1_run_phase python_install_all >>> Completed installing pylint-1.3.0 into /mnt/gen2/TmpDir/portage/dev-python/pylint-1.3.0/image/ ~/cvsPortage/gentoo-x86/dev-python/pylint $ ls /mnt/gen2/TmpDir/portage/dev-python/pylint-1.3.0/image/usr/share/doc/pylint-1.3.0/html/ _images index.html _static
This problem has been solved by re-emerging pygments, sorry for the noise. But after re-emerging pygments and sphinx I'm having another problem: make -j1 -C doc singlehtml make: Entering directory '/var/tmp/portage/dev-python/pylint-1.3.0/work/pylint-1.3.0/doc' sphinx-build -b singlehtml -d _build/doctrees . _build/singlehtml Making output directory... Running Sphinx v1.2.2 Exception occurred: File "conf.py", line 51, in <module> from pylint.__pkginfo__ import version ImportError: No module named pylint.__pkginfo__ The full traceback has been saved in /var/tmp/portage/dev-python/pylint-1.3.0/temp/sphinx-err-_zupu1.log, if you want to report the issue to the developers. Please also report this if it was a user error, so that a better error message can be provided next time. A bug report can be filed in the tracker at <https://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks! Makefile:51: recipe for target 'singlehtml' failed make: *** [singlehtml] Error 1 make: Leaving directory '/var/tmp/portage/dev-python/pylint-1.3.0/work/pylint-1.3.0/doc' * ERROR: dev-python/pylint-1.3.0::gentoo failed (prepare phase): /var/tmp/portage/dev-python/pylint-1.3.0/temp/sphinx-err-_zupu1.log: -------------------------------------------------------------------- # Sphinx version: 1.2.2 # Python version: 3.2.5 # Docutils version: 0.12 release # Jinja2 version: 2.6 # Loaded extensions: Traceback (most recent call last): File "/usr/lib/python3.2/site-packages/sphinx/cmdline.py", line 253, in main warningiserror, tags, verbosity, parallel) File "/usr/lib/python3.2/site-packages/sphinx/application.py", line 107, in __init__ confoverrides or {}, self.tags) File "/usr/lib/python3.2/site-packages/sphinx/config.py", line 229, in __init__ execfile_(filename, config) File "/usr/lib/python3.2/site-packages/sphinx/util/pycompat.py", line 105, in execfile_ exec(code, _globals) File "conf.py", line 51, in <module> from pylint.__pkginfo__ import version ImportError: No module named pylint.__pkginfo__ --------------------------------------------------------------------
~/cvsPortage/gentoo-x86/dev-python/pylint $ USE=doc ebuild pylint-1.3.0.ebuild clean install yields * python2_7: running distutils-r1_run_phase python_install_all >>> Completed installing pylint-1.3.0 into /mnt/gen2/TmpDir/portage/dev-python/pylint-1.3.0/image/ ecompressdir: bzip2 -9 /usr/share/doc ecompressdir: bzip2 -9 /usr/share/man ~/cvsPortage/gentoo-x86/dev-python/pylint $ python -c "from pylint.__pkginfo__ import version" ~/cvsPortage/gentoo-x86/dev-python/pylint $ python3.3 -c "from pylint.__pkginfo__ import version" ~/cvsPortage/gentoo-x86/dev-python/pylint $ python3.4 -c "from pylint.__pkginfo__ import version" all return blank == success This problem has been solved by re-emerging pygments, You might try re-emerging pylint
I'm seeing this issue even after a fresh install of pygments. Looks like the same error as reported by Andrey. This looks like it is due to pylint not being installed when trying to install pylint with documentation. Can we find a way to build the pylint egg and put it in the path before building the documentation?
Possibly but is it the desired solution. In other ebuilds, a msg is simply put to user informing that the package need be installed to build the docs. It's the path of least resistance, a compromise
I'd vote that just printing a message is unacceptable because it adds more load to the user to accomplish what portage should be doing for them (installing package with docs). I'd also think that pylint might do with a patch to make this requirement moot but haven't looked at it to see how feasible that would be. Regardless, we seem to (in the occasional corner case) require an install of a python package that isn't live for various reasons and we should probably solve this generically.
(In reply to Alex Brandt from comment #6) > I'd vote that just printing a message is unacceptable because it adds more > load to the user to accomplish what portage should be doing for them > (installing package with docs). > yes this is a 'reasonable' assessment with which I agree. It's merely a form or resolution that has precedent however it doesn't make it a 'good' one. > I'd also think that pylint might do with a patch to make this requirement > moot but haven't looked at it to see how feasible that would be. > > Regardless, we seem to (in the occasional corner case) require an install of > a python package that isn't live for various reasons and we should probably > solve this generically. Agreed. feel free to proceed.
(In reply to Ian Delaney from comment #7) > yes this is a 'reasonable' assessment with which I agree. It's merely a form > or resolution that has precedent however it doesn't make it a 'good' one. Just to clarify, you're saying my proposal is agreeable but bad? > Agreed. feel free to proceed. If only I had the time. I was simply adding rhetoric to the already smoking ember.
(In reply to Alex Brandt from comment #8) > (In reply to Ian Delaney from comment #7) > > yes this is a 'reasonable' assessment with which I agree. It's merely a form > > or resolution that has precedent however it doesn't make it a 'good' one. > > Just to clarify, you're saying my proposal is agreeable but bad? I read it as saying that the existing ewarn message "solution" is not a good one. It's just what we have been doing thus far to work around the problem. Ian: Do you have some examples of ebuilds which output such a message? I would like to take a look.
(In reply to Mike Gilbert from comment #9) > > Ian: Do you have some examples of ebuilds which output such a message? I > would like to take a look. So you can dissect them, put them under scrutiny and declare them as improper ebuild writing? I might be guilty of drawing too long a bow here. I cannot remember this for a doc build but certainly for tests. i.e. emerge package to run testsuite. logilab-common did this I think, or the reverse I am not sure. My memory tells me that 1. months ago on looking at the first disaster of a tarball for a bump of ipython, it required the package to be installed for a doc build. While the next version of a tarball for that bumped version did that 'properly', and hence took away the need for a generic fix, Arfrever mentioned he knew how to do it, or at least that it could be done. 2. I recall there was a package where the (stupid) testsuite wouldn't run until it was installed. While trying to find a way to avoid installing the package to run tests, I couldn't. I recall Arfrever advising to just settle on elog msg to user to "if you want to run the testsuite, emerge the package then re-emerge with FEATURES=test". Since no-one clearly had an alternate proper fix and everyone was determined for second best, who am I to argue? 3. No I DO NOT remember what the package was. It was at least 6 months ago and I'll tell you when I have a photographic memory. I might also be remembering incorrectly if only ever so slightly. 4. IUSE test and doc are rather similar; global use flags often used and pertinent in pythonic packages. For all the packages I have done I haven't yet learned a 'proper fix' for install package first run USE=test or doc second, proving it a corner case and fundamentally bad or wrong authorship by maintainers. I have just gleaned that it almost certainly can be done. distutils_install_for_testing was written as an attempt to fix this blunder for testsuites, mainly for logilab-common itself I think, but on last I saw or heard it is close to unusable for a number of distinct reasons. (In reply to Alex Brandt from comment #8) > Just to clarify, you're saying my proposal is agreeable but bad? > When I was commenting as a form or resolution that has precedent, it was "a msg is simply put to user informing that the package need be installed", "It's the path of least resistance, a compromise". Assessing this as bad is taking it to another level. Your proposal "that pylint might do with a patch to make this requirement moot" is hardly what I would call bad. What I want to know is how you managed to seemingly assign the assessment of one onto the other. To put a msg via elog is light weight and nothing more than a workaround. To fix it is the better path, but sigh "If only I had the time."
I dug into this and found that it actually was missing the PYTHONPATH for doc building. I have a working version in my overlay that I'll commit soon that resolves this.
Committed fix to tree. Added PYTHONPATH="${S}" to documentation build.