BloodHound: fix offline installation in sandbox using an undocumented electronZipDir option, https://github.com/electron/electron-packager/issues/187

This commit is contained in:
blshkv 2020-03-14 15:08:57 +08:00
parent ce1d3715b9
commit 65236ab45d
No known key found for this signature in database
GPG key ID: 273E3E90D1A6294F
11 changed files with 40 additions and 180 deletions

View file

@ -1,3 +1,2 @@
DIST electron-packager-14.0.1-node_modules.tar.gz 13202470 BLAKE2B 9ded47952b259bb9c4b65bd724d89ff88248f85d11f011a192bc963eff49cf2576c69bd4e6eb39da41cbdeb1faba7e9f8c33fa72b6d98cc1ff17fea9e0b71451 SHA512 d2214087530dcd39153d2f67ea92d147941aa66f793062e77f77b62c9830b964af84b36b164ef9b8d38b1dc54b55c058cb775fc3eb80bf474f6109e92d613b31
DIST electron-packager-14.0.1.tar.gz 171452 BLAKE2B d1621663cfe38c80277399145f13b0138f6830a637640334f96ff211e9c8d498ec41fb9ef0e25a88bca255d6f668313ee0122f922bb24ab42faa819b498f21a6 SHA512 f1b4aca4df63560492acb078e8255856d3a26c17915b27c2cc573c1b13586a645d8e4ca97f438794e0e26d37d818bcf790ccb1494f576a897e65f33734057f09
DIST electron-packager-14.2.1.tar.gz 174468 BLAKE2B 317753aa55d4859823ae8bcdfbf2b2af6da13e6fb1de827d09dd9eadb5c09ac246ed05a37c6a5590084fc3bce9c57f525776a3ed4758b58ac8fcac4f52cb25e9 SHA512 27fb24a394df9e5d9f1afafb101f73568d22e99f64129f9ae7f9641b8106d9562bcb2e0b9e5c03e703c3c53cfcb2064cfa0a1b6bf2b2b57300cd553bc38a8ce5

View file

@ -1,56 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Six Degrees of Domain Admin"
HOMEPAGE="https://github.com/electron-userland/electron-packager"
SRC_URI="https://github.com/electron-userland/electron-packager/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://dev.pentoo.ch/~blshkv/distfiles/electron-packager-14.0.1-node_modules.tar.gz"
LICENSE=""
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc"
DEPEND="net-libs/nodejs[npm]"
RDEPEND="${DEPEND}"
src_prepare(){
mv ${WORKDIR}/node_modules ${S}
eapply_user
}
src_compile(){
# For use in npm scripts (recommended)
# npm install electron-packager --save-dev
# For use from the CLI
# npm install electron-packager -g --prefix "${EPREFIX}" \
# --cache="${WORKDIR}/${P}-npm-cache"
npm build
# -g --prefix "${EPREFIX}"
# sys-cluster/ceph
# --offline --no-save --verbose --parseable \
# --no-rollback --no-progress --fetch-retries=0 \
# --nodedir="/usr/include/node" \
# --cache="${WORKDIR}/${P}-npm-cache" \
# --registry="http://npmjs.invalid" \
# --sass-binary-site="http://sass.invalid"
}
src_install(){
#this may be a wrong directory, but npm is a mess
local npm_module_dir="/usr/$(get_libdir)/node_modules/${PN}"
insinto "${npm_module_dir}"
doins -r {bin,node_modules,src,package.json,usage.txt}
dodoc CONTRIBUTING.md readme.md
use doc && dodoc -r docs
fperms +x "${npm_module_dir}/bin/electron-packager.js"
dosym "${npm_module_dir}/bin/electron-packager.js" "/usr/bin/${PN}"
}

View file

@ -1,4 +1,4 @@
# Copyright 1999-2019 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -10,14 +10,15 @@ SRC_URI="https://github.com/electron-userland/electron-packager/archive/v${PV}.t
LICENSE=""
SLOT="0"
KEYWORDS="~amd64"
#broken, "electon-packager version" fails to run
#KEYWORDS="~amd64"
IUSE="doc"
DEPEND="net-libs/nodejs[npm]"
RDEPEND="${DEPEND}"
src_prepare(){
mv ${WORKDIR}/node_modules ${S}
mv "${WORKDIR}/node_modules" "${S}"
eapply_user
}

