Re: Error with make doc

2024-01-24 Thread Werner LEMBERG


>> I installed Noto Serif JP, and added it to the fontcofig cache.
>> That got me through the previous file error.  But then I got
>> stopped on another Japanese font (I suppose this might be a Linux
>> Libertine font, but my fc-list command shows that I have them
>> installed):

Interesting.  This shouldn't happen.  The idea is that the set of
fonts used for building the documentation is closed and well-defined.
'Noto Serif JP' is intended to cover all CJK testing stuff in
LilyPond.

> I was able to successfully complete 'make test' by commenting out the
> following lines in  input/regression/typography-demo.ly:
> 
>   % Font settings for Cyrillic and Hebrew
>   % Linux Libertine fonts contain Cyrillic and Hebrew glyphs.
>   %property-defaults.fonts.serif = "Linux Libertine O,serif"
>   %property-defaults.fonts.sans = "Linux Biolinum O,sans-serif"
>   %property-defaults.fonts.typewriter = "Linux Libertine Mono O,monospace"

Aah, this looks like a bug in `typography-demo.ly`.  Please try the
following line in `typography-demo.ly` instead of the three original
font lines.

```
property-defaults.fonts.serif = "Linux Libertine O, Noto Serif CJK JP, Noto 
Serif JP, serif"
```


Werner



Re: Error with texi2pdf on MacOS

2024-01-24 Thread Werner LEMBERG


> xdvipdfmx:fatal: Unable to find TFM file "latt1095".

This shouldn't happen at all.  In file `Documentation/GNUmakefile`,
before running the compilation of the documentation files, there is
the target 'pre-pdf' that explicitly generates the necessary TFM
files for the Cyrillic LH fonts before generating any PDF output.

Hopefully, your problem is repeatable.  If it is, please start from
scratch and do something like

```
make doc -j12 CPU_COUNT=12 LANGS="en" VERBOSE=1 &> make.doc.log
```

and post the `make.doc.log` file (compressed) so that we get as much
information as possible.  Please also check whether the two TFM files
from the LH fonts are actually valid (for example, by testing with
`tftopl `).

And please also post the complete `notation.texi2pdf.log` file
(compressed, too) if you get the problem again.

The issue with `make doc` called another time seems to be incompletely
generated files caused by the first run.

Another minor issue: In your e-mails, if you paste log files into the
message, there is always an empty line between every text line, which
makes them hard to read.  Probably a line ending issue (i.e., mixing
LF and CR and/or combinations of it).  Can you fix that?


Werner



PATCHES - Countdown to January 26

2024-01-24 Thread Colin Campbell

Here is the current countdown report.
The next countdown will begin on 2024-01-26
A list of all merge requests can be found here:
https://gitlab.com/lilypond/lilypond/-/merge_requests?sort=label_priority

 Push:
!2238 lilymidi: Show pretty output for pitch bend - Werner Lemberg
    https://gitlab.com/lilypond/lilypond/-/merge_requests/2238
!2237 Improve documentation of tremolo slashes - Werner Lemberg
    https://gitlab.com/lilypond/lilypond/-/merge_requests/2237

 Countdown:
No patches in Countdown at this time.

 Review:
!2242 Improve docstring of `\fromproperty` markup function - Werner Lemberg
    https://gitlab.com/lilypond/lilypond/-/merge_requests/2242
!2240 NR: Revise sections on titles, headers, and footers - Werner Lemberg
    https://gitlab.com/lilypond/lilypond/-/merge_requests/2240

 New:
No patches in New at this time.

 Waiting:
No patches in Waiting at this time.

 Unknown:
!2241 output-distance.py: Don't use ancient versions of `tidy` - Werner 
Lemberg

    https://gitlab.com/lilypond/lilypond/-/merge_requests/2241


Cheers,
Colin




Error with texi2pdf on MacOS

2024-01-24 Thread Carl Sorensen
I'm trying to get a working system self-compiled on MacOS.  Thanks to help
from Dan, Werner, and Jean, I've been able to successfully run 'make test',
although there is still a problem with Unicode characters in font file
names under some circumstances.

Having succeeded with 'make test', I decided to try 'make doc'.  I got a
long way into make doc before progress stopped with an error:

Making Documentation/out-www/en/notation.pdf < texi


Please check the logfile



/Users/carl/Development/lilypond/build/Documentation/./out-www/en/notation.texi2pdf.log


for errors. Last 20 lines:


0e-systems.texi) [524]][522

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/5f/lily-96b489

55-systems.texi)

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/86/lily-90cd32

9f.texidoc) [525]

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/86/lily-90cd32

9f-systems.texi) [526][523]

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/41/lily-400049

5f-systems.texi) [527]

