[Решено] 2 вопроса по написанию ебилдов
acheron 9 апреля, 2009 - 08:43
Есть рабочий ебилд для программы 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 }
- Я хочу сделать ебилд не для последней версии из 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?
- При скачивании из 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} вроде такого:
или как-то так.
В таком случае создаёт
В таком случае создаёт директорию внутри ${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