Update nodejs.eclass

Fix initial installation of zigbee2mqtt
New version node-red 3.1.3
Refactoring zigbee2mqtt

Signed-off-by: INODE64 <web@inode64.com>
This commit is contained in:
INODE64 2023-12-14 18:17:58 +01:00
parent 9e0b4c0d85
commit 135a358a84
7 changed files with 99 additions and 9 deletions

View File

@ -3,5 +3,8 @@ AUX node-red.conf 43 BLAKE2B 49ffe797509f7b7b2b536cbf15ae3344700bd6e5d2584caf65d
AUX node-red.service 840 BLAKE2B d748f5230c6cdcb5c26c9f815b457d599488347846ae4b120fcf5bfc719882dc7ef0491bc804bcb53496e480e32809284c160e4829f6073fc4771a0bd14216d7 SHA512 22226fdfcaa100455365f7ccd3efec7fa68d1984ca4de5b9259d2e14ac12e688b174474c30872e6eb8ac760251a75dfd1582f20b667eec62be041516101ec5c6
DIST node-red-3.0.2-node_modules.tar.xz 11665624 BLAKE2B 828fe99506d7c0393beac747ca3f1047582fe006a53c1dd8b864ae73709bb9dc767a5fefe40205d6bfd6551fe1cf3b9cf2f565fa5abf01ef4182d5e43864e1f0 SHA512 823d14d07319d1d8cb361dd0dd014444d8e5d8116021981378b33ee9c19d79f9b3ab106c23cd0731d52b23d3ff862e7bb37910858621a84560015794275b12c1
DIST node-red-3.0.2.tar.gz 6515723 BLAKE2B a205de81e26913baf772e588f38b8eaae6dca8b1c67f2f7ee2717833dc94666ab5d8d6e8433e87e81a7caa1b659d57144a46cda86626787cdeb3f5ec010d7309 SHA512 5828ce643a9b119ac95e22947f5fd7db84c6a5e288d1bc4c49504cd7ca478ff950eadce310b87ccabecb54b43c016ba11c2ee31c1a2b411f70ff0f514915a325
DIST node-red-3.1.3-node_modules.tar.xz 25192968 BLAKE2B 983b90e756c77d644f96dcc866715bdbbe2ba4249898b06cb10e527d44700eb3e906d34652213e9b04b90423d09791556e31ca479f25ec07650f989e364f70d8 SHA512 f122bf36d96151fc9d3ae4cb0924add029f1f232f4aa54eb636e220bb49c3de42e4df8160541f29832a3d4b8e4e44f326c6065ed27981eae7a2a72eeb0c04457
DIST node-red-3.1.3.tar.gz 7536723 BLAKE2B f0e9dcf3608a23c2e6c05debdbc2f9ffa1813ed8c8b44aa1972efc3119870b5738fea3300f34941de6da999e2bb6a355a9c2d1533c60cc80ea6d6f54f56835a1 SHA512 46603ad4ce3610bd890a65e16e462cd5d0096406dacc54ca9ddd794afcab5894f623e751894b4ed9ff63f98450a66be184838855d435afd2e687c9794470afb2
EBUILD node-red-3.0.2.ebuild 1038 BLAKE2B 3088b6d955228410dc4cdd3e534673666fb1c8a832cc633cc613471ee6323411a598eb5d28ba1216fe039fff3cbcda8c199bdb80f81880392b66de7bcc822188 SHA512 37b545d5367155ac4441ecd4a02a305c79d8959ae3ba8c1ad67924153d3a96c3285135be6d3643c2f02259c866262b06e1fdfe645baf1a0621d218f653f5bef8
EBUILD node-red-3.1.3.ebuild 935 BLAKE2B 7debbfe453d12e13be7cc146951f93325012259b6b18a16872018fead942be0221fc10817aa1bc508b10eece6bcaa188fbdaa27e7e3104bc1670ac6ebf18b836 SHA512 2e9e7768b89203cb3577a04fc34171413ce53841a22659d953b1852833521e742b75a5b1bcb053b9e9dcbcb047e240bb80d23da8abf033c280178242b23ae690
MISC metadata.xml 479 BLAKE2B 162c81e6f96a3d7f47fb005fa849c2f5b5bf8ec37ef6900fd3f1b87f5e26e4ba5fc18e29cb7e4b8b9dd9f9c22904aa291604f772f77b06296922f205a71992ff SHA512 bc519b09debfc1990880f14bb874ef838feb779d4dcc60c1c6f67a05cf4532781545b00fa3cd9530449c8f1cc7af7bc68db5ae3cbd7eed624661291bd838ef1c

View File

@ -0,0 +1,39 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit nodejs-mod systemd tmpfiles
DESCRIPTION="A visual tool for wiring the Internet of Things."
HOMEPAGE="https://nodered.org"
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
https://raw.githubusercontent.com/inode64/inode64-overlay/main/dist/${P}-node_modules.tar.xz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
acct-group/node-red
acct-user/node-red
"
NODEJS_EXTRA_FILES="packages"
src_install() {
# Remove jsdoc-nr-template, prune use git to get the version
rm -rf node_modules/jsdoc-nr-template/ || die
sed -i -e '/jsdoc-nr-template/d' package.json || die
nodejs-mod_src_install
dotmpfiles "${FILESDIR}"/node-red.conf
doinitd "${FILESDIR}"/${PN}
systemd_dounit "${FILESDIR}/${PN}.service"
}
pkg_postinst() {
tmpfiles_process node-red.conf
}

