commit:     e536cb3322bc9fd988349e8f1dcf169b3160c85b
Author:     Lucian Poston <lucianposton <AT> pm <DOT> me>
AuthorDate: Wed Feb 12 10:51:41 2020 +0000
Commit:     Göktürk Yüksek <gokturk <AT> gentoo <DOT> org>
CommitDate: Wed Feb 12 17:37:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e536cb33

app-admin/lastpass-binary-component: Install to both firefox dirs

Firefox's directory for native messaging hosts is a compile-time
variable. www-client/firefox-bin is set to a directory under /usr/lib/,
while www-client/firefox varies. This -r1 bump will install to both
locations so that both firefox and firefox-bin are able to locate the
plugin.

Closes: https://bugs.gentoo.org/688104
Closes: https://github.com/gentoo/gentoo/pull/14636
Bug: https://bugs.gentoo.org/687746
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Lucian Poston <lucianposton <AT> pm.me>
Signed-off-by: Göktürk Yüksek <gokturk <AT> gentoo.org>

 .../lastpass-binary-component-4.19.0-r1.ebuild     | 116 +++++++++++++++++++++
 1 file changed, 116 insertions(+)

diff --git 
a/app-admin/lastpass-binary-component/lastpass-binary-component-4.19.0-r1.ebuild
 
b/app-admin/lastpass-binary-component/lastpass-binary-component-4.19.0-r1.ebuild
new file mode 100644
index 00000000000..0913632e723
--- /dev/null
+++ 
b/app-admin/lastpass-binary-component/lastpass-binary-component-4.19.0-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Binary component required by the LastPass Password Manager 
browser extension"
+HOMEPAGE="https://helpdesk.lastpass.com/downloading-and-installing/#h5";
+# sadly, upstream has no versioned distfiles
+SRC_URI="https://download.cloud.lastpass.com/linux/lplinux.tar.bz2 -> 
${P}.tar.bz2"
+
+LICENSE="LastPass"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+RESTRICT="bindist strip mirror" # We can't mirror it, but we can fetch it
+
+LASTPASS_EXEDIR=/opt/lastpass/
+
+QA_PREBUILT="
+       ${LASTPASS_EXEDIR}nplastpass*
+"
+
+S="${WORKDIR}"
+
+src_install() {
+       # This is based on the upstream installer script that's in the tarball
+       bin=nplastpass
+       use amd64 && bin="${bin}64"
+       exeinto ${LASTPASS_EXEDIR}
+       doexe "${S}"/${bin}
+
+       # Generate the policy file for Chrome/Chromium/Opera
+       cat >"${T}"/lastpass_policy.json <<-EOF || die
+       {
+               "ExtensionInstallSources": [
+                       "https://lastpass.com/*";,
+                       "https://*.lastpass.com/*";,
+                       "https://d1jxck0p3rkj0.cloudfront.net/lastpass/*";
+               ]
+       }
+       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",
+               "description": "LastPass",
+               "path": "${LASTPASS_EXEDIR}${bin}",
+               "type": "stdio",
+               "allowed_origins": [
+                       "chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/",
+                       "chrome-extension://debgaelkhoipmbjnhpoblmbacnmmgbeg/",
+                       "chrome-extension://hnjalnkldgigidggphhmacmimbdlafdo/",
+                       "chrome-extension://hgnkdfamjgnljokmokheijphenjjhkjc/"
+               ]
+       }
+       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
+
+       # 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": [
+                       "supp...@lastpass.com"
+               ]
+       }
+       EOF
+       # Install the app manifest for both firefox and firefox-bin
+       # 
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
+       insinto /usr/lib64/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";
+}

Reply via email to