aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan de Groot <adridg@FreeBSD.org>2021-06-12 14:19:46 +0000
committerAdriaan de Groot <adridg@FreeBSD.org>2021-06-28 14:39:46 +0000
commited9df2d08f7837c866f525515b8fc8c83a919694 (patch)
treeef1352f1429ed538f919e5ee364a666767aa5fb7
parentddb3c3443be6444a76e1e53dc283c78cd6b8032f (diff)
downloadports-ed9df2d08f7837c866f525515b8fc8c83a919694.tar.gz
ports-ed9df2d08f7837c866f525515b8fc8c83a919694.zip
devel/libsoup: make samba a (not registered) runtime dep
This picks up an idea from PR 235207 again, where NTLM authentication is optional. Previous commits made samba a build-dependency so that the --enable-ntlm option would work. The meson build -- even though the dep is entirely runtime -- would check for the presence of ntlm_auth at build-time, to be able to pass in the path to ntlm_auth to the build. Re-jig this to not do the check, accept the option as-is, and use a likely path to ntlm_auth instead (which is what the original patch in 235207 did). A circular dependency from samba41[23] -> libsoup and back can be triggered by setting option SMB in libsoup and option SPOTLIGHT in samba. Originally the runtime dependency was registered as USES= samba:run A _RUN dependency still wants to build, though, and package and index builds failed. Cut the circular dependency by **not** registering samba as a runtime dependency and using a pkg-message to tell users to possibly install samba. Anyone who now has "but my samba is installed in a different prefix" can file a PR with a patch fixing meson better. PR: 256076 Reported by: Dimitry Andric
-rw-r--r--devel/libsoup/Makefile31
-rw-r--r--devel/libsoup/files/patch-meson.build17
-rw-r--r--devel/libsoup/pkg-message10
3 files changed, 50 insertions, 8 deletions
diff --git a/devel/libsoup/Makefile b/devel/libsoup/Makefile
index ab65d9a4bc01..be036f740e3d 100644
--- a/devel/libsoup/Makefile
+++ b/devel/libsoup/Makefile
@@ -2,7 +2,7 @@
PORTNAME= libsoup
PORTVERSION= 2.72.0
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= devel gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome
@@ -18,14 +18,27 @@ LIB_DEPENDS= libgcrypt.so:security/libgcrypt \
libpsl.so:dns/libpsl
RUN_DEPENDS= glib-networking>=2.29.18:net/glib-networking
-PORTSCOUT= limitw:1,even
+USES= gettext gnome localbase meson \
+ pkgconfig python:3.6+,build sqlite ssl tar:xz
+USE_GNOME= glib20 intlhack introspection:build \
+ libxml2
+USE_LDCONFIG= yes
OPTIONS_DEFINE= SMB
OPTIONS_SINGLE= GSSAPI
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE
OPTIONS_DEFAULT= SMB GSSAPI_${${SSL_DEFAULT} == base :?BASE :NONE}
-SMB_USES= samba:build
+# Circular dependency samba -> tracker -> libsoup if the SPOTLIGHT
+# option is turned on in samba. Since samba is a **runtime** only
+# dependency, we can just tell it to be used. However, the Meson
+# build does a **build** time check for samba (even though the code does
+# a run-time check, too).
+#
+# Runtime deps still trigger a build / a dependency cycle, so as
+# a stopgap, patch it in, don't build anything, and inform the
+# user via pkg-message.
+# SMB_USES= samba:run
SMB_MESON_ENABLED= ntlm
GSSAPI_BASE_USES= gssapi
@@ -39,11 +52,6 @@ GSSAPI_MIT_MESON_ON= -Dgssapi=enabled -Dkrb5_config=${KRB5CONFIG}
GSSAPI_NONE_MESON_DISABLED= gssapi
-USES= gettext gnome localbase meson \
- pkgconfig python:3.6+,build sqlite ssl tar:xz
-USE_GNOME= glib20 intlhack introspection:build \
- libxml2
-USE_LDCONFIG= yes
MESON_ARGS= -Dvapi=disabled \
-Dsysprof=disabled \
-Dtests=false \
@@ -53,4 +61,11 @@ MESON_ARGS= -Dvapi=disabled \
LIBVERSION= 1.11.0
PLIST_SUB= VERSION="2.4" LIBVERSION=${LIBVERSION}
+PORTSCOUT= limitw:1,even
+
+post-patch:
+ ${REINPLACE_CMD} \
+ -e 's+@@NTLM_AUTH@@+${LOCALBASE}/bin/ntlm_auth+' \
+ ${WRKSRC}/meson.build
+
.include <bsd.port.mk>
diff --git a/devel/libsoup/files/patch-meson.build b/devel/libsoup/files/patch-meson.build
new file mode 100644
index 000000000000..a5c6a02454bb
--- /dev/null
+++ b/devel/libsoup/files/patch-meson.build
@@ -0,0 +1,17 @@
+--- meson.build.orig 2021-06-12 13:43:16 UTC
++++ meson.build
+@@ -340,11 +340,11 @@ endif
+ ################
+ # NTLM not supported on Windows
+ if host_machine.system() != 'windows'
+- ntlm_auth = find_program(get_option('ntlm_auth'), required: get_option('ntlm'))
++ # ntlm_auth = find_program(get_option('ntlm_auth'), required: get_option('ntlm'))
+
+- if ntlm_auth.found()
++ if get_option('ntlm').enabled()
+ add_project_arguments('-DUSE_NTLM_AUTH=1', language : 'c')
+- add_project_arguments('-DNTLM_AUTH="' + ntlm_auth.path() + '"', language : 'c')
++ add_project_arguments('-DNTLM_AUTH="@@NTLM_AUTH@@"', language : 'c')
+ endif
+ endif
+
diff --git a/devel/libsoup/pkg-message b/devel/libsoup/pkg-message
new file mode 100644
index 000000000000..3b9b3c2e1209
--- /dev/null
+++ b/devel/libsoup/pkg-message
@@ -0,0 +1,10 @@
+[
+{
+ type: install
+ message: <<EOM
+libsoup can use NTLM authentication if it is compiled
+with the SMB option. To use it, you must install a
+port that provides NTLM, like net/samba412 or net/samba413.
+EOM
+}
+]