Я пытаюсь повернуть Spamdyke 4.3.1 (ссылка на загрузку) в пакет Debian (.deb
). Это - довольно легкое программное обеспечение для создания, никакие сумасшедшие зависимости, просто libssl-dev
так:
apt-get install build-essential devscripts \
debhelper dh-make libssl-dev
и затем после того как Вы распаковываете источники:
cd spamdyke-4.3.1/spamdyke
./configure --exec_prefix=/usr
make
и обычный
make install
Поскольку я готов сделать пакет Debian из этого программного обеспечения, я создал все необходимые файлы в debian/
папка и измененный install
цель в spamdyke/Makefile.in
путем добавления ${DESTDIR}
:
install: spamdyke
cp spamdyke ${DESTDIR}/usr/local/bin/spamdyke-@PACKAGE_VERSION@
rm -f ${DESTDIR}/usr/local/bin/spamdyke
ln -s ${DESTDIR}/usr/local/bin/spamdyke-@PACKAGE_VERSION@ ${DESTDIR}/usr/local/bin/spamdyke
Но моя текущая проблема состоит в том, что архив распределения удерживает все источники spamdyke/
папка вместо корневой папки, которая не является что dh_*
инструменты ожидают делать весь тяжелый подъем автоматически:
drwxr-xr-x 4 vagrant vagrant 4096 Feb 3 10:57 debian
drwxr-xr-x 3 vagrant vagrant 4096 Jan 30 19:43 documentation
drwxr-xr-x 2 vagrant vagrant 4096 Feb 5 21:00 spamdyke
drwxr-xr-x 997 vagrant vagrant 77824 Jan 30 19:43 tests
drwxr-xr-x 2 vagrant vagrant 4096 Jan 20 2012 utils
К сожалению, я не могу создать корректный debian/rules
сделать всю упаковочную работу. Я хотел бы сохранить мой debian/rules
максимально простой и откровенно я надеялся что указание на него к spamdyke
исходная папка с --builddirectory
опция была бы достаточна, по крайней мере, для, настраивают и создают шаги. Мой ток debian/rules
теперь похож на это:
#!/usr/bin/make -f
export DH_VERBOSE = 1
%:
dh $@ --builddirectory=spamdyke
override_dh_auto_configure:
dh_auto_configure --builddirectory=spamdyke -- --exec_prefix=/usr
override_dh_auto_build:
dh_auto_make --builddirectory=spamdyke
однако debuild -b -us -uc
производит довольно пустой .deb
пакет в результате, с lintian, жалующимся на empty-binary-package
:
dpkg-genchanges: binary-only upload (no source code included)
dpkg-source --after-build spamdyke-4.3.1
dpkg-buildpackage: binary-only upload (no source included)
Now running lintian...
W: spamdyke: new-package-should-close-itp-bug
E: spamdyke: copyright-should-refer-to-common-license-file-for-gpl
W: spamdyke: empty-binary-package
Finished running lintian.
Я надеюсь, должен пропускать что-то очевидное здесь, но в данный момент я не могу узнать, что искать. Любые подсказки ценятся.Заранее спасибо.
Необходимо установить --sourcedirectory
вместо --builddirectory
на dh $@
звоните, это будет влиять на все dh_auto_*
. Таким образом, можно удалить те переопределения.
BUILD SYSTEM OPTIONS
The following command line options are supported by all of the
dh_auto_* debhelper programs. These programs support a variety
of build systems, and normally
heuristically determine which to use, and how to use them. You
can use these command line options to override the default
behavior. Typically these are passed to
dh(1), which then passes them to all the dh_auto_* programs.
-Ddirectory, --sourcedirectory=directory
Assume that the original package source tree is at the
specified directory rather than the top level directory of
the Debian source package tree.
-B[directory], --builddirectory=[directory]
Enable out of source building and use the specified directory
as the build directory. If directory parameter is omitted, a
default build directory will be chosen.
Источник: man debhelper
Примечание:
Избегайте использования трудно кодированных путей
Пример /usr/local
, Используйте вместо этого $prefix
переменная. автоинструменты имеют /usr/local
как значение по умолчанию, debhelper сброс к /usr
(Никакая потребность установить вручную)
Предложенные исправления:
spamdyke/Makefile.in
определить prefix
и измените цель символьной ссылки.
prefix := @prefix@
...
install: spamdyke
mkdir -p ${DESTDIR}$(prefix)/bin/
cp spamdyke ${DESTDIR}$(prefix)/bin/spamdyke-@PACKAGE_VERSION@
rm -f ${DESTDIR}$(prefix)/bin/spamdyke
ln -s $(prefix)/bin/spamdyke-@PACKAGE_VERSION@ ${DESTDIR}$(prefix)/bin/spamdyke
debian/rules
удалите переопределение
#!/usr/bin/make -f
export DH_VERBOSE=1
%:
dh $@ --sourcedirectory=spamdyke
Ссылка: стандарты кодирования GNU