Source: gvfs
Version: 1.56.1-1
Severity: important
Tags: patch
User: debian-hurd@lists.debian.org
Usertags: hurd
X-Debbugs-CC: debian-hurd@lists.debian.org

Hi,

gvfs FTBFS on hurd-i386 due to several dependencies on systemd, which is not
available on GNU/Hurd.

Attached are seven patches enabling a successful build:
One is Debian-specific and six relates to meson.build files.

The meson.build file with linux-specific dependencies are embedded in
"if host_machine.system().contains('linux'); ...; endif" statements:
meson.build.patch
client_meson.build.patch
common_meson.build.patch
daemon_meson.build.patch
monitor_meson.build.patch
metadata_meson.build.patch

The first part of the debian-specific debian_rules.diff relate to the
override_dh_link-arch: target, enabling building the packages more than once (at
least on GNU/Hurd).
The second part creating an override_dh_missing: target
is needed for successful creation of the packages for GNU/Hurd.

This package has also been successfully built on GNU/Linux amd64 with the
attached patches applied. 

Thanks!



Index: gvfs-1.56.1/client/meson.build
===================================================================
--- gvfs-1.56.1.orig/client/meson.build
+++ gvfs-1.56.1/client/meson.build
@@ -77,27 +77,29 @@ if enable_devel_utils
 endif
 
 # FUSE daemon
-if enable_fuse
-  if install_systemd_tmpfilesdir
-    install_data(
-      'gvfsd-fuse-tmpfiles.conf',
-      install_dir: systemd_tmpfilesdir,
-    )
-  endif
+if host_machine.system().contains('linux')
+  if enable_fuse
+    if install_systemd_tmpfilesdir
+      install_data(
+        'gvfsd-fuse-tmpfiles.conf',
+        install_dir: systemd_tmpfilesdir,
+      )
+    endif
 
-  deps = [
-    fuse_dep,
-    libgvfscommon_dep,
-  ]
+    deps = [
+      fuse_dep,
+      libgvfscommon_dep,
+    ]
 
-  executable(
-    'gvfsd-fuse',
-    'gvfsfusedaemon.c',
-    include_directories: top_inc,
-    dependencies: deps,
-    c_args: cflags + ['-UG_LOG_DOMAIN'],
-    install: true,
-    install_rpath: gvfs_rpath,
-    install_dir: gvfs_libexecdir,
-  )
+    executable(
+      'gvfsd-fuse',
+      'gvfsfusedaemon.c',
+      include_directories: top_inc,
+      dependencies: deps,
+      c_args: cflags + ['-UG_LOG_DOMAIN'],
+      install: true,
+      install_rpath: gvfs_rpath,
+      install_dir: gvfs_libexecdir,
+    )
+  endif
 endif
Index: gvfs-1.56.1/common/meson.build
===================================================================
--- gvfs-1.56.1.orig/common/meson.build
+++ gvfs-1.56.1/common/meson.build
@@ -100,22 +100,24 @@ if enable_dnssd
   )
 endif
 
-if enable_mtp or enable_gphoto2
-  deps = [
-    glib_dep,
-    gudev_dep,
-  ]
+if host_machine.system().contains('linux')
+  if enable_mtp or enable_gphoto2
+    deps = [
+      glib_dep,
+      gudev_dep,
+    ]
 
-  libgvfscommon_gphoto2 = static_library(
-    'gvfscommon-gphoto2',
-    sources: 'gvfsgphoto2utils.c',
-    include_directories: top_inc,
-    dependencies: deps,
-  )
+    libgvfscommon_gphoto2 = static_library(
+      'gvfscommon-gphoto2',
+      sources: 'gvfsgphoto2utils.c',
+      include_directories: top_inc,
+      dependencies: deps,
+    )
 
-  libgvfscommon_gphoto2_dep = declare_dependency(
-    include_directories: common_inc,
-    dependencies: deps,
-    link_with: libgvfscommon_gphoto2,
-  )
-endif
+    libgvfscommon_gphoto2_dep = declare_dependency(
+      include_directories: common_inc,
+      dependencies: deps,
+      link_with: libgvfscommon_gphoto2,
+    )
+  endif
+endif
\ No newline at end of file
Index: gvfs-1.56.1/daemon/meson.build
===================================================================
--- gvfs-1.56.1.orig/daemon/meson.build
+++ gvfs-1.56.1/daemon/meson.build
@@ -5,18 +5,20 @@ dbus_service = gvfs_namespace + '.Daemon
 dbus_exec = 'gvfsd'
 dbus_systemd_service = ''
 
-if install_systemd_systemduserunitdir
-  service = 'gvfs-daemon.service'
+if host_machine.system().contains('linux')
+  if install_systemd_systemduserunitdir
+    service = 'gvfs-daemon.service'
 
