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"; }; } 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 { };