Вы здесь

rkward-0.6.3

Сабж резко поменялся по сравнению с пред. версией, в сети ебилдов нет. Накатал по мотивам 0.6.1 и 9999 такое:


EAPI=5

KDE_DOC_DIRS="doc"
KDE_HANDBOOK="optional"
KDE_LINGUAS="ca cs da de el es fr it lt pl tr zh_CN"

inherit kde4-base

DESCRIPTION="IDE for the R-project"
HOMEPAGE="https://rkward.kde.org/"
SRC_URI="http://download.kde.org/stable/rkward/${PV}/src/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="4"
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
IUSE="debug"

DEPEND="
dev-lang/R
$(add_kdebase_dep katepart)"
RDEPEND="${DEPEND}"

src_configure() {
# to have it compatible with R which had a bad R_HOME
unset R_HOME
kde4-base_src_configure
}

src_install() {
kde4-base_src_install
# avoid file collision with kate
rm "${ED}"/usr/share/apps/katepart/syntax/r.xml || die
}

При сборке вылетает с такой руганью:


* Messages for package sci-mathematics/rkward-0.6.3:

* ERROR: sci-mathematics/rkward-0.6.3::local_overlay failed (prepare phase):
* linguas dir "po" does not exist
*
* Call stack:
* ebuild.sh, line 93: Called src_prepare
* environment, line 3783: Called kde4-base_src_prepare
* environment, line 2836: Called enable_selected_linguas
* environment, line 1497: Called _enable_selected_linguas_dir 'po'
* environment, line 490: Called die
* The specific snippet of code:
* [[ -d ${dir} ]] || die "linguas dir \"${dir}\" does not exist";
*
* If you need support, post the output of `emerge --info '=sci-mathematics/rkward-0.6.3::local_overlay'`,
* the complete build log and the output of `emerge -pqv '=sci-mathematics/rkward-0.6.3::local_overlay'`.
* The complete build log is located at '/var/tmp/portage/sci-mathematics/rkward-0.6.3/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/sci-mathematics/rkward-0.6.3/temp/environment'.
* Working directory: '/var/tmp/portage/sci-mathematics/rkward-0.6.3/work/rkward-0.6.3'
* S: '/var/tmp/portage/sci-mathematics/rkward-0.6.3/work/rkward-0.6.3'

...хотя директория "po" есть. Что характерно, 9999 из гита собирается нормально, но там порушено кое-что.
Помогите допилить, пожалуйста!

Если задача получить достаточно (в существенной части) работоспособную сборку, а ошибка в локализации, то напрашивается решение в начальном приближении локализацию выключить (в смысле «закомментировать»).

ЗЫ: И да, полный лог сборки тоже будет нелишним.

:wq
--
Live free or die

Вообще-то хотелось бы в багзиллу запилить с идеей намекнуть, что в portage пора, хотя бы как "~arch". Русской локализации нет, на КДЕшном сайте сам чёрт ногу сломит (хотел начать потихоньку переводить сам), так что для себя-то закомментить KDE_LINGUAS можно, но дело в принципе. Лог сборки: https://bpaste.net/show/10240e1552b3 (/var/tmp/portage/sci-mathematics/rkward-0.6.3/temp/build.log)

Принцип дело хорошее ☺
Правда по понятиям надо бы зафиксировать и довести до осознания разработчиками претензии к текущему слепку -9999.

Danhuu написал:
...хотя директория "po" есть.

По журналу валится на src_prepare().
man kde4-base.eclass прямо сообщает, что оная функция использует обработчики из kde4-functions.eclass.

Danhuu написал:
9999 из гита собирается нормально

Во-первых, s/git/svn/.
Во-вторых смотри упомянутую страницу руководства о документации в live-версиях кдеешных пакетов.

ЗЫ: Ты уверен, что ничего из зависимостей не потерял?

:wq
--
Live free or die

