Merge lp:~michael-sheldon/ubuntu-download-manager/snap into lp:ubuntu-download-manager

Proposed by Michael Sheldon
Status: Merged
Approved by: Bill Filler
Approved revision: 378
Merged at revision: 379
Proposed branch: lp:~michael-sheldon/ubuntu-download-manager/snap
Merge into: lp:ubuntu-download-manager
Diff against target: 115 lines (+62/-3)
6 files modified
debian/ubuntu-download-manager.install (+1/-0)
snapcraft.yaml (+32/-0)
src/common/priv/ubuntu/transfers/system/apparmor.cpp (+15/-3)
src/downloads/daemon/CMakeLists.txt (+6/-0)
src/downloads/daemon/com.canonical.applications.Downloader.service (+1/-0)
src/downloads/daemon/ubuntu-download-manager-systemd.service (+7/-0)
To merge this branch: bzr merge lp:~michael-sheldon/ubuntu-download-manager/snap
Reviewer Review Type Date Requested Status
system-apps-ci-bot continuous-integration Needs Fixing
Lukáš Tinkl (community) Needs Fixing
Review via email: mp+311611@code.launchpad.net

Commit message

Add support for building as a snap

Description of the change

Add support for building as a snap

To post a comment you must log in.
Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:376
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-download-manager-ci/21/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2046/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2049
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1879
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1879/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1879
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1879/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/1879/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1879
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1879/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1879
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1879/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/1879/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/1879
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/1879/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/1879
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/1879/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/1879/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-download-manager-ci/21/rebuild

review: Needs Fixing (continuous-integration)
377. By Michael Sheldon

Add systemd service file to allow for dbus activation in snap

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:377
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-download-manager-ci/23/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2072/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2075
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1905
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1905/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1905
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1905/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/1905/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1905
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1905/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1905
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1905/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/1905/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/1905
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/1905/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/1905
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/1905/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/1905/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-download-manager-ci/23/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

