Merge PR #538: Add debian package for libnymea-core

pull/566/head
jenkins 2022-08-26 12:57:43 +02:00
commit 937c2902fb
6 changed files with 84 additions and 27 deletions

75
debian/control vendored
View File

@ -52,26 +52,11 @@ Package: nymead
Architecture: any Architecture: any
Section: net Section: net
Multi-Arch: same Multi-Arch: same
Depends: libqt5network5, Depends: ${shlibs:Depends},
libqt5gui5, ${misc:Depends},
libqt5sql5,
libqt5xml5,
libqt5dbus5,
libqt5websockets5,
libqt5bluetooth5,
libqt5sql5-sqlite,
libcap2-bin,
logrotate,
bluez,
tar,
iputils-tracepath,
iputils-ping,
qml-module-qtquick2,
dnsutils,
nymea-translations, nymea-translations,
libnymea-core (= ${binary:Version}),
libnymea1 (= ${binary:Version}), libnymea1 (= ${binary:Version}),
${shlibs:Depends},
${misc:Depends}
Recommends: nymea-cli, Recommends: nymea-cli,
nymea-data, nymea-data,
network-manager, network-manager,
@ -162,7 +147,7 @@ Depends: ${shlibs:Depends},
Provides: nymea-update-plugin-api-1, Provides: nymea-update-plugin-api-1,
nymea-zeroconf-plugin-api-1, nymea-zeroconf-plugin-api-1,
nymea-system-plugin-api-3 nymea-system-plugin-api-3
Description: An open source IoT server - core library Description: An open source IoT server - library
The nymea daemon is a plugin based IoT (Internet of Things) server. The The nymea daemon is a plugin based IoT (Internet of Things) server. The
server works like a translator for devices, things and services and server works like a translator for devices, things and services and
allows them to interact. allows them to interact.
@ -193,6 +178,57 @@ Description: The main libraries and header files for developing with nymea.
. .
This package will install the development files for nymea. This package will install the development files for nymea.
Package: libnymea-core
Section: libs
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
libqt5network5,
libqt5gui5,
libqt5sql5,
libqt5xml5,
libqt5dbus5,
libqt5websockets5,
libqt5bluetooth5,
libqt5sql5-sqlite,
libcap2-bin,
logrotate,
bluez,
tar,
iputils-tracepath,
iputils-ping,
qml-module-qtquick2,
dnsutils,
Description: An open source IoT server - core library
The nymea daemon is a plugin based IoT (Internet of Things) server. The
server works like a translator for devices, things and services and
allows them to interact.
With the powerful rule engine you are able to connect any device available
in the system and create individual scenes and behaviors for your environment.
.
This package will install shared libraries for nymea core.
Package: libnymea-core-dev
Section: libdevel
Architecture: any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends},
libnymea-core (= ${binary:Version}),
libnymea-dev (= ${binary:Version})
Description: The main libraries and header files for developing with nymea core.
The nymea daemon is a plugin based IoT (Internet of Things) server. The
server works like a translator for devices, things and services and
allows them to interact.
With the powerful rule engine you are able to connect any device available
in the system and create individual scenes and behaviors for your environment.
.
This package will install the development files for nymea core.
Package: nymea-dev-tools Package: nymea-dev-tools
Section: libdevel Section: libdevel
Architecture: any Architecture: any
@ -213,6 +249,7 @@ Depends: nymea-dev-tools (= ${binary:Version}),
libnymea-dev (= ${binary:Version}), libnymea-dev (= ${binary:Version}),
Recommends: nymea-qtcreator-wizards, Recommends: nymea-qtcreator-wizards,
crossbuilder, crossbuilder,
Suggests: libnymea-core-dev (= ${binary:Version})
Description: The nymea SDK. Description: The nymea SDK.
. .
Meta-Package for everything required to develop on nymea. Meta-Package for everything required to develop on nymea.

3
debian/libnymea-core-dev.install.in vendored Normal file
View File

@ -0,0 +1,3 @@
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so
usr/include/nymea-core
usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/nymea-core.pc

3
debian/libnymea-core.install.in vendored Normal file
View File

@ -0,0 +1,3 @@
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so.1.0
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so.1.0.0

View File

@ -1,7 +1,4 @@
usr/bin/nymead usr/bin/nymead
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so.1.0
usr/lib/@DEB_HOST_MULTIARCH@/libnymea-core.so.1.0.0
data/systemd/nymead.service /lib/systemd/system/ data/systemd/nymead.service /lib/systemd/system/
data/logrotate/nymead /etc/logrotate.d/ data/logrotate/nymead /etc/logrotate.d/
data/dbus-1/io.guh.nymead.conf /etc/dbus-1/system.d/ data/dbus-1/io.guh.nymead.conf /etc/dbus-1/system.d/

2
debian/rules vendored
View File

@ -40,8 +40,6 @@ override_dh_auto_build:
make -j$(DEB_PARALLEL_JOBS) $(MAKE_TARGETS) make -j$(DEB_PARALLEL_JOBS) $(MAKE_TARGETS)
override_dh_install: $(PREPROCESS_FILES:.in=) override_dh_install: $(PREPROCESS_FILES:.in=)
# libnymea-core isn't public api... delete dev lib and just keep runtime libs.
rm $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libnymea-core.so
# Make sure the docs directory exists, even if we didn't build them # Make sure the docs directory exists, even if we didn't build them
mkdir -p $(CURDIR)/doc/html mkdir -p $(CURDIR)/doc/html
dh_install --fail-missing dh_install --fail-missing

View File

@ -52,14 +52,11 @@ packagesExist(libudev) {
message("Building without udev support.") message("Building without udev support.")
} }
target.path = $$[QT_INSTALL_LIBS]
INSTALLS += target
# icons for the webserver # icons for the webserver
RESOURCES += $$top_srcdir/icons.qrc \ RESOURCES += $$top_srcdir/icons.qrc \
$$top_srcdir/data/debug-interface/debug-interface.qrc $$top_srcdir/data/debug-interface/debug-interface.qrc
HEADERS += nymeacore.h \ HEADERS += nymeacore.h \
hardware/network/macaddressdatabasereplyimpl.h \ hardware/network/macaddressdatabasereplyimpl.h \
hardware/serialport/serialportmonitor.h \ hardware/serialport/serialportmonitor.h \
@ -290,3 +287,25 @@ HEADERS += \
SOURCES += \ SOURCES += \
integrations/pythonintegrationplugin.cpp integrations/pythonintegrationplugin.cpp
} }
target.path = $$[QT_INSTALL_LIBS]
INSTALLS += target
# install header file with relative subdirectory
for(header, HEADERS) {
path = $$[QT_INSTALL_PREFIX]/include/nymea-core/$${dirname(header)}
eval(headers_$${path}.files += $${header})
eval(headers_$${path}.path = $${path})
eval(INSTALLS *= headers_$${path})
}
# Create pkgconfig file
CONFIG += create_pc create_prl no_install_prl
QMAKE_PKGCONFIG_NAME = libnymea-core
QMAKE_PKGCONFIG_DESCRIPTION = nymea core development library
QMAKE_PKGCONFIG_PREFIX = $$[QT_INSTALL_PREFIX]
QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_PREFIX]/include/nymea-core/
QMAKE_PKGCONFIG_LIBDIR = $$target.path
QMAKE_PKGCONFIG_VERSION = $$NYMEA_VERSION_STRING
QMAKE_PKGCONFIG_FILE = nymea-core
QMAKE_PKGCONFIG_DESTDIR = pkgconfig