Merge pull request #59 from Ma27/authentik-2025.04
update: 2025.2.4 -> 2025.4.0, switch to uv
This commit is contained in:
commit
0b5a364838
8 changed files with 201 additions and 376 deletions
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
authentik-src,
|
|
||||||
authentik-version,
|
|
||||||
authentikPoetryOverrides,
|
|
||||||
buildNapalmPackage,
|
|
||||||
defaultPoetryOverrides,
|
|
||||||
mkPoetryEnv,
|
|
||||||
pkgs,
|
|
||||||
}:
|
|
||||||
|
|
||||||
pkgs.lib.makeScope pkgs.newScope (
|
|
||||||
final:
|
|
||||||
let
|
|
||||||
docs = final.callPackage ./docs.nix { };
|
|
||||||
frontend = final.callPackage ./frontend.nix { };
|
|
||||||
pythonEnv = final.callPackage ./pythonEnv.nix { };
|
|
||||||
# server + outposts
|
|
||||||
gopkgs = final.callPackage ./gopkgs.nix { };
|
|
||||||
staticWorkdirDeps = final.callPackage ./staticWorkdirDeps.nix { };
|
|
||||||
migrate = final.callPackage ./migrate.nix { };
|
|
||||||
# worker
|
|
||||||
manage = final.callPackage ./manage.nix { };
|
|
||||||
in
|
|
||||||
{
|
|
||||||
authentikComponents = {
|
|
||||||
inherit
|
|
||||||
docs
|
|
||||||
frontend
|
|
||||||
pythonEnv
|
|
||||||
gopkgs
|
|
||||||
staticWorkdirDeps
|
|
||||||
migrate
|
|
||||||
manage
|
|
||||||
;
|
|
||||||
};
|
|
||||||
inherit
|
|
||||||
authentik-src
|
|
||||||
authentik-version
|
|
||||||
buildNapalmPackage
|
|
||||||
mkPoetryEnv
|
|
||||||
defaultPoetryOverrides
|
|
||||||
authentikPoetryOverrides
|
|
||||||
;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
@ -17,7 +17,6 @@ buildNapalmPackage "${authentik-src}/website" {
|
||||||
"npm run build-bundled"
|
"npm run build-bundled"
|
||||||
];
|
];
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
rm -r ../website/node_modules/.cache
|
|
||||||
rm -f ../website/static/blueprints
|
rm -f ../website/static/blueprints
|
||||||
mv -v ../website $out
|
mv -v ../website $out
|
||||||
cp -vr ../blueprints $out/static/blueprints
|
cp -vr ../blueprints $out/static/blueprints
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
authentik-src,
|
authentik-src,
|
||||||
authentik-version,
|
authentik-version,
|
||||||
authentikComponents,
|
authentikComponents,
|
||||||
buildGo123Module,
|
buildGo124Module,
|
||||||
lib,
|
lib,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildGo123Module {
|
buildGo124Module {
|
||||||
pname = "authentik-gopkgs";
|
pname = "authentik-gopkgs";
|
||||||
version = authentik-version;
|
version = authentik-version;
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
|
|
@ -42,7 +42,7 @@ buildGo123Module {
|
||||||
"cmd/proxy"
|
"cmd/proxy"
|
||||||
"cmd/radius"
|
"cmd/radius"
|
||||||
];
|
];
|
||||||
vendorHash = "sha256-aG/VqpmHJeGyF98aS0jgwEAq1R5c8VggeJxLWS9W8HY=";
|
vendorHash = "sha256-cEB22KFDONcJBq/FvLpYKN7Zd06mh8SACvCSuj5i4fI=";
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
|
|
||||||
68
components/python-overrides.nix
Normal file
68
components/python-overrides.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
krb5,
|
||||||
|
libpq,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Specify build system for dependencies where metadata is incomplete.
|
||||||
|
buildSystemOverrides =
|
||||||
|
final: prev:
|
||||||
|
let
|
||||||
|
buildSystemOverrides = {
|
||||||
|
gssapi = {
|
||||||
|
setuptools = [ ];
|
||||||
|
cython = [ ];
|
||||||
|
};
|
||||||
|
django-tenants.setuptools = [ ];
|
||||||
|
opencontainers.setuptools = [ ];
|
||||||
|
djangorestframework.setuptools = [ ];
|
||||||
|
psycopg-c = {
|
||||||
|
setuptools = [ ];
|
||||||
|
cython = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
inherit (final) resolveBuildSystem;
|
||||||
|
in
|
||||||
|
lib.mapAttrs (
|
||||||
|
name: spec:
|
||||||
|
prev.${name}.overrideAttrs (old: {
|
||||||
|
nativeBuildInputs = old.nativeBuildInputs ++ resolveBuildSystem spec;
|
||||||
|
})
|
||||||
|
) buildSystemOverrides;
|
||||||
|
|
||||||
|
# Fixes for dependencies with C libraries.
|
||||||
|
buildFixes = final: prev: {
|
||||||
|
gssapi = prev.gssapi.overrideAttrs (
|
||||||
|
{
|
||||||
|
buildInputs ? [ ],
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace setup.py \
|
||||||
|
--replace-fail 'get_output(f"{kc} gssapi --prefix")' '"${krb5.dev}"'
|
||||||
|
'';
|
||||||
|
buildInputs = buildInputs ++ [
|
||||||
|
krb5
|
||||||
|
];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
psycopg-c = prev.psycopg-c.overrideAttrs (
|
||||||
|
{
|
||||||
|
nativeBuildInputs ? [ ],
|
||||||
|
buildInputs ? [ ],
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
buildInputs = buildInputs ++ [
|
||||||
|
libpq
|
||||||
|
];
|
||||||
|
nativeBuildInputs = nativeBuildInputs ++ [
|
||||||
|
libpq.pg_config
|
||||||
|
];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib.composeExtensions buildSystemOverrides buildFixes
|
||||||
|
|
@ -1,25 +1,30 @@
|
||||||
{
|
{
|
||||||
authentik-src,
|
|
||||||
authentikPoetryOverrides,
|
|
||||||
defaultPoetryOverrides,
|
|
||||||
lib,
|
lib,
|
||||||
mkPoetryEnv,
|
callPackage,
|
||||||
python312,
|
authentik-src,
|
||||||
|
uv2nix,
|
||||||
|
pythonOverlay,
|
||||||
|
python,
|
||||||
|
pyproject-nix,
|
||||||
|
pyproject-build-systems,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkPoetryEnv {
|
let
|
||||||
projectDir = authentik-src;
|
workspace = uv2nix.lib.workspace.loadWorkspace { workspaceRoot = authentik-src; };
|
||||||
python = python312;
|
projectOverlay = workspace.mkPyprojectOverlay {
|
||||||
overrides = [
|
sourcePreference = "wheel";
|
||||||
defaultPoetryOverrides
|
};
|
||||||
] ++ authentikPoetryOverrides;
|
|
||||||
groups = [ "main" ];
|
pythonSet =
|
||||||
checkGroups = [ ];
|
(callPackage pyproject-nix.build.packages {
|
||||||
# workaround to remove dev-dependencies for the current combination of legacy
|
inherit python;
|
||||||
# used by authentik and poetry2nix's behavior
|
}).overrideScope
|
||||||
pyproject = builtins.toFile "patched-pyproject.toml" (
|
(
|
||||||
lib.replaceStrings [ "tool.poetry.dev-dependencies" ] [ "tool.poetry.group.dev.dependencies" ] (
|
lib.composeManyExtensions [
|
||||||
builtins.readFile "${authentik-src}/pyproject.toml"
|
pyproject-build-systems.overlays.default
|
||||||
)
|
projectOverlay
|
||||||
|
pythonOverlay
|
||||||
|
]
|
||||||
);
|
);
|
||||||
}
|
in
|
||||||
|
pythonSet.mkVirtualEnv "authentik-env" (workspace.deps.default)
|
||||||
|
|
|
||||||
109
flake.lock
generated
109
flake.lock
generated
|
|
@ -3,16 +3,16 @@
|
||||||
"authentik-src": {
|
"authentik-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744135136,
|
"lastModified": 1745954192,
|
||||||
"narHash": "sha256-7wvoCRhLipX4qzrb/ctsozG565yckx+moxiF6vRo84I=",
|
"narHash": "sha256-QuIgeu3CN6S44/zSiaj+iIkDz2494mb1MWvD3eYYkVE=",
|
||||||
"owner": "goauthentik",
|
"owner": "goauthentik",
|
||||||
"repo": "authentik",
|
"repo": "authentik",
|
||||||
"rev": "74eab55c615b156e4191ee98dc789e2d58c016f9",
|
"rev": "22412729e2379d645da2ac0c0270a0ac6147945e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "goauthentik",
|
"owner": "goauthentik",
|
||||||
"ref": "version/2025.2.4",
|
"ref": "version/2025.4.0",
|
||||||
"repo": "authentik",
|
"repo": "authentik",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
@ -95,34 +95,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"poetry2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1729742964,
|
|
||||||
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745391562,
|
"lastModified": 1746141548,
|
||||||
"narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=",
|
"narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7",
|
"rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -147,31 +126,49 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"poetry2nix": {
|
"pyproject-build-systems": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": [
|
"pyproject-nix": [
|
||||||
"systems"
|
"pyproject-nix"
|
||||||
],
|
],
|
||||||
"treefmt-nix": "treefmt-nix"
|
"uv2nix": [
|
||||||
|
"uv2nix"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743690424,
|
"lastModified": 1744599653,
|
||||||
"narHash": "sha256-cX98bUuKuihOaRp8dNV1Mq7u6/CQZWTPth2IJPATBXc=",
|
"narHash": "sha256-nysSwVVjG4hKoOjhjvE6U5lIKA8sEr1d1QzEfZsannU=",
|
||||||
"owner": "nix-community",
|
"owner": "pyproject-nix",
|
||||||
"repo": "poetry2nix",
|
"repo": "build-system-pkgs",
|
||||||
"rev": "ce2369db77f45688172384bbeb962bc6c2ea6f94",
|
"rev": "7dba6dbc73120e15b558754c26024f6c93015dd7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "pyproject-nix",
|
||||||
"repo": "poetry2nix",
|
"repo": "build-system-pkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyproject-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746146146,
|
||||||
|
"narHash": "sha256-60+mzI2lbgn+G8F5mz+cmkDvHFn4s5oqcOna1SzYy74=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"rev": "3e9623bdd86a3c545e82b7f97cfdba5f07232d9a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -183,8 +180,10 @@
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"napalm": "napalm",
|
"napalm": "napalm",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"poetry2nix": "poetry2nix",
|
"pyproject-build-systems": "pyproject-build-systems",
|
||||||
"systems": "systems"
|
"pyproject-nix": "pyproject-nix",
|
||||||
|
"systems": "systems",
|
||||||
|
"uv2nix": "uv2nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
@ -202,24 +201,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
"uv2nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"poetry2nix",
|
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"pyproject-nix"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730120726,
|
"lastModified": 1746048139,
|
||||||
"narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
|
"narHash": "sha256-LdCLyiihLg6P2/mjzP0+W7RtraDSIaJJPTy6SCtW5Ag=",
|
||||||
"owner": "numtide",
|
"owner": "pyproject-nix",
|
||||||
"repo": "treefmt-nix",
|
"repo": "uv2nix",
|
||||||
"rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
|
"rev": "680e2f8e637bc79b84268949d2f2b2f5e5f1d81c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "pyproject-nix",
|
||||||
"repo": "treefmt-nix",
|
"repo": "uv2nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
74
flake.nix
74
flake.nix
|
|
@ -13,16 +13,26 @@
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pyproject-nix = {
|
||||||
|
url = "github:pyproject-nix/pyproject.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
uv2nix = {
|
||||||
|
url = "github:pyproject-nix/uv2nix";
|
||||||
|
inputs.pyproject-nix.follows = "pyproject-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
pyproject-build-systems = {
|
||||||
|
url = "github:pyproject-nix/build-system-pkgs";
|
||||||
|
inputs.pyproject-nix.follows = "pyproject-nix";
|
||||||
|
inputs.uv2nix.follows = "uv2nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
poetry2nix = {
|
|
||||||
url = "github:nix-community/poetry2nix";
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
flake-utils.follows = "flake-utils";
|
|
||||||
systems.follows = "systems";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
napalm = {
|
napalm = {
|
||||||
url = "github:willibutz/napalm/avoid-foldl-stack-overflow";
|
url = "github:willibutz/napalm/avoid-foldl-stack-overflow";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|
@ -32,7 +42,7 @@
|
||||||
};
|
};
|
||||||
authentik-src = {
|
authentik-src = {
|
||||||
# change version string in outputs as well when updating
|
# change version string in outputs as well when updating
|
||||||
url = "github:goauthentik/authentik/version/2025.2.4";
|
url = "github:goauthentik/authentik/version/2025.4.0";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -40,11 +50,12 @@
|
||||||
outputs =
|
outputs =
|
||||||
inputs@{
|
inputs@{
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
|
||||||
flake-parts,
|
flake-parts,
|
||||||
poetry2nix,
|
|
||||||
napalm,
|
napalm,
|
||||||
authentik-src,
|
authentik-src,
|
||||||
|
uv2nix,
|
||||||
|
pyproject-build-systems,
|
||||||
|
pyproject-nix,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
@ -56,7 +67,7 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
authentik-version = "2025.2.4"; # to pass to the drvs of some components
|
authentik-version = "2025.4.0"; # to pass to the drvs of some components
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
systems = import inputs.systems;
|
systems = import inputs.systems;
|
||||||
|
|
@ -98,23 +109,36 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
system ? pkgs.stdenv.hostPlatform.system,
|
system ? pkgs.stdenv.hostPlatform.system,
|
||||||
|
python ? pkgs.python312,
|
||||||
authentik-version ? authentik-version',
|
authentik-version ? authentik-version',
|
||||||
mkPoetryEnv ? (import inputs.poetry2nix { inherit pkgs; }).mkPoetryEnv,
|
|
||||||
defaultPoetryOverrides ? (import inputs.poetry2nix { inherit pkgs; }).defaultPoetryOverrides,
|
|
||||||
authentikPoetryOverrides ? import ./poetry2nix-python-overrides.nix pkgs,
|
|
||||||
buildNapalmPackage ? napalm.legacyPackages.${system}.buildPackage,
|
buildNapalmPackage ? napalm.legacyPackages.${system}.buildPackage,
|
||||||
}:
|
}:
|
||||||
import ./components {
|
pkgs.lib.makeScope pkgs.newScope (final: {
|
||||||
|
authentikComponents = {
|
||||||
|
docs = final.callPackage ./components/docs.nix { };
|
||||||
|
frontend = final.callPackage ./components/frontend.nix { };
|
||||||
|
pythonEnv = final.callPackage ./components/pythonEnv.nix { };
|
||||||
|
# server + outposts
|
||||||
|
gopkgs = final.callPackage ./components/gopkgs.nix { };
|
||||||
|
staticWorkdirDeps = final.callPackage ./components/staticWorkdirDeps.nix { };
|
||||||
|
migrate = final.callPackage ./components/migrate.nix { };
|
||||||
|
# worker
|
||||||
|
manage = final.callPackage ./components/manage.nix { };
|
||||||
|
};
|
||||||
|
|
||||||
|
# for uv2nix
|
||||||
|
pythonOverlay = final.callPackage ./components/python-overrides.nix { };
|
||||||
|
|
||||||
inherit
|
inherit
|
||||||
pkgs
|
|
||||||
authentik-src
|
authentik-src
|
||||||
authentik-version
|
authentik-version
|
||||||
mkPoetryEnv
|
|
||||||
defaultPoetryOverrides
|
|
||||||
authentikPoetryOverrides
|
|
||||||
buildNapalmPackage
|
buildNapalmPackage
|
||||||
|
uv2nix
|
||||||
|
pyproject-build-systems
|
||||||
|
pyproject-nix
|
||||||
|
python
|
||||||
;
|
;
|
||||||
};
|
});
|
||||||
};
|
};
|
||||||
perSystem =
|
perSystem =
|
||||||
{
|
{
|
||||||
|
|
@ -138,17 +162,17 @@
|
||||||
manage
|
manage
|
||||||
;
|
;
|
||||||
|
|
||||||
terraform-provider-authentik = inputs.nixpkgs.legacyPackages.${system}.buildGo123Module rec {
|
terraform-provider-authentik = inputs.nixpkgs.legacyPackages.${system}.buildGo124Module rec {
|
||||||
pname = "terraform-provider-authentik";
|
pname = "terraform-provider-authentik";
|
||||||
version = "2025.2.0";
|
version = "2025.4.0";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "goauthentik";
|
owner = "goauthentik";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-hEekwwquhkgB2BpOdYFEiD5A9886iVR/uqXwnMV8NUI=";
|
sha256 = "sha256-jaE7aWnDRiBNzDH4PTIZaND1ib+dd1nIC0p1B4XeWQc=";
|
||||||
};
|
};
|
||||||
doCheck = false; # tests are run against authentik -> vm test
|
doCheck = false; # tests are run against authentik -> vm test
|
||||||
vendorHash = "sha256-xKb9dY/1N1rdZNWhLboLiSft3WDHyXFf73dErodVmLI=";
|
vendorHash = "sha256-gYCaxoRQgMmxzaSzqhsJwHpHrnsQKA0i6Z1BZJmcpIE=";
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
path="$out/libexec/terraform-providers/registry.terraform.io/goauthentik/authentik/${version}/''${GOOS}_''${GOARCH}/"
|
path="$out/libexec/terraform-providers/registry.terraform.io/goauthentik/authentik/${version}/''${GOOS}_''${GOARCH}/"
|
||||||
mkdir -p "$path"
|
mkdir -p "$path"
|
||||||
|
|
|
||||||
|
|
@ -1,227 +0,0 @@
|
||||||
pkgs: [
|
|
||||||
# modules missing only setuptools
|
|
||||||
(
|
|
||||||
final: prev:
|
|
||||||
(builtins.listToAttrs (
|
|
||||||
map
|
|
||||||
(name: {
|
|
||||||
inherit name;
|
|
||||||
value = prev.${name}.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = (oA.nativeBuildInputs or [ ]) ++ [ final.setuptools ];
|
|
||||||
});
|
|
||||||
})
|
|
||||||
[
|
|
||||||
"django-cte"
|
|
||||||
"django-tenants"
|
|
||||||
"dumb-init"
|
|
||||||
"drf-orjson-renderer"
|
|
||||||
]
|
|
||||||
))
|
|
||||||
)
|
|
||||||
(final: prev: {
|
|
||||||
xmlsec = prev.xmlsec.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.setuptools
|
|
||||||
final.pkgconfig
|
|
||||||
];
|
|
||||||
buildInputs = [
|
|
||||||
pkgs.xmlsec.dev
|
|
||||||
pkgs.xmlsec
|
|
||||||
pkgs.libxml2
|
|
||||||
pkgs.libtool
|
|
||||||
];
|
|
||||||
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
|
|
||||||
});
|
|
||||||
opencontainers = prev.opencontainers.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.setuptools
|
|
||||||
final.pytest
|
|
||||||
];
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace setup.py --replace-fail '"pytest-runner"' '''
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
psycopg-c = prev.psycopg-c.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.setuptools
|
|
||||||
final.tomli
|
|
||||||
pkgs.libpq.pg_config
|
|
||||||
];
|
|
||||||
buildInputs = oA.buildInputs ++ [
|
|
||||||
pkgs.libpq
|
|
||||||
];
|
|
||||||
});
|
|
||||||
twisted = prev.twisted.overrideAttrs (oA: {
|
|
||||||
buildInputs = oA.buildInputs ++ [
|
|
||||||
final.hatchling
|
|
||||||
final.hatch-fancy-pypi-readme
|
|
||||||
];
|
|
||||||
});
|
|
||||||
cryptography = prev.cryptography.overridePythonAttrs (oA: {
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
src = oA.src;
|
|
||||||
sourceRoot = "${oA.pname}-${oA.version}";
|
|
||||||
name = "${oA.pname}-${oA.version}";
|
|
||||||
hash = "sha256-hjfSjmwd/mylVZKyXsj/pP2KvAGDpfthuT+w219HAiA=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
bcrypt = prev.bcrypt.overridePythonAttrs (oA: {
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
inherit (oA) src;
|
|
||||||
sourceRoot = "${oA.pname}-${oA.version}/src/_bcrypt";
|
|
||||||
name = "${oA.pname}-${oA.version}";
|
|
||||||
hash = "sha256-TD1Qacr2BS3CutGzDcUSweTrlMuKy0U/eIS/oBLxTlI=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
orjson = prev.orjson.overridePythonAttrs (oA: {
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
inherit (oA) src;
|
|
||||||
name = "${oA.pname}-${oA.version}";
|
|
||||||
hash = "sha256-FONzOuF+FU4gKesnqyVOwy0Z9abIF2kv/GHM+pwaCJs=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
dnspython = prev.dnspython.overrideAttrs (oA: {
|
|
||||||
buildInputs = oA.buildInputs ++ [
|
|
||||||
final.hatchling
|
|
||||||
];
|
|
||||||
});
|
|
||||||
sqlparse = prev.sqlparse.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.hatchling
|
|
||||||
];
|
|
||||||
});
|
|
||||||
scim2-filter-parser = prev.scim2-filter-parser.overrideAttrs (oA: {
|
|
||||||
patches = [
|
|
||||||
(pkgs.fetchpatch {
|
|
||||||
name = "replace-poetry-with-poetry-core.patch";
|
|
||||||
url = "https://patch-diff.githubusercontent.com/raw/15five/scim2-filter-parser/pull/43.patch";
|
|
||||||
hash = "sha256-PjJH1S5CDe/BMI0+mB34KdpNNcHfexBFYBmHolsWH4o=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.poetry-core
|
|
||||||
];
|
|
||||||
});
|
|
||||||
pendulum = prev.pendulum.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
pkgs.rustPlatform.cargoSetupHook
|
|
||||||
pkgs.rustPlatform.maturinBuildHook
|
|
||||||
];
|
|
||||||
cargoRoot = "rust";
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
src = oA.src;
|
|
||||||
sourceRoot = "${oA.pname}-${oA.version}/rust";
|
|
||||||
name = "${oA.pname}-${oA.version}";
|
|
||||||
hash = "sha256-6WgGIfz9I+xRJqXWhjfGDZM1umYwVlUEpLAiecZNZmI=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
django-pgactivity = prev.django-pgactivity.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.poetry-core
|
|
||||||
];
|
|
||||||
});
|
|
||||||
docker = prev.docker.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
prev.hatchling
|
|
||||||
prev.hatch-vcs
|
|
||||||
];
|
|
||||||
});
|
|
||||||
django-pglock = prev.django-pglock.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.poetry-core
|
|
||||||
];
|
|
||||||
});
|
|
||||||
# https://github.com/pyradius/pyrad/pull/168/files
|
|
||||||
# not included in the latest release :/
|
|
||||||
pyrad = prev.pyrad.overrideAttrs (oA: {
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace pyproject.toml \
|
|
||||||
--replace-fail "poetry.masonry.api" "poetry.core.masonry.api" \
|
|
||||||
--replace-fail "repository =" "Repository ="
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
msgraph-sdk = prev.msgraph-sdk.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.flit-core
|
|
||||||
];
|
|
||||||
});
|
|
||||||
python-kadmin-rs = prev.python-kadmin-rs.overrideAttrs (oA: {
|
|
||||||
pythonImportsCheck = [ "kadmin" ];
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.setuptools
|
|
||||||
final.setuptools-rust
|
|
||||||
final.setuptools-scm
|
|
||||||
pkgs.cargo
|
|
||||||
pkgs.libkrb5
|
|
||||||
pkgs.pkg-config
|
|
||||||
pkgs.rustPlatform.bindgenHook
|
|
||||||
pkgs.rustPlatform.cargoSetupHook
|
|
||||||
pkgs.rustc
|
|
||||||
pkgs.sccache
|
|
||||||
];
|
|
||||||
buildInputs = oA.buildInputs ++ [
|
|
||||||
pkgs.krb5
|
|
||||||
];
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
inherit (oA) pname version src;
|
|
||||||
hash = "sha256-9LCtsX3fuRXCHu5Gd+7OB5JQZ0h6KjSOSan83KUivLQ=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
gssapi = prev.gssapi.overrideAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [
|
|
||||||
final.setuptools
|
|
||||||
final.cython
|
|
||||||
pkgs.krb5
|
|
||||||
];
|
|
||||||
postPatch = ''
|
|
||||||
substituteInPlace setup.py \
|
|
||||||
--replace-fail 'get_output(f"{kc} gssapi --prefix")' '"${pkgs.krb5.dev}"'
|
|
||||||
'';
|
|
||||||
pythonImportsCheck = [ "gssapi" ];
|
|
||||||
});
|
|
||||||
# break dependency cycle that causes an infinite recursion
|
|
||||||
ua-parser-builtins = prev.ua-parser-builtins.overridePythonAttrs (oA: {
|
|
||||||
propagatedBuildInputs = builtins.filter (p: p.pname != "ua-parser") oA.propagatedBuildInputs;
|
|
||||||
});
|
|
||||||
rpds-py = prev.rpds-py.overridePythonAttrs (oA: {
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
inherit (oA) src pname version;
|
|
||||||
hash = "sha256-vfx0ZbIgH5UvL1JMYeJIToY35w2axiHngBt5FJUih7c=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
watchfiles = prev.watchfiles.overridePythonAttrs (oA: {
|
|
||||||
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
|
|
||||||
inherit (oA) src pname version;
|
|
||||||
hash = "sha256-EuH6svw8eOEpLJYLx+4RFUTTClqfPN07Vc0cjlWoCXw=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
microsoft-kiota-abstractions = prev.microsoft-kiota-abstractions.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_abstractions" ];
|
|
||||||
});
|
|
||||||
microsoft-kiota-serialization-form = prev.microsoft-kiota-serialization-form.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_serialization_form" ];
|
|
||||||
});
|
|
||||||
microsoft-kiota-serialization-text = prev.microsoft-kiota-serialization-text.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_serialization_text" ];
|
|
||||||
});
|
|
||||||
microsoft-kiota-serialization-json = prev.microsoft-kiota-serialization-json.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_serialization_json" ];
|
|
||||||
});
|
|
||||||
microsoft-kiota-serialization-multipart = prev.microsoft-kiota-serialization-multipart.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_serialization_multipart" ];
|
|
||||||
});
|
|
||||||
microsoft-kiota-http = prev.microsoft-kiota-http.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_http" ];
|
|
||||||
});
|
|
||||||
microsoft-kiota-authentication-azure = prev.microsoft-kiota-authentication-azure.overridePythonAttrs (oA: {
|
|
||||||
nativeBuildInputs = oA.nativeBuildInputs ++ [ final.poetry-core ];
|
|
||||||
pythonImportsCheck = [ "kiota_authentication_azure" ];
|
|
||||||
});
|
|
||||||
})
|
|
||||||
]
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue