Name: libfm
Summary: A glib/gio-based lib used to develop file managers
Summary(ja): ファイルマネージャー開発に用いられる glib/gio ベースのライブラリー
Version: 1.2.4
Release: 1%{?_dist_release}
License: GPLv2+
Group: System Environment/Libraries
URL: http://sourceforge.net/projects/pcmanfm/
Source0: %{name}-%{version}.tar.xz
Patch0: libfm_customize.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: autoconf automake
BuildRequires: dbus-glib-devel
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: gettext
BuildRequires: gvfs-devel
BuildRequires: gtk-doc
BuildRequires: gtk2-devel >= 2.16.0
BuildRequires: glib2-devel >= 2.26.0
BuildRequires: intltool >= 0.40
BuildRequires: menu-cache-devel >= 0.3.2
BuildRequires: pango-devel
BuildRequires: perl-XML-Parser
BuildRequires: pkgconfig
BuildRequires: udisks-devel
BuildRequires: vala

Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

Vendor: Project Vine
Distribution: Vine Linux
Packager: kudoh


%description
A glib/gio-based lib used to develop file managers providing some
file management utilities and related-widgets missing in gtk+/glib.

%package        gtk
Summary:        File manager-related GTK+ widgets of %{name}
Summary(ja):    ファイルマネージャーに関連する %{name} の GTK+ ウィジェット
Group:          System Environment/Libraries
Requires:       %{name} = %{version}-%{release}
Requires:       gvfs

%description    gtk
libfm is a GIO-based library used to develop file manager-like programs. It is
developed as the core of next generation PCManFM and takes care of all file-
related operations such as copy & paste, drag & drop, file associations or 
thumbnail support. By utilizing glib/gio and gvfs, libfm can access remote 
file systems supported by gvfs.

This package provides useful file manager-related GTK+ widgets.


%package        gtk-utils
Summary:        GTK+ related utility package for %{name}
Group:          User Interface/Desktops
Requires:       %{name}-gtk%{?isa} = %{version}-%{release}
Obsoletes:      lxshortcut < 0.1.3
Provides:       lxshortcut = %{version}-%{release}
Provides:       lxshortcut%{?_isa} = %{version}-%{release}

%description    gtk-utils
This package contains some GTK+ related utility files for
%{name}.


%package        devel
Summary:        Development files for %{name}
Summary(ja):    %{name} の開発ファイル
Group:          Development/Libraries
Requires:       %{name} = %{version}-%{release}

%description    devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.


%package        gtk-devel
Summary:        Development files for %{name}-gtk
Summary(ja):    %{name}-gtk の開発ファイル
Group:          Development/Libraries
Requires:       %{name}-gtk = %{version}-%{release}
Requires:       %{name}-devel = %{version}-%{release}

%description    gtk-devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}-gtk.


%package        devel-docs
Summary:        Development documation for %{name}
Summary(ja):    %{name} の開発ドキュメント
Group:          Development/Libraries

%description    devel-docs
This package containg development documentation files for %{name}.

%prep
%setup -qn libfm-%{version}
%patch0 -p1

# treak rpath
sed -i.libdir_syssearch -e \
  '/sys_lib_dlsearch_path_spec/s|/usr/lib |/usr/lib /usr/lib64 /lib /lib64 |' \
  configure

%build
%configure --enable-static=no --enable-udisks --enable-gtk-doc
make -C po -j1 GMSGFMT="msgfmt --statistics"
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'

find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/libfm-gtk3.pc

%find_lang %{name}

