Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeHaupt-Feeds

Gnome 45 verlangt angepasste Erweiterungen

07. September 2023 um 07:46

Die kommende Version 45 der Desktop-Umgebung Gnome führt keine bestehende Erweiterungen mehr aus. Grund ist eine kleine, aber weitreichende Änderung unter der Haube: Gnome 45 steigt auf die sogenannten JavaScript Modules (ESModules) um.

Über Erweiterungen lässt sich Gnome um viele nützliche Funktionen aufbohren. Ihre Entwicklung geschieht auch zukünftig in der Programmiersprache JavaScript. Um umfangreiche Erweiterungen besser pflegen zu können, teilen sie ihre Programmierer in mehrere Module auf. Bislang verwendete Gnome dazu ein eigenes System. Die kommende Version 45 steigt jedoch auf das mit dem JavaScript-Standard ECMAScript 6 eingeführte offizielle Modul-System um.

Da beide Modul-Systeme nicht miteinander kompatibel sind, laufen bestehende Erweiterungen nicht mehr unter Gnome 45. Umgekehrt funktionieren auf Gnome 45 zugeschnittene Extensions nicht in älteren Versionen der Desktop-Umgeung. In der Folge müssen die Entwickler der Erweiterungen zumindest für eine Übergangszeit zwei Fassungen ihrer Erweiterungen pflegen.

Immerhin lassen sich die meisten Erweiterungen recht leicht an die JavaScript Modules (alias ESModules) anpassen – meist müssen nur die „import“-Anweisungen überarbeitet werden. Das Gnome-Team stellt zudem ausführliche Portierungshinweise bereit.

Der Beitrag Gnome 45 verlangt angepasste Erweiterungen erschien zuerst auf Linux-Magazin.

Exploit: Google schließt Zero-Day-Lücke in Chrome

06. Juni 2023 um 09:05

Google hat mit einem Update des Browsers Chrome zwei Sicherheitsprobleme beseitigt. Eines davon wurde bereits aktiv für Angriffe ausgenutzt.

Das vom Sicherheitsexperten Clément Lecigne von Googles Threat Analysis Group entdeckte Problem steckt wie so oft in der Javascript-Engine des Browsers. In der V8-Engine sorge ein Type-Confusion-Problem zur Angreifbarkeit. Es sei bereits ein Exploit für die Lücke (CVE-2023-3079) entdeckt worden, die aktiv angegriffen werde, teilt Google mit. Nähere Informationen gibt es wie bei Google üblich nicht. Man wolle Angreifern nicht unnötig in die Hände spielen, bevor die Lücke nicht bei der Mehrheit der Nutzer geschlossen sei, heißt es dazu.

Mit dem Update für Chrome auf Version 114.0.5735.106 für Mac und Linux und Version 114.0.5735.110 für Windows gilt die Lücke und eine weitere als geschlossen.

Der Beitrag Exploit: Google schließt Zero-Day-Lücke in Chrome erschien zuerst auf Linux-Magazin.

Meta tritt der OpenJS Foundation bei

12. Mai 2023 um 09:14

Die OpenJS Foundation, die das Dach der Open-Source-JavaScript-Community bietet, hat bekannt gegeben, dass der Facebook-Mutterkonzern Meta der Stiftung als Goldmitglied beigetreten ist.

Der positive Einfluss von Meta auf das JavaScript-Ökosystem sei erstaunlich, ist erstaunlich, sagte Robin Ginn, Executive Director der OpenJS Foundation. Meta sei selbst Großanwender von JavaScript und Entwickler von React und React-Native. Meta Open Source sei maßgeblich an der Entwicklung und dem Open-Sourcing vieler Projekte beteiligt, die für das JavaScript-Ökosystem von entscheidender Bedeutung seien, so Ginn. Neben React sind Jest und Flow aufgezählt. Im vergangenen Jahr habe Meta sein populäres JavaScript-Testing-Projekt Jest zu OpenJS beigesteuert, was bei den Entwicklern ein begeistertes Echo hervorgerufen habe, so Ginn.

Gemeinsam mit anderen Mitgliedsunternehmen und unter der Leitung der OpenJS Foundation wird Meta auch weiterhin seinen Beitrag leisten und sich für die Gemeinschaft einsetzen, heißt es in der Mitteilung der OpenJS Foundation weiter. Weitere Gold-Member der Foundation sind Netflix und GoDaddy.

Der Beitrag Meta tritt der OpenJS Foundation bei erschien zuerst auf Linux-Magazin.

Aktualisiertes Deno verbessert Kompatibilität zu Node.js

27. März 2023 um 07:31

Die JavaScript-Runtime Deno bietet Neuerungen beim Befehl „deno compile“, ändert einige APIs, kann TypeScript 5.0 ausführen und kommt Node.js-Entwicklern weiter entgegen. Aufgrund eines Bugs sollte man jedoch zur Version 1.32.1 greifen.

Laut den Deno-Entwicklern erhält die zunächst veröffentlichte Version 1.32.0 eine kritische Sicherheitslücke. Die tritt auf, wenn man einen vergrößerbaren „ArrayBuffer“ an eine eingebaute, asynchron arbeitende Funktionen übergibt. Diese könnte den ArrayBuffer schrumpfen, was wiederum zu einer Out-Of-Bound Schreib-/Leseoperation führt. Deno-Nutzer sollten daher direkt auf die fehlerkorrigierte Version 1.32.1 aktualisieren. Die resizable ArrayBuffer führt die aktualisierte V8-Engine ein, die jetzt in der Version 11.2 den eigentlichen JavaScript-Code ausführt.

Deno 1.32 verbessert die Kompatibilität zum Konkurrenten Node.js an gleich mehreren Stellen. Die meisten Änderungen beziehen sich dabei auf die Konfigurationsdatei „package.json“. So installiert Deno nur dann Pakete, wenn der Code einen Specifier verwendet, zu dem ein Eintrag in der Konfigurationsdatei existiert. Stolpert Deno beim Parsen der „package.json“ über Abhängigkeitsfehler, behandelt sie die Runtime jetzt „lazy“, was Unterbrechungen minimieren soll (Lazy Error Surfacing). Weiterhin lässt sich die Auto-Discovery-Funktion für die „package.json“ deaktivieren. Dazu gibt man Deno die Parameter „–no-config“ und „–no-npm“ mit auf den Weg. Entwickler sollen so eine bessere Kontrolle über den Prozess erhalten. Abschließend existiert die neue Umgebungsvariable „DENO_NO_PACKAGE_JSON“. Mit ihr kann man Deno davon abhalten, die „package.json“ zu berücksichtigen.

Deno 1.32 unterstützt erstmals in „node:crypto“ die Crypto-Schnittstellen „createCipheriv“ und „createDecipheriv“. Dies erweitert die Zahl der bereitstehenden Kryptografiefunktionen.

Das Kommando „deno compile“ erlaubt die Nutzung von dynamischen Importen und der WebWorker API. Dies wiederum vereinfacht den Bau von Multi-Threading-Programmen. „deno run“ erlaubt zudem den Start von JavaScript-Dateien, die keine Endung besitzen. Dazu gibt man die Endung im Parameter „–ext“ vor.

Die API „Deno.FileInfo.dev“ steht ab sofort auch unter Windows bereit. Dies hat jedoch gleichzeitig zur Folge, dass sich die Typings für das „Deno.FileInfo.dev“-Feld von „number | null“ zu „number“ geändert haben. Neu an Bord sind die APIs „Deno.DatagramConn.joinMulticastV4“ und „Deno.DatagramConn.joinMulticastV6“. Bei den Web APIs ist „URLSearchParams.size()“ hinzugekommen. Nicht mehr dabei ist hingegen die instabile WebGPU-Schnittstelle – hier waren vor allem Performance-Problemen ausschlaggebend.

