Как присвоить значение переменной для утилиты make?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Как присвоить значение переменной для утилиты make?

Сообщение жучара »

Друзья! Собираю пакет virtualbox и команда dpkg-buildpackage -us -uc мне постоянно выдаёт такую ошибку:

Shell

Config.kmk:7021: *** VBox: VBOX_BUILD_PUBLISHER must not be longer than 10 characters!. Stop.
debian/rules:59: ошибка выполнения рецепта для цели «override_dh_auto_build»
...

Config.kmk:7021: *** VBox: VBOX_BUILD_PUBLISHER must not be longer than 10 characters!. Stop.
debian/rules:59: ошибка выполнения рецепта для цели «override_dh_auto_build»
make[1]: *** [override_dh_auto_build] Ошибка 2
make[1]: выход из каталога «/home/user/virtualbox/virtualbox-5.2.24-dfsg»
debian/rules:35: ошибка выполнения рецепта для цели «build»
make: *** [build] Ошибка 2
dpkg-buildpackage: ошибка: debian/rules build возвратил код ошибки 2
user@astra:~/virtualbox/virtualbox-5.2.24-dfsg$
В общем, всё плохо. Мне нужно какое-нибудь значение присвоить переменной VBOX_BUILD_PUBLISHER, чтобы оно было меньше 10-ти символов. Как это сделать правильно, я не знаю (вернее сказать, не знаю, в каком месте это сделать правильно), но пока предполагаю, можно присвоить значение перед проверкой её длины. Открываю файл Config.kmk, там где проводится проверка длины переменной:
VBOX_VERSION_COMP_VALID_CHAR_SET = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz()[]{}+-.,
ifneq ($(VBOX_BUILD_PUBLISHER),)
if $(length $(VBOX_BUILD_PUBLISHER)) > 10
$(error VBox: VBOX_BUILD_PUBLISHER must not be longer than 10 characters!)
endif
if "$(substr $(VBOX_BUILD_PUBLISHER), 1, 1)" != "_"
$(error VBox: VBOX_BUILD_PUBLISHER must start with an underscore!)
endif
if "$(translate $(substr $(VBOX_BUILD_PUBLISHER),2),$(VBOX_VERSION_COMP_VALID_CHAR_SET),)" != ""
$(error VBox: VBOX_BUILD_PUBLISHER='$(VBOX_BUILD_PUBLISHER)' contains bad characters! Valid set is:$(NLTAB)$(VBOX_VERSION_COMP_VALID_CHAR_$
endif
endif
Вот и всё, непосредственно перед проверкой присвою переменной VBOX_BUILD_PUBLISHER какое-нибудь значение
(то есть добавлю в файл Config.kmk такие строчки:
$(info VBOX_BUILD_PUBLISHER is $(VBOX_BUILD_PUBLISHER))
VBOX_BUILD_PUBLISHER = MYVIRT
$(info VBOX_BUILD_PUBLISHER is $(VBOX_BUILD_PUBLISHER))
)
и выведу его заодно:
VBOX_VERSION_COMP_VALID_CHAR_SET = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz()[]{}+-.,
$(info VBOX_BUILD_PUBLISHER is $(VBOX_BUILD_PUBLISHER))
VBOX_BUILD_PUBLISHER = MYVIRT
$(info VBOX_BUILD_PUBLISHER is $(VBOX_BUILD_PUBLISHER))
ifneq ($(VBOX_BUILD_PUBLISHER),)
if $(length $(VBOX_BUILD_PUBLISHER)) > 10
$(error VBox: VBOX_BUILD_PUBLISHER must not be longer than 10 characters!)
endif
if "$(substr $(VBOX_BUILD_PUBLISHER), 1, 1)" != "_"
$(error VBox: VBOX_BUILD_PUBLISHER must start with an underscore!)
endif
if "$(translate $(substr $(VBOX_BUILD_PUBLISHER),2),$(VBOX_VERSION_COMP_VALID_CHAR_SET),)" != ""
$(error VBox: VBOX_BUILD_PUBLISHER='$(VBOX_BUILD_PUBLISHER)' contains bad characters! Valid set is:$(NLTAB)$(VBOX_VERSION_COMP_VALID_CHAR_$
endif
endif
Это дело я делаю с применением патчей, так что всё нормально с этой стороны. Потом командую dpkg-buildpackage -us -uc и вот такое вот наблюдаю:

Shell

VBOX_BUILD_PUBLISHER is _AstraLinuxCE
VBOX_BUILD_PUBLISHER is _AstraLinuxCE
Config.kmk:7024: *** VBox: VBOX_BUILD_PUBLISHER must not be longer than 10 characters!. Stop.
debian/rules:59: ошибка выполнения рецепта для цели «override_dh_auto_build»
make[1]: *** [override_dh_auto_build] Ошибка 2
make[1]: выход из каталога «/home/user/virtualbox/virtualbox-5.2.24-dfsg»
debian/rules:35: ошибка выполнения рецепта для цели «build»
make: *** [build] Ошибка 2
dpkg-buildpackage: ошибка: debian/rules build возвратил код ошибки 2
user@astra:~/virtualbox/virtualbox-5.2.24-dfsg$


То есть переменной VBOX_BUILD_PUBLISHER присвоено значение _AstraLinuxCE и оно не переприсваивается. Я уж всяко пробовал:

VBOX_BUILD_PUBLISHER=MYVIRT
VBOX_BUILD_PUBLISHER := MYVIRT

Бесполезно. ЧЯДНТ? Спасибо, кто откликнется. Астралинукс, Орёл 2.12.43
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как присвоить значение переменной для утилиты make?

Сообщение Bizdelnick »

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить