[Solved] Проверка значения eselect-* в ебилде
Дополз-таки до самообразования :)
Выяснилось, что товарищи уже почти всё сделали. Это "почти" и хочу исправить :)
Есть приложение (CoolReader3, ебилд взял с багзиллы).
Сочинил ебилд следующего содержания. coolreader3-9999.ebuild
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="2"
EGIT_REPO_URI="git://crengine.git.sourceforge.net/gitroot/crengine/crengine"
inherit cmake-utils git
HYP_ARCH="AlReader2.Hyphen.zip"
DESCRIPTION="CoolReader - reader of eBook files (fb2,epub,htm,rtf,txt)"
HOMEPAGE="http://www.coolreader.org/"
SRC_URI=""
LICENSE="GPLv2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="qt4 +wxwidgets hyphen"
RDEPEND="media-fonts/corefonts"
DEPEND="sys-libs/zlib
media-libs/libpng
media-libs/jpeg
media-libs/freetype
wxwidgets? ( >=x11-libs/wxGTK-2.8 )
qt4? ( x11-libs/qt-core:4
x11-libs/qt-gui:4 )
hyphen? ( app-arch/unzip )"
src_unpack() {
git_src_unpack
if use hyphen; then
unpack ${HYP_ARCH}
fi
mkdir ${S}
cd "${S}" || die "failed to cd to build dir"
# fix for amd64
if use amd64; then
sed -e 's/unsigned int/unsigned long/g' -i "${WORKDIR}/${P}/crengine/src/lvdocview.cpp" \
|| die "patching lvdocview.cpp for amd64 failed"
fi
}
src_configure() {
CMAKE_USE_DIR="${WORKDIR}"/"${SRC_UNPACK}"/"${P}"
CMAKE_BUILD_TYPE="Release"
if use qt4 && ! use wxwidgets; then
mycmakeargs="-D GUI=QT"
elif use wxwidgets && ! use qt4; then
. "${ROOT}/var/lib/wxwidgets/current"
if [[ "${WXCONFIG}" -eq "none" ]]; then
die "The wxGTK profile should be selected!"
fi
mycmakeargs="-D GUI=WX"
else
die "Only one GUI must be selected"
fi
cmake-utils_src_configure
}
src_install() {
cmake-utils_src_install
if use hyphen; then
cd ${WORKDIR}
insinto /usr/share/crengine
find . -name "*hyphen*pdb" -exec \
doins {} \;
fi
dosym ../fonts/corefonts /usr/share/crengine/fonts
dodoc "${FILESDIR}/README"
}
Собственно, вопросы:
1. Насколько я помню, автоматическая отработка eselect в ебилде не есть правильно...
Update: Но местами присутствует. Сделано в обход, т.е. без явного вызова eselect'а.
2. В какой функции место для этой проверки (с учётом того, что положительный результат является необходимым условием компилляции): src_prepare() или src_configure()?
Update: repoman в помощь :)
3. Где бы (в смысле: в каком ебилде) подсмотреть как оно делается?
Update: Идея проверки подсмотрена в ебилде eselect-wxwidgets.
ЗЫ: Ну и попутно вопрос: как в системе обнулить значение eselect-* в случае, если список состоит из одной позиции (для полноценной проверки)?
emerge -av1 eselect-blah прокатит?
Update: Ни фига! Для этого есть (надо использовать) ключевое слово 'none'..
- Для комментирования войдите или зарегистрируйтесь

.
Некоторое время (ЕМНИП почти весь июль) -9999 версия не собиралась с актуальными версиями
libpng.В конце июля патч был включён в основную ветку, ебилд снова работает.
:wq
--
Live free or die
.
qt-версия приложения локализована.
Но, благодаря известной баге qt (подробности здесь) в нормальном (рекомендованном) режиме локализации Gentoo GNU/Linux (переменная
LC_ALLне задана) приложение всё равно запускается с аглицким интерфейсом.Решить можно например поменяв строку запуска приложения на:
$ LC_ALL=ru_RU.KOI8-R cr3(можно прописать соответствующий alias в
~/.bashrc, но запуска через gui оно не исправит, другие варианты решения можно посмотреть в этой теме)Лениво размышляю на предмет правки desktop-файла (в ебилде).
:wq
--
Live free or die
пока размышляешь - поправь
пока размышляешь - поправь ебилд :) и приучись юзать репоман
Депенд ? ( >=x11-libs/wxGTK-2.8 ) требует в обязательном порядке подключения wxwidgets.eclass, и как юзер prefix, прошу переписать на >=EAPI=3
mkdir ${S} cd "${S}" || die "failed to cd to build dir"Весьма странно, глаз режет :)
Почему не "Gentoo" ? :)
Эти 2 флага точно не блочат друг друга ? :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga написал(а): пока
Ты первый :)
Приучись учитывать Фактор Времени.
На момент написания ебилда он на это не ругался
Какую доку порекомендуешь?
Или традиционно: геть the force...
Пробовал как-то
dosedзадействовать... Не получилось.Должны.
Но кашу маслом не испортишь. :)
:wq
--
Live free or die
http://www.gentoo.org/proj/en
http://www.gentoo.org/proj/en/gentoo-alt/prefix/ и конечно pms
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)