diff --git a/pkgs/os-specific/darwin/pam-reattach/default.nix b/pkgs/os-specific/darwin/pam-reattach/default.nix new file mode 100644 index 000000000000..03d0547fc167 --- /dev/null +++ b/pkgs/os-specific/darwin/pam-reattach/default.nix @@ -0,0 +1,45 @@ +{ lib, stdenv, fetchFromGitHub, cmake, openpam, darwin }: + +let + sdk = + if stdenv.isAarch64 + then null + else darwin.apple_sdk.sdk; +in + +stdenv.mkDerivation rec { + pname = "pam_reattach"; + version = "1.3"; + + src = fetchFromGitHub { + owner = "fabianishere"; + repo = pname; + rev = "v${version}"; + sha256 = "1k77kxqszdwgrb50w7algj22pb4fy5b9649cjb08zq9fqrzxcbz7"; + }; + + cmakeFlags = [ + "-DCMAKE_OSX_ARCHITECTURES=${ + if stdenv.hostPlatform.system == "x86_64-darwin" then + "x86_64" + else + "arm64" + }" + "-DENABLE_CLI=ON" + ] + ++ lib.optional (sdk != null) + "-DCMAKE_LIBRARY_PATH=${sdk}/usr/lib"; + + buildInputs = [ openpam ] + ++ lib.optional (sdk != null) sdk; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + homepage = "https://github.com/fabianishere/pam_reattach"; + description = "Reattach to the user's GUI session on macOS during authentication (for Touch ID support in tmux)"; + license = licenses.mit; + maintainers = with maintainers; [ lockejan ]; + platforms = platforms.darwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 726b157b81c9..e3a39a2cc995 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3302,6 +3302,8 @@ with pkgs; plausible = callPackage ../servers/web-apps/plausible { }; + pam-reattach = callPackage ../os-specific/darwin/pam-reattach {}; + reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {}; skhd = callPackage ../os-specific/darwin/skhd {