From 64965e375035d3d09ae98a549c655b37716a1594 Mon Sep 17 00:00:00 2001 From: Connor Peshek Date: Wed, 19 Nov 2025 09:52:26 -0800 Subject: [PATCH] Makefile: Fix kerberos tests for brew users (#17223) Makefile: Fix kerberos tests for brew users Co-authored-by: connor peshek --- Makefile | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index dc39cbd5d5..50910de227 100644 --- a/Makefile +++ b/Makefile @@ -17,21 +17,20 @@ pg_user := $(shell uv run python -m authentik.lib.config postgresql.user 2>/dev/ pg_host := $(shell uv run python -m authentik.lib.config postgresql.host 2>/dev/null) pg_name := $(shell uv run python -m authentik.lib.config postgresql.name 2>/dev/null) -UNAME := $(shell uname) - # For macOS users, add the libxml2 installed from brew libxmlsec1 to the build path # to prevent SAML-related tests from failing and ensure correct pip dependency compilation -ifeq ($(UNAME), Darwin) -# Only add for brew users who installed libxmlsec1 - BREW_EXISTS := $(shell command -v brew 2> /dev/null) - ifdef BREW_EXISTS - LIBXML2_EXISTS := $(shell brew list libxml2 2> /dev/null) - ifdef LIBXML2_EXISTS - BREW_LDFLAGS := -L$(shell brew --prefix libxml2)/lib $(LDFLAGS) - BREW_CPPFLAGS := -I$(shell brew --prefix libxml2)/include $(CPPFLAGS) - BREW_PKG_CONFIG_PATH := $(shell brew --prefix libxml2)/lib/pkgconfig:$(PKG_CONFIG_PATH) - endif - endif +# These functions are only evaluated when called in specific targets +LIBXML2_EXISTS = $(shell brew list libxml2 2> /dev/null) +KRB5_EXISTS = $(shell brew list krb5 2> /dev/null) + +LIBXML2_LDFLAGS = -L$(shell brew --prefix libxml2)/lib $(LDFLAGS) +LIBXML2_CPPFLAGS = -I$(shell brew --prefix libxml2)/include $(CPPFLAGS) +LIBXML2_PKG_CONFIG = $(shell brew --prefix libxml2)/lib/pkgconfig:$(PKG_CONFIG_PATH) + +KRB_PATH = + +ifneq ($(KRB5_EXISTS),) + KRB_PATH = PATH="$(shell brew --prefix krb5)/sbin:$(shell brew --prefix krb5)/bin:$$PATH" endif all: lint-fix lint gen web test ## Lint, build, and test everything @@ -50,7 +49,7 @@ go-test: go test -timeout 0 -v -race -cover ./... test: ## Run the server tests and produce a coverage report (locally) - uv run coverage run manage.py test --keepdb authentik + $(KRB_PATH) uv run coverage run manage.py test --keepdb $(or $(filter-out $@,$(MAKECMDGOALS)),authentik) uv run coverage html uv run coverage report @@ -66,11 +65,11 @@ lint: ## Lint the python and golang sources golangci-lint run -v core-install: -ifdef LIBXML2_EXISTS +ifneq ($(LIBXML2_EXISTS),) # Clear cache to ensure fresh compilation uv cache clean # Force compilation from source for lxml and xmlsec with correct environment - LDFLAGS="$(BREW_LDFLAGS)" CPPFLAGS="$(BREW_CPPFLAGS)" PKG_CONFIG_PATH="$(BREW_PKG_CONFIG_PATH)" uv sync --frozen --reinstall-package lxml --reinstall-package xmlsec --no-binary-package lxml --no-binary-package xmlsec + LDFLAGS="$(LIBXML2_LDFLAGS)" CPPFLAGS="$(LIBXML2_CPPFLAGS)" PKG_CONFIG_PATH="$(LIBXML2_PKG_CONFIG)" uv sync --frozen --reinstall-package lxml --reinstall-package xmlsec --no-binary-package lxml --no-binary-package xmlsec else uv sync --frozen endif