Libelektra: Ajouter la formule Homebrew pour Elektra

Créé le 18 févr. 2016  ·  28Commentaires  ·  Source: ElektraInitiative/libelektra

Homebrew est l'un des gestionnaires de packages les plus populaires pour OS X. Ce serait bien si nous fournissions une formule officielle Homebrew - alias package - pour Elektra. Quelqu'un a déjà fait une formule de base ici . Peut-être pouvons-nous baser notre travail là-dessus.

enhancement usability

Commentaire le plus utile

Pouvez-vous s'il vous plaît mettre à jour doc/INSTALL.md et clarifier quand utiliser la formule officielle…

Je l'ai déjà fait dans ma version locale du référentiel. La pull request #1777 contient ces changements.

…et quand utiliser notre robinet ?

Le fichier Lisezmoi de notre robinet contient déjà ces informations.

Tous les 28 commentaires

@tryge si vous êtes d'accord avec ça, je prendrais ça en charge

S'il vous plaît, allez-y!

Comme indiqué dans # 1184, il serait également agréable de créer des binaires mac os x en utilisant travis.

Mais l'ajout de Homebrew Formula a la plus haute priorité, j'espère que quelqu'un avec un Mac pourra le comprendre !

J'ai créé une formule Homebrew et un robinet pour Elektra.

@markus2330 Je vous ai transféré le dépôt Markus, car j'aurais eu besoin du statut d'administrateur pour déplacer le dépôt vers l'organisation ElektraInitiative. Pouvez-vous, s'il vous plaît, déplacer le référentiel de votre compte personnel vers l'organisation ElektraInitiative ?

J'ai créé une formule Homebrew et un robinet pour Elektra.

Merci, c'est vraiment super !

Inclut-il également des packages binaires pour la dernière version ?

Je vous ai transféré le dépôt Markus, car j'aurais eu besoin du statut d'administrateur pour déplacer le dépôt vers l'organisation ElektraInitiative. Pouvez-vous, s'il vous plaît, déplacer le référentiel de votre compte personnel vers l'organisation ElektraInitiative ?

Désolé, où puis-je le trouver ? Dans https://github.com/sanssecours/homebrew-elektra je n'ai pas le bouton "paramètres" (qui serait nécessaire pour le transfert).

Pourquoi ne pas simplement le cloner ? (Ou en recréer un en y insérant les mêmes commits)

D'ailleurs. Est-il possible d'amener cette formule aussi en amont pour brasser ?

@omnidan Pouvez-vous tester si le robinet/la bouteille fonctionne aussi pour vous ?

Devrions-nous créer des problèmes concernant le robinet/la bouteille ici ou à
https://github.com/ElektraInitiative/homebrew-elektra?

Inclut-il également des packages binaires pour la dernière version ?

Pas encore, créer un paquet binaire ne semble cependant pas si difficile . J'y jetterais un œil.

Désolé, où puis-je le trouver ? Dans https://github.com/sanssecours/homebrew-elektra je n'ai pas le bouton "paramètres" (qui serait nécessaire pour le transfert).

Merci pour l'accès administrateur. Je viens de transférer le repo .

D'ailleurs. Est-il possible d'amener cette formule aussi en amont pour brasser ?

Oui. Je voulais le faire en premier, mais pour autant que je sache, les développeurs Homebrew sont plutôt pointilleux sur ce qu'ils acceptent . Surtout le texte

Nous désapprouvons les auteurs qui soumettent leur propre travail à moins qu'il ne soit très populaire.

sonne comme un problème.

Je viens de transférer le repo.
Pas encore, créer un paquet binaire ne semble cependant pas si difficile. J'y jetterais un œil.

Merci!

Merci pour l'accès administrateur.

À tout moment si vous en avez besoin. Nous pouvons également discuter de l'accès administrateur permanent.

Oui. Je voulais le faire en premier, mais pour autant que je sache, les développeurs Homebrew sont plutôt pointilleux sur ce qu'ils acceptent. Surtout le texte

C'est bien si nous obtenons des commentaires, même s'ils ne l'accepteront pas.

Nous désapprouvons les auteurs qui soumettent leur propre travail à moins qu'il ne soit très populaire.

Je comprends cette phrase que vous ne devez pas soumettre de formulaire pour votre propre travail (=repo écrit par vous seul). Ce n'est guère le cas ici.

