LINUX.ORG.RU

Делать каждый день emerge --sync и ждать когда поправят.

Deleted
()

> Что надо делать?

Регистрироваться (не делайте непонимающее лицо!) на http://bugs.gentoo.org/ и писать багрепорт.

INFOMAN ★★★★★
()

> Что надо делать?
Писать баг-репорт в генту и ставить debian

snizovtsev ★★★★★
()

>Лог сборки: http://rapidshare.com/files/112984120/1.log.html

не канает. залей на кошерный pastebin

>Что надо делать?

фиксить.

>То, что ошибки в коде scim видно, но как их поправить н совсем ясно

Алгоритм фиксенья:

1. тупо вбиваешь в гугель
а)сообщение об ошибке, самое первое, без номеров строк и конкретного пакета
б) название конкретного пакета
в) что-то типа package_name +"build error" или "compile error".

сидишь, фтыкаешь. Если просветления не наступает, фиксишь сам:

2. пробуешь пересобрать с другими USE, пытаешься выделить, что влияет на ошибку

3. пробуешь собрать ебилд руками. Вместо emerge pkg делаешь
ebuild /path/to/ebuild/pkg.ebuild unpack
ebuild /path/to/ebuild/pkg.ebuild compile
ebuild /path/to/ebuild/pkg.ebuild preinst
ebuild /path/to/ebuild/pkg.ebuild install
ebuild /path/to/ebuild/pkg.ebuild postinst
ebuild /path/to/ebuild/pkg.ebuild qmerge
ebuild /path/to/ebuild/pkg.ebuild clean

Мне иногда помогло собрать kde-base/kcontrol-3.5.9. Почему-то сборка emerge'ем выдавала ошибку -- патчи пытались накладываться из каталога patch, а распаковывались в каталог patches. ebuild --debug ... почему-то решил проблему (самому интересно, почему).

4. Пытаешься пофиксить руками -- если на 3 этапе застрял на compile.

Локализуешь ошибку, смотришь в гугель и в исходник, локализуешь причину, патчишь исходник, собираешь руками через ./configure... (посмотри выдачу при ebuild compile) && make. Это делается в каталоге /var/tmp/portage/cat-name/pkgname/work/.. (посмотри точный путь к рабочему каталогу на фазе unpack). Если ручной make прошел, ты успешно пофиксил багу в сорцах, делаешь патч. Ты же наверно не быдлокодер, и догадался после ebuld .. unpack в рабочем каталоге сделать hg init/hg add . /hg commit -m initial /hg tag v1(или git-init && git-add . && git-commit -a -m initial && git tag v1?).

вот теперь выделяешь патч: hg diff -r v1 >my-fix.diff

смотришь в этот и другие патчи, приводишь к единому виду. Ну или можно прям родные diff/patch использовать.

5. Продолжаем собирать ебилд руками. Команды с этапа 3, переход между этапами делается когда в рабочем каталоге возникают файлы .unpacked / .compiled /.intalled (посмотри точные названия при ebuild --debug ). Если есть такой файл -- переходим на след. фазу.

То есть, переход на install после compile можно форсировать так (если ручная сборка через make прошла без ошибок): touch .compiled в рабочем каталоге.

Если "собрать ебилд руками" получилось, автоматизируем это.

6. Исправляем ебилд. Вставляем туда в нужное место что-то вроде команды epatch (точный синтаксис посмотри в другом ебилде с патчами). После фазы unpack должна запуститься команда еpatch с твоим патчем (файл my-fix.diff с этапа 4).

Исправил ебилд лучше в своём локальном оверлее: копируешь из /usr/portage/cat-name/pkgname pkgname.ebuild и все остальные файлы в свой локальный оверлей, например, /usr/local/portage/cat-name/pkgname. Правишь pkgname.ebuild, говоришь в этом каталоге ему ebuild pkgname.ebuild digest.

Тестируешь: emerge -v =cat-name/pkgname-vТвояВерсия должен собраться из оверлея с твоим патчем.

7. Постишь баг и патч на багзиллу. Принимаешь поздравления от других таких же красноглазых за патч.


Ну или если пофиксить не в силах, тупо постишь баг (с emerge --info, /etc/make.conf, юзами) и ждешь, пока кто-то осилит.

Читать: man emerge, man ebuild, man portage, форумы генты, вики генты на предмет (how to make resumed emerge (like openoffice)), смотришь как работает emerge --debug ... / ebuild --debug .. unpack/compile/install/qmerge

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