OpenBSD не может найти имена хостов

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

dh_gencontrol -- -Vdist:Depends=""php7.0, php7.0-opcache, ...""

, а не (что вы хотели бы):

dh_gencontrol -- -Vdist:depends="php7.0, php7.0-opcache, ..."

это потому, что make не делает ' Если вы используете кавычки, вы дважды указываете данные в переменной (один раз при присвоении, один раз при ее использовании). Бросьте один из них.

Во-вторых, он не работает, потому что ваш файл debian / rules (как написано) не будет вызывать dh_gencontrol с дополнительными аргументами, которые вам нужны. Файл debian / rules - это Makefile ; следовательно, в нем должны быть правила make и т. д., иначе они будут проигнорированы. Что-то вроде этого делает то, что ожидается на моей машине:

#!/usr/bin/make -f
%:
        dh $@
PKGS := abcd, efgh
override_dh_gencontrol:
        dh_gencontrol -- -Vdist:Depends="$(LIBS)"

Если это все еще не дает того, что вы ожидаете, то полный пример (то есть что-то, что вы можете запустить на dpkg-buildpackage ) абсолютно неуместен. необходимо.

РЕДАКТИРОВАТЬ : у вас все еще есть двойные кавычки. Строки XENIAL_LIBS и PRE_XENIAL_LIBS заключены в кавычки. Удалить их. Кроме того, вы еще не представили пример, на который dpkg-buildpackage не будет жаловаться (во-первых, контрольный файл неполный). Не обязательно, чтобы то, над чем вы работаете, содержало секреты компании, но минимальный пример, демонстрирующий проблему, имеет важное значение. С тем, что вы предоставили до сих пор, я не могу воспроизвести вашу проблему.

EDIT2 : Ваш полный файл правил показывает, что вы используете CDBS, а не dh debhelper. Таким образом, цель override_dh_gencontrol не вызывается (это специфичная для dh вещь).Я не знаю, как CDBS справляется с переопределением отдельных команд debhelper (вот почему я не ответил на это перед отпуском, надеясь, что, возможно, кто-то другой скажет вам, что делать), но, вероятно, это что-то вроде другого CDBS_FOO_BAR переменная, которую вы должны установить. К счастью, ваш файл debian / rules достаточно прост, так что перенос из cdbs довольно прост. Примените следующий патч:

--- rules.old   2016-07-12 16:57:05.350385288 +0200
+++ rules       2016-07-12 16:58:54.456536432 +0200
@@ -1,8 +1,7 @@
 #!/usr/bin/make -f

-DEB_DH_INSTALL_ARGS=-X .svn
-
-include /usr/share/cdbs/1/rules/debhelper.mk
+%:
+       dh $@

 # Add here any variable or target overrides you need.

@@ -16,15 +15,10 @@
     PLATFORM_LIBS := $(PRE_XENIAL_LIBS)
 endif

+override_dh_install:
+       dh_install -X .svn
 override_dh_gencontrol:
        dh_gencontrol -- -Vother-depends="$(PLATFORM_LIBS)"
-
-configure: configure-stamp
-configure-stamp:
-       touch configure-stamp
-
-build: build-stamp
-build-stamp: configure-stamp
-       dh_testdir
+override_dh_auto_build:
        dpkg-parsechangelog | awk '$$0 ~ /^Version:/ {print $$2}' > version.txt
-       touch build-stamp
+       dh_auto_build

Во-первых, это удаляет включение CDBS и специфичную для CDBS переменную DEB_DH_INSTALL_ARGS , которую dh не поддерживает, и добавляет подстановочный знак Makefile целевой объект, который требуется dh вместо него. Он также добавляет цель override_dh_install , которая заменяет переменную DEB_DH_INSTALL_ARGS .

Во-вторых, это удаляет цели configure и build , а также configure-stamp и build-stamp . dh не использует их (и действительно, сохранять их вредно).

Наконец, мы добавляем еще одну цель переопределения, которая выполняет функцию dpkg-parsechangelog для создания вашего файла version.txt. Ваш фактический процесс сборки, вероятно, является чем-то другим, но это показывает вам, как его заменить.

3
09.03.2019, 14:42
0 ответов

Теги

Похожие вопросы