+ if (QDir::homePath().contains(QString("snap%1ubuntu-download-manager").arg(QDir::separator()))) {

The usage of QDir::separator() is really discouraged, you could as well write a much simpler version:

+ if (QDir::homePath().contains(QStringLiteral("snap/ubuntu-download-manager"))) {

review: Needs Fixing
378. By Michael Sheldon

Remove use of QDir::separator()

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

I've updated the branch to remove the use of QDir::separator(), I'm curious as to why it's discouraged though? I can see in the case of snap things it's probably unimportant, but separator() would appear to be a more platform agnostic approach in general for applications that may be running on systems with a different separator character (e.g. Windows)

Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

It's handled automatically by Qt, see http://doc.qt.io/qt-5/qdir.html#separator

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Oh, that's great, I was aware of that; thanks :)

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Edit: *wasn't* aware of that

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:378
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-download-manager-ci/24/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/system-apps/job/build/2077/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/2080
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1910
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1910/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1910
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1910/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=zesty/1910/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1910
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1910/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1910
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1910/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=zesty/1910/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/1910
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/1910/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/1910
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial+overlay/1910/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=zesty/1910/console

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-download-manager-ci/24/rebuild

review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/ubuntu-download-manager.install'
--- debian/ubuntu-download-manager.install 2014-10-14 15:26:46 +0000
+++ debian/ubuntu-download-manager.install 2016-11-29 16:00:55 +0000
@@ -4,3 +4,4 @@
4debian/usr.lib.ubuntu-download-manager.udm-extractor etc/apparmor.d4debian/usr.lib.ubuntu-download-manager.udm-extractor etc/apparmor.d
5etc/dbus-1/system.d/com.canonical.applications.Downloader.conf5etc/dbus-1/system.d/com.canonical.applications.Downloader.conf
6usr/lib/*/ubuntu-download-manager/*6usr/lib/*/ubuntu-download-manager/*
7usr/lib/systemd/user
78
=== added file 'snapcraft.yaml'
--- snapcraft.yaml 1970-01-01 00:00:00 +0000
+++ snapcraft.yaml 2016-11-29 16:00:55 +0000
@@ -0,0 +1,32 @@
1name: ubuntu-download-manager
2version: 0.100
3summary: Ubuntu Download Manager
4description: Provides a service for downloading files while an application is suspended.
5confinement: strict
6
7apps:
8 ubuntu-download-manager:
9 command: desktop-launch ubuntu-download-manager
10 plugs: [network, network-manager, network-observe, dbus]
11 slots: [download]
12
13parts:
14 ubuntu-download-manager:
15 source: .
16 plugin: cmake
17 build-packages:
18 - build-essential
19 - cmake
20 - dbus
21 - pkg-config
22 - qtdeclarative5-dev-tools
23 - qt5-default
24 - qtbase5-dev
25 - qtdeclarative5-dev
26 - doxygen
27 - libgl1-mesa-dev
28 - libgles2-mesa-dev
29 - libglib2.0-dev
30 stage-packages:
31 - libqt5sql5-sqlite
32 after: [desktop/qt5]
033
=== modified file 'src/common/priv/ubuntu/transfers/system/apparmor.cpp'
--- src/common/priv/ubuntu/transfers/system/apparmor.cpp 2014-10-22 23:32:28 +0000
+++ src/common/priv/ubuntu/transfers/system/apparmor.cpp 2016-11-29 16:00:55 +0000
@@ -165,12 +165,24 @@
165 QString dataPath = QStandardPaths::writableLocation(165 QString dataPath = QStandardPaths::writableLocation(
166 QStandardPaths::DataLocation);166 QStandardPaths::DataLocation);
167 QStringList pathComponents;167 QStringList pathComponents;
168 pathComponents << dataPath;
169168
170 if (!appId.isEmpty()) {169 if (!appId.isEmpty()) {
171 QStringList appIdInfo = appId.split("_");170 QStringList appIdInfo = appId.split("_");
172 if (appIdInfo.count() > 0)171 if (appIdInfo.count() > 0) {
173 pathComponents << appIdInfo[0];172 if (appIdInfo[0].startsWith("snap.")) {
173 // Snap path
174 QStringList appComponents = appIdInfo[0].split(".");
175 if (QDir::homePath().contains(QStringLiteral("snap/ubuntu-download-manager"))) {
176 // We're running inside a snap so adjust the $HOME location accordingly
177 pathComponents << QDir::homePath() << ".." << ".." << appComponents[1] << "common";
178 } else {
179 pathComponents << QDir::homePath() << "snap" << appComponents[1] << "common";
180 }
181 } else {
182 // Click path
183 pathComponents << dataPath << appIdInfo[0];
184 }
185 }
174 }186 }
175187
176 pathComponents << "Downloads";188 pathComponents << "Downloads";
177189
=== modified file 'src/downloads/daemon/CMakeLists.txt'
--- src/downloads/daemon/CMakeLists.txt 2014-04-21 14:14:33 +0000
+++ src/downloads/daemon/CMakeLists.txt 2016-11-29 16:00:55 +0000
@@ -28,6 +28,12 @@
28 ubuntu-download-manager-priv28 ubuntu-download-manager-priv
29)29)
3030
31set (SYSTEMD_USER_DIR "/usr/lib/systemd/user")
32install(
33 FILES ubuntu-download-manager-systemd.service
34 DESTINATION ${SYSTEMD_USER_DIR}
35)
36
31install(FILES ${TARGET}.service DESTINATION37install(FILES ${TARGET}.service DESTINATION
32 ${CMAKE_INSTALL_DATADIR}/dbus-1/services)38 ${CMAKE_INSTALL_DATADIR}/dbus-1/services)
33install(FILES "com.canonical.applications.Downloader.service" DESTINATION39install(FILES "com.canonical.applications.Downloader.service" DESTINATION
3440
=== modified file 'src/downloads/daemon/com.canonical.applications.Downloader.service'
--- src/downloads/daemon/com.canonical.applications.Downloader.service 2013-09-19 11:07:05 +0000
+++ src/downloads/daemon/com.canonical.applications.Downloader.service 2016-11-29 16:00:55 +0000
@@ -2,3 +2,4 @@
2Name=com.canonical.applications.Downloader2Name=com.canonical.applications.Downloader
3User=root3User=root
4Exec=/usr/bin/ubuntu-download-manager4Exec=/usr/bin/ubuntu-download-manager
5SystemdService=ubuntu-download-manager-systemd.service
56
=== added file 'src/downloads/daemon/ubuntu-download-manager-systemd.service'
--- src/downloads/daemon/ubuntu-download-manager-systemd.service 1970-01-01 00:00:00 +0000
+++ src/downloads/daemon/ubuntu-download-manager-systemd.service 2016-11-29 16:00:55 +0000
@@ -0,0 +1,7 @@
1[Unit]
2Description=Ubuntu Download Manager Service
3
4[Service]
5Type=dbus
6BusName=com.canonical.applications.Downloader
7ExecStart=/usr/bin/ubuntu-download-manager

Subscribers

People subscribed via source and target branches