Wie lautet die perfekte Formel, um als Entwickler möglichst viele Distributionen mit möglichst wenig Aufwand zu unterstützen?

10 Beiträge / 0 neu
Letzter Beitrag
thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 178
Wie lautet die perfekte Formel, um als Entwickler möglichst viele Distributionen mit möglichst wenig Aufwand zu unterstützen?

Manchmal beobachte ich, dass Spiele, die in Binärform daherkommen, auf wenig Distributionen laufen und zwar nur, weil die Entwickler "versehentlich" ein zu neues Build-System verwendeten und nicht etwa, weil es die Notwendigkeit gab spezielle Features, dieser neuen Distributionen zu verwenden.

Daher frage ich - welches ist die PERFEKTE (oder optimale) Formel zur Wahl des Build-Systems. Es ist anscheinend nicht ganz trivial - man kann aber die meistens (oder immer? - beim syscall-interface gilt zumindest: IMMER) vorhandene Abwärtskompatibilität nutzen - Oder gibt es ein Spiel, das nicht mehr läuft, weil es zu alt ist?

Mein Vorschlag:

Für jede Kombination c von in Frage kommendem Paketformat (z.B. deb, rpm, und non-packaged) und Architektur (z.B. arm, x86, amd64)
Wähle unter den noch unterstützten Distributionsreleases, die mit c kompatibel sind, diejenige Distributionen mit dem ältesten Freeze-Date (und VORSICHT: Nicht Release-Date!)

Bei deb wäre das, glaube ich im Moment noch Ubuntu 10.04.
Der Support für Lucid läuft allerdings aus im April 2013, danach wäre die Wahl für deb Debian Squeeze.

PlayX
Bild des Benutzers PlayX
Offline
Beigetreten: 04.07.2008
Beiträge: 310

Genai dieses Problem ist ja angeblich der Grund, warum Blizzard seinen WoW Client bisher zurück hält. Sie haben halt nicht die Lust und vielelicht auch nicht die Möglichkeiten 50 verschiedene eigenarten der Distributionen zu bedienen. Das Supportsystem wäre binnen Stunden warscheinlich überflutet mit Tickets für Probleme die ihren Ursprung in der jeweilkigen Distribution haben. Darum setzt Valve ja Momentan nur auf Ubuntu und bietet auch nur für dieses Support an. Alle anderen betreiben Steam quasie auf eigenes Risiko ohne Chance auf Support.
Dies ist meiner Meinung nach auch der beste weg für die Entwickler. Man sieht es ja schon hier im Forum, das Spiele bei manchen usern ohne Probleme laufen, bei anderen eben halt nicht. Der aktuelle Trend sich auf Ubuntu zu fokussieren ist in meinen Augen richtig, da dieses wohl auch die Distribution ist welche von den meisten "Mainstream" Nutzern berwendet wird.
Ich habe sogar die befürchtung, das man sich selbst als reiner Linux Nutzer in Zukunft ein Dualboot mit Ubuntu machen muss, damit die Spiele laufen. Ist aus sicht vieler zwar eher unschön aber vom Standpunkt des Entwicklers durchaus zu verstehen.

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 4447

Ich fänds okay, wenn die Hersteller sich nur auf Ubuntu konzentrieren. Das macht echt für sie einfacher und sie portieren es und können es mit dieser fixen Umgebung supporten.

Wenn es dann unter Ubuntu läuft, läufts mit kleinen Anpassungen auch überall anders.

Stachel-Gewitter
Bild des Benutzers Stachel-Gewitter
Offline
Beigetreten: 03.08.2011
Beiträge: 48

Nur Ubuntu zu unterstützen, gegen diese Entscheidung strebe ich mich nach wie vor.
Bloß weil dies die am meisten verbreiteste Distribution unter Umsteigern ist, bedeutet dies keineswegs, dass es die einzige ist.

Zu mindestens zwei oder drei, der großen Desktop-Distributionen sollten unterstützt werden.
Idealer Weise wäre dies neben Ubuntu, wenn es schon als Referenz herhält, Susi für die RPM-Fraktion und eventuell Debian, denn Ubuntu DEBs funktionieren damit nur bedingt.

Noch lieber wäre es mir allerdings, würden die Entwickler den Quellcode anbieten, der funktioniert nämlich unabhängig und gegebene Abhängigkeiten lassen sich nachrüsten.

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 178

