Poudriere: Essayez de récupérer les dépendances au lieu de les construire localement

Créé le 31 mai 2015  ·  21Commentaires  ·  Source: freebsd/poudriere

Tester les ports avant de valider les modifications coûte cher. Ainsi, la construction de la superposition de quelques ports avec des options autres que celles par défaut.

  • /head est une cible qui se déplace rapidement, ports -u rend souvent de nombreux obsolètes
  • Le support de niveau 4 * 2 = 8 consiste en des combinaisons de plates-formes
  • redports.org (CI) n'est toujours pas disponible après sa panne il y a un an
  • la mise en page du référentiel ne prend pas encore en charge NO_ARCH , NO_OSREL , NO_OPSYS
  • certains ports peuvent nécessiter beaucoup de mémoire/temps/activité de disque pour être construits

Heureusement, pkg.freebsd.org fournit déjà des packages prêts à l'emploi. Pourquoi ne pas en profiter ? Avertissement : utile uniquement lorsque l'arborescence des ports locaux et l'instantané distant ne divergent pas beaucoup à ce moment-là.

Performance

Commentaire le plus utile

Ce n'est pas encore implémenté dans Poudrière mais je le programme pour la prochaine version.

Tous les 21 commentaires

Oui, c'est une fonctionnalité recherchée. Je l'ai appelé « ensemencement de paquets ». Le script de construction pkg.freebsd.org fait cela lui-même afin que nous puissions construire sur différents systèmes entre chaque construction. Il est sur le TODOLIST depuis toujours mais pas encore implémenté dans Poudrière.

Nous avons également récemment commencé à utiliser activement poudriere pour créer des packages pour eux-mêmes et souhaiteraient une fonction similaire pour le -f pkg-list.txt s'il fait partie d'un package avec les options modifiées, puis créez-les localement et avec les options par défaut, récupérez le référentiel en amont.

Est-ce déjà implémenté dans une branche, j'aimerais aider à le tester.

Ce n'est pas encore implémenté dans Poudrière mais je le programme pour la prochaine version.

Salut, @bdrevery une mise à jour sur ce patch ? J'ai vraiment besoin de vos commentaires sur la façon dont je peux affiner ce patch. Tout indice apprécié. Merci beaucoup.

Désolé, j'ai été assez occupé ces derniers temps. Je vais essayer de regarder dans les prochaines semaines.

de nouvelles infos ? Merci!

Ce serait une fonctionnalité très intéressante à avoir. Je viens de mettre à jour vers 3.3.99.20190311, mais je n'ai pas vu d'option pour l'ensemencement de pkg. Y a-t-il des nouvelles sur cette fonctionnalité?

En attendant, j'utilise un moyen hackish pour le faire: https://github.com/lwhsu/freebsd-ports-libreoffice/blob/master/porttest.sh

Eh bien, essayez de poudriere testport qui nécessite à la fois GCC 9.x et Clang 8.0 pour construire....
a pris environ un jour la dernière fois que j'ai eu besoin de tester cela.

@bdrewery avez-vous l'espoir de voir cette fonctionnalité assez tôt ?

Peu probable car mon objectif est ailleurs, comme la construction de moins dans la construction incrémentielle et le support distribué.

Une mise à jour à venir pour ce problème ? Y a-t-il quelque chose que nous pouvons faire pour aider?

Désolé pour un autre "moi aussi". J'aime créer certains ports que j'utilise, car j'ai sélectionné des drapeaux spéciaux dessus. Des choses comme Mesa et al. besoin d'une version spécifique de LLVM cependant, et, eh bien, je ne veux vraiment pas ou n'ai pas besoin de la construire moi-même. Ce serait donc bien si je pouvais dire à poudriere pour certains ports sélectionnés de ne jamais les construire, mais de les récupérer à la place.

Sinon, ma course se termine comme ceci:

[freebsd:12:x86:64-default] [2020-06-22_09h45m06s] [parallel_build:] Queued: 1616 Built: 97   Failed: 0    Skipped: 0    Ignored: 0    Tobuild: 1519  Time: 02:21:47
        [01]: devel/llvm80              | llvm80-8.0.1_3            build           (01:50:32 / 01:51:56)
        [02]: devel/llvm90              | llvm90-9.0.1_1            build           (01:50:59 / 01:52:03)
        [03]: lang/gcc9                 | gcc9-9.3.0_1              build           (01:51:28 / 01:51:54)

J'aimerais éviter ce désabonnement inutile. Merci!

@uqs je

Un autre moi aussi ici. À savoir, j'ai besoin du port DNS/unbound avec python, mais je n'ai pas besoin de construire toutes les dépendances sous-jacentes.

+1

+1

Soit cette fonctionnalité, soit de la documentation sur la façon d'utiliser des crochets pour obtenir la même chose serait formidable !

797 couvrira ce

797 est fusionné, mais il existe de nombreux pièges qui ne le rendent pas aussi utile qu'il n'y paraît. Par exemple, llvm et tous les autres gros trucs se construisent toujours. #822 sera probablement nécessaire pour résoudre ce problème.

Cette page vous a été utile?
0 / 5 - 0 notes