webos: init novacom, novacomd, cmake-modules; add nixos service

wip/yesman
Will Dietz 7 years ago
parent 39ff498418
commit e5e29284a9
  1. 1
      nixos/modules/module-list.nix
  2. 31
      nixos/modules/services/misc/novacomd.nix
  3. 32
      pkgs/development/mobile/webos/cmake-modules.nix
  4. 9
      pkgs/development/mobile/webos/cmake-setup-hook.sh
  5. 27
      pkgs/development/mobile/webos/novacom.nix
  6. 40
      pkgs/development/mobile/webos/novacomd.nix
  7. 7
      pkgs/top-level/all-packages.nix

@ -341,6 +341,7 @@
./services/misc/nix-optimise.nix
./services/misc/nixos-manual.nix
./services/misc/nix-ssh-serve.nix
./services/misc/novacomd.nix
./services/misc/nzbget.nix
./services/misc/octoprint.nix
./services/misc/osrm.nix

@ -0,0 +1,31 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.novacomd;
in {
options = {
services.novacomd = {
enable = mkEnableOption "Novacom service for connecting to WebOS devices";
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.webos.novacom ];
systemd.services.novacomd = {
description = "Novacom WebOS daemon";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.webos.novacomd}/sbin/novacomd";
};
};
};
meta.maintainers = with maintainers; [ dtzWill ];
}

@ -0,0 +1,32 @@
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
name = "cmake-modules-webos-${version}";
version = "19";
src = fetchFromGitHub {
owner = "openwebos";
repo = "cmake-modules-webos";
rev = "submissions/${version}";
sha256 = "1l4hpcmgc98kp9g1642sy111ki5qyk3q7j10xzkgmnvz8lqffnxp";
};
nativeBuildInputs = [ cmake ];
prePatch = ''
substituteInPlace CMakeLists.txt --replace "CMAKE_ROOT}/Modules" "CMAKE_INSTALL_PREFIX}/lib/cmake"
substituteInPlace webOS/webOS.cmake \
--replace ' ''${CMAKE_ROOT}/Modules' " $out/lib/cmake" \
--replace 'INSTALL_ROOT}/usr' 'INSTALL_ROOT}'
sed -i '/CMAKE_INSTALL_PREFIX/d' webOS/webOS.cmake
'';
setupHook = ./cmake-setup-hook.sh;
meta = with stdenv.lib; {
description = "CMake modules needed to build Open WebOS components";
license = licenses.asl20;
maintainers = with maintainers; [ dtzWill ];
};
}

@ -0,0 +1,9 @@
_addWebOSCMakeFlags() {
# Help find the webOS cmake module
cmakeFlagsArray+=(-DCMAKE_MODULE_PATH=@out@/lib/cmake)
# fix installation path (doesn't use CMAKE_INSTALL_PREFIX)
cmakeFlagsArray+=(-DWEBOS_INSTALL_ROOT=${!outputBin})
}
preConfigureHooks+=(_addWebOSCMakeFlags)

@ -0,0 +1,27 @@
{ stdenv, fetchFromGitHub, webos, cmake, pkgconfig }:
stdenv.mkDerivation rec {
name = "novacom-${version}";
version = "18";
src = fetchFromGitHub {
owner = "openwebos";
repo = "novacom";
rev = "submissions/${version}";
sha256 = "12s6g7l20kakyjlhqpli496miv2kfsdp17lcwhdrzdxvxl6hnf4n";
};
nativeBuildInputs = [ cmake pkgconfig webos.cmake-modules ];
postInstall = ''
install -Dm755 -t $out/bin ../scripts/novaterm
substituteInPlace $out/bin/novaterm --replace "exec novacom" "exec $out/bin/novacom"
'';
meta = with stdenv.lib; {
description = "Utility for communicating with WebOS devices";
license = licenses.asl20;
maintainers = with maintainers; [ dtzWill ];
platforms = platforms.linux;
};
}

@ -0,0 +1,40 @@
{ stdenv,
fetchFromGitHub, fetchpatch,
webos, cmake, pkgconfig,
libusb }:
stdenv.mkDerivation rec {
name = "novacomd-${version}";
version = "127";
src = fetchFromGitHub {
owner = "openwebos";
repo = "novacomd";
rev = "submissions/${version}";
sha256 = "1gahc8bvvvs4d6svrsw24iw5r0mhy4a2ars3j2gz6mp6sh42bznl";
};
patches = [
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Use-usb_bulk_-read-write-instead-of-homemade-handler.patch?h=palm-novacom-git";
sha256 = "116r6p4l767fqxfvq03sy6v7vxja8pkxlrc5hqby351a40b5dkiv";
})
(fetchpatch {
url = "https://raw.githubusercontent.com/feniksa/webos-overlay/40e2c113fc9426d50bdf37779da57ce4ff06ee6e/net-misc/novacomd/files/0011-Remove-verbose-output.patch";
sha256 = "09lmv06ziwkfg19b1h3jsmkm6g1f0nxxq1717dircjx8m45ypjq9";
})
];
nativeBuildInputs = [ cmake pkgconfig webos.cmake-modules ];
buildInputs = [ libusb ];
cmakeFlags = [ "-DWEBOS_TARGET_MACHINE_IMPL=host" ];
meta = with stdenv.lib; {
description = "Daemon for communicating with WebOS devices";
license = licenses.asl20;
maintainers = with maintainers; [ dtzWill ];
platforms = platforms.linux;
};
}

@ -685,6 +685,13 @@ with pkgs;
androidsdk_extras = self.androidenv.androidsdk_8_0_extras;
webos = recurseIntoAttrs {
cmake-modules = callPackage ../development/mobile/webos/cmake-modules.nix { };
novacom = callPackage ../development/mobile/webos/novacom.nix { };
novacomd = callPackage ../development/mobile/webos/novacomd.nix { };
};
arc-theme = callPackage ../misc/themes/arc { };
arc-kde-theme = callPackage ../misc/themes/arc-kde { };

Loading…
Cancel
Save