Linuxandlanguages.com goes Apple Silicon

Ich habe mir letzte Woche einen MacMini M2 in der Basiskonfiguration bestellt, da ich nach etwa 20 Jahren Linux ein neues System ausprobieren wollte und die Apple Silicon-Architektur sehr spannend finde.

Die aktuelle Version von CrossOver habe ich bereits installiert und schon einige kleine Anwendungen ausprobiert.

Derzeit suche ich nach einem Weg, wine ggf. aus den Quellen zu kompilieren, Staging-Patchsets auszuprobieren und einzubinden etc. aber ich bin noch nicht soweit wie ich es unter Linux war.

Mal wieder ein neues Paket gebaut – Darling (quasi wine für macOS-Anwendungen unter Linux)

Heute habe ich mich nach getaner Arbeit für einen meiner Kunden mal wieder etwas mehr “wine” gewidmet. 

Im CrossOver-Forum erfuhr ich, dass CrossTies nicht für jede Version erstellt werden müssen aber idealerweise in der Beta getestet werden sollten. Good to know.

Im Macuser-Forum wurde ich dann auf ein Projekt aufmerksam, welches einen ähnlichen Ansatz wie “wine” aber für macOS Anwendungen unter Linux verfolgt.

Das Projekt heißt “Darling” steht unter GPL3 und ist momentan im Alphastadium. Mit dem openSUSE Buildservice gelang es mir, den Sourcecode vom aktuellen Release zu kompilieren und paketieren. Derzeit nur für Tumbleweed. (Link zu meinem Repository)

Wer Tipps und Ideen hat, wie man den Sourcecode auch für die ältere Plattform i586 zum Laufen bekommt kann gerne einen Kommentar hinterlassen.

Saludos und Happy Hacking!

New Old Tech für meinen Mac Mini “warren” ehem. “oldracer”

Diesen Blogpost widme ich Synthifreak aus dem MacUser.de-Forum, der mich freundlicherweise mit einigen Ersatzteilen für den Mac Mini ausgestattet hat.

Im Detail sind dies:

  • Lautsprecher, intern
  • Kühlkörper für CPU und GPU
  • Prozessor Intel Core2Duo T7200

An dieser Stelle möchte ich mich nochmals ausdrücklich bei Synthifreak bedanken, dass er die Ersatzteile zur Verfügung gestellt hat. Damit steht “warren” noch eine lange Zukunft bevor.

Exklusiver Rabattcode für CrossOver-Interessenten (30% Rabatt auf aktuellste Version und Abonnement)

Ich freue mich bekannt zu geben, dass ich mit Codeweavers eine Partnerschaft schließen konnte und mir ein exklusiver Rabattcode für meine Webseite und Blog eingerichtet wurde. Dabei erhalte ich keine Provision von Codeweavers solltet ihr im Onlineshop von Codeweavers den Code einlösen.

Der Code lautet LANGUAGEPORTS und bietet 30% Rabatt auf die aktuelle Version sowie das 1-Jahr-Abonnement von CrossOver Mac bzw. Linux.

Arbeiten mit Wine – Teil 1 – Das Wine-Ökosystem (Deutsche Übersetzung)

Dieser Text wurde von CodeWeavers  unter einer freien Lizenz im offiziellen Blog veröffentlicht wobei ich mir die Freiheit genommen habe, diesen Text zu übersetzen und den Interessenten an Wine, sei es Linux oder macOS zur Verfügung zu stellen.

 Über diese Hilfen

Dies ist eine Serie von  Hilfen, die darauf abzielen, Softwareentwickler in das Wine-Ökosystem einzuführen. Es wird was Wine ist, wie man Wine benutzt, wie man Wine debugt, wie man Wine repariert und was man mit der Korrektur macht sobald man es geschafft hat.

