PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Programm so anpassen, dass es unter Wine läuft?



dels
20.07.08, 12:23
Hallo allerseits,

habe mich hier in diesem Forum angemeldet, weil mich seit Wochen eine Frage beschäftigt, die ich aber als Nichttechniker nicht wirklich beantworten kann.

Ich arbeite für ein kleineres Unternehmen, das persönliche Fotobuchprodukte anbietet, die über ein Kundenfrontend erstellt werden und über das Internet hochgeladen werden. Das Kundenfrontend dafür ist allerdings auf die Windows Welt ausgerichtet.

In letzter Zeit erreichen uns aber immer mehr Anfragen, ob wir die Software nicht auch für die Linux-Welt verfügbar machen können. Das scheitert aber aktuell am Entwicklungsbudget und daran, dass bislang nur etwas 2% der Besucher unserer Website (www.pixelspeed.de) Linux nutzen. Trotzdem würden wir den Linux Usern gern entgegen kommen, zumal wir so vielleicht gegen die teuren Goliaths der Fotobuchbranche auch technologisch punkten können.

Jetzt diskutieren wir die Idee, warum das Konzept hinter Wine nicht einfach mal umdrehen. Statt zu warten, bis Wine so weit ist, dass unser Pixelspeed Layouter (https://www.pixelspeed.com/Download.6.0.php) irgendwann darunter läuft, nicht einfach unsere Software so anpassen, dass sie bereits jetzt unter Wine läuft.

Persönlich habe ich aber überhaupt keine Ahnung, wie hoch der Aufwand dafür einzuschätzen ist. Installieren laesst sich die Software unter Wine (nutze selbst parallel OpenSuse), danach ist aber mit Fehlermeldungen Schluss.

Meine konkreten Fragen:
Welche Hinweise kann ich unseren Entwicklern geben, damit der Prozess beschleunigt wird. Sind solche Anpassungen allgemein als eher einfach oder kompliziert einzuschätzen?

Sofern dies vielleicht nicht das richtige Forum sein sollte, wo kann ich solche Fragen sonst platzieren?

Vielen Dank
Dels

Newbie314
20.07.08, 13:21
Ich finde das eine gute Idee, bin aber selbst kein Entwickler. Ich schätze der Aufwand hängt davon ab wie der Layouter aufgebaut ist, bzw. welche Programmbibliotheken er benötigt.

Was Wine kann (und nicht kann) findet sich wahrscheinlich hier http://www.winehq.org/ aber den Link werden Ihre Entwickler sicher selbst sehr schnell finden....

Yahoo ist diesen Weg mit dem Picasa-Programm (erfolgreich wie ich finde) gegangen : http://picasa.google.com/linux/

deren Picasa binary bringt allerdings die passende Wine Installation gleich mit ...


Mittelfristig wäre die Frage zu prüfen ob sie bei der nächsten größeren Überarbeitung Ihrer Software vielleicht auf eine Umgebung die unter allen Betriebssystemen läuft (Java oder ähnlich, ich habe gehört die Qt library laufe auch unter allen Betriebssystemen) portieren wollen .. dann hätten sie den Mac Markt gleich mit abgedeckt und das "Hase-Igel" Spiel mit neuen Betriebssystem Releases könnte sich etwas entspannen ...

Dieser Weg wird vom An.On Projekt der Uni Dresden eingeschlagen (und wahrscheinlich auch von Skype).

rkauskh
20.07.08, 13:23
Hi

Ich würde mich mit den Fragen direkt an die Entwickler von Wine wenden. Die kommen vermutlich am besten mit den Fehlermeldungen zurecht und können den Aufwand am Besten abschätzen.
Ich denke, wenn sich Entwickler direkt unterhalten, wissen beide Seiten wovon sie reden. Eine gute Voraussetzung für produktives Arbeiten. ;)

dels
20.07.08, 20:43
Vielen Dank erst einmal für die Hinweise. Beide Vorschläge finde ich interessant. Allerdings kann ich mir die Portierung auf eine Umgebung, die dann unter allen Systemen lauffähig ist, aktuell aus Kostengründen noch nicht wirklich vorstellen, auch wenn es die wünschenswerteste Variante wäre.

