Connect with us

Entwicklung & Code

LibreOffice Online kommt zurück | heise online


LibreOffice Online wird wieder weiterentwickelt: Die Document Foundation (TDF) hat die 2022 getroffene Entscheidung rückgängig gemacht, das Repository des Projekts einzufrieren. Anfang Februar 2026 beschloss der aktuelle Vorstand unter Vorsitz von Eliane Domingos, das Archiv wieder für Beiträge zu öffnen. Die damaligen Bedenken hinsichtlich fehlender Maintainer und Sicherheitsprobleme sieht die Stiftung mittlerweile als überholt an.

Weiterlesen nach der Anzeige

Die ursprüngliche Einfrierung erfolgte auf Initiative früherer Vorstände, darunter Mitglieder mit Interessenkonflikten aus dem kommerziellen Ökosystem. Als Hauptgründe galten unzureichende Wartung, bekannte Sicherheitslücken, die nach einem Fork im Oktober 2020 nicht zurückportiert werden konnten, sowie mangelnde Entwicklungsaktivität. Das Repository wurde damals in einen Read-only-Modus versetzt und sollte ins „Attic“ verschoben werden.

Domingos erklärte die nun erfolgte Wende mit den Worten: „Um den Prozess der Befreiung von LibreOffice Online zu starten und die Reise anzutreten, die zu einer Online-Version von der Community und für die Community führt.“ Die Abstimmung über die Wiedereröffnung dauerte 72 Stunden und fand breite Unterstützung, obwohl es auch kritische Stimmen gab.

Das Repository wird zunächst mit Warnhinweisen wieder zugänglich gemacht, bis das TDF-Team es als sicher und nutzbar einstuft. Die Stiftung lädt die Community ausdrücklich ein, Code, Technologien und weitere Beiträge beizusteuern. Auch die Zusammenarbeit mit externen Partnern wird gesucht, um eine gemeinsame technische Basis sowie Qualitätssicherung und Marketing voranzutreiben.

LibreOffice Online ist eine webbasierte Version der bekannten Office-Suite für den Eigenbetrieb. Die Software rendert Dokumente serverseitig und streamt die Bedienoberfläche über den Browser. Sie unterstützt Writer, Calc und Impress sowie kollaboratives Bearbeiten in Echtzeit. Der aktuelle Code-Stand gilt allerdings als veraltet und unsicher, bekannte CVEs sind nicht behoben. Bis zur produktionsreifen Version ist es noch ein weiter Weg.

Weiterlesen nach der Anzeige

Von Collabora Online unterscheidet sich LibreOffice Online grundlegend: Während TDFs Projekt als Community-getriebenes Upstream-Projekt konzipiert ist, handelt es sich bei Collabora Online um einen kommerziellen Fork mit Enterprise-Support, signierten Sicherheitsupdates und LTS-Versionen. Collabora hat viel in die Entwicklung investiert und bietet Integrationen für Nextcloud und ownCloud an.

Die Document Foundation stellt explizit klar, dass sie selbst keinen Hosting-Service oder Enterprise-Support für LibreOffice Online anbieten wird. Folglich empfiehlt die Stiftung für produktive Umgebungen wie gehabt das kommerzielle Ökosystem. Einen konkreten Zeitplan für eine produktionsreife Version gibt es nicht. Die weitere Entwicklung hängt von den Beiträgen der Community ab, die sich über Code-Beiträge, QA-Tests und technische Diskussionen beteiligen kann.

Weitere Details zur künftigen Entwicklung hat die Document Foundation in ihrem Blog veröffentlicht.


(fo)



Source link

Entwicklung & Code

Rust rutsch überraschend ab – Python bleibt vorn: Tiobe-Index für April


Im Tiobe-Index für April 2026 ist Rust von seinem Höchststand von Platz 13 Anfang des Jahres auf Rang 16 zurückgefallen. Die Herausgeber des monatlichen Index sehen das als Anzeichen dafür, dass sich der seit 2020 bestehende Aufstieg der Sprache insgesamt verlangsamt.

Weiterlesen nach der Anzeige

Python führt das Ranking mit 20,97 Prozent an Suchtreffern weiterhin an, gefolgt von C (12,34 Prozent), C++ (8,03 Prozent), Java (7,79 Prozent) und C# (5,98 Prozent) – diese Sprache hatte Tiobe erst im Januar zur Programmiersprache des Jahres 2025 gekürt.

