From 29d8f18f62299d5a9abf230916d51e0593db9989 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 15 Apr 2019 01:58:30 +0200 Subject: [PATCH 1/2] Add Ubuntu dpkg package --- debian | 1 + libnymea-app-core/libnymea-app-core.pro | 5 - libnymea-common/libnymea-common.pro | 11 - nymea-app.pro | 19 +- nymea-app/nymea-app.pro | 4 - .../{linux => linux-common}/exportappicons.sh | 0 .../icons/hicolor/16x16/apps/nymea-app.png | Bin .../icons/hicolor/22x22/apps/nymea-app.png | Bin .../icons/hicolor/24x24/apps/nymea-app.png | Bin .../icons/hicolor/256x256/apps/nymea-app.png | Bin .../icons/hicolor/32x32/apps/nymea-app.png | Bin .../icons/hicolor/48x48/apps/nymea-app.png | Bin .../icons/hicolor/64x64/apps/nymea-app.png | Bin .../linux-common/nymea-app-kiosk.service | 18 + packaging/linux-common/nymea-app-plain.svg | 555 ++++++++++++++++++ .../{linux => linux-common}/nymea-app.desktop | 2 +- packaging/linux-common/nymea-app.service | 15 + .../{linux => linux-common}/nymea-app.svg | 0 packaging/ubuntu/README | 3 + packaging/ubuntu/debian/changelog | 5 + packaging/ubuntu/debian/compat | 1 + packaging/ubuntu/debian/control | 45 ++ packaging/ubuntu/debian/nymea-app.install | 1 + packaging/ubuntu/debian/rules | 25 + 24 files changed, 686 insertions(+), 24 deletions(-) create mode 120000 debian rename packaging/{linux => linux-common}/exportappicons.sh (100%) rename packaging/{linux => linux-common}/icons/hicolor/16x16/apps/nymea-app.png (100%) rename packaging/{linux => linux-common}/icons/hicolor/22x22/apps/nymea-app.png (100%) rename packaging/{linux => linux-common}/icons/hicolor/24x24/apps/nymea-app.png (100%) rename packaging/{linux => linux-common}/icons/hicolor/256x256/apps/nymea-app.png (100%) rename packaging/{linux => linux-common}/icons/hicolor/32x32/apps/nymea-app.png (100%) rename packaging/{linux => linux-common}/icons/hicolor/48x48/apps/nymea-app.png (100%) rename packaging/{linux => linux-common}/icons/hicolor/64x64/apps/nymea-app.png (100%) create mode 100644 packaging/linux-common/nymea-app-kiosk.service create mode 100644 packaging/linux-common/nymea-app-plain.svg rename packaging/{linux => linux-common}/nymea-app.desktop (64%) create mode 100644 packaging/linux-common/nymea-app.service rename packaging/{linux => linux-common}/nymea-app.svg (100%) create mode 100644 packaging/ubuntu/README create mode 100644 packaging/ubuntu/debian/changelog create mode 100644 packaging/ubuntu/debian/compat create mode 100644 packaging/ubuntu/debian/control create mode 100644 packaging/ubuntu/debian/nymea-app.install create mode 100755 packaging/ubuntu/debian/rules diff --git a/debian b/debian new file mode 120000 index 00000000..3f3d1dfa --- /dev/null +++ b/debian @@ -0,0 +1 @@ +packaging/ubuntu/debian/ \ No newline at end of file diff --git a/libnymea-app-core/libnymea-app-core.pro b/libnymea-app-core/libnymea-app-core.pro index ab91361b..6b4127ef 100644 --- a/libnymea-app-core/libnymea-app-core.pro +++ b/libnymea-app-core/libnymea-app-core.pro @@ -143,8 +143,3 @@ HEADERS += \ configuration/mqttpolicy.h \ configuration/mqttpolicies.h \ models/devicemodel.h - -unix { - target.path = /usr/lib - INSTALLS += target -} diff --git a/libnymea-common/libnymea-common.pro b/libnymea-common/libnymea-common.pro index cfe3fcb7..0e627d64 100644 --- a/libnymea-common/libnymea-common.pro +++ b/libnymea-common/libnymea-common.pro @@ -7,9 +7,6 @@ CONFIG += staticlib QT -= gui QT += network -target.path = /usr/lib/$$system('dpkg-architecture -q DEB_HOST_MULTIARCH') -INSTALLS += target - HEADERS += \ types/types.h \ types/vendor.h \ @@ -100,11 +97,3 @@ SOURCES += \ types/repeatingoption.cpp \ types/tag.cpp \ types/tags.cpp - -# install header file with relative subdirectory -for(header, HEADERS) { - path = /usr/include/nymea-common/$${dirname(header)} - eval(headers_$${path}.files += $${header}) - eval(headers_$${path}.path = $${path}) - eval(INSTALLS *= headers_$${path}) -} diff --git a/nymea-app.pro b/nymea-app.pro index 79416e12..c9c5675e 100644 --- a/nymea-app.pro +++ b/nymea-app.pro @@ -69,15 +69,28 @@ osxbundle.commands += hdiutil convert nymea-app_writable.dmg -format UDRO -o ../ osxbundle.commands += rm nymea-app.dmg nymea-app_writable.dmg QMAKE_EXTRA_TARGETS += osxbundle -# Linux desktop (snap package) +# Generic linux desktop linux:!android: { -desktopfile.files = packaging/linux/nymea-app.desktop +desktopfile.files = packaging/linux-common/nymea-app.desktop desktopfile.path = /usr/share/applications/ -icons.files = packaging/linux/icons +icons.files = packaging/linux-common/icons/ icons.path = /usr/share/ INSTALLS += desktopfile icons } +# Linux desktop (snap package) +snap: { +desktopfile.files = packaging/linux/nymea-app.desktop +desktopfile.path = /usr/share/applications/ +INSTALLS += desktopfile +} + +click: { +ubuntu_files.path += / +ubuntu_files.files += manifest.json nymea-app.apparmor nymea-app.desktop packaging/android/appicon.svg +INSTALLS += ubuntu_files +} + # Translations support TRANSLATIONS += $$files($$absolute_path(nymea-app)/translations/*.ts, true) system("lrelease $$TRANSLATIONS") diff --git a/nymea-app/nymea-app.pro b/nymea-app/nymea-app.pro index b3e84269..6b142c18 100644 --- a/nymea-app/nymea-app.pro +++ b/nymea-app/nymea-app.pro @@ -122,10 +122,6 @@ ios: { QMAKE_MAC_XCODE_SETTINGS += IOS_ENTITLEMENTS } -ubuntu_files.path += / -ubuntu_files.files += ../manifest.json ../nymea-app.apparmor ../nymea-app.desktop ../packaging/android/appicon.svg -INSTALLS += ubuntu_files - BR=$$BRANDING !equals(BR, "") { DEFINES += BRANDING=\\\"$${BR}\\\" diff --git a/packaging/linux/exportappicons.sh b/packaging/linux-common/exportappicons.sh similarity index 100% rename from packaging/linux/exportappicons.sh rename to packaging/linux-common/exportappicons.sh diff --git a/packaging/linux/icons/hicolor/16x16/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/16x16/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/16x16/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/16x16/apps/nymea-app.png diff --git a/packaging/linux/icons/hicolor/22x22/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/22x22/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/22x22/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/22x22/apps/nymea-app.png diff --git a/packaging/linux/icons/hicolor/24x24/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/24x24/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/24x24/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/24x24/apps/nymea-app.png diff --git a/packaging/linux/icons/hicolor/256x256/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/256x256/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/256x256/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/256x256/apps/nymea-app.png diff --git a/packaging/linux/icons/hicolor/32x32/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/32x32/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/32x32/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/32x32/apps/nymea-app.png diff --git a/packaging/linux/icons/hicolor/48x48/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/48x48/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/48x48/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/48x48/apps/nymea-app.png diff --git a/packaging/linux/icons/hicolor/64x64/apps/nymea-app.png b/packaging/linux-common/icons/hicolor/64x64/apps/nymea-app.png similarity index 100% rename from packaging/linux/icons/hicolor/64x64/apps/nymea-app.png rename to packaging/linux-common/icons/hicolor/64x64/apps/nymea-app.png diff --git a/packaging/linux-common/nymea-app-kiosk.service b/packaging/linux-common/nymea-app-kiosk.service new file mode 100644 index 00000000..9da06725 --- /dev/null +++ b/packaging/linux-common/nymea-app-kiosk.service @@ -0,0 +1,18 @@ +[Unit] +Description=nymea frontend app +Documentation=https://github.com/guh/mea +After=network.target +Wants=network-online.target + +[Service] +User = nymea +Group = nymea +ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/nymea-app --fullscreen -- :0 -nolisten tcp vt7 +StandardOutput=journal +StandardError=journal +Restart=on-failure +Type=simple + +[Install] +WantedBy=multi-user.target + diff --git a/packaging/linux-common/nymea-app-plain.svg b/packaging/linux-common/nymea-app-plain.svg new file mode 100644 index 00000000..064fcc23 --- /dev/null +++ b/packaging/linux-common/nymea-app-plain.svg @@ -0,0 +1,555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/linux/nymea-app.desktop b/packaging/linux-common/nymea-app.desktop similarity index 64% rename from packaging/linux/nymea-app.desktop rename to packaging/linux-common/nymea-app.desktop index 6a9c90ff..332dbd8e 100644 --- a/packaging/linux/nymea-app.desktop +++ b/packaging/linux-common/nymea-app.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=nymea:app Comment=A client application for nymea -Icon=${SNAP}/usr/share/icons/hicolor/256x256/apps/nymea-app.png +Icon=/usr/share/icons/hicolor/256x256/apps/nymea-app.png Terminal=false Type=Application Exec=nymea-app diff --git a/packaging/linux-common/nymea-app.service b/packaging/linux-common/nymea-app.service new file mode 100644 index 00000000..94c46853 --- /dev/null +++ b/packaging/linux-common/nymea-app.service @@ -0,0 +1,15 @@ +[Unit] +Description=nymea frontend app +Documentation=https://github.com/guh/mea +After=network.target +Wants=network-online.target + +[Service] +ExecStart=/usr/bin/mea -platform webgl +StandardOutput=journal +StandardError=journal +Restart=on-failure +Type=simple + +[Install] +WantedBy=multi-user.target diff --git a/packaging/linux/nymea-app.svg b/packaging/linux-common/nymea-app.svg similarity index 100% rename from packaging/linux/nymea-app.svg rename to packaging/linux-common/nymea-app.svg diff --git a/packaging/ubuntu/README b/packaging/ubuntu/README new file mode 100644 index 00000000..531fe8db --- /dev/null +++ b/packaging/ubuntu/README @@ -0,0 +1,3 @@ +To build a ubuntu package (dpkg), link the debian folder to the +top level of the repository and run dpkg-buildpackage or your +favorite wrapper on it. diff --git a/packaging/ubuntu/debian/changelog b/packaging/ubuntu/debian/changelog new file mode 100644 index 00000000..29bcad50 --- /dev/null +++ b/packaging/ubuntu/debian/changelog @@ -0,0 +1,5 @@ +nymea-app (1.0.112) bionic; urgency=medium + + * Initial release. + + -- Michael Zanetti Sun, 14 Apr 2019 23:06:13 +0200 diff --git a/packaging/ubuntu/debian/compat b/packaging/ubuntu/debian/compat new file mode 100644 index 00000000..ec635144 --- /dev/null +++ b/packaging/ubuntu/debian/compat @@ -0,0 +1 @@ +9 diff --git a/packaging/ubuntu/debian/control b/packaging/ubuntu/debian/control new file mode 100644 index 00000000..d7ff5468 --- /dev/null +++ b/packaging/ubuntu/debian/control @@ -0,0 +1,45 @@ +Source: nymea-app +Section: utils +Priority: optional +Maintainer: Michael Zanetti +Standards-Version: 3.9.7 +Homepage: https://nymea.io +Vcs-Git: https://github.com/guh/guh.git +Build-Depends: debhelper (>= 9.0.0), + dpkg-dev (>= 1.16.1~), + libavahi-client-dev, + libavahi-common-dev, + libqt5charts5-dev, + libqt5svg5-dev, + libqt5websockets5-dev, + qtbase5-dev, + qtconnectivity5-dev, + qtdeclarative5-dev, + +Package: nymea-app +Architecture: any +Section: tools +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libqt5network5, + libqt5gui5, + libqt5websockets5, + libqt5bluetooth5, + qml-module-qt-labs-settings, + qml-module-qtquick-controls2, + qml-module-qtquick-layouts, + qml-module-qtquick-window2, + qml-module-qtquick2, + xinit, +Suggests: nymea, + network-manager +Description: An open source IoT server - daemon + 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 nymea:app. + diff --git a/packaging/ubuntu/debian/nymea-app.install b/packaging/ubuntu/debian/nymea-app.install new file mode 100644 index 00000000..d025cfe1 --- /dev/null +++ b/packaging/ubuntu/debian/nymea-app.install @@ -0,0 +1 @@ +packaging/linux-common/nymea-app-kiosk.service /lib/systemd/system/ diff --git a/packaging/ubuntu/debian/rules b/packaging/ubuntu/debian/rules new file mode 100755 index 00000000..5522e76a --- /dev/null +++ b/packaging/ubuntu/debian/rules @@ -0,0 +1,25 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +export DH_VERBOSE=1 + +#DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +#PREPROCESS_FILES := $(wildcard debian/*.in) + +#$(PREPROCESS_FILES:.in=): %: %.in +# sed 's,/@DEB_HOST_MULTIARCH@,$(DEB_HOST_MULTIARCH:%=/%),g' $< > $@ + + +#override_dh_install: $(PREPROCESS_FILES:.in=) +# dh_install + +#override_dh_auto_test: +# LD_LIBRARY_PATH=`pwd`/libnymea-mqtt/ dh_auto_test + +#override_dh_auto_clean: +# dh_auto_clean +# rm -rf $(PREPROCESS_FILES:.in=) + +%: + dh $@ --buildsystem=qmake --parallel From c63e4f8c15020a01e8d95e10851b220bb5482cf4 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 15 Apr 2019 02:11:47 +0200 Subject: [PATCH 2/2] add missing dep --- packaging/ubuntu/debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/packaging/ubuntu/debian/control b/packaging/ubuntu/debian/control index d7ff5468..60b3b44b 100644 --- a/packaging/ubuntu/debian/control +++ b/packaging/ubuntu/debian/control @@ -15,6 +15,7 @@ Build-Depends: debhelper (>= 9.0.0), qtbase5-dev, qtconnectivity5-dev, qtdeclarative5-dev, + qtquickcontrols2-5-dev, Package: nymea-app Architecture: any