Anarchist написал:
...зафиксировать и довести до осознания разработчиками претензии к текущему слепку -9999.

Идея неплоха, консоль с руганью там есть.

Anarchist написал:
По журналу валится на src_prepare().
man kde4-base.eclass прямо сообщает, что оная функция использует обработчики из kde4-functions.eclass.

Наверное, это важно, но, к сожалению, выше моего уровня образования :-(((

Anarchist написал:
Во-первых, s/git/svn/.

Э... причём тут svn??? https://quickgit.kde.org/?p=rkward.git

Anarchist написал:
Во-вторых смотри упомянутую страницу руководства о документации в live-версиях кдеешных пакетов.

Погляжу, конечно, но понимаю я в этом, как заяц в геометрии - так, из общей логики и скромного опыта самой примитивнейшей правки ебилдов под новую версию.

Anarchist написал:
ЗЫ: Ты уверен, что ничего из зависимостей не потерял?

Вот это - https://bpaste.net/show/6bd7f32fee75 - некогда слитое из gpo.zugaina.org (сейчас не находится) и подправленное на нынешний git, компилится и работает, хоть и с мелкими глюками (некоторые пути в хелпе не там ищет). Отсюда предполагаю, что не потерял.

Возможно, я неточно сформулировал свою просьбу: Уважаемые знатоки, если у вас найдётся время и желание, напишите, пожалуйста, rkward-0.6.3.ebuild, шоб он собирался! Я честно попытался методом тыка сделать сам - не вышло. Если конкретно укажете, почему именно - буду вдвойне признателен. ;-)))

Из общей логики подозреваю, что эта самая src_prepare() или помянутые тобой обработчики ищут po не там, где она есть на самом деле. То ли разработчики в сорцах её не туда засунули, то ли одно из пяти.

ЗЫ:


ulvhare@ipee200a ~ $ man kde4-base.eclass
Нет справочной страницы для kde4-base.eclass

ЗЗЫ:
https://devmanual.gentoo.org/eclass-reference/kde4-base.eclass/ говорит, что:

kde4-base_src_prepare
General pre-configure and pre-compile function for KDE4 applications. It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and enable_selected_linguas() and enable_selected_doc_linguas() in kde4-functions.eclass(5) for further details.

Смотрю "further details"
https://devmanual.gentoo.org/eclass-reference/kde4-functions.eclass/index.html говорит, что:

enable_selected_linguas
Enable translations based on LINGUAS settings and translations supported by the package (see KDE_LINGUAS). By default, translations are found in "${S}"/po but this default can be overridden by defining KDE_LINGUAS_DIR.

Т.е., если я правильно понял, po ищется в корне распакованных сорцов, а в реале оно rkward-0.6.3/i18n/po/. Так что надо прописать KDE_LINGUAS_DIR = "${S}/i18n/po"

Danhuu написал:
Anarchist написал:
По журналу валится на src_prepare().
man kde4-base.eclass прямо сообщает, что оная функция использует обработчики из kde4-functions.eclass.

Наверное, это важно, но, к сожалению, выше моего уровня образования :-(((

Прежде чем пилить ебилды полезно хотя бы ознакомиться с стандартной страницей руководства man 5 ebuild.
Она же даст минимум скиллов в использовании стандартной справочной подсистемы.

Danhuu написал:
Anarchist написал:
Во-первых, s/git/svn/.

Э... причём тут svn??? https://quickgit.kde.org/?p=rkward.git

Хороший вопрос, правильный.
При том, что, с учётом нижеприведённой оговорки, я смотрел на ебилд с https://rkward.kde.org/Binaries_and_Build_Scripts

Danhuu написал:
Anarchist написал:
ЗЫ: Ты уверен, что ничего из зависимостей не потерял?

Вот это - https://bpaste.net/show/6bd7f32fee75 - некогда слитое из gpo.zugaina.org (сейчас не находится) и подправленное на нынешний git, компилится и работает, хоть и с мелкими глюками (некоторые пути в хелпе не там ищет). Отсюда предполагаю, что не потерял.

В том, что смотрел я:

DEPEND=">=dev-lang/R-2.7.0
dev-lang/php[cli]"
RDEPEND="${DEPEND}
!<=sci-mathematics/rkward-0.5.0b"

Danhuu написал:
Возможно, я неточно сформулировал свою просьбу: Уважаемые знатоки, если у вас найдётся время и желание, напишите, пожалуйста, rkward-0.6.3.ebuild, шоб он собирался! Я честно попытался методом тыка сделать сам - не вышло. Если конкретно укажете, почему именно - буду вдвойне признателен. ;-)))

Из общей логики подозреваю, что эта самая src_prepare() или помянутые тобой обработчики ищут po не там, где она есть на самом деле. То ли разработчики в сорцах её не туда засунули, то ли одно из пяти.

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

Danhuu написал:

ulvhare@ipee200a ~ $ man kde4-base.eclass
Нет справочной страницы для kde4-base.eclass

$ equery b /usr/share/man/man5/kde4-base.eclass.5.bz2 
* Searching for /usr/share/man/man5/kde4-base.eclass.5.bz2 ...
app-portage/eclass-manpages-20150814 (/usr/share/man/man5/kde4-base.eclass.5.bz2)

Если выходишь на необходимость пиления ебилдов — предмет насущной необходимости.

:wq
--
Live free or die

Anarchist написал:
...я смотрел на ебилд с https://rkward.kde.org/Binaries_and_Build_Scripts

Взгляни там на дату ;-) Не к тебе претензии, а вот со стороны разрабов вывешивать заведомо устаревшие вещи - свинство. Mainstream, едрёна мышь, в глазах половины линукс-юзеров (и разрабов) Linux ≡ Ubuntu, а Gentoo - для красноглазых. Хотя глаза ломал я как раз вчера, пытаясь в Xubuntu завлаба выставить нативное dpi (в Gentoo - 5 минут гугления и 1 строчка конфига в DM). Ладно, это я ругаюсь, чем научным сотрудникам приходится вместо прямых обязанностей заниматься :-)

Anarchist написал:
В том, что смотрел я:

DEPEND=">=dev-lang/R-2.7.0
dev-lang/php[cli]"
RDEPEND="${DEPEND}
!<=sci-mathematics/rkward-0.5.0b"

В недрах git-овских коммитов у них было написано, что год-другой назад выпилили зависимость от php и окончательно перешли на javascript в конструкции плагинов. Наткнулся случайно. На нормальные changelog-и положено с прибором.

Anarchist написал:

$ equery b /usr/share/man/man5/kde4-base.eclass.5.bz2 
* Searching for /usr/share/man/man5/kde4-base.eclass.5.bz2 ...
app-portage/eclass-manpages-20150814 (/usr/share/man/man5/kde4-base.eclass.5.bz2)

Если выходишь на необходимость пиления ебилдов — предмет насущной необходимости.

А вот за это - огромное спасибо!!! Ни в хендбуке, ни в вики в разделах про ебилды и прочие напильники упоминаний о таком действительно важном пакете я не видел. Хотя, может, плохо смотрел. Всегда думал, что маны идут как составная часть пакета (здесь - portage).
Океюшки, практика - критерий истины, как писал бородатый классик из Трира. По результатам отпишусь.

Danhuu написал:
Anarchist написал:
...я смотрел на ебилд с https://rkward.kde.org/Binaries_and_Build_Scripts

Взгляни там на дату ;-)

Видел ☺

Danhuu написал:
Не к тебе претензии, а вот со стороны разрабов вывешивать заведомо устаревшие вещи - свинство.

Дело в том, что документирование — отдельная задача.
По ресурсоёмкости сопоставимая с собственно разработкой.

