Wie SPK mittels Developer Guide erstellen?

Status
Für weitere Antworten geschlossen.

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.148
Punkte für Reaktionen
1.113
Punkte
314
Hi an alle!

Ich versuche grade, Ultimate Backup nach den aktuellen Richtlinien des Synology Developer Guide umzustellen. Leider erschließen sich mir einige Dinge nicht wirklich, was einerseits an meinen stümperhaften Englisch liegen mag, anderseits aber auch an meinen unzureichenden Linux Kenntnissen. Nichts desto trotz möchte ich es gerne versuchen, aber dafür benötige ich eure Hilfe.

Dazu gleich zu Anfang ein paar Fragen bzw. Ungereimtheiten.

Nachdem ich mir das -Enviroment- über Git geladen habe, starte ich mit

./EnvDeploy -v 6.0 -p braswell

die eigentliche Installation. Muss hier der Prozessortyp meiner DS216+ angegeben werden, also - braswell - oder soll hier dann doch x64 stehen, da meine DS ja auch eine 64Bit Maschine ist? Das ist mir nicht ganz klar. Nach meinem Verständnis baue ich mir ja das Enviroment für meinen Prozessortyp, nicht für die Systeme, die ich mit meinem SPK unterstützen möchte, richtig?

Soweit, so gut. Nachdem das Enviroment unter /build_env/ds.braswell-6.0 installiert wurde, soll im nächsten Schritt der PGP Key erzeugt werden. Diesen kann ich auch mit


einleiten, jedoch fehlt auf der DS scheinbar der gpg-agent, da dieser im Verlauf der Key Generation nicht gefunden wird. Daher die Frage: Brauche ich den gpg Key überhaupt und falls ja, wie zum Teufel bekomme ich den gpg-agent installiert?

Da ich den gpg-key nicht erzeugen kann, gehe ich zum nächsten Schritt über, dem - Hello World Package – bzw. dem - Create Package Workflow - Hier stolpere ich über

pkgscripts/PkgCreate.py -x0 -c ${project}

wobei pkgscripts hier wohl pkgscripts-ng heißen soll, aber das nur am Rande. Sobald ich diesen Befehl absetze wird mir das Ganze mit folgender Fehlermeldung quittiert.

-ash: pkgscripts-ng/PkgCreate.py: /usr/bin/python3: bad interpreter: No such file or directory

Python3 wurde aber über das Paketzentum installiert, aber ein Blick auf…

ls /usr/bin/ | grep python

… spuckt nur die Versionen python, python2 und python2.7 aus. Ein weitere Blick auf…

find /usr -name "python*"

… spuckt mir Python3 zwar aus, nicht jedoch unter /usr/bin/pytohon3, wie mir die o.a. Fehlermeldung ja ansagt, sondern unter /usr/local/bin/python3. Was soll das?

Und zu guter Letzt noch die Frage, mit welchem Inhalt die Variable ${project} in der Zeile

pkgscripts/PkgCreate.py -x0 -c ${project}

zu füllen wäre, oder ist das an dieser Stelle kein Platzhalter bzw. wie müsste dieser Wert gefüllt werden?

Ich komm da echt nicht weiter und so langsam fange ich an zu resignieren. Warum zum Henker gibt Synology einen Developer Guide raus, mit dem sich nach meinem Empfinden aber nicht arbeiten lässt. Vielleicht kann mir da wer unter die Arme greifen und mir zeigen wie das alles funktionieren soll. Aber bitte für -Anfänger- erklären, so das ich das auch verstehe.



Anmerkung: Grade erst entdeckt, als ich den Link für den Developer-Guide rausgesucht habe. Es handelt sich hier um unterschiedliche Versionen. Der PDF-Guide unterscheidet sich doch tatsächlich vom Online-Guide. Steht im PDF-Guide noch

pkgscripts/PkgCreate.py -x0 -c ${project}

...

so steht im Online Guide

./ProjDepends.py -x0 ${project}

Hilft mir aber auch nicht weiter.

Tommes
 
Zuletzt bearbeitet:

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.889
Punkte für Reaktionen
1.171
Punkte
754
Python3 solltest Du entweder durch eine andere Reihenfolge der Pfade in der PATH-Variablen (sprich /usr/local/bin vor /usr/bin) oder durch einen Symlink in /usr/bin zum Laufen bringen können.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.148
Punkte für Reaktionen
1.113
Punkte
314
Ah... jetzt. Ja!

Das Ändern der PATH-Variable hat nichts gebracht (trotz Neustart der DS), aber die Sache mit dem Symlink scheint Früchte getragen zu haben. Es befand sich bereits ein Symlink unter...

/usr/local/bin/@python3 auf -> /volume1/@appstore/py3k/usr/local/bin/python3

... also habe ich diesen Symlink einfach nach /usr/bin kopiert und siehe da, wenn ich...

./ProjectDepends.py -x0 ${project}

... ausführe (es muss übrigens ProjectDepends.py und nicht ProjDepends.py heißen) dann führt er die Aktion aus. Jetzt muß ich aber erstmal weiterlesen und schauen, was dieser Befehl so angestellt hat. Bis hierhin aber erstmal ein dickes Dankeschön an dich, dil88... und ein Donnergrollen an Synology, die mir 2 Tage Verzweiflung eingebrockt haben.

