LINUX.ORG.RU

Мой первый ебилд: droidpad

 droidpad, ,


0

1

Решил опробовать такую штуку, как droidpad. Ебилда не нашел ни в оверлеях, ни в гугле, так что решил написать свой. Дело оказалось не очень муторным, и спустя полчаса чтения гайда и работы в виме ебилд был готов. Но работает ли он? Вот сам app-mobilephone/droidpad-1.1.ebuild: (как язык вставил bash, как самый похожий на ебилд)

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4

DESCRIPTION="DroidPad lets you use an Android mobile to control a joystick or mouse on a Windows or Linux computer. This is the Linux (mainly Ubuntu) client."
HOMEPAGE="https://launchpad.net/droidpad-linux"
SRC_URI="https://launchpad.net/droidpad-linux/1.0/${PV}/+download/${PF}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS=""
IUSE=""

DEPEND=""
RDEPEND="${DEPEND}"

src_install() {
  emake DESTDIR="${D}" install || die "make install failed"
  dodoc ChangeLog README
}
Выполнять не рискну. Не сомневаюсь, что я где-то да ляпнул. Да и как лучше тестировать ебилды на работоспособность кроме ВМ и chroot? И что делать с зависимостями?


Ответ на: комментарий от Kadi

Нет, я кину его в /usr/local/portage/***/*** и установлю через обычный emerge. Я знаю, что надо делать с ебилдами

nic11
() автор топика

а чо бояться?
ebuild /path/to/your-version.ebuild install
потом смотрим что оно собралось запилить в корень в /vat/tmp/portage/${CATEGORY}/${PN}-${PV}/image/
чо тут страшного?

megabaks ★★★★
()
Ответ на: комментарий от nic11

тут верить ни во что не надо
на стадии install оно сначала всё устанавливаемые файлы скопирует в диру image
и только на стадии qmerge/merge запилит в корень
+ не даст изменить файлы других пакетов даже при установке в корень
покури чтоль как это всё работает...

megabaks ★★★★
()
Ответ на: комментарий от nic11

Нашел в багах патч, подключу к ебилду

nic11
() автор топика
Ответ на: комментарий от megabaks

Если не даст изменить файлов, то я рад этому и смело буду пробовать ебилд

nic11
() автор топика

И почему, кстати, у ебилда нет dry-run режима?

dmitry_malikov ★★
()
Ответ на: комментарий от Lighting

Последним я как-раз руководствуюсь, но все равно странная ошибка компиляции. Будто бы патч и вовсе не применялся

nic11
() автор топика
Ответ на: комментарий от nic11

Я пробовал сделать компиляцию с патчем вручную - все работало, а тут ошибка компиляции, описанная в том самом баге

nic11
() автор топика
Ответ на: комментарий от nic11

Сделал костыль - заработало. Вот ебилд, если кому нужен:

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4

DESCRIPTION="DroidPad lets you use an Android mobile to control a joystick or mouse on a Windows or Linux computer. This is the Linux (mainly Ubuntu) client."
HOMEPAGE="https://launchpad.net/droidpad-linux"
SRC_URI="https://launchpad.net/droidpad-linux/1.0/${PV}/+download/${PF}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64" # приходится разрешать keyword **, надо исправить..
IUSE=""

DEPEND="" # надо будет это исправить
RDEPEND="${DEPEND}"

src_prepare() {
  #epatch "${FILESDIR}/droidpad-statfuncs.patch"
  #и теперь делаем костыль
  cp "${FILESDIR}/droidpad-statfuncs.patch" "${S}"
  patch -p1 < droidpad-statfuncs.patch || "patch failed"
}

src_install() {
  emake DESTDIR="${D}" install || die "make install failed"
  dodoc ChangeLog README
}

nic11
() автор топика
Ответ на: комментарий от nic11

Судя по

KEYWORDS=«amd64» # приходится разрешать keyword **, надо исправить..

у тебя x86, мб тогда так попробуй:

KEYWORDS=«x86 amd64»

anonymous
()
Ответ на: комментарий от anonymous

можно.. проглядел такую возможность.. но это же костыль :)

nic11
() автор топика
Ответ на: комментарий от nic11

установил. Подключается X, Y меняются. Только вот в supertux2 не определилось ни одного джойстика. Может нужен USE-флаг?

nic11
() автор топика
Ответ на: комментарий от anonymous

Наверное лучше бы не...

KEYWORDS=«x86 amd64»

а всё-таки KEYWORDS=«x86 amd64 ~x86 ~amd64». Тогда для всех видов писюков оно должно подойти и будет без разницы стоит стабильная или нестабильная ветка.

KEYWORDS=«*» лучше не нужно, т.к. на PowerPC (например) оно же запускаться не должно?

mr_noone
()
Ответ на: Наверное лучше бы не... от mr_noone

KEYWORDS=«x86 amd64 ~x86 ~amd64»

Почему-то выглядит как бред.

на PowerPC (например) оно же запускаться не должно?

Если честно понятия не имею. Прога не моя, я просто написал ебилд.

nic11
() автор топика

Запаковал ебилд (патч в комплекте): http://dl.dropbox.com/u/76426543/droidpad-portageroot.tar.gz. Ложим в корень вашего локального оверлея. Затем cd в него и от рута:

ebuild app-mobilephone/droidpad/droidpad-1.1.ebuild manifest
Ебилд написан немного криво, но все-же работает. Пока что приоритеты - это зависимости и ключевые слова. Патч, пусть и с костылем, но работает. Как лучше сделать?

nic11
() автор топика
Ответ на: комментарий от nic11

Не совсем...

Почему-то выглядит как бред.

...это бред. Здесь Вы чётко оговариваете на каких архитектурах это работать должно. http://devmanual.gentoo.org/keywording/index.html

В случае, если Вы не станете указывать «~чего-то», Ваш ebuild не установится у тех, кто использует тестовые ветки дистрибутива.

mr_noone
()
Ответ на: Не совсем... от mr_noone

Действительно, KEYWORDS=«x86 amd64 ~x86 ~amd64» работает. Обновлю свой архив.

nic11
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.