Un package binaire Homebrew (bouteille) est maintenant disponible . Si quelqu'un veut essayer la formule, veuillez suivre les étapes ci-dessous.

  1. Veuillez exécuter brew doctor et supprimer tous les fragments d'Elektra signalés par la commande.
  2. Appuyez sur le référentiel : brew tap ElektraInitiative/homebrew-elektra .
  3. Si vous souhaitez installer

    • la bouteille utilise brew install elektra .

    • version 0.8.19 à partir de la source, puis utilisez brew install --build-from-source elektra .

    • la dernière version d'Elektra, puis utilisez brew install --HEAD elektra .

  4. Pour vérifier si l'installation fonctionne, vous pouvez utiliser la commande brew test elektra .

C'est bien si nous obtenons des commentaires, même s'ils ne l'accepteront pas.

HM OK. Si j'ai le temps, j'essaierai d'ouvrir une pull request demain.

Ce sont encore une excellente nouvelle !

Pouvez-vous mettre à jour le README.md de l'homebrew-elektra pour contenir cette description plus longue ?

Avez-vous des journaux de construction dont les plugins et les liaisons sont activés ? En particulier, je serais intéressé si les liaisons python2 sont incluses (et fonctionnent : pouvez-vous essayer de import kdb dans un interpréteur python) ?

Pouvez-vous mettre à jour le README.md de l'homebrew-elektra pour contenir cette description plus longue ?

D'accord, vous pouvez jeter un œil au fichier ReadMe mis à jour ici .

Avez-vous des journaux de construction dont les plugins et les liaisons sont activés ?

La liste des plugins devrait être assez longue, car j'ai installé beaucoup de dépendances facultatives d'Elektra sur ma machine. Voici le log produit par brew install --build-from-source -debug -verbose elektra .

En particulier, je serais intéressé si les liaisons python2 sont incluses (et fonctionnent : pouvez-vous essayer de import kdb dans un interpréteur python) ?

Ils devraient être inclus (voir le journal ci-dessus), mais néanmoins import kdb signale l'erreur suivante à la fois dans la version système de Python ( /usr/bin/python ) et dans celle installée via Homebrew ( /usr/local/bin/python ):

import kdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named kdb

.

D'accord, vous pouvez jeter un œil au fichier ReadMe mis à jour

Super merci!

La liste des plugins devrait être assez longue, car j'ai installé beaucoup de dépendances facultatives d'Elektra sur ma machine.

  • ronn semble manquer (donc pas de pages de manuel)
  • vous ne semblez pas inclure de liaison (sauf cpp), il semble que vous ayez besoin d'un -DBINDINGS=ALL
  • kdb gen aurait besoin de guépard python pour fonctionner et --install-layout . Semble être difficile à réparer (mieux vaut laisser cela pour l'instant et simplement désactiver gen à partir de TOOLS).

Ils devraient être inclus (voir le journal ci-dessus)

Je pense que vous avez mélangé les liaisons python et les plugins, les liaisons ne sont pas présentes (pas -- Include Binding swig_python2 ).

  • ronn semble manquer (donc pas de pages de manuel)

Il semble seulement manquer. J'ai installé ronn via rbenv . Il semble que l'environnement Homebrew utilise une valeur différente pour PATH qui n'inclut pas ~/.rbenv/shims . Après quelques recherches, j'ai trouvé un moyen d'ajouter ronn en tant que dépendance Ruby facultative. Pour le moment, la formule ne reconnaît pas mon installation de ronn . J'espère trouver une solution à ce problème.

  • vous ne semblez pas inclure de liaison (sauf cpp), il semble que vous ayez besoin d'un -DBINDINGS=ALL

Vous avez raison, merci. J'ai ajouté l'option aux arguments CMake de la formule.

Je pense que vous avez mélangé les liaisons python et les plugins, les liaisons ne sont pas présentes (pas -- Include Binding swig_python2 ).

Tu as encore raison :o). Je vérifierai si les liaisons fonctionnent plus tard.

Mettre à jour

Pages de manuel

J'ai ajouté ronn comme dépendance requise pour le processus de construction ici . Je ne pense pas que le fait d'exiger ronn pour la construction soit un problème, car la plupart des gens utiliseront de toute façon la version en bouteille de la formule.

Vous pouvez vous demander pourquoi je n'ai pas ajouté ronn comme dépendance facultative. La cause en était la sortie de brew info , qui a l'air un peu idiot et aussi super faux si j'ajoute la balise :optional :

…
==> Dependencies
Build: cmake ✔
==> Requirements
Build: ronn (ruby module) ✔
Optional: ronn (ruby module) ✔
==> Options
--with-languagemodule
    Build with languagemodule support
