LINUX.ORG.RU

Ebuild для Basilisk

 ,


0

1

В общем, так как аз есмь нуб, то я решил взять готовый ебилд для pale moon ( https://gpo.zugaina.org/AJAX/Ebuild/53364678/View ) и адаптировать его для василиска, ибо браузеры практически идентичны. Убрал в inherit palemoon-5 и заменил все упоминания pale moon на basilisk и ссылку с исходниками. Когда начинаю компилировать, вываливается следующая ошибка:

 *   The source directory '/var/tmp/portage/www-client/basilisk-2020.10.05/work/basilisk-2020.10.05' doesn't exist
 * 
 * Call stack:
 *            ebuild.sh, line  762:  Called __ebuild_main 'prepare'
 *   phase-functions.sh, line 1050:  Called __dyn_prepare
 *   phase-functions.sh, line  384:  Called die
 * The specific snippet of code:
 *              die "The source directory '${S}' doesn't exist"
В чём может быть загвоздка?


В чём может быть загвоздка?

В том, что The source directory '/var/tmp/portage/www-client/basilisk-2020.10.05/work/basilisk-2020.10.05' doesn't exist

init_6 ★★★★★
()

Сначала делаешь ebuild имя_пакета.ebuild clean unpack

Идёшь в /var/tmp/portage/имя-пакета/work и смотришь название-директории-пакета.

Открываешь ebuild и где-нибудь перед DEPEND задаёшь переменную

S=«${WORKDIR}/название-директории-пакета». Пытаешься снова.

То есть вместо work/basilisk-2020.10.05 должно быть что-то другое.

grem ★★★★★
()
Ответ на: комментарий от grem

Извиняюсь, забыл добавить лог ошибки после выполнения clean unpack (lcrepa - название локального оверлея):

>>> Unpacking source...
 * Repository id: MoonchildProductions_Basilisk.git
 * To override fetched repository properties, use:
 *   EGIT_OVERRIDE_REPO_MOONCHILDPRODUCTIONS_BASILISK
 *   EGIT_OVERRIDE_BRANCH_MOONCHILDPRODUCTIONS_BASILISK
 *   EGIT_OVERRIDE_COMMIT_MOONCHILDPRODUCTIONS_BASILISK
 *   EGIT_OVERRIDE_COMMIT_DATE_MOONCHILDPRODUCTIONS_BASILISK
 * 
 * Fetching https://repo.palemoon.org/MoonchildProductions/Basilisk.git ...
git fetch https://repo.palemoon.org/MoonchildProductions/Basilisk.git +HEAD:refs/git-r3/HEAD
fatal: Needed a single revision
git update-ref --no-deref refs/git-r3/www-client/basilisk/0/__main__ 2020.10.05_Release
fatal: 2020.10.05_Release: not a valid SHA1
 * ERROR: www-client/basilisk-2020.10.05::lcrepa failed (unpack phase):
 *   Referencing 2020.10.05_Release failed (wrong ref?).
 * 
 * Call stack:
 *     ebuild.sh, line  125:  Called src_unpack
 *   environment, line 2358:  Called git-r3_src_unpack
 *   environment, line 1741:  Called git-r3_src_fetch
 *   environment, line 1735:  Called git-r3_fetch
 *   environment, line 1648:  Called die
 * The specific snippet of code:
 *                   die "Referencing ${remote_ref} failed (wrong ref?).";
 

nemixer
() автор топика
Ответ на: комментарий от nemixer

Начнём сначала:

Какой готовый ebuild palemoon ты взял? Если тот, который указан в тексте темы, то немного странно, что его автор использует git-r3 для скачивания определённого релиза, особенно, если там есть прямые ссылки на тарболлы.

То есть лучше приведи ссылки на проект, откуда хочешь качать тарболл.

Какую версию Basilisk ты хочешь поставить после модификации?

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

Какой готовый ebuild palemoon ты взял?
Если тот, который указан в тексте темы

Да, его.

немного странно, что его автор использует git-r3 для скачивания определённого релиза, особенно, если там есть прямые ссылки на тарболлы

Т.е. EGIT_REPO_URI= можно заменить на SRC_URI= ?

Какую версию Basilisk ты хочешь поставить после модификации?

Когда модифицировал ебилд, то 2020.10.05, правда, там 13 часов назад v2020.10.29 вышла, но да ладно, мне б хотя бы с 2020.10.05 разобраться.

nemixer
() автор топика
Последнее исправление: nemixer (всего исправлений: 1)
Ответ на: комментарий от grem

Попробовал вариант с SRC_URI="https://repo.palemoon.org/MoonchildProductions/Basilisk/archive/v2020.10.05.t... и заодно убрал из inherit git-r3, опять та же ошибка:

  * ERROR: www-client/basilisk-2020.10.05::lcrepa failed (prepare phase):
 *   The source directory '/var/tmp/portage/www-client/basilisk-2020.10.05/work/basilisk-2020.10.05' doesn't exist
 * 
 * Call stack:
 *            ebuild.sh, line  762:  Called __ebuild_main 'prepare'
 *   phase-functions.sh, line 1050:  Called __dyn_prepare
 *   phase-functions.sh, line  384:  Called die
 * The specific snippet of code:
 *              die "The source directory '${S}' doesn't exist"

nemixer
() автор топика
Ответ на: комментарий от nemixer

Тогда можно указать сразу в SRC_URI https://repo.palemoon.org/MoonchildProductions/Basilisk/archive/v2020.10.29.tar.gz

Если хочешь оставить git, то видимо, переменная должна быть EGIT_COMMIT=«v${PV}»

  • указывает либо на коммит, либо тэг. Но так как в palemoon5 eclass вызывались какие-то функции, то нужно смотреть что это было и заменить их на что-нибудь.
grem ★★★★★
()
Ответ на: комментарий от nemixer

А вот теперь проверь в /var/tmp/portage/имя-пакета/work какой каталог лежит

После этого подправить переменную S

В архиве я виже каталог basilisk без указания версии.

А дальше нужно разбираться с отдельными фазами в зависимости о того, что ты хочешь делать в них: будешь ли накладывать патчи в stc_repare; вызывать функции конфигурации в src_configure и т.д.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от grem

Да, теперь work не пустой, указал переменную S и запустил компиляцию. Теперь ошибка такая:

  * v2020.10.29.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                                                                                     
>>> Unpacking source...
>>> Unpacking v2020.10.29.tar.gz to /var/tmp/portage/www-client/basilisk-2020.10.29/work
>>> Source unpacked in /var/tmp/portage/www-client/basilisk-2020.10.29/work
>>> Preparing source in /var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk ...
sed: невозможно прочитать /var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk/platform/xpcom/io/nsAppFileLocationProvider.cpp: Нет такого файла или каталога
 * ERROR: www-client/basilisk-2020.10.29::lcrepa failed (prepare phase):
 *   sed failed to replace plugin path for 32bit!
 * 
 * Call stack:
 *     ebuild.sh, line 125:  Called src_prepare
 *   environment, line 1760:  Called die
 * The specific snippet of code:
 *       sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" "${S}/platform/xpcom/io/nsAppFileLocationProvider.cpp" || die "sed failed to replace plugin path for 32bit!";
 * 
 * If you need support, post the output of `emerge --info '=www-client/basilisk-2020.10.29::lcrepa'`,
 * the complete build log and the output of `emerge -pqv '=www-client/basilisk-2020.10.29::lcrepa'`.
 * The complete build log is located at '/var/tmp/portage/www-client/basilisk-2020.10.29/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/www-client/basilisk-2020.10.29/temp/environment'.
 * Working directory: '/var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk'
 * S: '/var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk'

>>> Failed to emerge www-client/basilisk-2020.10.29, Log file:

>>>  '/var/tmp/portage/www-client/basilisk-2020.10.29/temp/build.log'

 * Messages for package www-client/basilisk-2020.10.29:

 * ERROR: www-client/basilisk-2020.10.29::lcrepa failed (prepare phase):
 *   sed failed to replace plugin path for 32bit!
 * 
 * Call stack:
 *     ebuild.sh, line 125:  Called src_prepare
 *   environment, line 1760:  Called die
 * The specific snippet of code:
 *       sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" "${S}/platform/xpcom/io/nsAppFileLocationProvider.cpp" || die "sed failed to replace plugin path for 32bit!";
 
Похоже, ебилд надо капитально править...

nemixer
() автор топика
Ответ на: комментарий от nemixer

sed: невозможно прочитать /var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk/platform/xpcom/io/nsAppFileLocationProvider.cpp: Нет такого файла или каталога

Этого файла может и не быть и если есть, то sed может что-то не найти в нём, что ищет.

Похоже, ебилд надо капитально править…

Угу, это же другой пакет + исходный ebuild может быть для старой версии palemoon и структура проекта могла измениться с тех пор.

grem ★★★★★
()
Ответ на: комментарий от nemixer

Есть какой-то странный проект дистрибутива Liguros. Странный для меня, потому что я не понимаю цели проекта.

Попробуй собрать оттуда. https://gitlab.com/liguros/nokit/-/tree/20.7-release/www-client/basilisk

Только ссылки подправить придётся сначала, т.к. на гитхабе проекта basilisk нет уже. И переменню S наверное. Зато ebuild достаточно свежий.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от grem

Пробую, т.к. исходников на гитхабе больше нет, то изменил ссылки. В этом ебилде в work два каталога - basilisk и uxp, как мне их указать в переменной S?

nemixer
() автор топика
Последнее исправление: nemixer (всего исправлений: 1)
Ответ на: комментарий от grem

Указал basilisk, теперь ругается из-за mach

  * v2020.10.29.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                                                                                      * RELBASE_20201024.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                                                                                
>>> Unpacking source...
>>> Unpacking v2020.10.29.tar.gz to /var/tmp/portage/www-client/basilisk-2020.10.29/work
>>> Unpacking RELBASE_20201024.tar.gz to /var/tmp/portage/www-client/basilisk-2020.10.29/work
>>> Source unpacked in /var/tmp/portage/www-client/basilisk-2020.10.29/work
>>> Preparing source in /var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk ...
mv: не удалось выполнить stat для '/var/tmp/portage/www-client/basilisk-2020.10.29/work/UXP-/*': Нет такого файла или каталога
mv: не удалось выполнить stat для '/var/tmp/portage/www-client/basilisk-2020.10.29/work/UXP-/.[a-z]*': Нет такого файла или каталога
rmdir: не удалось удалить '/var/tmp/portage/www-client/basilisk-2020.10.29/work/UXP-': Нет такого файла или каталога
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk ...
 * You are enabling the official branding. You may not redistribute this build
 * to any users on your network or the internet. Doing so puts yourself into
 * a legal problem with Moonchild Productions.
 * You can disable the official branding by emerging basilisk _without_
 * the official-branding USE flag.
>>> Source configured.
>>> Compiling source in /var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk ...
/var/tmp/portage/www-client/basilisk-2020.10.29/work/basilisk/mach: строка 4: ./platform/mach: Нет такого файла или каталога
 * ERROR: www-client/basilisk-2020.10.29::lcrepa failed (compile phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line 125:  Called src_compile
 *   environment, line 2124:  Called die
 * The specific snippet of code:
 *       ${S}/mach build || die
 

nemixer
() автор топика
Последнее исправление: nemixer (всего исправлений: 1)
Ответ на: комментарий от nemixer

Значит ещё что-то не так.

Возьми бинарник и распакуй :) Либо авторам ebuild отпишись, что там ссылка теперь неверная и не собирается.

grem ★★★★★
()
Ответ на: комментарий от nemixer

Более детально уже лень смотреть. А раз авторы liguros это приложение опакктмли, то они ebuild быстрее пофиксят.

В любом случае я сборку проверит не смогу, т.к. бинарные сборки браузеров использую.

grem ★★★★★
()

Итак, ебилд из Liguros очень даже рабочий, в моём случае пришлось изменить переменную S, добавить актуальные ссылки на исходники, поменять UXP-${UNIFIED} на uxp, а в поле # Install icons and .desktop for menu entry: заменить всю простыню на install_branding_files.

nemixer
() автор топика
Последнее исправление: nemixer (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.