LINUX.ORG.RU

Ошибка выполнения Ctest при сборке пакета

 , , ,


0

1

Всем привет! Собираю пакет с эмулятором Dolphin. Всё проходит здорово, до момента запуска ctest. Вот выхлоп:

Errors while running CTest
Makefile:140: ошибка выполнения рецепта для цели «test»
make[1]: *** [test] Ошибка 8
make[1]: выход из каталога «/home/sunderland93/dolphin-emu-master-4.0+git6490/obj-x86_64-linux-gnu»
dh_auto_test: make -j1 test ARGS+=-j1 returned exit code 2
debian/rules:22: ошибка выполнения рецепта для цели «build»
make: *** [build] Ошибка 2
dpkg-buildpackage: ошибка: debian/rules build возвратил код ошибки 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Помогает только отключение тестов в rules, путём установки override_dh_auto_test без цели. Тогда пакет собирается без проблем. Файл rules в данный момент выглядит так:
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


# main packaging script based on dh7 syntax
%:
	dh $@ 

# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051 )
override_dh_auto_configure:
	dh_auto_configure -- \
	-DDOLPHIN_WC_REVISION=d36df5b1b41baf42c3b1e12a6d1631569e416b45 -DDOLPHIN_WC_DESCRIBE=4.0-6490 -DDOLPHIN_WC_BRANCH=master -Dbindir=/usr/games -Ddatadir=/usr/share/games/dolphin-emu
Подскажите, в чём может быть дело? И обязательно ли выполнять эти тесты или можно без них обойтись? Если что - вот исходники Dolphin Emulator https://launchpad.net/~glennric/ archive/ubuntu/dolphin-emu/ files/dolphin-em...

Ответ на: комментарий от Stil

Та же ошибка, та же инфа. Запускается dh_auto_test, который запускает /usr/bin/ctest --force-new-ctest-process -j1 , и в конце снова ошибка.

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

Вдогонку ещё вопрос. После сборки выводится сообщение

dpkg-shlibdeps: предупреждение: задействованы отклонения - результат может быть неправильным
 diversion by glx-diversions from: /usr/lib/x86_64-linux-gnu/libGL.so.1
dpkg-shlibdeps: предупреждение: задействованы отклонения - результат может быть неправильным
 diversion by glx-diversions to: /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
как я понял из-за того что у меня блоб Нвидии. Это важно или можно проигнорировать?

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

Дык, ты в override_dh_auto_test ключ -VV из ссылки на SO добавлять пробовал?

Просто у тебя сейчас есть только «магическая» «ошибка 8». Ни команды приведшей к, ни ругани чего-бы-то-ни-было... Поэтому сначала, имхо, надо найти что фейлится.

Касательно

И обязательно ли выполнять эти тесты или можно без них обойтись?

У тебя (на сколько я понял) версия из гита, для таких, имхо, обязательно. Но никто не может помешать тебе просто отключить тесты 😉

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

Вот что вышло

   debian/rules override_dh_auto_test
make[1]: вход в каталог «/home/sunderland93/dolphin-emu-master-4.0+git6490»
dh_auto_test -- \
-VV
make: неверный ключ — «V»
make: неверный ключ — «V»
Использование: make [КЛЮЧ]... [ЦЕЛЬ]...
Ключи:
  -b, -m                      Игнорируется для совместимости.
  -B, --always-make           Без условий отрабатывать все цели.
  -C КАТАЛОГ, --directory=КАТАЛОГ
                              Перейти в КАТАЛОГ перед выполнением действий.
  -d                          Выводить массу отладочных сообщений.
  --debug[=ФЛАГИ]             Выводить различные типы отладочной информации.
  -e, --environment-overrides
                              Переменные окружения заменяют значения makefile.
  --eval=СТРОКА               Вычислить СТРОКУ как предложение makefile.
  -f ФАЙЛ, --file=ФАЙЛ, --makefile=ФАЙЛ
                              Использовать ФАЙЛ в качестве makefile.
  -h, --help                  Показать эту справку и выйти.
  -i, --ignore-errors         Игнорировать ошибки способов.
  -I КАТАЛОГ, --include-dir=КАТАЛОГ
                              Искать включаемые make-файлы в КАТАЛОГЕ.
  -j [N], --jobs[=N]          Запускать одновременно до N заданий; 
                              если N не указано, число заданий неограничено.
  -k, --keep-going            Продолжать работу, даже если некоторые цели
                              не могут быть достигнуты.
  -l [N], --load-average[=N], --max-load[=N]         Не запускать
                               несколько заданий, если загрузка больше N.
  -L, --check-symlink-times   Использовать последнее mtime при выборе между
                              символическими ссылками и целью.
  -n, --just-print, --dry-run, --recon
                              Не применять способ на самом деле; просто
                              напечатать его.
  -o ФАЙЛ, --old-file=ФАЙЛ, --assume-old=ФАЙЛ
                              Считать ФАЙЛ очень старым и не переделывать его.
  -O[ТИП], --output-sync[=ТИП]
                              Синхронизировать вывод параллельных
                              заданий с типом ТИП.
  -p, --print-data-base       Напечатать внутреннюю базу данных make.
  -q, --question              Не применять способ;
                              код завершения показывает, всё ли уже сделано.
  -r, --no-builtin-rules      Не использовать встроенные неявные правила.
  -R, --no-builtin-variables   Выключить установку встроенных
                              значений переменных.
  -s, --silent, --quiet        Не показывать сами способы.
  -S, --no-keep-going, --stop
                              Отменить ключ -k.
  -t, --touch                 Установить время доступа целей в текущее,
                              а не пересобирать их.
  --trace                     Выводить трассировочную информацию.
  -v, --version               Показать информацию о версии и выйти.
  -w, --print-directory       Напечатать текущий каталог.
  --no-print-directory        Отменить ключ -w, даже если он был явно указан.
  -W ФАЙЛ, --what-if=ФАЙЛ, --new-file=ФАЙЛ, --assume-new=ФАЙЛ
                              Считать ФАЙЛ всегда новым.
  --warn-undefined-variables  Выдавать предупреждение при ссылке
                              на неопределённую переменную.

