From e8e11874b600c234d7aab6a6b64f77b221bf26cc Mon Sep 17 00:00:00 2001 From: Jaakko Luttinen Date: Fri, 26 Jun 2020 21:01:47 +0300 Subject: [PATCH] polar: init at unstable-2021-01-12 --- pkgs/tools/misc/polar/Gemfile | 7 +++ pkgs/tools/misc/polar/Gemfile.lock | 27 +++++++++++ pkgs/tools/misc/polar/default.nix | 73 +++++++++++++++++++++++++++++ pkgs/tools/misc/polar/gemset.nix | 75 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 5 files changed, 184 insertions(+) create mode 100644 pkgs/tools/misc/polar/Gemfile create mode 100644 pkgs/tools/misc/polar/Gemfile.lock create mode 100644 pkgs/tools/misc/polar/default.nix create mode 100644 pkgs/tools/misc/polar/gemset.nix diff --git a/pkgs/tools/misc/polar/Gemfile b/pkgs/tools/misc/polar/Gemfile new file mode 100644 index 00000000000..65e27d16703 --- /dev/null +++ b/pkgs/tools/misc/polar/Gemfile @@ -0,0 +1,7 @@ +source 'https://rubygems.org' + +gem 'google-protobuf' +gem 'libusb' +gem 'rubyserial' +gem 'nokogiri' + diff --git a/pkgs/tools/misc/polar/Gemfile.lock b/pkgs/tools/misc/polar/Gemfile.lock new file mode 100644 index 00000000000..bd3b0226510 --- /dev/null +++ b/pkgs/tools/misc/polar/Gemfile.lock @@ -0,0 +1,27 @@ +GEM + remote: https://rubygems.org/ + specs: + ffi (1.15.0) + google-protobuf (3.15.6) + libusb (0.6.4) + ffi (~> 1.0) + mini_portile2 (~> 2.1) + mini_portile2 (2.5.0) + nokogiri (1.11.2) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) + racc (1.5.2) + rubyserial (0.6.0) + ffi (~> 1.9, >= 1.9.3) + +PLATFORMS + ruby + +DEPENDENCIES + google-protobuf + libusb + nokogiri + rubyserial + +BUNDLED WITH + 2.1.4 diff --git a/pkgs/tools/misc/polar/default.nix b/pkgs/tools/misc/polar/default.nix new file mode 100644 index 00000000000..022752bbc75 --- /dev/null +++ b/pkgs/tools/misc/polar/default.nix @@ -0,0 +1,73 @@ +{ lib, stdenv, fetchFromGitHub, ruby, bundlerEnv }: +let + + # To create Gemfile.lock and gemset.nix + # > nix-shell -p bundix bundler zlib + # > bundle install + # > bundix + gems = bundlerEnv { + name = "polar-env"; + inherit ruby; + gemdir = ./.; + }; + +in +stdenv.mkDerivation rec { + + pname = "polar"; + # The package has no releases so let's use the latest commit + version = "unstable-2021-01-12"; + + src = fetchFromGitHub { + owner = "cmaion"; + repo = pname; + rev = "be15f5f897f8a919dd639009873147dca2a9cea0"; + sha256 = "0gqkqfrqnrsy6avg372xwqj22yz8g6r2hnzbw6197b1rf7zr1il7"; + }; + + prePatch = '' + for script in polar_* + do + substituteInPlace $script --replace "#{File.dirname(__FILE__)}/lib" "$out/lib/polar" + done + ''; + buildInputs = [ gems ruby ]; + + # See: https://nixos.wiki/wiki/Packaging/Ruby + # + # Put library content under lib/polar and the raw scripts under share/polar. + # Then, wrap the scripts so that they use the correct ruby environment and put + # these wrapped executables under bin. + installPhase = '' + install -Dm644 -t $out/etc/udev/rules.d ./pkg/99-polar.rules + mkdir -p $out/{bin,lib/polar,share/polar} + cp -r lib/* $out/lib/polar/ + for script in ./polar_* + do + raw="$out/share/polar/$script" + bin="$out/bin/$script" + cp "$script" "$raw" + cat > $bin <