From 187e2237733e427e63aac5af91c0579c3c7bf0aa Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Mon, 30 Apr 2018 11:31:44 +0800 Subject: [PATCH] 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 --- pkgs/servers/unifi/default.nix | 92 ++++++++++++++++++--------------- pkgs/top-level/all-packages.nix | 7 ++- 2 files changed, 55 insertions(+), 44 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; +in rec { + + # https://help.ubnt.com/hc/en-us/articles/115000441548-UniFi-Current-Controller-Versions + + unifiLTS = generic { + version = "5.6.36"; + sha256 = "075q7vm56fdsjwh72y2cb1pirl2pxdkvqnhvd3bf1c2n64mvp6bi"; }; - buildInputs = [ dpkg ]; + unifiStable = generic { + version = "5.7.20"; + sha256 = "1ylj4i5mcv6z9n32275ccdf1rqk74zilqsih3r6xzhm30pxrd8dd"; + }; - unpackPhase = '' - dpkg-deb -x $src ./ - ''; - - doConfigure = false; - - installPhase = '' - mkdir -p $out - cd ./usr/lib/unifi - cp -ar dl lib webapps $out - ''; - - 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"; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0ab4ae69c50..16708027c5a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12921,8 +12921,11 @@ with pkgs; axis2 = callPackage ../servers/http/tomcat/axis2 { }; - unifi = callPackage ../servers/unifi { }; - unifiLTS = callPackage ../servers/unifi { useLTS=true; }; + inherit (callPackages ../servers/unifi { }) + unifiLTS + unifiStable + unifiTesting; + unifi = unifiStable; virtuoso6 = callPackage ../servers/sql/virtuoso/6.x.nix { };