LINUX.ORG.RU

[gentoo] Как заemergить исходники, но не устанавливать?

 


0

1

Задача: хочу посмотреть и, возможно, сделать патч для плейера moc.

Проблема: moc уже установлен. Как мне скачать _именно те_ исходники, которые _установились_? В ebuild-e написано такое:

SRC_URI="ftp://ftp.daper.net/pub/soft/${PN}/unstable/${MY_P}.tar.bz2"

Я могу, конечно, скачать тарбол в обход emerge, но хотелось бы воспользоваться нормальным существующим методом, который мне пока не известен.

Флаг --fetch-only вроде бы по смыслу подходит, но, написав, его никаких сорцов не скачивается. Так что делает сей флаг?

В результате, как я понимаю, будет патч, который за-epatch-ится через изменный ebuild. Но как это сделать правильно, без костылей?

★★

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

Не понял.

Думал, надо сделать так:

mamburu moc-2.5.0_alpha4 # pwd
/var/db/pkg/media-sound/moc-2.5.0_alpha4
mamburu moc-2.5.0_alpha4 # ebuild moc-2.5.0_alpha4.ebuild fetch
mamburu moc-2.5.0_alpha4 # ls -a
.           CATEGORY  CHOST     CXXFLAGS        DESCRIPTION      FEATURES  KEYWORDS  moc-2.5.0_alpha4.ebuild  PF          SIZE
..          CBUILD    CONTENTS  DEFINED_PHASES  EAPI             HOMEPAGE  LDFLAGS   NEEDED                   RDEPEND     SLOT
BUILD_TIME  CFLAGS    COUNTER   DEPEND          environment.bz2  IUSE      LICENSE   NEEDED.ELF.2             repository  USE
mamburu moc-2.5.0_alpha4 # 

Но после «ebuild ... fetch» ничего не появляется и не пишется. Может, исходники уже где-то скачаны и лежат? Тогда где?

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

Тарбол лежит в /usr/portage/distfiles, верно? Я его должен разархивировать - это будут искомые сорцы?

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

> это все, что установлено в моей системе?
ls * /var/db/pkg/

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

> Только почему portage хранит архивы исходников после установки, а не удаляет их?
Нуу ... для перекомпиляции. +eclean тебе поможет.

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

> Только почему portage хранит архивы исходников после установки, а не удаляет их?
а apt так не делает?(исходники -> бинари)

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

потому что завтра может выйти имяпакета-версия-r1 и чтобы не качать сорцы по новой, они лежат там где лежат. на предмет, что уж точно никому из поставленных они не нужны, определяет eclean-dist -dp например

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

Нуу ... для перекомпиляции

А такая ситуация: в портеже появилась новая версия libreoffice 3.4. Если я верно понимаю, скачается новый архив с 3.4 и будет компиляться с нуля, верно?

А ведь возможен патчинг сорцов LO3.3 -> 3.4, и тогда перекомпиляция ненужных файлов будет отсутствовать?

eclean тебе поможет.

Понял.

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

Но после «ebuild ... fetch» ничего не появляется и не пишется. Может, исходники уже где-то скачаны и лежат? Тогда где?

fetch скачивает исходник в /usr/portage/distfiles (если ты не указал другой путь в make.conf). Если у тебя moc уже установлен, то исходник скорее всего уже скачан.

Если выполнить

ebuild /path/to/something-1.2.3.ebuild unpack
то исходники распакуются в /usr/tmp/portage/*/*/work. Действие prepare наложит патчи, прописанные в ебилде. При установке emerge просто вызывает последовательно все эти действия для ебилдов. Смысл в том, что вызывая эти же действия вручную можно установить в систему пакет с собственным патчем, не прописывая его в ebuild и не засоряя систему. Это может быть полезно при тестировании патча.

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

> А такая ситуация: в портеже появилась новая версия libreoffice 3.4. Если я верно понимаю, скачается новый архив с 3.4 и будет компиляться с нуля, верно?
Верно

А ведь возможен патчинг сорцов LO3.3 -> 3.4, и тогда перекомпиляция ненужных файлов будет отсутствовать?

Патчинг сырцов можно сделать через getdelta. Имеет смысл только если узкий/дорогой канал в интернет.

Про перекомпиляцию ненужных файлов не совсем понял. Такое даже руками сложновато сделать. Если часть исходников действительно не изменилась, то ccache может помочь ускорить компиляцию.

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