-  configure_file(
-    input: service + '.in',
-    output: '@BASENAME@',
-    configuration: service_conf,
-    install: true,
-    install_dir: systemd_systemduserunitdir,
-  )
+    configure_file(
+      input: service + '.in',
+      output: '@BASENAME@',
+      configuration: service_conf,
+      install: true,
+      install_dir: systemd_systemduserunitdir,
+    )
 
-  dbus_systemd_service = 'SystemdService=' + service
+    dbus_systemd_service = 'SystemdService=' + service
+  endif
 endif
 
 dbus_service_conf = {
@@ -265,31 +267,33 @@ if enable_sftp
   mounts += ['sftp']
 endif
 
-if enable_samba
-  sources = files('gvfsbackendsmb.c')
-
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendsmb.h',
-    '-DDEFAULT_BACKEND_TYPE=smb',
-    '-DBACKEND_TYPES="smb-share", G_VFS_TYPE_BACKEND_SMB,',
-    '-DMAX_JOB_THREADS=1',
-  ]
+if host_machine.system().contains('linux')
+  if enable_samba
+    sources = files('gvfsbackendsmb.c')
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendsmb.h',
+      '-DDEFAULT_BACKEND_TYPE=smb',
+      '-DBACKEND_TYPES="smb-share", G_VFS_TYPE_BACKEND_SMB,',
+      '-DMAX_JOB_THREADS=1',
+    ]
+
+    programs += {'gvfsd-smb': {'sources': sources, 'dependencies': [smbclient_dep], 'c_args': cflags}}
+    mounts += ['smb']
+    schema_data += files('org.gnome.system.smb.gschema.xml')
+    convert_data += files('gvfs-smb.convert')
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendsmbbrowse.h',
+      '-DDEFAULT_BACKEND_TYPE=smb-network',
+      '-DBACKEND_TYPES="smb-network", G_VFS_TYPE_BACKEND_SMB_BROWSE, "smb-server",  G_VFS_TYPE_BACKEND_SMB_BROWSE,',
+      '-DMAX_JOB_THREADS=1',
+      '-DMOUNTABLE_DBUS_NAME=' + gvfs_namespace + '.mountpoint_smb_browse',
+    ]
 
-  programs += {'gvfsd-smb': {'sources': sources, 'dependencies': [smbclient_dep], 'c_args': cflags}}
-  mounts += ['smb']
-  schema_data += files('org.gnome.system.smb.gschema.xml')
-  convert_data += files('gvfs-smb.convert')
-
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendsmbbrowse.h',
-    '-DDEFAULT_BACKEND_TYPE=smb-network',
-    '-DBACKEND_TYPES="smb-network", G_VFS_TYPE_BACKEND_SMB_BROWSE, "smb-server",  G_VFS_TYPE_BACKEND_SMB_BROWSE,',
-    '-DMAX_JOB_THREADS=1',
-    '-DMOUNTABLE_DBUS_NAME=' + gvfs_namespace + '.mountpoint_smb_browse',
-  ]
-
-  programs += {'gvfsd-smb-browse': {'sources': sources + files('gvfsbackendsmbbrowse.c'), 'dependencies': [smbclient_dep], 'c_args': cflags}}
-  mounts += ['smb-browse']
+    programs += {'gvfsd-smb-browse': {'sources': sources + files('gvfsbackendsmbbrowse.c'), 'dependencies': [smbclient_dep], 'c_args': cflags}}
+    mounts += ['smb-browse']
+  endif
 endif
 
 if enable_dnssd
@@ -326,59 +330,63 @@ if enable_archive
   mounts += ['archive']
 endif
 
-if enable_cdda
-  deps = [
-    gudev_dep,
-    libcdio_paranoia_dep,
-  ]
+if host_machine.system().contains('linux')
+  if enable_cdda
+    deps = [
+      gudev_dep,
+      libcdio_paranoia_dep,
+    ]
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendcdda.h',
+      '-DDEFAULT_BACKEND_TYPE=cdda',
+      '-DBACKEND_TYPES="cdda", G_VFS_TYPE_BACKEND_CDDA,',
+      '-DMAX_JOB_THREADS=1',
+    ]
 
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendcdda.h',
-    '-DDEFAULT_BACKEND_TYPE=cdda',
-    '-DBACKEND_TYPES="cdda", G_VFS_TYPE_BACKEND_CDDA,',
-    '-DMAX_JOB_THREADS=1',
-  ]
-
-  programs += {'gvfsd-cdda': {'sources': files('gvfsbackendcdda.c'), 'dependencies': deps, 'c_args': cflags}}
-  mounts += ['cdda']
+    programs += {'gvfsd-cdda': {'sources': files('gvfsbackendcdda.c'), 'dependencies': deps, 'c_args': cflags}}
+    mounts += ['cdda']
+  endif
 endif
 
