News Linux-News der Woche: Linux Kernel 6.16 und mehr Linux-Spieler unter Steam

@Tanzmusikus Gerne, kein Problem. ^^

Anbei auch noch beispielhaft die Terminalausgabe. Da ich vorhin bereits GE-Proton auf 10-11 aktualisiert habe, hat das Skript kein Todo.

1754930088389.png


EDIT: Wobei mir grade auch noch aufgefallen ist, dass ich im DXVK-Abschnitt einen Ordnernamen falsch hatte. Fäschlicherweise den von vkd3d statt dxvk, wie es eigentlich sein sollte.
 

Anhänge

Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: netzgestaltung, Deinorius und Tanzmusikus
Tevur schrieb:
Klar, gerne.
Du redest aber nicht über Fakten. Du hast nichtmal tatsächliches Interesse an diesen.
Welche Fakten wären denn für dich interessant? Zum Beispiel das ich damals zur Aktivierung des Ruhezustandes stundenlang im Netz suchen mußte, damit ich dann per Sudo in der Konsole oder Terminal dann kryptische Befehle eingeben mußte?
Klappte damals bei Windows wesentlich besser, einen kleinen Punkt ankreuzen, schon war Ruhezustand aktiviert.
Das nenne ich Komfort. Und nicht für solche Kleinigkeiten die Konsole bemühen zu müssen.
Schön das es die Konsole gibt, auch unter Windows, und es wird auch Leute geben, die diese Konsole sehr gut benutzen können, aber der nicht studierte Mensch eben nicht.
Und nicht jeder Benutzer eines PC'shat Lust sich mit schon solchen Kleinigkeiten rumzuärgern
 
Boah, Junge, geh mit gleichaltrigen spielen!
 
  • Gefällt mir
Reaktionen: MonteDrago
halbtuer2 schrieb:
Wo hat denn dein Paketmanager runter geladen? Das weißt du?
Mal abgesehen davon, dass die Adressen der Repositories und Mirrors ja im System hinterlegt sind und so jederzeit einsehbar… Du meinst also das Ding, das pro Paket die digitale Signatur der Quelle und des Pakets prüft und abgleicht mit den von dir und dem Distributor hinterlegten öffentlichen Schlüsseln? Also das, was beim Download von Software aus dem Internet per Browser gar nicht passiert? Ich dachte ich frag mal…
 
  • Gefällt mir
Reaktionen: Deinorius, Hyourinmaru, Kuristina und eine weitere Person
Don't feed the Troll!.🙄
 
@Hyourinmaru

