app-admin/lastpass-binary-component: new package #571280
authorGöktürk Yüksek <gokturk@binghamton.edu>
Mon, 4 Apr 2016 07:24:00 +0000 (03:24 -0400)
committerRobin H. Johnson <robbat2@gentoo.org>
Fri, 22 Apr 2016 15:07:07 +0000 (08:07 -0700)
This is a split off from app-admin/lastpass and only installs the binary
component required by the browser extension, as opposed to installing
the extension too. Beginning with lastpass-4, the upstream only
installs the binary component.

Also, add this package as a blocker for app-admin/lastpass. These two
packages cannot be installed at the same time as that would introduce
file collisions.

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=571280

Package-Manager: portage-2.2.26
(cherry picked from commit 6c8d1cd984fe45857ff9fac95ace41fddb1532b0)
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
app-admin/lastpass-binary-component/Manifest [new file with mode: 0644]
app-admin/lastpass-binary-component/lastpass-binary-component-4.1.2.ebuild [new file with mode: 0644]
app-admin/lastpass-binary-component/metadata.xml [new file with mode: 0644]
app-admin/lastpass/lastpass-3.2.16.ebuild

diff --git a/app-admin/lastpass-binary-component/Manifest b/app-admin/lastpass-binary-component/Manifest
new file mode 100644 (file)
index 0000000..a76d7fc
--- /dev/null
@@ -0,0 +1 @@
+DIST lastpass-binary-component-4.1.2.tar.bz2 1623477 SHA256 adb0e91f8d212d34dbb85db0b11738fe36db1a741ad5674d7070c4019a9fc75e SHA512 6fd518fa19f7206a1007376460c61e5a5c8d868126a767b3978309f0cc7ccd069e743cb12364e6841d8d3cb29452d058122b95f42bcfd2bd4deb4b8c77dc5f75 WHIRLPOOL c50bde0ee3f82abe56803beb2bda09786f7806b5e480eb8401fe0302ee984465f2682af66243095f3ea83744d59d6d3548806c423b69a8603abed9fc3ba3d00c
diff --git a/app-admin/lastpass-binary-component/lastpass-binary-component-4.1.2.ebuild b/app-admin/lastpass-binary-component/lastpass-binary-component-4.1.2.ebuild
new file mode 100644 (file)
index 0000000..31e9ef4
--- /dev/null
@@ -0,0 +1,74 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+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://lastpass.com/lplinux.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="LastPass"
+SLOT="0"
+KEYWORDS="-* ~x86 ~amd64"
+RESTRICT="strip mirror" # We can't mirror it, but we can fetch it
+
+RDEPEND="
+       !!app-admin/lastpass
+"
+
+LASTPASS_EXEDIR=/opt/lastpass/
+
+QA_PREBUILT="
+       ${LASTPASS_EXEDIR}nplastpass*
+"
+
+S="${WORKDIR}/lplinux"
+
+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}
+
+       cat >"${T}"/lastpass_policy.json <<-EOF || die
+       {
+               "ExtensionInstallSources": [
+                       "https://lastpass.com/*",
+                       "https://*.lastpass.com/*",
+                       "https://d1jxck0p3rkj0.cloudfront.net/lastpass/*"
+               ]
+       }
+       EOF
+       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
+
+       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
+
+}
+
+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 "Opera: https://lastpass.com/dl/"
+}
diff --git a/app-admin/lastpass-binary-component/metadata.xml b/app-admin/lastpass-binary-component/metadata.xml
new file mode 100644 (file)
index 0000000..221747f
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="person">
+    <email>gokturk@binghamton.edu</email>
+    <name>Göktürk Yüksek</name>
+  </maintainer>
+  <maintainer type="person">
+    <email>robbat2@gentoo.org</email>
+    <name>Robin H. Johnson</name>
+  </maintainer>
+  <longdescription lang="en">
+    The binary features for Lastpass include faster encryption/decryption,
+    clipboard integration, smart card authentication and more for
+    <pkg>www-client/google-chrome</pkg>, <pkg>www-client/chromium</pkg>,
+    and <pkg>www-client/opera</pkg> web browsers. For
+    <pkg>www-client/firefox</pkg> this package is not required as the
+    extension bundles the binary components already.
+  </longdescription>
+</pkgmetadata>
index 98e32455a92cf9b4f5a63e5e1b27a8bc1c92932b..aa3028777e19187165761af488e43e3f9d487bbb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -24,6 +24,7 @@ RESTRICT="strip mirror" # We can't mirror it, but we can fetch it
 
 DEPEND="app-arch/unzip"
 RDEPEND="
+       !!app-admin/lastpass-binary-component
        chrome? ( || (
                www-client/google-chrome
                www-client/google-chrome-beta