Libelektra: Agregar fórmula casera para Elektra

Creado en 18 feb. 2016  ·  28Comentarios  ·  Fuente: ElektraInitiative/libelektra

Homebrew es uno de los administradores de paquetes más populares para OS X. Sería bueno si proporcionamos una fórmula oficial de Homebrew, también conocida como paquete, para Elektra. Alguien ya hizo una fórmula básica aquí . Tal vez podamos basar nuestro trabajo en eso.

enhancement usability

Comentario más útil

¿Puede actualizar doc/INSTALL.md y aclarar cuándo usar la fórmula oficial?

Ya lo hice en mi versión local del repositorio. La solicitud de extracción n.º 1777 contiene estos cambios.

…y cuándo usar nuestro grifo?

El Léame de nuestro grifo ya incluye esta información.

Todos 28 comentarios

@tryge , si te parece bien, yo me encargaría de esto

¡Por favor adelante!

Como se discutió en el n.º 1184, también sería bueno construir binarios para mac os x usando travis.

Pero agregar Homebrew Formula tiene la máxima prioridad, ¡espero que alguien con una Mac pueda captar esto!

Creé una fórmula Homebrew y un grifo para Elektra.

@markus2330 Te transferí el repositorio Markus, ya que habría necesitado el estado de administrador para mover el repositorio a la organización ElektraInitiative. ¿Puede mover el repositorio de su cuenta personal a la organización ElektraInitiative?

Creé una fórmula Homebrew y un grifo para Elektra.

¡Gracias, eso es realmente genial!

¿También incluye paquetes binarios para la última versión?

Te transfirí el repositorio a ti Markus, ya que habría necesitado el estado de administrador para mover el repositorio a la organización ElektraInitiative. ¿Puede mover el repositorio de su cuenta personal a la organización ElektraInitiative?

Lo siento, ¿dónde puedo encontrarlo? En https://github.com/sanssecours/homebrew-elektra no tengo el botón "configuración" (que sería necesario para la transferencia).

¿Por qué no simplemente clonarlo? (O recreando uno presionando los mismos compromisos en él)

Por cierto. ¿Es posible llevar esta Fórmula también aguas arriba para elaborar cerveza?

@omnidan ¿Puedes probar si el grifo/botella también funciona para ti?

¿Deberíamos crear problemas sobre el grifo/botella aquí o en
https://github.com/ElektraInitiative/homebrew-elektra?

¿También incluye paquetes binarios para la última versión?

Todavía no, aunque crear un paquete binario no parece ser tan difícil . Le echaré un vistazo.

Lo siento, ¿dónde puedo encontrarlo? En https://github.com/sanssecours/homebrew-elektra no tengo el botón "configuración" (que sería necesario para la transferencia).

Gracias por el acceso de administrador. Acabo de transferir el repositorio .

Por cierto. ¿Es posible llevar esta Fórmula también aguas arriba para elaborar cerveza?

Si. Quería hacer eso primero, pero por lo que sé, los desarrolladores de Homebrew son un poco exigentes con lo que aceptan . Sobre todo el texto

Desaprobamos que los autores presenten su propio trabajo a menos que sea muy popular.

suena como un problema.

Acabo de transferir el repositorio.
Todavía no, aunque crear un paquete binario no parece ser tan difícil. Le echaré un vistazo.

¡Gracias!

Gracias por el acceso de administrador.

En cualquier momento de nuevo si lo necesitas. También podemos discutir el acceso de administrador permanente.

Si. Quería hacer eso primero, pero por lo que sé, los desarrolladores de Homebrew son un poco exigentes con lo que aceptan. Sobre todo el texto

Es bueno si recibimos algunos comentarios, incluso si no los aceptan.

Desaprobamos que los autores presenten su propio trabajo a menos que sea muy popular.

Entiendo esta oración de que no debe enviar un formulario para su propio trabajo (=repo escrito por usted solo). Este no es el caso aquí.

Ya está disponible un paquete binario Homebrew (botella). Si alguien quiere probar la fórmula, siga los pasos a continuación.

  1. Ejecute brew doctor y elimine todos los fragmentos de Elektra que informa el comando.
  2. Toca el repositorio: brew tap ElektraInitiative/homebrew-elektra .
  3. Si desea instalar

    • la botella usa brew install elektra .

    • lance 0.8.19 desde la fuente, luego use brew install --build-from-source elektra .

    • la última versión de Elektra, luego use brew install --HEAD elektra .

  4. Para verificar si la instalación funciona, puede usar el comando brew test elektra .

Es bueno si recibimos algunos comentarios, incluso si no los aceptan.

Está bien. Si tengo tiempo, intentaré abrir una solicitud de extracción mañana.

¡Estas son grandes noticias de nuevo!

¿Puedes actualizar el README.md de homebrew-elektra para que contenga esta descripción más larga?

¿Tiene algunos registros de compilación de qué complementos y enlaces están habilitados? En particular, me interesaría si se incluyen los enlaces de python2 (y funcionan: ¿puede intentar import kdb en un intérprete de python)?

¿Puedes actualizar el README.md de homebrew-elektra para que contenga esta descripción más larga?

Vale, puedes echar un vistazo al Léame actualizado aquí .

¿Tiene algunos registros de compilación de qué complementos y enlaces están habilitados?

La lista de complementos debería ser bastante extensa, ya que instalé muchas de las dependencias opcionales de Elektra en mi máquina. Aquí está el registro producido por brew install --build-from-source -debug -verbose elektra .

En particular, me interesaría si se incluyen los enlaces de python2 (y funcionan: ¿puede intentar import kdb en un intérprete de python)?

Deberían estar incluidos (ver registro arriba), pero sin embargo import kdb reporta el siguiente error tanto en la versión del sistema de Python ( /usr/bin/python ) como en la instalada a través de Homebrew ( /usr/local/bin/python ):

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

.

Vale, puedes echar un vistazo al Léame actualizado

¡Genial, gracias!

La lista de complementos debería ser bastante extensa, ya que instalé muchas de las dependencias opcionales de Elektra en mi máquina.

  • ronn parece estar desaparecido (así que no hay páginas man)
  • parece que no incluye ningún enlace (excepto cpp), parece que necesita un -DBINDINGS=ALL
  • kdb gen necesitaría Python Cheetah para funcionar y --install-layout . Parece ser difícil de arreglar (mejor dejar eso por ahora y simplemente deshabilitar gen de TOOLS).

Deben incluirse (ver registro arriba)

Creo que ha mezclado enlaces y complementos de Python, los enlaces no están presentes (no -- Include Binding swig_python2 ).

  • ronn parece estar desaparecido (así que no hay páginas man)

Solo parece faltar. Instalé ronn a través de rbenv . Parece que el entorno Homebrew usa un valor diferente para PATH que no incluye ~/.rbenv/shims . Después de investigar un poco, encontré una manera de agregar ronn como dependencia opcional de Ruby. En el momento la fórmula no reconoce mi instalación de ronn . Ojalá encuentre una solución para este problema.

  • parece que no incluye ningún enlace (excepto cpp), parece que necesita un -DBINDINGS=ALL

Tienes razón, gracias. Agregué la opción a los argumentos CMake de la fórmula.

Creo que ha mezclado enlaces y complementos de Python, los enlaces no están presentes (no -- Include Binding swig_python2 ).

Tienes razón otra vez :o). Comprobaré si los enlaces funcionan más tarde.

Actualizar

Páginas man

Agregué ronn como dependencia requerida para el proceso de compilación aquí . No creo que requerir ronn para la compilación sea un problema, ya que la mayoría de las personas solo usarán la versión embotellada de la fórmula de todos modos.

Puede preguntar por qué no agregué ronn como dependencia opcional. La causa de esto fue la salida de brew info , que parece un poco tonto y también súper incorrecto si agrego la etiqueta :optional :

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

. El siguiente texto muestra la salida actual 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) ✔

.

Encuadernaciones

Después de agregar -DBINDINGS=ALL a las opciones de CMake de la fórmula brew audit --strict elektra muestra el siguiente mensaje (después de instalar 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 pruebo import kdb en la versión Hombrew de Python, el intérprete de Python falla y muestra el siguiente mensaje de error:

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

Esto parece ser normal, ya que ninja test , en mi directorio de compilación habitual, también falla y muestra los siguientes errores:

     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)

. Usé el siguiente comando para generar el proyecto 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

. Las fijaciones de Lua parecen funcionar bien. Al menos require 'kdb' no muestra ningún mensaje de error.

¡Gracias por su esfuerzo!

Páginas man

Sí, estoy de acuerdo en que la gente preferirá la versión embotellada. Y no tener páginas de manual es realmente un gran problema de usabilidad, por lo que el requisito es razonable.

