summary refs log tree commit diff
path: root/pkgs/servers/unifi
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2018-04-30 11:31:44 +0800
committerRobin Gloster <mail@glob.in>2018-05-01 18:03:48 +0200
commit187e2237733e427e63aac5af91c0579c3c7bf0aa (patch)
tree0af6628d8c31cf0b321c66a354ce3c660a7f815f /pkgs/servers/unifi
parent63666bf1d5dab08209239b70e48207584001ce3f (diff)
downloadnixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.tar
nixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.tar.gz
nixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.tar.bz2
nixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.tar.lz
nixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.tar.xz
nixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.tar.zst
nixpkgs-187e2237733e427e63aac5af91c0579c3c7bf0aa.zip
unifi-testing: init at 5.8.14
Also:
 - Instead of using a boolean flag to determine which package to build, use a
   generic builder
 - Add a few missing pre/post hooks
Diffstat (limited to 'pkgs/servers/unifi')
-rw-r--r--pkgs/servers/unifi/default.nix90
1 files changed, 49 insertions, 41 deletions
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index dac4bf6899a..b4e03af1cfd 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -1,53 +1,61 @@
-{ stdenv
-, dpkg
-, fetchurl
-, unzip
-, useLTS ? false
-}:
-
+{ stdenv, dpkg, fetchurl }:
 
 let
-  versions = {
-    stable = {
-      version = "5.7.20";
-      sha256 = "1ylj4i5mcv6z9n32275ccdf1rqk74zilqsih3r6xzhm30pxrd8dd";
+  generic = { version, sha256, suffix ? "" }:
+  stdenv.mkDerivation rec {
+    name = "unifi-controller-${version}";
+
+    src = fetchurl {
+      url = "https://dl.ubnt.com/unifi/${version}${suffix}/unifi_sysvinit_all.deb";
+      inherit sha256;
     };
-    lts = {
-      version = "5.6.36";
-      sha256 = "075q7vm56fdsjwh72y2cb1pirl2pxdkvqnhvd3bf1c2n64mvp6bi";
+
+    nativeBuildInputs = [ dpkg ];
+
+    unpackPhase = ''
+      runHook preUnpack
+      dpkg-deb -x $src ./
+      runHook postUnpack
+    '';
+
+    doConfigure = false;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      cd ./usr/lib/unifi
+      cp -ar dl lib webapps $out
+
+      runHook postInstall
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = http://www.ubnt.com/;
+      description = "Controller for Ubiquiti UniFi access points";
+      license = licenses.unfree;
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ wkennington ];
     };
   };
-  selectedVersion =
-    let attr = if useLTS then "lts" else "stable";
-    in versions."${attr}";
-in
-
-stdenv.mkDerivation {
-  name = "unifi-controller-${selectedVersion.version}";
-  src = with selectedVersion; fetchurl {
-    url = "https://dl.ubnt.com/unifi/${version}/unifi_sysvinit_all.deb";
-    inherit sha256;
-  };
 
-  buildInputs = [ dpkg ];
+in rec {
 
-  unpackPhase = ''
-    dpkg-deb -x $src ./
-  '';
+  # https://help.ubnt.com/hc/en-us/articles/115000441548-UniFi-Current-Controller-Versions
 
-  doConfigure = false;
+  unifiLTS = generic {
+    version = "5.6.36";
+    sha256  = "075q7vm56fdsjwh72y2cb1pirl2pxdkvqnhvd3bf1c2n64mvp6bi";
+  };
 
-  installPhase = ''
-    mkdir -p $out
-    cd ./usr/lib/unifi
-    cp -ar dl lib webapps $out
-  '';
+  unifiStable = generic {
+    version = "5.7.20";
+    sha256  = "1ylj4i5mcv6z9n32275ccdf1rqk74zilqsih3r6xzhm30pxrd8dd";
+  };
 
-  meta = with stdenv.lib; {
-    homepage = http://www.ubnt.com/;
-    description = "Controller for Ubiquiti UniFi accesspoints";
-    license = licenses.unfree;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ wkennington ];
+  unifiTesting = generic {
+    version = "5.8.14";
+    suffix  = "-7ef9535d1b";
+    sha256  = "09gr7zkck6npjhhmd27c9ymyna6anwj3w9v9zjicz9skbrddkccq";
   };
 }