#
# spec file for package gvfs
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define with_udisks2 1
%define with_cdda 1

Name:           gvfs
Version:        1.28.2
Release:        0
Summary:        VFS functionality for GLib
License:        LGPL-2.0+
Group:          Development/Libraries/C and C++
Url:            http://www.gnome.org
Source0:        http://download.gnome.org/sources/gvfs/1.28/%{name}-%{version}.tar.xz
Source99:       baselibs.conf
# PATCH-FEATURE-SLE gvfs-nvvfs.patch ksamrat@novell.com -- Provides gvfs backend for novell nautilus plugin
Patch5:         gvfs-nvvfs.patch
# PATCH-FEATURE-SLE gvfs-nds.patch ksamrat@novell.com -- Provides NDS browsing for nautilus
Patch6:         gvfs-nds.patch
# needed for patches 5 and 6
BuildRequires:  autoconf
BuildRequires:  docbook-xsl-stylesheets
BuildRequires:  fuse-devel
BuildRequires:  intltool
BuildRequires:  libarchive-devel
BuildRequires:  libavahi-glib-devel
%if %{with_cdda}
BuildRequires:  pkgconfig(libcdio_paranoia) >= 0.78.2
%endif
BuildRequires:  libgcrypt-devel
%if !%{with_udisks2}
BuildRequires:  libgdu-devel
%endif
BuildRequires:  libgphoto2-devel
BuildRequires:  libimobiledevice-devel >= 1.1.5
BuildRequires:  libsoup-devel >= 2.34.0
BuildRequires:  libtool
BuildRequires:  pkg-config
BuildRequires:  translation-update-upstream
BuildRequires:  xsltproc
BuildRequires:  pkgconfig(gcr-base-3)
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(gio-unix-2.0)
BuildRequires:  pkgconfig(glib-2.0) >= 2.45.7
BuildRequires:  pkgconfig(goa-1.0) >= 3.17.1
BuildRequires:  pkgconfig(gobject-2.0)
BuildRequires:  pkgconfig(gtk+-3.0) => 3.0
BuildRequires:  pkgconfig(gudev-1.0) >= 147
BuildRequires:  pkgconfig(libbluray)
BuildRequires:  pkgconfig(libgdata) >= 0.17.3
BuildRequires:  pkgconfig(libmtp) >= 1.1.5
%if 0%{?is_opensuse}
BuildRequires:  pkgconfig(libnfs)
%endif
BuildRequires:  pkgconfig(libsecret-unstable)
BuildRequires:  pkgconfig(libsystemd)
BuildRequires:  pkgconfig(smbclient)
%if %{with_udisks2}
BuildRequires:  pkgconfig(udisks2) >= 1.97
%endif
Recommends:     %{name}-lang
Recommends:     gvfs-backends
Recommends:     gvfs-common
Recommends:     gvfs-fuse
# The library gvfscommon was converted to a private library and is not used outside of gvfs
Obsoletes:      libgvfscommon0 <= %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%glib2_gio_module_requires
%{?systemd_requires}

%description
VFS functionality for GLib.

%package backend-afc
Summary:        VFS functionality for GLib -- iPod / iPhone Support
License:        LGPL-2.0+
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}

%description backend-afc
This package provides a gvfs backend that supports iPod / iPhone devices.

%package backend-samba
Summary:        VFS functionality for GLib -- Samba Support
License:        LGPL-2.0+
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       %{name}-backends = %{version}
Supplements:    packageand(%{name}:%(rpm -q --qf "%%{name}" -f $(readlink -f %{_libdir}/libsmbclient.so)))
%glib2_gsettings_schema_requires

%description backend-samba
This package provides a gvfs backend that supports Samba.

%package backends
Summary:        VFS functionality for GLib
License:        LGPL-2.0+ and GPL-3.0
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Recommends:     gvfs-backend-afc
%if %{with_udisks2}
Recommends:     udisks2
%endif
%glib2_gsettings_schema_requires

%description backends
VFS functionality for GLib.

%package fuse
Summary:        VFS functionality for GLib
License:        LGPL-2.0+
Group:          System/Filesystems
Requires:       %{name} = %{version}
Requires:       fuse

%description fuse
VFS functionality for GLib.