View File

@ -1,7 +1,7 @@
AUX zigbee2mqtt 636 BLAKE2B 4038660a30ac62410d4a05c41cc42cf7abdd25c1c3a0375830890b5bb15e8daa9c273cce43566f89c572b6977a5c16abd42602c95b4b64b835d6a861a8b34d54 SHA512 3442a8afdb9568f106e7db8c4967a7f8de0c1f206a41f48fdc66c070156304332f23fb735f2cc19451e1f567089d82fcad51e9b467566c6c864fdd701d26cba8
AUX zigbee2mqtt 587 BLAKE2B d5aa1618fb216ecb5199c8b3bf182bbbf07c8943c3a31e56c65818a8156d6f92dfe600b101dac6925f008165a9a8d6de447e408107578ae0dd390ca910380dbf SHA512 69eba4856a7b23b9cb357d48786142aae24b75d791f3803b7843b504907ef9afdf66ad63a988ccf8154e8711e480b0151b30c0b772948e041c071f1b8885356f
AUX zigbee2mqtt.conf 176 BLAKE2B f1003f37135e10a32c3fe7b387da9f4194cae82339edf77928c2d55e08dcac1f212d27f5bd41a0f20887847fd98f569aaf0ca5f17504be1f3c8d87d38c2f5b87 SHA512 105e618af8ee335a591d791c701ffdbdccc4e967d29433a9d9f6997f5f6c3f50eb3dfe56a3fcd617b0a52ed1380fb889747ef70a148c07d6871c7e3c2beb9dab
AUX zigbee2mqtt.service 874 BLAKE2B fc017e66d0cfbdcec76bc2f94078e51a618bf4b99246e9b4588bb0d6135d64f3deb798aaf4b473eebcef2529f6d90b8660e8946e3f344b7b6c9cc9b27d6b0527 SHA512 06f662784a116f0145466dcd6da02ebbd8dd0455a7c5e12e8cedab2404d511a6d37dba66096bbace187643a086c62fed0c2c06df356c217f91d33762f4b610ad
AUX zigbee2mqtt.service 881 BLAKE2B d506772a2254aea2f1ac92db43ff1fdb842002b0afb5dc2ee71952474a58f5070c62546d216398c1f3b5951f84e4e27f3c53c0983a0851f1f7e20600f2291cff SHA512 4c13c70379c6c52146491720d523b114e59e1b4a830402ee91b93a34f6c811153780cba8e58690685895eb47c30457a5087824451bfca6eeee7c2461169be562
DIST zigbee2mqtt-1.34.0-node_modules.tar.xz 15715552 BLAKE2B 1c957c93cdfbdb7f930e49395528afd767d7d209cf08b8e308ea7d04068dc20086492d4515ae1b43198ba8e403747c113b37afe01e9a726599cd30d13a19f18b SHA512 639cf919b93c14698844402739e013e5c9b13cc2585e75d9f1676bf38befe0e55791b8976a0933663885df8d40cf74875bcf809401ad2ac7a8ac5da2b39c3785
DIST zigbee2mqtt-1.34.0.tar.gz 569310 BLAKE2B 3cf52b4286f6674836d1f25f909583de2277b1418b1ed5b943eb6f10fa5ee63b88d38e65e43bc58df6082af515b51cd478a9cb9d4369d39a8d3b9dd65ba2d07e SHA512 594a1466b84a3a988292d175cceee1870a84275968f0caf161d32911006e0032dfa9b765ea18c2e55177a4bc8656040d0e2aeba4c0c7a18aea4b0582a4650ad4
EBUILD zigbee2mqtt-1.34.0.ebuild 1789 BLAKE2B a099d20877b0003fa802be8e008ffc1754428b11ca41f317819a007a499c1ee1f5875cab6094a43579c78d0aa87d6b6b1d8cc86ada911b5a06364e2c199cc4a0 SHA512 cd6715a6a3e2e79af05d7a99f892f4fa2377ffd5e166f6af1d8df9861c12a1ba6b418d942001d428e884ccdae24e1755c9e8d0e797a92a046fd5ac84cfbb6412
EBUILD zigbee2mqtt-1.34.0.ebuild 1807 BLAKE2B 6fd72896e35b2dc5491e0d8dd760e08ba6322fcfabc584fde4b473019ef3f52d78ba2da9984e34bcca9e8bb77c70b22520d77aec00046f0d7ae269061c73120f SHA512 b21729c4c854e5831f4107b7a2eb36e250ecdb0f71b120bc327be55aa3a35a96e2b4b406e79abccce32d153fb1bd97d36f8d34c64ea687b6db238e9a31241325
MISC metadata.xml 480 BLAKE2B dc80fdb17a73b1f63ef970674d5bb1a950b14d6d318276ad3303157dd93fbba9165a9e2b70a0380cbf70b77ecf31ed856698f7887ae0bc09a5d71c66ff7d4b42 SHA512 e7cbfb9fb939af0066a1a779af9af60df9a45d7b42b16706f6dcd321e4bd5b9b432120321b9cfe0d28809cd207f8aba36f9119c07b6adefe109acd207a15e51d