caída de import kdb

@manuelm lm, ¿tienes alguna idea de por qué fallan los enlaces?

@sanssecours ¿ Quizás la versión de trago es demasiado antigua o se usó un trago incorrecto?

Deben vincularse con -undefined dynamic_lookup en lugar de -lpython o -framework Python.

Tal vez deberíamos simplemente pasar -framework en el caso de APPLE a target_link_libraries. Según cmake docu , parece haber un tratamiento especial para -framework .

¿Quizás el archivo cmake para python está roto? Aquí hay una larga discusión sobre los archivos cmake de python rotos. (Sin embargo, podría no estar relacionado) Realmente no puedo ayudar aquí, el problema es bastante específico de Mac OS X.

@sanssecours Tal vez la versión trago es demasiado antigua...

No, instalé la versión más reciente de swig ( 3.0.10 ) a través de Homebrew.

…, o se usó un trago equivocado?

No me parece. La búsqueda rápida a través locate swig solo muestra la versión instalada a través de Homebrew.

@markus2330 ¡ sí, funciona! muchas gracias por la fórmula casera, @sanssecours :ok_hand:

Tuve un pequeño problema, pero podría deberse a que sudo make uninstall no desinstala limpiamente 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

Sin embargo, después de ejecutar brew link --overwrite elektra , funciona perfectamente bien.

Si intento importar kdb en la versión Hombrew de Python, el intérprete de Python falla y muestra el siguiente mensaje de error:

Error fatal de Python: PyThreadState_Get: no hay hilo actual
fish: '/usr/local/bin/python' terminado por la señal SIGABRT (Cancelar)

¿Entonces python -c "import kdb" da el error fatal anterior? Suena extraño porque los enlaces (en contraste con el complemento) no tocan ningún estado de subproceso o intérpretes en absoluto.

¿Entonces python -c "import kdb" da el error fatal anterior?

Sí, el comando /usr/local/bin/python -c "import kdb" imprime este mensaje de error, si instalo Elektra usando una versión antigua de la fórmula . La buena noticia es que /usr/local/bin/python3 -c "import kdb" funciona.

por cierto, echa un vistazo a https://github.com/ElektraInitiative/libelektra/blob/master/.travis.yml#L52

Si agrego las definiciones adicionales y deshabilito pyenv , entonces las pruebas de Python, en mi directorio de compilación habitual, funcionan bien. Gracias.

¡Gracias, gran trabajo!

Para cualquiera que esté interesado: recientemente abrí una solicitud de extracción para Elektra 0.8.21 en homebrew-core aquí .

¡Tan genial que se aceptó la fórmula casera! https://github.com/Homebrew/homebrew-core/pull/22049

Una cosa menor: en http://brewformulas.org/Elektra la descripción "Un repositorio para compartir fragmentos de configuración" es un poco incorrecta, ¿es posible modificar esto a través de la fórmula? ¿O debemos enviar un problema en su rastreador para cambiar este texto?

No creo que http://brewformulas.org sea un sitio oficial de Homebrew. Puede encontrar la descripción correcta de la fórmula :

Marco para acceder a los ajustes de configuración en una base de datos de claves global

en la página de inicio oficial de Homebrew .

Gracias, parece que la otra página no oficial con la descripción incorrecta obtuvo una clasificación más alta en mi búsqueda en Internet. Entonces no hay problema con la descripción de nuestro lado.

Gracias de nuevo por su tenacidad para hacer oficial la fórmula casera.

¿Puede actualizar doc/INSTALL.md y aclarar cuándo usar la fórmula oficial y cuándo usar nuestro grifo?

¿Puede actualizar doc/INSTALL.md y aclarar cuándo usar la fórmula oficial?

Ya lo hice en mi versión local del repositorio. La solicitud de extracción n.º 1777 contiene estos cambios.

…y cuándo usar nuestro grifo?

El Léame de nuestro grifo ya incluye esta información.

¿Qué hay de mantener esto abierto para rastrear el estado de la fórmula homebrew para cada lanzamiento? Si lo prefiere, también podemos agregar un nuevo problema para el seguimiento.

¿Qué hay de mantener esto abierto para rastrear el estado de la fórmula homebrew para cada lanzamiento?

Como ya mostró al publicar aquí 😊, no necesitamos mantener este problema abierto para agregar nuevos comentarios.

¿Fue útil esta página
0 / 5 - 0 calificaciones