Эта программа собрана для x86_64-pc-linux-gnu
Сообщайте об ошибках по адресу <bug-make@gnu.org>
dh_auto_test: make -j1 test -VV ARGS+=-j1 returned exit code 2
debian/rules:31: ошибка выполнения рецепта для цели «override_dh_auto_test»
make[1]: *** [override_dh_auto_test] Ошибка 2
make[1]: выход из каталога «/home/sunderland93/dolphin-emu-master-4.0+git6490»
debian/rules:22: ошибка выполнения рецепта для цели «build»
make: *** [build] Ошибка 2
dpkg-buildpackage: ошибка: debian/rules build возвратил код ошибки 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Может не так прописал?
override_dh_auto_test:
	dh_auto_test -- \
	-VV

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

Значит это аргументы make :)

Тогда VERBOSE=1

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

Не работает. Или опять не туда записал

override_dh_auto_test:
	dh_auto_test -- \
	VERBOSE=1

Sunderland93 ★★★★★ ()

Отбой! Я по своей невнимательности не заметил пакет с дэбианизацией. Вот оказывается какой шиндец нужно в rules указывать

#!/usr/bin/make -f
#DH_VERBOSE=1

%:
	dh $@ --parallel

GITREV = $(shell dpkg-parsechangelog | grep '^   \* New GIT Release' | sed 's/^   \* New GIT Release //')
VERSION = $(shell dpkg-parsechangelog | grep Version | sed 's/Version: \([0-9.]*\)+git.*/\1/')
GITDESC = $(VERSION)-$(shell dpkg-parsechangelog | grep Version | sed 's/.*git\([0-9]*\)-.*/\1/')
GITSEQ=$(shell echo $(GITDESC) | cut -d'-' -f2)
GITBRANCH = master

CMAKE_OPTIONS =							\
	-DDOLPHIN_WC_REVISION=$(GITREV)		\
	-DDOLPHIN_WC_DESCRIBE=$(GITDESC)	\
	-DDOLPHIN_WC_BRANCH=$(GITBRANCH)	\
	-Dbindir=/usr/games					\
	-Ddatadir=/usr/share/games/dolphin-emu

CPPFLAGS+=-DNDEBUG

override_dh_auto_configure:
	dh_auto_configure -- $(CMAKE_OPTIONS)

override_dh_auto_build:
	dh_auto_build
	(cd obj-$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) && make unittests)

get-orig-source:
	rm -rf dolphin-emu-master-$(VERSION)+git$(GITSEQ) \
		dolphin-emu-master-$(VERSION)+git$(GITSEQ).orig.tar.bz2
	git clone https://code.google.com/p/dolphin-emu/
	(cd dolphin-emu && \
		git archive --prefix=dolphin-emu-master-$(VERSION)+git$(GITSEQ)/ $(GITREV) |\
		tar -x -C ..)
	(cd dolphin-emu-master-$(VERSION)+git$(GITSEQ)/Externals && \
		rm -rf gettext libiconv-1.14 libpng libusb LZO miniupnpc msvcrt OpenAL polarssl portaudio Qt SFML SOIL soundtouch wxWidgets3 XAudio2_7 zlib)
	find dolphin-emu-master-$(VERSION)+git$(GITSEQ) -name '*.exe' -delete
	tar cjvf dolphin-emu-master_$(VERSION)+git$(GITSEQ).orig.tar.bz2 \
		dolphin-emu-master-$(VERSION)+git$(GITSEQ)
	rm -rf dolphin-emu
	rm -rf dolphin-emu-master-$(VERSION)+git$(GITSEQ)

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