Rust erreicht im aktuellen Ranking einen Anteil von 1,09 Prozent. Tiobe-Chef Paul Jansen sieht die Ursache für den Abstieg vor allem in der hohen Einstiegshürde: „Rust bleibt für Nicht-Experten schwierig zu erlernen“. Konzepte wie Ownership und Borrowing erfordern für Umsteiger ein grundlegendes Umdenken.


Infografik Rust in Tiobe

Infografik Rust in Tiobe

Rust hat sich stetig nach oben gearbeitet und seinen Index insgesamt verbessert.

(Bild: Screenshot Tiobe)

C zeigt eine gegenläufige Tendenz, da die Sprache mit einem Plus von 2,39 Prozentpunkten deutlich zulegen konnte. Das ist verwunderlich, denn C gilt als unsichere Variante für hardwarenahe Programmierung im Vergleich zu Rust, und immer mehr Entwicklerinnen und Entwickler wenden sich davon ab, gerade auch in den großen Organisationen wie Google, Microsoft oder dem Linux-Kernel-Team.

Rust als typsichere Programmiersprache bildet auch im Umgang mit KI einen Vorteil gegenüber vielen anderen Sprachen, da sie zu mehr Eindeutigkeit und weniger Fehlern führt. Der Verlauf der letzten Monate lässt sich auch als normale Schwankung interpretieren.

Die Methodik des Tiobe-Index gilt in der Branche als zweifelhaft, denn sie misst nicht die tatsächliche Verwendung von Sprachen durch Entwickler, sondern deren Interesse daran – gemessen an Suchtreffern im Web. Die Quote steht für den Anteil von Suchtreffern einer Programmiersprache gegenüber allen Programmiersprachen. Tiobe wertet dazu die Ergebnisse von 25 Suchmaschinen aus, darunter Google, Wikipedia oder Amazon.

Weiterlesen nach der Anzeige

Der Herausgeber muss künftig zeigen, wie tragfähig diese Methode im KI-Zeitalter noch ist, in dem die meisten Programmiererinnen und Programmierer eher ihren Coding-Assistenten befragen als Google.


(who)



Source link

Weiterlesen

Entwicklung & Code

Linux 7.0 erschienen – mehr als ein Nummernsprung


Die neue Versionsnummer des Linux-Kernels wirkt wie ein kleiner Paukenschlag. Wir schreiben nun eine 7.0. Das hat jedoch weniger mit einem großen architekturellen Wurf oder den neuen Features zu tun. Linus Torvalds ist dafür bekannt, große Zahlen hinter dem Punkt einer Versionsnummer nicht sonderlich zu mögen. Daher erfolgt dieses Mal wieder ein Sprung auf ein neues Major-Release, nur der besseren Nummerierung wegen.

Weiterlesen nach der Anzeige

Wüsste man es jedoch nicht besser, ließen einige Features in Linux 7.0 durchaus an einen Major-Release-würdigen Sprung glauben. Immerhin verspricht der Neue im Kernel-Reigen selbstheilende Dateisysteme, robusten Code beim Allokieren von Speicher und Rust als offizielles – nicht experimentelles – Feature.

Das Projekt „Rust für Linux“ hat einen wichtigen Meilenstein erreicht. Wie Maintainer Miguel Ojeda in einem Commit zum Entwicklungszweig von Linux 7.0 festhält, gilt die Integration der Programmiersprache Rust nicht länger als experimentell. Wörtlich heißt es, Rust sei „here to stay“. Diese Einschätzung wird auch von Linus Torvalds und anderen Kernel-Entwicklern getragen.

Entsprechend wurde der Status der Rust-Unterstützung im Kernel angepasst. In der Konfigurationsoberfläche (menuconfig) wird Rust nicht mehr als experimentelles Feature geführt. Damit ist die Sprache formal im Mainline-Kernel etabliert.

Rust war erstmals 2022 mit Linux 6.1 in den Kernel aufgenommen worden. Zu diesem Zeitpunkt beschränkte sich die Unterstützung im Wesentlichen auf ein einfaches Beispielmodul für ein „Hello, world!“. Seither wurde die Infrastruktur kontinuierlich erweitert, etwa im Bereich von Treibern und Kernel-Schnittstellen.

