Libelektra: Добавить формулу домашнего пивоварения для Электры

Созданный на 18 февр. 2016  ·  28Комментарии  ·  Источник: ElektraInitiative/libelektra

Homebrew — один из самых популярных менеджеров пакетов для OS X. Было бы неплохо, если бы мы предоставили официальную формулу Homebrew — также известную как пакет — для Elektra. Кто-то уже сделал базовую формулу здесь . Может быть, мы сможем основывать нашу работу на этом.

enhancement usability

Самый полезный комментарий

Не могли бы вы обновить doc/INSTALL.md и уточнить, когда использовать официальную формулу…

Я уже сделал это в своей локальной версии репозитория. Запрос на включение # 1777 содержит эти изменения.

…и когда использовать наш кран?

Эта информация уже содержится в файле Readme нашего крана .

Все 28 Комментарий

@tryge , если ты не против, я бы взял это на себя

Пожалуйста продолжай!

Как обсуждалось в #1184, было бы также неплохо собрать бинарные файлы для mac os x с помощью travis.

Но добавление Homebrew Formula имеет наивысший приоритет, я надеюсь, что кто-то с Mac сможет это сделать!

Я создал формулу Homebrew и кран для Elektra.

@ markus2330 Я передал репозиторий тебе, Маркус, поскольку мне понадобился бы статус администратора, чтобы переместить репозиторий в организацию ElektraInitiative. Не могли бы вы перенести репозиторий из личного кабинета в организацию ElektraInitiative?

Я создал формулу Homebrew и кран для Elektra.

Спасибо, это действительно здорово!

Включает ли он также бинарные пакеты для последней версии?

Я передал репозиторий вам, Маркус, поскольку мне понадобился бы статус администратора, чтобы передать репозиторий организации ElektraInitiative. Не могли бы вы перенести репозиторий из личного кабинета в организацию ElektraInitiative?

Извините, а где его найти? В https://github.com/sanssecours/homebrew-elektra у меня нет кнопки "настройки" (которая потребовалась бы для переноса).

Почему бы просто не клонировать его? (Или воссоздать его, вставив в него те же коммиты)

Кстати. Можно ли довести эту Формулу до пивоварения?

@omnidan Можете ли вы проверить, работает ли кран/бутылка и для вас?

Должны ли мы создавать вопросы о кране/бутылке здесь или на
https://github.com/ElektraInitiative/homebrew-elektra?

Включает ли он также бинарные пакеты для последней версии?

Пока нет, создание бинарного пакета не кажется таким уж сложным . Я посмотрю.

Извините, а где его найти? В https://github.com/sanssecours/homebrew-elektra у меня нет кнопки "настройки" (которая потребовалась бы для переноса).

Спасибо за доступ администратора. Я только что перенес репо .

Кстати. Можно ли довести эту Формулу до пивоварения?

да. Я хотел сделать это в первую очередь, но, насколько я могу судить, разработчики Homebrew довольно разборчивы в том, что они принимают . Особенно текст

Мы не одобряем авторов, представляющих свои собственные работы, если только они не пользуются большой популярностью.

звучит как проблема.

Я только что перенес репо.
Пока нет, создание бинарного пакета не кажется таким уж сложным. Я посмотрю.

Спасибо!

Спасибо за доступ администратора.

В любое время снова, если вам это нужно. Мы также можем обсудить постоянный доступ администратора.

да. Я хотел сделать это первым, но, насколько я могу судить, разработчики Homebrew довольно разборчивы в том, что они принимают. Особенно текст

Хорошо, если мы получим обратную связь, даже если они ее не примут.

Мы не одобряем авторов, представляющих свои собственные работы, если только они не пользуются большой популярностью.

Я понимаю это предложение о том, что вы не должны отправлять формулу для своей работы (= репозиторий, написанный вами в одиночку). Здесь это вряд ли так.

Теперь доступен бинарный пакет Homebrew (бутылка). Если кто-то хочет попробовать формулу, выполните следующие действия.

  1. Пожалуйста, запустите brew doctor и удалите все фрагменты Elektra, о которых сообщает команда.
  2. Коснитесь репозитория: brew tap ElektraInitiative/homebrew-elektra .
  3. Если вы хотите установить

    • бутылка использует brew install elektra .

    • выпустите 0.8.19 из исходников, затем используйте brew install --build-from-source elektra .

    • последнюю версию Elektra, затем используйте brew install --HEAD elektra .

  4. Чтобы проверить, работает ли установка, вы можете использовать команду brew test elektra .