Danhuu написал:
Mainstream, едрёна мышь, в глазах половины линукс-юзеров (и разрабов) Linux ≡ Ubuntu, а Gentoo - для красноглазых.

Собственное мнение даже о своих потребностях — штука тоже не то, чтобы дешёвая.

Danhuu написал:
Хотя глаза ломал я как раз вчера, пытаясь в Xubuntu завлаба выставить нативное dpi (в Gentoo - 5 минут гугления и 1 строчка конфига в DM). Ладно, это я ругаюсь, чем научным сотрудникам приходится вместо прямых обязанностей заниматься :-)

Интуитивно-понятный™ графический интерфейс?
Это мы ещё не дошли до задачи переносимости (конвертации) настроек…

Danhuu написал:
В недрах git-овских коммитов у них было написано, что год-другой назад выпилили зависимость от php и окончательно перешли на javascript в конструкции плагинов. Наткнулся случайно. На нормальные changelog-и положено с прибором.

Вопрос традиции решения задачи в рамках технологии.
Я тоже не так давно удивлялся несоответствием содержания журнала изменений содержимому каталога с ебилдами пакета. Потом выяснилось, что после перевода дерева на git вся история в git'е.

Danhuu написал:
Anarchist написал:

$ equery b /usr/share/man/man5/kde4-base.eclass.5.bz2 
* Searching for /usr/share/man/man5/kde4-base.eclass.5.bz2 ...
app-portage/eclass-manpages-20150814 (/usr/share/man/man5/kde4-base.eclass.5.bz2)

Если выходишь на необходимость пиления ебилдов — предмет насущной необходимости.

А вот за это - огромное спасибо!!! Ни в хендбуке, ни в вики в разделах про ебилды и прочие напильники упоминаний о таком действительно важном пакете я не видел.

Здесь полезно вспомнить прекрасную историю с утверждением формата офф. вики (фиксирующего первичность языка единственной демократически-легитимной империи и «отсутствие» совершенно ничтожной «проблемы кодировок»). Особенно занимательно этот факт смотрится на фоне наблюдений академика П.А. Кропоткина (смотри курс лекций по русской литературе) с иллюстрацией в виде истории лженауки кибернетики.

Danhuu написал:
Хотя, может, плохо смотрел. Всегда думал, что маны идут как составная часть пакета (здесь - portage).

Ну дык базовые страницы руководства (emerge, portage, ebuild) там есть.
А упомянутый пакет — это уже расширение разработчика.

:wq
--
Live free or die

Danhuu написал:
Т.е., если я правильно понял, po ищется в корне распакованных сорцов, а в реале оно rkward-0.6.3/i18n/po/. Так что надо прописать KDE_LINGUAS_DIR = "${S}/i18n/po"

Использование полных путей может привести к сюрпризам в процессе эксплуатации.
Потому, с учётом текущего каталога (man 5 ebuild → «src_prepare: … Initial working directory: $S») я бы сначала попробовал значение "i18n/po".

:wq
--
Live free or die

Изменил ебилд:

EAPI=5

KDE_DOC_DIRS="doc"
KDE_HANDBOOK="optional"
KDE_LINGUAS="ca cs da de el es fr it lt pl tr zh_CN"
KDE_LINGUAS_DIR="i18n/po"

inherit kde4-base

DESCRIPTION="IDE for the R-project"
HOMEPAGE="https://rkward.kde.org/"
SRC_URI="http://download.kde.org/stable/rkward/${PV}/src/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="4"
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
IUSE="debug"

DEPEND="
dev-lang/R
$(add_kdebase_dep katepart)"
RDEPEND="${DEPEND}"

src_configure() {
# to have it compatible with R which had a bad R_HOME
unset R_HOME
kde4-base_src_configure
}

src_install() {
kde4-base_src_install
# avoid file collision with kate
rm "${ED}"/usr/share/apps/katepart/syntax/r.xml || die
}

Теперь валится с вообще непонятной руганью: https://bpaste.net/show/bf96ad4f0d9a

