On Sat 10 Mar 2018 at 16:58:37 (+0100), Federico Bruni wrote:
> 
> 
> Il giorno sab 10 mar 2018 alle 16:26, David Wright
> <lily...@lionunicorn.co.uk> ha scritto:
> >On Sat 10 Mar 2018 at 09:18:59 (+0100), Federico Bruni wrote:
> >> [...]
> >
> >> The documentation in Usage 1,2 is pretty clear:
> >>
> >> -o, --output=FILE or FOLDER
> >
> >I don't recognise this. What is Usage 1,2?
> 
> It's chapter 1.2 of Usage manual.
> Sorry, a typo.. and I should have put a link instead.

Interesting, so the manual and the man page disagree with each other.

> >>    Set the default output file to FILE or, if a folder with that
> >> name exists, direct the output to FOLDER, taking the file name from
> >> the input file. The appropriate suffix will be added (e.g. .pdf for
> >> pdf) in both cases.
> >
> >/home/david/lilypond-docs/2.19.80/man1/lilypond.1       3287/3451
> >95%
> >
> >       -o, --output=FILE              write output to FILE (suffix
> >will be added)
> >
> >Perhaps the documentation is running ahead of the program's
> >capabilities?
> >
> >A workaround is to give the full path of test.ly to LP, ie
> >/tmp/test.ly.
> >
> >
> 
> No, it's not this.
> See my last email. The problem occurs only in the /tmp directory. It
> happens on Debian as well (not only in Fedora).

That helps. Now we can make comparisons. It isn't just the source file
whose path is forgotten. When LP changes directory to the output
directory, it loses the / at the beginning of the previous working
directory.

Here's the difference between two runs at the first point of failure:

 stat("/usr/share/lilypond/2.18.2/ly/test.ly", ) = -1 ENOENT (No such file or 
directory)
 stat("test.ly", {st_mode=S_IFREG|0640, st_size=27, ...}) = 0
 stat("pdf", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat(".", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat("/tmp/intmp", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat(".", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat("/tmp/intmp", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
+stat(".", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=12288, ...}) = 0
+stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=12288, ...}) = 0
+stat(".", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=12288, ...}) = 0
+stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=12288, ...}) = 0
 write(2, "Changing working directory to: `"..., 36Changing working directory 
to: `pdf') = 36
 chdir("pdf")                            = 0
-stat("/tmp/intmp/init.ly", ) = -1 ENOENT (No such file or directory)
+stat("tmp/init.ly", )     = -1 ENOENT (No such file or directory)
 stat("/usr/share/lilypond/2.18.2/fonts/svg/init.ly", ) = -1 ENOENT (No such 
file or directory)

As you can see, the very first system call after changing directory
has the wrong path, with a missing /.

And the following shows that the error will occur for any top-level
directory, though the only one accessible to most people is /tmp.

 stat("/usr/share/lilypond/2.18.2/ly/test.ly", ) = -1 ENOENT (No such file or 
directory)
 stat("test.ly", {st_mode=S_IFREG|0640, st_size=27, ...}) = 0
 stat("pdf", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat(".", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat("/tmp/intmp", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat(".", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
-stat("/tmp/intmp", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
+stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
+stat("/nonce", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
+stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
+stat("/nonce", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
 write(2, "Changing working directory to: `"..., 36Changing working directory 
to: `pdf') = 36
 chdir("pdf")                            = 0
-stat("/tmp/intmp/init.ly", ) = -1 ENOENT (No such file or directory)
+stat("nonce/init.ly", )   = -1 ENOENT (No such file or directory)
 stat("/usr/share/lilypond/2.18.2/fonts/svg/init.ly", ) = -1 ENOENT (No such 
file or directory)

BTW I'll just point out, for strace aficionados, that I have passed its
output through a filter that strips any string resembling 0xdefaced (ie hex).

Cheers,
David.

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to