debian/0000755000000000000000000000000012325725173007175 5ustar debian/golang-ubuntu-push-dev.install0000644000000000000000000000002112325724711015073 0ustar usr/share/gocode debian/docs0000644000000000000000000000000712325724711010042 0ustar README debian/source/0000755000000000000000000000000012325725173010475 5ustar debian/source/format0000644000000000000000000000001412325724711011700 0ustar 3.0 (quilt) debian/ubuntu-push-client.install0000755000000000000000000000030312325724711014334 0ustar #!/usr/bin/dh-exec debian/config.json /etc/xdg/ubuntu-push-client debian/ubuntu-push-client.conf /usr/share/upstart/sessions usr/bin/ubuntu-push => /usr/lib/ubuntu-push-client/ubuntu-push-client debian/copyright0000644000000000000000000000503012325724711011123 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: ubuntu-push-client Source: http://launchpad.net/ubuntu-push Files: * Copyright: 2013-2014 Canonical Ltd. License: GPL-3.0 Files: http13client/* Copyright: 2009-2013 The Go Authors License: BSD-3-clause Files: external/murmur3/* Copyright: 2013 Sébastien Paolacci License: BSD-3-clause License: GPL-3.0 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". License: BSD-3-clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. debian/config.json0000644000000000000000000000067612325724711011343 0ustar { "connect_timeout": "20s", "exchange_timeout": "30s", "hosts_cache_expiry": "12h", "expect_all_repaired": "40m", "addr": "https://push.ubuntu.com/delivery-hosts", "cert_pem_file": "", "stabilizing_timeout": "2s", "recheck_timeout": "10m", "connectivity_check_url": "http://start.ubuntu.com/connectivity-check.html", "connectivity_check_md5": "4589f42e1546aa47ca181e5d949d310b", "log_level": "debug" } debian/compat0000644000000000000000000000000212325724711010370 0ustar 9 debian/ubuntu-push-client.conf0000644000000000000000000000023312325724711013612 0ustar description "ubuntu push notification client-side daemon" start on started dbus stop on stopped dbus exec /usr/lib/ubuntu-push-client/ubuntu-push-client debian/changelog0000644000000000000000000002620012325724730011045 0ustar ubuntu-push (0.2.1+14.04.20140423.1-0ubuntu1) trusty; urgency=high [ Samuele Pedroni ] * gave the client the ability to get config from commandline ( => easier automated testing) (LP: #1311600) [ John Lenton ] * Ensure ubuntu-push-client is the only one running in the session. (LP: #1309432) * Remove supurious numbers in brackets in notifications. (LP: #1308145) * Check the server certificate and server name. (LP: #1297969) * Loop whoopsie_identifier_generate until it starts working. (LP: #1309237) * In the session: set a flag on connect, clear it on successfully replying to ping or broadcast messages, check it at the top of autoredial. Also track the last autoredial, and set the delay flag if autoredial is re-called too quickly. (LP: #1309231) -- Ubuntu daily release Wed, 23 Apr 2014 11:54:00 +0000 ubuntu-push (0.2+14.04.20140411-0ubuntu1) trusty; urgency=medium [ John Lenton ] * New upstream release. [ Richard Huddie ] * added basic autopilot framework * configparser and http post updates * removed tests folder -- Ubuntu daily release Fri, 11 Apr 2014 18:31:57 +0000 ubuntu-push (0.1+14.04.20140404-0ubuntu1) trusty; urgency=low [ Tarmac ] * Merge automatic into trunk. -- Ubuntu daily release Fri, 04 Apr 2014 14:52:06 +0000 ubuntu-push (0.1+14.04.20140327-0ubuntu1) trusty; urgency=medium [ John Lenton ] * got rid of multiarch bug -- Ubuntu daily release Thu, 27 Mar 2014 14:11:31 +0000 ubuntu-push (0.1+14.04.20140325.2-0ubuntu1) trusty; urgency=low [ Diogo Baeder de Paula Pinto ] * [r=pedronis] Adding authorization field to the ConnectMsg struct [ Robert Bruce Park ] * [r=chipaca] Minor cleanup, with wrap-and-sort. [ Nicola Larosa ] * [r=pedronis] Reflow comments so that subsequent changes are more readable. Only comment reflows, no other changes. * [r=pedronis] Clean up docs and comments, and make them look better in go doc. No behavior change at all. [ john.lenton@canonical.com ] * [r=pedronis] A thin wrapper around libwhoopsie/identifier.h. * [r=pedronis] A simplified (and more testable) dbus api * [r=pedronis] A simplified, testable, Network Manager wrapper * [r=pedronis] A super simple connectivity api (in the "am i connected?" sense) * [r=pedronis] Switched networkmanager to use the non-deprecated api for state. * [r=pedronis] moved the object proxy into the endpoint * [r=pedronis] Made the bus support multi-valued signals (preparatory for notifications). Also added tests for TestingBus. * [r=pedronis] notifications! first, a low-level api. * [r=pedronis] URLDispatcher (and extended endpoint.Call to return []interface{}) * [r=pedronis] moved a bunch of packages under bus/ * [r=pedronis] change a few of the bus/* services to take a bus.Endpoint instead of a bus.Bus * [r=pedronis] reworked bus.Endpoint to have a Dial() method, added an AutoRedialer() and put the redialing logic in there (for use on sessionbus as well, later). * [r=pedronis] Nuked the connectivity example. * [r=pedronis] Renamed bus/connectivity's Config to ConnectivityConfig. * [r=pedronis] Introducing AutoRetry, a generic AutoRetry. * [r=pedronis] Made bus.Endpoint's WatchSignal use an (exported) channel for waiting between sending values, if the channel is not nil. * [r=pedronis] The client session level map. Interesting as an interface and not much more, right now. * [r=pedronis] A wild client session appears! * [r=pedronis] get rid of a race in the bus/testing watchticker thing * [r=pedronis] The handling of the ping. * [r=pedronis,chipaca] Broadcasting your horizons. * [r=pedronis] The running man. * [r=pedronis] Starting to take shape. * [r=pedronis] Killed checkRunnable; renamed: Dial -> connect, run -> loop. * [r=pedronis] Ladies and gentlemen, the client session. * [r=pedronis] first step of the v0 of the client * [r=pedronis] second step of the v0 of the client: getting the device id * [r=pedronis] part 3: setting up the bus * [r=pedronis] Part 4: added State to client/session, to aid in testing some aspects of this. * [r=pedronis] added handleConnState * [r=pedronis] Several things: features:. * bus/testing/'s Endpoint now tracks Calls; call bus/testing.GetCallCargs(endp) to get the list. * Client.handleErr, Client.handleNotification and Client.handleClick (and tests) cleanups:. * renamed client's Client's connState to hasConnectivity * split out code from handleConnState into initSession/connectSession/disconnectSession * [r=pedronis] Several things: features:. * Client.doLoop, the puppet master. fixes and cleanups:. * added log_level to client config * added the mysterious sessionRetryCh, used in doLoop to avoid a rather common starvation scenario. * found a way not to panic out in initSession (not that it's much better) * unified logging in the client tests a bit * added logging to session's start error states. * [r=pedronis] Reworked or refactored util/redialer, and a bit of client/session, and client. * [r=pedronis] TestLogger * [r=pedronis] and this completes the client library (for now) * [r=pedronis] made GetSourceRelative look at the environ to help make the tests pass in packaging * [r=pedronis] Gave client a constructor, moved setting config file to there. * [r=pedronis] change the levelmap interface to return errors * [r=pedronis] this is sqlevelmap * [r=pedronis] bring sqlevelmap into session * [r=pedronis] and this gives the client the ability to persist its session's levelmap * [r=pedronis] The Push Client itself. * [r=diogobaeder] Merging the packaging branch (to get on the CI train). * [r=didrocks] Fixes to packaging, as suggested by didrocks. * Bring back source/format, so executable .install file works. [ Timo Jyrinki ] * [r=chipaca] Add http13client copyright information and use GPL-3.0 (non-+) license consistently. [ Ubuntu daily release ] * New rebuild forced [ Samuele Pedroni (Canonical Services Ltd.) ] * [r=chipaca] and as a start we get some protocol support and a development server and infrastructure * [r=chipaca] couple of extra tests and changes to improve test coverage * [r=chipaca] -insecure (don't check certs) -reportPings=f (don't report pings) flags for acceptanceclient * [r=chipaca] make the tracker used by the session for logging pluggable * [r=chipaca] introduce CONNACK message from the server after CONNECT to inform the client of connection params like ping interval * [r=chipaca] protocol diagrams using graphviz * [r=chipaca] introduce middleware in the http handling that recovers and converts panics into 500 errors, profit (remove 500 ad hoc code) * [r=bloodearnest] log some debug info about runtime configuration of the dev server; also tweak play-around config.json with some slightly saner values * [r=chipaca] teach config how to behave with anonymous fields, unexported fields, and to compose a config reading from many files; move some shared/sharable things into testing/ * [r=chipaca] make server/dev into composable pieces, somewhat big mostly because of lots of shuffling around * [r=chipaca] populate /server with the runners code; generalize acceptance.sh * [r=chipaca] exchanges don't require to be so tied to a particular broker * [r=chipaca] put simple broker in its own package, reorg most of its tests as a common testsuite; fix TestBroadcast to test what it says on the tin * [r=chipaca] introduce reusable TestBrokerConfig and TestBrokerSession * [r=chipaca] check that the data field is not missing * [r=pedronis] [trivial ]support supplying auxiliary configs to the server in acceptance tests * [r=chipaca] some more info reported out of session, some tweaks * [r=chipaca] add indirection to accessing the broadcast exchanges on the broadcast queue in the broker suite * [r=chipaca] fix corner cases like client level too ahead etc, with acceptance tests * [r=chipaca] base the simple logger only on having a log.Logger-style Output(); given this we can introduce a testing.TestLogger that does redirecting of logs to the gocheck.C object if wired in SetUpTest and also does its own capture * [r=chipaca] use TestLogger in more places * [r=chipaca] be explicit with the MinLogger interface, stops 1.1 compiler from exploding * [r=pedronis] [trivial] reorg imports in: config logger protocol server testing as: stdlib -- 3rdparty -- own * [r=pedronis] [trivial] use Assert in place of Check to sanity check api http reqs in acceptance; use a longer ping in TestSessionLoopExchangeNextPing * [r=chipaca] add support for expiration of broadcasts with trivial implementation in the in-memory pending store * [r=chipaca] starting splitting out helpers in the acceptance tests * [r=chipaca] restructure acceptance tests into reusable suites * [r=chipaca] add acceptance test about broadcast expiration * [r=diogobaeder] simplify acceptance test; don't hide that MakeHandlersMux returns a *http.ServeMux * [r=verterok] add some flexibility in how the requests get the store; log unexpected store related errors * [r=teknico] expose a couple of helpers for reuse * [r=pedronis] further small doc cleanups * [r=teknico] * fix the fact that exchanges were reusing broadcast messages but the split state of those wasn't reset fix naming in tests that was reversed. * [r=teknico] refactor acceptance tests to expose more hooking points/details * [r=pedronis] [trivial] variable spelling * [r=pedronis] [trivial] hook to massage requests sent to the http api server by the acceptance test suite * [r=chipaca] let the device listener setup code also take a prebuilt listener * [r=chipaca] vendor the go 1.3 development net/http bits which properly/better support timeouts for requests; see _using.txt and Makefile for the recipe in http13client * [r=chipaca] add timeing out to webhecker using the vendorized go 1.3 net/http in http13client * [r=chipaca] introduce package gethosts implementing finding hosts to connect to for delivery of notifications -- Ubuntu daily release Tue, 25 Mar 2014 17:27:09 +0000 ubuntu-push (0.1-0ubuntu1) trusty; urgency=medium * Getting ready for CI train. -- John Lenton Thu, 20 Mar 2014 12:20:13 +0000 ubuntu-push (0.1-0pre4) trusty; urgency=medium * Pointing it to staging. Building a source package. -- John Lenton Fri, 07 Feb 2014 19:35:50 +0000 ubuntu-push (0.1-0pre3) trusty; urgency=medium * first one with a config file and upstart thingie! -- John Lenton Fri, 07 Feb 2014 11:29:36 +0000 ubuntu-push (0.1-0pre2) trusty; urgency=medium * A lot closer! -- John Lenton Thu, 06 Feb 2014 17:31:39 +0000 ubuntu-push (0.1-0pre1) trusty; urgency=low * Initial release -- John Lenton Sun, 26 Jan 2014 22:53:09 +0000 debian/rules0000755000000000000000000000044712325724711010257 0ustar #!/usr/bin/make -f # -*- makefile -*- export DH_GOPKG := launchpad.net/ubuntu-push export DEB_BUILD_OPTIONS := nostrip export UBUNTU_PUSH_TEST_RESOURCES_ROOT := $(CURDIR) override_dh_install: dh_install -Xusr/bin/cmd -Xusr/bin/dev --fail-missing %: dh $@ --buildsystem=golang --with=golang debian/control0000644000000000000000000000264412325724711010603 0ustar Source: ubuntu-push Section: net Priority: optional X-Original-Maintainer: John Lenton Maintainer: Ubuntu Developers Build-Depends: debhelper (>= 9), dh-exec (>= 0.3), dh-golang, golang-go, golang-go-dbus-dev, golang-go-xdg-dev, golang-gocheck-dev, golang-gosqlite-dev, libgcrypt11-dev, libglib2.0-dev (>= 2.31.6), libwhoopsie-dev, Standards-Version: 3.9.5 Homepage: http://launchpad.net/ubuntu-push Vcs-Bzr: lp:ubuntu-push Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-push-hackers/ubuntu-push/trunk/files Package: ubuntu-push-client Architecture: any Multi-Arch: foreign Depends: dbus, network-manager, qtdeclarative5-unity-notifications-plugin | notification-daemon, url-dispatcher, ${misc:Depends}, ${shlibs:Depends}, Built-Using: ${misc:Built-Using} Description: Ubuntu Push Notifications client-side daemon The Ubuntu Push Notifications client-side daemon. Package: golang-ubuntu-push-dev Architecture: all Depends: ${misc:Depends}, ${shlibs:Depends}, Built-Using: ${misc:Built-Using} Description: Ubuntu Push Notifications client-side daemon development package The Ubuntu Push Notifications client-side daemon library. . This package contains the source.