Хорошо, если мы получим обратную связь, даже если они ее не примут.

Хм, хорошо. Если у меня будет время, я попытаюсь завтра открыть запрос на включение.

Это снова отличные новости!

Можете ли вы обновить README.md сайта homebrew-elektra, чтобы он содержал это более подробное описание?

У вас есть журналы сборки, в которых включены плагины и привязки? В частности, мне было бы интересно, включены ли привязки python2 (и работают ли вы: можете ли вы попробовать import kdb в интерпретаторе python)?

Можете ли вы обновить README.md сайта homebrew-elektra, чтобы он содержал это более подробное описание?

Хорошо, вы можете взглянуть на обновленный ReadMe здесь .

У вас есть журналы сборки, в которых включены плагины и привязки?

Список плагинов должен быть довольно обширным, так как я установил на свою машину множество необязательных зависимостей Elektra. Вот журнал , созданный brew install --build-from-source -debug -verbose elektra .

В частности, мне было бы интересно, включены ли привязки python2 (и работают ли вы: можете ли вы попробовать import kdb в интерпретаторе python)?

Они должны быть включены (см. лог выше), но тем не менее import kdb сообщает о следующей ошибке как в системной версии Python ( /usr/bin/python ), так и в установленной через Homebrew ( /usr/local/bin/python ):

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

.

Хорошо, вы можете взглянуть на обновленный ReadMe

Отлично, спасибо!

Список плагинов должен быть довольно обширным, так как я установил на свою машину множество необязательных зависимостей Elektra.

  • Ронн, кажется, отсутствует (поэтому нет справочных страниц)
  • вы, кажется, не включаете никакую привязку (кроме cpp), похоже, вам нужен -DBINDINGS=ALL
  • Для работы kdb gen потребуется python cheetah и --install-layout . Кажется, это сложно исправить (лучше пока оставить это и просто отключить gen из TOOLS).

Они должны быть включены (см. лог выше)

Я думаю, вы перепутали привязки python и плагины, привязки нет (нет -- Include Binding swig_python2 ).

  • Ронн, кажется, отсутствует (поэтому нет справочных страниц)

Только кажется, что его не хватает. Я установил ronn через rbenv . Похоже, что среда Homebrew использует другое значение для PATH , которое не включает ~/.rbenv/shims . После некоторых исследований я нашел способ добавить ronn в качестве дополнительной зависимости Ruby. В данный момент формула не распознает мою установку ronn . Надеюсь, я найду решение этой проблемы.

  • вы, кажется, не включаете никакую привязку (кроме cpp), похоже, вам нужен -DBINDINGS=ALL

Вы правы, спасибо. Я добавил параметр в аргументы формулы CMake.

Я думаю, вы перепутали привязки python и плагины, привязки нет (нет -- Include Binding swig_python2 ).

Вы снова правы :о). Я проверю, работают ли привязки позже.

Обновлять

справочные страницы

Я добавил здесь ronn в качестве необходимой зависимости для процесса сборки . Я не думаю, что требование ronn для сборки является проблемой, так как большинство людей все равно будут использовать бутылочную версию формулы.

Вы можете спросить, почему я не добавил ronn в качестве необязательной зависимости. Причиной этого был вывод brew info , который выглядит довольно глупо, а также очень неправильно, если я добавлю тег :optional :

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

. В приведенном ниже тексте показан текущий вывод 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) ✔

.

Привязки

После добавления -DBINDINGS=ALL в параметры CMake формулы brew audit --strict elektra отображается следующее сообщение (после установки 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

. Если я попробую import kdb в версии Python для домашних животных, интерпретатор Python выйдет из строя, отображая следующее сообщение об ошибке:

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

Это кажется нормальным, поскольку ninja test — в моем обычном каталоге сборки — тоже не работает, показывая следующие ошибки:

     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)

. Я использовал следующую команду для создания проекта 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

. Привязки Lua работают нормально. По крайней мере require 'kdb' не показывает никаких сообщений об ошибках.

Спасибо за ваши усилия!

справочные страницы

Да, я согласен, что люди предпочтут бутылочную версию. И отсутствие справочных страниц действительно является серьезной проблемой удобства использования, поэтому требование разумно.

крах import kdb

