pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/sysutils/gvfs
Module Name: pkgsrc
Committed By: vins
Date: Sun May 10 17:38:15 UTC 2026
Modified Files:
pkgsrc/sysutils/gvfs: Makefile PLIST distinfo options.mk
Added Files:
pkgsrc/sysutils/gvfs: hacks.mk
pkgsrc/sysutils/gvfs/patches: patch-client_gdaemonvfs.c
patch-daemon_ParseFTPList.c patch-man_meson.build patch-meson.build
Removed Files:
pkgsrc/sysutils/gvfs/patches: patch-aa patch-ac patch-ad patch-ae
patch-ag patch-ai patch-metadata_metatree.c
Log Message:
sysutils/gvfs: Update to gvfs-1.60.0
Update prepared in wip by PHO, with some later contributions by me.
The change log is too long to paste here. See:
https://gitlab.gnome.org/GNOME/gvfs/-/blob/master/NEWS
To generate a diff of this commit:
cvs rdiff -u -r1.142 -r1.143 pkgsrc/sysutils/gvfs/Makefile
cvs rdiff -u -r1.17 -r1.18 pkgsrc/sysutils/gvfs/PLIST
cvs rdiff -u -r1.27 -r1.28 pkgsrc/sysutils/gvfs/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/sysutils/gvfs/hacks.mk
cvs rdiff -u -r1.6 -r1.7 pkgsrc/sysutils/gvfs/options.mk
cvs rdiff -u -r1.9 -r0 pkgsrc/sysutils/gvfs/patches/patch-aa
cvs rdiff -u -r1.4 -r0 pkgsrc/sysutils/gvfs/patches/patch-ac
cvs rdiff -u -r1.2 -r0 pkgsrc/sysutils/gvfs/patches/patch-ad
cvs rdiff -u -r1.1 -r0 pkgsrc/sysutils/gvfs/patches/patch-ae \
pkgsrc/sysutils/gvfs/patches/patch-ag \
pkgsrc/sysutils/gvfs/patches/patch-ai \
pkgsrc/sysutils/gvfs/patches/patch-metadata_metatree.c
cvs rdiff -u -r0 -r1.1 pkgsrc/sysutils/gvfs/patches/patch-client_gdaemonvfs.c \
pkgsrc/sysutils/gvfs/patches/patch-daemon_ParseFTPList.c \
pkgsrc/sysutils/gvfs/patches/patch-man_meson.build \
pkgsrc/sysutils/gvfs/patches/patch-meson.build
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/sysutils/gvfs/Makefile
diff -u pkgsrc/sysutils/gvfs/Makefile:1.142 pkgsrc/sysutils/gvfs/Makefile:1.143
--- pkgsrc/sysutils/gvfs/Makefile:1.142 Fri Feb 6 10:05:54 2026
+++ pkgsrc/sysutils/gvfs/Makefile Sun May 10 17:38:14 2026
@@ -1,43 +1,114 @@
-# $NetBSD: Makefile,v 1.142 2026/02/06 10:05:54 wiz Exp $
+# $NetBSD: Makefile,v 1.143 2026/05/10 17:38:14 vins Exp $
+#
-DISTNAME= gvfs-1.6.7
-PKGREVISION= 78
-CATEGORIES= sysutils
-MASTER_SITES= ${MASTER_SITE_GNOME:=sources/gvfs/1.6/}
-EXTRACT_SUFX= .tar.bz2
+DISTNAME= gvfs-1.60.0
+CATEGORIES?= sysutils
+MASTER_SITES= ${MASTER_SITE_GNOME:=sources/gvfs/${PKGVERSION_NOREV:S/./ /g:[1..2]:ts.}/}
+EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE= https://www.gnome.org/
+HOMEPAGE= https://wiki.gnome.org/Projects/gvfs
COMMENT= Userspace virtual filesystem
LICENSE= gnu-lgpl-v2
-GNU_CONFIGURE= yes
-USE_LIBTOOL= yes
-USE_TOOLS+= intltool gmake pkg-config msgfmt
-CONFIGURE_ARGS+= --enable-http
-CONFIGURE_ARGS+= --disable-bash-completion
+USE_TOOLS+= pkg-config
-BUILDLINK_TRANSFORM+= rm:-DG_DISABLE_DEPRECATED
-
-CFLAGS+= -Wno-incompatible-pointer-types
-CFLAGS+= -Wno-implicit-function-declaration
+USE_PKGLOCALEDIR= yes
.include "../../mk/compiler.mk"
+CFLAGS.NetBSD+= -DNETBSD_SOURCE # string.h
+
.if !empty(PKGSRC_COMPILER:Mclang) || ${CC_VERSION:Mgcc-[6-9]*} || ${CC_VERSION:Mgcc-1[0-9].*}
-CFLAGS.SunOS+= -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
+CFLAGS.SunOS+= -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
.else
-CFLAGS.SunOS+= -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
+CFLAGS.SunOS+= -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
.endif
-.include "options.mk"
-BUILDLINK_API_DEPENDS.glib2+= glib2>=2.23.4
-.include "../../devel/glib2/modules.mk"
-.include "../../sysutils/dbus/buildlink3.mk"
+LDFLAGS.SunOS+= -lsocket # if_indextoname()
+
+# Enforce some defaults to prevent PLIST issues witnessed in some environments.
+MESON_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} \
+ --localedir=${PKGLOCALEDIR}/locale
+
+# Disable some options which currently have no support on pkgsrc,
+# and are otherwise only available on Linux.
+MESON_ARGS+= -Dlogind=false \
+ -Donedrive=false \
+ -Dudisks2=false
+
+# Disable systemd support by default, as we currently lack a way to check for
+# builtin systemd on Linux.
+MESON_ARGS+= -Dsystemduserunitdir=no \
+ -Dtmpfilesdir=no
+
+# Generate man pages; requires docbook-xsl.
+TOOL_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl
+DOCBOOK_MANPAGE_XSL= ${PREFIX}/share/xsl/docbook/manpages/docbook.xsl
+MESON_ARGS+= -Dman=true
+
+SUBST_CLASSES+= man
+SUBST_STAGE.man= pre-configure
+SUBST_FILES.man= man/meson.build
+SUBST_VARS.man+= DOCBOOK_MANPAGE_XSL
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+# Turn on some settings by default.
+
+## afp://[user@]host[:port][/share]
+## Apple Filing Protocol.
+MESON_ARGS+= -Dafp=true
+
+## archive://{URL-ENCODED-URI}
+## Access archive files.
+MESON_ARGS+= -Darchive=true
.include "../../archivers/libarchive/buildlink3.mk"
-.include "../../net/libsoup/buildlink3.mk"
+
+## burn://{DEVICE}
+## Virtual filesystem for file managers to help them implement burning
+## optical discs.
+MESON_ARGS+= -Dburn=true
+
+## http://, https://
+## HTTP protocol support.
+MESON_ARGS+= -Dhttp=true
.include "../../textproc/libxml2/buildlink3.mk"
-.include "../../devel/GConf/buildlink3.mk"
-.include "../../security/libgnome-keyring/buildlink3.mk"
+.include "../../net/libsoup3/buildlink3.mk"
+
+## libgcrypt support.
+MESON_ARGS+= -Dgcrypt=true
+.include "../../security/libgcrypt/buildlink3.mk"
+
+## libusb interruption support: not available on DragonFly.
+.if ${OPSYS} != "DragonFly"
+. include "../../devel/libusb1/buildlink3.mk"
+MESON_ARGS+= -Dlibusb=true
+.else
+MESON_ARGS+= -Dlibusb=false
+.endif
+
+## nfs://{HOST}/{SHARE}
+## NFS v2 and v3 protocols.
+MESON_ARGS+= -Dnfs=true
+.include "../../net/libnfs/buildlink3.mk"
+
+## sftp://[user@]host[:port], ssh://[user@]host[:port]
+## SFTP protocol support.
+MESON_ARGS+= -Dsftp=true
+
+## wsdd:///
+## Access Web Service Discovery Daemon.
+MESON_ARGS+= -Dwsdd=true
+
+.include "options.mk"
+
+.include "../../devel/glib2/modules.mk"
+.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
+.include "../../sysutils/dbus/buildlink3.mk"
+.include "../../sysutils/gsettings-desktop-schemas/buildlink3.mk"
+.include "../../textproc/libxslt/xsltproc-nonet.mk"
+
+.include "../../devel/meson/build.mk"
.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/sysutils/gvfs/PLIST
diff -u pkgsrc/sysutils/gvfs/PLIST:1.17 pkgsrc/sysutils/gvfs/PLIST:1.18
--- pkgsrc/sysutils/gvfs/PLIST:1.17 Sat Nov 4 12:30:38 2023
+++ pkgsrc/sysutils/gvfs/PLIST Sun May 10 17:38:14 2026
@@ -1,68 +1,94 @@
-@comment $NetBSD: PLIST,v 1.17 2023/11/04 12:30:38 wiz Exp $
-bin/gvfs-cat
-bin/gvfs-copy
-bin/gvfs-info
-bin/gvfs-less
-bin/gvfs-ls
-bin/gvfs-mkdir
-bin/gvfs-monitor-dir
-bin/gvfs-monitor-file
-bin/gvfs-mount
-bin/gvfs-move
-bin/gvfs-open
-bin/gvfs-rename
-bin/gvfs-rm
-bin/gvfs-save
-bin/gvfs-set-attribute
-bin/gvfs-trash
-bin/gvfs-tree
-include/gvfs-client/gvfs/gvfsurimapper.h
-include/gvfs-client/gvfs/gvfsuriutils.h
-lib/gio/modules/libgiogconf.la
-lib/gio/modules/libgioremote-volume-monitor.la
-lib/gio/modules/libgvfsdbus.la
-${PLIST.avahi}lib/libgvfscommon-dnssd.la
-lib/libgvfscommon.la
-${PLIST.fuse}libexec/gvfs-fuse-daemon
+@comment $NetBSD: PLIST,v 1.18 2026/05/10 17:38:14 vins Exp $
+lib/gio/modules/libgioremote-volume-monitor.so
+lib/gio/modules/libgvfsdbus.so
+lib/gvfs/libgvfscommon.so
+lib/gvfs/libgvfsdaemon.so
+${PLIST.afc}libexec/gvfs-afc-volume-monitor
+${PLIST.gphoto}libexec/gvfs-gphoto2-volume-monitor
+${PLIST.mtp}libexec/gvfs-mtp-volume-monitor
libexec/gvfsd
+${PLIST.polkit}libexec/gvfsd-admin
+${PLIST.afc}libexec/gvfsd-afc
+libexec/gvfsd-afp
+libexec/gvfsd-afp-browse
libexec/gvfsd-archive
libexec/gvfsd-burn
+${PLIST.cdda}libexec/gvfsd-cdda
libexec/gvfsd-computer
libexec/gvfsd-dav
-${PLIST.avahi}libexec/gvfsd-dnssd
+${PLIST.dnssd}libexec/gvfsd-dnssd
libexec/gvfsd-ftp
+${PLIST.fuse}libexec/gvfsd-fuse
+${PLIST.gdata}libexec/gvfsd-google
+${PLIST.gphoto}libexec/gvfsd-gphoto2
libexec/gvfsd-http
libexec/gvfsd-localtest
libexec/gvfsd-metadata
+${PLIST.mtp}libexec/gvfsd-mtp
libexec/gvfsd-network
+libexec/gvfsd-nfs
+libexec/gvfsd-recent
libexec/gvfsd-sftp
-${PLIST.samba}libexec/gvfsd-smb
-${PLIST.samba}libexec/gvfsd-smb-browse
+${PLIST.smb}libexec/gvfsd-smb
+${PLIST.smb}libexec/gvfsd-smb-browse
libexec/gvfsd-trash
-share/dbus-1/services/gvfs-daemon.service
-share/dbus-1/services/gvfs-metadata.service
+libexec/gvfsd-wsdd
+man/man1/gvfsd-fuse.1
+man/man1/gvfsd-metadata.1
+man/man1/gvfsd.1
+man/man7/gvfs.7
+${PLIST.dnssd}share/GConf/gsettings/gvfs-dns-sd.convert
+${PLIST.smb}share/GConf/gsettings/gvfs-smb.convert
+${PLIST.afc}share/dbus-1/services/org.gtk.vfs.AfcVolumeMonitor.service
+share/dbus-1/services/org.gtk.vfs.Daemon.service
+${PLIST.gphoto}share/dbus-1/services/org.gtk.vfs.GPhoto2VolumeMonitor.service
+${PLIST.mtp}share/dbus-1/services/org.gtk.vfs.MTPVolumeMonitor.service
+share/dbus-1/services/org.gtk.vfs.Metadata.service
+${PLIST.dnssd}share/glib-2.0/schemas/org.gnome.system.dns_sd.gschema.xml
+share/glib-2.0/schemas/org.gnome.system.gvfs.enums.xml
+${PLIST.smb}share/glib-2.0/schemas/org.gnome.system.smb.gschema.xml
+share/glib-2.0/schemas/org.gnome.system.wsdd.gschema.xml
+${PLIST.polkit}share/gvfs/mounts/admin.mount
+${PLIST.afc}share/gvfs/mounts/afc.mount
+share/gvfs/mounts/afp-browse.mount
+share/gvfs/mounts/afp.mount
share/gvfs/mounts/archive.mount
share/gvfs/mounts/burn.mount
+${PLIST.cdda}share/gvfs/mounts/cdda.mount
share/gvfs/mounts/computer.mount
-${PLIST.avahi}share/gvfs/mounts/dav+sd.mount
+share/gvfs/mounts/dav+sd.mount
share/gvfs/mounts/dav.mount
-${PLIST.avahi}share/gvfs/mounts/dns-sd.mount
+${PLIST.dnssd}share/gvfs/mounts/dns-sd.mount
share/gvfs/mounts/ftp.mount
+share/gvfs/mounts/ftpis.mount
+share/gvfs/mounts/ftps.mount
+${PLIST.gdata}share/gvfs/mounts/google.mount
+${PLIST.gphoto}share/gvfs/mounts/gphoto2.mount
share/gvfs/mounts/http.mount
share/gvfs/mounts/localtest.mount
+${PLIST.mtp}share/gvfs/mounts/mtp.mount
share/gvfs/mounts/network.mount
+share/gvfs/mounts/nfs.mount
+share/gvfs/mounts/recent.mount
share/gvfs/mounts/sftp.mount
-${PLIST.samba}share/gvfs/mounts/smb-browse.mount
-${PLIST.samba}share/gvfs/mounts/smb.mount
+${PLIST.smb}share/gvfs/mounts/smb-browse.mount
+${PLIST.smb}share/gvfs/mounts/smb.mount
share/gvfs/mounts/trash.mount
+share/gvfs/mounts/wsdd.mount
+${PLIST.afc}share/gvfs/remote-volume-monitors/afc.monitor
+${PLIST.gphoto}share/gvfs/remote-volume-monitors/gphoto2.monitor
+${PLIST.mtp}share/gvfs/remote-volume-monitors/mtp.monitor
+share/locale/ab/LC_MESSAGES/gvfs.mo
share/locale/af/LC_MESSAGES/gvfs.mo
share/locale/ar/LC_MESSAGES/gvfs.mo
share/locale/as/LC_MESSAGES/gvfs.mo
share/locale/ast/LC_MESSAGES/gvfs.mo
+share/locale/be/LC_MESSAGES/gvfs.mo
share/locale/be@latin/LC_MESSAGES/gvfs.mo
share/locale/bg/LC_MESSAGES/gvfs.mo
share/locale/bn/LC_MESSAGES/gvfs.mo
share/locale/bn_IN/LC_MESSAGES/gvfs.mo
+share/locale/bs/LC_MESSAGES/gvfs.mo
share/locale/ca/LC_MESSAGES/gvfs.mo
share/locale/ca@valencia/LC_MESSAGES/gvfs.mo
share/locale/cs/LC_MESSAGES/gvfs.mo
@@ -71,20 +97,27 @@ share/locale/de/LC_MESSAGES/gvfs.mo
share/locale/el/LC_MESSAGES/gvfs.mo
share/locale/en@shaw/LC_MESSAGES/gvfs.mo
share/locale/en_GB/LC_MESSAGES/gvfs.mo
+share/locale/eo/LC_MESSAGES/gvfs.mo
share/locale/es/LC_MESSAGES/gvfs.mo
share/locale/et/LC_MESSAGES/gvfs.mo
share/locale/eu/LC_MESSAGES/gvfs.mo
+share/locale/fa/LC_MESSAGES/gvfs.mo
share/locale/fi/LC_MESSAGES/gvfs.mo
share/locale/fr/LC_MESSAGES/gvfs.mo
+share/locale/fur/LC_MESSAGES/gvfs.mo
share/locale/ga/LC_MESSAGES/gvfs.mo
share/locale/gl/LC_MESSAGES/gvfs.mo
share/locale/gu/LC_MESSAGES/gvfs.mo
share/locale/he/LC_MESSAGES/gvfs.mo
share/locale/hi/LC_MESSAGES/gvfs.mo
+share/locale/hr/LC_MESSAGES/gvfs.mo
share/locale/hu/LC_MESSAGES/gvfs.mo
share/locale/id/LC_MESSAGES/gvfs.mo
+share/locale/ie/LC_MESSAGES/gvfs.mo
share/locale/it/LC_MESSAGES/gvfs.mo
share/locale/ja/LC_MESSAGES/gvfs.mo
+share/locale/ka/LC_MESSAGES/gvfs.mo
+share/locale/kab/LC_MESSAGES/gvfs.mo
share/locale/kk/LC_MESSAGES/gvfs.mo
share/locale/kn/LC_MESSAGES/gvfs.mo
share/locale/ko/LC_MESSAGES/gvfs.mo
@@ -95,10 +128,13 @@ share/locale/mai/LC_MESSAGES/gvfs.mo
share/locale/mk/LC_MESSAGES/gvfs.mo
share/locale/ml/LC_MESSAGES/gvfs.mo
share/locale/mr/LC_MESSAGES/gvfs.mo
+share/locale/ms/LC_MESSAGES/gvfs.mo
share/locale/nb/LC_MESSAGES/gvfs.mo
share/locale/nds/LC_MESSAGES/gvfs.mo
+share/locale/ne/LC_MESSAGES/gvfs.mo
share/locale/nl/LC_MESSAGES/gvfs.mo
share/locale/nn/LC_MESSAGES/gvfs.mo
+share/locale/oc/LC_MESSAGES/gvfs.mo
share/locale/or/LC_MESSAGES/gvfs.mo
share/locale/pa/LC_MESSAGES/gvfs.mo
share/locale/pl/LC_MESSAGES/gvfs.mo
@@ -114,6 +150,7 @@ share/locale/sr@latin/LC_MESSAGES/gvfs.m
share/locale/sv/LC_MESSAGES/gvfs.mo
share/locale/ta/LC_MESSAGES/gvfs.mo
share/locale/te/LC_MESSAGES/gvfs.mo
+share/locale/tg/LC_MESSAGES/gvfs.mo
share/locale/th/LC_MESSAGES/gvfs.mo
share/locale/tr/LC_MESSAGES/gvfs.mo
share/locale/ug/LC_MESSAGES/gvfs.mo
@@ -122,3 +159,5 @@ share/locale/vi/LC_MESSAGES/gvfs.mo
share/locale/zh_CN/LC_MESSAGES/gvfs.mo
share/locale/zh_HK/LC_MESSAGES/gvfs.mo
share/locale/zh_TW/LC_MESSAGES/gvfs.mo
+${PLIST.polkit}share/polkit-1/actions/org.gtk.vfs.file-operations.policy
+${PLIST.polkit}share/polkit-1/rules.d/org.gtk.vfs.file-operations.rules
Index: pkgsrc/sysutils/gvfs/distinfo
diff -u pkgsrc/sysutils/gvfs/distinfo:1.27 pkgsrc/sysutils/gvfs/distinfo:1.28
--- pkgsrc/sysutils/gvfs/distinfo:1.27 Tue Oct 26 11:19:40 2021
+++ pkgsrc/sysutils/gvfs/distinfo Sun May 10 17:38:14 2026
@@ -1,12 +1,9 @@
-$NetBSD: distinfo,v 1.27 2021/10/26 11:19:40 nia Exp $
+$NetBSD: distinfo,v 1.28 2026/05/10 17:38:14 vins Exp $
-BLAKE2s (gvfs-1.6.7.tar.bz2) = 0a9d41a0c5974b4b66f705a4fa5b1fd11a15cfa79b1bad1a9c796c41cf26a5aa
-SHA512 (gvfs-1.6.7.tar.bz2) = 68fa29bb2c272e4167f17b1383d7758b5eb235e566df0e11a2413503e5b3052ed02e0101228f5f668631480ad2fd18fa682e3c1d38b7b65a34122b1271fd3218
-Size (gvfs-1.6.7.tar.bz2) = 1404372 bytes
-SHA1 (patch-aa) = 37691e13b1c2edbcf1af301bfae22c6b1943efdf
-SHA1 (patch-ac) = 2168ed0d5883747e9b4e1b938ee818e6aefb8e56
-SHA1 (patch-ad) = 45e7d172fe4839018b64babdca2f8c60c7eeec70
-SHA1 (patch-ae) = 07b631786e89f38f831a1cc926818c15520fcd3b
-SHA1 (patch-ag) = 8474aed53e07f2c3899bafc278d886c41ccd04a5
-SHA1 (patch-ai) = 2246232efe91c36be8c577c1db16e80ebb45a515
-SHA1 (patch-metadata_metatree.c) = 952352af28299c92403932ef38d281611427b654
+BLAKE2s (gvfs-1.60.0.tar.xz) = 7592f6c6545146f4eedb3cc2339ab36a9d1e47246ade9fa688409f228fd127c0
+SHA512 (gvfs-1.60.0.tar.xz) = 4897f8bcaa4e8d1eb73f797080e30bc6a442729d93f1ab958add719fe8cd7a30777a1ff26ef807f86fa62edd15529426fa974f01c0081bd3b72af8ae03c01385
+Size (gvfs-1.60.0.tar.xz) = 1297324 bytes
+SHA1 (patch-client_gdaemonvfs.c) = c4833ffcec2b6d1b93beb12b7405fdc3e171beb0
+SHA1 (patch-daemon_ParseFTPList.c) = 50c38494cabb67c4c5047a1dc5a34f487f7349cf
+SHA1 (patch-man_meson.build) = e49cca1e56248625ce111168807425df4fd2e9f9
+SHA1 (patch-meson.build) = f223d6dc97791da7ef96cf4cc099c1599c0e39b2
Index: pkgsrc/sysutils/gvfs/options.mk
diff -u pkgsrc/sysutils/gvfs/options.mk:1.6 pkgsrc/sysutils/gvfs/options.mk:1.7
--- pkgsrc/sysutils/gvfs/options.mk:1.6 Sat Nov 4 12:27:36 2023
+++ pkgsrc/sysutils/gvfs/options.mk Sun May 10 17:38:14 2026
@@ -1,10 +1,9 @@
-# $NetBSD: options.mk,v 1.6 2023/11/04 12:27:36 wiz Exp $
+# $NetBSD: options.mk,v 1.7 2026/05/10 17:38:14 vins Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.gvfs
-PKG_SUPPORTED_OPTIONS+= avahi fuse samba
-PLIST_VARS+= ${PKG_SUPPORTED_OPTIONS}
-
-.include "../../mk/bsd.fast.prefs.mk"
+PKG_SUPPORTED_OPTIONS= bluray cdda dnssd fuse goa gcr gphoto idevice libgdata \
+ libmtp polkit samba secret udev
+PKG_SUGGESTED_OPTIONS= gcr dnssd secret
.if ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
PKG_SUGGESTED_OPTIONS+= samba
@@ -14,30 +13,206 @@ PKG_SUGGESTED_OPTIONS+= samba
PKG_SUGGESTED_OPTIONS+= fuse
.endif
+# Check for a working udev implementation.
+# If available, enable some options which depend on it.
+.include "../../mk/udev.buildlink3.mk"
+.if ${UDEV_TYPE} != "none"
+PKG_SUGGESTED_OPTIONS+= udev
+PKG_SUGGESTED_OPTIONS+= cdda libmtp
+.endif
+
+.if ${OPSYS} == "Linux"
+# polkit itself is cross-platform but gvfs also requires libcap, which is
+# only available on Linux.
+PKG_SUGGESTED_OPTIONS+= polkit
+.endif
+
.include "../../mk/bsd.options.mk"
-.if !empty(PKG_OPTIONS:Mavahi)
-.include "../../net/avahi/buildlink3.mk"
-CONFIGURE_ARGS+= --enable-avahi
-PLIST.avahi= yes
+# Some options expect gudev support:
+# use the GUDEV_REQUIRED variable to handle them.
+GUDEV_REQUIRED?= # empty
+
+# Gnome Online Accounts support:
+# some users might have a reason not to want it by default.
+GOA_REQUIRED?= # empty
+
+###
+### afc://{UUID}
+### Apple File Conduit; allow to exchange files with iOS devices
+###
+PLIST_VARS+= afc
+.if !empty(PKG_OPTIONS:Midevice)
+MESON_ARGS+= -Dafc=true
+PLIST.afc= yes
+. include "../../comms/libimobiledevice/buildlink3.mk"
+. include "../../textproc/libplist/buildlink3.mk"
.else
-CONFIGURE_ARGS+= --disable-avahi
+MESON_ARGS+= -Dafc=false
.endif
-.if !empty(PKG_OPTIONS:Msamba)
-CONFIGURE_ARGS+= --with-samba-includes=${BUILDLINK_PREFIX.samba}/include
-CONFIGURE_ARGS+= --with-samba-libs=${BUILDLINK_PREFIX.samba}/lib
-.include "../../net/samba4/buildlink3.mk"
-PLIST.samba= yes
+###
+### admin:///
+### Access local filesystem as a root user.
+###
+PLIST_VARS+= polkit
+.if !empty(PKG_OPTIONS:Mpolkit)
+MESON_ARGS+= -Dadmin=true
+PLIST.polkit= yes
+. include "../../sysutils/libcap/buildlink3.mk"
+. include "../../security/polkit/buildlink3.mk"
+.else
+MESON_ARGS+= -Dadmin=false
+.endif
+
+###
+#### Blu-Ray metadata support.
+###
+.if !empty(PKG_OPTIONS:Mbluray)
+MESON_ARGS+= -Dbluray=true
+. include "../../multimedia/libbluray/buildlink3.mk"
+.else
+MESON_ARGS+= -Dbluray=false
+.endif
+
+###
+### cdda://{DEVICE}
+### Access audio discs.
+###
+PLIST_VARS+= cdda
+.if !empty(PKG_OPTIONS:Mcdda)
+MESON_ARGS+= -Dcdda=true
+GUDEV_REQUIRED= yes
+. include "../../misc/libcdio-paranoia/buildlink3.mk"
+PLIST.cdda= yes
+.else
+MESON_ARGS+= -Dcdda=false
+.endif
+
+###
+### dns-sd://{DOMAIN}
+### DNS-SD shares on the local network.
+###
+PLIST_VARS+= dnssd
+.if !empty(PKG_OPTIONS:Mdnssd)
+MESON_ARGS+= -Ddnssd=true
+PLIST.dnssd= yes
+. include "../../net/avahi/buildlink3.mk"
.else
-CONFIGURE_ARGS+= --disable-samba
+MESON_ARGS+= -Ddnssd=false
.endif
+###
+### FUSE support.
+###
+### NOTE: gvfsd-fuse is known not to work on NetBSD
+### This is because NetBSD refuse(3) doesn't support non-root mounting but
+### gvfsd(1) relies on this specific functionality. gvfsd(1) launches
+### gvfsd-fuse(1) as a regular user, and it exits with an error. We should
+### really implement fusermount(1) as a part of refuse(3).
+###
+PLIST_VARS+= fuse
.if !empty(PKG_OPTIONS:Mfuse)
-BUILDLINK_API_DEPENDS.fuse+= fuse>=2.8
+USE_FUSE3= yes
.include "../../mk/fuse.buildlink3.mk"
-CONFIGURE_ARGS+= --enable-fuse
-PLIST.fuse= yes
+MESON_ARGS+= -Dfuse=true
+PLIST.fuse= yes
+.else
+MESON_ARGS+= -Dfuse=false
+.endif
+
+###
+### GCR certificate support.
+###
+.if !empty(PKG_OPTIONS:Mgcr)
+MESON_ARGS+= -Dgcr=true
+. include "../../security/gcr4/buildlink3.mk"
+.else
+MESON_ARGS+= -Dgcr=false
+.endif
+
+###
+### google-drive://{USER}@{HOST}
+### Access Google Drive.
+###
+PLIST_VARS+= gdata
+.if !empty(PKG_OPTIONS:Mlibgdata)
+GOA_REQUIRED= yes
+MESON_ARGS+= -Dgoogle=true
+PLIST.gdata= yes
+. include "../../net/libgdata/buildlink3.mk"
+.else
+MESON_ARGS+= -Dgoogle=false
+.endif
+
+###
+### GOA (Gnome Online Accounts).
+### Required for Google Drive support.
+###
+.if !empty(PKG_OPTIONS:Mgoa) || ${GOA_REQUIRED:tl} == "yes"
+MESON_ARGS+= -Dgoa=true
+. include "../../net/gnome-online-accounts/buildlink3.mk"
+.else
+MESON_ARGS+= -Dgoa=false
+.endif
+
+###
+### gphoto2://{ID_SERIAL}, gphoto2://[usb:bus,dev]
+### Access digital cameras.
+###
+PLIST_VARS+= gphoto
+.if !empty(PKG_OPTIONS:Mgphoto)
+MESON_ARGS+= -Dgphoto2=true
+GUDEV_REQUIRED= yes
+PLIST.gphoto= yes
+. include "../../devel/libgphoto2/buildlink3.mk"
+.else
+MESON_ARGS+= -Dgphoto2=false
+.endif
+
+###
+### mtp://{ID_SERIAL}, mtp://[usb:bus,dev]
+### Access digital audio/media players.
+###
+PLIST_VARS+= mtp
+.if !empty(PKG_OPTIONS:Mlibmtp)
+GUDEV_REQUIRED= yes
+MESON_ARGS+= -Dmtp=true
+. include "../../devel/libmtp/buildlink3.mk"
+PLIST.mtp= yes
+.else
+MESON_ARGS+= -Dmtp=false
+.endif
+
+###
+### smb://[user@]host[:port][/share]
+### SMB/CIFS protocol support.
+###
+PLIST_VARS+= smb
+.if !empty(PKG_OPTIONS:Msamba)
+MESON_ARGS+= -Dsmb=true
+PLIST.smb= yes
+. include "../../net/samba4/buildlink3.mk"
+.else
+MESON_ARGS+= -Dsmb=false
+.endif
+
+###
+### GNOME Keyring support.
+###
+.if !empty(PKG_OPTIONS:Msecret)
+MESON_ARGS+= -Dkeyring=true
+. include "../../security/libsecret/buildlink3.mk"
+.else
+MESON_ARGS+= -Dkeyring=false
+.endif
+
+###
+### GUdev device support.
+###
+.if !empty(PKG_OPTIONS:Mudev) || ${GUDEV_REQUIRED:tl} == "yes"
+MESON_ARGS+= -Dgudev=true
+. include "../../devel/libgudev/buildlink3.mk"
.else
-CONFIGURE_ARGS+= --disable-fuse
+MESON_ARGS+= -Dgudev=false
.endif
Added files:
Index: pkgsrc/sysutils/gvfs/hacks.mk
diff -u /dev/null pkgsrc/sysutils/gvfs/hacks.mk:1.1
--- /dev/null Sun May 10 17:38:15 2026
+++ pkgsrc/sysutils/gvfs/hacks.mk Sun May 10 17:38:14 2026
@@ -0,0 +1,24 @@
+# $NetBSD: hacks.mk,v 1.1 2026/05/10 17:38:14 vins Exp $
+
+.if !defined(GVFS_HACKS_MK)
+GVFS_HACKS_MK= defined
+
+### [Sat Nov 15 02:58:22 JST 2025 : pho]
+### gvfs' meson.build files uses install_rpath to embed rpath to
+### ${PREFIX}/lib/gvfs. Unpatched Meson handles this just fine but
+### alas... our Meson has a patch to kill the rpath fixup
+### (patches/patch-mesonbuild_scripts_depfixer.py) and it renders
+### install_rpath non-functioning. We can't simply get away with deleting
+### the patch, because depfixer.py cannot inject a DT_RPATH that is longer
+### than existing ones. (Have they considered using patchelf instead of
+### hand-rolling their own ELF patcher?) To overcome the limitation they
+### introduced on their own, Meson allocates a dummy rpath with the same
+### length of install_rpath with every character replaced with 'X', like
+### "-Wl,-rpath,XXXXXXXXXX", which doesn't begin with a '/' so our
+### cwrappers remove it! Meson and our cwrappers fight against each other
+### in a very indirect way, and the only way around is to do this silly
+### hack:
+PKG_HACKS+= rpath-fixup
+LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/gvfs
+
+.endif # GVFS_HACKS_MK
Index: pkgsrc/sysutils/gvfs/patches/patch-client_gdaemonvfs.c
diff -u /dev/null pkgsrc/sysutils/gvfs/patches/patch-client_gdaemonvfs.c:1.1
--- /dev/null Sun May 10 17:38:15 2026
+++ pkgsrc/sysutils/gvfs/patches/patch-client_gdaemonvfs.c Sun May 10 17:38:14 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-client_gdaemonvfs.c,v 1.1 2026/05/10 17:38:14 vins Exp $
+
+Don't crash when creating volume monitors if the VFS was never
+initialized.
+
+--- client/gdaemonvfs.c.orig 2026-03-13 10:15:46.000000000 +0000
++++ client/gdaemonvfs.c
+@@ -1436,7 +1436,7 @@ g_daemon_vfs_deserialize_icon (GVfs
+ GDBusConnection *
+ _g_daemon_vfs_get_async_bus (void)
+ {
+- return the_vfs->async_bus;
++ return the_vfs ? the_vfs->async_bus : NULL;
+ }
+
+ static gboolean
Index: pkgsrc/sysutils/gvfs/patches/patch-daemon_ParseFTPList.c
diff -u /dev/null pkgsrc/sysutils/gvfs/patches/patch-daemon_ParseFTPList.c:1.1
--- /dev/null Sun May 10 17:38:15 2026
+++ pkgsrc/sysutils/gvfs/patches/patch-daemon_ParseFTPList.c Sun May 10 17:38:14 2026
@@ -0,0 +1,448 @@
+$NetBSD: patch-daemon_ParseFTPList.c,v 1.1 2026/05/10 17:38:14 vins Exp $
+
+Fix misuse of ctype(3) functions.
+
+--- daemon/ParseFTPList.c.orig 2025-11-14 15:53:26.627351338 +0000
++++ daemon/ParseFTPList.c
+@@ -127,9 +127,9 @@ int ParseFTPList(const char *line, struc
+ result->fe_type = 'f'; /* its a file */
+ else if (*p == 'm')
+ {
+- if (isdigit(line[pos]))
++ if (isdigit((unsigned char)line[pos]))
+ {
+- while (pos < linelen && isdigit(line[pos]))
++ while (pos < linelen && isdigit((unsigned char)line[pos]))
+ pos++;
+ if (pos < linelen && line[pos] == ',')
+ {
+@@ -143,9 +143,9 @@ int ParseFTPList(const char *line, struc
+ }
+ else if (*p == 's')
+ {
+- if (isdigit(line[pos]))
++ if (isdigit((unsigned char)line[pos]))
+ {
+- while (pos < linelen && isdigit(line[pos]))
++ while (pos < linelen && isdigit((unsigned char)line[pos]))
+ pos++;
+ if (pos < linelen && line[pos] == ',' &&
+ ((&line[pos]) - (p+1)) < (int) (sizeof(result->fe_size)-1) )
+@@ -155,7 +155,7 @@ int ParseFTPList(const char *line, struc
+ }
+ }
+ }
+- else if (isalpha(*p)) /* 'i'/'up' or unknown "fact" (property) */
++ else if (isalpha((unsigned char)*p)) /* 'i'/'up' or unknown "fact" (property) */
+ {
+ while (pos < linelen && *++p != ',')
+ pos++;
+@@ -233,9 +233,9 @@ int ParseFTPList(const char *line, struc
+ break;
+ }
+ else if (p[pos] != '.' && p[pos] != '~' &&
+- !isdigit(p[pos]) && !isalpha(p[pos]))
++ !isdigit((unsigned char)p[pos]) && !isalpha((unsigned char)p[pos]))
+ break;
+- else if (isalpha(p[pos]) && p[pos] != toupper(p[pos]))
++ else if (isalpha((unsigned char)p[pos]) && p[pos] != toupper((unsigned char)p[pos]))
+ break;
+ }
+ if (pos > 0)
+@@ -251,9 +251,9 @@ int ParseFTPList(const char *line, struc
+ {
+ pos--;
+ if (p[pos] != '$' && p[pos] != '_' && p[pos] != '-' &&
+- p[pos] != '~' && !isdigit(p[pos]) && !isalpha(p[pos]))
++ p[pos] != '~' && !isdigit((unsigned char)p[pos]) && !isalpha((unsigned char)p[pos]))
+ break;
+- else if (isalpha(p[pos]) && p[pos] != toupper(p[pos]))
++ else if (isalpha((unsigned char)p[pos]) && p[pos] != toupper((unsigned char)p[pos]))
+ break;
+ }
+ if (pos == 0)
+@@ -289,9 +289,9 @@ int ParseFTPList(const char *line, struc
+ ((toklen[3]==10 || toklen[3]==11 ) &&
+ (tokens[3][toklen[3]-3]) == '.' )
+ ) && /* time in [H]H:MM[:SS[.CC]] format */
+- isdigit(*tokens[1]) && /* size */
+- isdigit(*tokens[2]) && /* date */
+- isdigit(*tokens[3]) /* time */
++ isdigit((unsigned char)*tokens[1]) && /* size */
++ isdigit((unsigned char)*tokens[2]) && /* date */
++ isdigit((unsigned char)*tokens[3]) /* time */
+ )
+ {
+ lstyle = 'V';
+@@ -328,7 +328,7 @@ int ParseFTPList(const char *line, struc
+ while (lstyle && pos < toklen[0] && *p != ']')
+ {
+ if (*p != '$' && *p != '.' && *p != '_' && *p != '-' &&
+- *p != '~' && !isdigit(*p) && !isalpha(*p))
++ *p != '~' && !isdigit((unsigned char)*p) && !isalpha((unsigned char)*p))
+ lstyle = 0;
+ pos++;
+ p++;
+@@ -348,9 +348,9 @@ int ParseFTPList(const char *line, struc
+ while (lstyle && pos < toklen[0] && *p != ';')
+ {
+ if (*p != '$' && *p != '.' && *p != '_' && *p != '-' &&
+- *p != '~' && !isdigit(*p) && !isalpha(*p))
++ *p != '~' && !isdigit((unsigned char)*p) && !isalpha((unsigned char)*p))
+ lstyle = 0;
+- else if (isalpha(*p) && *p != toupper(*p))
++ else if (isalpha((unsigned char)*p) && *p != toupper((unsigned char)*p))
+ lstyle = 0;
+ p++;
+ pos++;
+@@ -361,7 +361,7 @@ int ParseFTPList(const char *line, struc
+ lstyle = 0;
+ for (pos++;lstyle && pos < toklen[0];pos++)
+ {
+- if (!isdigit(tokens[0][pos]))
++ if (!isdigit((unsigned char)tokens[0][pos]))
+ lstyle = 0;
+ }
+ }
+@@ -384,11 +384,11 @@ int ParseFTPList(const char *line, struc
+ state->carry_buf_len = pos;
+ return '?'; /* tell caller to treat as junk */
+ }
+- else if (isdigit(*tokens[1])) /* not no-privs message */
++ else if (isdigit((unsigned char)*tokens[1])) /* not no-privs message */
+ {
+ for (pos = 0; lstyle && pos < (toklen[1]); pos++)
+ {
+- if (!isdigit((tokens[1][pos])) && (tokens[1][pos]) != '/')
++ if (!isdigit((unsigned char)(tokens[1][pos])) && (tokens[1][pos]) != '/')
+ lstyle = 0;
+ }
+ if (lstyle && numtoks > 4) /* Multinet or UCX but not CMU */
+@@ -409,7 +409,7 @@ int ParseFTPList(const char *line, struc
+ state->parsed_one = 1;
+ state->lstyle = lstyle;
+
+- if (isdigit(*tokens[1])) /* not permission denied etc */
++ if (isdigit((unsigned char)*tokens[1])) /* not permission denied etc */
+ {
+ /* strip leading directory name */
+ if (*tokens[0] == '[') /* CMU server */
+@@ -503,8 +503,8 @@ int ParseFTPList(const char *line, struc
+ if (*p == '-')
+ p++;
+ tbuf[0] = p[0];
+- tbuf[1] = tolower(p[1]);
+- tbuf[2] = tolower(p[2]);
++ tbuf[1] = tolower((unsigned char)p[1]);
++ tbuf[2] = tolower((unsigned char)p[2]);
+ month_num = 0;
+ for (pos = 0; pos < (12*3); pos+=3)
+ {
+@@ -587,9 +587,9 @@ int ParseFTPList(const char *line, struc
+ if ( (*tokens[pos+1] == '-' &&
+ *tokens[pos+2] == '-' &&
+ *tokens[pos+3] == '-') ||
+- (isdigit(*tokens[pos+1]) &&
+- isdigit(*tokens[pos+2]) &&
+- isdigit(*tokens[pos+3])) )
++ (isdigit((unsigned char)*tokens[pos+1]) &&
++ isdigit((unsigned char)*tokens[pos+2]) &&
++ isdigit((unsigned char)*tokens[pos+3])) )
+ {
+ lstyle = 'C';
+ tokmarker = pos;
+@@ -605,7 +605,7 @@ int ParseFTPList(const char *line, struc
+ {
+ for (pos = 0, p = tokens[0]; lstyle && pos < toklen[0]; pos++, p++)
+ {
+- if (isalpha(*p) && toupper(*p) != *p)
++ if (isalpha((unsigned char)*p) && toupper((unsigned char)*p) != *p)
+ lstyle = 0;
+ }
+ for (pos = tokmarker+1; pos <= tokmarker+3; pos++)
+@@ -614,7 +614,7 @@ int ParseFTPList(const char *line, struc
+ {
+ for (p = tokens[pos]; lstyle && p<(tokens[pos]+toklen[pos]); p++)
+ {
+- if (!isdigit(*p))
++ if (!isdigit((unsigned char)*p))
+ lstyle = 0;
+ }
+ }
+@@ -635,7 +635,7 @@ int ParseFTPList(const char *line, struc
+ else if (pos != 2 && pos != 5)
+ lstyle = 0;
+ }
+- else if (*p != '-' && !isdigit(*p))
++ else if (*p != '-' && !isdigit((unsigned char)*p))
+ lstyle = 0;
+ else if (*p == '-' && pos != 4 && pos != 7)
+ lstyle = 0;
+@@ -643,7 +643,7 @@ int ParseFTPList(const char *line, struc
+ for (pos = 0, p = tokens[tokmarker+5];
+ lstyle && pos < toklen[tokmarker+5]; pos++, p++)
+ {
+- if (*p != ':' && !isdigit(*p))
++ if (*p != ':' && !isdigit((unsigned char)*p))
+ lstyle = 0;
+ else if (*p == ':' && pos != (toklen[tokmarker+5]-3)
+ && pos != (toklen[tokmarker+5]-6))
+@@ -730,16 +730,16 @@ int ParseFTPList(const char *line, struc
+ * "07-14-00 01:38PM 2250540 Valentineoffprank-HiRes.jpg"
+ */
+ if ((numtoks >= 4) && (toklen[0] == 8 || toklen[0] == 10) && toklen[1] == 7 &&
+- (*tokens[2] == '<' || isdigit(*tokens[2])) )
++ (*tokens[2] == '<' || isdigit((unsigned char)*tokens[2])) )
+ {
+ p = tokens[0];
+- if ( isdigit(p[0]) && isdigit(p[1]) && p[2]=='-' &&
+- isdigit(p[3]) && isdigit(p[4]) && p[5]=='-' &&
+- isdigit(p[6]) && isdigit(p[7]) )
++ if ( isdigit((unsigned char)p[0]) && isdigit((unsigned char)p[1]) && p[2]=='-' &&
++ isdigit((unsigned char)p[3]) && isdigit((unsigned char)p[4]) && p[5]=='-' &&
++ isdigit((unsigned char)p[6]) && isdigit((unsigned char)p[7]) )
+ {
+ p = tokens[1];
+- if ( isdigit(p[0]) && isdigit(p[1]) && p[2]==':' &&
+- isdigit(p[3]) && isdigit(p[4]) &&
++ if ( isdigit((unsigned char)p[0]) && isdigit((unsigned char)p[1]) && p[2]==':' &&
++ isdigit((unsigned char)p[3]) && isdigit((unsigned char)p[4]) &&
+ (p[5]=='A' || p[5]=='P') && p[6]=='M')
+ {
+ lstyle = 'W';
+@@ -751,7 +751,7 @@ int ParseFTPList(const char *line, struc
+ {
+ for (pos = 1; (lstyle && pos < toklen[2]); pos++)
+ {
+- if (!isdigit(*++p))
++ if (!isdigit((unsigned char)*++p))
+ lstyle = 0;
+ }
+ }
+@@ -882,16 +882,16 @@ int ParseFTPList(const char *line, struc
+ */
+ p = &(line[toklen[0]]);
+ /* \s(\d\d-\d\d-\d\d)\s+(\d\d:\d\d)\s */
+- if (numtoks >= 4 && toklen[0] <= 18 && isdigit(*tokens[0]) &&
++ if (numtoks >= 4 && toklen[0] <= 18 && isdigit((unsigned char)*tokens[0]) &&
+ (linelen - toklen[0]) >= (53-18) &&
+ p[18-18] == ' ' && p[34-18] == ' ' &&
+ p[37-18] == '-' && p[40-18] == '-' && p[43-18] == ' ' &&
+ p[45-18] == ' ' && p[48-18] == ':' && p[51-18] == ' ' &&
+- isdigit(p[35-18]) && isdigit(p[36-18]) &&
+- isdigit(p[38-18]) && isdigit(p[39-18]) &&
+- isdigit(p[41-18]) && isdigit(p[42-18]) &&
+- isdigit(p[46-18]) && isdigit(p[47-18]) &&
+- isdigit(p[49-18]) && isdigit(p[50-18])
++ isdigit((unsigned char)p[35-18]) && isdigit((unsigned char)p[36-18]) &&
++ isdigit((unsigned char)p[38-18]) && isdigit((unsigned char)p[39-18]) &&
++ isdigit((unsigned char)p[41-18]) && isdigit((unsigned char)p[42-18]) &&
++ isdigit((unsigned char)p[46-18]) && isdigit((unsigned char)p[47-18]) &&
++ isdigit((unsigned char)p[49-18]) && isdigit((unsigned char)p[50-18])
+ )
+ {
+ lstyle = 'O'; /* OS/2 */
+@@ -899,7 +899,7 @@ int ParseFTPList(const char *line, struc
+ {
+ for (pos = 1; lstyle && pos < toklen[0]; pos++)
+ {
+- if (!isdigit(tokens[0][pos]))
++ if (!isdigit((unsigned char)tokens[0][pos]))
+ lstyle = 0;
+ }
+ }
+@@ -1046,34 +1046,34 @@ int ParseFTPList(const char *line, struc
+ * (\d\d\d\d|\d\:\d\d|\d\d\:\d\d|\d\:\d\d\:\d\d|\d\d\:\d\d\:\d\d)
+ * \s+(.+)$
+ */
+- if (isdigit(*tokens[pos]) /* size */
++ if (isdigit((unsigned char)*tokens[pos]) /* size */
+ /* (\w\w\w) */
+- && toklen[pos+1] == 3 && isalpha(*tokens[pos+1]) &&
+- isalpha(tokens[pos+1][1]) && isalpha(tokens[pos+1][2])
++ && toklen[pos+1] == 3 && isalpha((unsigned char)*tokens[pos+1]) &&
++ isalpha((unsigned char)tokens[pos+1][1]) && isalpha((unsigned char)tokens[pos+1][2])
+ /* (\d|\d\d) */
+- && isdigit(*tokens[pos+2]) &&
++ && isdigit((unsigned char)*tokens[pos+2]) &&
+ (toklen[pos+2] == 1 ||
+- (toklen[pos+2] == 2 && isdigit(tokens[pos+2][1])))
+- && toklen[pos+3] >= 4 && isdigit(*tokens[pos+3])
++ (toklen[pos+2] == 2 && isdigit((unsigned char)tokens[pos+2][1])))
++ && toklen[pos+3] >= 4 && isdigit((unsigned char)*tokens[pos+3])
+ /* (\d\:\d\d\:\d\d|\d\d\:\d\d\:\d\d) */
+ && (toklen[pos+3] <= 5 || (
+ (toklen[pos+3] == 7 || toklen[pos+3] == 8) &&
+ (tokens[pos+3][toklen[pos+3]-3]) == ':'))
+- && isdigit(tokens[pos+3][toklen[pos+3]-2])
+- && isdigit(tokens[pos+3][toklen[pos+3]-1])
++ && isdigit((unsigned char)tokens[pos+3][toklen[pos+3]-2])
++ && isdigit((unsigned char)tokens[pos+3][toklen[pos+3]-1])
+ && (
+ /* (\d\d\d\d) */
+ ((toklen[pos+3] == 4 || toklen[pos+3] == 5) &&
+- isdigit(tokens[pos+3][1]) &&
+- isdigit(tokens[pos+3][2]) )
++ isdigit((unsigned char)tokens[pos+3][1]) &&
++ isdigit((unsigned char)tokens[pos+3][2]) )
+ /* (\d\:\d\d|\d\:\d\d\:\d\d) */
+ || ((toklen[pos+3] == 4 || toklen[pos+3] == 7) &&
+ (tokens[pos+3][1]) == ':' &&
+- isdigit(tokens[pos+3][2]) && isdigit(tokens[pos+3][3]))
++ isdigit((unsigned char)tokens[pos+3][2]) && isdigit((unsigned char)tokens[pos+3][3]))
+ /* (\d\d\:\d\d|\d\d\:\d\d\:\d\d) */
+ || ((toklen[pos+3] == 5 || toklen[pos+3] == 8) &&
+- isdigit(tokens[pos+3][1]) && (tokens[pos+3][2]) == ':' &&
+- isdigit(tokens[pos+3][3]) && isdigit(tokens[pos+3][4]))
++ isdigit((unsigned char)tokens[pos+3][1]) && ((unsigned char)tokens[pos+3][2]) == ':' &&
++ isdigit((unsigned char)tokens[pos+3][3]) && isdigit((unsigned char)tokens[pos+3][4]))
+ )
+ )
+ {
+@@ -1085,7 +1085,7 @@ int ParseFTPList(const char *line, struc
+ p = tokens[tokmarker];
+ for (i = 0; i < toklen[tokmarker]; i++)
+ {
+- if (!isdigit(*p++))
++ if (!isdigit((unsigned char)*p++))
+ {
+ lstyle = 0;
+ break;
+@@ -1281,7 +1281,7 @@ int ParseFTPList(const char *line, struc
+ * CMT.CSV 0 Jul 06 1995 14:56 RHA
+ */
+ if (numtoks >= 4 && toklen[0] < 13 &&
+- ((toklen[1] == 5 && *tokens[1] == '<') || isdigit(*tokens[1])) )
++ ((toklen[1] == 5 && *tokens[1] == '<') || isdigit((unsigned char)*tokens[1])) )
+ {
+ if (numtoks == 4
+ && (toklen[2] == 8 || toklen[2] == 9)
+@@ -1289,12 +1289,12 @@ int ParseFTPList(const char *line, struc
+ ((tokens[2][2]) == '-' && (tokens[2][5]) == '-'))
+ && (toklen[3] == 4 || toklen[3] == 5)
+ && (tokens[3][toklen[3]-3]) == ':'
+- && isdigit(tokens[2][0]) && isdigit(tokens[2][1])
+- && isdigit(tokens[2][3]) && isdigit(tokens[2][4])
+- && isdigit(tokens[2][6]) && isdigit(tokens[2][7])
+- && (toklen[2] < 9 || isdigit(tokens[2][8]))
+- && isdigit(tokens[3][toklen[3]-1]) && isdigit(tokens[3][toklen[3]-2])
+- && isdigit(tokens[3][toklen[3]-4]) && isdigit(*tokens[3])
++ && isdigit((unsigned char)tokens[2][0]) && isdigit((unsigned char)tokens[2][1])
++ && isdigit((unsigned char)tokens[2][3]) && isdigit((unsigned char)tokens[2][4])
++ && isdigit((unsigned char)tokens[2][6]) && isdigit((unsigned char)tokens[2][7])
++ && (toklen[2] < 9 || isdigit((unsigned char)tokens[2][8]))
++ && isdigit((unsigned char)tokens[3][toklen[3]-1]) && isdigit((unsigned char)tokens[3][toklen[3]-2])
++ && isdigit((unsigned char)tokens[3][toklen[3]-4]) && isdigit((unsigned char)*tokens[3])
+ )
+ {
+ lstyle = 'w';
+@@ -1303,13 +1303,13 @@ int ParseFTPList(const char *line, struc
+ && toklen[2] == 3 && toklen[3] == 2
+ && toklen[4] == 4 && toklen[5] == 5
+ && (tokens[5][2]) == ':'
+- && isalpha(tokens[2][0]) && isalpha(tokens[2][1])
+- && isalpha(tokens[2][2])
+- && isdigit(tokens[3][0]) && isdigit(tokens[3][1])
+- && isdigit(tokens[4][0]) && isdigit(tokens[4][1])
+- && isdigit(tokens[4][2]) && isdigit(tokens[4][3])
+- && isdigit(tokens[5][0]) && isdigit(tokens[5][1])
+- && isdigit(tokens[5][3]) && isdigit(tokens[5][4])
++ && isalpha((unsigned char)tokens[2][0]) && isalpha((unsigned char)tokens[2][1])
++ && isalpha((unsigned char)tokens[2][2])
++ && isdigit((unsigned char)tokens[3][0]) && isdigit((unsigned char)tokens[3][1])
++ && isdigit((unsigned char)tokens[4][0]) && isdigit((unsigned char)tokens[4][1])
++ && isdigit((unsigned char)tokens[4][2]) && isdigit((unsigned char)tokens[4][3])
++ && isdigit((unsigned char)tokens[5][0]) && isdigit((unsigned char)tokens[5][1])
++ && isdigit((unsigned char)tokens[5][3]) && isdigit((unsigned char)tokens[5][4])
+ /* could also check that (&(tokens[5][5]) - tokens[2]) == 17 */
+ )
+ {
+@@ -1323,7 +1323,7 @@ int ParseFTPList(const char *line, struc
+ {
+ for (pos = 0; lstyle && pos < toklen[1]; pos++)
+ {
+- if (!isdigit(*p++))
++ if (!isdigit((unsigned char)*p++))
+ lstyle = 0;
+ }
+ } /* not <DIR> */
+@@ -1341,7 +1341,7 @@ int ParseFTPList(const char *line, struc
+ result->fe_type = 'd';
+
+ p = tokens[1];
+- if (isdigit(*p))
++ if (isdigit((unsigned char)*p))
+ {
+ result->fe_type = 'f';
+ pos = toklen[1];
+@@ -1354,9 +1354,9 @@ int ParseFTPList(const char *line, struc
+ p = tokens[2];
+ if (toklen[2] == 3) /* Chameleon */
+ {
+- tbuf[0] = toupper(p[0]);
+- tbuf[1] = tolower(p[1]);
+- tbuf[2] = tolower(p[2]);
++ tbuf[0] = toupper((unsigned char)p[0]);
++ tbuf[1] = tolower((unsigned char)p[1]);
++ tbuf[2] = tolower((unsigned char)p[2]);
+ for (pos = 0; pos < (12*3); pos+=3)
+ {
+ if (tbuf[0] == month_names[pos+0] &&
+@@ -1475,7 +1475,7 @@ int ParseFTPList(const char *line, struc
+ if (linelen > pos)
+ {
+ p = &line[pos];
+- if ((*p == '-' || *p == '=' || isdigit(*p)) &&
++ if ((*p == '-' || *p == '=' || isdigit((unsigned char)*p)) &&
+ ((linelen == (pos+1)) ||
+ (linelen >= (pos+3) && p[1] == ' ' && p[2] == ' ')) )
+ {
+@@ -1502,7 +1502,7 @@ int ParseFTPList(const char *line, struc
+ {
+ for (pos = 0; lstyle && pos < toklen[tokmarker]; pos++)
+ {
+- if (!isdigit(tokens[tokmarker][pos]))
++ if (!isdigit((unsigned char)tokens[tokmarker][pos]))
+ lstyle = 0;
+ }
+ }
+@@ -1559,7 +1559,7 @@ int ParseFTPList(const char *line, struc
+ result->fe_type = 'd';
+ }
+ }
+- else if (isdigit(*tokens[tokmarker]))
++ else if (isdigit((unsigned char)*tokens[tokmarker]))
+ {
+ pos = toklen[tokmarker];
+ if (pos > (sizeof(result->fe_size)-1))
+@@ -1577,24 +1577,24 @@ int ParseFTPList(const char *line, struc
+ pos = toklen[pos];
+
+ if ((pos == 4 || pos == 5)
+- && isdigit(*p) && isdigit(p[pos-1]) && isdigit(p[pos-2])
++ && isdigit((unsigned char)*p) && isdigit((unsigned char)p[pos-1]) && isdigit((unsigned char)p[pos-2])
+ && ((pos == 5 && p[2] == ':') ||
+- (pos == 4 && (isdigit(p[1]) || p[1] == ':')))
++ (pos == 4 && (isdigit((unsigned char)p[1]) || p[1] == ':')))
+ )
+ {
+ month_num = tokmarker+1; /* assumed position of month field */
+ pos = tokmarker+2; /* assumed position of mday field */
+- if (isdigit(*tokens[month_num])) /* positions are reversed */
++ if (isdigit((unsigned char)*tokens[month_num])) /* positions are reversed */
+ {
+ month_num++;
+ pos--;
+ }
+ p = tokens[month_num];
+- if (isdigit(*tokens[pos])
++ if (isdigit((unsigned char)*tokens[pos])
+ && (toklen[pos] == 1 ||
+- (toklen[pos] == 2 && isdigit(tokens[pos][1])))
++ (toklen[pos] == 2 && isdigit((unsigned char)tokens[pos][1])))
+ && toklen[month_num] == 3
+- && isalpha(*p) && isalpha(p[1]) && isalpha(p[2]) )
++ && isalpha((unsigned char)*p) && isalpha((unsigned char)p[1]) && isalpha((unsigned char)p[2]) )
+ {
+ pos = atoi(tokens[pos]);
+ if (pos > 0 && pos <= 31)
Index: pkgsrc/sysutils/gvfs/patches/patch-man_meson.build
diff -u /dev/null pkgsrc/sysutils/gvfs/patches/patch-man_meson.build:1.1
--- /dev/null Sun May 10 17:38:15 2026
+++ pkgsrc/sysutils/gvfs/patches/patch-man_meson.build Sun May 10 17:38:14 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-man_meson.build,v 1.1 2026/05/10 17:38:14 vins Exp $
+
+Fix detection of docbook.
+
+--- man/meson.build.orig 2026-05-03 13:29:08.697502288 +0000
++++ man/meson.build
+@@ -10,7 +10,7 @@ xsltproc_cmd = [
+ '--stringparam', 'man.th.extra1.suppress', '1',
+ '--stringparam', 'man.authors.section.enabled', '0',
+ '--stringparam', 'man.copyright.section.enabled', '0',
+- 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl',
++ '@DOCBOOK_MANPAGE_XSL@',
+ '@INPUT@',
+ ]
+
Index: pkgsrc/sysutils/gvfs/patches/patch-meson.build
diff -u /dev/null pkgsrc/sysutils/gvfs/patches/patch-meson.build:1.1
--- /dev/null Sun May 10 17:38:15 2026
+++ pkgsrc/sysutils/gvfs/patches/patch-meson.build Sun May 10 17:38:14 2026
@@ -0,0 +1,18 @@
+$NetBSD: patch-meson.build,v 1.1 2026/05/10 17:38:14 vins Exp $
+
+Work around a build failure on NetBSD. Not sure if this is the right thing
+though. No software should use statfs(2) in the first place.
+
+--- meson.build.orig 2025-11-14 15:34:15.578508432 +0000
++++ meson.build
+@@ -122,6 +122,10 @@ if cc.compiles(statfs_code.format('statf
+ config_h.set('STATFS_ARGS', 2)
+ elif cc.compiles(statfs_code.format('statfs("/", &st, sizeof (st), 0)'))
+ config_h.set('STATFS_ARGS', 4)
++elif host_machine.system().contains('netbsd')
++ # NetBSD has statfs(2) as a compatibility symbol without a function
++ # declaration, which makes it impossible to determine its type.
++ config_h.set('STATFS_ARGS', 2)
+ else
+ error('unable to determine number of arguments to statfs()')
+ endif
Home |
Main Index |
Thread Index |
Old Index