Weiterlesen nach der Anzeige

Ungeachtet dieses Fortschritts befindet sich die Rust-Integration weiterhin im Ausbau. Zahlreiche Subsysteme bieten bislang nur eingeschränkte oder noch keine Rust-Schnittstellen. Entsprechend ist auch in kommenden Kernel-Versionen mit weiteren Anpassungen und Erweiterungen zu rechnen.

Parallel dazu wird Rust bereits in anderen Bereichen des Linux-Ökosystems eingesetzt, etwa im Android-Umfeld. Die Entwicklung im Mainline-Kernel ist damit Teil eines übergeordneten Trends hin zu speichersicheren Programmiersprachen in systemnaher Software.

Mit dem Auszug aus dem Experimentellen will Ojeda auch ein Zeichen setzen. Investitionen in Rust stünden auf gesichertem Fundament. Insbesondere Aufwände in das Training von Kernel-Entwicklern zu Rust sollen eine sichere Anlage sein. Ein wenig Exot bleibt Rust dennoch. Den jeweiligen Maintainern bleibt es freigestellt, Rust aus ihren Subsystemen im Kernel herauszuhalten.

Mit der Einführung des „autonomous self-healing support“ entwickelt sich XFS konzeptionell weiter: weg von einem rein reaktiven Dateisystem hin zu einer Architektur, die Fehler früh erkennt und automatisiert darauf reagieren kann. Dabei geht es weniger um „Selbstheilung“ im engeren Sinne als um eine intelligente Aufgabenteilung zwischen Kernel und User-Space. Es ist also kein Feenstaub im Spiel.

Traditionell erfolgt die Fehlerbehebung bei XFS über Werkzeuge wie xfs_repair. Dieses starten Administratoren manuell und typischerweise dann, wenn bereits ein Problem aufgetreten ist – etwa nach einem Absturz oder bei erkannten Inkonsistenzen im Dateisystem.

Der Ablauf ist dabei klar strukturiert, aber auch schwergewichtig: Zunächst muss das Dateisystem ausgehängt werden, also offline gehen. Es folgt eine vollständige Analyse des Dateisystems. Abschließend erfolgt die Reparatur aller gefundenen Fehler.

Dieses Vorgehen ist zuverlässig, bringt aber klare Nachteile mit sich: Es verursacht Downtime, reagiert erst spät auf Probleme und ist bei großen Speichersystemen zeitaufwendig.

Der neue „Selbstheilungsmechanismus“ verfolgt einen grundlegend anderen Ansatz. Anstatt Fehler erst im Nachhinein zu beheben, erkennt der Kernel Probleme bereits während des laufenden Betriebs und meldet sie an den User-Space. Dabei gilt ein wichtiges Prinzip: Der Kernel erkennt und meldet. Die Entscheidung, was zu tun ist, trifft jedoch der User-Space.

Technisch geschieht das über ein Ereignissystem, beispielsweise mittels File Deskriptor und ioctl. Über dieses erhalten spezialisierte Programme kontinuierlich Informationen über den Zustand des Dateisystems.

Ein zentraler Bestandteil dieser Architektur ist ein User-Space-Dienst (Healer Daemon). Dieser bewertet eingehende Ereignisse und entscheidet, welche Maßnahmen sinnvoll sind. Typische Reaktionen könnten der Start eines gezielten Scrubbing-Prozesses, das Anstoßen einer Teilreparatur oder der Neustart betroffener Anwendungen oder Container sein. Auch die Eskalation an Monitoring- oder Alerting-Systeme wäre eine Option.

Dadurch wird die Fehlerbehandlung deutlich flexibler und kontextabhängig. Das verspricht einen entscheidenden Vorteil gegenüber starren Kernel-Mechanismen.

Der Unterschied zwischen dem klassischen und dem neuen Ansatz lässt sich auf eine grundlegende Verschiebung reduzieren: proaktiv statt reaktiv. Früher reagierte das System auf bereits eingetretene Schäden. Der neue Ansatz hingegen setzt auf Früherkennung und automatisiertes Reagieren. Während xfs_repair eher als „Notfallwerkzeug“ dient, versteht sich der Self-Healing-Ansatz als kontinuierliches Überwachungs- und Reaktionssystem im Hintergrund.

