Я работаю над слегка модифицированным Debian openjdk-11 с источником apt-get:
apt-get source openjdk-11-jre-headless:amd64
после изменения некоторых классов Java, я собираю пакет с помощью команд:
dpkg-source --commit #create a patch file from the modifiactions
dch #increase build number to make sure my own build is not replaced by the default package
dpkg-buildpackage -us -uc #based on https://www.debian.org/doc/manuals/maint-guide/build.en.html#completebuild
Это создает все пакеты java .deb для jre и jdk. Процесс сборки и тестирования занимает довольно много времени.
Первый вопрос : Как получить небольшую модификацию (после однократной сборки проекта) в пакеты .deb эффективным способом?
Я попробовал следующее:
1) https://www.debian.org/doc/manuals/maint-guide/build.en.html#quickrebuild это предлагает запустить
fakeroot debian/rules build
Однако, модифицированный код не построен. Вместо этого я вижу только следующий вывод
jtreg_version="$(dpkg-query -f '${Version}\n' -W jtreg)"; \
if ! dpkg --compare-versions 4.2-b13-0~ le $jtreg_version; then \
echo "Error: testsuite requires jtreg 4.2-b13-0~ but $jtreg_version is installed"; \
echo "Please update the jtreg dependency and regenerate debian/control"; \
false; \
fi
if [ -f buildwatch.pid ]; then \
pid=$(cat buildwatch.pid); \
kill -1 $pid || :; sleep 1; kill -9 $pid || :; \
fi
rm -f buildwatch.pid
2) doc / building.html внутри проекта предлагает:
Построение отдельных модулей
Безопасный способиспользовать мелкозернистые make-цели - использовать специфичные для модуля make-цели. Весь исходный код в JDK организован так, что он принадлежит модулю, например, java.base или jdk.jdwp.agent. Вы можете собрать только определенный модуль, указав его как цель make: make jdk.jdwp.agent. Если указанный модуль зависит от других модулей (например, java.base), эти модули будут собраны первыми.
Однако процесс сборки Debian, похоже, удаляет информацию о конфигурации, я получаю следующую ошибку:
Error: No configurations found
Please run 'bash configure' to create a configuration.
Единственный способ, который в настоящее время работает, - это очистить и полностью перестроить пакет.
Второй вопрос : можно ли пропустить все тесты при построенииФайлы .deb, как тесты занимают большую часть времени?