-if enable_admin
-  deps = [
-    libcap_dep,
-    polkit_gobject_dep,
-  ]
-
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendadmin.h',
-    '-DDEFAULT_BACKEND_TYPE=admin',
-    '-DBACKEND_TYPES="admin", G_VFS_TYPE_BACKEND_ADMIN,',
-    '-DMOUNTABLE_DBUS_NAME=' + gvfs_namespace + '.mountpoint_admin',
-  ]
-
-  programs += {'gvfsd-admin': {'sources': files('gvfsbackendadmin.c'), 'dependencies': deps, 'c_args': cflags}}
-  mounts += ['admin']
-
-  policy = gvfs_namespace + '.file-operations.policy'
-
-  i18n.merge_file(
-    input: configure_file(
-      input: policy + '.in.in',
+if host_machine.system().contains('linux')
+  if enable_admin
+    deps = [
+      libcap_dep,
+      polkit_gobject_dep,
+    ]
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendadmin.h',
+      '-DDEFAULT_BACKEND_TYPE=admin',
+      '-DBACKEND_TYPES="admin", G_VFS_TYPE_BACKEND_ADMIN,',
+      '-DMOUNTABLE_DBUS_NAME=' + gvfs_namespace + '.mountpoint_admin',
+    ]
+
+    programs += {'gvfsd-admin': {'sources': files('gvfsbackendadmin.c'), 'dependencies': deps, 'c_args': cflags}}
+    mounts += ['admin']
+
+    policy = gvfs_namespace + '.file-operations.policy'
+
+    i18n.merge_file(
+      input: configure_file(
+        input: policy + '.in.in',
+        output: '@BASENAME@',
+        configuration: service_conf,
+      ),
       output: '@BASENAME@',
-      configuration: service_conf,
-    ),
-    output: '@BASENAME@',
-    po_dir: po_dir,
-    install: true,
-    install_dir: gvfs_datadir / 'polkit-1/actions',
-  )
+      po_dir: po_dir,
+      install: true,
+      install_dir: gvfs_datadir / 'polkit-1/actions',
+    )
 
-  configure_file(
-    input: gvfs_namespace + '.file-operations.rules.in',
-    output: '@BASENAME@',
-    configuration: {'PRIVILEGED_GROUP': privileged_group},
-    install_dir: gvfs_datadir / 'polkit-1/rules.d',
-  )
+    configure_file(
+      input: gvfs_namespace + '.file-operations.rules.in',
+      output: '@BASENAME@',
+      configuration: {'PRIVILEGED_GROUP': privileged_group},
+      install_dir: gvfs_datadir / 'polkit-1/rules.d',
+    )
+  endif
 endif
 
 if enable_google
@@ -416,43 +424,47 @@ if enable_onedrive
   mounts += ['onedrive']
 endif
 
-if enable_gphoto2
-  deps = [
-    gio_unix_dep,
-    libgphoto2_dep,
-    libgvfscommon_gphoto2_dep,
-  ]
-
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendgphoto2.h',
-    '-DDEFAULT_BACKEND_TYPE=gphoto2',
-    '-DBACKEND_TYPES="gphoto2", G_VFS_TYPE_BACKEND_GPHOTO2,',
-    '-DMAX_JOB_THREADS=1',
-  ]
+if host_machine.system().contains('linux')
+  if enable_gphoto2
+    deps = [
+      gio_unix_dep,
+      libgphoto2_dep,
+      libgvfscommon_gphoto2_dep,
+    ]
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendgphoto2.h',
+      '-DDEFAULT_BACKEND_TYPE=gphoto2',
+      '-DBACKEND_TYPES="gphoto2", G_VFS_TYPE_BACKEND_GPHOTO2,',
+      '-DMAX_JOB_THREADS=1',
+    ]
 
-  programs += {'gvfsd-gphoto2': {'sources': files('gvfsbackendgphoto2.c'), 'dependencies': deps, 'c_args': cflags}}
-  mounts += ['gphoto2']
+    programs += {'gvfsd-gphoto2': {'sources': files('gvfsbackendgphoto2.c'), 'dependencies': deps, 'c_args': cflags}}
+    mounts += ['gphoto2']
+  endif
 endif
 
-if enable_mtp
-  deps = [
-    libgvfscommon_gphoto2_dep,
-    libmtp_dep
-  ]
-
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendmtp.h',
-    '-DDEFAULT_BACKEND_TYPE=mtp',
-    '-DBACKEND_TYPES="mtp", G_VFS_TYPE_BACKEND_MTP,',
-    '-DMAX_JOB_THREADS=1',
-  ]
+if host_machine.system().contains('linux')
+  if enable_mtp
+    deps = [
+      libgvfscommon_gphoto2_dep,
+      libmtp_dep
+    ]
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendmtp.h',
+      '-DDEFAULT_BACKEND_TYPE=mtp',
+      '-DBACKEND_TYPES="mtp", G_VFS_TYPE_BACKEND_MTP,',
+      '-DMAX_JOB_THREADS=1',
+    ]
+
+    if enable_libusb
+      deps += libusb_dep
+    endif
 
-  if enable_libusb
-    deps += libusb_dep
+    programs += {'gvfsd-mtp': {'sources': files('gvfsbackendmtp.c'), 'dependencies': deps, 'c_args': cflags}}
+    mounts += ['mtp']
   endif
-
-  programs += {'gvfsd-mtp': {'sources': files('gvfsbackendmtp.c'), 'dependencies': deps, 'c_args': cflags}}
-  mounts += ['mtp']
 endif
 
 if enable_http
@@ -497,22 +509,24 @@ if enable_http
   mounts += ['dav']
 endif
 
-if enable_afc
-  deps = [
-    libimobiledevice_dep,
-    libplist_dep,
-  ]
-
-  cflags = [
-    '-DBACKEND_HEADER=gvfsbackendafc.h',
-    '-DDEFAULT_BACKEND_TYPE=afc',
-    '-DBACKEND_TYPES="afc", G_VFS_TYPE_BACKEND_AFC,',
-    '-DMAX_JOB_THREADS=1',
-    '-DBACKEND_USES_GVFS=1',
-  ]
+if host_machine.system().contains('linux')
+  if enable_afc
+    deps = [
+      libimobiledevice_dep,
+      libplist_dep,
+    ]
+
+    cflags = [
+      '-DBACKEND_HEADER=gvfsbackendafc.h',
+      '-DDEFAULT_BACKEND_TYPE=afc',
+      '-DBACKEND_TYPES="afc", G_VFS_TYPE_BACKEND_AFC,',
+      '-DMAX_JOB_THREADS=1',
+      '-DBACKEND_USES_GVFS=1',
+    ]
 
-  programs += {'gvfsd-afc': {'sources': files('gvfsbackendafc.c'), 'dependencies': deps, 'c_args': cflags}}
-  mounts += ['afc']
+    programs += {'gvfsd-afc': {'sources': files('gvfsbackendafc.c'), 'dependencies': deps, 'c_args': cflags}}
+    mounts += ['afc']
+  endif
 endif
 
 if enable_afp
Index: gvfs-1.56.1/meson.build
===================================================================
--- gvfs-1.56.1.orig/meson.build
+++ gvfs-1.56.1/meson.build
@@ -272,24 +272,26 @@ gio_schemasdir = gio_dep.get_variable(
 )
 
 # *** Check for systemd options ***
