From 7f33c8843f21805fd7c182ce3656135d6f5fdb46 Mon Sep 17 00:00:00 2001 From: Nathan van Doorn Date: Tue, 17 Oct 2023 09:15:19 +0200 Subject: [PATCH 1/6] Use github flake input type --- flake.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index a4e0257..2b57555 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,9 @@ { description = "AJA video card software"; inputs.aja-ntv2 = { - url = "github:aja-video/ntv2"; + type = "github"; + owner = "aja-video"; + repo = "ntv2"; flake = false; }; From 4490b28541525a88869c420df3bcaa61ed3d8b89 Mon Sep 17 00:00:00 2001 From: Nathan van Doorn Date: Tue, 17 Oct 2023 09:47:19 +0200 Subject: [PATCH 2/6] Rename aja-ntv2 input to ntv2-src --- aja-ntv2/default.nix | 4 ++-- aja-ntv2/driver.nix | 4 ++-- flake.lock | 36 ++++++++++++++++++------------------ flake.nix | 10 +++++----- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/aja-ntv2/default.nix b/aja-ntv2/default.nix index f4e2316..885aa66 100644 --- a/aja-ntv2/default.nix +++ b/aja-ntv2/default.nix @@ -2,12 +2,12 @@ stdenv, lib, cmake, - aja-src, + ntv2-src, buildApps ? true, }: stdenv.mkDerivation { name = "ajantv2-dev"; - src = aja-src; + src = ntv2-src; nativeBuildInputs = [cmake]; cmakeFlags = diff --git a/aja-ntv2/driver.nix b/aja-ntv2/driver.nix index 0c6239c..28f4165 100644 --- a/aja-ntv2/driver.nix +++ b/aja-ntv2/driver.nix @@ -2,11 +2,11 @@ stdenv, nukeReferences, kernel, - aja-src, + ntv2-src, }: stdenv.mkDerivation { name = "ajantv2-driver-${kernel.version}"; - src = aja-src; + src = ntv2-src; patches = [./lol.patch ./newkernels.patch]; nativeBuildInputs = kernel.moduleBuildDependencies; buildInputs = [nukeReferences]; diff --git a/flake.lock b/flake.lock index 9f32145..45332bc 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,27 @@ "type": "indirect" } }, + "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-src": "ntv2-src" } }, "systems": { diff --git a/flake.nix b/flake.nix index 2b57555..d36e4a8 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,6 @@ { description = "AJA video card software"; - inputs.aja-ntv2 = { + inputs.ntv2-src = { type = "github"; owner = "aja-video"; repo = "ntv2"; @@ -11,7 +11,7 @@ self, nixpkgs, flake-utils, - aja-ntv2, + ntv2-src, }: ( flake-utils.lib.eachSystem ["x86_64-linux"] (system: let @@ -21,7 +21,7 @@ in { packages.aja-ntv2-gst = pkgs.callPackage ./ntv2-gst.nix { ajantv2 = pkgs.callPackage ./aja-ntv2/default.nix { - aja-src = aja-ntv2; + inherit ntv2-src; buildApps = false; }; }; @@ -36,8 +36,8 @@ }) // { 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;}; + ajantv-utils = final.callPackage ./aja-ntv2/default.nix { inherit ntv2-src; }; + ajantv-driver = final.linuxPackages.callPackage ./aja-ntv2/driver.nix { inherit ntv2-src; }; aja-ntv2-gst = self.packages.${prev.system}.aja-ntv2-gst; }; }; From d44045b41502746a1ba545d80e6bffe941daa553 Mon Sep 17 00:00:00 2001 From: Nathan van Doorn Date: Tue, 17 Oct 2023 09:49:56 +0200 Subject: [PATCH 3/6] Make gst source a flake input --- flake.lock | 17 +++++++++++++++++ flake.nix | 9 +++++++++ ntv2-gst.nix | 9 ++------- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index 45332bc..3325978 100644 --- a/flake.lock +++ b/flake.lock @@ -30,6 +30,22 @@ "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": { @@ -50,6 +66,7 @@ "inputs": { "flake-utils": "flake-utils", "nixpkgs": "nixpkgs", + "ntv2-gst-src": "ntv2-gst-src", "ntv2-src": "ntv2-src" } }, diff --git a/flake.nix b/flake.nix index d36e4a8..a514a75 100644 --- a/flake.nix +++ b/flake.nix @@ -1,17 +1,25 @@ { description = "AJA video card software"; + 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; + }; outputs = { self, nixpkgs, flake-utils, ntv2-src, + ntv2-gst-src, }: ( flake-utils.lib.eachSystem ["x86_64-linux"] (system: let @@ -24,6 +32,7 @@ inherit ntv2-src; buildApps = false; }; + inherit ntv2-gst-src; }; }) ) diff --git a/ntv2-gst.nix b/ntv2-gst.nix index 8e76543..1bb3cf3 100644 --- a/ntv2-gst.nix +++ b/ntv2-gst.nix @@ -1,6 +1,6 @@ { stdenv, - fetchFromGitHub, + ntv2-gst-src, autoconf, automake, pkgconfig, @@ -10,12 +10,7 @@ }: stdenv.mkDerivation { name = "aja-ntv2-gst"; - src = fetchFromGitHub { - owner = "aja-video"; - repo = "ntv2-gst"; - rev = "refs/heads/master"; - hash = "sha256-90TdrsnO5LatLD4dwivOnZG4tGJmNs2tdAsrL7eQF8g="; - }; + src = ntv2-gst-src; sourceRoot = "source/gst-plugin"; patches = [./no.patch]; From c8e82b3b4b6aadae15da45d0868ad63ac765cda4 Mon Sep 17 00:00:00 2001 From: Nathan van Doorn Date: Tue, 17 Oct 2023 10:04:53 +0200 Subject: [PATCH 4/6] Renaming and refactoring * Define packages in terms of overlay * rename everything --- aja-ntv2/default.nix | 2 +- aja-ntv2/driver.nix | 2 +- flake.nix | 46 +++++++++++++++++--------------------------- ntv2-gst.nix | 8 ++++---- readme.md | 4 ++-- 5 files changed, 26 insertions(+), 36 deletions(-) diff --git a/aja-ntv2/default.nix b/aja-ntv2/default.nix index 885aa66..933de88 100644 --- a/aja-ntv2/default.nix +++ b/aja-ntv2/default.nix @@ -6,7 +6,7 @@ buildApps ? true, }: stdenv.mkDerivation { - name = "ajantv2-dev"; + name = "ntv2"; src = ntv2-src; nativeBuildInputs = [cmake]; diff --git a/aja-ntv2/driver.nix b/aja-ntv2/driver.nix index 28f4165..44a6fee 100644 --- a/aja-ntv2/driver.nix +++ b/aja-ntv2/driver.nix @@ -5,7 +5,7 @@ ntv2-src, }: stdenv.mkDerivation { - name = "ajantv2-driver-${kernel.version}"; + name = "ntv2-driver-${kernel.version}"; src = ntv2-src; patches = [./lol.patch ./newkernels.patch]; nativeBuildInputs = kernel.moduleBuildDependencies; diff --git a/flake.nix b/flake.nix index a514a75..0d8e2a3 100644 --- a/flake.nix +++ b/flake.nix @@ -21,33 +21,23 @@ 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 { - inherit ntv2-src; - buildApps = false; - }; - inherit ntv2-gst-src; - }; - }) - ) - // 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 { inherit ntv2-src; }; - ajantv-driver = final.linuxPackages.callPackage ./aja-ntv2/driver.nix { inherit ntv2-src; }; - aja-ntv2-gst = self.packages.${prev.system}.aja-ntv2-gst; - }; + { + overlays.default = final: prev: { + ntv2 = final.callPackage ./aja-ntv2 { inherit ntv2-src; }; + ntv2-gst = final.callPackage ./ntv2-gst.nix { inherit ntv2-gst-src; }; + linuxPackages = prev.linuxPackages.extend + (linuxFinal: linuxPrev: { + ntv2-driver = linuxFinal.callPackage ./aja-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 index 1bb3cf3..f4697c1 100644 --- a/ntv2-gst.nix +++ b/ntv2-gst.nix @@ -6,16 +6,16 @@ pkgconfig, libtool, gst_all_1, - ajantv2, + ntv2, }: stdenv.mkDerivation { - name = "aja-ntv2-gst"; + 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 ajantv2]; - GST_NTV2 = "${ajantv2}/include"; + nativeBuildInputs = [autoconf automake pkgconfig libtool gst_all_1.gst-plugins-base ntv2]; + GST_NTV2 = "${ntv2}/include"; preConfigure = '' ./autogen.sh ''; 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 From a114003e54a5a2e17a108e325b0e2c8500b79d15 Mon Sep 17 00:00:00 2001 From: Nathan van Doorn Date: Tue, 17 Oct 2023 10:07:28 +0200 Subject: [PATCH 5/6] Move a directory --- flake.nix | 4 ++-- {aja-ntv2 => ntv2}/default.nix | 0 {aja-ntv2 => ntv2}/driver.nix | 0 {aja-ntv2 => ntv2}/lol.patch | 0 {aja-ntv2 => ntv2}/newkernels.patch | 0 {aja-ntv2 => ntv2}/stddef.patch | 0 6 files changed, 2 insertions(+), 2 deletions(-) rename {aja-ntv2 => ntv2}/default.nix (100%) rename {aja-ntv2 => ntv2}/driver.nix (100%) rename {aja-ntv2 => ntv2}/lol.patch (100%) rename {aja-ntv2 => ntv2}/newkernels.patch (100%) rename {aja-ntv2 => ntv2}/stddef.patch (100%) diff --git a/flake.nix b/flake.nix index 0d8e2a3..0b0b386 100644 --- a/flake.nix +++ b/flake.nix @@ -23,11 +23,11 @@ }: { overlays.default = final: prev: { - ntv2 = final.callPackage ./aja-ntv2 { inherit ntv2-src; }; + ntv2 = final.callPackage ./ntv2 { inherit ntv2-src; }; ntv2-gst = final.callPackage ./ntv2-gst.nix { inherit ntv2-gst-src; }; linuxPackages = prev.linuxPackages.extend (linuxFinal: linuxPrev: { - ntv2-driver = linuxFinal.callPackage ./aja-ntv2/driver.nix { inherit ntv2-src; }; + ntv2-driver = linuxFinal.callPackage ./ntv2/driver.nix { inherit ntv2-src; }; }); }; } // flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: diff --git a/aja-ntv2/default.nix b/ntv2/default.nix similarity index 100% rename from aja-ntv2/default.nix rename to ntv2/default.nix diff --git a/aja-ntv2/driver.nix b/ntv2/driver.nix similarity index 100% rename from aja-ntv2/driver.nix rename to ntv2/driver.nix 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 From a763f7cd33aa1e161b79ea450bd319706ff67a66 Mon Sep 17 00:00:00 2001 From: Nathan van Doorn Date: Tue, 17 Oct 2023 10:12:04 +0200 Subject: [PATCH 6/6] Move gst into its own directory --- flake.nix | 2 +- ntv2-gst.nix => ntv2-gst/default.nix | 0 no.patch => ntv2-gst/no.patch | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename ntv2-gst.nix => ntv2-gst/default.nix (100%) rename no.patch => ntv2-gst/no.patch (100%) diff --git a/flake.nix b/flake.nix index 0b0b386..d604d53 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,7 @@ { overlays.default = final: prev: { ntv2 = final.callPackage ./ntv2 { inherit ntv2-src; }; - ntv2-gst = final.callPackage ./ntv2-gst.nix { inherit ntv2-gst-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; }; diff --git a/ntv2-gst.nix b/ntv2-gst/default.nix similarity index 100% rename from ntv2-gst.nix rename to ntv2-gst/default.nix diff --git a/no.patch b/ntv2-gst/no.patch similarity index 100% rename from no.patch rename to ntv2-gst/no.patch