Ich werde die Vorschläge in den nächsten Tagen diskutieren und mal schauen, ob und welcher Weg sich gehen läßt.

Gleichwohl verstehe ich den Ansatz von Picasa noch nicht. Liefert Google eine Art "Zusatz" für wine?

Grothesk
20.07.08, 21:52
Picasa packt eine abgestimmte Version von wine in ihr Binairy rein.
Google hat sich ja auch massiv an der Entwicklung von wine beteiligt. Da war es vermutlich relativ einfach, beide Komponenten aufeinander abzustimmen. Bei google saßen wohl beide Entwickler-Teams nicht weit auseinander.

WishMaster@NND
20.07.08, 23:09
Ich halte es nicht für gut. Viele Linux-User (wie ich z.B. auch) lehnen es ab, WINE-Software zu benutzen.
Schreibt euer Programm doch lieber in Qt, dann geht das reibungslos auf Linux, Windows und MacOS.

stefan-tiger
21.07.08, 06:28
Wie lauten denn die Fehlermeldungen von wine auf der Konsole?

Meistens steht da schon wo das Problem liegt. Oft liegt es daran, daß Funktionen aus Dlls benutzt werden die nicht (vollständig, fehlerfrei) in wine implementiert sind. Man kann dann versuchen die original Windows-Dll zu benutzen.
Allerdings klappt das auch nicht immer und ist lizenzrechtlich oft bedenklich.
Als Abhilfe kann man das Windows-Programm dann so umstricken, daß bestimmte Funktionen oder Dlls nichtmehr gebraucht werden.

Desweiteren müsst ihr überlegen, ob ihr die niedrigste wine-Version unterstützen wollt die zur Zeit in aktuellen (verbreiteten) Distributionen (SUSE, Ubuntu, Mandriva, Fedora) enthalten ist, oder die neuste wine-Version von http://winehq.org/.
Die jetzt neuste wine-Version ist nämlich erst bei den nächsten Versionen der Distributionen standard.

dels
21.07.08, 08:01
Ich packe mal die beiden Screenshots von den Fehlermeldungen hier dran.
Ich persönlich kann mit den Meldungen nichts anfangen, habe sie aber an unseren Entwicklungsleiter weitergeleitet.

Sidolin
21.07.08, 08:45
Ich denke der Weg von Picasa wäre der Beste. Dabei wird das Programm auch an wine angepasst, und dann inklusive der wine-bibliotheken ausgeliefert. Dabei braucht dann kein Anwender mehr selbst wine installiert zu haben.

Wenn man nur ein auf Wine auslegegtes Windowsprogramm ausliefert wird das durch die vielen verschiedenen Wineversionen der unterschiedlichen Distributionen zwangsweise zu Problemen führen. Da ist es quasi schon vorprogrammiert dass das bei einigen nicht laufen wird.

Dass eine richtige Portierung schöner wäre ist klar, aber wenn das machbar ist halte ich das auf jeden Fall für eine sinnvolle Sache.

Dem Vorschlag die Wineentwickler auf der Mailingliste zu kontaktieren kann ich mich nur anschließen.

Newbie314
21.07.08, 09:05
Diese Fehlermeldungen sagen leider nicht viel aus. Als Fehlermeldung: mal per wine programmname.exe in der Konsole starten und diese Fehlermeldungen hier (mit Code Tags => Kreols Signatur) einstellen.

Die Wine Entwickler werden wahrscheinlich die Ausgaben aus dem Debug Modus verwenden (mal "man wine" eingeben). Außerdem wäre es gut sich von den Wine Entwicklern eine Liste geben zu lassen worauf man achten muss wenn das Programm unter möglichst vielen Wine Versionen funktionsfähig sein soll.

Dann auf die Homepage beim Download einen Hinweis unter welchen Wine Versionen es getestet wurde .. und fertig ist die "einfachste" Variante.