…

. Le texte ci-dessous montre la sortie actuelle de brew info elektra :

elektrainitiative/elektra/elektra: stable 0.8.19 (bottled), HEAD
Configuration Framework
https://web.libelektra.org
Not installed
From: https://github.com/ElektraInitiative/homebrew-elektra/blob/master/Formula/elektra.rb
==> Dependencies
Build: cmake ✔
==> Requirements
Build: ronn (ruby module) ✔

.

Fixations

Après avoir ajouté -DBINDINGS=ALL aux options CMake de la formule brew audit --strict elektra affiche le message suivant (après avoir installé Elektra) :

elektrainitiative/elektra/elektra:
  * python modules have explicit framework links
    These python extension modules were linked directly to a Python
    framework binary. They should be linked with -undefined dynamic_lookup
    instead of -lpython or -framework Python.
      /usr/local/Cellar/elektra/0.8.19/lib/python2.7/site-packages/_kdb.so
      /usr/local/Cellar/elektra/0.8.19/lib/python3.5/site-packages/_kdb.so
Error: 1 problem in 1 formula

. Si j'essaie import kdb dans la version Hombrew de Python, l'interpréteur Python plante et affiche le message d'erreur suivant :

Fatal Python error: PyThreadState_Get: no current thread
fish: '/usr/local/bin/python' terminated by signal SIGABRT (Abort)

Cela semble être normal, car ninja test - dans mon répertoire de construction habituel - échoue également, affichant les erreurs suivantes :

     31 - testpy2_kdb.py (OTHER_FAULT)
     32 - testpy2_key.py (OTHER_FAULT)
     33 - testpy2_keyset.py (OTHER_FAULT)
     34 - test_kdb.py (OTHER_FAULT)
     35 - test_key.py (OTHER_FAULT)
     36 - test_keyset.py (OTHER_FAULT)
     40 - testruby_kdb (OTHER_FAULT)
     41 - testruby_key (OTHER_FAULT)
     42 - testruby_keyset (OTHER_FAULT)

. J'ai utilisé la commande suivante pour générer le projet Ninja :

    cmake ..                        \
          -GNinja                       \
          -DENABLE_TESTING=ON               \
          -DENABLE_DEBUG=ON                 \
          -DENABLE_LOGGER=OFF               \
          -DBUILD_PDF=ON                    \
          -DCMAKE_EXPORT_COMPILE_COMMANDS=ON        \
          -DPDFLATEX_COMPILER=`which latexmk`       \
          -DPDFLATEX_COMPILER_OPTIONS='-pdf;-f;-quiet'  \
          -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5        \
          -DTOOLS=ALL                   \
          -DBINDINGS=ALL

. Les liaisons Lua semblent bien fonctionner. Au moins require 'kdb' n'affiche aucun message d'erreur.

Je vous remercie pour vos efforts!

Pages de manuel

Oui, je suis d'accord que les gens préféreront la version en bouteille. Et ne pas avoir de pages de manuel est vraiment un problème majeur d'utilisabilité, donc l'exigence est raisonnable.

crash de import kdb

@manuelm lm avez-vous une idée de la raison pour laquelle les liaisons se bloquent ?

@sanssecours Peut-être que la version swig est trop ancienne, ou une mauvaise swig utilisée ?

Ils doivent être liés avec -undefined dynamic_lookup au lieu de -lpython ou -framework Python.

Peut-être devrions-nous simplement passer -framework dans le cas d'APPLE à target_link_libraries. Selon cmake docu , il semble y avoir un traitement spécial pour -framework .

Peut-être que le fichier cmake pour python est cassé ? Voici une longue discussion sur les fichiers python cmake cassés. (Peut-être sans rapport, cependant) Je ne peux pas vraiment aider ici, le problème est assez spécifique à Mac OS X.

@sanssecours Peut-être que la version gorgée est trop ancienne…

Non, j'ai installé la dernière version de swig ( 3.0.10 ) via Homebrew.

…, ou une mauvaise gorgée utilisée ?

Je ne pense pas. La recherche rapide via locate swig ne montre que la version installée via Homebrew.

@markus2330 oui ça marche ! merci beaucoup pour la formule homebrew, @sanssecours :ok_hand:

J'ai eu un petit problème, mais c'est peut-être parce que sudo make uninstall ne désinstalle pas proprement elektra :