Umbauarbeiten gab es in der Standardbibliothek: Insgesamt sechs Module aus „std/encoding“ hat das Deno-Team direkt unter „std“ einsortiert. So ist jetzt etwa „std/encoding/csv“ über „std/csv“ zu erreichen. Die Deno-Entwickler wollen damit die Konsistenz in der Modulstruktur verbessern. Neben „csv“ betroffen sind „yaml“, „toml“, „json“, „jsonc“ und „front_matter“.

Der Beitrag Aktualisiertes Deno verbessert Kompatibilität zu Node.js erschien zuerst auf Linux-Magazin.

Deno 1.30 unterstützt eingebaute Node.js-Module

30. Januar 2023 um 08:26

Die JavaScript-Runtime und Node.js-Alternative Deno verwandelt die Konfigurationsdatei deno.js in eine Import Map und unterstützt ab sofort Build-in Node.js-Module. Abschließend gab es ein paar kleinere Änderungen an den APIs.

In Node.js eingebaute Module wie „fs“, „path“ und „process“ konnten NPM-Pakete bereits seit der letzten Deno-Version über eine Kompatibilitätsschicht nutzen. Diese Module sind jetzt auch im Deno-Code verfügbar. Dazu nutzen JavaScript-Entwickler den „node:“ Specifier. Als Beispiel liefert die Ankündigung von Deno 1.30:

import { readFileSync } from “node:fs”;

console.log(readFileSync(“deno.json”, { encoding: “utf8” }));

Wichtig ist dabei die Nutzung der Import Map. „node:“ funktioniert sowohl in Deno als auch in Node.js. Wer Code für beide Runtimes erstellt, dem raten die Deno-Entwickler, grundsätzlich „node:“ zu verwenden.

Apropos Import Map: Die Konfigurationsdatei „deno.js“ lässt sich ab sofort als Import Map einspannen. Dazu definiert man direkt in der „deno.js“ mit „imports“ und „scopes“ eine Import Map. Deno erkennt sie dort automatisch, was wiederum eine ansonsten notwendige zweite Konfigurationsdatei spart.

Die Schnittstelle „Deno.permissions“ hat jetzt passende synchrone Funktionen spendiert bekommen, wie etwa „Deno.permissions.querySync()“. Des Weiteren akzeptieren „Deno.writeFile()“ und „Deno.writeTextFile()“ einen „ReadableStream“. Neu ist die API „Deno.env.has(name)“. Einzelne Test-Schritte dürfen zudem ab sofort auch Funktionen sein.

Der Beitrag Deno 1.30 unterstützt eingebaute Node.js-Module erschien zuerst auf Linux-Magazin.

JavaScript-Runtime Deno 1.28 arbeitet mit weiteren NPM-Modulen zusammen

16. November 2022 um 08:56

Deno, die Alternative zu Node.js kann nach Angaben der Entwickler 1,3 Millionen NPM-Module einbinden. Möglich machen das Verbesserungen bei der Node.js-Kompatibilität.

Die NPM-Module binden Entwickler über eine mit “npm:” startende URL ein. “npm:chalk@5“ steht beispielsweise für das NPM-Modul Chalk. Die URL lässt sich dann im “import”-Statement oder in einer Import Map nutzen. Die Konfigurationsdatei “package.json” ist beim Einsatz von Deno nicht notwendig, auch der Befehl “npm install” fällt weg.

Des Weiteren verbessert Deno 1.28 den Umgang mit Lock Files. Diese erkennt und nutzt die JavaScript-Runtime automatisch, wenn eine Konfigurationsdatei „deno.json(c)“ vorhanden ist.

Als stabil gelten jetzt die APIs “Deno.bench()”, “Deno.gid()”, “Deno.networkInterfaces()”, “Deno.systemMemoryInfo()” und “Deno.uid()”. Wer sie nutzen möchte, muss Deno folglich nicht mehr explizit mit dem Parameter “–unstable” starten.

