app-admin/lastpass-binary-component: bump (!) and fix the fetch failure #640506
authorGöktürk Yüksek <gokturk@gentoo.org>
Mon, 11 Dec 2017 00:52:35 +0000 (19:52 -0500)
committerGöktürk Yüksek <gokturk@gentoo.org>
Tue, 12 Dec 2017 02:55:43 +0000 (21:55 -0500)
"Let's extend LastPass support to Firefox using Native
Messaging. While doing so, let's modify our closed binary and change
who-knows-what too. And yeah, let's release it under the same version
4.1.44 because version bumps are sissies and only losers release
versioned tarballs."

Also separate the app manifest files for Chrome and Chromium because
allowed-origins are not the same. Add more comments to clarify the
file system locations for various installed files.

Update the postinst message to reflect that for some browsers users
have to enable the binary component manually after installing the
extension.

Closes: https://bugs.gentoo.org/640506
Package-Manager: Portage-2.3.8, Repoman-2.3.2

app-admin/lastpass-binary-component/Manifest
app-admin/lastpass-binary-component/lastpass-binary-component-4.1.44_p20171210.ebuild [moved from app-admin/lastpass-binary-component/lastpass-binary-component-4.1.44.ebuild with 51% similarity]

index 1cbcb8e814dc654c8985328817e15362c03221a5..3f6f4cab04a41e25d4e1b4b749e1c08618326ccd 100644 (file)
@@ -1 +1 @@
-DIST lastpass-binary-component-4.1.44.tar.bz2 1623477 SHA256 adb0e91f8d212d34dbb85db0b11738fe36db1a741ad5674d7070c4019a9fc75e SHA512 6fd518fa19f7206a1007376460c61e5a5c8d868126a767b3978309f0cc7ccd069e743cb12364e6841d8d3cb29452d058122b95f42bcfd2bd4deb4b8c77dc5f75 WHIRLPOOL c50bde0ee3f82abe56803beb2bda09786f7806b5e480eb8401fe0302ee984465f2682af66243095f3ea83744d59d6d3548806c423b69a8603abed9fc3ba3d00c
+DIST lastpass-binary-component-4.1.44_p20171210.tar.bz2 1625075 BLAKE2B 90812cfae90c90ab7f91ac293e501e9b8c6d0b4fca9e1f05e88865eb85042286308d2ce6eb90d306583aa9481de7588746a3402c3b4b9f29e2e540e4a4c2b287 SHA512 16ceebd054fe807975f838305044bf5e75ccbba2c592f7bf08af18d1209067c7e8b0e00457092242c3869de2ec5c59bfdfdb3ff06f801dbb2108b7dac1a7adbf
similarity index 51%
rename from app-admin/lastpass-binary-component/lastpass-binary-component-4.1.44.ebuild
rename to app-admin/lastpass-binary-component/lastpass-binary-component-4.1.44_p20171210.ebuild
index c46f9987de0a4d496e121a9f5ca30c48edb6a430..beff308bc57f4fae2ef420a222ce30f640d19e77 100644 (file)
@@ -23,7 +23,7 @@ QA_PREBUILT="
        ${LASTPASS_EXEDIR}nplastpass*
 "
 
-S="${WORKDIR}/lplinux"
+S="${WORKDIR}"
 
 src_install() {
        # This is based on the upstream installer script that's in the tarball
@@ -32,6 +32,7 @@ src_install() {
        exeinto ${LASTPASS_EXEDIR}
        doexe "${S}"/${bin}
 
+       # Generate the policy file for Chrome/Chromium/Opera
        cat >"${T}"/lastpass_policy.json <<-EOF || die
        {
                "ExtensionInstallSources": [
@@ -41,6 +42,13 @@ src_install() {
                ]
        }
        EOF
+       # Install the policy file for Chrome/Chromium/Opera
+       for d in /etc/chromium /etc/opt/chrome; do
+               insinto ${d}/policies/managed
+               doins "${T}"/lastpass_policy.json
+       done
+
+       # Generate the app manifest for Chrome/Opera
        cat >"${T}"/com.lastpass.nplastpass.json <<-EOF || die
        {
                "name": "com.lastpass.nplastpass",
@@ -55,19 +63,56 @@ src_install() {
                ]
        }
        EOF
+       # Install the app manifest for Chrome/Opera
+       # https://developer.chrome.com/apps/nativeMessaging
+       # https://dev.opera.com/extensions/message-passing/
+       insinto /etc/opt/chrome/native-messaging-hosts
+       doins "${T}"/com.lastpass.nplastpass.json
 
-       for d in /etc/chromium /etc/opt/chrome; do
-               insinto ${d}/policies/managed
-               doins "${T}"/lastpass_policy.json
-               insinto ${d}/native-messaging-hosts
-               doins "${T}"/com.lastpass.nplastpass.json
-       done
+       # Generate the app manifest for Chromium
+       cat >"${T}"/com.lastpass.nplastpass.json <<-EOF || die
+       {
+               "name": "com.lastpass.nplastpass",
+               "description": "LastPass",
+               "path": "${LASTPASS_EXEDIR}${bin}",
+               "type": "stdio",
+               "allowed_origins": [
+                       "chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/",
+                       "chrome-extension://debgaelkhoipmbjnhpoblmbacnmmgbeg/",
+                       "chrome-extension://hgnkdfamjgnljokmokheijphenjjhkjc/"
+               ]
+       }
+       EOF
+       # Install the app manifest for Chromium
+       # https://developer.chrome.com/apps/nativeMessaging
+       insinto /etc/chromium/native-messaging-hosts/
+       doins "${T}"/com.lastpass.nplastpass.json
 
+       # Generate the app manifest for Firefox
+       cat >"${T}"/com.lastpass.nplastpass.json <<-EOF || die
+       {
+               "name": "com.lastpass.nplastpass",
+               "description": "LastPass",
+               "path": "${LASTPASS_EXEDIR}${bin}",
+               "type": "stdio",
+               "allowed_extensions": [
+                       "support@lastpass.com"
+               ]
+       }
+       EOF
+       # Install the app manifest for Firefox
+       # https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_manifests#Manifest_location
+       insinto /usr/lib/mozilla/native-messaging-hosts/
+       doins "${T}"/com.lastpass.nplastpass.json
 }
 
 pkg_postinst() {
        einfo "This package only installs the components required by the browser extension."
        einfo "Visit the links below for your browser to install the extension itself:"
        einfo "Chrome/Chromium: https://lastpass.com/dl/inline/?full=1"
+       einfo "Firefox: https://lastpass.com/lastpassffx/"
        einfo "Opera: https://lastpass.com/dl/"
+       einfo
+       einfo "Chrome, Chromium and Opera users need to manually enable the binary component."
+       einfo "For more info, visit: https://lastpass.com/support.php?cmd=showfaq&id=5576"
 }