From nobody Thu Jul 2 02:47:37 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4grLsB3DhGz6jfq7 for ; Thu, 02 Jul 2026 02:47:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4grLsB2fVBz3nd6 for ; Thu, 02 Jul 2026 02:47:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782960462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BoUpzf6lS/2ror92AD7EoZU1OpvfNHOjFSkAfTcGMXY=; b=JLf4Q8OnR8fgmFDFpg7//hXunvW+YTrmWQ78rXtVGsXf4SHaOaF4O8fjbpYaaVxJ5s63fx u8XLFtCR7y40KspP0fCeAYANGdchXb0JgBQCigKfUmDEsvEyCyhGclrrnj2p/2Rr0vZZG4 R6B5LHeqlgfFD1hr8kHdLxn3Ftt282W6TtsP4gqRJB+9HfddDvewAEhztSZQW9AFUBfSxL w8IgpuiWxUpKpQ0SUTV1LMq2C9UqwX45Pl2jh2JEPfjwFQbgB9Qb9glqCsW+sVoAxPPNcR 0kdgIjANVCi+3uXzzZ50Kz9bMUIdrFA+xh6u4sv9Yudf+Hv84oe6rjjctaiToA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782960462; a=rsa-sha256; cv=none; b=nf7S3odVFfP83rwenlBp5Ic+cBEFddnRusDqVZ06ydeETNM/TBCQI9++x9FizkMHUEneHT 1AvBk6+E4BTRa3CTaa2mGCOeh0aebYLipYBjFVXz9z5uiC2CmrroK2ECp9k1JhqPsZPE/a MnTYKhCH/s4wm/ylYYjA4Bo2R0v0321G5N/y5FD4eW+uMdFPvBzS+8ytHS1QgunilwmH0o IOK52fg7l+HXoxYjSkrBnjJ2BnjCEmoakxHGwAOLzegxlN14zPL+p609umOTezNAXPWg1N Yo+PVArl0tKqSSKNMFi9NTngDnQH1bO8t79HSUlhctz1zML6xvv58yF0sF2mYA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782960462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BoUpzf6lS/2ror92AD7EoZU1OpvfNHOjFSkAfTcGMXY=; b=RMHq6mIoWhaOKqmxWvAk0rjl6yJzOFVh9T46MeqA2ZoWiDy5VI33au5MYhRYn/dwx2E5Te HXaKHhMytoOgzUOteOFPzXNQHoOPmK+KguAjpdVUHWepEFg5YAg7dfEh/dEUCezkVAIt5p 9cpalBtSOFgtVzTYohd/PjsrVWwAvsDy/UY/mE68/L8aS+Aclfw/ue4jN/CXoY8ZVvHfZ3 kSBbBhhiaQoz3wpu16TEAppp1ZLqVaZmu/ZFlrOhM4I/c1R34NZouGO/k1g2U1vcqiCKFT LaT6uX7/pMaL85sOy4eXuWok0d70zGBQeTModrWIT9oGrHjzlNaZueLh+7DLuA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4grLsB1HhTzj6m for ; Thu, 02 Jul 2026 02:47:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b052 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 02 Jul 2026 02:47:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pierre Pronchery Subject: git: c146f5ae308e - main - pkgconf: determine the default paths dynamically List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: khorben X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c146f5ae308ee47f2832fb3df1e14f864be70015 Auto-Submitted: auto-generated Date: Thu, 02 Jul 2026 02:47:37 +0000 Message-Id: <6a45d149.3b052.2bc65848@gitrepo.freebsd.org> The branch main has been updated by khorben: URL: https://cgit.FreeBSD.org/src/commit/?id=c146f5ae308ee47f2832fb3df1e14f864be70015 commit c146f5ae308ee47f2832fb3df1e14f864be70015 Author: Pierre Pronchery AuthorDate: 2026-05-26 13:48:49 +0000 Commit: Pierre Pronchery CommitDate: 2026-07-02 00:57:45 +0000 pkgconf: determine the default paths dynamically This automatically computes the correct PKG_CONFIG_PATH with LOCALBASE from the environment (when set) or from the "user.localbase" sysctl, in this order. Reviewed by: des Approved by: des Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57246 --- contrib/pkgconf/libpkgconf/personality.c | 61 ++++++++++++++++++++++++++++++++ lib/libpkgconf/Makefile | 2 -- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/contrib/pkgconf/libpkgconf/personality.c b/contrib/pkgconf/libpkgconf/personality.c index 191c222fe3b7..076337695893 100644 --- a/contrib/pkgconf/libpkgconf/personality.c +++ b/contrib/pkgconf/libpkgconf/personality.c @@ -19,6 +19,12 @@ #include #include +#ifdef __FreeBSD__ +# include +# include +# include +#endif + /* * !doc * @@ -89,6 +95,34 @@ build_default_search_path(pkgconf_list_t* dirlist) free(paths); paths = NULL; } +#elif defined(__FreeBSD__) + pkgconf_buffer_t path1 = PKGCONF_BUFFER_INITIALIZER; + pkgconf_buffer_t path2 = PKGCONF_BUFFER_INITIALIZER; + char const *localbase; + char buf[MAXPATHLEN]; + size_t len; + + localbase = getenv("LOCALBASE"); + + if (localbase == NULL) { + len = sizeof(buf); + if (sysctlbyname("user.localbase", &buf, &len, NULL, 0) < 0) + err(1, "sysctl(user.localbase)"); + + localbase = buf; + } + + if (!pkgconf_buffer_append(&path1, localbase) || + !pkgconf_buffer_append(&path1, "/libdata/pkgconfig")) + err(1, NULL); + pkgconf_path_add(pkgconf_buffer_str(&path1), dirlist, false); + + pkgconf_path_add("/usr/libdata/pkgconfig", dirlist, false); + + if (!pkgconf_buffer_append(&path2, localbase) || + !pkgconf_buffer_append(&path2, "/share/pkgconfig")) + err(1, NULL); + pkgconf_path_add(pkgconf_buffer_str(&path2), dirlist, false); #else pkgconf_path_split(PKG_DEFAULT_PATH, dirlist, false); #endif @@ -324,6 +358,12 @@ pkgconf_cross_personality_find(const char *triplet) #if ! defined(_WIN32) && ! defined(__HAIKU__) const char *envvar; #endif +#if defined(__FreeBSD__) + pkgconf_buffer_t path = PKGCONF_BUFFER_INITIALIZER; + char const *localbase; + char buf[MAXPATHLEN]; + size_t len; +#endif out = load_personality_with_path(triplet, NULL, false); if (out != NULL) @@ -362,7 +402,28 @@ pkgconf_cross_personality_find(const char *triplet) pkgconf_path_free(&plist); #endif +#ifdef __FreeBSD__ + localbase = getenv("LOCALBASE"); + + if (localbase == NULL) { + len = sizeof(buf); + if (sysctlbyname("user.localbase", &buf, &len, NULL, 0) < 0) + err(1, "sysctl(user.localbase)"); + + localbase = buf; + } + + pkgconf_path_add("/usr/share/pkgconfig/personality.d", &plist, true); + pkgconf_path_add("/etc/pkgconfig/personality.d", &plist, true); + + if (!pkgconf_buffer_append(&path, localbase) || + !pkgconf_buffer_append(&path, + "/etc/pkgconfig/personality.d")) + err(1, NULL); + pkgconf_path_add(pkgconf_buffer_str(&path), &plist, true); +#else pkgconf_path_split(PERSONALITY_PATH, &plist, true); +#endif PKGCONF_FOREACH_LIST_ENTRY(plist.head, n) { diff --git a/lib/libpkgconf/Makefile b/lib/libpkgconf/Makefile index 7f742dcc4858..eb838405966b 100644 --- a/lib/libpkgconf/Makefile +++ b/lib/libpkgconf/Makefile @@ -39,8 +39,6 @@ INCS+= libpkgconf-api.h WARNS?= 3 -CFLAGS+= -DPERSONALITY_PATH=\"/usr/share/pkgconfig/personality.d:/etc/pkgconfig/personality.d:${LOCALBASE:U/usr/local}/etc/pkgconfig/personality.d\" -CFLAGS+= -DPKG_DEFAULT_PATH=\"${LOCALBASE:U/usr/local}/libdata/pkgconfig:/usr/libdata/pkgconfig:${LOCALBASE:U/usr/local}/share/pkgconfig\" CFLAGS+= -DSYSTEM_INCLUDEDIR=\"/usr/include\" CFLAGS+= -DSYSTEM_LIBDIR=\"/usr/lib\" CFLAGS+= -I${SRCTOP}/lib/libpkgconf -I${PKGCONFDIR}