%package devel
Summary:        VFS functionality for GLib
License:        LGPL-2.0+
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}

%description devel
VFS functionality for GLib.

%lang_package
%prep
%setup -q
translation-update-upstream
%patch5 -p1
%patch6 -p1

%build
# needed for patches 5 and 6
autoreconf
%configure \
    --libexecdir=%{_libexecdir}/%{name} \
%if %{with_udisks2}
    --enable-udisks2 \
    --disable-gdu \
%else
    --disable-udisks2 \
    --enable-gdu \
%endif
    --disable-static
make

%install
%make_install
find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%find_lang %{name}

%post
%glib2_gio_module_post

%postun
%glib2_gio_module_postun

%post backends
%glib2_gsettings_schema_post

%postun backends
%glib2_gsettings_schema_postun

%post backend-samba
%glib2_gsettings_schema_post

%postun backend-samba
%glib2_gsettings_schema_postun

%post fuse
%tmpfiles_create gvfsd-fuse-tmpfiles.conf

%files
%defattr(-, root, root)
%doc AUTHORS NEWS README
%{_bindir}/gvfs-*
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/mounts
%dir %{_datadir}/%{name}/remote-volume-monitors
%{_libdir}/gio/modules/*.so
%dir %{_libdir}/gvfs
%{_libdir}/gvfs/libgvfscommon.so
%{_libdir}/gvfs/libgvfsdaemon.so
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/gvfsd
%{_datadir}/dbus-1/services/org.gtk.vfs.Daemon.service
%{_libexecdir}/%{name}/gvfsd-metadata
%{_datadir}/dbus-1/services/org.gtk.vfs.Metadata.service
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/
%{_mandir}/man1/gvfs-*.1%{?ext_man}
%{_mandir}/man1/gvfsd.1%{?ext_man}
%{_mandir}/man1/gvfsd-metadata.1%{?ext_man}
%{_mandir}/man7/gvfs.7%{?ext_man}
%{_userunitdir}/gvfs-daemon.service
%{_userunitdir}/gvfs-metadata.service

%files fuse
%defattr(-, root, root)
%{_libexecdir}/%{name}/gvfsd-fuse
%dir %{_libexecdir}/tmpfiles.d
%{_libexecdir}/tmpfiles.d/gvfsd-fuse-tmpfiles.conf
%{_mandir}/man1/gvfsd-fuse.1%{?ext_man}

%files backend-afc
%defattr(-, root, root)
%{_libexecdir}/%{name}/gvfs-afc-volume-monitor
%{_datadir}/dbus-1/services/org.gtk.vfs.AfcVolumeMonitor.service
%{_userunitdir}/gvfs-afc-volume-monitor.service
%{_datadir}/%{name}/remote-volume-monitors/afc.monitor
%{_libexecdir}/%{name}/gvfsd-afc
%{_datadir}/%{name}/mounts/afc.mount

%files backend-samba
%defattr(-, root, root)
%{_libexecdir}/%{name}/gvfsd-smb
%{_datadir}/%{name}/mounts/smb.mount
%{_libexecdir}/%{name}/gvfsd-smb-browse
%{_datadir}/%{name}/mounts/smb-browse.mount
# GSettings schemas & conversion data
# Those schemas are used gvfsd-smb
%{_datadir}/glib-2.0/schemas/org.gnome.system.smb.gschema.xml
%{_datadir}/GConf/gsettings/gvfs-smb.convert

%files backends
%defattr(-, root, root)
%if %{with_udisks2}
%doc monitor/udisks2/what-is-shown.txt
%{_datadir}/dbus-1/services/org.gtk.vfs.UDisks2VolumeMonitor.service
%{_datadir}/%{name}/remote-volume-monitors/udisks2.monitor
%{_libexecdir}/%{name}/gvfs-udisks2-volume-monitor
%{_userunitdir}/gvfs-udisks2-volume-monitor.service
%else
%{_libexecdir}/%{name}/gvfs-gdu-volume-monitor
%{_datadir}/dbus-1/services/org.gtk.Private.GduVolumeMonitor.service
%{_datadir}/%{name}/remote-volume-monitors/gdu.monitor
%endif
%{_libexecdir}/%{name}/gvfs-gphoto2-volume-monitor
%{_userunitdir}/gvfs-gphoto2-volume-monitor.service
%{_datadir}/dbus-1/services/org.gtk.vfs.GPhoto2VolumeMonitor.service
%{_datadir}/%{name}/remote-volume-monitors/gphoto2.monitor
%{_libexecdir}/%{name}/gvfsd-afp
%{_datadir}/%{name}/mounts/afp.mount
%{_libexecdir}/%{name}/gvfsd-afp-browse
%{_datadir}/%{name}/mounts/afp-browse.mount
%{_libexecdir}/%{name}/gvfsd-archive
%{_datadir}/%{name}/mounts/archive.mount
%{_libexecdir}/%{name}/gvfsd-burn
%{_datadir}/%{name}/mounts/burn.mount
%if %{with_cdda}
%{_libexecdir}/%{name}/gvfsd-cdda
%{_datadir}/%{name}/mounts/cdda.mount
%endif
%{_libexecdir}/%{name}/gvfsd-computer
%{_datadir}/%{name}/mounts/computer.mount
%{_libexecdir}/%{name}/gvfsd-dav
%{_datadir}/%{name}/mounts/dav.mount
%{_datadir}/%{name}/mounts/dav+sd.mount
%{_libexecdir}/%{name}/gvfsd-dnssd
%{_datadir}/%{name}/mounts/dns-sd.mount
%{_libexecdir}/%{name}/gvfsd-ftp
%{_datadir}/%{name}/mounts/ftp.mount
%{_datadir}/%{name}/mounts/ftps.mount
%{_libexecdir}/%{name}/gvfsd-google
%{_datadir}/%{name}/mounts/google.mount
%{_libexecdir}/%{name}/gvfsd-gphoto2
%{_datadir}/%{name}/mounts/gphoto2.mount
%{_libexecdir}/%{name}/gvfsd-http
%{_datadir}/%{name}/mounts/http.mount
%{_libexecdir}/%{name}/gvfs-goa-volume-monitor
%{_userunitdir}/gvfs-goa-volume-monitor.service
%{_datadir}/%{name}/remote-volume-monitors/goa.monitor
%{_datadir}/dbus-1/services/org.gtk.vfs.GoaVolumeMonitor.service
%{_libexecdir}/%{name}/gvfsd-localtest
%{_datadir}/%{name}/mounts/localtest.mount
%{_libexecdir}/%{name}/gvfsd-mtp
%{_libexecdir}/%{name}/gvfs-mtp-volume-monitor
%{_userunitdir}/gvfs-mtp-volume-monitor.service
%{_datadir}/%{name}/remote-volume-monitors/mtp.monitor
%{_datadir}/dbus-1/services/org.gtk.vfs.MTPVolumeMonitor.service
%{_datadir}/%{name}/mounts/mtp.mount
%{_libexecdir}/%{name}/gvfsd-nds
%{_datadir}/%{name}/mounts/nds.mount
%{_libexecdir}/%{name}/gvfsd-network
%{_datadir}/%{name}/mounts/network.mount
%if 0%{?is_opensuse}
%{_libexecdir}/%{name}/gvfsd-nfs
%{_datadir}/%{name}/mounts/nfs.mount
%endif
%{_libexecdir}/%{name}/gvfsd-nvvfs
%{_datadir}/%{name}/mounts/nvvfs.mount
%{_libexecdir}/%{name}/gvfsd-recent
%{_datadir}/%{name}/mounts/recent.mount
%{_libexecdir}/%{name}/gvfsd-sftp
%{_datadir}/%{name}/mounts/sftp.mount
# gvfsd-trash is GPLv3 because of trashlib.
%{_libexecdir}/%{name}/gvfsd-trash
%{_datadir}/%{name}/mounts/trash.mount
# GSettings schemas & conversion data
# Those schemas are used by gvfsd-network
%{_datadir}/glib-2.0/schemas/org.gnome.system.dns_sd.gschema.xml
%{_datadir}/glib-2.0/schemas/org.gnome.system.gvfs.enums.xml
%dir %{_datadir}/GConf
%dir %{_datadir}/GConf/gsettings
%{_datadir}/GConf/gsettings/gvfs-dns-sd.convert

%files devel
%defattr(-, root, root)
%{_includedir}/gvfs-client

%files lang -f %{name}.lang

%changelog