Mit Ubuntu gibt es nun mal eine zentrale Anlaufstelle - trotzdem ist das Problem nicht gelöst - gut möglich, dass in 2 Jahren Spiele herauskommen, die nicht mit Ubuntu 12.04 laufen und zwar ohne dringenden Grund, sondern einfach glibc oder so.

Stachelgewitter: wegen DEB: Auch dann wenn der Freeze der Ubuntu-Version vor der Debian version liegt? Es gibt einige Anbieter einwandfreier Pakete, z.B. google chrome & earth afaik

Übrigens: Für Steam (nonpackaged) würde mein Vorschlag einfach die älteste (nach freeze) noch unterstützte Distributionsversion ausspucken. Welche Distribution und Version ist das? Clientsysteme only.

Wenn wir das wissen könnten wir doch ein paar Tests machen!

Ich habe zu weiter Teilen nämlich das Gefühl dass die vermeintliche Interdistroinkompatibilitäten, bloss eher übersichtliche und beinahe eindimensionale shared library Versions-Aufwärtsinkompatibilitäten sind und sonst nichts.

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 178

So, ich hab jetzt mal kurz die wichtigsten Distributionen überflogen

genauert gesagt

Red Hat (14. März 2007)
Fedora
Mandriva
Mageia
Debian
Ubuntu
Suse
openSUSE
Arch
Gentoo
Slackware
Xandros

Xandros ist anscheinend irrelevant geworden, Gentoo und Arch sind Rolling Releases und daher irrelevant für unsere Zwecke, Red Hat hätte zwar den längsten Support-Zeitraum ist allerdings ein Enterprise OS und ist für Consumer wahrscheinlich irrelevant, Suse ist openSUSE, zu Slackware habe ich keine Lifetime-Angaben gefunden

Bleiben

Mandriva
Mageia
Debian
Ubuntu
Suse
openSUSE

Aktuell wäre Ubuntu 10.04 das älteste unterstützte System, danach Debian Squeeze und zwar noch bis zu ein Jahr nach Release von Wheezy und dann dürfte es nur wenige Monate dauern, wenn nicht unmittelbar, bis es wieder Ubuntu ist mit Version 12.04 - wenn ich es richtig sehe und nach den aktuellen Lifecycle Policies dürfte es dann Ubuntu für alle Zeiten sein, da es kein anderes OS mit 5 Jahre Support gibt?!

In Zukunft wäre immer das älteste Ubuntu LTS das pefekte Build-System für non-packaged bzw. Steam - dann hat Valve ja genau die richtige Entscheidung getroffen - vorausgesetzt sie gehen die 5 Jahre mit, denn alles was auf Ubuntu LTS läuft, dürfte dann ohne grosse Schwierigkeiten auch auf allen anderen Distributionen laufen - einzig Debian hat manchmal für kurze Zeit das ältere Freeze-Date:

2010-08-06 ist das Freeze Date für Squeeze - wenn Wheezy veröffentlicht wird, sagen wir diesen Februar, dann wird Squeeze noch bis Februar 2014 unterstützt. Das sind dann ca. 3.5 Jahre, Differenz, im Frühling 2017 wird Ubuntu 14.04 zum letzten unterstützten System, was aber nur 3 Jahre DIfferenz sind d.h. unter Umständen kann es vorkommen, dass ein auf Ubuntu LTS gebautes Spiel zu neu für ein ältestes Debian ist, aber es ist immerhin unwahrscheinlich und das Gegenteil wahrscheinlicher.

Dann setzt ich mal wieder Ubuntu 10.04 in ner VM auf und fange an zu testen :-)

Edit:
Also bis jetzt noch keine Herausforderung..
Dass mit Ubuntu 10.04 kompilierte nexuiz-sdl läuft natürlich auf Ubuntu 12.04 und Debian Squeeze

Okay, ich nehme CentOS mit ins Spiel auf, da man in Erwägung ziehen könnte es für Gaming zu verwenden. CentOS 5 von 2007.

Stachel-Gewitter
Bild des Benutzers Stachel-Gewitter
Offline
Beigetreten: 03.08.2011
Beiträge: 48

@thechef:

Ich zu mindestens bekomme Probleme mit meinem Squeeze, sofern ich Pakete wie jene von Steam oder manchem Spiel installieren will, weil diese speziell auf Ubuntu angepasst sind.