Diese Entwicklung ist besonders relevant für moderne IT-Umgebungen wie Cloud-Infrastrukturen, Container-Plattformen wie Kubernetes und große, hochverfügbare Speichersysteme. In solchen Szenarien ist eine Downtime mindestens teuer, wenn nicht gar inakzeptabel. Systeme müssen in der Lage sein, Probleme selbstständig zu erkennen und möglichst ohne menschliches Eingreifen beheben zu können.

Der neue Self-Healing-Support in XFS ersetzt klassische Reparaturwerkzeuge zwar (noch) nicht, ergänzt sie aber sinnvoll. Während Werkzeuge wie xfs_repair weiterhin für schwerwiegende Fälle notwendig bleiben, ermöglicht die neue Architektur eine deutlich frühere und feinere Reaktion auf Probleme. Damit mausert sich XFS zu einem Dateisystem, das nicht nur Daten verwaltet, sondern aktiv zur Stabilität des Gesamtsystems beiträgt.

Mit Linux 7.0 erfährt eine der zentralsten Schnittstellen des Kernels eine grundlegende Modernisierung: kmalloc(). Dabei handelt es sich nicht um eine komplette Neuentwicklung der Speicherverwaltung, sondern um eine gezielte Weiterentwicklung für robusteren Code. Typische Fehlerquellen in der C-Programmierung sollen systematisch vermieden werden.

Es ist ein altbekanntes Problem. Traditionell arbeitet kmalloc() größenbasiert: Entwickler geben explizit an, wie viele Bytes reserviert werden sollen. Zumeist kommen Konstrukte wie sizeof(...) zum Einsatz. Diese Flexibilität hat jedoch ihren Preis. Fehler wie die Verwendung von sizeof(ptr) statt sizeof(*ptr) sind syntaktisch korrekt, führen aber zu kleinen Allokationen. Die Folgen zur Laufzeit sind potenziell schwerwiegend. Wenn der Speicherbereich zu klein ist für die aufzunehmenden Daten, überschreiben diese andere. Ein klassischer Überlauf (Overflow) ist die Folge. Solche Bugs gehören seit Jahrzehnten zu den klassischen Problemfeldern im Kernel.

Linux 7.0 führt daher eine Reihe neuer Makros ein, darunter kmalloc_obj() und kmalloc_objs(). Statt die Größe manuell zu berechnen, beschreibt der Entwickler direkt den gewünschten Objekttyp. Die benötigte Speichergröße wird automatisch abgeleitet. Gleichzeitig stellt der Compiler sicher, dass Rückgabetyp und Zielvariable zusammenpassen.

Dieser Wechsel von einer größenorientierten zu einer typbasierten Denkweise erhöht nicht nur die Lesbarkeit des Codes, sondern erkennt Fehler bereits zur Compile-Zeit.

Ein weiterer Fortschritt betrifft Strukturen mit flexiblem Array am Ende. Ein häufig verwendetes Muster im Kernel. Mit kmalloc_flex() steht im neuen Kernel ein spezialisiertes Makro zur Verfügung, das die korrekte Gesamtgröße solcher Objekte automatisch berechnet. In Kombination mit modernen Compiler-Erweiterungen wie __counted_by() lässt sich sogar die zugehörige Längenangabe passend setzen. Dadurch werden Inkonsistenzen zwischen Speichergröße und Metadaten deutlich reduziert.

Neben der Typsicherheit wurde auch die Bedienung verfeinert. In vielen Fällen kann das bislang obligatorische Allokations-Flag GFP_KERNEL entfallen, da es implizit angenommen wird. Das reduziert redundanten Code und macht typische Allokationen kompakter und übersichtlicher.

Die Einführung der neuen Makros blieb nicht auf neue Codepfade beschränkt. Große Teile des bestehenden Kernels wurden damit automatisiert angepasst. Die Änderung ist damit weniger ein punktuelles Feature als vielmehr eine breit angelegte Qualitätsverbesserung der gesamten Codebasis.

Die Überarbeitung von kmalloc() in Linux 7.0 ist ein typisches Beispiel für evolutionäre Kernel-Entwicklung. Statt neue Funktionalität zu schaffen, wird die bestehende Infrastruktur sicherer und klarer gestaltet. Durch typsichere Makros, bessere Unterstützung komplexer Datenstrukturen und reduzierte Fehleranfälligkeit trägt die Neuerung maßgeblich zur langfristigen Stabilität und Wartbarkeit des Linux-Kernels bei.