-systemd_systemduserunitdir = get_option('systemduserunitdir')
-install_systemd_systemduserunitdir = (systemd_systemduserunitdir != 'no')
-
-systemd_tmpfilesdir = get_option('tmpfilesdir')
-install_systemd_tmpfilesdir = (systemd_tmpfilesdir != 'no')
-
-if install_systemd_systemduserunitdir or install_systemd_tmpfilesdir
-  if systemd_systemduserunitdir == '' or systemd_tmpfilesdir == ''
-    systemd_dep = dependency('systemd', version: '>= 206', required: false)
-
-    if install_systemd_systemduserunitdir and systemd_systemduserunitdir == ''
-      assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
-      systemd_systemduserunitdir = systemd_dep.get_variable(pkgconfig: 'systemduserunitdir', pkgconfig_define: ['prefix', gvfs_prefix])
-    endif
-
-    if install_systemd_tmpfilesdir and systemd_tmpfilesdir == ''
-      assert(systemd_dep.found(), 'systemd not found, if you use opentmpfiles please provide a valid systemd user unit dir or disable it')
-      systemd_tmpfilesdir = systemd_dep.get_variable(pkgconfig: 'tmpfilesdir', pkgconfig_define: ['prefix', gvfs_prefix])
+if host_machine.system().contains('linux')
+  systemd_systemduserunitdir = get_option('systemduserunitdir')
+  install_systemd_systemduserunitdir = (systemd_systemduserunitdir != 'no')
+
+  systemd_tmpfilesdir = get_option('tmpfilesdir')
+  install_systemd_tmpfilesdir = (systemd_tmpfilesdir != 'no')
+
+  if install_systemd_systemduserunitdir or install_systemd_tmpfilesdir
+    if systemd_systemduserunitdir == '' or systemd_tmpfilesdir == ''
+      systemd_dep = dependency('systemd', version: '>= 206', required: false)
+
+      if install_systemd_systemduserunitdir and systemd_systemduserunitdir == ''
+        assert(systemd_dep.found(), 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
+        systemd_systemduserunitdir = systemd_dep.get_variable(pkgconfig: 'systemduserunitdir', pkgconfig_define: ['prefix', gvfs_prefix])
+      endif
+
+      if install_systemd_tmpfilesdir and systemd_tmpfilesdir == ''
+        assert(systemd_dep.found(), 'systemd not found, if you use opentmpfiles please provide a valid systemd user unit dir or disable it')
+        systemd_tmpfilesdir = systemd_dep.get_variable(pkgconfig: 'tmpfilesdir', pkgconfig_define: ['prefix', gvfs_prefix])
+      endif
     endif
   endif
 endif
@@ -302,11 +304,13 @@ endif
 config_h.set('HAVE_GCR', enable_gcr)
 
 # *** Check if we should build with admin backend ***
-privileged_group = get_option('privileged_group')
-enable_admin = get_option('admin')
-if enable_admin
-  libcap_dep = dependency('libcap')
-  polkit_gobject_dep = dependency('polkit-gobject-1')
+if host_machine.system().contains('linux')
+  privileged_group = get_option('privileged_group')
+  enable_admin = get_option('admin')
+  if enable_admin
+    libcap_dep = dependency('libcap')
+    polkit_gobject_dep = dependency('polkit-gobject-1')
+  endif
 endif
 
 # *** Check if we should build with http backend ***
@@ -325,45 +329,55 @@ endif
 config_h.set('HAVE_AVAHI', enable_dnssd)
 
 # *** Check for gudev ***
-enable_gudev = get_option('gudev')
-if enable_gudev
-  gudev_dep = dependency('gudev-1.0', version: '>= 147')
+if host_machine.system().contains('linux')
+  enable_gudev = get_option('gudev')
+  if enable_gudev
+    gudev_dep = dependency('gudev-1.0', version: '>= 147')
+  endif
+  config_h.set('HAVE_GUDEV', enable_gudev)
 endif
-config_h.set('HAVE_GUDEV', enable_gudev)
 
 # *** Check for FUSE ***
-enable_fuse = get_option('fuse')
-if enable_fuse
-  fuse_dep = dependency('fuse3', version: '>= 3.0.0')
+if host_machine.system().contains('linux')
+  enable_fuse = get_option('fuse')
+  if enable_fuse
+    fuse_dep = dependency('fuse3', version: '>= 3.0.0')
+  endif
+  config_h.set('HAVE_FUSE', enable_fuse)
 endif
-config_h.set('HAVE_FUSE', enable_fuse)
 
 # *** Check for udisks2 ***
-enable_udisks2 = get_option('udisks2')
-if enable_udisks2
-  assert(enable_gudev, 'UDisks2 requested but gudev is required')
-  udisks2_dep = dependency('udisks2', version: '>= 1.97')
+if host_machine.system().contains('linux')
+  enable_udisks2 = get_option('udisks2')
+  if enable_udisks2
+    assert(enable_gudev, 'UDisks2 requested but gudev is required')
+    udisks2_dep = dependency('udisks2', version: '>= 1.97')
+  endif
 endif
 
 # *** Check for libsystemd-login ***
-enable_logind = get_option('logind')
-if enable_logind
-  logind_dep = dependency('libsystemd', required: false)
-  if not logind_dep.found()
-    logind_dep = dependency('libelogind', version: '>= 229', required: false)
-  endif
+if host_machine.system().contains('linux')
+  enable_logind = get_option('logind')
+  if enable_logind
+    logind_dep = dependency('libsystemd', required: false)
+    if not logind_dep.found()
+      logind_dep = dependency('libelogind', version: '>= 229', required: false)
+    endif
 
-  assert(logind_dep.found(), 'logind requested but libsystemd nor libelogind not found')
+    assert(logind_dep.found(), 'logind requested but libsystemd nor libelogind not found')
+  endif
+  config_h.set('HAVE_LOGIND', enable_logind)
 endif
-config_h.set('HAVE_LOGIND', enable_logind)
 
 # *** Check if we should build with AFC backend ***
-enable_afc = get_option('afc')
-if enable_afc
-  libimobiledevice_dep = dependency('libimobiledevice-1.0', version: '>= 1.2')
-  libplist_dep = dependency('libplist-2.0', required: false)
-  if not libplist_dep.found()
-    libplist_dep = dependency('libplist', version: '>= 0.15')
+if host_machine.system().contains('linux')
+  enable_afc = get_option('afc')
+  if enable_afc
+    libimobiledevice_dep = dependency('libimobiledevice-1.0', version: '>= 1.2')
+    libplist_dep = dependency('libplist-2.0', required: false)
+    if not libplist_dep.found()
+      libplist_dep = dependency('libplist', version: '>= 0.15')
+    endif
   endif
 endif
 
@@ -388,17 +402,21 @@ endif
 config_h.set('HAVE_BLURAY', enable_bluray)
 
 # *** Check if we should build with libusb-1.0 ***
-enable_libusb = get_option('libusb')
-if enable_libusb
-  libusb_dep = dependency('libusb-1.0', version: '>= 1.0.21')
+if host_machine.system().contains('linux')
+  enable_libusb = get_option('libusb')
+  if enable_libusb
+    libusb_dep = dependency('libusb-1.0', version: '>= 1.0.21')
+  endif
+  config_h.set10('HAVE_LIBUSB', enable_libusb)
 endif
-config_h.set10('HAVE_LIBUSB', enable_libusb)
 
 # *** Check for samba ***
-enable_samba = get_option('smb')
-if enable_samba
-  smbclient_dep = dependency('smbclient')
-  config_h.set('HAVE_SMBC_READDIRPLUS2', cc.has_function('smbc_readdirplus2', dependencies: smbclient_dep))
+if host_machine.system().contains('linux')
+  enable_samba = get_option('smb')
+  if enable_samba
+    smbclient_dep = dependency('smbclient')
+    config_h.set('HAVE_SMBC_READDIRPLUS2', cc.has_function('smbc_readdirplus2', dependencies: smbclient_dep))
+  endif
 endif
 
 # *** Check for libarchive ***
@@ -408,14 +426,16 @@ if enable_archive
 endif
 
 # *** Check if we should build with CDDA backend ***
-enable_cdda = get_option('cdda')
-if enable_cdda
-  assert(enable_gudev, 'CDDA backend requested but gudev is required')
+if host_machine.system().contains('linux')
+  enable_cdda = get_option('cdda')
+  if enable_cdda
+    assert(enable_gudev, 'CDDA backend requested but gudev is required')
 
-  libcdio_paranoia_dep = dependency('libcdio_paranoia', version: '>= 0.78.2')
-  config_h.set('HAVE_PARANOIA_NEW_INCLUDES', cc.has_header('cdio/paranoia/paranoia.h', dependencies: libcdio_paranoia_dep))
+    libcdio_paranoia_dep = dependency('libcdio_paranoia', version: '>= 0.78.2')
+    config_h.set('HAVE_PARANOIA_NEW_INCLUDES', cc.has_header('cdio/paranoia/paranoia.h', dependencies: libcdio_paranoia_dep))
 
-  config_h.set('HAVE_CDDA', enable_cdda)
+    config_h.set('HAVE_CDDA', enable_cdda)
+  endif
 endif
 
 # *** Check if we should build with Google backend ***
@@ -435,27 +455,31 @@ if enable_onedrive
 endif
 
 # *** Check for gphoto2 ***
-enable_gphoto2 = get_option('gphoto2')
-if enable_gphoto2
-  assert(enable_gudev, 'gphoto2 requested but gudev is required')
-  assert(host_machine.system().contains('linux') or host_machine.system().contains('bsd'),
+if host_machine.system().contains('linux')
+  enable_gphoto2 = get_option('gphoto2')
+  if enable_gphoto2
+    assert(enable_gudev, 'gphoto2 requested but gudev is required')
+    assert(host_machine.system().contains('linux') or host_machine.system().contains('bsd'),
          'Cannot build with gphoto2 support. Need OS tweaks in volume monitor.')
 
-  libgphoto2_dep = dependency('libgphoto2', version: '>= 2.4.0')
-  config_h.set('HAVE_GPHOTO25', libgphoto2_dep.version().version_compare('>= 2.5.0'))
+    libgphoto2_dep = dependency('libgphoto2', version: '>= 2.4.0')
+    config_h.set('HAVE_GPHOTO25', libgphoto2_dep.version().version_compare('>= 2.5.0'))
+  endif
 endif
 
 # *** Check for libmtp ***
-enable_mtp = get_option('mtp')
-if enable_mtp
-  assert(enable_gudev, 'libmtp requested but gudev is required')
-
-  libmtp_dep = dependency('libmtp', version: '>= 1.1.12')
-  foreach version: ['1.1.15', '1.1.21']
-    config_h.set10('HAVE_LIBMTP_' + version.underscorify(), libmtp_dep.version().version_compare('>= ' + version))
-  endforeach
+if host_machine.system().contains('linux')
+  enable_mtp = get_option('mtp')
+  if enable_mtp
+    assert(enable_gudev, 'libmtp requested but gudev is required')
+
+    libmtp_dep = dependency('libmtp', version: '>= 1.1.12')
+    foreach version: ['1.1.15', '1.1.21']
+      config_h.set10('HAVE_LIBMTP_' + version.underscorify(), libmtp_dep.version().version_compare('>= ' + version))
+    endforeach
+  endif
+  config_h.set('HAVE_LIBMTP', enable_mtp)
 endif
-config_h.set('HAVE_LIBMTP', enable_mtp)
 
 # *** AFP backend ***
 enable_afp = get_option('afp')
@@ -505,43 +529,73 @@ gnome.post_install(
   gio_querymodules: gio_giomoduledir,
 )
 
-summary({
-  'systemduserunitdir': systemd_systemduserunitdir,
-  'tmpfilesdir': systemd_tmpfilesdir,
-  'privileged_group': privileged_group,
-}, section: 'Configuration')
-
-summary({
-  'admin': enable_admin,
-  'afc': enable_afc,
-  'afp': enable_afp,
-  'archive': enable_archive,
-  'burn': enable_burn,
-  'cdda': enable_cdda,
-  'dnssd': enable_dnssd,
-  'goa': enable_goa,
-  'google': enable_google,
-  'gphoto2': enable_gphoto2,
-  'http': enable_http,
-  'mtp': enable_mtp,
-  'nfs': enable_nfs,
-  'onedrive': enable_onedrive,
-  'sftp': enable_sftp,
-  'smb': enable_samba,
-  'udisks2': enable_udisks2,
-  'wsdd': enable_wsdd,
-}, section: 'Backends')
-
-summary({
-  'bluray': enable_bluray,
-  'fuse': enable_fuse,
-  'gcr': enable_gcr,
-  'gcrypt': enable_gcrypt,
-  'gudev': enable_gudev,
-  'keyring': enable_keyring,
-  'logind': enable_logind,
-  'libusb': enable_libusb,
-}, section: 'Dependencies')
+if host_machine.system().contains('linux')
+  summary({
+    'systemduserunitdir': systemd_systemduserunitdir,
+    'tmpfilesdir': systemd_tmpfilesdir,
+    'privileged_group': privileged_group,
+  }, section: 'Configuration')
+else
+  summary({
+  }, section: 'Configuration')
+endif
+
+if host_machine.system().contains('linux')
+  summary({
+    'admin': enable_admin,
+    'afc': enable_afc,
+    'afp': enable_afp,
+    'archive': enable_archive,
+    'burn': enable_burn,
+    'cdda': enable_cdda,
+    'dnssd': enable_dnssd,
+    'goa': enable_goa,
+    'google': enable_google,
+    'gphoto2': enable_gphoto2,
+    'http': enable_http,
+    'mtp': enable_mtp,
+    'nfs': enable_nfs,
+    'onedrive': enable_onedrive,
+    'sftp': enable_sftp,
+    'smb': enable_samba,
+    'udisks2': enable_udisks2,
+    'wsdd': enable_wsdd,
+  }, section: 'Backends')
+else
+  summary({
+    'afp': enable_afp,
+    'archive': enable_archive,
+    'burn': enable_burn,
+    'dnssd': enable_dnssd,
+    'goa': enable_goa,
+    'google': enable_google,
+    'http': enable_http,
+    'nfs': enable_nfs,
+    'onedrive': enable_onedrive,
+    'sftp': enable_sftp,
+    'wsdd': enable_wsdd,
+  }, section: 'Backends')
+endif
+
+if host_machine.system().contains('linux')
+  summary({
+    'bluray': enable_bluray,
+    'fuse': enable_fuse,
+    'gcr': enable_gcr,
+    'gcrypt': enable_gcrypt,
+    'gudev': enable_gudev,
+    'keyring': enable_keyring,
+    'logind': enable_logind,
+  '  libusb': enable_libusb,
+  }, section: 'Dependencies')
+else
+  summary({
+    'bluray': enable_bluray,
+    'gcr': enable_gcr,
+    'gcrypt': enable_gcrypt,
+    'keyring': enable_keyring,
+  }, section: 'Dependencies')
+endif
 
 summary({
   'deprecated_apis': enable_deprecated_apis,
Index: gvfs-1.56.1/metadata/meson.build
===================================================================
--- gvfs-1.56.1.orig/metadata/meson.build
+++ gvfs-1.56.1/metadata/meson.build
@@ -2,18 +2,20 @@ dbus_service = gvfs_namespace + '.Metada
 dbus_exec = 'gvfsd-metadata'
 dbus_systemd_service = ''
 
-if install_systemd_systemduserunitdir
-  service = 'gvfs-metadata.service'
+if host_machine.system().contains('linux')
+  if install_systemd_systemduserunitdir
+    service = 'gvfs-metadata.service'
+
+    configure_file(
+      input: service + '.in',
+      output: '@BASENAME@',
+      configuration: service_conf,
+      install: true,
+      install_dir: systemd_systemduserunitdir,
+    )
 
-  configure_file(
-    input: service + '.in',
-    output: '@BASENAME@',
-    configuration: service_conf,
-    install: true,
-    install_dir: systemd_systemduserunitdir,
-  )
-
-  dbus_systemd_service = 'SystemdService=' + service
+    dbus_systemd_service = 'SystemdService=' + service
+  endif
 endif
 
 dbus_service_conf = {
@@ -74,8 +76,10 @@ libmetadata_dep = declare_dependency(
 
 deps = [libmetadata_dep]
 
-if enable_gudev
-  deps += gudev_dep
+if host_machine.system().contains('linux')
+  if enable_gudev
+    deps += gudev_dep
+  endif
 endif
 
 executable(
Index: gvfs-1.56.1/monitor/meson.build
===================================================================
--- gvfs-1.56.1.orig/monitor/meson.build
+++ gvfs-1.56.1/monitor/meson.build
@@ -3,24 +3,32 @@ subdir('proxy')
 # [[service name suffix, install monitor test data]]
 monitors = {}
 
-if enable_afc
-  monitors += {'Afc': true}
+if host_machine.system().contains('linux')
+  if enable_afc
+    monitors += {'Afc': true}
+  endif
 endif
 
 if enable_goa
   monitors += {'Goa': false}
 endif
 
-if enable_gphoto2
-  monitors += {'GPhoto2': true}
+if host_machine.system().contains('linux')
+  if enable_gphoto2
+    monitors += {'GPhoto2': true}
+  endif
 endif
 
-if enable_mtp
-  monitors += {'MTP': false}
+if host_machine.system().contains('linux')
+  if enable_mtp
+    monitors += {'MTP': false}
+  endif
 endif
 
-if enable_udisks2
-  monitors += {'UDisks2': true}
+if host_machine.system().contains('linux')
+  if enable_udisks2
+    monitors += {'UDisks2': true}
+  endif
 endif
 
 monitors_test_data = []
@@ -31,20 +39,22 @@ foreach monitor, monitor_test: monitors
   dbus_exec = 'gvfs-@0@-volume-monitor'.format(monitor_name)
   dbus_systemd_service = ''
 
-  if install_systemd_systemduserunitdir
-    service = dbus_exec + '.service'
-
-    configure_file(
-      input: monitor_name / service + '.in',
-      output: '@BASENAME@',
-      configuration: service_conf,
-      install: true,
-      install_dir: systemd_systemduserunitdir,
-    )
+  if host_machine.system().contains('linux')
+    if install_systemd_systemduserunitdir
+      service = dbus_exec + '.service'
+
+      configure_file(
+        input: monitor_name / service + '.in',
+        output: '@BASENAME@',
+        configuration: service_conf,
+        install: true,
+        install_dir: systemd_systemduserunitdir,
+      )
 
-    dbus_systemd_service = 'SystemdService=' + service
+      dbus_systemd_service = 'SystemdService=' + service
+    endif
   endif
-
+  
   monitor_data = files(monitor_name / monitor_name + '.monitor')
 
   install_data(
--- a/debian/rules	2024-12-15 19:54:18.000000000 +0100
+++ b/debian/rules	2024-12-15 19:54:02.000000000 +0100
@@ -50,7 +50,7 @@
 override_dh_link-arch:
 	dh_link -a
 	for pkg in gvfs-backends gvfs-daemons gvfs-fuse; do \
-	  ( mkdir -p debian/$$pkg/usr/lib/gvfs; cd debian/$$pkg/usr/lib/gvfs; ln -s ../../libexec/* . ); \
+	  ( mkdir -p debian/$$pkg/usr/lib/gvfs; cd debian/$$pkg/usr/lib/gvfs; ln -sf ../../libexec/* . ); \
 	done
 
 override_dh_install:
@@ -64,6 +64,9 @@
 override_dh_shlibdeps:
 	dh_shlibdeps -Lgvfs-libs -l/usr/lib/$(DEB_HOST_MULTIARCH)/gvfs
 
+override_dh_missing:
+	dh_missing --list-missing
+
 override_dh_auto_test:
 	echo "Skipping testsuite as it's better run as an autopkgtest with machine isolation"
 

Reply via email to