Win7 Point-and-Click 2.19.80

Begonnen von Arnold, Freitag, 10. November 2017, 13:52

« vorheriges - nächstes »

Arnold

Hallo,

ich habe die neue Version bezüglich "Point-and-Click"-Verbesserungen auf meinem Win7/64-Rechner getestet - ohne Frescobaldi oder ähnliches.

also:
Ich habe Lilypond 2.19.80 auf Win7 installiert, im gleichen Verzeichnis wie die vorhergehende Version von Lilypond.
Den »Installationpfad« habe ich in diesem Beitrag generell L:\Lilypond genannt.
Das Verzeichnis L:\Lilypond\usr\bin war schon zuvor im Suchpfad (Umgebungsvariable PATH) enthalten - damit die Kommandozeilenübersetzung läuft.
Die Umgebungsvariable LYEDITOR war auch schon zuvor korrekt belegt.

Point-and-Click funktioniert nicht (out of the box) - noch immer nicht.

Entsprechend dem Registry-Eintrag HKEY_CLASSES_ROOT\textedit\shell\open\command habe ich in der Eingabeaufforderung ausgeführt:
L:\Lilypond\usr\bin\guile.exe -s L:\Lilypond\usr\bin\lilypond-invoke-editor textedit://a.ly:1:2:3
Das ist schon eine Verbesserung zu früher. Der in der Registry eingetragene Befehl mußte nicht mehr (wie in früheren Versionen) korrigiert werden.

Meldung:
lilypond-invoke-editor (GNU LilyPond) 2.19.80
ERROR: no code for module (scm editor)

Mein Analyseergebnis:
weil das Verzeichnis L:\Lilypond\usr\share\lilypond\2.19.80 (dieser Pfad wird in der lokalen Variablen LILYPOND_DATADIR der SCHEME-Routine abgelegt) gar nicht exisitiert, sondern statt dessen L:\Lilypond\usr\share\lilypond\current, wird die Datei editor.scm nicht gefunden.

3 Variaten zur Behebung:

1. Variante:
Patch L:\Lilypond\usr\bin\lilypond-invoke-editor:
(define TOPLEVEL-VERSION "2.19.80")
zu
(define TOPLEVEL-VERSION "current")

+ funktioniert, aber wohl nur in den Installer-Varianten, wahrscheinlich nicht bei direkter Codeerzeugung (z. Bsp. die Entwicklung in LilyDev)


2. Variante:
Patch L:\Lilypond\usr\bin\lilypond-invoke-editor:
    (set! %load-path (cons LILYPOND_DATADIR %load-path))
zu
    (set! %load-path (cons LILYPOND_DATADIR (cons (format #f "~a/current" (dirname LILYPOND_DATADIR)) %load-path)))
ergo, zwei Suchpfade werden hinzugefügt, der erste endet wie bisher mit der aktuellen Versionsnummer, der nächste (zusätzliche)  endet mit »current« anstelle der Versionsnummer.

+ funktioniert

3. Variante:
Umgebungsvariable setzen:
GUILE_LOAD_PATH=L:\Lilypond\usr\share\lilypond\current

+ funktioniert auch, aber die Umgebungsvariable kann man natürlich nur global im Windows setzen.


Zum Vergleich habe ich mir auch noch die Linux-Version innerhalb einer neu aufgesetzten LilyDev-Umgebung angesehen:
~/bin/lilypond-invoke-editor war verlinkt auf ~/lib/lilypond-wrapper.guile,
und diese Routine setzt (unter anderem) die Umgebungsvariable GUILE_LOAD_PATH.
Und es wurden dann gleich zwei EMACS-Texteditor-Sessions gestartet - eigentlich eine zu viel  ;)


Was sollte man anstreben?

  • Variante 2 - automatische Erweiterung der load-path um das Verzeichnis mit 'current' statt der Versionsnummer
  • Variante 3 - in den Handbüchern dokumentierten, daß außer PATH auch GUILE_LOAD_PATH unter Windows korrekt gesetzt werden muß, damit Point-and-Click läuft

Arnold



Malte

Hallo Arnold,

ich kenn mich mit Windows gar nicht aus; allgemein sieht das für mich nach ner Sache aus, die man mal an die Bug-Mailingliste schicken sollte, gerade auch deine Lösungsvorschläge. Auf der Mailingliste sind nämlich mehr Leute unterwegs, die a) wissen, worums geht und b) was ändern können ;)  Könntest du das machen?

Viele Grüße
Malte