diff --git a/flake.lock b/flake.lock index 9f32145..3325978 100644 --- a/flake.lock +++ b/flake.lock @@ -1,21 +1,5 @@ { "nodes": { - "aja-ntv2": { - "flake": false, - "locked": { - "lastModified": 1662565853, - "narHash": "sha256-rXjKDhQcZwAxsMjCoL21gpWeLWyIXyK/1y+78mhKgeo=", - "owner": "aja-video", - "repo": "ntv2", - "rev": "3a1e91f740e36e43a1ec74ff446a097330e87220", - "type": "github" - }, - "original": { - "owner": "aja-video", - "repo": "ntv2", - "type": "github" - } - }, "flake-utils": { "inputs": { "systems": "systems" @@ -46,11 +30,44 @@ "type": "indirect" } }, + "ntv2-gst-src": { + "flake": false, + "locked": { + "lastModified": 1692893804, + "narHash": "sha256-90TdrsnO5LatLD4dwivOnZG4tGJmNs2tdAsrL7eQF8g=", + "owner": "aja-video", + "repo": "ntv2-gst", + "rev": "33d3a4957088e49ccecd9efa577b87bb0492f738", + "type": "github" + }, + "original": { + "owner": "aja-video", + "repo": "ntv2-gst", + "type": "github" + } + }, + "ntv2-src": { + "flake": false, + "locked": { + "lastModified": 1662565853, + "narHash": "sha256-rXjKDhQcZwAxsMjCoL21gpWeLWyIXyK/1y+78mhKgeo=", + "owner": "aja-video", + "repo": "ntv2", + "rev": "3a1e91f740e36e43a1ec74ff446a097330e87220", + "type": "github" + }, + "original": { + "owner": "aja-video", + "repo": "ntv2", + "type": "github" + } + }, "root": { "inputs": { - "aja-ntv2": "aja-ntv2", "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "ntv2-gst-src": "ntv2-gst-src", + "ntv2-src": "ntv2-src" } }, "systems": { diff --git a/flake.nix b/flake.nix index a4e0257..d604d53 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,16 @@ { description = "AJA video card software"; - inputs.aja-ntv2 = { - url = "github:aja-video/ntv2"; + + inputs.ntv2-src = { + type = "github"; + owner = "aja-video"; + repo = "ntv2"; + flake = false; + }; + inputs.ntv2-gst-src = { + type = "github"; + owner = "aja-video"; + repo = "ntv2-gst"; flake = false; }; @@ -9,34 +18,26 @@ self, nixpkgs, flake-utils, - aja-ntv2, + ntv2-src, + ntv2-gst-src, }: - ( - flake-utils.lib.eachSystem ["x86_64-linux"] (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - packages.aja-ntv2-gst = pkgs.callPackage ./ntv2-gst.nix { - ajantv2 = pkgs.callPackage ./aja-ntv2/default.nix { - aja-src = aja-ntv2; - buildApps = false; - }; - }; - }) - ) - // flake-utils.lib.eachDefaultSystem (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - formatter = pkgs.alejandra; - }) - // { - overlays.default = final: prev: { - ajantv-utils = final.callPackage ./aja-ntv2/default.nix {aja-src = aja-ntv2;}; - ajantv-driver = final.linuxPackages.callPackage ./aja-ntv2/driver.nix {aja-src = aja-ntv2;}; - aja-ntv2-gst = self.packages.${prev.system}.aja-ntv2-gst; - }; + { + overlays.default = final: prev: { + ntv2 = final.callPackage ./ntv2 { inherit ntv2-src; }; + ntv2-gst = final.callPackage ./ntv2-gst { inherit ntv2-gst-src; }; + linuxPackages = prev.linuxPackages.extend + (linuxFinal: linuxPrev: { + ntv2-driver = linuxFinal.callPackage ./ntv2/driver.nix { inherit ntv2-src; }; + }); }; + } // flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: + let + pkgs = import nixpkgs { inherit system; overlays = [ self.overlays.default ]; }; + in { + packages = { + inherit (pkgs) ntv2 ntv2-gst; + inherit (pkgs.linuxPackages) ntv2-driver; + }; + formatter = pkgs.alejandra; + }); } diff --git a/ntv2-gst.nix b/ntv2-gst.nix deleted file mode 100644 index 8e76543..0000000 --- a/ntv2-gst.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - stdenv, - fetchFromGitHub, - autoconf, - automake, - pkgconfig, - libtool, - gst_all_1, - ajantv2, -}: -stdenv.mkDerivation { - name = "aja-ntv2-gst"; - src = fetchFromGitHub { - owner = "aja-video"; - repo = "ntv2-gst"; - rev = "refs/heads/master"; - hash = "sha256-90TdrsnO5LatLD4dwivOnZG4tGJmNs2tdAsrL7eQF8g="; - }; - sourceRoot = "source/gst-plugin"; - patches = [./no.patch]; - - nativeBuildInputs = [autoconf automake pkgconfig libtool gst_all_1.gst-plugins-base ajantv2]; - GST_NTV2 = "${ajantv2}/include"; - preConfigure = '' - ./autogen.sh - ''; -} diff --git a/ntv2-gst/default.nix b/ntv2-gst/default.nix new file mode 100644 index 0000000..f4697c1 --- /dev/null +++ b/ntv2-gst/default.nix @@ -0,0 +1,22 @@ +{ + stdenv, + ntv2-gst-src, + autoconf, + automake, + pkgconfig, + libtool, + gst_all_1, + ntv2, +}: +stdenv.mkDerivation { + name = "ntv2-gst"; + src = ntv2-gst-src; + sourceRoot = "source/gst-plugin"; + patches = [./no.patch]; + + nativeBuildInputs = [autoconf automake pkgconfig libtool gst_all_1.gst-plugins-base ntv2]; + GST_NTV2 = "${ntv2}/include"; + preConfigure = '' + ./autogen.sh + ''; +} diff --git a/no.patch b/ntv2-gst/no.patch similarity index 100% rename from no.patch rename to ntv2-gst/no.patch diff --git a/aja-ntv2/default.nix b/ntv2/default.nix similarity index 83% rename from aja-ntv2/default.nix rename to ntv2/default.nix index f4e2316..933de88 100644 --- a/aja-ntv2/default.nix +++ b/ntv2/default.nix @@ -2,12 +2,12 @@ stdenv, lib, cmake, - aja-src, + ntv2-src, buildApps ? true, }: stdenv.mkDerivation { - name = "ajantv2-dev"; - src = aja-src; + name = "ntv2"; + src = ntv2-src; nativeBuildInputs = [cmake]; cmakeFlags = diff --git a/aja-ntv2/driver.nix b/ntv2/driver.nix similarity index 94% rename from aja-ntv2/driver.nix rename to ntv2/driver.nix index 0c6239c..44a6fee 100644 --- a/aja-ntv2/driver.nix +++ b/ntv2/driver.nix @@ -2,11 +2,11 @@ stdenv, nukeReferences, kernel, - aja-src, + ntv2-src, }: stdenv.mkDerivation { - name = "ajantv2-driver-${kernel.version}"; - src = aja-src; + name = "ntv2-driver-${kernel.version}"; + src = ntv2-src; patches = [./lol.patch ./newkernels.patch]; nativeBuildInputs = kernel.moduleBuildDependencies; buildInputs = [nukeReferences]; diff --git a/aja-ntv2/lol.patch b/ntv2/lol.patch similarity index 100% rename from aja-ntv2/lol.patch rename to ntv2/lol.patch diff --git a/aja-ntv2/newkernels.patch b/ntv2/newkernels.patch similarity index 100% rename from aja-ntv2/newkernels.patch rename to ntv2/newkernels.patch diff --git a/aja-ntv2/stddef.patch b/ntv2/stddef.patch similarity index 100% rename from aja-ntv2/stddef.patch rename to ntv2/stddef.patch diff --git a/readme.md b/readme.md index de3c41c..6e18779 100644 --- a/readme.md +++ b/readme.md @@ -14,13 +14,13 @@ gstreamer plugin. This allows you to use Aja video IO cards on NixOS. - Add the kernel driver: ```nix # Include the kernel module - boot.extraModulePackages = [pkgs.ajantv-driver]; + boot.extraModulePackages = [pkgs.linuxPackages.ntv2-driver]; # And load it automatically boot.kernelModules = [ "ajantv2" ]; ``` - Include the utils/demos and gstreamer plugin: ```nix - environment.systemPackages = [pkgs.ajantv-utils pkgs.aja-ntv2-gst] + environment.systemPackages = [pkgs.ntv2 pkgs.ntv2-gst] ``` ## Gstreamer