Die neue, aber noch nicht stabile API “Deno.Command” führt externe Kommandos aus. Sie soll die ebenfalls nicht stabilen APIs “Deno.spawn”, “Deno.spawnSync” und “Deno.spawnChild” ersetzen. Abschließend haben die Entwickler die intern verwendete V8-Engine auf die Version 10.9 aktualisiert.

Der Beitrag JavaScript-Runtime Deno 1.28 arbeitet mit weiteren NPM-Modulen zusammen erschien zuerst auf Linux-Magazin.

Go 1.19 mit Updates bei der Implementierung

04. August 2022 um 08:23

Rund fünf Monate nach der Version 1.18 erscheint die Ausgabe 1.19 der Programmiersprache Go. Viele Neuerungen betreffen Implementierungen in Toolchain und Runtime.

Auch die Bibliotheken haben Neuerungen erfahren. Wie gewohnt betonen die Entwickler die Rückwärtskompatibilität: Wir erwarten, dass fast alle Go-Programme weiterhin kompiliert werden und wie bisher laufen.

An der Sprache selbst gebe es nur eine kleine Änderung und die betreffe eine Korrektur des Geltungsbereichs von Typparametern in Methodendeklarationen, teilen die Entwickler mit. Bestehende Programme seien davon nicht betroffen.

Zudem sei das Speichermodell von Go wurde überarbeitet worden, um Go an das von C, C++, Java, JavaScript, Rust und Swift verwendete Speichermodell anzugleichen, heißt es weiter. Mit der Aktualisierung des Speichermodells führt Go 1.19 neue Typen im sync/atomic-Paket ein, die die Verwendung atomarer Werte erleichtern, wie atomic.Int64 und atomic.Pointer[T].

Die Laufzeitumgebung bietet nun Unterstützung für eine weiche Speicherbegrenzung. Diese Speichergrenze umfasst den Go-Heap und alle anderen von der Laufzeitumgebung verwalteten Speicher und schließt externe Speicherquellen wie Mappings der Binärdatei selbst, in anderen Sprachen verwalteten Speicher und vom Betriebssystem im Auftrag des Go-Programms gehaltenen Speicher aus, teilen die Entwickler mit.

Die Ankündigung nennt weitere Details.

Der Beitrag Go 1.19 mit Updates bei der Implementierung erschien zuerst auf Linux-Magazin.

Google schließt Zero-Day-Lücke in Chrome

05. Juli 2022 um 09:33

Mit einem Update für den Chrome-Brwoser schließt Google unter anderem auch mehrere Sicherheitslücken. Eine davon werde bereits aktiv ausgenutzt, heißt es in der Mitteilung.

Das mit hohem Risiko eingestufte Sicherheitsproblem mit der CVE-2022-2294 steckt in der Komponente WebRTC (Web Real-Time Communication) des Browsers. Dort könne es unter Umständen zu einem Heap-Buffer-Overflow kommen, der sich ausnutzen lasse. Für diese Lücke existiere ein Exploit, der bereits im Umlauf sei, schreibt Google.

Eine weitere Sicherheitslücke, ebenfalls mit hohem Risiko bewertet, steckt in der V8-Engine des Browsers. Die Engine ist für die Abarbeitung von JavaScript und WebAssembly zuständig und regelmäßig unter den Kandidaten für Sicherheitslücken. Und auch die Chrome OS Shell ist von einer Sicherheitslücke betroffen, die das Update schließt.

Neben der Desktop-Version wird auch Chrome für Android aktualisiert. Im mobilen Browser steckt ebenfalls die Lücke in WebRTC und der V8-Engine.

Der Beitrag Google schließt Zero-Day-Lücke in Chrome erschien zuerst auf Linux-Magazin.

❌
❌