[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"

Весьма странно, глаз режет :)

CMAKE_BUILD_TYPE="Release"

Почему не "Gentoo" ? :)

if use qt4 && ! use wxwidgets; then
		mycmakeargs="-D GUI=QT"
	elif use wxwidgets && ! use qt4; then

Эти 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 написал(а): пока

slepnoga написал(а):
пока размышляешь - поправь ебилд :) и приучись юзать репоман
Депенд ? ( >=x11-libs/wxGTK-2.8 ) требует в обязательном порядке подключения wxwidgets.eclass

Ты первый :)
Приучись учитывать Фактор Времени.
На момент написания ебилда он на это не ругался

slepnoga написал(а):
и как юзер prefix, прошу переписать на >=EAPI=3

mkdir ${S}
	cd "${S}" || die "failed to cd to build dir"

Какую доку порекомендуешь?
Или традиционно: геть the force...
Пробовал как-то dosed задействовать... Не получилось.

slepnoga написал(а):
if use qt4 && ! use wxwidgets; then
		mycmakeargs="-D GUI=QT"
	elif use wxwidgets && ! use qt4; then

Эти 2 флага точно не блочат друг друга ? :)

Должны.
Но кашу маслом не испортишь. :)

: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 ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".