Tommes
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
13
Punkte
84
Muss hier der Prozessortyp meiner DS216+ angegeben werden, also - braswell - oder soll hier dann doch x64 stehen, da meine DS ja auch eine 64Bit Maschine ist? Das ist mir nicht ganz klar. Nach meinem Verständnis baue ich mir ja das Enviroment für meinen Prozessortyp, nicht für die Systeme, die ich mit meinem SPK unterstützen möchte, richtig?
Nein, du musst für jede Synology Architektur ein Chroot-Environment per EnvDeploy -v 6.1 -p <arch> erstellen, das Toolkit selbst ist nur unter x64 lauffähig (siehe auch http://www.synology-wiki.de/index.php/Integration_einer_Hilfe_in_DSM_5.1-#Toolkit_einrichten)

Soweit, so gut. Nachdem das Enviroment unter /build_env/ds.braswell-6.0 installiert wurde, soll im nächsten Schritt der PGP Key erzeugt werden.
Wenn du vorhast eine eigene Paketquelle aufzusetzen, dann wäre ein GPG-Key ok. Für CPHub ist der Key nicht notwendig und auch nicht erwünscht, da dies automatisch durch CPHub erledigt wird. Der GPG-Key in deinem Paket muss nämlich zur Paketquelle passen, was im Falle eines eigenen GPG-Keys nicht möglich ist.

Falls du immer noch einen eigenen Key erzeugen möchtest, dann verweise ich mal auf ein bestehendes HowTo http://www.synology-forum.de/showthread.html?58583-HowTo-Pakete-signieren

Wichtig:
Der Key wird im CHROOT erzeugt, nicht in der nativen Synology Umgebung, zuvor mit
Rich (BBCode):
 chroot /toolkit/build_env/ds.${platform}-${version}
in die gewünschte Entwicklungsumgebung wechseln

Und zu guter Letzt noch die Frage, mit welchem Inhalt die Variable ${project} in der Zeile
zu füllen wäre, oder ist das an dieser Stelle kein Platzhalter bzw. wie müsste dieser Wert gefüllt werden?
${project} ist der Name des Verzeichnisses, wo deine Quelldateien liegen. (siehe DSM Developer Guide, Seite 14, Baumansicht der Verzeichnisstruktur)

Ich komm da echt nicht weiter und so langsam fange ich an zu resignieren. Warum zum Henker gibt Synology einen Developer Guide raus, mit dem sich nach meinem Empfinden aber nicht arbeiten lässt. Vielleicht kann mir da wer unter die Arme greifen und mir zeigen wie das alles funktionieren soll. Aber bitte für -Anfänger- erklären, so das ich das auch verstehe.
In den meisten Fällen benötigt man keine Entwicklungsumgebung, geht viel einfacher per tar'en und gzip'en. Die Entwicklungsumgebung ist meiner Meinung nach nur bei der Erstellung von Paketen für verschiedene Architekturen und der Hilfedateienerstellung notwendig.


 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.148
Punkte für Reaktionen
1.113
Punkte
314
In den meisten Fällen benötigt man keine Entwicklungsumgebung, geht viel einfacher per tar'en und gzip'en.

Öhm... äh... *räusper*... O-kayyyyyyy!

Dann hab ich da wohl was komplett falsch verstanden. Ich hielt den Developer-Guide für einen "einfachen" Leitfaden zur Erstellung eines SPK nach aktuellen Stand. Da ich aber bereits ein funktionierendes SPK besitze, welches ich durch tar'en und zip'en erfolgreich erstellen kann, erübrigt sich für mich dann dieses Enviroment. Einzig die von dir bereits per PN gegebenen Tipps zum Aufbau der Ordnerstruktur (damit u.a. der versteckte Ordner .helptoc mit einfließt), sollten demnach ausreichen. Sehe ich das richtig?

Tommes
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
13
Punkte
84
Meiner Meinung nach ist die Erstellung eins SPK per Entwicklungsumgebung nur sinnvoll, wenn man ein Paket für ein oder mehrere Architekturen compilieren muss. Viele Schritte in der Anleitung sind für noarch Pakete unnötig. Für die Erstellung der Hilfe-DB bitte die Anleitung im Wiki folgen, da im offiziellen Synology Developer Guide dies nicht vollständig beschrieben ist und ich mir selbst einen Workflow erarbeitet habe. Das Verzeichnis für die Quelldateien ist in diesem Fall abweiched vom Guide zu erstellen, steht aber Alles im Wiki. Falls nur die HTML-Hilfeseiten angepasst wurden, muss die Hilfe-IndexDB nicht neu erstellt werden und benötigt demnach die Entwicklungsumgebung nicht. Entsprechende HTML-Hilfeseite per URL direkt aufrufen (z.B. <diskstationadresse>/webman/3rdparty/<paketname>/help/<hilfeseite>.html) und parallel in einem Editor über eine Freigabe die HTML-Hilfeseite öffnen und editieren (siehe http://www.synology-wiki.de/index.php/Integration_einer_Hilfe_in_DSM_5.1-#Hilfe-Seiten_erstellen). Kontrolle erfolgt dann durch einfach Aktualisieren der Seite.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat