| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 0.4.3-r1 | 8 | ~amd64 ~arm64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="OHF Matter Server - WebSocket Matter controller based on matter.js"
HOMEPAGE="https://github.com/matter-js/matterjs-server"
SRC_URI="
https://registry.npmjs.org/matter-server/-/matter-server-${PV}.tgz -> ${P}.tgz
https://raw.githubusercontent.com/tabascoz/ha-bleeding-edge/refs/heads/main/net-misc/matterjs-server/files/matter-server-${PV}-vendor.tar.xz -> ${P}-vendor.tar.xz
"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
IUSE="+server +systemd"
REQUIRED_USE="systemd? ( server )"
RDEPEND="
server? ( >=net-libs/nodejs-22.13.0:* acct-group/matter-server acct-user/matter-server )
"
S="${WORKDIR}/matter-server-${PV}"
inherit systemd
src_unpack() {
unpack ${A}
mv "${WORKDIR}/package" "${S}" || die "Failed to move main package dir"
if use server; then
mkdir -p "${S}/node_modules" || die
tar -xf "${DISTDIR}/${P}-vendor.tar.xz" -C "${S}/node_modules" --strip-components=1 || die "Vendor unpack failed (check tar structure)"
einfo "Vendored node_modules unpacked into ${S}/node_modules"
fi
}
src_install() {
if ! use server; then
return 0
fi
insinto /opt/${PN}
doins -r dist node_modules package.json # core runtime files
[[ -d public ]] && doins -r public
[[ -d config ]] && doins -r config
[[ -f README.md ]] && dodoc README.md
[[ -f CHANGELOG.md ]] && dodoc CHANGELOG.md
cat > "${T}/matter-server" <<-'EOF'
#!/bin/sh
exec /usr/bin/node --enable-source-maps "/opt/matterjs-server/dist/esm/MatterServer.js" "$@"
EOF
newbin "${T}/matter-server" matter-server
if use systemd; then
systemd_dounit "${FILESDIR}/${PN}.service"
fi
}
pkg_postinst() {
if use server; then
elog "Manual start: matter-server --storage-path /var/lib/matterjs-server"
elog "Dashboard: http://localhost:5580"
elog ""
elog "Recommended: mkdir -p /var/lib/matterjs-server && chown -R matter:matter /var/lib/matterjs-server"
fi
if use systemd; then
elog "Systemd: systemctl enable --now matterjs-server.service"
fi
}
server? ( >=net-libs/nodejs-22.13.0:* acct-group/matter-server acct-user/matter-server )