Die Google-Entwickler haben bei Picasa "einfach" eine Wine Variante mit der ihr Programm läuft mit in die Binary reingepackt. Das hat den Nachteil eines (12 Mb glaube ich) Downloads, aber den Vorteil dass man das Problem der Kompatibilität mit den Wine Versionen umgeht. Da Picasa ein Bildbearbeitungsprogramm ist dachte ich dass es als Beispiel für Sie recht praktisch sein könnte: die Anforderungen und verwendeten DLLs dürften ähnlich sein.

Das "Einpacken" von Windows .dll s dürfte bei einem kommerziellen Produkt aus Lizenzgründen ausfallen fürchte ich .. damit "basteln" sich Linux-Nutzer die eine Windows Lizenz haben unter Wine oft eine funktionierende Installation ihrer Lieblingsprogramme zusammen.

Ich finde es toll das sich jemand der mit einem Programm Geld verdienen muss überhaupt Gedanken über die paar % Linuxnutzer macht ...

Sidolin
21.07.08, 09:17
Zu dem von vorher noch der passende Link: http://winehq.org/site/docs/winelib-guide/winelib-introduction#WINELIB-WHATIS

Newbie314
21.07.08, 09:20
Cooler Link. Und: möglichst "statisch kompilieren" oder so dass wir 64-Bit OS Nutzer das 32- Bit binary mit einfachen Modifikationen (z.b. 32. Bit Libraries ins lokale Verzeichnis kopieren) zum Laufen bringen ...

dels
21.07.08, 09:53
Hallo Newbie,

das mit den Fehlermeldungen werde ich heute Abend zu Hause versuchen. Hier im Büro habe ich (noch) keine Linux Installation.

Und danke für die netten Worte. Ich persönlich halte ne ganze Menge von Linux und glaube mit den neuen anwenderfreundlichen Distributionen (Hardy und OpenSuse 11) sind wichtige Schritte zu weiteren Verbreitung bestritten.

Aus Unternehmenssicht muss man sich allerdings die Frage nach der Wirtschaftlichkeit stellen. Immerhin 4% der Besucher unserer Webseite nutzen aktuell ein Linux-System. Ich glaube aber, es wären deutlich mehr, wenn der Layouter tatsächlich unter Linux lauffähig wäre. Gleichwohl würde das die Kosten für eine komplette Portierung noch nicht rechtfertigen, es sei denn Kosten spielten wie bei einigen Großen der Branche keine Rolle.

Ich halte daher das Wine-Konzept für eine sehr interessante Kompromisslösung zwischen Budgetrestriktionen und der Reaktion auf Anfragen, die uns erreichen. Die von uns angebotene Alternative mit dem sogenannten pdf-Druckservice (http://www.pixelspeed.com/PDF-Druckservice.397.0.php) steht natürlich auch Linux-Nutzern offen. Sie richtet sich aber eher an den anspruchsvollen Anwender, der vielleicht mit Scribus ein Fotobuch erstellt, ist jedoch für den "Normalnutzer" noch nicht anwenderfreundlich genug.

Insgesamt wünsche ich mir als Linux User (bezeichne mich da aber nur als interessierten Anfänger), dass mehr "gewohnte Software" unter Linux läuft.

tonmeister440
21.07.08, 10:26
hi,


Ich halte es nicht für gut. Viele Linux-User (wie ich z.B. auch) lehnen es ab, WINE-Software zu benutzen.
Schreibt euer Programm doch lieber in Qt, dann geht das reibungslos auf Linux, Windows und MacOS.

ob du das für gut hälst ist völlig belanglos. es wurde vo TE doch schon gesagt, das eine entwicklung für linux aus kostengründen nicht in frage kommt.

zum anderen wie kannst du hier behaupten, das viele linux wine ablehnen. fakt ist das definitiv nicht. weil ich kenne eigentlich nur linuxer, die wine einsetzen und zufrieden mit der lösung sind.

gruss tonmeister440

stefan-tiger
21.07.08, 10:30
Zum testen von Software ganz nett: Linux-Distributionen in einer VM (Vmware, VirtualBox, Quemu, VirtualPC,...) installieren.

So kannst du evtl. sogar bei dir am Arbeitsplatz problemlos "Linux in einem Windows-Fenster" betreiben und eure Software ausprobieren.

Ich verwende http://www.virtualbox.org/ und bin damit sehr zufrieden.

So kann ich schnell zwischen "allen" Windows,Linux und *BSD-Betriebssystemen wechseln um Dinge auszuprobieren. Man kann sie auch gleichzeitig laufen lassen, aber das nagt am Arbeitsspeicher... :-)

dels
21.07.08, 20:29
Newbie314

Fehlermeldungen sagen leider nicht viel aus. Als Fehlermeldung: mal per wine programmname.exe in der Konsole starten und diese Fehlermeldungen hier (mit Code Tags => Kreols Signatur) einstellen.

Auch auf die Gefahr, mich gewaltig hier zu blamieren: Als Meldung nach dem Start in der Konsole erhalte ich folgenden Text. Mehr bekomme ich auch nicht hin, weil sich dann der Layouter samt Konsole wieder verabschieden.

fixme:mixer:ALSA_MixerInit No master control found on HDA ATI HDMI, disabling mixer
fixme:win:EnumDisplayDevicesW ((null),0,0x32f7d0,0x00000000), stub!
fixme:wtsapi:WTSRegisterSessionNotification Stub 0x1002a 0x00000000
fixme:richedit:RichEditWndProc_common WM_STYLECHANGING: stub
fixme:richedit:RichEditWndProc_common WM_STYLECHANGED: stub
fixme:richedit:RichEditWndProc_common EM_SETTYPOGRAPHYOPTIONS: stub
fixme:richedit:IRichEditOle_fnQueryInterface 0x2717ef0: unhandled interface {01c25500-4268-11d1-883a-3c8b00c10000}
err: ole:CoGetClassObject class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:create_server class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:CoGetClassObject no class object {88d969c0-f192-11d4-a65f-0040963251e5} could be created for context 0x5
err: ole:CoGetClassObject class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:create_server class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:CoGetClassObject no class object {88d969c0-f192-11d4-a65f-0040963251e5} could be created for context 0x5
err: ole:CoGetClassObject class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:create_server class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:CoGetClassObject no class object {88d969c0-f192-11d4-a65f-0040963251e5} could be created for context 0x5
err: ole:CoGetClassObject class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:create_server class {88d969c0-f192-11d4-a65f-0040963251e5} not registered
err: ole:CoGetClassObject no class object {88d969c0-f192-11d4-a65f-0040963251e5} could be created for context 0x5
fixme:msxml:create_node only creating basic node for type 14

Newbie314
21.07.08, 23:26
Das mit dem Alsa ist harmlos, habe ich auch: da geht der Sound dann halt nicht.

Ich schätze dass Ihre Entwickler mit den Fehlermeldungen ab IRichEditOle etwas anfangen können: das sieht so aus als würde etwas aufgerufen / benötigt was Wine nicht kennt.

Anhand des Links von Sidolin müssten Ihre Entwickler eigentlich einen Überblick bekommen wie viel Aufwand die Anpassung an Wine in etwa sein sollte ...

dels
22.07.08, 10:07
Erst einmal hier vielen Dank für die Unterstützung und das Feedback.
Ich habe das jetzt so an die Entwickler weitergegeben und hoffe, die können daraus die richtigen Maßnahmen ableiten.
Wird wohl aber ein paar Wochen dauern.
Ich verspreche aber schon mal, spätestens nach den Ferien eine Rückmeldung zu geben, wenn nicht vorher neue Fragen auftauchen.

stefan-tiger
23.07.08, 06:44
Schwerwiegender dürften wohl die "err: ole"-Meldungen sein.

Hier Fehlt sowas hier: http://de.wikipedia.org/wiki/Object_Linking_and_Embedding

Ich weiss nicht woher man die "OLE"s bekommt, evtl. eine oder mehrere Dlls? Eure Entwickler sollten das wissen.