Введение
У меня есть исходный пакет (загруженный 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
исходный пакет.
Если Вы смотрите на 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
, и также - никакой способ остановиться там.