Der neue Sprössling der Linux-Kernel mottet den Laptop-Mode ein. Diesen Modus erhielt der Kernel in Version 2.4 (als Backport, offiziell kam er in 2.6.6 dazu). Er holte über die Jahre so manches Wättstündchen mehr aus dem Akku des Laptops heraus. Damit ist nun Schluss.

Der Laptop Mode im Linux-Kernel ist eine Energiesparfunktion, die vor allem für Systeme mit mechanischen Festplatten entwickelt wurde. Dabei werden Schreibzugriffe auf den Datenträger gezielt verzögert und gebündelt, sodass die Festplatte seltener aktiviert werden muss und länger im stromsparenden Ruhezustand bleiben kann. Technisch geschieht dies durch Anpassungen im Writeback-Verhalten des Kernels (steuerbar über /proc/sys/vm/laptop_mode). Der Nachteil ist ein erhöhtes Risiko von Datenverlust bei Abstürzen, da Daten länger im RAM verbleiben.

Auf modernen Systemen mit SSDs spielt der Laptop Mode kaum noch eine Rolle. Da auch die Zeiten von intern verbauten mechanischen Festplatten bei modernen Notebooks vorbei sind, fällt der Laptop-Mode aus dem Kernel heraus. Zu aufwendig ist das stetige Nachziehen im Code für ein nicht mehr zeitgemäßes Feature.

Die Integration von eBPF in das Sicherheitsmodell von SELinux erweitert die bislang primär technische Absicherung durch den Verifier um eine umfassende Zugriffskontrolle. Im Linux Kernel wird damit nicht mehr nur geprüft, ob ein eBPF-Programm sicher ist, sondern auch, ob ein Prozess es gemäß definierter Richtlinien überhaupt nutzen darf.

Kern der Erweiterung ist die Einbindung von eBPF in das Mandatory-Access-Control-Modell. Prozesse benötigen explizite Berechtigungen, um Programme zu laden, an Kernel-Hooks anzuhängen oder mit bestehenden BPF-Objekten zu interagieren. Gleichzeitig können Programme, Maps und andere eBPF-Strukturen mit eigenen Sicherheitskontexten versehen werden, wodurch sich Zugriffe und Datenflüsse gezielt einschränken lassen.

Diese Kombination aus Verifier und SELinux schafft ein zweistufiges Sicherheitskonzept: Während der Verifier die Korrektheit von Programmen sicherstellt, kontrolliert SELinux deren zulässige Verwendung. Dadurch wird eBPF deutlich besser in bestehende Sicherheitsarchitekturen integriert und für den Einsatz in sicherheitskritischen Umgebungen geeignet.

Der neue Kernel bietet wieder viele neue Treiber und Unterstützung von neuer Hardware. Auch gibt es viele Detailverbesserungen, beispielsweise bei eBPF und Rust. Allein durch das Self-Healing bei XFS und das verbesserte kmalloc() rangiert der neue Kernel nicht mehr als reines „Wartungsrelease“. Damit wird er auch abseits der „Phobie“ vor langen Nummern von Linus Torvalds einem Release-Sprung auf 7.0 gerecht.

Alle Änderungen im neuen Kernel finden sich im ChangeLog. Linux 7.0 steht wie üblich unter www.kernel.org zum Download bereit. Die Entwicklung an Kernel 7.0 startet Linus Torvalds zwei Wochen, nachdem der Kernel 6.19 Anfang Februar 2026 das Licht der Welt erblickte.


(dmk)



Source link

Weiterlesen

Entwicklung & Code

Apples früherer KI-Chef John Giannandrea verlässt das Unternehmen


Es war ein denkwürdiger Auftritt am Nachmittag des 11. Juni 2024: Apples damaliger KI-Chef John Giannandrea und Software-Chef Craig Federighi demonstrierten auf der Bühne des Steve Jobs Theater im Apple-Hauptquartier in Cupertino den großen Schulterschluss. Die von Apple-Chef Tim Cook eingeleitete Fragestunde mit YouTuberin iJustine sollte die kurz zuvor vorgestellte Apple Intelligence inhaltlich vertiefen und vermutlich ein Signal der Einmütigkeit in der Apple-Chefetage ausstrahlen. Jetzt, nicht einmal zwei Jahre danach, wird Giannandrea das Unternehmen zur Monatsmitte verlassen.