Diese Handbücher werden im Laufe des Januars veröffentlicht werden.

  • Teil 1 beschreibt was Wine ist und bietet eine kurze Beschreibung verschiedener bekannter Forks von Wine.
  • Teil 2 beschreibt Wine’s Buildprozess.
  • Teil 3 beschreibt wie man Wine als Entwickler nutzt.
  • Teil 4 beschreibt wie man allgemein Wine debugt.
  • Teil 5 beschreibt Wines Quellbaum-Aufbaum und wie man die Quellen bearbeitet.
  • Teil 6 beschreibt wie man seine Arbeit “upstream” senden kann.

Was ist Wine?

Wine ist eine Open Source Reimplementierung von Microsofts Windows Betriebssystem auf Basis von verschiedenen Unix Betriebssystemen. Es zielt vorrangig auf Linux und macOS ab, kann aber auf anderen Systemen wie FreeBDS, NetBSD und Solaris laufen. Dies bedeutet für Benutzer, dass sie Software, die für Windows geschrieben wurde, auf anderen Systemen laufen lassen können. Wine beinhaltet keinen Microsoft-eigenen Code womit kein Bedarf an einer Windowslizenz zum Betrieb von Wine nötig ist. Stattdessen haben die Wine-Entwickler Komponenten des Windows-Betriebssystems neu geschrieben. So denkt die Software, dass sie auf Windows läuft obwohl sie tatsächlich auf Linux beispielsweise betrieben wird.

Als ein einfaches Beispiel betrachten wir die Windows CreateFile API. Auf Windows könnte der Aufruf einer Anwendung wie folgt aussehen:

    CreateFileA(
        "C:\some_file.txt",   //lpFileName
        GENERIC_WRITE,         //dwDesiredAccess
        0,                     //dwShareMode
        NULL,                  //lpSecurityAttributes
        CREATE_ALWAYS,         //dwCreationDisposition
        FILE_ATTRIBUTE_NORMAL, //dwFlagsAndAttributes
        NULL                   //hTemplateFile
    );

Wine übernimmt diesenCreateFileA Aufruf und übersetzt diesen in einen Unix open Aufruf:

    open(
        "/home/aeikum/.wine/drive_c/some_file.txt", //path
        O_WRONLY | O_CREAT,                         //oflag
        0644                                        //creation mode
    );

Das Filehandle wird der Anwendung zurück gemeldet, welche dann in die Dateie mit einer ähnlichen Implemtierung schreiben kann. Beispielsweise wäre dies WriteFile auf Unix’s write. Natürlich ist die tatsächliche Implementierung von CreateFileA in Wine weit, weit komplizierter als dies (siehe Konvertierung von Pfaden beispielsweise) aber dies vermittelt einen Eindruck, was Wine macht.

Wine Forks

Da Wine ein Open Source Projekt ist, steht es jedem offen, Kopien zu erstellen und diese zu modifizieren um den Bedürfnissen der jeweiligen Benutzer zu entsprechen. Es gibt Hunderte von Wine-Forks aber einige davon wurden sehr bekannt und werden hier beschrieben.

“Upstream” Wine

Webseite: https://www.winehq.org/
Dies ist die reine Version von Wine von der alle anderen Forks abgeleitet werden. Wenn sich jemand auf “Upstream Wine” beruft, spricht er von diesem Projekt. Wine fokussiert primär auf Richtigkeit. Wine beinhaltet extensive Unittests, welche das Verhalten von Windows zeigen und verlangt von den meisten Patches, dass sie Tests liefern. Alle Patches müssen die bestehenden Tests erfolgreich durchlaufen damit sie akzeptiert werden. Es gibt ebenso eine starke Fokussierung auf Code-Qualität. Wine ist ein sehr großes Projekt (eigentlich ein ganzes Betriebssystem inkl. GUI) wobei Technische Schulden stark vermieden werden damit das Projekt wartbar im Laufe der Zeit bleibt.

Wine Staging

