Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 519318 - dev-python/docutils-0.12 - TypeError: string argument without an encoding
Summary: dev-python/docutils-0.12 - TypeError: string argument without an encoding
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Python Gentoo Team
Keywords: PATCH
Depends on:
Reported: 2014-08-07 14:21 UTC by Helmut Jarausch
Modified: 2018-04-24 16:51 UTC (History)
1 user (show)

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


Note You need to log in before you can comment on or make changes to this bug.
Description Helmut Jarausch 2014-08-07 14:21:56 UTC
This occurs with Python-3.3.5 and docutils-0.12 (and previous versions?)

A call to sphinx-build with options -T -P gives

[autodoc] import BibLib
[autodoc] => <module 'BibLib' from '/home/jarausch/Bib_NDev/IGPM_Bib_Doc/IGPM_Bib/'>
[autodoc] getattr(_, 'reduce')
[autodoc] => <built-in function reduce>
Exception occurred while building, starting debugger:
Traceback (most recent call last):
  File "/usr/lib64/python3.3/site-packages/sphinx/", line 254, in main, filenames)
  File "/usr/lib64/python3.3/site-packages/sphinx/", line 212, in build
  File "/usr/lib64/python3.3/site-packages/sphinx/builders/", line 214, in build_update
    'out of date' % len(to_build))
  File "/usr/lib64/python3.3/site-packages/sphinx/builders/", line 234, in build
    purple, length):
  File "/usr/lib64/python3.3/site-packages/sphinx/builders/", line 134, in status_iterator
    for item in iterable:
  File "/usr/lib64/python3.3/site-packages/sphinx/", line 477, in update_generator
    self.read_doc(docname, app=app)
  File "/usr/lib64/python3.3/site-packages/sphinx/", line 624, in read_doc
  File "/usr/lib64/python3.3/site-packages/docutils/", line 218, in publish
  File "/usr/lib64/python3.3/site-packages/docutils/", line 199, in apply_transforms
  File "/usr/lib64/python3.3/site-packages/docutils/transforms/", line 171, in apply_transforms
  File "/usr/lib64/python3.3/site-packages/docutils/transforms/", line 40, in apply
    footer_nodes = self.generate_footer()
  File "/usr/lib64/python3.3/site-packages/docutils/transforms/", line 62, in generate_footer
  File "/usr/lib64/python3.3/site-packages/docutils/utils/", line 461, in relative_path
    source_parts = os.path.abspath(source or type(target)('dummy_file')
TypeError: string argument without an encoding
> /usr/lib64/python3.3/site-packages/docutils/utils/
-> source_parts = os.path.abspath(source or type(target)('dummy_file')
(Pdb) p sources
(Pdb) p target
(Pdb) type(target)
<class 'bytes'>
(Pdb) type(source)
<class 'NoneType'>
(Pdb) os.path.abspath(bytes('dummy_file'))
*** TypeError: string argument without an encoding

The code "type(target)('dummy_file')" doesn't look sane.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-08-07 15:19:20 UTC
1) Please post your `emerge --info' output in a comment.
2) Please attach the entire build log to this bug report.
Comment 2 Helmut Jarausch 2014-08-07 15:25:46 UTC
(In reply to Jeroen Roovers from comment #1)
> 1) Please post your `emerge --info' output in a comment.
  Please see below
> 2) Please attach the entire build log to this bug report.
  Why? It builds without any problems.
  It occurs when I apply it, i.e. invoke sphinx-build

Independent of my configuration,
bytes('some string')  doesn't work in Python3 since it needs an encoding.
So, I don't understand the code snippet mentioned in my bug report.

emerge --info
Portage 2.2.11_p4 (python 3.3.5-final-0, default/linux/amd64/13.0/desktop, gcc-4.9.1, glibc-2.19-r1, 3.16.0-gentoo x86_64)
System uname: Linux-3.16.0-gentoo-x86_64-AMD_Phenom-tm-_II_X4_940_Processor-with-gentoo-2.2
KiB Mem:     7906784 total,    328688 free
KiB Swap:    1048572 total,   1048572 free
Timestamp of tree: Thu, 07 Aug 2014 09:45:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p47
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.8, 3.3.5-r1, 3.4.1
dev-util/ccache:          3.1.9-r3
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.8.5-r4, 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.4, 4.8.3, 4.9.1
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 local sunrise
ACCEPT_KEYWORDS="amd64 ~amd64"
CFLAGS="-mtune=native -O2 -msse3 -pipe"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb /var/lib/neatx/home"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /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="-mtune=native -O2 -msse3 -pipe"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
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"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/portage/layman/sunrise"
USE="3dnow 3dnowext 3dnowprefetch X a52 aac acl acpi alsa amd64 avahi berkdb branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg fftw firefox flac fortran fuse gdbm gfortran gif gimp gpm gtk gtk3 iconv ipv6 jpeg lapack lcms libnotify mad mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf png policykit ppds python qt qt3support qt4 readline sdl session smp spell sqlite sqlite3 sse sse2 sse3 sse4a ssl startup-notification svg systemd tcl tcpd threads tiff tk truetype udev udisks unicode upower usb vorbis wxwidgets x264 xcb xml xulrunner xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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" GRUB_PLATFORMS="pc multiboot" INPUT_DEVICES="keyboard mouse evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3 python3_4" RUBY_TARGETS="ruby21" USERLAND="GNU" VIDEO_CARDS="ati radeon fglrx" 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.3 3.4"
Comment 3 Helmut Jarausch 2014-08-07 17:50:09 UTC
The following patch seems to fix it

--- docutils/utils/     2014-08-06 18:26:21.000000000 +0200
+++ docutils/utils/  2014-08-07 18:42:03.743833443 +0200
@@ -458,6 +458,8 @@
     If there is no common prefix, return the absolute path to `target`.
+    if type(target) == bytes :
+      target= target.decode()
     source_parts = os.path.abspath(source or type(target)('dummy_file')
     target_parts = os.path.abspath(target).split(os.sep)
Comment 4 Ian Delaney (RETIRED) gentoo-dev 2014-08-08 01:23:58 UTC
Your ? in the Description kind of raises ? to me. However, before i actually run the patch, should not
if type(target) == bytes :
if type(target) == bytes:

Also this patch looks as if it warrants submitting upstream, yes?
Comment 5 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-04-24 16:51:49 UTC
Is this still relevant for 0.14?