Manchmal wegen Abhängigkeiten (Steam), manchmal wegen Paketen, welche standardmäßig in Ubuntu, jedoch in Debian wenn nur optional sind (Bit.Trip Beat).
Hatte auch schon Spaß wegen der Architektur, wenn auch dieses Problem mit ein paar Parametern und 'dpkg' lösbar ist.

Natürlich läuft das meiste, doch mancher Entwickler geht wohl stumpf davon aus, dass jeder Ubuntu als Distribution einsetzt, kein Problem, würde es doch wenigstens auch den Quellcode immer geben.

Vor dem Wechsel auf Debian7 scheue ich mich nach wie vor, auch wenn LXDE und Xfce ein guter Ersatz für Gnome2.32 ist, so läuft Squeeze gerade so schön rund.
Zumal Wheezy noch um die 200 Fehler in Testing haben soll, welche bis zum Release noch ausgebügelt werden müssen.

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 178

Dass Problem, dass du Abhängigkeiten nachinstallieren musst, hast du bei Ubuntu auch - aber das ist ja eigentlich kein echtes Problem, da der Paketmanager*, das automatisch macht.
Es wäre ja unsinnig, wenn man schönes dependency Package-Management hat, das einem derartige "Lazy Installation" ermöglicht und dann alles vorinstalliert bekommt. Kann ich Debian/Ubuntu gleich wegschmeissen und mir ein monolithisches OS-ROM laden.

Ich sehe das Problem daher immer noch eher darin, dass der Entwickler denkt "Jaja, die werden schon alle Ubuntu 12.04 und nicht Ubuntu 10.04 verwenden" und nicht etwa in "Jaja, die werden alle Ubuntu und nicht Debian verwenden". Oder kennst du ein Paket, das auf Ubuntu 10.04 läuft, aber nicht auf Debian Squeeze?

Ich finde es auch völlig richtig, dass du Debian Squeeze und nicht wheezy verwendest.
Wieso sollten sich Entwickler auch um Kompatibilität mit stabilen und bewährten Versionen konzentieren, wenn sowieso jeder Depp mit Bleeding Edge sein System zerdonnert.

\*gilt zumindest für den High Level Package Manager (apt, gdebi, packagekit und wie sie alle heissen)
Ich bin mir allerdings nicht ganz sicher wie Debian Squeeze auf High Level mit fremden Architekturen (i386) umgeht. Was sagt gdebi?

dpkg hingegen ist allerdings ein Low-Level tool, das keinen Abhängigkeitspfaden folgt und das Auflösen der von dir genannten Probleme explizit dem User übergibt.
So musst du mit dpkg auch unter Ubuntu spezielle Parameter übergeben, wenn du fremde Architekturen installieren willst.

Der_Pit
Bild des Benutzers Der_Pit
Offline
Beigetreten: 06.01.2011
Beiträge: 25

Ich sehe in der Tat auch das grösste Problem in der Aktualität des Build-Systems. Welche Distri (und welches Paketformat) ist zweitrangig. Ich hab mir gerade gestern Puddle bei Desura gekauft. Gezwungenermassen blind, denn es gibt keine Demo. Läuft leider nicht, da es glibc 2.15 voraussetzt. Das kann so einfach auch kein Paketmanager richten...
Ich glaube nicht dass irgendwas in dem Spiel etwas benötigt, das eine ältere glibc nicht bietet.
Umgekehrt hab ich massig richtig alte Spiele, die (fast) problemlos laufen. Zu alte libs sind also ein kleineres Problem als zu neue. Als Entwickler hat man also sicherlich weniger Kummer wenn das Build-System schon älter ist und man sicherheitshalber speziellere libs noch dazupackt...

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 178

Xonotic 0.6.0 gebaut auf CentOS 5.9 dürfte auf Debian Squeeze und Ubuntu 12.04 auch laufen (einzig executable nexuiz-sdl kopiert, sonst nix)

ich habs aber nicht genauer getestet, hatte nämlich keinen X-Server gestartet.

Edit: mit X 12.04, läuft

Somit ist meine Behauptung:

Interdistro-Inkompatibilitäten sind ein Mythos und betreffen nur Pakete, die sowieso von allen Distros geliefert werden. Das sind gleichzeitig auch Pakete, die sehr im System verstrickt sind, wodurch Kompatibilität weder erwünscht noch in endlicher Zeit möglich ist.

Problematisch ist lediglich, wenn Entwickler zu sehr auf "Bleeding Edge" fokussiert sind.

Mastodon