Ich hasse Code-Diebstahl

Achtung: Wenn ihr den Artikel lest, dann bitte vollständig.

Im Sommer letzten Jahres bat mich Caschy, für ihn eine Chrome-Extension zu bauen, welche dem geneigten Leser anzeigt, ob es neue Blogbeiträge gibt. Gesagt, getan. Das Resultat findet man im Chrome Webstore.

Jetzt eben sehe ich auf dem gpluseins-Blog, dass auch der Rene eine Extension anbietet. Mein erster Gedanke: Hey, cool. Das Prinzip setzt sich durch. Also hab ich es direkt mal installiert. Schon beim Vorschaubild dachte ich: Hui, das sieht ja aus wie bei Caschy.

Bei näherem Hinsehen widerum stellte sich raus: Hey, es ist zum Großteil der Source von mir. Meine Laune: Im Keller.

Was noch dreister war: Der Rene hat sogar gleich zweimal geklaut. Denn im Title der gpluseins-Extension stand sogar noch der Title-Tag von mobiflip. Mein nächster Weg: Die Analyse der mobiflip-Chrome-Extension. Und siehe da: Genau das gleiche Spiel.

Lieber Rene Hesse, ich habe kein Problem damit, dass du dir auch so eine Extension baust. Du hättest auch gerne den Source meiner Extension nehmen können. Nur was ich gar nicht leiden kann: Einfach klauen ohne zu fragen. Da es keine Lizenzinformationen in den Dateien gibt, liegen jegliche Rechte beim Autor, also mir.

Für die Entwickler unter euch habe ich mal ein paar Diff-Files erstellt:

Diff der Background Page - Vergleich zwischen Caschy und Gpluseins
Diff der Background Page - Vergleich zwischen Caschy und Mobiflip
Diff des Popup - Vergleich zwischen Caschy und Gpluseins
Diff des Popup - Vergleich zwischen Caschy und Mobiflip

Wir stellen fest:

In der Background-Page hat der Rene sich die Arbeit gemacht und die Feed-URL ausgetauscht. Wow, welch eine Leistung.

In der popup.html, die die Bubble anzeigt, hat er schon etwas mehr angepasst: Den Titel der Seite und der Überschrift, die Stylesheets wurden in eine extra Datei ausgelagert und er hat noch ein paar Buttons hinzugefügt. Der Javascript-Source ist bis auf eine Zeile komplett gleich.

Natürlich hat er die Icons ausgetauscht, da es wohl blöd ausgesehen hätte, wenn da noch Caschys Favicon aufgetaucht wäre, aber das war es dann auch.

Und jetzt? Nun ja, ich hoffe, dass ich bald eine E-Mail bekomme. Der Inhalt wird spannend.

Update 1 vom 07.07.11 18:01:

Rene behauptet, es sei aus einer Vorlage von irgendeiner US-Seite. Mal abgesehen davon, dass Google alle möglichen Sourcen findet, nur nix, was aus diesen Quelltexten stammt, gibt es da noch einen Chatlog mit Caschy von irgendwann, wo die beiden sich drüber unterhalten haben. Die wichtigste Stelle des Chats bestätigt meine Vermutung:

(10:53:54) Caschy (stadt-bremerhaven.de): die us seite hat in der manifest.json auch nen code gehabt?

(10:54:10) Ich: was fürn code?

(10:54:20) Caschy (stadt-bremerhaven.de): den key

(10:54:28) Ich: {
“background_page”: “background.html”,
“browser_action”: {
“default_icon”: “images/32.png”,
“popup”: “popup.html”
},

“icons”: {
“32”: “images/32.png”,
“48”: “images/48.png”
},

“name”: “mobiFlip.de Newsfeed”,
“permissions”: [ “http://www.mobiflip.de/”, “http://*.feedburner.com/” ],
“update_url”: “ http://clients2.google.com/service/update2/crx",
“version”: “1.1.1”
}

(10:54:34) Ich: das ist die die ich hochgeladen habe

(10:55:12) Ich: du meinst je den oder?

Wo hier das Problem ist?

Die manifest.json erhält von Google immer die aktuelle update_url und einen key, in dem die Signatur steckt. Den Key hat er einfach mal entfernt, aber in keinem Sample steht eine update_url. Diese setzt man selbst nämlich nur, wenn man eine Extension selbst hosten möchte und sie update-fähig halten will. Und wenn man sich jetzt mal ganz plump die manifest.json anschaut, die da rauskommt, wenn man meine Extension installiert: Ups, da wurden nur der Name und die permissions getauscht.

Ich baue nämlich immer ein paar kleine Tücken ein, um mein Zeug wiederzuerkennen. Hier z.B. war es das 32x32-Bild. In den Samples von Google und vielen anderen Seiten werden hier nämlich gerne eher so icon.png o.ä. verwendet. Nur war ich zu faul, die Datei doppelt zu haben und habe einfach auf die 32er-PNG verwiesen. Einfach weil ich ich bin.

Update 2 vom 08.07.11 18:00:

Nach einem kurzen Mailwechsel mit Rene sind wir zu folgendem Ergebnis gekommen:
Er schaut noch einmal, wo dieses Tutorial war, welche meinen Source als Free-To-Use angeboten hat. Außerdem hat er einen Link in die Description seiner Extensions eingebunden, die auf die Original-Extension verweist.

Außerdem kann Rene seine Extensions ganz normal weiterbenutzen. Dies hatte ich ja oben schon angedeutet, dass sowas kein Problem ist, ich nur gerne gefragt werde 🙂


Kommentare

Noch keine Kommentare

Kommentar schreiben

Jeder Kommentar wird vor der Veröffentlichung überprüft.