3

Чтобы собрать пакет 'thunar' в debian-wheezy, я сделал следующие шаги:

sudo apt-get build-dep thunar
sudo apt-get source thunar
cd thunar-1.2.3/debian
sudo debuild -uc -us

Пока здесь все отлично работает. Производятся некоторые пакеты .dep, которые я могу установить через dpkg.

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

sudo debuild clean
sudo debuild -uc -us

Команда clean уже предупреждает меня, что удаление многих файлов было проигнорировано. Многие локальные изменения распознаются, и мне предлагается использовать dpkg-source --commit для интеграции этих изменений ... на самом деле я еще ничего не трогал. Даже если я последую предложению, я получаю следующую ошибку в конце сборки:

....
make: *** [binary] Fehler 2
dpkg-buildpackage: Fehler: Fehler-Exitstatus von fakeroot debian/rules binary war 2
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed

Я также попытался выполнить отдельные шаги как обычный пользователь, а не как sudo ... однако в этом случае даже первый 'debuild -uc -us' завершился неудачно.

Я сделал что-то неправильно ? Как бы вы вызвали сборку + перестроение? Или, может быть, это проблема пакета «Тунар»?

1 ответ1

2

Хорошо, прочитав еще несколько уроков, я понял, как можно сделать хотя бы модификацию + сборку. Сначала я попробовал этот официальный учебник по Debian, который кажется слишком старым (dpatch не работает, как описано). Затем я попробовал этот сторонний учебник, который использует quilt для сборки патча и debuild для сборки пакета. Кажется, работает лучше.

Теперь я могу собрать патч для пакета thunar и установить его ... вот необходимые шаги:

# get some packages, needed to do a build from source
sudo apt-get install quilt build-essential fakeroot devscripts

# get the needed build dependencies of thunar
sudo apt-get build-dep thunar

# get the sources of thunar (no sudo!)
apt-get source thunar

# enter the sources
cd thunar-1.2.3

# define a patch dir for quilt
export QUILT_PATCHES=debian/patches

# apply all available thunar patches
quilt push -a

# add my own patch ( increase the trailing number in the name ! )
quilt new 03_myTestPatch.patch

# add files which you are going to modify
quilt add thunar/main.c

# modify file ( I just added a comment in my first try, nano is the editor of my choice)
# if your editor creates temporary files( e.g. main.c~), make sure to remove them when you finished editing
nano thunar/main.c

# refresh the patch and de-apply all available patches
quilt refresh
quilt pop -a

# Add some info into the changelog ( attention, this will make use of your default console-editor, which could be vi )
dch -n

# build the package ( your patch will be applied )
debuild -uc -us

# install the package ( version/CPU is OS/system-specific )
sudo dpkg -i ../thunar_1.2.3-4.1_amd64.deb

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

debuild clean
debuild -uc -us

-> Я получаю те же ошибки, что и упомянутые выше. Кажется, что clean не может удалить все файлы, которые необходимо удалить. Похоже, что это действительно проблема, специфичная для тунара.

РЕДАКТИРОВАТЬ: Теперь я знаю, что не так. Во время перекомпоновки одна папка как-то отсутствует. На данный момент я исправил ситуацию, используя скрипт и вызывая вещи вручную, а не используя автоматический debuild:

#! /bin/bash
cd thunar-1.2.3
fakeroot debian/rules clean
fakeroot debian/rules build
mkdir debian/tmp/usr/share/gtk-doc
fakeroot debian/rules binary

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .