[Решено] 2 вопроса по написанию ебилдов

Есть рабочий ебилд для программы Cuneiform-Qt:

inherit qt4 git

EGIT_REPO_URI="git://git.altlinux.org/people/cas/packages/cuneiform-qt.git"

DESCRIPTION="Qt interface for Cuneiform"
HOMEPAGE="http://www.altlinux.org/Cuneiform-Qt"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

DEPEND=">=x11-libs/qt-4.5
	app-text/cuneiform"
RDEPEND="${DEPEND}"

src_compile () {
	cd "${S}/cuneiform-qt"
	sed 's/\/share\/apps\/cuneiform-qt\//\/share\/cuneiform-qt\//' -i cuneiform-qt.pro
	PREFIX="/usr" eqmake4
	emake
}

src_install() {
	cd "${S}/cuneiform-qt"
	dodoc AUTHORS README TODO
	INSTALL_ROOT="${D}" emake DESTDIR="${D}" install
}
  1. Я хочу сделать ебилд не для последней версии из git, а для конкретного среза. На сайте есть ссылки вида http://git.altlinux.org/people/cas/packages/?p=cuneiform-qt.git;a=snapshot;h=4c67c9fbb32d8412c7d7a194f537cbc1db2cb85d;sf=tgz, с которых отдаются файлы с именами вида cuneiform-qt-4c67c9fbb32d8412c7d7a194f537cbc1db2cb85d.tar.gz, но wget это имя не распознаёт и сохраняет архив в /usr/portage/distfiles/ как ?p=cuneiform-qt.git;a=snapshot;h=4c67c9fbb32d8412c7d7a194f537cbc1db2cb85d;sf=tgz. Функция unpack такой файл за архив не считает, а если вызывать просто tar, он этот файл не видит.

    Как это обойти? Как переименовать файл после скачивания или задать unpack тип архива tar.gz?

  2. При скачивании из git в ${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work/${P}/ создаётся директория cuneiform-qt. Чтобы заработали qmake и make им надо говорить сменить директорию. Если же с самого начала задать S="${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work/${P}/cuneiform-qt/", то cuneiform-qt создастся уже внутри неё.

    Что сделать, чтобы не было необходимости в начале каждой функции писать cd "${S}/cuneiform-qt"?

UPD: Окончательные варианты: http://bugs.gentoo.org/attachment.cgi?id=190073 и http://bugs.gentoo.org/attachment.cgi?id=190075 отправились в Санрайз: http://bugs.gentoo.org/show_bug.cgi?id=267746

По первому вопросу

По первому вопросу посоветовали использовать EAPI=2 и стрелки (SRC_URI Arrows).

UPD: Однако выяснилось, что снапшоты на http://git.altlinux.org/ пакуются gzip-ом с настройками по умолчанию, поэтому содержат время создания. Поэтому контрольные суммы всегда различны. Если бы паковалось с ключом -n, трюк со стрелками был бы возможен. А так пришлось создавать сайт на Sourceforge: https://sourceforge.net/projects/cuneiform-qt/

по второму вопросу видимо

по второму вопросу видимо нужно сделать переопредение ${S} вроде такого:

S=${WORKDIR}/${P}/${PN}-qt

или как-то так.

В таком случае создаёт

В таком случае создаёт директорию внутри ${WORKDIR}/${P}/${PN}-qt и cd всё равно необходим.

Как переопределить S так, чтобы src_unpack пользовалось старым значением, а src_compile и src_install — новым?

скорее всего нужно как-то

скорее всего нужно как-то почеловечески сделать unpack

Мэйнтэйнер git.eclass сказал,

Мэйнтэйнер git.eclass сказал, что при имеющейся структуре git-сервера Altlinux такая директория будет создаваться всегда. Фича неотключаема. cd в начале каждой функции — наименьшее зло.

/me всегда знал что в

/me всегда знал что в altlinux сидят извращенцы.

S=${WORKDIR}/ спасет отца

S=${WORKDIR}/

спасет отца русской демсократии

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

внимательнее читаем

внимательнее читаем тред
http://gentoo.ru/node/14616#comment-103332

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

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