Как я могу заставить dpkg-buildpackage остановиться после того, как выполнение настроит?

Введение

У меня есть исходный пакет (загруженный apt source ...) который я хотел бы исследовать использование rtags в редакторе кода. Стандартным способом сделать это является к пробному прогону make-файл, произведенный системой сборки, подающей его к rtags так, чтобы это могло использовать те команды для (ре), создающего его контекстные базы данных навигации и автозавершения исходного кода.

Проблема

Обычно, я был бы просто autogen/autoconf/configure получить make-файл и затем пробный прогон сборка с make -nk.

Однако, так как я работаю с пакетом Debian, я должен использовать Debian-определенные команды конфигурации с dpkg-buildpackage или dpkg-source для навигации исходного кода для отражения тех же опций сборки, которые использовались в официальных сборках.

Я просмотрел buildpackageстраница справочника, но не могла найти опции, которые остановят сборку после ./configure шаг, прежде чем любые фактические команды сборки выполняются. В то время как это действительно имеет --build=source(-S) опция, это не делает то, что я хочу: это применяет определенные для Ubuntu патчи и затем останавливается перед выполнением automake/configure. Это недопустимо, так как я хочу automake/configure шаг, который будет выполняться также.

Вопрос

Как я могу сделать dpkg-buildpackage остановитесь ПОСЛЕ выполнения autogen/automake/configure но ПЕРЕД выполнением make?

Предложенный подход должен работать на dnsutils исходный пакет.

4
задан 29 August 2018 в 13:21

1 ответ

Если Вы смотрите на dpkg-buildpackage страница справочника, Вы будете видеть, что она не различает a configure шаг и a make шаг - поскольку далеко это затронуто, существует a build шаг и a binary шаг. В то время как ./configure; make; make install очень распространено, это не освящено как один истинный метод сборки dpkg-buildpackage; этому оставляют debian/rules вызвать надлежащие меры по мере необходимости.

В конкретном случае dnsutils, или скорее bind, debian/rules кажется, является очень ручным (даже при том, что это вызывает много debhelper утилит, это не полагается на автоматизацию debhelper). Таким образом, здесь, самый простой путь состоит в том, чтобы использовать в своих интересах цели в debian/rules:

$ debian/rules stamps/configure
dh_testdir
if [ ! -d autoreconf-bck ]; then \
    mkdir autoreconf-bck; \
    cp -pr config.h.in configure libtool.m4 ltmain.sh autoreconf-bck; \
fi
cp -r bin/named bin/named-pkcs11
cp -r bin/dnssec bin/dnssec-pkcs11
cp -r lib/isc lib/isc-pkcs11
cp -r lib/dns lib/dns-pkcs11
patch -p1 < debian/patches/extra-add_native_pkcs11.diff
patching file bin/dnssec-pkcs11/Makefile.in
patching file bin/named-pkcs11/Makefile.in
...
========================================================================
Configuration summary:
------------------------------------------------------------------------
Optional features enabled:
    Multiprocessing support (--enable-threads)
    GeoIP access control (--with-geoip)
    GSS-API (--with-gssapi)
    Native PKCS#11/Cryptoki support (--enable-native-pkcs11)
        Provider library: ${prefix}/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
    GOST algorithm support (encoding: raw) (--with-gost)
    ECDSA algorithm support (--with-ecdsa)
    AAAA filtering (--enable-filter-aaaa)
    Print backtrace on crash (--enable-backtrace)
    Use symbol table for backtrace, named only (--enable-symtable)
    Use GNU libtool (--with-libtool)
    Dynamically loadable zone (DLZ) drivers:
        None

Features disabled or unavailable on this platform:
    Large-system tuning (--with-tuning)
    Recursive fetch limits for DoS attack mitigation (--enable-fetchlimit)
    Source Identity Token support (--enable-sit)
    Allow 'fixed' rrset-order (--enable-fixed-rrset)
    OpenSSL cryptography/DNSSEC (--with-openssl)
    Use libseccomp system call filtering (--enable-seccomp)
    Very verbose query trace logging (--enable-querytrace)
    Automated Testing Framework (--with-atf)
    JSON statistics (--with-libjson)

Unrecognized options:
    --enable-rrl
========================================================================
touch stamps/configure

Если это использовало debhelper's dh_auto_configure, иначе должен был бы переопределить dh_auto_configure в debian/rules приводить процесс сборки к сбою после него.


В целом, dpkg-buildpackage ничего не знает о configure, и также - никакой способ остановиться там.

2
ответ дан 1 December 2019 в 10:14

Другие вопросы по тегам:

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