lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LilyPond-Book on Windows


From: David Kastrup
Subject: Re: LilyPond-Book on Windows
Date: Thu, 03 Apr 2014 14:44:07 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

The list or its Gmane mirror seems sort of messed up.  I think I
answered something further down in the line already.

"Br. Samuel Springuel" <address@hidden> writes:

> I'm having trouble using lilypond-book on my Windows machine.  The
> program sees to hang during the initial run of the typesetting engine
> that's used to determine the page settings.  In this case, by hang I
> mean that everything proceeds normally up to this point, but then
> nothing happens, even if left for several hours, until I eventually
> use a KeyboardInterrupt to arrest the process.
>
> This happens with two different typesetting engines (lualatex and
> pdflatex), both of which work on other documents.  This leads me to
> suspect that there's a problem in lilypond-book itself.
>
> Any ideas as to what the problem might be?

>> lilypond-book.py (GNU LilyPond) 2.18.2
>> Reading Advent-Christmas.lytex...
>> Running `lualatex --shell-escape' on file 
>> `c:\docume~1\admin\locals~1\temp\tmpgz
>> qsfb.tex' to detect default page settings.
>>
>> Executing: lualatex --shell-escape 
>> c:\docume~1\admin\locals~1\temp\tmpgzqsfb.tex

Sigh.  I suspect

    ### unknown why this is necessary
    universal_newlines = True
    if sys.platform == 'mingw32':
        universal_newlines = False
    if (sys.platform == 'mingw32') and (sys.version_info < (2, 6)):
        ### use os.system to avoid weird sleep() problems on
        ### GUB's python 2.4.2 on mingw
        # make file to write to
        output_dir = tempfile.mkdtemp()
        output_filename = os.path.join(output_dir, 'output.txt')
        # call command
        cmd += " > %s" % output_filename
        returncode = os.system(cmd)
        parameter_string = open(output_filename).read()
        if returncode != 0:
            warning (_ ("Unable to auto-detect default settings:\n"))
        # clean up
        os.remove(output_filename)
        os.rmdir(output_dir)
    else:
        proc = subprocess.Popen (cmd,
            env=run_env,
            universal_newlines=universal_newlines,
            shell=True,
            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        (parameter_string, error_string) = proc.communicate ()
        if proc.returncode != 0:
            warning (_ ("Unable to auto-detect default settings:\n%s")
                    % error_string)
    os.unlink (tmpfile)

in python/book_latex.py

here.  This will be due to one of


commit aa89d7b8d687e42cdbf11b14dc8e0b4827a8aa9e
Author: David Kastrup <address@hidden>
Date:   Sat Feb 22 20:54:11 2014 +0100

    Issue 3874: lilypond-book: Fix TEXINPUTS environment manipulation on W32

commit 1f2bdee043a85ddca79be8ef99b206fb3a97b289
Author: David Kastrup <address@hidden>
Date:   Sat Feb 22 20:53:34 2014 +0100

    Restrict lilypond-book mingw32 subprocess workaround to Python versions < 
2.6


If we had somewhat more reliable feedback from Windows users (this was
already released in 2.19.3, see
<URL:https://lists.gnu.org/archive/html/bug-lilypond/2014-03/msg00063.html>),
then the quality of our releases could be better.

It would appear that the above code using subprocess.Popen will most
likely make lilypond-book hang on Windows for essentially unknown
reasons.  Any idea what your Python version is?

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]