> brew install elektra
==> Installing elektra from elektrainitiative/elektra
==> Downloading https://github.com/ElektraInitiative/homebrew-elektra/releases/download/0.
==> Downloading from https://github-cloud.s3.amazonaws.com/releases/76387201/caf85aac-c307
######################################################################## 100.0%
==> Pouring elektra-0.8.19.sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/elektra/test_data/lua/batterytotracker.lua
/usr/local/share/elektra/test_data/lua is not writable.

You can try again using:
  brew link elektra
==> Summary
🍺  /usr/local/Cellar/elektra/0.8.19: 2,668 files, 54.1M
> brew link elektra
Linking /usr/local/Cellar/elektra/0.8.19...
Error: Could not symlink lib/elektra/libelektra-storage.so
Target /usr/local/lib/elektra/libelektra-storage.so
already exists. You may want to remove it:
  rm '/usr/local/lib/elektra/libelektra-storage.so'

To force the link and overwrite all conflicting files:
  brew link --overwrite elektra

To list all files that would be deleted:
  brew link --overwrite --dry-run elektra

Après avoir exécuté brew link --overwrite elektra , cela fonctionne parfaitement bien.

Si j'essaie d'importer kdb dans la version Hombrew de Python, l'interpréteur Python plante et affiche le message d'erreur suivant :

Erreur Python fatale : PyThreadState_Get : aucun thread actuel
fish : '/usr/local/bin/python' terminé par le signal SIGABRT (Abort)

Donc python -c "import kdb" donne l'erreur fatale ci-dessus ? Cela semble bizarre car les liaisons (contrairement au plugin) ne touchent aucun état de thread ni aucun interpréteur.

Donc python -c "import kdb" donne l'erreur fatale ci-dessus ?

Oui, la commande /usr/local/bin/python -c "import kdb" imprime ce message d'erreur, si j'installe Elektra en utilisant une ancienne version de la formule . La bonne nouvelle est que /usr/local/bin/python3 -c "import kdb" fonctionne.

btw jeter un oeil à https://github.com/ElektraInitiative/libelektra/blob/master/.travis.yml#L52

Si j'ajoute les définitions supplémentaires et désactive pyenv , les tests Python - dans mon répertoire de construction habituel - fonctionnent correctement. Merci.

Merci, excellent travail !

Pour tous ceux que ça intéresse : j'ai récemment ouvert une pull request pour Elektra 0.8.21 à homebrew-core ici .

Tellement génial que la formule homebrew a été acceptée ! https://github.com/Homebrew/homebrew-core/pull/22049

Une petite chose : Dans http://brewformulas.org/Elektra la description « A repository for sharing configuration snippets » est un peu fausse, est-il possible de modifier cela via la formule ? Ou devons-nous soumettre un problème dans leur outil de suivi pour modifier ce texte ?

Je ne pense pas que http://brewformulas.org soit un site officiel Homebrew. Vous pouvez trouver la description correcte de la Formule :

Framework pour accéder aux paramètres de configuration dans une base de données de clés globale

sur la page d'accueil officielle d'Homebrew .

Merci, il semble que l'autre page non officielle avec la mauvaise description ait obtenu un rang plus élevé dans ma recherche Internet. Ensuite, il n'y a aucun problème concernant la description de notre côté.

Merci encore pour votre ténacité pour officialiser la formule homebrew.

Pouvez-vous s'il vous plaît mettre à jour doc/INSTALL.md et clarifier quand utiliser la formule officielle et quand utiliser notre robinet ?

Pouvez-vous s'il vous plaît mettre à jour doc/INSTALL.md et clarifier quand utiliser la formule officielle…

Je l'ai déjà fait dans ma version locale du référentiel. La pull request #1777 contient ces changements.

…et quand utiliser notre robinet ?

Le fichier Lisezmoi de notre robinet contient déjà ces informations.

Qu'en est-il de garder cela ouvert pour suivre l'état de la formule homebrew pour chaque version ? Si vous préférez, nous pouvons également ajouter un nouveau problème pour le suivi.

Qu'en est-il de garder cela ouvert pour suivre l'état de la formule homebrew pour chaque version ?

Comme vous l'avez déjà montré en postant ici 😊, nous n'avons pas besoin de garder ce sujet ouvert pour ajouter de nouveaux commentaires.

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

Questions connexes

dmoisej picture dmoisej  ·  3Commentaires

markus2330 picture markus2330  ·  4Commentaires

sanssecours picture sanssecours  ·  4Commentaires

mpranj picture mpranj  ·  3Commentaires

mpranj picture mpranj  ·  3Commentaires