diff --git a/devel/glib20/Makefile b/devel/glib20/Makefile index a300d7e0aadf..fbeed640d9ae 100644 --- a/devel/glib20/Makefile +++ b/devel/glib20/Makefile @@ -1,116 +1,117 @@ PORTNAME= glib DISTVERSION= 2.80.5 +PORTREVISION= 1 PORTEPOCH= 2 CATEGORIES= devel MASTER_SITES= GNOME DIST_SUBDIR= gnome MAINTAINER= desktop@FreeBSD.org COMMENT= Some useful routines of C programming (current stable version) WWW= https://www.gtk.org/ LICENSE= LGPL20 BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} LIB_DEPENDS= libffi.so:devel/libffi \ libpcre2-8.so:devel/pcre2 RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} TEST_DEPENDS= dbus-uuidgen:devel/dbus \ update-desktop-database:devel/desktop-file-utils \ update-mime-database:misc/shared-mime-info # iconv:wchar_t - our iconv in base doesn't support utf-8 -> wchar_t (boooo) # (wchar_t is used by glibmm, rawtherapee triggered this) USES= compiler:c11 cpe gettext gnome iconv:wchar_t localbase:ldflags \ meson perl5 pkgconfig python tar:xz trigger TRIGGERS= gio-modules glib-schemas USE_LDCONFIG= yes USE_PERL5= build USE_PYTHON= py3kplist MESON_ARGS= -Db_lundef=false \ -Ddefault_library=both \ -Dinstalled_tests=false \ -Dintrospection=disabled \ -Dlibmount=disabled \ -Dlocalstatedir=/var \ -Druntime_dir=/var/run \ -Dselinux=disabled \ -Dxattr=false BINARY_ALIAS= python3=${PYTHON_CMD} PORTSCOUT= limitw:1,even CPE_VENDOR= gnome CONFLICTS_INSTALL= p5-Giovanni _LIBVERSION= 0.8000.5 PLIST_SUB= LIBVERSION=${_LIBVERSION} OPTIONS_DEFINE= DOCS FAM_ALTBACKEND MANPAGES NLS TEST OPTIONS_DEFAULT= MANPAGES OPTIONS_SUB= yes DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gi-docgen>0:textproc/py-gi-docgen@${PY_FLAVOR} DOCS_IMPLIES= MANPAGES TEST DOCS_MESON_TRUE= documentation FAM_ALTBACKEND_DESC= Alternate file monitor backend MANPAGES_BUILD_DEPENDS= rst2man:textproc/py-docutils MANPAGES_MESON_ENABLED= man-pages TEST_MESON_TRUE= tests .include # doesn't build yet MESON_ARGS+= -Ddtrace=false pre-configure-FAM_ALTBACKEND-on: @${REINPLACE_CMD} -e 's|kqueue-helper.c|kqueue_fnm.c|g ; \ s|.*kqueue-missing.c.*||g ; \ s|.*dep-list.c.*||g' \ ${WRKSRC}/gio/kqueue/meson.build @${CP} -f ${FILESDIR}/gkqueuefilemonitor.c ${WRKSRC}/gio/kqueue/gkqueuefilemonitor.c @${CP} ${FILESDIR}/kqueue_fnm.c ${WRKSRC}/gio/kqueue/kqueue_fnm.c @${CP} ${FILESDIR}/kqueue_fnm.h ${WRKSRC}/gio/kqueue/kqueue_fnm.h post-patch: ${REINPLACE_CMD} -e 's|@PYTHON@|${PYTHON_CMD}|g' \ ${WRKSRC}/gio/gdbus-2.0/codegen/gdbus-codegen.in \ ${WRKSRC}/glib/gtester-report.in \ ${WRKSRC}/gobject/glib-genmarshal.in \ ${WRKSRC}/gobject/glib-mkenums.in ${REINPLACE_CMD} -e '/inotify_init1/d' \ -e '/inotify.h/d' \ ${WRKSRC}/meson.build ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/gio/xdgmime/xdgmime.c \ ${WRKSRC}/glib/gutils.c \ ${WRKSRC}/glib/tests/utils.c CODEGENDIR= ${PREFIX}/share/glib-2.0/codegen post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/share/GConf/gsettings ${MKDIR} ${STAGEDIR}${PREFIX}/lib/gio/modules # generates .py[co] files for installed modules # if that's not done, ${PYTHON_SITELIBDIR}/gps will be polluted # with these files when module is imported from root user ${FIND} ${STAGEDIR}${PREFIX} -name \*.pyc -delete (cd ${STAGEDIR}${PREFIX} && \ ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ -d ${CODEGENDIR} -f ${CODEGENDIR:S;${PREFIX}/;;} && \ ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \ -d ${CODEGENDIR} -f ${CODEGENDIR:S;${PREFIX}/;;}) # install bash completion regardless if bash is present ${MKDIR} ${STAGEDIR}${PREFIX}/share/bash-completion/completions .for file in gapplication gdbus gio gresource gsettings ${INSTALL_DATA} ${WRKSRC}/gio/completion/${file} \ ${STAGEDIR}${PREFIX}/share/bash-completion/completions/ .endfor ${RM} -r ${STAGEDIR}${PREFIX}/libexec/installed-tests pre-test: ${LOCALBASE}/bin/dbus-uuidgen > /var/lib/dbus/machine-id .include diff --git a/devel/glib20/files/patch-networkmonitor-netlink b/devel/glib20/files/patch-networkmonitor-netlink new file mode 100644 index 000000000000..6e5996f5ee11 --- /dev/null +++ b/devel/glib20/files/patch-networkmonitor-netlink @@ -0,0 +1,76 @@ +From 02172bda73663f63b603956a180c6c6fc6a3d187 Mon Sep 17 00:00:00 2001 +From: Gleb Popov <6yearold@gmail.com> +Date: Tue, 29 Oct 2024 21:18:36 +0300 +Subject: [PATCH] Enable GNetworkMonitorNetlink on FreeBSD + +https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4376 + +--- + gio/gnetworkmonitornetlink.c | 8 ++++++++ + meson.build | 4 +++- + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/gio/gnetworkmonitornetlink.c b/gio/gnetworkmonitornetlink.c +index bf51d31f99..adaa77d38b 100644 +--- a/gio/gnetworkmonitornetlink.c ++++ ./gio/gnetworkmonitornetlink.c +@@ -38,8 +38,14 @@ + + /* must come at the end to pick system includes from + * gnetworkingprivate.h */ ++#ifdef HAVE_LINUX_NETLINK_H + #include + #include ++#endif ++#ifdef HAVE_NETLINK_NETLINK_H ++#include ++#include ++#endif + + static GInitableIface *initable_parent_iface; + static void g_network_monitor_netlink_iface_init (GNetworkMonitorInterface *iface); +@@ -124,6 +130,7 @@ g_network_monitor_netlink_initable_init (GInitable *initable, + return FALSE; + } + ++#ifdef SO_PASSCRED + if (!g_socket_set_option (nl->priv->sock, SOL_SOCKET, SO_PASSCRED, + TRUE, NULL)) + { +@@ -133,6 +140,7 @@ g_network_monitor_netlink_initable_init (GInitable *initable, + g_strerror (errsv)); + return FALSE; + } ++#endif + + /* Request the current state */ + if (!request_dump (nl, error)) +diff --git a/meson.build b/meson.build +index 69e4b036ea..7da293881e 100644 +--- a/meson.build ++++ ./meson.build +@@ -400,10 +400,12 @@ headers = [ + 'inttypes.h', + 'libproc.h', + 'limits.h', ++ 'linux/netlink.h', + 'locale.h', + 'mach/mach_time.h', + 'memory.h', + 'mntent.h', ++ 'netlink/netlink.h', + 'poll.h', + 'pwd.h', + 'sched.h', +@@ -461,7 +463,7 @@ if cc.check_header('malloc.h') + glib_conf_prefix = glib_conf_prefix + '#define HAVE_MALLOC_H 1\n' + endif + +-if cc.check_header('linux/netlink.h') ++if glib_conf.has('HAVE_LINUX_NETLINK_H') or glib_conf.has('HAVE_NETLINK_NETLINK_H') + glib_conf.set('HAVE_NETLINK', 1) + endif + +-- +GitLab +