debian/rules:161: рецепт для цели 'config.status' не удался

Первоначально я опубликовал это несколько дней назад на askubuntu @ https://askubuntu.com/questions/1044708/debian-rules161-recipe-for-target-config-status-failed

К сожалению, мне не удалось получить какие-либо ответы. Поэтому ищите помощь в StackOverflow.

Я пытаюсь собрать пакет deb для collect-pw. Верхний tar-шар: http://perfwatcher.free.fr/download/collectd/collectd-5.4.0.20150311.tar.gz

Для создания этого пакета я взял исходный пакет для collectd из репозитория Ubuntu и изменил имя пакета в debian/control и debian/changelog.

Теперь, когда я запускаю pdebuild (или debuild ради этого), происходит сбой с ошибкой ниже:

configure: exit 1
debian/rules:161: recipe for target 'config.status' failed
make: *** [config.status] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Я не могу понять, что здесь не так. Ошибка является общей ошибкой. Если я запускаю ./configure, make, то сборка идет нормально.

Вот соответствующие строки из debian/rules

160 config.status: configure
161         dh_testdir
162
163         PKG_CONFIG_PATH="$(CURDIR)/debian/pkgconfig:$$PKG_CONFIG_PATH" \
164         ./configure $(confflags) CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
165                 JAVAC="$(JAVAC)" JAR="$(JAR)" JAVA_CPPFLAGS="$(JAVA_CPPFLAGS)" \
166                 JAVA_LDFLAGS="$(JAVA_LDFLAGS)" \
167                 || ( status=$$?; cat config.log; exit $$status )

Можете ли вы помочь с любыми указателями на то, что здесь может быть не так? ИЛИ Любое предложение предоставить подробную информацию об ошибке было бы полезно, потому что configure: exit 1 не дает достаточно информации, чтобы действовать.

Кстати, у меня export DH_VERBOSE=1 включено в debian/rules.

ОБНОВЛЕНИЕ:

Как предложил @GiacomoCatenazzi:

  • Да, я могу успешно запустить dh_testdir.
  • Я запустил make с debian/rules в качестве make-файла и включенным подробным описанием как make -d -f debian/rules. На этот раз снова произошел сбой на том же шаге config.status с добавлением еще 2 строк отладки, которые я не мог понять.

Вот последние несколько строк вывода вышеуказанной команды make:

...
...
...
#define HAVE_PLUGIN_VSERVER 1
#define HAVE_PLUGIN_WIRELESS 1
#define HAVE_PLUGIN_WRITE_GRAPHITE 1

configure: exit 1
Reaping losing child 0x1a103d0 PID 27476
debian/rules:161: recipe for target 'config.status' failed
make: *** [config.status] Error 1
Removing child 0x1a103d0 PID 27476 from chain.
  • После запуска он создал config.log, содержащий около 30 тыс. строк.

Последние несколько строк журнала выглядят следующим образом:

29303 #define HAVE_PLUGIN_WIRELESS 1
29304 #define HAVE_PLUGIN_WRITE_GRAPHITE 1
29305
29306 configure: exit 1

Здесь тоже нет полезной информации :(

ОБНОВЛЕНИЕ:

Как предложил @Stephen Kitt, весь config.log доступен здесь: http://pasted.co/3767a043


person slayedbylucifer    schedule 12.06.2018    source источник
comment
Что это за статус dh_testdir? Не могли бы вы запустить make, используя debian/rules в качестве файла Makefile и config.status в качестве цели, а также с подробным флагом.   -  person Giacomo Catenazzi    schedule 12.06.2018
comment
Не могли бы вы опубликовать полный config.log где-нибудь? В нем будет указана причина ошибки, но ее может быть трудно найти.   -  person Stephen Kitt    schedule 15.06.2018
comment
Спасибо за ваше время @Stephen. Я добавил config.log в тему.   -  person slayedbylucifer    schedule 15.06.2018
comment
exit 1 выглядит так, как будто он намеренно возвращает ошибку, и вы просто не замечаете его, когда запускаете его в интерактивном режиме, потому что обычно вы не смотрите на его код выхода, когда запускаете что-то в интерактивном режиме.   -  person tripleee    schedule 15.06.2018
comment
Не могли бы вы снова попробовать выполнить сборку с помощью pdebuild и опубликовать журнал сборки? Он хранится в файле с расширением .build в родительском каталоге исходного каталога.   -  person Stephen Kitt    schedule 15.06.2018


Ответы (1)


Конфигурация не удалась по следующей причине:

configure:59894: error: "Some plugins are missing dependencies - see the summary above for details"

Сводка не включается в журналы, но должна быть выведена на ваш терминал.

Вам нужно установить ряд пакетов, чтобы удовлетворить зависимости сборки collect-pw.

Опубликованный вами файл журнала, который, как я думаю, получен в результате ваших прямых попыток использования debian/rules, указывает на то, что многие зависимости отсутствуют, по крайней мере некоторые из них перечислены в debian/control и будут установлены pdebuild (pkg-config, libyajl-dev и другие). Поскольку сборка также не работает с pdebuild, я предполагаю, что есть зависимости, специфичные для collect-pw, которые не перечислены в debian/control для collectd; вам следует исследовать отсутствующие зависимости сборки и добавить их в debian/control (и установить их локально, если вы хотите собирать локально).

person Stephen Kitt    schedule 15.06.2018
comment
Эта информация дает мне несколько вещей, чтобы посмотреть и попробовать. Я опубликую свой результат, как я доберусь до него. Спасибо. - person slayedbylucifer; 15.06.2018
comment
Прошло более 5 дней (после этой темы, всего 2 недели), и я все еще пытаюсь исправить проблему с отсутствующими зависимостями. Я пытался настроить configure, отключить плагины... и еще несколько вещей (путем реверс-инжиниринга кода), которые я мог придумать. Я потратил на это больше времени, чем необходимо, и поэтому сдался. Я очень ценю ваш вклад, так как он помог мне понять, как работают gnu automake, autoconf, и попутно изучил много теории. Спасибо. - person slayedbylucifer; 21.06.2018