Aller au contenu

Besoin De Doc Pour Utiliser Spksrc


Messages recommandés

Hacker vaillant rien d'impossible, oui mais un petit coup de pouce serait le bienvenue :)

Il y a bien les quelques pages du wiki mais elles s'adressent à des personnes déjà familières avec l'outil de cross-compilation, avec UNIX et GNU/Linux et surtout elles s'adressent plus aux développeurs voulant contribuer au projet SPKSRC en lui-même et n'expliquent pas comment utiliser l'outil.

Étant un total n00b en la matière, je pourrais éventuellement contribuer à la rédaction de tutoriaux façon pas-à-pas ; on oublie moins de choses quand on ne connaît rien ou presque ;-)

Mais encore faudrait-il que je parvienne à utiliser l'outil et là, j'ai besoin de votre aide.

Pour info, voici mon état d'avancement :

- Debian 32 bits installée dans une VM (VMware)

- Git installé (et système et paquets pré-installés à jour)

- git clone de SPKSRC dans la home de mon utilisateur

- téléchargement de source d'un premier logiciel (darkstat en l'occurence)

Voilà, en gros j'ai préparé le terrain. Maintenant il faut me montrer la voie :)

Et j'ai déjà une question pratique : j'ai cloné SPKSRC et téléchargé les sources de darkstat dans la home de mon utilisateur lequel est admin. Aurais-je du mettre tout cela dans /root ? L'utilisation de spksrc doit-elle se faire en tant que root ou admin ?

Merci d'avance à tous ceux qui ont les compétences !

Lien vers le commentaire
Partager sur d’autres sites

Oui je l'ai lu mais pas vraiment tout compris :(

Actuellement j'ai :

/amsonia/spksrc/[tout le contenu cloné]

/amsonia/spksrc/sources/darkstat

Si je veux compiler darkstat pour tout le monde je suis censé faire ça ? Ce serait vraiment juste ça et il s'occupe de tout ??? o_O


cd amsonia/spksrc

make all-archs /sources/darkstat

Modifié par Amsonia
Lien vers le commentaire
Partager sur d’autres sites

Je continue mon bout de chemin…

Les outils de dev n'étaient pas installés. On m'a conseillé de faire un sudo apt-get install build-essential

Ensuite, je vois que le contenu de chaque dossier de spk est déjà bien travaillé. Il y a une icône, un fichier de conf, etc.

J'imagine donc qu'il ne suffit pas de télécharger les sources de ce que l'on compiler mais d'abord créer ces fichiers -ce que je ne sais faire- et ensuite les donner à manger à spksrc.

Lien vers le commentaire
Partager sur d’autres sites

Sinon, rapidement les points à savoir :

  • Dans cross/ chaque sous dossier contient le nécessaire à la cross compilation de la librairie ou du programme. A savoir :

    • Un Makefile qui indique les informations de cette lib/bin :

      • Nom
      • Version
      • URL pour le téléchargement
      • Extension du fichier téléchargé
      • Dépendences vers d'autres libs s'il y en a
      • Arguments supplémentaires au script de "configure" s'il y en a

      [*]Un PLIST qui contient la liste des fichiers binaires créés comme les programmes ou le .so. Une PLIST est automatiquement générée par spksrc dans les répertoires de travail (work*), il suffit alors de la compléter et de la mettre ici

      [*]Un digests qui contient les hashs md5 et sha1 du fichier téléchargé afin de vérifier que ce soit le bon. Ce fichier est optionel, s'il n'est pas présent, les digests ne sont pas vérifiés

Pour commencer à cross compiler un programme ou une librairie il faut :

  1. Crééer un dossier dans le répertoire cross/ portant le nom de ce package en minuscule
  2. Copier un Makefile d'exemple dans ce dossier depuis un autre afin de s'épargner un peu de recopiage, au hasard cross/umurmur/Makefile
  3. Le modifier en changeant les variables, renseigner DEPENDS à vide pour l'instant
  4. Dans un terminal, aller dans cross/{package} et taper "make ARCH=88f6281" (par exemple). Tout le reste se fait automatiquement
  5. Selon les erreurs dans le configure (dépendances), ajouter les librairies dans DEPENDS (cross/zlib par exemple). Si la dépendance n'existe pas encore, l'ajouter en recommençant de l'étape 1.
  6. Selon les erreurs dans le configure (hors dépendances), les corriger en changeant les arguments du configure avec la variable "CONFIGURE_ARGS"
  7. Selon les erreurs de cross compilation, déposer des patchs dans le répertoire "patches", ils seront automatiquement appliqués

En vrac, depuis cross/{package} :

  • Pour nettoyer la cross compilation : "make ARCH=88f6281 clean"
  • Pour ne nettoyer que le package actuel sans les dépendances : "make ARCH=88f6281 smart-clean"

On verra plus tard pour les SPKs, quand tu auras un binaire tout fait ;)

Lien vers le commentaire
Partager sur d’autres sites

Un SPK c'est jamais que :

  • Le programme que tu as cross compilé avec succès
  • Un script de start-stop-status
  • Un script d'installation / update
  • Une icone
  • (Optionnel) Une interface web intégrée à DSM ou un raccourcis vers l'interface web du binaire

Ca se passe dans spk/ et il y a un dossier par SPK. Je pense qu'un bon exemple est uMurmur, tu copies spk/umurmur vers spk/{package} et tu modifies en conséquence.

Tu remarqueras que les scripts sont assez standardisés, tu devrais pouvoir trouver des bouts de code dans les SPKs existants.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...
  • 1 mois après...

Sinon, rapidement les points à savoir :

  • Dans cross/ chaque sous dossier contient le nécessaire à la cross compilation de la librairie ou du programme. A savoir :
    • Un Makefile qui indique les informations de cette lib/bin :
    • Nom
    • Version
    • URL pour le téléchargement
    • Extension du fichier téléchargé
    • Dépendences vers d'autres libs s'il y en a
    • Arguments supplémentaires au script de "configure" s'il y en a
  • Un PLIST qui contient la liste des fichiers binaires créés comme les programmes ou le .so. Une PLIST est automatiquement générée par spksrc dans les répertoires de travail (work*), il suffit alors de la compléter et de la mettre ici
  • Un digests qui contient les hashs md5 et sha1 du fichier téléchargé afin de vérifier que ce soit le bon. Ce fichier est optionel, s'il n'est pas présent, les digests ne sont pas vérifiés
Pour commencer à cross compiler un programme ou une librairie il faut :
  • Crééer un dossier dans le répertoire cross/ portant le nom de ce package en minuscule
  • Copier un Makefile d'exemple dans ce dossier depuis un autre afin de s'épargner un peu de recopiage, au hasard cross/umurmur/Makefile
  • Le modifier en changeant les variables, renseigner DEPENDS à vide pour l'instant
  • Dans un terminal, aller dans cross/{package} et taper "make ARCH=88f6281" (par exemple). Tout le reste se fait automatiquement
  • Selon les erreurs dans le configure (dépendances), ajouter les librairies dans DEPENDS (cross/zlib par exemple). Si la dépendance n'existe pas encore, l'ajouter en recommençant de l'étape 1.
  • Selon les erreurs dans le configure (hors dépendances), les corriger en changeant les arguments du configure avec la variable "CONFIGURE_ARGS"
  • Selon les erreurs de cross compilation, déposer des patchs dans le répertoire "patches", ils seront automatiquement appliqués
En vrac, depuis cross/{package} :
  • Pour nettoyer la cross compilation : "make ARCH=88f6281 clean"
  • Pour ne nettoyer que le package actuel sans les dépendances : "make ARCH=88f6281 smart-clean"
On verra plus tard pour les SPKs, quand tu auras un binaire tout fait ;)

Salut a tous !

Je sais... je deterre ce post zombi car j ai besoin d une info.

Je viens de faire et reussir le make dans le dossier spksrc/cross/package

Par contre comment je fais le spk? Que dois je faire de ce binarie ??

J ai bien recopié un spk/transmission vers spk/monpackage, j ai fait qq changement mais comment le MAKE va savoir qu il faut prendre le binarie qui est dans spksrc/cross/monpackage ?? Ca m echappe ca...

Modifié par jbesclapez
Lien vers le commentaire
Partager sur d’autres sites

Salut a tous !

Je sais... je deterre ce post zombi car j ai besoin d une info.

Je viens de faire et reussir le make dans le dossier spksrc/cross/package

Par contre comment je fais le spk? Que dois je faire de ce binarie ??

J ai bien recopié un spk/transmission vers spk/monpackage, j ai fait qq changement mais comment le MAKE va savoir qu il faut prendre le binarie qui est dans spksrc/cross/monpackage ?? Ca m echappe ca...

Bon, ca m echappe toujours comment le MAKE fait pour savoir que le package est dans le dossier CROS... mais je me suis fait une raison car la compil fonctionne bien.

J ai juste un probleme avec le patch car le terminal me demande quel fichier patcher... et plusieurs fois il me demande... alors que dans les posts au dessus on dit que c est sensé etre automatique... etrange.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 ans après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.