Option --into not working on MacOS when full source path contains tilde

Bug #1687813 reported by Anders Lundstedt on 2017-05-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Rubber
Medium
Unassigned

Bug Description

On MacOS, if full source path contains a "~" (which is the case for e.g. paths in iCloud drive) then Rubber fails with "Could not run latex" when option --into is used.

This works:

/Users/anders/dir1> rubber --into=out test.tex

This works as well ("~" in path but option --into not used):

/Users/anders/dir~1> rubber test.tex

This does not work ("~" in path and option --into used):

/Users/anders/dir~1> rubber --into=out test.tex

Debug output:

/Users/anders/dir~1> rubber -vvv --into=out test.tex
This is Rubber version 1.3.
[latex] parsing /Users/anders/dir~1/test.tex
[latex] script module article registered
[latex] end of /Users/anders/dir~1/test.tex
[latex] dependencies: ['test.aux', '/Users/anders/dir~1/test.tex']
[depend] make test.dvi -> ['test.aux', '/Users/anders/dir~1/test.tex']
[depend] while making test.dvi: cyclic dependency on test.aux (pruned)
[latex] building additional files...
compiling test.tex...
executing: latex \nonstopmode \input{/Users/anders/dir~1/test.tex}
  with environment: {'TEXINPUTS': '.:/Users/anders/dir~1:'}
process 71100 (latex) returned 1
Could not run latex.
There were errors compiling test.tex.

The problem remains in version 1.4:

/Users/anders/dir~1> rubber -vvv --into=out test.tex
rubber -vvv --into=out test.tex
This is Rubber version 1.4.
[latex] parsing /Users/anders/dir~1/test.tex
[latex] script module article registered
[latex] end of /Users/anders/dir~1/test.tex
[latex] dependencies: ['test.aux', '/Users/anders/dir~1/test.tex']
[depend] make test.dvi -> ['test.aux', '/Users/anders/dir~1/test.tex']
[depend] while making test.dvi: cyclic dependency on test.aux (pruned)
[latex] building additional files...
compiling test.tex...
executing: latex \nonstopmode \input{/Users/anders/dir~1/test.tex}
  with environment: {'TEXINPUTS': '.:/Users/anders/dir~1:'}
process 8699 (latex) returned 1
Output file `out/test.dvi' was not produced.
There were errors compiling test.aux.

Sebastian Kapfer (caci) wrote :

I can see why this breaks; unfortunately, it will be hard to fix without removing other features. (The \input{} hack is required for some of the more obscure things Rubber can do.)

Note: As you can see, there has been little activity recently. The reason is the above: Rubber tries to do too many things and suffers from complexity collapse. At the moment, I'm leaning towards a clean rewrite with considerably less features. In any case, patches welcome: In this case, one would either have to figure out in which cases the \input{} hack is actually required, or whether one can escape the tilde character in \input{}.

Changed in rubber:
status: New → Confirmed
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers