Ein guter Grund keine Quelldateien mit auszuliefern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Bei uns in der Firma habe ich ein paar Projekte in Python realisiert,
mit dem Grundgedanken alles unter einer normalen Python installation laufen zu lassen.

Damit fingen dann schon Probleme an, von Verschiedenen Bibliotheken die Versionen an verschiedenen Maschinen gemischt.

--> Versionsabfrage der installierten Libs eingebaut.

Gab trotzdem noch Probleme, scheinbar verstehen manche Leute nicht was "Version xxxx of Library xxxx not supported" beudeted".

--> Python interpreter und alle Libs per cx_freeze in ein Projekt mit eingepakt.

Ab jetzt keine Probleme mit der Installation mehr,
dafür zerlegts mir gerade die Versionsverwaltung da Kunden und Servicemitarbeiter manuell in den Scripts zu editieren anfangen.

--> Nächster Schritt alles Bytecompilieren.

Was kommt als nächstes ;-)

Super währ ein exe File und mehr nicht, gibts DAU geschützte Python Programme? ;-)
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Hand hat geschrieben: Ab jetzt keine Probleme mit der Installation mehr,
dafür zerlegts mir gerade die Versionsverwaltung da Kunden und Servicemitarbeiter manuell in den Scripts zu editieren anfangen.
Du solltest bei Auslieferung MD5-Hashes der Skripte erstellen. Stimmen diese nicht mehr, so ist die Datei geändert worden und du kannst dir im Problemfall deine Dienste extra bezahlen lassen. Schöner geht es doch gar nicht.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

PyInstaller kann eine One-File-EXE erzeugen. Du solltest dir aber die Version aus dem SVN-Repo installieren, wie es auch auf der Seite als Empfehlung angegeben wird, da das letzte Release (1.3) inzwischen massiv veraltet ist.
lunar

Kann Dir das nicht egal sein, dass Deine Kunden an den Programmem rumpfuschen? Schließlich ist das eine Urheberrechtsverletzung [1], darauf lassen sich kaum Ansprüche aufbauen …

[1] Natürlich nur, wenn Du die Veränderung nicht explizit vertraglich erlaubt hast. In diesem Fall musst Du dann eben mit Veränderungen leben.
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Hi,

die eigenen Mitarbeiter ändern daran herum weil sie meinen was optimieren zu können obwohl sie es nicht dürfen.
Solche Änderungen müssen aber getrackt und mit einer Versionsnummer versehen und freigeben werden.

Desswegen muss die grundsätzliche Möglichkeit was verändern zu können verhindert werden,
sobald die Möglichkeit da ist was zu verändern, wird daran herumgeschraubt.

Die Software an sich ist Kostenlos, Lizenz gibts nicht, das Geld wird mit den Maschinen verdient.

D.h. wenn ein Kunde was verändert kann man das nur schwierig nachweisen, mit dem Ergebniss dass eben jemand hinfliegen muss -> teuer.
:roll:

PyInstaller werd ich mal ausprobieren.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Wieso können denn da alle dran herumpfuschen?
Deine Version sollte im Repository sein und diese sollte dann ja auch ausgeliefert werden.
Wer was ändert ist halt selber schuld...
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Hand hat geschrieben:D.h. wenn ein Kunde was verändert kann man das nur schwierig nachweisen, mit dem Ergebniss dass eben jemand hinfliegen muss -> teuer.
Wo wir wieder bei Hash-Summen waeren. Damit sollte der Nachweis kein Problem sein. Wobei ich allerdings auf SHA statt MD-5 setzen wuerde.
jbs hat geschrieben:Wer was ändert ist halt selber schuld...
Wenn die Aendernden aber einen Support-Vertrag haben, geht das zu Lasten von Hands Firma - wenn der Nachweis nicht geleistet werden kann.

Im uebrigen wuerde ich dir dringend raten das unter eine Lizenz und damit auf eine rechtliche Basis zu stellen - es sei denn du hast da nicht alles erzaehlt, was man wissen sollte ;)
lunar

@cofi: Aus Sicht der Nachprüfbarkeit ist es ziemlich egal, ob man SHA1 oder MD5 nutzt: Die Wahrscheinlichkeit, dass eine zielführende Veränderung zur selben Prüfsumme wie die Originaldatei führt, ist auch bei MD5 denkbar klein.

Ein Nachweis wird praktisch aber kaum nötig sein, wenn wirklich eine Urheberrechtsverletzung vorliegt. Ein dezenter Hinweis an die andere Partei sollte im Sinne einer gütlichen Einigung ausreichend sein, welches Unternehmen führt schon gerne Urheberrechtsprozesse …

Die rechtliche Basis im Bezug auf Software stellt übrigens der Gesetzgeber, nicht die Lizenz. Ein Lizenzvertrag ist nicht zwingend notwendig, um die Rechtssituation eines Computerprogramms zu klären. Welche Rechte dann an einem Programm bestehen, hängt vom Rechtsverhältnis der beteiligten Parteien ab.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hand hat geschrieben:D.h. wenn ein Kunde was verändert kann man das nur schwierig nachweisen
Du meinst man kann nicht leicht nachweisen wer die Änderungen gemacht hat, oder?
Denn was geändert wurde, kann man leicht herausfinden, wenn man die lokalen Sourcen mit denen aus dem Repository vergleicht.

Kompiliere doch einfach alle .py Dateien und lösche die anschließend. Geht ja hier nicht um das "illegale" kopieren.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Hand hat geschrieben:D.h. wenn ein Kunde was verändert kann man das nur schwierig nachweisen, mit dem Ergebniss dass eben jemand hinfliegen muss -> teuer.
:roll:

PyInstaller werd ich mal ausprobieren.
Ich würde die Kunden klar darauf hinweisen das sie das nicht dürften und falls sie es doch tun für die Schäden haftbar sind. Wenn sie es dennoch tun und jemand hin fliegen muss kann der da kurz die Checksummen prüfen und das ganze bei Änderungen entsprechend dem Kunden verrechnen. Wenn das innerhalb der eigenen Firma ist macht das verrechnen natürlich weniger Spass. Aber gerade bei Fehlern ist es ja durchaus nützlich den Source verfügbar zu haben. ;) Ansonsten unter windows: py2exe unter *nix, virtualenv mit eggs o.ä.

Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hand hat geschrieben:Super währ ein exe File und mehr nicht, gibts DAU geschützte Python Programme? ;-)
Ich übersetze mal: "Gibt es eine technologische Lösung für soziale Probleme". Die Antwort lautet "Nein".

Soziale Lösungen für soziale Probleme wurden hier auch schon angesprochen.

Wenn die eigenen Mitarbeiter rumpfuschen obwohl sie nicht dürfen, dann sprich sie darauf an und wenn das nicht klappt gehe zum Chef. Das ist Sabotage.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Zum Problem mit den Libraries:
Du könntest eine portable Version von Python mit den benötigten Libs erstellen und die mit deinem Programm ausliefern.
Kann dir auch noch genauere Hilfestellung liefern, falls du interessiert bist.
lunar

@ice2k3: Genau das hat er doch gemacht?
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Ja, habs mittels cx_freeze eingefroren ;-)

Hab jetzt also nur noch eine library.zip (da stecken alle .pyc drinn)
und die .exe und alle dll's liegen daneben.

py2exe packt die Dll's mit in die exe als SingleFile, finde ich aber unsauber da py2exe die Dll's mittels LoadMemory oder so aus dem Zip in den Arbeitsspeicher lädt.

Also werd ich für die dll's noch md5 Hashes generieren und die bei Programmstart abchecken. dann kann keiner mehr rumbasteln und ich hab hoffentlich weniger Supportaufwand ;-)

Andere möglichkeit währe, die dll's beim Programmstart in ein verstecktes verzeichnis zu entpacken und von dort zu benutzen.

Die Dinger hier sind übrigens Python powered: http://innolas-systems.com/index.php/en/home.html :D
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hattest du zwischenzeitlich PyInstaller ausprobiert? Der Ablauf dürfte allerdings ähnlich wie bei py2exe sein.
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Pyinstaller schaut wirklich gut aus.

Erstellt eine single exe.
Libs werden wohl in ein temporäres Verzeichnis entpackt, so dass man auch eigene DLL's dazupacken kann.
Panke
User
Beiträge: 185
Registriert: Sonntag 18. März 2007, 19:26

Ich hab' jetzt zwei Tage drüber geschlafen und immer noch das Gefühl, dass hier das Problem nicht an der Wurzel gepackt wird. j
Antworten