@tryge , se você estiver bem com isso, eu assumiria isso
Por favor, vá em frente!
Conforme discutido em #1184, também seria bom construir binários do mac os x usando o travis.
Mas adicionar Homebrew Formula tem a maior prioridade, espero que alguém com um Mac possa entender isso!
Criei uma fórmula Homebrew e uma torneira para Elektra.
@markus2330 Eu transferi o repositório para você Markus, pois precisaria do status de administrador para mover o repositório para a organização ElektraInitiative. Você pode mover o repositório de sua conta pessoal para a organização ElektraInitiative?
Criei uma fórmula Homebrew e uma torneira para Elektra.
Obrigado, isso é realmente ótimo!
Também inclui pacotes binários para a versão mais recente?
Transferi o repositório para você Markus, pois precisaria do status de administrador para mover o repositório para a organização ElektraInitiative. Você pode mover o repositório de sua conta pessoal para a organização ElektraInitiative?
Desculpe, onde posso encontrar? Em https://github.com/sanssecours/homebrew-elektra não tenho o botão "configurações" (que seria necessário para a transferência).
Por que não simplesmente cloná-lo? (Ou recriar um enviando os mesmos commits para ele)
Por falar nisso. É possível trazer esta Fórmula também a montante para brew?
@omnidan Você pode testar se a torneira/garrafa também funciona para você?
Devemos criar problemas sobre a torneira/garrafa aqui ou em
https://github.com/ElektraInitiative/homebrew-elektra?
Também inclui pacotes binários para a versão mais recente?
Ainda não, criar um pacote binário não parece ser tão difícil . Eu vou dar uma olhada.
Desculpe, onde posso encontrar? Em https://github.com/sanssecours/homebrew-elektra não tenho o botão "configurações" (que seria necessário para a transferência).
Obrigado pelo acesso de administrador. Acabei de transferir o repositório .
Por falar nisso. É possível trazer esta Fórmula também a montante para brew?
sim. Eu queria fazer isso primeiro, mas até onde posso dizer, os desenvolvedores do Homebrew são meio exigentes sobre o que aceitam . Principalmente o texto
Nós desaprovamos os autores que enviam seu próprio trabalho, a menos que seja muito popular.
soa como um problema.
Acabei de transferir o repositório.
Ainda não, criar um pacote binário não parece ser tão difícil. Eu vou dar uma olhada.
Obrigado!
Obrigado pelo acesso de administrador.
A qualquer momento novamente se você precisar. Também podemos discutir o acesso de administrador permanente.
sim. Eu queria fazer isso primeiro, mas até onde posso dizer, os desenvolvedores do Homebrew são meio exigentes sobre o que aceitam. Principalmente o texto
É bom recebermos algum feedback, mesmo que eles não aceitem.
Nós desaprovamos os autores que enviam seu próprio trabalho, a menos que seja muito popular.
Eu entendo esta frase que você não deve enviar um formulário para seu próprio trabalho (=repo escrito por você sozinho). Este dificilmente é o caso aqui.
Um pacote binário Homebrew (garrafa) está agora disponível . Se alguém quiser experimentar a fórmula, siga os passos abaixo.
brew doctor
e remova todos os fragmentos do Elektra que o comando relata.brew tap ElektraInitiative/homebrew-elektra
.brew install elektra
.brew install --build-from-source elektra
.brew install --HEAD elektra
.brew test elektra
.É bom recebermos algum feedback, mesmo que eles não aceitem.
Hum, ok. Se eu tiver tempo, tentarei abrir um pull request amanhã.
Esta é uma ótima notícia novamente!
Você pode atualizar o README.md do homebrew-elektra para conter esta descrição mais longa?
Você tem alguns logs de compilação de quais plugins e ligações estão ativados? Em particular, eu estaria interessado se as ligações python2 fossem incluídas (e funcionassem: você pode tentar import kdb
em um interpretador python)?
Você pode atualizar o README.md do homebrew-elektra para conter esta descrição mais longa?
Ok, você pode dar uma olhada no ReadMe atualizado aqui .
Você tem alguns logs de compilação de quais plugins e ligações estão ativados?
A lista de plugins deve ser bastante extensa, já que instalei muitas das dependências opcionais do Elektra na minha máquina. Aqui está o log produzido por brew install --build-from-source -debug -verbose elektra
.
Em particular, eu estaria interessado se as ligações python2 fossem incluídas (e funcionassem: você pode tentar
import kdb
em um interpretador python)?
Eles devem ser incluídos (veja o log acima), mas mesmo assim import kdb
relata o seguinte erro tanto na versão do sistema do Python ( /usr/bin/python
) quanto na instalada via Homebrew ( /usr/local/bin/python
):
import kdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named kdb
.
Ok, você pode dar uma olhada no ReadMe atualizado
Ótimo, obrigado!
A lista de plugins deve ser bastante extensa, já que instalei muitas das dependências opcionais do Elektra na minha máquina.
-DBINDINGS=ALL
kdb gen
precisaria de python cheetah para funcionar e --install-layout
. Parece ser difícil de consertar (melhor deixar isso por enquanto e simplesmente desabilitar gen de TOOLS).Eles devem ser incluídos (veja o log acima)
Eu acho que você misturou ligações e plugins python, as ligações não estão presentes (sem -- Include Binding swig_python2
).
- ronn parece estar faltando (portanto, não há páginas de manual)
Só parece faltar. Eu instalei ronn
via rbenv . Parece que o ambiente Homebrew usa um valor diferente para PATH
que não inclui ~/.rbenv/shims
. Depois de algumas pesquisas, encontrei uma maneira de adicionar ronn
como dependência opcional do Ruby. No momento a fórmula não reconhece minha instalação de ronn
. Espero encontrar uma solução para este problema.
- você não parece incluir nenhuma ligação (exceto cpp), parece que você precisa de um
-DBINDINGS=ALL
Você está certo, obrigado. Eu adicionei a opção aos argumentos CMake da fórmula.
Eu acho que você misturou ligações e plugins python, as ligações não estão presentes (sem
-- Include Binding swig_python2
).
Você está certo novamente :o). Vou verificar se as ligações funcionam mais tarde.
Eu adicionei ronn
como dependência necessária para o processo de compilação aqui . Eu não acho que exigir ronn
para a compilação seja um problema, já que a maioria das pessoas usará apenas a versão engarrafada da fórmula de qualquer maneira.
Você pode perguntar por que eu não adicionei ronn
como dependência opcional. A causa disso foi a saída de brew info
, que parece meio bobo e também super errado se eu adicionar a tag :optional
:
…
==> Dependencies
Build: cmake ✔
==> Requirements
Build: ronn (ruby module) ✔
Optional: ronn (ruby module) ✔
==> Options
--with-languagemodule
Build with languagemodule support
…
. O texto abaixo mostra a saída atual 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) ✔
.
Depois de adicionar -DBINDINGS=ALL
às opções do CMake da fórmula brew audit --strict elektra
mostra a seguinte mensagem (depois de instalar o 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
. Se eu tentar import kdb
na versão Hombrew do Python, o interpretador do Python travará, exibindo a seguinte mensagem de erro:
Fatal Python error: PyThreadState_Get: no current thread
fish: '/usr/local/bin/python' terminated by signal SIGABRT (Abort)
Isso parece ser normal, já que ninja test
– no meu diretório de compilação usual – também falha, mostrando os seguintes erros:
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)
. Usei o seguinte comando para gerar o projeto 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
. As ligações Lua parecem funcionar bem. Pelo menos require 'kdb'
não mostra nenhuma mensagem de erro.
Obrigado pelo seu esforço!
Páginas de manual
Sim, concordo que as pessoas vão preferir a versão engarrafada. E não ter páginas de manual é realmente um grande problema de usabilidade, então o requisito é razoável.
acidente de
import kdb
@manuelm lm você tem uma idéia de por que as ligações falham?
@sanssecours Talvez a versão do gole seja muito antiga ou um gole errado foi usado?
Eles devem ser vinculados com -undefined dynamic_lookup em vez de -lpython ou -framework Python.
Talvez devêssemos simplesmente passar -framework
no caso de APPLE para target_link_libraries. De acordo com cmake docu parece haver um tratamento especial para -framework
.
Talvez o arquivo cmake para python esteja quebrado? Aqui está uma longa discussão sobre arquivos python cmake quebrados. (Pode não estar relacionado, no entanto) Eu realmente não posso ajudar aqui, o problema é bastante específico do Mac OS X.
@sanssecours Talvez a versão swig seja muito antiga…
Não, instalei a versão mais recente de swig
( 3.0.10
) via Homebrew.
…, ou um gole errado usado?
Eu penso que não. Eu pesquiso rapidamente via locate swig
só mostra a versão instalada via Homebrew.
@markus2330 sim, funciona! muito obrigado pela fórmula caseira, @sanssecours :ok_hand:
Eu tive um pequeno problema, mas isso pode ser porque sudo make uninstall
não desinstala corretamente o 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
Depois de executar brew link --overwrite elektra
funciona perfeitamente bem.
Se eu tentar importar kdb na versão Hombrew do Python, o interpretador do Python travará, exibindo a seguinte mensagem de erro:
Erro fatal do Python: PyThreadState_Get: nenhum thread atual
fish: '/usr/local/bin/python' finalizado pelo sinal SIGABRT (Abort)
Então python -c "import kdb"
dá o erro fatal acima? Parece estranho porque as ligações (em contraste com o plugin) não tocam em nenhum estado de thread ou intérprete.
btw dê uma olhada em https://github.com/ElektraInitiative/libelektra/blob/master/.travis.yml#L52
Então
python -c "import kdb"
dá o erro fatal acima?
Sim, o comando /usr/local/bin/python -c "import kdb"
imprime esta mensagem de erro, se eu instalar o Elektra usando uma versão antiga da fórmula . A boa notícia é que /usr/local/bin/python3 -c "import kdb"
funciona.
btw dê uma olhada em https://github.com/ElektraInitiative/libelektra/blob/master/.travis.yml#L52
Se eu adicionar as definições adicionais e desabilitar pyenv , os testes do Python - no meu diretório de compilação usual - serão executados bem. Obrigada.
Obrigado, ótimo trabalho!
Para quem estiver interessado: recentemente abri um pull request para o Elektra 0.8.21 em homebrew-core
aqui .
Tão bom que a fórmula caseira foi aceita! https://github.com/Homebrew/homebrew-core/pull/22049
Uma pequena coisa: em http://brewformulas.org/Elektra a descrição "Um repositório para compartilhar trechos de configuração" está um pouco errada, é possível modificar isso através da fórmula? Ou precisamos enviar um problema no rastreador deles para alterar esse texto?
Eu não acho que http://brewformulas.org seja um site oficial do Homebrew. Você pode encontrar a descrição correta da Fórmula :
Estrutura para acessar as configurações em um banco de dados de chave global
na página oficial do Homebrew .
Obrigado, parece que a outra página não oficial com a descrição errada obteve uma classificação mais alta na minha pesquisa na Internet. Então não há problema com a descrição do nosso lado.
Obrigado novamente por sua tenacidade em oficializar a fórmula caseira.
Você pode atualizar doc/INSTALL.md
e esclarecer quando usar a fórmula oficial e quando usar nossa torneira?
Você pode atualizar
doc/INSTALL.md
e esclarecer quando usar a fórmula oficial…
Eu já fiz isso na minha versão local do repositório. A solicitação pull nº 1777 contém essas alterações.
…e quando usar nossa torneira?
O Readme da nossa torneira já inclui esta informação.
Que tal manter isso aberto para acompanhar o status da fórmula homebrew para cada lançamento? Se preferir, também podemos adicionar um novo problema para o rastreamento.
Que tal manter isso aberto para acompanhar o status da fórmula homebrew para cada lançamento?
Como você já mostrou postando aqui 😊, não precisamos manter essa edição aberta para adicionar novos comentários.
Comentários muito úteis
Eu já fiz isso na minha versão local do repositório. A solicitação pull nº 1777 contém essas alterações.
O Readme da nossa torneira já inclui esta informação.