Я хочу упаковать стороннее приложение, которое содержит .so файлы.Когда я собираю пакет с помощью dpkg-buildpackage, файлы .so исключаются из созданного исходного пакета.
У меня нет файла .orig.Итак, я использую «3.0 (native)» в debian / source.
Сначала у меня были следующие сообщения:
dpkg-shlibdeps: error: cannot find library...
Итак, я включил «override_dh_makeshlibs» и «override_dh_shlibdeps» в debian/ rules.
man dpgk-source предлагает использовать «3.0 (quilt)» в debian / source, но у меня нет файла .orig, просто tar-файл с файлами в нем.
Я пытался настроить файл debian / include-binaries тем не менее (с «path_to.so» в нем), но это не помогло.
debian / rules:
%:
dh $@
override_dh_strip:
@echo "Not running dh_strip"
override_dh_makeshlibs:
@echo "Not running dh_makeshlibs"
override_dh_shlibdeps:
@echo "Not running dh_shlibdeps"
debian / source / format:
3.0 (native)
команда сборки:
dpkg-buildpackage -aamd64 -us -uc
Я ожидаю, что в исходный пакет будут включены все файлы, но в нем отсутствует .sofiles.
Файл deb построен правильно.
[EDIT: частичное решение]
Мне удалось создать deb с исходным кодом, создав вручнуюфайл orig перед сборкой deb.
В исходном каталоге:
changelog:
make sure that the version number has a revision.
sources / format:
3.0 (quilt)
source/ ВКЛЮЧАЕТe-binaries:
path_to.so
команды:
VERSION=$(dpkg-parsechangelog -S Version | sed -rne 's,([^-\+]+)+(\+dfsg)*.*,\1,p'i)
SOURCE=$(dpkg-parsechangelog -S Source)
UPSTREAM_PACKAGE=${SOURCE}_${VERSION}.orig.tar.gz
rm -f ../${UPSTREAM_PACKAGE}
tar czvf ../${UPSTREAM_PACKAGE} --exclude=debian --exclude=Makefile
dpkg-buildpackage -rfakeroot -aamd64 -us -uc
Есть ли способ автоматизировать это?
Не знаю, еслиили как это возможно в файле debian / rules или в файле Makefile.