69 lines
1.6 KiB
Nix
69 lines
1.6 KiB
Nix
#
|
|
# Webserial for firefox.
|
|
#
|
|
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, ws-server
|
|
, cjson
|
|
, libserialport
|
|
, linuxHeaders
|
|
, glibc
|
|
}:
|
|
stdenv.mkDerivation rec {
|
|
pname = "firefox-webserial";
|
|
version = "0.3.2";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "kuba2k2";
|
|
repo = "firefox-webserial";
|
|
rev = "v${version}";
|
|
hash = "sha256-ML5AtkR2GGZ99wuE+GiZA5Vb9pZG62AjRwV5sL5dK/U=";
|
|
};
|
|
|
|
# Things that need to be copied into our build.
|
|
extra_src= ./extra_src;
|
|
|
|
buildInputs = [
|
|
linuxHeaders
|
|
libserialport
|
|
ws-server
|
|
cjson
|
|
glibc
|
|
];
|
|
|
|
# Build it ourselves, since its build system is _wonk_.
|
|
buildPhase = ''
|
|
cp -r $src/native/src/* .
|
|
cp ${extra_src}/* .
|
|
|
|
gcc -o ${meta.mainProgram} *.c -pthread \
|
|
${ws-server}/lib/libws.a \
|
|
${cjson}/lib/libcjson.so \
|
|
-DSP_PRIV="" \
|
|
-I${cjson}/include/cjson \
|
|
-I${ws-server}/include/wsserver \
|
|
-I. \
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
|
|
# Copy our main program...
|
|
cp ${meta.mainProgram} $out/bin/
|
|
|
|
# ... and the config for it.
|
|
mkdir -p "$out/lib/mozilla/native-messaging-hosts"
|
|
sed -i -e "s|REPLACE_ME_WITH_SED|$out/bin/${meta.mainProgram}|" "webserial.json"
|
|
cp webserial.json "$out/lib/mozilla/native-messaging-hosts/io.github.kuba2k2.webserial.json"
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "WebSerial API Polyfill for Mozilla Firefox browser";
|
|
homepage = "https://github.com/kuba2k2/firefox-webserial/releases/download/v0.3.2/firefox-webserial-linux-x86-64";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [ ];
|
|
mainProgram = pname;
|
|
platforms = platforms.all;
|
|
};
|
|
}
|