Я пытаюсь опубликовать свой cmake проект к ppa в панели запуска. Проект является библиотекой, названной "основой".
bzr builddeb -- -us -uc -sd
сбои со следующей ошибкой при попытке фальсифицировать установку dev
версия пакета.
...
...
Install the project...
/usr/bin/cmake -P cmake_install.cmake
-- Install configuration: "None"
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so.1.0
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so.1
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/myxml.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/Socket.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/ClientSocket.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/mycurl.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/mystdlib.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/ServerSocket.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/JPEGImage.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/SocketException.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/FerryTimeStamp.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/myconverters.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/baseConfig.h
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/pkgconfig/libbase.pc
-- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/share/pkgconfig/libbase.pc
make[1]: Leaving directory '/home/gowtham/Packages/build-area/base-1.1/obj-x86_64-linux-gnu'
dh_install -O--buildsystem=cmake
dh_install: base-dev missing files: usr/lib/*/lib*.so
dh_install: base-dev missing files: usr/lib/*/pkgconfig/*
dh_install: base1 missing files: usr/lib/*/lib*.so.*
dh_install: missing files, aborting
debian/rules:11: recipe for target 'binary' failed
make: *** [binary] Error 20
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc -sd failed
bzr: ERROR: The build failed.
как отличаться builddeb
для dev
версия пакета при установке header files
debian/rules
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
override_dh_auto_test:
override_dh_usrlocal:
%:
dh $@ --buildsystem=cmake
Пути в base-dev.install
и base1.install
являются неправильными.
dh_install: base-dev missing files: usr/lib/*/lib*.so dh_install: base-dev missing files: usr/lib/*/pkgconfig/* dh_install: base1 missing files: usr/lib/*/lib*.so.*
Они будут корректны как ниже, и пакет может быть создан:
usr/lib/lib*.so
usr/lib/pkgconfig/*
usr/lib/lib*.so.*
, Но Вы будете иметь lintian
сообщения, который /usr/lib/
не безопасен для установок системы мультидуги.
Любой Вы фиксируете его на исходном уровне (как восходящий разработчик), таким образом cmake
установка те файлы к /usr/lib/<HOST-ARCH-FOLDER>/
. Который является корректным путем.
Или Вы фиксируете его на упаковочном уровне (как поставщик программного блока) переопределяющими путями установки в base-dev.install
и base1.install
#!/usr/bin/dh-exec
usr/lib/lib*.so /usr/lib/${DEB_HOST_MULTIARCH}
usr/lib/pkgconfig/* /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
usr/lib/lib*.so.* /usr/lib/${DEB_HOST_MULTIARCH}