[libvirt] [PATCH 00/11] scripts: convert many scripts from perl to python

Daniel P. Berrangé berrange at redhat.com
Thu Sep 5 12:22:29 UTC 2019


On Thu, Sep 05, 2019 at 02:20:55PM +0200, Ján Tomko wrote:
> On Thu, Sep 05, 2019 at 12:48:34PM +0100, Daniel P. Berrangé wrote:
> > On Thu, Sep 05, 2019 at 01:43:32PM +0200, Ján Tomko wrote:
> > > On Thu, Sep 05, 2019 at 11:21:55AM +0100, Daniel P. Berrangé wrote:
> > > [snipping the zoo]
> > > 
> > > >
> > > > Daniel P. Berrangé (11):
> > > >  cfg.mk: fix comment detection for python semicolon check
> > > >  docs: rewrite hvsupport.html page generator in python
> > > >  docs: rewrite ACL permissions checker in Python
> > > >  docs: rewrite symfile sorting checker in Python
> > > >  docs: rewrite symfile library checker in Python
> > > >  docs: rewrite augest test generator in Python
> > > >  docs: rewrite po file minimizer in Python
> > > >  docs: rewrite duplicate header checker in Python
> > > >  docs: rewrite whitespace checker in Python
> > > >  docs: rewrite mock inline checker in Python
> > > >  docs: rewrite header ifdef checker in Python
> > > >
> > > 
> > > As I said in RE: Language Consolidation,
> > > this could use a preceding HACKING change with justification.
> > > 
> > > Also, rewrite to a new language does mean throwing away debugged and
> > > optimized code - but if the end goal is to drop automake and configure,
> > > overall the build will be much quicker anyway.
> > 
> > Debugged yes, but I don't think I'd call this optimized code - it
> > is pretty much all a quick hack.
> > 
> 
> I stand by that. I actually ran a profiler on some of these back in 2016 :)
> 
> > > Also, this does not work with Python 3.6 on my Gentoo:
> > > Traceback (most recent call last):
> > >  File "./build-aux/prohibit-duplicate-header.py", line 48, in <module>
> > >    if check_file(filename):
> > >  File "./build-aux/prohibit-duplicate-header.py", line 30, in check_file
> > >    for line in fh:
> > >  File "/usr/lib/python-exec/python3.6/../../../lib64/python3.6/encodings/ascii.py", line 26, in decode
> > >    return codecs.ascii_decode(input, self.errors)[0]
> > > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 548: ordinal not in range(128)
> > 
> > Is your locale ($LANG / $LC_*) not using a UTF-8 character set perhaps ?
> > 
> 
> Running 'print (locale.getlocale())' in a manually invoked shell has it:
> ('en_US', 'UTF-8')
> when invoked via 'make prohibit-duplicate-header' the locale is not set:
> (None, None)
> 
> That seems to be gnulib's fault:
> top/maint.mk:156:export LC_ALL = C

Interesting, I wonder why that gnulib thing didn't affect me too.

Anyway, it should be easy enough to fix this to guarantee UTF8
for python

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list