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

Bug #1687813 reported by Anders Lundstedt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Rubber
Confirmed
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.

Revision history for this message
Anders Lundstedt (anderslundstedt) wrote :

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.

Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.