| # Copyright 1999-2015 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| inherit eutils |
| |
| DESCRIPTION="Online password manager and form filler that makes web browsing easier and more secure" |
| HOMEPAGE="https://lastpass.com/misc_download2.php" |
| # sadly, upstream has no versioned distfiles |
| DIST_MAIN=lplinux-${PV}.tar.bz2 |
| DIST_CRX=lpchrome_linux-${PV}.crx # Use by both firefox+chrome/chromimum code |
| DIST_XPI=lp_linux-${PV}.xpi |
| SRC_URI=" |
| https://lastpass.com/lplinux.tar.bz2 -> ${DIST_MAIN} |
| https://lastpass.com/lpchrome_linux.crx -> ${DIST_CRX} |
| firefox? ( https://lastpass.com/lp_linux.xpi -> ${DIST_XPI} )" |
| |
| LICENSE="LastPass" |
| SLOT="0" |
| KEYWORDS="-* ~x86 ~amd64" |
| IUSE="+chromium +firefox +chrome" |
| RESTRICT="strip mirror" # We can't mirror it, but we can fetch it |
| |
| DEPEND="app-arch/unzip" |
| RDEPEND=" |
| chrome? ( || ( |
| www-client/google-chrome |
| www-client/google-chrome-beta |
| www-client/google-chrome-unstable |
| ) ) |
| chromium? ( >=www-client/chromium-32.0.1700.102 ) |
| firefox? ( www-client/firefox )" |
| REQUIRED_USE="|| ( firefox chromium chrome )" |
| |
| LASTPASS_EXEDIR=/opt/lastpass/ |
| |
| QA_PREBUILT=" |
| ${LASTPASS_EXEDIR}nplastpass* |
| /usr/lib*/nsbrowser/plugins/libnplastpass*.so |
| /usr/lib*/firefox/browser/extensions/support@lastpass.com/platform/Linux_x86_64-gcc3/components/lpxpcom_x86_64.so |
| /usr/lib*/firefox/browser/extensions/support@lastpass.com/platform/Linux_x86-gcc3/components/lpxpcom.so |
| " |
| |
| S="${WORKDIR}" |
| |
| src_unpack() { |
| unpack ${DIST_MAIN} |
| mkdir -p "${S}"/crx || die |
| # bug #524864: strip Chrome CRX header |
| # otherwise the unzip warning can be fatal in some cases |
| dd bs=306 skip=1 if="${DISTDIR}"/${DIST_CRX} of="${T}"/lpchrome_linux.zip 2>/dev/null || die |
| unzip -qq -o "${T}"/lpchrome_linux.zip -d "${S}"/crx || die |
| } |
| |
| 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 |
| |
| # despite the name, this piece seems used by both firefox+chrome |
| exeinto /usr/$(get_libdir)/nsbrowser/plugins |
| doexe "${S}"/crx/lib${bin}.so |
| |
| cat >"${T}"/lastpass_policy.json <<-EOF || die |
| { |
| "ExtensionInstallSources": [ |
| "https://lastpass.com/*", |
| "https://*.lastpass.com/*", |
| "https://*.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/" |
| ] |
| } |
| EOF |
| |
| for d in \ |
| $(usex chromium /etc/chromium '') \ |
| $(usex chrome /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 |
| |
| if use firefox; then |
| d="$D/usr/$(get_libdir)/firefox/browser/extensions/support@lastpass.com" |
| mkdir -p $d || die |
| unzip -qq -o "${DISTDIR}/${DIST_XPI}" -d "$d" || die |
| fi |
| } |
| |
| pkg_postinst() { |
| einfo "Visit https://lastpass.com/dl/inline/?full=1 to finish installing for Chrome/Chromium/Firefox" |
| } |