LINUX.ORG.RU

Менее затратный способ собрать пакет

 ,


0

1

Понадобилось мне пропатчить один пакет, но там зависимости, конфликты… Не хочу с этим возиться, подготовил pkgbuild и хочу уже собрать его, но на чем его собрать без этой возни? Виртуалка тоже затратно по времени. Какие еще есть идеи?


В директории с пэкэджбилдом makepkg запустите.

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

Может и докер, надо посмотреть

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

А в чем проблема на хост системе собрать?

Не хочу разбираться с зависимостями и конфликтами.

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

А запускать-то ты его как будешь, если «не хочу разбираться с зависимостями и конфликтами»?

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

Так makepkg же сам все устанавливает, при условии, что в PKGBUILD зависимости прописаны.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от D3306

Ну и собирай «на машине», в чем проблема?

Если у тебя пакет с кривыми зависимостями собираться не хочет, то работать тем более не будет. Например, версия библиотеки неподходящая. Так что зависимости всё равно надо чинить.

wandrien ★★
()

В jabber зайди, я тебе виртуалку дал.

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

И зачем? Так сложнее же, чем просто названия пакетов в PKGBUILD прописать

d09
()

Так ты если pkgbuild подготовил, можно и на хост системе спокойно. Если через yay ставить, он вконце спросит, удалить ли неиспользуемые зависимости + сам все гиты перед этим выкачает во временную директорию, так что хлама не останется никакого в системе. Ну или если принципиально, потрать час (если с ДЕ), поставь на виртуалку арчик для всяких экспериментов, и на нём собери.

fehhner ★★★★★
()

Столько советов, и никто не упомянул aurutils.

Siborgium ★★★★★
()

на чем его собрать без этой возни?

На том же устройстве, на котором подготовил pkgbuild :)

пропатчить один пакет, но там зависимости, конфликты…

Если это существующий «пакет», то зависимости скорее всего те же останутся.

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

Огромное спасибо за ссыль! Но возник вопрос: как узнать применился ли патч? Вопрос возник из-за того, что я не вижу отличий «до» и «после», хотя должен. Как собственно это проверить?

Подготовил chroot:

CHROOT=$HOME/chroot
mkarchroot $CHROOT/root base-devel
arch-nspawn $CHROOT/root pacman -Syu

Далее получаю PKGBUILD:

asp export mutter

Добавляю в source ссыль на патч, в sha256sums добавляю ‘SKIP’, потом дописываю функцию:

prepare() {
    cd $pkgname
    patch --forward --strip=1 --input=../0003-Fix-glitches-in-gala.patch
}

На всякий выложу полный PKGBUILD сюда.

Из директории, где лежит PKGBUILD запускаю makechrootpkg -c -r $CHROOT

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

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

как узнать применился ли патч

так он в лог и на экран пишет, что вызывает prepare() и далее будет вывод команды patch

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

У тебя в PKGBUILD’е две функции prepare (), перенеси первую на место второй и собирай. В выхлопе/или в файле mutter-****-prepare.log будет строчка patching file clutter/clutter/clutter-actor.c значит всё хорошо.

Если хочешь, можешь посмотреть исходники на предмет изменений /chroot/USER/build/mutter/src/mutter/clutter/clutter/clutter-actor.c.

PS. Патч может быть «дистроспецифичным» и не работать на арче.

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