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
1=== modified file 'debian/ubuntu-download-manager.install'
2--- debian/ubuntu-download-manager.install 2014-10-14 15:26:46 +0000
3+++ debian/ubuntu-download-manager.install 2016-11-29 16:00:55 +0000
4@@ -4,3 +4,4 @@
5 debian/usr.lib.ubuntu-download-manager.udm-extractor etc/apparmor.d
6 etc/dbus-1/system.d/com.canonical.applications.Downloader.conf
7 usr/lib/*/ubuntu-download-manager/*
8+usr/lib/systemd/user
9
10=== added file 'snapcraft.yaml'
11--- snapcraft.yaml 1970-01-01 00:00:00 +0000
12+++ snapcraft.yaml 2016-11-29 16:00:55 +0000
13@@ -0,0 +1,32 @@
14+name: ubuntu-download-manager
15+version: 0.100
16+summary: Ubuntu Download Manager
17+description: Provides a service for downloading files while an application is suspended.
18+confinement: strict
19+
20+apps:
21+ ubuntu-download-manager:
22+ command: desktop-launch ubuntu-download-manager
23+ plugs: [network, network-manager, network-observe, dbus]
24+ slots: [download]
25+
26+parts:
27+ ubuntu-download-manager:
28+ source: .
29+ plugin: cmake
30+ build-packages:
31+ - build-essential
32+ - cmake
33+ - dbus
34+ - pkg-config
35+ - qtdeclarative5-dev-tools
36+ - qt5-default
37+ - qtbase5-dev
38+ - qtdeclarative5-dev
39+ - doxygen
40+ - libgl1-mesa-dev
41+ - libgles2-mesa-dev
42+ - libglib2.0-dev
43+ stage-packages:
44+ - libqt5sql5-sqlite
45+ after: [desktop/qt5]
46
47=== modified file 'src/common/priv/ubuntu/transfers/system/apparmor.cpp'
48--- src/common/priv/ubuntu/transfers/system/apparmor.cpp 2014-10-22 23:32:28 +0000
49+++ src/common/priv/ubuntu/transfers/system/apparmor.cpp 2016-11-29 16:00:55 +0000
50@@ -165,12 +165,24 @@
51 QString dataPath = QStandardPaths::writableLocation(
52 QStandardPaths::DataLocation);
53 QStringList pathComponents;
54- pathComponents << dataPath;
55
56 if (!appId.isEmpty()) {
57 QStringList appIdInfo = appId.split("_");
58- if (appIdInfo.count() > 0)
59- pathComponents << appIdInfo[0];
60+ if (appIdInfo.count() > 0) {
61+ if (appIdInfo[0].startsWith("snap.")) {
62+ // Snap path
63+ QStringList appComponents = appIdInfo[0].split(".");
64+ if (QDir::homePath().contains(QStringLiteral("snap/ubuntu-download-manager"))) {
65+ // We're running inside a snap so adjust the $HOME location accordingly
66+ pathComponents << QDir::homePath() << ".." << ".." << appComponents[1] << "common";
67+ } else {
68+ pathComponents << QDir::homePath() << "snap" << appComponents[1] << "common";
69+ }
70+ } else {
71+ // Click path
72+ pathComponents << dataPath << appIdInfo[0];
73+ }
74+ }
75 }
76
77 pathComponents << "Downloads";
78
79=== modified file 'src/downloads/daemon/CMakeLists.txt'
80--- src/downloads/daemon/CMakeLists.txt 2014-04-21 14:14:33 +0000
81+++ src/downloads/daemon/CMakeLists.txt 2016-11-29 16:00:55 +0000
82@@ -28,6 +28,12 @@
83 ubuntu-download-manager-priv
84 )
85
86+set (SYSTEMD_USER_DIR "/usr/lib/systemd/user")
87+install(
88+ FILES ubuntu-download-manager-systemd.service
89+ DESTINATION ${SYSTEMD_USER_DIR}
90+)
91+
92 install(FILES ${TARGET}.service DESTINATION
93 ${CMAKE_INSTALL_DATADIR}/dbus-1/services)
94 install(FILES "com.canonical.applications.Downloader.service" DESTINATION
95
96=== modified file 'src/downloads/daemon/com.canonical.applications.Downloader.service'
97--- src/downloads/daemon/com.canonical.applications.Downloader.service 2013-09-19 11:07:05 +0000
98+++ src/downloads/daemon/com.canonical.applications.Downloader.service 2016-11-29 16:00:55 +0000
99@@ -2,3 +2,4 @@
100 Name=com.canonical.applications.Downloader
101 User=root
102 Exec=/usr/bin/ubuntu-download-manager
103+SystemdService=ubuntu-download-manager-systemd.service
104
105=== added file 'src/downloads/daemon/ubuntu-download-manager-systemd.service'
106--- src/downloads/daemon/ubuntu-download-manager-systemd.service 1970-01-01 00:00:00 +0000
107+++ src/downloads/daemon/ubuntu-download-manager-systemd.service 2016-11-29 16:00:55 +0000
108@@ -0,0 +1,7 @@
109+[Unit]
110+Description=Ubuntu Download Manager Service
111+
112+[Service]
113+Type=dbus
114+BusName=com.canonical.applications.Downloader
115+ExecStart=/usr/bin/ubuntu-download-manager

Subscribers

People subscribed via source and target branches