{"action":"created","issue":{"url":"https://api.github.com/repos/xbmc/xbmc/issues/6474","labels_url":"https://api.github.com/repos/xbmc/xbmc/issues/6474/labels{/name}","comments_url":"https://api.github.com/repos/xbmc/xbmc/issues/6474/comments","events_url":"https://api.github.com/repos/xbmc/xbmc/issues/6474/events","html_url":"https://github.com/xbmc/xbmc/pull/6474","id":57999817,"number":6474,"title":"[osx] - add inapp update feature via sparkle framework","user":{"login":"Memphiz","id":701326,"avatar_url":"https://avatars.githubusercontent.com/u/701326?v=3","gravatar_id":"","url":"https://api.github.com/users/Memphiz","html_url":"https://github.com/Memphiz","followers_url":"https://api.github.com/users/Memphiz/followers","following_url":"https://api.github.com/users/Memphiz/following{/other_user}","gists_url":"https://api.github.com/users/Memphiz/gists{/gist_id}","starred_url":"https://api.github.com/users/Memphiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Memphiz/subscriptions","organizations_url":"https://api.github.com/users/Memphiz/orgs","repos_url":"https://api.github.com/users/Memphiz/repos","events_url":"https://api.github.com/users/Memphiz/events{/privacy}","received_events_url":"https://api.github.com/users/Memphiz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-02-17T23:30:35Z","updated_at":"2015-02-19T08:47:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/xbmc/xbmc/pulls/6474","html_url":"https://github.com/xbmc/xbmc/pull/6474","diff_url":"https://github.com/xbmc/xbmc/pull/6474.diff","patch_url":"https://github.com/xbmc/xbmc/pull/6474.patch"},"body":"Well feature time. This PR adds the Sparkle.framework based inapp update feature to Kodi on osx. Most osx users know this updating system from various other apps. Its the quasi standard updater.\r\n\r\nThis PR does:\r\n1. add sparkle framework building to our target depends (we build it from source - no binaries right? ^^)\r\n2. adds all the needed stuff to the osx project\r\n\r\nThis is how it looks like when an update is available:\r\n\r\nhttps://dl.dropboxusercontent.com/u/30371861/sparkle/01-sparkle-menu.png\r\nhttps://dl.dropboxusercontent.com/u/30371861/sparkle/02-sparkle-update.png\r\nhttps://dl.dropboxusercontent.com/u/30371861/sparkle/03-sparkle-updateprogress.png\r\nhttps://dl.dropboxusercontent.com/u/30371861/sparkle/04-sparkle-readytoinstall.png\r\n\r\nThe user can either manually \"look\" for updates via the menu - or let sparkle do its magic. He also can decide to skip only one version of kodi or if he doesn't want to update now he can delay it. He even can activate an auto update feature without user interaction.\r\n\r\nIf you wonder why there is a public key in those commits. For security reasons we have to sign the DMG so that the updater can verify that the update is really done by us (i would hook the signing up to the release jenkins job - or the alpha job in case we want to provide alpha update via sparkle).\r\n\r\nBasically the signing is done because of the same reasons we have to sign the apk file for android.\r\n\r\nWhat do you think? (given the risk free integration we could even think about taking this into 14.2 - once its in we can publish versions via an serverside xml).\r\n\r\nAs you can see the updatexml which holds the metadata about available updates can be defined in version.txt (in case we want to have different files for alpha and final releases). For now i just would put them to the osx downloads on the mirror.\r\n\r\nOnce we release we just kick the jenkins job (which is not adapted yet) which signs the dmg - the sign process results in an dsa key hash which has to be added to the xml file (this is manual work - like when i update cydia repo). XML file structure is straight forward (title, version, size, dsa hash, changelog/description).\r\n\r\nYeah long text. :) - wanted?\r\n"},"comment":{"url":"https://api.github.com/repos/xbmc/xbmc/issues/comments/75016072","html_url":"https://github.com/xbmc/xbmc/pull/6474#issuecomment-75016072","issue_url":"https://api.github.com/repos/xbmc/xbmc/issues/6474","id":75016072,"user":{"login":"Memphiz","id":701326,"avatar_url":"https://avatars.githubusercontent.com/u/701326?v=3","gravatar_id":"","url":"https://api.github.com/users/Memphiz","html_url":"https://github.com/Memphiz","followers_url":"https://api.github.com/users/Memphiz/followers","following_url":"https://api.github.com/users/Memphiz/following{/other_user}","gists_url":"https://api.github.com/users/Memphiz/gists{/gist_id}","starred_url":"https://api.github.com/users/Memphiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Memphiz/subscriptions","organizations_url":"https://api.github.com/users/Memphiz/orgs","repos_url":"https://api.github.com/users/Memphiz/repos","events_url":"https://api.github.com/users/Memphiz/events{/privacy}","received_events_url":"https://api.github.com/users/Memphiz/received_events","type":"User","site_admin":false},"created_at":"2015-02-19T08:47:21Z","updated_at":"2015-02-19T08:47:21Z","body":"but we sign the package - not the app the comment in depends configure states \"[enable gplv3 components. default off for android, on everywhere else])],\""}}