Das Script funktioniert bei mir auch, allerdings gibt's hier einen Fehler:
Code:
========== Lutris: GE-Proton ==========
Prüfe auf eine neue Version von GE-Proton...
./wine-update.sh: Zeile 137: [[: 10-8-: Arithmetischer Syntaxfehler: Operand erwartet (Fehlerverursachendes Zeichen ist "-").
./wine-update.sh: Zeile 155: [[: 10-8-: Arithmetischer Syntaxfehler: Operand erwartet (Fehlerverursachendes Zeichen ist "-").
./wine-update.sh: Zeile 157: [[: 10-8-: Arithmetischer Syntaxfehler: Operand erwartet (Fehlerverursachendes Zeichen ist "-").

137:    if [[ "$latest_ge_proton_version" -gt "$installed_ge_proton_version" ]]; then

155:    elif [[ "$latest_ge_proton_version" -eq "$installed_ge_proton_version" ]]; then

157:    elif [[ "$latest_ge_proton_version" -lt "$installed_ge_proton_version" ]]; then

Woran kann der obige Fehler liegen?
Wird ggf. noch ein weiterer Parameter nach "-gt", "-eq" und "-lt" (z.B. 0,1,2) benötigt?
Wenn ja, welcher?
 
Ohne in das Script geguckt zu haben. Ich tippe mal auf nicht getestet mit nicht schon installierter Proton Version. Die Variable $installed_ge_proton_version wird vermutlich nicht gesetzt sein. ^^
 
Habe den Inhalt von ~.local/share/lutris/runners/proton/ge-proton/ gelöscht & mit dem Script neu erstellt.
Nun läuft es sauber durch.
 
  • Gefällt mir
Reaktionen: Hyourinmaru
@Tanzmusikus Sieht aus, als hätte das Skript einen Erkennungsfehler bei der Proton-GE-Version. Mich verwirrt der zweite Bindestrich nach der 8 10-8-, gehört der mit zur Versionsnr? Mein Skript ist nur auf Versionsnrn. ausgerichtet, die nur einen Bindestrich haben zwischen der 10 und der Buildnr und durch cut und der Begrenzung auf die Zeichen 21-25 sollten auch nur diese Zeichen ausgelesen werden. Bei einer einstelligen Buildnr. wie der 8 besteht daher die Chance, dass cut noch etwas mitnimmt, was direkt nach der 8 steht.
Aber das sollte nicht sein, ich hab mal GE-Proton10-8 runtergezogen und ins versions file geschaut und da steht nichts danach.

Was gibt dir cut -c 21-25 "$HOME"/.local/share/lutris/runner/proton/ge-proton/version aus?

Tanzmusikus schrieb:
Wird ggf. noch ein weiterer Parameter nach "-gt", "-eq" und "-lt" (z.B. 0,1,2) benötigt?
Eigentlich nicht.

GE-Proton ist bzw. war (hab das Skript nochmal angepasst) das einzige Tool, das ich mit -gt, -eq und -lt im IF statement auf die Version geprüft habe, da bei den anderen Tools der Punkt in der Versionsnr. diese Prüfung verhindert hat. Die Prüfung mit -gt, -eq und -lt hab ich jetzt mal komplett rausgeworfen und ebenfalls durch die Prüfung mit der version_compare Funktion ersetzt, die dann nur, je nach outcome 0, 1 oder 2 zurückliefert.

EDIT: Okay Nvm, war ich wohl zu langsam. Freut mich, dass es jetzt durchläuft. ^^"

Fonce schrieb:
Die Variable $installed_ge_proton_version wird vermutlich nicht gesetzt sein. ^^
Nope, ist bzw. wird tatsächlich gesetzt. Wird gesetzt, nachdem das IF statement das Vorhandensein von $HOME"/.local/share/lutris/runners/proton/ge-proton mit der Ausführung von THEN bestätigt. Das Nested IF statement mit der Versionsgegenprüfung mit -gt, -eq und -lt fand erst nach dem setzen der Variable statt.
Wenn also GE-Proton in Lutris gar nicht vorhanden ist, dann wird die Variable gar nicht deklariert und entsprechend gar nicht erst angesprochen, da die Deklaration im THEN-Teil passiert, hier geht das IF statement direkt zum ELSE-Teil und weiß damit, dass GE-Proton nicht vorhanden ist.

installed_ge_proton_version=$(cut -c 21-25 "$LUTRIS_PROTON_DIR"/ge-proton/version 2> /dev/null)
Und $LUTRIS_PROTON_DIR zeigt wiederrum auf ~/.local/share/lutris/runners/proton, die ganz am Anfang des Skripts gesetzt wurde.
 

Anhänge

Zuletzt bearbeitet: (Nvm, war ich wohl zu langsam. ^^")
Hyourinmaru schrieb:
Was gibt dir cut -c 21-25 "$HOME"/.local/share/lutris/runner/proton/ge-proton/version aus?
Ergebnis: "Datei oder Verzeichnis nicht gefunden"

Installiert wurde: GE-Proton10-12
 
  • Gefällt mir
Reaktionen: Hyourinmaru
Mea culpa, runners muss es heißen. Hab das s vergessen im Codeblock. (Ich sollte ins Bett. ^^")
cut -c 21-25 "$HOME"/.local/share/lutris/runners/proton/ge-proton/version
 
Jetzt geht das Script nicht mehr. Ich sollte mich auch auf's 👂 hauen ... ^^



Nach Neustart des PCs:
Code:
cut -c 21-25 "$HOME"/.local/share/lutris/runners/proton/ge-proton/version
10-12
Also alles Supi.

Bei VKD3D kommt übrigens keine Rückmeldung, wenn keine neue Version vorhanden ist.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Hyourinmaru
Tanzmusikus schrieb:
Bei VKD3D kommt übrigens keine Rückmeldung, wenn keine neue Version vorhanden ist.
Kannst du das Skript bitte mal mit bash -x /pfad/zum/skript.sh ausführen und die Ausgabe posten? Mit bash -x wird das Skript auf der Konsole debugged.

Speziell dieser Bereich bzw. Ausgabe interessiert mich:
Code:
+ echo '========== Lutris: VKD3D-Proton =========='
========== Lutris: VKD3D-Proton ==========
+ echo 'Prüfe auf eine neue Version von VKD3D-Proton...'
Prüfe auf eine neue Version von VKD3D-Proton...
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r .tag_name
++ cut -c 2-7
+ latest_vkd3d_proton_version=2.14.1
++ find /home/XXXXXXXX/.local/share/lutris/runtime/vkd3d -mindepth 1 -type d -name 'v*'
++ sed 's|.*/v||'
++ sort -V
++ tail -n 1
+ installed_highest_vkd3d_proton_version=2.14.1
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r '.assets[] | select(.name | endswith(".tar.zst")) | .browser_download_url'
+ vkd3d_proton_asset_url=https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v2.14.1/vkd3d-proton-2.14.1.tar.zst
+ version_compare 2.14.1 2.14.1
+ [[ 2.14.1 == 2\.14\.1 ]]
+ result_compare=0
+ [[ 0 -eq 0 ]]
+ echo 'VKD3D-Proton ist aktuell: 2.14.1'
VKD3D-Proton ist aktuell: 2.14.1
+ echo ''

Wenn keine neue Version für VKD3D-Proton vorhanden ist, müsste das Skript wie es aufgebaut ist, eigentlich eine Ausgabe posten, dass die Version aktuell ist und die in Lutris vorhandene höchste Version ausgeben.
 
  • Gefällt mir
Reaktionen: Tanzmusikus
Script v1
Code:
+ echo '========== Lutris: VKD3D-Proton =========='
========== Lutris: VKD3D-Proton ==========
+ echo 'Prüfe auf eine neue Version von VKD3D-Proton...'
Prüfe auf eine neue Version von VKD3D-Proton...
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r .tag_name
++ cut -c 2-7
+ latest_vkd3d_proton_version=2.14.1
++ find /home/name/.local/share/lutris/runtime/vkd3d -mindepth 1 -type d -name 'v*'
++ sed 's|.*/v||'
++ sort -V
++ tail -n 1
+ installed_highest_vkd3d_proton_version=kd3d-proton-2.14.1
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r '.assets[] | select(.name | endswith(".tar.zst")) | .browser_download_url'
+ vkd3d_proton_asset_url=https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v2.14.1/vkd3d-proton-2.14.1.tar.zst
+ version_compare kd3d-proton-2.14.1 2.14.1
+ [[ kd3d-proton-2.14.1 == 2\.14\.1 ]]
++ printf '%s\n' kd3d-proton-2.14.1 2.14.1
++ sort -V
++ tail -n 1
+ [[ kd3d-proton-2.14.1 == kd3d\-proton\-2\.14\.1 ]]
+ result_compare=1
+ [[ 1 -eq 0 ]]
+ [[ 1 -eq 2 ]]
+ echo ''

Script v2
Code:
+ echo '========== Lutris: VKD3D-Proton =========='
========== Lutris: VKD3D-Proton ==========
+ echo 'Prüfe auf eine neue Version von VKD3D-Proton...'
Prüfe auf eine neue Version von VKD3D-Proton...
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r .tag_name
++ cut -c 2-7
+ latest_vkd3d_proton_version=2.14.1
++ find /home/name/.local/share/lutris/runtime/vkd3d -mindepth 1 -type d -name 'v*'
++ sed 's|.*/v||'
++ sort -V
++ tail -n 1
+ installed_highest_vkd3d_proton_version=kd3d-proton-2.14.1
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r '.assets[] | select(.name | endswith(".tar.zst")) | .browser_download_url'
+ vkd3d_proton_asset_url=https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v2.14.1/vkd3d-proton-2.14.1.tar.zst
+ version_compare kd3d-proton-2.14.1 2.14.1
+ [[ kd3d-proton-2.14.1 == 2\.14\.1 ]]
++ printf '%s\n' kd3d-proton-2.14.1 2.14.1
++ sort -V
++ tail -n 1
+ [[ kd3d-proton-2.14.1 == kd3d\-proton\-2\.14\.1 ]]
+ result_compare=1
+ [[ 1 -eq 0 ]]
+ [[ 1 -eq 2 ]]
+ echo ''
 
Zeile 13:
Code:
installed_highest_vkd3d_proton_version=kd3d-proton-2.14.1

Das hier ist das Problem, der Ordnername des VKD3D-Releases heißt bei dir vkd3d-proton-VERSION (in diesem Falle vkd3d-proton-2.14.1); mein Skript hingegen ist drauf ausgelegt, dass der bzw. die VKD3D-Ordner vVERSION (in meinem Falle v2.14.1) heißen (weswegen der extrahierte Ordner mit dem Inhalt noch umbenannt wird). Für die Versionsgegenprüfung wird das v am Beginn des Ordner rausextrahiert, damit nur noch die reine Versionsnr. übrig bleibt; bei dir sorgt es dafür, dass aus vkd3d-proton-2.14.1 --> kd3d-proton-2.14.1 wird, was dann letztlich auch in der Variable gespeichert wird.

Da die Versionsgegenprüfung in deinem Falle, wie in Zeile 17 und 18 zu sehen ist, kd3d-proton-2.14.1 gegen 2.14.1 prüft, stellt das Skript fest, dass die Versionen unterschiedlich sind bzw. eher der Ordnername des VKD3D-Proton-Releases nicht zum erwarteten Muster passt, weshalb das Skript davon ausgeht, dass gar kein VKD3D-Proton in Lutris vorhanden ist. Diesen Case, dass VKD3D-Proton nicht vorhanden ist, habe ich auch gar nicht berücksichtigt, da beim ersten Start von Lutris nach der Installation sowieso je ein Release von DXVK, VKD3D-Proton und DXVK-NVAPI heruntergeladen wird und somit immer mindestens ein Release vorhanden ist.

Wenn ProtonUp-Qt oder ProtonPlus zum Einsatz kommen, dann löst das genau dieses Verhalten vom Skript aus, denn ProtonUp-Qt und ProtonPlus legen die VKD3D-Versionen genau nach diesem Schema vkd3d-proton-VERSION ab, was genau dem Namen des Archivs auf Github und damit dem entpackten Ordner entspricht. Allerdings widerspricht dies dem Lutris-eigenen Schema, denn das legt die Versionen nach dem Schema vVERSION ab. ProtonUp-Qt und ProtonPlus legen also quasi den VKD3D-Ordner, nachdem es das Archiv entpackt hat, genauso in den Lutris-Ordner ab, ohne es vorher noch umzubenennen, wie ich es tue.

Wenn du den Ordner vkd3d-proton-2.14.1 in v2.14.1 umbenennen würdest, dann würde auch der Teil im Skript funktionieren. Oder du änderst Zeile 314 im Skript (v2) von

Code:
installed_highest_vkd3d_proton_version=$(find "$LUTRIS_VKD3D_PROTON_DIR" -mindepth 1 -type d -name "v*" | sed 's|.*/v||' | sort -V | tail -n 1)
auf
Code:
installed_highest_vkd3d_proton_version=$(find "$LUTRIS_VKD3D_PROTON_DIR" -mindepth 1 -type d -name "vkd3d-proton-*" | sed 's|.*/vkd3d-proton-||' | sort -V | tail -n 1)

Dann würde das Skript bei dir auch mit ProtonPlus funktionieren und die Musterkennung für die Versionsgegenprüfung käme auch mit vkd3d-proton-2.14.1 zurecht. Allerdings musst du dann die Zeile mit dem Umbenennen des Ordners (Zeile 324 in v2) rausnehmen, da der Ordner des VKD3D-Releases dann wieder in v2.14.1 umbenannt wird und du beim nächsten Ausführen des Skripts dann wieder den Fehler hast.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Tanzmusikus
Vielen Dank für die Klarstellung !! 😊

Hatte die letzten Jahre ProtonUp-Qt und danach ProtonPlus benutzt.
Dann werde ich in Zukunft das Versionsschema von Lutris nutzen.

Nun klappt das auch ...
Code:
+ echo '========== Lutris: VKD3D-Proton =========='
========== Lutris: VKD3D-Proton ==========
+ echo 'Prüfe auf eine neue Version von VKD3D-Proton...'
Prüfe auf eine neue Version von VKD3D-Proton...
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r .tag_name
++ cut -c 2-7
+ latest_vkd3d_proton_version=2.14.1
++ find /home/name/.local/share/lutris/runtime/vkd3d -mindepth 1 -type d -name 'v*'
++ sed 's|.*/v||'
++ sort -V
++ tail -n 1
+ installed_highest_vkd3d_proton_version=2.14.1
++ curl -s https://api.github.com/repos/HansKristian-Work/vkd3d-proton/releases/latest
++ jq -r '.assets[] | select(.name | endswith(".tar.zst")) | .browser_download_url'
+ vkd3d_proton_asset_url=https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v2.14.1/vkd3d-proton-2.14.1.tar.zst
+ version_compare 2.14.1 2.14.1
+ [[ 2.14.1 == 2\.14\.1 ]]
+ result_compare=0
+ [[ 0 -eq 0 ]]
+ echo 'VKD3D-Proton ist aktuell: 2.14.1'
VKD3D-Proton ist aktuell: 2.14.1
+ echo ''

P.S.
Wie können die ***_versions.json-Dateien editiert werden?
Da stehen doch bestimmt eine Menge an nicht mehr vorhandenen alten Versionen drin, oder ..?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Hyourinmaru
Jup, da stehen teil uralte Versionen drin. Besonders bei DXVK isses schlimm. Ich denke aber mal, dass die irgendwie on-the-fly in Lutris reingeladen werden, wenn man eine davon auswählt, da in den json-Dateien auch URLs zur Github-API der entsprechenden Github-Repos hinterlegt sind. Es wird jedenfalls keine der alten Versionen direkt heruntergeladen und ins Lutris directory gesetzt, wenn man sie auswählt.
Das Bild hier bspw.
1755121538904.png

zeigt, wie viele DXVK-Versionen in Lutris allein nur durch die dxvk_versions.json hinzugefügt werden. Die Datei kann durch normale Editoren wie Kate bearbeitet werden. Allerdings bearbeitest du diese Datei nicht! Die Datei weist zwar nur 8 Zeilen auf, die allerdings Zeilenumbrüche des Todes haben, da die Zeilen länger als 10.000 Zeichen lang sind und ich Kate anweisen musste, den Grenzwert der Zeilenlänge temporär zu erhöhen und die Datei nochmal zu öffnen.
1755122508281.png


Wenn man die Zeilenumbrüche ausschaltet, siehts zwar angenehmer aus, aber die Zeilen sind halt immernoch ellenlang. Deswegen hab ich bei mir die dxvk_versions.json und vkd3d-versions.json Dateien einfach gelöscht und mir dann händisch noch aus den Github-Repos noch die eine oder andere DXVK- und VKD3D-Version heruntergeladen und in Lutris reingesetzt.
 
  • Gefällt mir
Reaktionen: Tanzmusikus
Okay. Also auch mit Kernel 6.16 und mehr Linux-Spieler unter Steam gibt es kein gescheites .json-Tool mit GUI.
Schade, aber die Hoffnung stirbt zuletzt. :skull_alt:
 
Zurück
Oben