View File

@ -13,7 +13,7 @@ checkconfig() {
start() {
checkconfig || return 1
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --user zigbee2mqtt:zigbee2mqtt --env ZIGBEE2MQTT_DATA=/var/lib/${SVCNAME} --chdir /usr/lib64/node_modules/zigbee2mqtt --exec /usr/bin/node --background --make-pidfile --pidfile /run/${SVCNAME}.pid -- index.js
start-stop-daemon --start --user zigbee2mqtt:zigbee2mqtt --env ZIGBEE2MQTT_DATA=/var/lib/${SVCNAME} --exec /usr/bin/zigbee2mqtt --background --make-pidfile --pidfile /run/${SVCNAME}.pid
eend $?
}

View File

@ -4,7 +4,7 @@ After=network.target
Wants=mosquitto.service
[Service]
ExecStart=node index.js
ExecStart=/usr/bin/zigbee2mqtt
WorkingDirectory=/usr/lib64/node_modules/zigbee2mqtt
Environment=ZIGBEE2MQTT_DATA=/var/lib/zigbee2mqtt
StandardOutput=inherit

View File

@ -28,10 +28,9 @@ RDEPEND="
app-misc/mosquitto
"
NODEJS_EXTRA_FILES="scripts"
pkg_pretend() {
if ! grep -q "CONFIG_PROTECT=\"/var/lib/${PN}\"" "${EROOT}/etc/env.d/90${PN}" 2>/dev/null; then
if [[ -e "${EROOT}/etc/env.d/90${PN}" ]] && \
! grep -q "CONFIG_PROTECT=\"/var/lib/${PN}\"" "${EROOT}/etc/env.d/90${PN}" 2>/dev/null; then
eerror "Bad CONFIG_PROTECT"
eerror "update ${EROOT}/etc/env.d/90${PN} to include CONFIG_PROTECT=\"/var/lib/${PN}\""
eerror ""

View File

@ -49,7 +49,7 @@ _NODEJS_ECLASS=1
# @INTERNAL
# @DESCRIPTION:
# Files and directories that usually come in a standard NodeJS/npm module.
NODEJS_FILES="babel.config.js babel.config.json cli.js dist index.js lib node_modules package.json"
NODEJS_FILES="babel.config.js babel.config.json bin cli.js dist index.js lib node_modules package.json"
# @ECLASS_VARIABLE: NODEJS_EXTRA_FILES
# @DESCRIPTION:
@ -106,6 +106,32 @@ nodejs_has_build() {
node -p "if (require('./package.json').scripts.build === undefined) { process.exit(1) }" &>/dev/null
}
# @FUNCTION: nodejs_has_bin
# @DESCRIPTION:
# Returns true if bin exist
nodejs_has_bin() {
node -p "if (require('./package.json').bin === undefined) { process.exit(1) }" &>/dev/null
}
# @FUNCTION: nodejs_install_bin
# @DESCRIPTION:
# Install binary files
nodejs_install_bin() {
local bin_content key value
bin_content=$(node -e "console.log(JSON.stringify(require('./package.json').bin))")
insinto "$(nodejs_modules)"
echo "$bin_content" | tr '{},' '\n' | grep ':' | sed -e 's/\"//g' -e 's/,$//'| while IFS=: read -r key value; do
key="$(echo "$key" | xargs)"
value="$(echo "$value" | xargs)"
doins "${value}"
fperms +x "$(nodejs_modules)/${value}"
dosym -r "$(nodejs_modules)/${value}" "/usr/bin/${key}"
done
}
# @FUNCTION: nodejs_modules
# @DESCRIPTION:
# Returns location where to install NodeJS
@ -190,6 +216,7 @@ nodejs_remove_dev() {
-iwholename '*.deps' -o \
-iwholename '*/man' -o \
-iwholename '*/test' -o \
-iwholename '*/tests' -o \
-iwholename '*/scripts' -o \
-iwholename '*/git-hooks' -o \
-iwholename '*/prebuilds' -o \
@ -307,6 +334,28 @@ enpm_install() {
cp -r "${S}/${f}" "${ED}/$(nodejs_modules)"
fi
done
pushd "${ED}/$(nodejs_modules)" >/dev/null || die
# Reset permissions for executables
find -type f | while read f; do
fperms -x "$(nodejs_modules)"/"${f}"
done
# Set permissions for executables and libraries
find -type f -name "*.node" | while read f; do
fperms +x "$(nodejs_modules)/${f}"
done
find -type f -executable | while read f; do
fperms +x "$(nodejs_modules)/${f}"
done
popd >/dev/null || die
if nodejs_has_bin; then
einfo "Install binary files"
nodejs_install_bin
fi
}
fi