Webseite: https://wiki.winehq.org/Wine-Staging
Dennoch bedeutet Wines strenge Akzeptanz von Patches, dass viele ungetestete, falsche oder gefährliche Patches in privaten Forks oder im Bugtracken sich sammeln würden. Diese könnten aber für heutige Nutzer durch aus nützlich sein. Das Wine Staging Projekt (auch “wine-staging” genannt) ist ein Versuch, diese nützlichen Patches zu sammeln so dass Nutzer leicht Vorteile darauf ziehen können. Die Wine Staging Community arbeitet daran, diese Patches in Wine zu bringen damit der Nutzen für alle Winenutzer und Forks zu Gute komme wobei gleichzeitig Wine Stagings eigene Wartung sinkt. Es kann auch als “Bewährungsfeld” für Patches dienen die eine schwere Bewährung haben bevor sie Upstream akzeptiert werden.

CrossOver

Webseite: https://www.codeweavers.com/
CrossOver ist ein kommerzieller Fork von Wine, welcher von der Firma CodeWeavers verkauft wird. Es beinhaltet viele anwendungs-spezifische Hacks, die nicht zum Einbinden in Upstream geeignet sind.CodeWeavers unterhält ebenso eine Anwendungs-Kompatibilitäts-Datenbank welche einige Softwarekomponenten vorab installiert und die Wineumgebung entsprechend modifiziert. Dennoch zieht es CodeWeavers stark vor, Features richtig zu implementieren und sendet die Arbeit an “Upstream Wine”. CodeWeavers Mitarbeiter leisten einen bedeutenden Beitrag bei der Arbeit an Wine.

Proton

Webseite: https://github.com/ValveSoftware/Proton/

Proton ist ein Fork, welcher von der Firma Valve erstellt wurde und in ihre Steam Software, eine bedeutende Videospiel und Programm-Plattform, integriert ist. Proton fokussiert sich darauf, ein angenehmes Erlebnis für Steamnutzer beim Betrieb von Windowstiteln auf Linux zu bieten. Wie auch bei CrossOver, werden die meisten der Beiträge auch an “Upstream Wine” geschickt.

Andere Forks

Es gibt sehr, sehr viele andere Forks von Wine. Manche werden mit kommerzieller Software paketiert und als macOS und Linux-Software verkauft. Manche sind einmalige Forks, die von Benutzern für eine einzelne Anwendung erstellt  wurden.

Entwickeln für Wine

Wine ist nicht perfekt und es ist wahrscheinlich, dass man auf einen Mangel oder Bug im Tagesbetrieb von Wine stößt. Vielleicht sind Sie interessiert daran, Wine zu verbessern damit es ihre Anwendung oder Spiel in Betrieb nimmt oder vielleicht will ihr Arbeitgeber Wine verwenden und Sie bezahlen, es zu beheben. Dieses Handbuch wird Sie darin unterstützen wie man Wine kompilieren, Debuggen und beheben kann und wie man diese Fixes upstream sendet.

Creative Commons License
The text of this blog post is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Mein Zertifizierungsweg für 2019

Seit einigen Jahren verfolge ich das Konzept, nicht primär auf Berufsabschlüsse der Industrie- und Handelskammer zu setzen und orientiere mich an dem Zertifizierungssystem der USA, welches auch in Indien sehr populär ist.

Geplant für das kommende Jahr ist, eine Zertifizierung in Comptia Project+ zu absolvieren. Ich hatte bereits einige Projektmanagementvorlesungen und kam sowohl mit klassischen Projektmanagement als auch PRINCE2 sowie agilen Methoden wie SCRUM in Kontakt. Ein Zertifikat soll diese Kenntnisse nun noch besonders unterstreichen, da mir Projektmanagement auch Spaß macht.

Viele der Themen wie Projektstrukturplan, Arbeitspakete etc. wende ich tagtäglich an. So beispielsweise plane ich den Umzug in meine neue Wohnung mit Hilfe von Projektmanagement.

Generell kann ich den Weg der Zertifizierungen sehr empfehlen: Viele Stimmen argumentieren, dass Zertifikate nichts bzw. noch nicht mal das Papier wert sind. Persönlich halte ich Zertifikate dennoch für wichtig.

Der Grund für meine Überzeugung ist, dass in der IT-Branche viele Unternehmen Partner einer bestimmten Technologie sind.