xdvipdfmx:fatal: Unable to find TFM file "latt1095".


No output PDF file written.


(/Users/carl/Development/lilypond/build/Documentation/out-www/en/30/lily-132360

dd-systems.texi) [528]

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/09/lily-5f021b

2d-systems.texi)

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/3c/lily-3f3775

74.texidoc) [529notation.cp:2775: Bad entry; expected 3 to 5 fields, not 0

/opt/local/bin/texi2dvi: texindex failed

make[2]: *** [out-www/en/notation.pdf] Error 1

make[2]: *** Deleting file `out-www/en/notation.pdf'

make[1]: *** [WWW] Error 2

make: *** [doc] Error 2


If I understand the error message correctly, xdvipdfmx was unable to find a
TFM file.  But the TFM file exists in my texlive directory.


The problme with missing latt1095.tfm came up about 4 years ago in this
thread:

https://lists.gnu.org/archive/html/lilypond-devel/2020-11/msg00100.html


The consensus of that thread was this was due to a race condition, and just
run 'make doc' again.


So I did.  I then ended up with:

carl@carls-mbp-2 build % make doc

Making latt1095.tfm in TeX Live (mktextfm)

Making larm1095.tfm in TeX Live (mktextfm)

Making Documentation/out-www/en/notation.pdf < texi


Please check the logfile



/Users/carl/Development/lilypond/build/Documentation/./out-www/en/notation.texi2pdf.log


for errors. Last 20 lines:




? stdin -> notation.pdf

[1]

17695 bytes written


/Users/carl/Development/lilypond/build/Documentation/out-www/en/notation.texi:7

1: Emergency stop.



@par



   @relax

@findsecnowidths ...input @tocreadfilename @relax

  @egroup @endgroup

@contents ...pace @ifeof 1 @else @findsecnowidths

  @readtocfile @fi @vfill
@e...

l.71 @contents



Output written on notation.pdf (1 page).

Transcript written on notation.log.

/opt/local/bin/texi2dvi:
/Users/carl/Development/lilypond/scripts/build/xetex-with-options.sh exited
with bad status, quitting.

make[2]: *** [out-www/en/notation.pdf] Error 1

make[2]: *** Deleting file `out-www/en/notation.pdf'

make[1]: *** [WWW] Error 2

make: *** [doc] Error 2


The logfile contents are:


carl@carls-mbp-2 build % cat
/Users/carl/Development/lilypond/build/Documentation/./out-www/en/notation.texi2pdf.log


Command: cd out-www/en/;texi2pdf-I ../  -I
/Users/carl/Development/lilypond/Documentation/en  -I
/Users/carl/Development/lilypond/Documentation  -I
/Users/carl/Development/lilypond/Documentation/en/  -o
/Users/carl/Development/lilypond/build/Documentation/./out-www/en/notation.tmp.pdf

/Users/carl/Development/lilypond/build/Documentation/out-www/en/notation.texi
  < /dev/null


This is XeTeX, Version 3.141592653-2.6-0.95 (TeX Live 2023) (preloaded
format=xetex)

 restricted \write18 enabled.

entering extended mode

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/notation.texi

(/Users/carl/Development/lilypond/Documentation/tex/texinfo.tex

Loading texinfo [version 2023-09-19.19]: pdf, fonts, glyphs, page headings,

tables, conditionals, indexing, sectioning, toc, environments, defuns,
macros,

cross references, insertions,

(/usr/local/texlive/2023/texmf-dist/tex/generic/epsf/epsf.tex

This is `epsf.tex' v2.7.4 <14 February 2011>

) localization, formatting, microtype, and turning on texinfo input format.)

(/Users/carl/Development/lilypond/Documentation/tex/txi-en.tex)

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/en/macros.texi

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/version.texi)

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/en/common-macr

os.texi

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/en/cyrillic.te

xi)))

(/Users/carl/Development/lilypond/build/Documentation/out-www/en/en/hyphenation

.texi)

Writing 

Re: Error with make doc

2024-01-24 Thread Carl Sorensen
On Tue, Jan 23, 2024 at 4:54 AM Carl Sorensen 
wrote:

>
>
> On Mon, Jan 22, 2024 at 8:37 PM Carl Sorensen 
> wrote:
>
>>
>>
>> On Mon, Jan 22, 2024 at 5:58 PM Jean Abou Samra 
>> wrote:
>>
>>> Le lundi 22 janvier 2024 à 16:38 -0700, Carl Sorensen a écrit :
>>> > > Looks like no error:
>>> > >
>>> > > carl@Carls-MBP-2 lilypond % build/out/bin/lilypond input/regression/
>>> pdf-copy-paste.ly
>>> > > GNU LilyPond 2.25.13 (running Guile 3.0)
>>> > > Processing `input/regression/pdf-copy-paste.ly'
>>> > > Parsing...
>>> > > Finding the ideal number of pages...
>>> > > Fitting music on 1 page...
>>> > > Drawing systems...
>>> > > Converting to `pdf-copy-paste.pdf'...
>>> > > Success: compilation successfully completed
>>>
>>>
>>> Hmm. What if you run
>>>
>>> LC_ALL=C build/out/bin/lilypond input/regression/pdf-copy-paste.ly
>>>
>>> ? IIRC, tests are compiled with LC_ALL=C.
>>>
>>
>> OK, I'll run this test.  But it looks to me (see below).like I should be
>> able to solve the problem by getting the Noto Serif JP font.  I'll look at
>> installing that font.
>>
>
> I installed Noto Serif JP, and added it to the fontcofig cache.  That got
> me through the previous file error.  But then I got stopped on another
> Japanese font (I suppose this might be a Linux Libertine font, but my
> fc-list command shows that I have them installed):
>
> carl@carls-mbp-2 build % cat out/lybook-testdb/1d/lily-2548dc6c.log
>
> Processing `1d/lily-2548dc6c.ly'
>
> Parsing...
>
> Renaming input to: `/Users/carl/Development/lilypond/input/regression/
> typography-demo.ly'
>
> Interpreting music...[8]
>
> Preprocessing graphical objects...
>
> Interpreting music...
>
> MIDI output to `1d/lily-2548dc6c.midi'...
>
> Finding the ideal number of pages...
>
> Fitting music on 1 page...
>
> Drawing systems...
>
> Writing header field `texidoc' to `1d/lily-2548dc6c.texidoc'...
>
> Layout output to `1d/lily-2548dc6c.eps'...ERROR: In procedure open-file:
> In procedure open-file: No such file or directory:
> "/System/Library/Fonts/??? ProN.ttc"
>
>
I was able to successfully complete 'make test' by commenting out the
following lines in  input/regression/typography-demo.ly:

  % Font settings for Cyrillic and Hebrew

  % Linux Libertine fonts contain Cyrillic and Hebrew glyphs.

  %property-defaults.fonts.serif = "Linux Libertine O,serif"

  %property-defaults.fonts.sans = "Linux Biolinum O,sans-serif"

  %property-defaults.fonts.typewriter = "Linux Libertine Mono O,monospace"


iI appears that if Lilypond needs to search for a  font to display a
unicode character, and that font has Japanese characters in the font name,
then the font file is unable to be opened (as shown above).  There's been
some discussion between Jean and Werner indicating that it may be due to a
locale problem.  I suspect that an issue needs to be created, but I'm not
sure how to do it. And the issue may only show up on MacOS, because people
running Linux don't seem to be having this problem.


I'd welcome suggestions about how to create an issue for this, but I've got
a workaround that allows me to succeed with 'make test'.


Thanks,


Car


Auto-resetting of context properties

2024-01-24 Thread Lukas-Fabian Moser

[Re-sending after changing my SMTP settings since I discovered lots of
my e-mails got blocked by spam filters.]

Folks,


the following is triggered mainly (but not solely) by my short exchange
with Dan
(https://gitlab.com/lilypond/lilypond/-/merge_requests/1617#note_1735195563):

We have some context properties that are persistent (e.g.
figuredBassPlusDirection), whereas others are effective once and then
get reset by some engraver. Examples include whichBar, but there are
more, like forceClef. A third group, like stanza, gets stored
persistently, but only leads to a graphical output when changed, thus
making for a user interface similar to an actual "use once and then forget".

This makes our user interface a little inconsistent regarding the
meaning of \set: From a user's perspective, it's hard to understand that
some \set'tings have a persistent effect while others act at a single
point in time.

(For stanza in particular I think while "printing a StanzaNumber at each
timestep" is probably nonsencial, the "store, and print only when
changed" strategy is actually valid, since this allows for things like
"print courtesy parenthesized StanzaNumber after line breaks" which
features prominently on my list of things to try.)

So: Wouldn't it be more consistent to turn those context properties that
(to the user) create "one-time only effects" into persistent ones (so
forceClef = ##t _would_ actually create a clef at each timestep forward)
and instead create dedicated user interfaces using music functions, like

forceClef  = \once \set forceClef = ##t

etc.? In a similar vein, wouldn't

stanzaNumber = \set stanza = \etc (plus some extra features like
auto-adding dots when given an integer)

be more consistent than forcing the users to remember that (and
understand why) stanza numbers have to be created by \set'ting a context
property?

(Disclaimer: I'm merely asking for thoughts here; I'm not stating that
someone(tm) should do this, but would be interested to know whether work
in this direction would be welcomed.)

Lukas