Danhuu написал:
Теперь валится с вообще непонятной руганью: https://bpaste.net/show/bf96ad4f0d9a

Как это «непонятной»?!?
Всё ясно показано.
По умолчанию, как ты сам вычитал, для локализации ищется каталог po в корне (в смысле: в текущем рабочем каталоге, ${S}).
Но там его нэма…

ЗЫ:

$ diff -Naur rkward-0.6.3.ebuild rkward-0.6.3-r1.ebuild
--- rkward-0.6.3.ebuild 2015-11-27 13:42:38.045138604 +0300
+++ rkward-0.6.3-r1.ebuild 2015-11-27 13:42:24.940926446 +0300
@@ -6,7 +6,7 @@
KDE_DOC_DIRS="doc"
KDE_HANDBOOK="optional"
KDE_LINGUAS="ca cs da de el es fr it lt pl tr zh_CN"
-KDE_LINGUAS_DIR="i18n/po"
+KDE_LINGUAS_DIR="i18n"

inherit kde4-base

И можно переходить к следующей части марлезонского балета ☺

ЗЗЫ: Начиная ЕМНИП с EAPI 4 вместо kde4-base_src_configure и прочих kde4-base_src_install можно писать просто default.

:wq
--
Live free or die

Таки да, оно собралось и заработало, спасибо за помощь!
Теперь собраться с силами и запилить баги в багзиллы ☺. В самой программе в стабильной версии глюков в хелпе меньше (2 из 5 замеченных в git-версии), но лог их беднее. Основные свои функции прекрасно выполняют обе версии.

Danhuu написал:
Теперь собраться с силами и запилить баги в багзиллы ☺.

Мелко ☺
Надо ставить цель коммита в дерево ☺

Тема «=sci-mathematics/rkward-0.6.3 version bump».
Прикладываешь с ненулевой вероятностью не сам ебилд, а

$ diff -Naur rkward-0.6.1.ebuild rkward-0.6.3.ebuild

При отсутствии желаемой реакции в течение недели можно ловить товарища Pinkbyte. Он у нас вожатый proxy.

Danhuu написал:
В самой программе в стабильной версии глюков в хелпе меньше (2 из 5 замеченных в git-версии), но лог их беднее.

Здесь уже вопросы к апстриму.
Ну и если полагаешь правильным, к тому же багу можно приложить и рабочий ебилд live-версии.

:wq
--
Live free or die

Anarchist написал:
ЗЗЫ: Начиная ЕМНИП с EAPI 4 вместо kde4-base_src_configure и прочих kde4-base_src_install можно писать просто default.

Потыкался в devmanual, man и неск. ебилдов из kde-apps, не нашёл такого. Можешь ткнуть конкретно?

Danhuu написал:
Anarchist написал:
ЗЗЫ: Начиная ЕМНИП с EAPI 4 вместо kde4-base_src_configure и прочих kde4-base_src_install можно писать просто default.

Потыкался в devmanual, man и неск. ебилдов из kde-apps, не нашёл такого. Можешь ткнуть конкретно?

Могу.
Ибо интерес в культуре работы с традиционной справочной подсистемой.

Кстати, я был не вполне точен:
$ man 5 ebuild:


HELPER FUNCTIONS
Phases:
default
Calls the default phase function implementation for the currently executing phase. This function is supported
beginning with EAPI 2.

Update: Извини, был не прав. default является синонимом умолчательной реализации функции и не переопределяется (т.е. не является синонимом переопределённой в еклассе реализации функции фазы).
Т.е. в текущей действительности переопределения стандартных функций правильные.

:wq
--
Live free or die

В качестве дополнительного квеста по ебилдингу вместе с заделом могу рекомендовать попробовать зопилить универсальный ебилд (позволяющий получить -9999 версию простым переименованием).
В качестве примера можно посмотреть на =dev-db/tora-9999.

:wq
--
Live free or die