@manuelm lm у вас есть идея, почему привязки падают?

@sanssecours Может быть, версия swig слишком старая или используется неправильный swig?

Они должны быть связаны с -undefined dynamic_lookup вместо -lpython или -framework Python.

Может быть, мы должны просто передать -framework в случае APPLE в target_link_libraries. Согласно документу cmake , для -framework существует особая обработка.

Может быть, файл cmake для python не работает? Вот длинная дискуссия о сломанных файлах python cmake. (Хотя это может быть не связано) Я не могу здесь помочь, проблема довольно специфична для Mac OS X.

@sanssecours Может быть, версия swig слишком старая…

Нет, я установил новейшую версию swig ( 3.0.10 ) через Homebrew.

… или вы использовали не тот глоток?

Не думаю. Я быстрый поиск через locate swig показывает только версию, установленную через Homebrew.

@markus2330 да, это работает! большое спасибо за формулу доморощенного, @sanssecours :ok_hand:

У меня была небольшая проблема, но это может быть потому, что sudo make uninstall не удаляет 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

Однако после запуска brew link --overwrite elektra все работает отлично.

Если я попытаюсь импортировать kdb в версии Python для домашних животных, интерпретатор Python выйдет из строя, отображая следующее сообщение об ошибке:

Фатальная ошибка Python: PyThreadState_Get: нет текущего потока
fish: '/usr/local/bin/python' завершается сигналом SIGABRT (Abort)

Итак, python -c "import kdb" выдает указанную выше фатальную ошибку? Звучит странно, потому что привязки (в отличие от плагина) вообще не касаются состояний потоков или интерпретаторов.

Итак, python -c "import kdb" выдает указанную выше фатальную ошибку?

Да, команда /usr/local/bin/python -c "import kdb" выводит это сообщение об ошибке, если я устанавливаю Elektra, используя старую версию формулы . Хорошей новостью является то, что /usr/local/bin/python3 -c "import kdb" работает.

Кстати, взгляните на https://github.com/ElektraInitiative/libelektra/blob/master/.travis.yml#L52 .

Если я добавлю дополнительные определения и отключу pyenv , то тесты Python в моем обычном каталоге сборки будут работать нормально. Спасибо.

Спасибо, отличная работа!

Для всех, кому интересно: недавно я открыл пулреквест для Elektra 0.8.21 по адресу homebrew-core здесь .

Так здорово, что формула домашнего пивоварения была принята! https://github.com/Homebrew/homebrew-core/pull/22049

Мелочь: на http://brewformulas.org/Elektra описание "Репозиторий для обмена фрагментами конфигурации" немного неверно, можно ли изменить это с помощью формулы? Или нам нужно сообщить о проблеме в их трекере, чтобы изменить этот текст?

Я не думаю, что http://brewformulas.org является официальным сайтом Homebrew. Вы можете найти правильное описание формулы :

Платформа для доступа к настройкам конфигурации в глобальной базе данных ключей

на официальной домашней странице Homebrew .

Спасибо, кажется, другая неофициальная страница с неправильным описанием получила более высокий рейтинг в моем поиске в Интернете. Тогда нет никаких проблем с описанием с нашей стороны.

Еще раз спасибо за ваше упорство в официальном оформлении формулы домашнего пивоварения.

Не могли бы вы обновить doc/INSTALL.md и уточнить, когда использовать официальную формулу, а когда использовать наш кран?

Не могли бы вы обновить doc/INSTALL.md и уточнить, когда использовать официальную формулу…

Я уже сделал это в своей локальной версии репозитория. Запрос на включение # 1777 содержит эти изменения.

…и когда использовать наш кран?

Эта информация уже содержится в файле Readme нашего крана .

Как насчет того, чтобы держать его открытым, чтобы отслеживать статус доморощенной формулы для каждого выпуска? При желании мы также можем добавить новую проблему для отслеживания.

Как насчет того, чтобы держать его открытым, чтобы отслеживать статус доморощенной формулы для каждого выпуска?

Как вы уже показали, опубликовав здесь 😊, нам не нужно держать эту тему открытой, чтобы добавлять новые комментарии.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

markus2330 picture markus2330  ·  3Комментарии

mpranj picture mpranj  ·  4Комментарии

mpranj picture mpranj  ·  3Комментарии

mpranj picture mpranj  ·  3Комментарии

markus2330 picture markus2330  ·  3Комментарии