View file

@ -1,61 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit eutils
DESCRIPTION="Six Degrees of Domain Admin"
HOMEPAGE="https://github.com/BloodHoundAD/BloodHound"
SRC_URI="https://github.com/BloodHoundAD/BloodHound/archive/${PV}.tar.gz -> ${P}.tar.gz
https://dev.pentoo.ch/~blshkv/distfiles/${P}-node_modules.tar.gz"
#create modules using "npm install"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE=""
DEPEND=">=net-libs/nodejs-12.10.0[npm]
dev-util/electron-packager"
RDEPEND="${DEPEND}
gnome-base/gconf"
BLOODHOUND_BINDIR="FAIL_TO_DETECT_ARCH"
QA_FLAGS_IGNORED="usr/lib.*/BloodHound/.*\.so"
src_prepare() {
epatch "${FILESDIR}/${PV}-singlearch.patch"
mv ${WORKDIR}/node_modules ${S}
eapply_user
}
src_compile() {
#npm shrinkwrap
#we provide node_modules, there is no need to install
#npm install \
if use amd64; then
npm run linuxbuild_64 || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-x64"
elif use x86; then
npm run linuxbuild_32 || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-ia32"
elif use arm; then
npm run linuxbuild_arm || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-armv7l"
elif use arm64; then
npm run linuxbuild_arm64 || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-arm64"
fi
}
src_install() {
dodir /usr/$(get_libdir)/${PN}
cp -R ${BLOODHOUND_BINDIR}/* "${ED}"/usr/$(get_libdir)/${PN} || die "Copy files failed"
newbin - ${PN} <<-EOF
#!/bin/sh
cd /usr/$(get_libdir)/${PN}
LD_LIBRARY_PATH=. exec ./${PN} "\${@}"
EOF
}

View file

@ -5,9 +5,12 @@ EAPI=6
inherit eutils
ELECTRON_PV="6.0.11"
DESCRIPTION="Six Degrees of Domain Admin"
HOMEPAGE="https://github.com/BloodHoundAD/BloodHound"
SRC_URI="https://github.com/BloodHoundAD/BloodHound/archive/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/electron/electron/releases/download/v${ELECTRON_PV}/electron-v${ELECTRON_PV}-linux-x64.zip
https://dev.pentoo.ch/~blshkv/distfiles/${P}-node_modules.tar.gz"
#create modules using "npm install"
@ -16,8 +19,8 @@ SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE=""
DEPEND=">=net-libs/nodejs-12.10.0[npm]
dev-util/electron-packager"
DEPEND=">=net-libs/nodejs-12.10.0[npm]"
# dev-util/electron-packager"
RDEPEND="${DEPEND}
gnome-base/gconf"
@ -25,8 +28,10 @@ BLOODHOUND_BINDIR="FAIL_TO_DETECT_ARCH"
QA_FLAGS_IGNORED="usr/lib.*/BloodHound/.*\.so"
src_prepare() {
epatch "${FILESDIR}/3.0.0-singlearch.patch"
mv ${WORKDIR}/node_modules ${S}
epatch "${FILESDIR}/3.0.3-singlearch.patch"
#https://github.com/electron/electron-packager/issues/187
epatch "${FILESDIR}/3.0.3-packager_14_2_1.patch"
mv "${WORKDIR}/node_modules" "${S}"
eapply_user
}
@ -35,17 +40,19 @@ src_compile() {
#we provide node_modules, there is no need to install
#npm install \
npm run-script webbuild || die "Webbuild failed to compile"
if use amd64; then
npm run linuxbuild_64 || die "Failed to compile"
ELECTRON_SKIP_BINARY_DOWNLOAD=1 npm run-script linuxbuild_64 || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-x64"
elif use x86; then
npm run linuxbuild_32 || die "Failed to compile"
npm run-script linuxbuild_32 || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-ia32"
elif use arm; then
npm run linuxbuild_arm || die "Failed to compile"
npm run-script linuxbuild_arm || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-armv7l"
elif use arm64; then
npm run linuxbuild_arm64 || die "Failed to compile"
npm run-script linuxbuild_arm64 || die "Failed to compile"
BLOODHOUND_BINDIR="BloodHound-linux-arm64"
fi
}

View file

@ -1,4 +1,3 @@
DIST BloodHound-3.0.0-node_modules.tar.gz 97777268 BLAKE2B 196a564b791034131510d365ab6408581b694ba35574f129049c0c19001be1c309221726cac797c8ce36620f1a96fc7d0d6bc6f910ef7d3105cb5baec7ff926e SHA512 a0e53e6b0b585f61605364fc0f67d1c8620ac1b6377f6159f266cc1d2e0eedc9131db05922af8b46e7060f8715e0fdcf56fc6e15cd837c59daa54ecac2861bbd
DIST BloodHound-3.0.0.tar.gz 10368615 BLAKE2B eb920e64e43dda38515bd02346a66bb6359f31eee0501ece22834b5ca62e8c615e6f7ce426a56a39c6ac9167ef88935240aca356fb750f38eab232a506188548 SHA512 8703c82a7c1e82e1d0d601109dab15e119960fb5681b3e1bbbfb8c0cd0ad760f27ad6a1c4d5d2f9534ce8aa543784047b4e6ab6d3a8c279b9f71fd67225e7c6c
DIST BloodHound-3.0.3-node_modules.tar.gz 97778094 BLAKE2B 9a0abb44f556dc179eba03818ffac99e5da6fd6de7e5b0f44708155b9d622ec0c4d8f9678179c75e739bb159c2491ebe6b9aa834aa2a9e2bd607fce80fd6c1be SHA512 81f57e801ee485a414a5b3edaad11e79d4f8569c3bc03668530c806fde5c8de7934465505325e2ec586682fb651e3bdd3bab096c73a5a895b7f0d591c699706d
DIST BloodHound-3.0.3-node_modules.tar.gz 97799744 BLAKE2B c9541b8f57104369a8deb4ca62ad80858b64babe19729255c4119b159e5ae204404ab7f5fa4d99db6c9c5adde6a091efbba1660e20939fb1b44a016db716d82a SHA512 553793e1fcb44601aaf506e89a9563aaa98d95d43f1a4050af53e0a0ccde26d3eff4f4302287ffe26758b5b654bb48b99448cf596fe3273a941e5e027adb9a87
DIST BloodHound-3.0.3.tar.gz 10370917 BLAKE2B ad7e9d86504530deb612a80852ceefe161237e4c0845890f517f0a5c96a55f15f59f2b2dfe8884bce32c46a347f4ebbdf9ed1d13607eba0ffa6c14bfb36c5279 SHA512 dcfb360b8eddf401c36cadd2528153180eae8d0dfceed02175075e8c8f3add947f4d21b465c39a0778bec5ffc304ad886e25b7445c7bdb0be610c483641c49b0
DIST electron-v6.0.11-linux-x64.zip 62382118 BLAKE2B fa384e268fcc2d6d97415852cbc6de9eecba43c3a4dc17fe801686535f555f16cdf0468e1b36bdd596defe24bc2a5c7e46252c1413026f4253f4ff99a69b30f1 SHA512 311ae0c8213931b69925ccc844fea0482860be549d124a1af2128e5044fa8dc4632e742ac57075f55d6f5dd24c1059dea3ed1d2c534d70341e3fae295ff1b4d4

View file

@ -1,14 +0,0 @@
--- a/package.json.orig 2019-07-04 02:37:46.000000000 +0800
+++ b/package.json 2019-07-05 09:10:05.944322006 +0800
@@ -31,7 +31,10 @@
"dev": "concurrently -k \"babel-node server.js\" \"npm start\"",
"winbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=win32 --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin --icon=src/img/icon.ico",
"macbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=darwin --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin --icon=src/img/icon.icns",
- "linuxbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin"
+ "linuxbuild_32": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=ia32 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=x64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_arm": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=armv71 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_arm64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=arm64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin"
},
"babel": {
"presets": [

View file

@ -1,14 +0,0 @@
--- package.json.orig 2019-08-29 04:16:38.000000000 +0800
+++ package.json 2019-08-31 00:45:45.280628863 +0800
@@ -31,7 +31,10 @@
"dev": "concurrently -k \"babel-node server.js\" \"npm start\"",
"winbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=win32 --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin --icon=src/img/icon.ico",
"macbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=darwin --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin --icon=src/img/icon.icns",
- "linuxbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin"
+ "linuxbuild_32": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=ia32 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=x64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_arm": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=armv71 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_arm64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=arm64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin"
},
"babel": {
"presets": [

View file

@ -0,0 +1,11 @@
--- package.json.orig 2020-03-14 14:10:23.346913326 +0800
+++ package.json 2020-03-14 14:13:33.217924052 +0800
@@ -51,7 +51,7 @@
"cross-env": "^6.0.3",
"css-loader": "^3.2.0",
"electron": "^6.0.11",
- "electron-packager": "^14.1.1",
+ "electron-packager": "^14.2.1",
"express": "^4.16.2",
"style-loader": "^1.0.0",
"webpack": "^4.41.0",

View file

@ -1,14 +1,15 @@
--- package.json.orig 2020-02-12 02:44:33.000000000 +0800
+++ package.json 2020-02-12 09:35:27.771921553 +0800
@@ -31,7 +31,10 @@
--- package.json.orig 2020-03-11 02:33:15.000000000 +0800
+++ package.json 2020-03-14 11:56:44.098460296 +0800
@@ -31,7 +31,11 @@
"dev": "concurrently -k \"babel-node server.js\" \"npm start\"",
"winbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=win32 --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin --icon=src/img/icon.ico",
"macbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=darwin --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin --icon=src/img/icon.icns",
- "linuxbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin && electron-packager . BloodHound --platform=linux --overwrite --arch=armv7l --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin && electron-packager . BloodHound --platform=linux --arch=arm64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin"
+ "linuxbuild_32": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=ia32 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=x64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_arm": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=armv71 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin",
+ "linuxbuild_arm64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=arm64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=Ingestors --ignore=node_modules/\\.bin"
+ "webbuild": "webpack --config webpack.config.production.js",
+ "linuxbuild_32": "electron-packager . BloodHound --platform=linux --arch=ia32 --electronZipDir=../../distdir",
+ "linuxbuild_64": "electron-packager . BloodHound --platform=linux --arch=x64 --electronZipDir=../../distdir",
+ "linuxbuild_arm": "electron-packager . BloodHound --platform=linux --arch=armv71 --electronZipDir=../../distdir",
+ "linuxbuild_arm64": "electron-packager . BloodHound --platform=linux --arch=arm64 --electronZipDir=../../distdir"
},
"babel": {
"presets": [

View file

@ -1,13 +0,0 @@
--- src/BloodHound/package.json 2017-08-29 17:21:40.983333337 +0200
+++ package.json 2017-08-29 17:38:59.786666670 +0200
@@ -24,7 +24,9 @@
"dev": "concurrently -k \"babel-node server.js\" \"npm start\"",
"winbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=win32 --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=node_modules/\\.bin --icon=src/img/icon.ico",
"macbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=darwin --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=node_modules/\\.bin --icon=src/img/icon.icns",
- "linuxbuild": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=all --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=node_modules/\\.bin"
+ "linuxbuild_32": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=ia32 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=node_modules/\\.bin",
+ "linuxbuild_64": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=x64 --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=node_modules/\\.bin",
+ "linuxbuild_arm": "webpack --config webpack.config.production.js && electron-packager . BloodHound --platform=linux --arch=armv7l --overwrite --prune --ignore=./*.zip --ignore=./BloodHound.* --ignore=BloodHoundExampleDB.graphdb --ignore=node_modules/\\.bin"
},
"babel": {
"presets": [