Weiterlesen nach der Anzeige

Das Schicksal des früheren Google-Mitarbeiters ist eng verknüpft mit den KI-Bemühungen Apples. Damals angekündigte Grundfunktionen der Apple Intelligence wie das Zusammenfassen von Texten oder maßgeschneiderte Emojis erreichten zwar binnen weniger Monate einen großen Teil der Apple-Kundschaft. Der Blick der Fachwelt richtete sich allerdings mehr auf das, was nicht kam: Siri sei kein Sprachassistent mehr, sondern ein Geräteassistent mit tieferem Verständnis dafür, was auf dem Gerät passiert, tönte Giannandrea in der damaligen Fragestunde. Zwei Jahre später gibt es immer noch nur die Ankündigung, dass Siri besser werden soll. Zuletzt verdichteten sich jedoch Berichte, wonach Apple für iOS 27 eine eigene Siri-App sowie einen Chatbot-Modus plant.

Giannandrea kam im Jahr 2018 zu Apple. Bei Google war er zuvor acht Jahre lang tätig. Seine Expertise in Machine-Learning passte gut zu Apples Ambitionen, die mit der Neural Engine auch in Hardware gegossen wurden. Doch als mit ChatGPT von OpenAI Jahre später die generativen Sprachmodelle einen Hype auslösten, wirkte Apple wie auf dem falschen Fuß erwischt. Die Vorstellung der Apple Intelligence, 2024, sollte der Befreiungsschlag werden. Die „AI for the rest of us“ (KI für den Rest von uns) sollte mit dem Datenschutz-Vorrang punkten. Stattdessen machte Apple Schlagzeilen damit, dass die KI-Siri offenbar gar nicht funktionierte und das Projekt offenbar komplett zurückgesetzt werden musste. Intern gilt die Dauerbaustelle Siri bereits seit Längerem als Problemfall, da versprochene Funktionen immer wieder verschoben wurden.

Die diesjährige Entwicklerkonferenz WWDC am 8. Juni soll nun den Trubel der vergangenen Jahre vergessen machen. Apple ist eine Kooperation mit Google eingegangen, um deren KI-Modell Gemini zu verwenden. Vor allem aber wurden erhebliche Veränderungen in der Leitung vorgenommen. Dabei gilt Federighi intern als Verfechter eines eher pragmatischen KI-Kurses mit Fokus auf Budgets und Partnerschaften. Der ehemalige Vision-Pro-Chef brachte für den Umbau der Siri-Abteilung zahlreiche Experten aus seinem alten Team mit. Weitere erfahrene Kräfte, die es richten sollen, sind Eddy Cue und Sabih Khan. Erneut ist ein Ex-Googler mit in der Verantwortung: Neuzugang Amar Subramanya soll als Vice President of AI aber deutlich weniger Eigenständigkeit genießen als sein Vorgänger. Er berichte an Federighi.

Giannandrea war in den vergangenen Monaten nur noch Berater für Apple. Sein Rückzug wurde im Dezember 2025 angekündigt, nachdem zuvor bereits laut geworden war, dass es zwischen den Ressortleitern bei Apple geknirscht hat. Bereits im März 2025 habe Cook Giannandrea deshalb die Leitung des Siri-Teams entzogen, hieß es in Medienberichten. Es war ein Rückzug in Raten. Sein Verbleib bis Mitte April erklärt Bloomberg-Reporter Mark Gurman mit den üblichen Gepflogenheiten in börsennotierten Unternehmen, um Giannandrea noch eine letzte Aktienprämie auszahlen zu können.

Weiterlesen nach der Anzeige

Nach Apple will der frühere KI-Chef laut Bericht in verschiedenen Unternehmensvorständen mitwirken und als Berater für Start-up-Unternehmen tätig werden. Wie stark Apples stotternder KI-Motor tatsächlich mit seiner Person verknüpft war, wird sich in den nächsten Monaten zeigen. Finanziell profitiert der Konzern trotz technischer Rückstände massiv: Erwartungen zufolge wird Apple bald eine Milliarde US-Dollar durch KI-Apps im App Store verdienen.

Lesen Sie auch


(mki)



Source link

Weiterlesen

Beliebt