Hierbei wird oft in Stufen wie beispielsweise Silber- oder Goldpartner unterschieden. Für gewisse Partnerstufen muss das Unternehmen auch ein gewisses Kontingent an zertifizierten Personal bereit halten um diesen Status zu erfüllen. Das muss nicht zwingend Linux (mein Steckenpferd) sein – auch Apple oder Microsoft bieten so etwas an.

Vorbereitung auf solche Zertifizierungen kann man auch im Selbststudium absolvieren und ich habe mir heute über StackSocial* zwei Kurse zu den Themen Salesforce und RedHat Linux gekauft, die im Sonderangebot (Sale) waren. Insbesondere mit einem RedHat RHCE (RedHat Certified Engineer) kann man sich so ziemlich überall sehen lassen und wird sicherlich über Xing oder LinkedIn

Im Linuxumfeld ist es jedoch ein ziemlich langer Weg, den man zu diesem Zertifikat gehen muss: Nicht jeder hat die Muße sich mit Kommandozeilen herum zu schlagen, man-pages zu lesen und sich einen Gesamtüberblick zu verschaffen.

* = Affiliate Link

SDL Trados unter wine bzw. CrossOver – Bewerbung als Super-Maintainer

Ein bedeutendes Software-Programm in der Übersetzerszene, welches ich schon lange verfolge, ist SDL Trados.

SDL Trados wird jährlich in einer neuen Version heraus gegeben, ähnlich CorelDraw oder PaintShopPro, die ich ebenfalls teste.

Die aktuelle Version ist “SDL Trados Studio 2019” welches ich in der Freelancer-Ausgabe testen möchte.

Bei einem Besuch in der AppDB habe ich leider nur sehr alte Berichte zu Version 2007 gefunden.

Geplant ist es, diese Kategorie komplett neu zu organisieren und auch neuere Testberichte zu zu schreiben.

Die Bewerbung als sogenannter “Super-Maintainer” läuft bereits. Drückt mir die Daumen.

Update: 10. Dezember 2018: Meine Bewerbung wurde mittlerweile angenommen und ich habe die Kategorie zumindest ein wenig umstrukturiert dass sie die einzelnen Versionsstände reflektiert und nicht nur ein einzelner Eintrag zur 2007er Version ist. Berichte eurerseits sind natürlich willkommen.

In der AppDB für Lieblingsanwendungen abstimmen

Eine weitgehend unbekannte Tatsache bei der Nutzung von wine und CrossOver ist, dass man angeben kann, auf welche Applikationen und Spiele sich die wine-Entwickler fokussieren soll.

Und das geht im Falle von wine in der AppDB wie folgt:

  • Ihr benötigt ein Konto (Account) für die AppDB und loggt euch mit Benutzername und Passwort ein.
  • Über die Suchfunktion sucht ihr die von euch gewünschte Anwendung heraus und navigiert zu der entsprechenden Seite.
  •  Im Falle von StarCraft II sieht die Projektseite wie oben abgebildet aus. 
  • Auf der rechten Seite unter “Application Details” findet ihr den Button “Vote” worüber ihr bis zu drei Stimmen auf diese Anwendung oder das entsprechende Spiel kumulieren könnt. 
  • Es erfolgt keine Aufforderung, nach einer gewissen Zeit, die Stimmen neu zu verteilen. Dies ist insbesondere schade, da Spiele wie Counterstrike Source mittlerweile auch für Linux und Macintosh zu haben sind und manche Teilnehmer ihre Wahl und Verteilung ihrer Stimmen vielleicht doch nochmals überdenken und neu verteilen.
  • Derzeit ist “Final Fantasy XI” das mit Abstand meistgewählte Spiel. Persönlich kenne ich aber niemanden, der diesen Titel spielt oder gespielt hat.

Für welche Spiele stimmt ihr ab oder habt ihr abgestimmt? Welche Programme unter wine wären euch wichtig? Bitte lasst es mich in den Kommentaren wissen…