echo '%%defattr(-,root,root,-)' > base-header.files
echo '%%defattr(-,root,root,-)' > gtk-header.files
for f in $RPM_BUILD_ROOT%{_includedir}/%name/%name/*.h
do
  bf=$(basename $f)
  for dir in base job
  do
    if [ -f src/$dir/$bf ]
    then
      echo %_includedir/%name/%name/$bf >> base-header.files
    fi
  done
  for dir in gtk
  do
    if [ -f src/$dir/$bf ]
    then
      echo %_includedir/%name/%name/$bf >> gtk-header.files
    fi
  done
done

/usr/lib/rpm/check-rpaths

%check
desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop

%clean
rm -fr %{buildroot}

%pre devel
# Directory -> symlink
if [ -d %{_includedir}/libfm ] ; then
  rm -rf %{_includedir}/libfm
fi

%post
/sbin/ldconfig
update-mime-database %{_datadir}/mime &> /dev/null || :


%postun
/sbin/ldconfig
update-mime-database %{_datadir}/mime &> /dev/null || :


%post gtk -p /sbin/ldconfig
%postun gtk -p /sbin/ldconfig

%files -f %{name}.lang
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS README
%dir %{_sysconfdir}/xdg/libfm/
%config(noreplace) %{_sysconfdir}/xdg/libfm/libfm.conf
%{_libdir}/%{name}.so.4*
%{_libdir}/%{name}-extra.so.4*
%dir %{_libdir}/libfm
%dir %{_libdir}/libfm/modules
%{_libdir}/libfm/modules/*
%{_datadir}/mime/packages/libfm.xml


%files gtk
%defattr(-,root,root,-)
%{_libdir}/%{name}-gtk.so.*
%{_datadir}/libfm/
%{_datadir}/applications/libfm-pref-apps.desktop
%{_mandir}/man1/libfm-pref-apps.1.gz


%files gtk-utils
%defattr(-,root,root,-)
%{_mandir}/man1/libfm-pref-apps.1.*
%{_mandir}/man1/lxshortcut.1.*
%{_bindir}/libfm-pref-apps
%{_bindir}/lxshortcut
%{_datadir}/applications/libfm-pref-apps.desktop
%{_datadir}/applications/lxshortcut.desktop


%files devel -f base-header.files
%defattr(-,root,root,-)
%doc TODO
%{_includedir}/libfm
%dir %{_includedir}/libfm-1.0/
%{_includedir}/libfm-1.0/*
%{_libdir}/%{name}.so
%{_libdir}/%{name}-extra.so
%{_libdir}/pkgconfig/libfm.pc
%{_libdir}/pkgconfig/libfm-extra.pc


%files gtk-devel -f gtk-header.files
%defattr(-,root,root,-)
%{_includedir}/libfm-1.0/fm-gtk.h
%{_libdir}/%{name}-gtk.so
%{_libdir}/pkgconfig/libfm-gtk.pc


%files devel-docs
%defattr(-,root,root,-)
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%{_datadir}/gtk-doc/html/%{name}

%changelog
* Wed Apr 20 2016 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.2.4-1
- new upstream release

* Sat Sep 27 2014 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.2.2.1-1
- new upstream release
- changed archive type gz to xz
- added subpackage -gtk-utils
  - added Obsoletes: lxshortcut < 0.1.3, Provides: lxshortcut

* Sun Sep 15 2013 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.1.2.2-1
- new upstream release

* Sat Nov 17 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> 1.1.0-2
- rebuilt with menu-cache-0.4.1

* Sat Nov 10 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.1.0-1
- new upstream release
- recreated patch0
- stopped autoreconf --force --install and intltoolize --force
- added %%configure option --enable-gtk-doc
- runnning desktop-file-validate in %%check

* Sat Sep 22 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.0.1-1
- new upstream release
- run autoreconf --force --install and intltoolize --force
- aded BuildRequires: vala

* Tue Aug 14 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.0-2
- new upstream release
- added BuildRequires: dbus-glib-devel
- changed BuildRequires: glib2-devel >= 2.24.0 to 2.26.0
- fixed BuildRequires: udisks to udisks-devel
- added %%configure option --enable-udisks (experimental)

* Tue Jul 10 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> - 1.0rc1-1
- new upstream release

* Sun Feb 05 2012 Toshiharu Kudoh <toshi.kd2@gmail.com> - 0.1.17
- initial build for VineSeed

* Sat Jan 30 2010 Oliver Burger <rpm@mandrivauser.de> 1.2-0.1git20100129.1mud2010.0
- initial package for Mandriva Linux