File fam.spec of Package fam

#
# spec file for package fam (Version 2.7.0)
#
# Copyright (c) 2010 SUSE LINUX Products 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/
#

# norootforbuild


Name:           fam
BuildRequires:  gcc-c++ help2man
License:        LGPLv2.1+
Group:          System/Daemons
PreReq:         %install_info_prereq sysvinit(portmap) sysvinit(syslog)
# bug437293
%ifarch ppc64
Obsoletes:      fam-64bit
%endif
#
Summary:        File Alteration Monitoring Daemon
Url:            http://oss.sgi.com/projects/fam/
Version:        2.7.0
Release:        143
%define fc_version 0.6.5
Source0:        fam-%{version}.tar.bz2
Source1:        sysconfig.fam
Source2:        init.fam
Source3:        http://fileschanged.sourceforge.net/fileschanged-%fc_version.tar.bz2
Source4:        fam.xinetd
Source5:        baselibs.conf
Patch1:         fam.conf.diff
Patch2:         cleanup.patch
Patch3:         fam-2.6.8-dnotify.patch
Patch5:         fileschanged.diff
Patch8:         fam-h.diff
Patch9:         fam-man.patch
Patch10:        fam-largefile.diff
Patch11:        fam-gcc43.patch
Patch12:        bug-401247_fam_09_fix_leak.patch                                                                 
Patch13:        fam-gcc44.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Fam is a file alteration monitoring service. With it, you can receive
signals when files are created or changed.

This package provides libfam, which is used by KDE and GNOME. It also
provides a tool for the console called fileschanged.

To use fam notifications (it can reduce the network load on NFS
servers, especially if they host user home directories) you need to run
the fam daemon, which can be found in the fam-server package.



Authors:
--------
    Bruce Karsh
    Bob Miller
    SGI corp.
    
    Author of fileschanged command line tool:
    Ben Asselstine <bda@panix.com>

%package devel
Group:          Development/Libraries/C and C++
License:        LGPLv2.1+
Summary:        Include Files and Libraries Mandatory for Development
Provides:       fam:/usr/include/fam.h
Requires:       glibc-devel libstdc++-devel fam = %version

%description devel
Fam is a file alteration monitoring service. This means that you can
receive signals if files are created or changed.

This package provides the files that are needed to compile applications
which use the fam service.



Authors:
--------
    Bruce Karsh
    Bob Miller
    SGI corp.

%package server
Group:          System/Daemons
License:        GPLv2+
Provides:       fam:/etc/fam.conf
Provides:       file_alteration
Requires:       fam portmap
PreReq:         %fillup_prereq %insserv_prereq
Summary:        File Alternation Monitoring Daemon

%description server
fam is a file alternation monitoring service. It provides signals when
files are created or changed.

This package provides the fam daemon and runlevel scripts.



Authors:
--------
    Bruce Karsh
    Bob Miller
    SGI corp.

%prep
%setup -q -n fam-%{version} -b 3
%patch1
%patch2 -p1
%patch3 -p1
%patch8 -p1
%patch9 -p1
%patch10
%patch11
%patch12 -p1
%patch13 -p1
cd ../fileschanged-%fc_version
%patch5

%build
%{?suse_update_config:%{suse_update_config -f . }}
rm -f configure
autoreconf -i -f
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
export CXXFLAGS="$RPM_OPT_FLAGS $CXXFLAGS -fno-strict-aliasing"
%ifnarch hppa
export CFLAGS="$CFLAGS -fstack-protector" 
export CXXFLAGS="$CXXFLAGS -fstack-protector" 
%endif
./configure \
  --prefix=/usr \
  --libdir=%{_libdir} \
  --mandir=/usr/share/man \
  --sysconfdir=/etc
make %{?_smp_mflags}
cd ../fileschanged-%fc_version/
autoreconf -i -f
export LD_LIBRARY_PATH=../../fam-%version/lib/.libs:${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
export CFLAGS="-I../../fam-%version/include/ -L../../fam-%version/lib/.libs/ $CFLAGS"
./configure \
  --prefix=/usr \
  --libdir=%{_libdir} \
  --mandir=/usr/share/man \
  --infodir=/usr/share/info 
make %{?_smp_mflags}

%install
make DESTDIR="$RPM_BUILD_ROOT" install
#
# Install fam init script
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install -m 0744 %SOURCE2 $RPM_BUILD_ROOT/etc/init.d/fam
ln -sf ../../etc/init.d/fam $RPM_BUILD_ROOT/usr/sbin/rcfam
FILLUP_DIR=$RPM_BUILD_ROOT/var/adm/fillup-templates
mkdir -p $FILLUP_DIR
install -m 644 %SOURCE1 $FILLUP_DIR/sysconfig.fam
install -d -m 755 $RPM_BUILD_ROOT/etc/xinetd.d
install -m 644 %SOURCE4 $RPM_BUILD_ROOT/etc/xinetd.d/fam
cd ../fileschanged-%fc_version/
make DESTDIR="$RPM_BUILD_ROOT" install
cd -
rm -rf $RPM_BUILD_ROOT/usr/share/fileschanged
mkdir -p $RPM_BUILD_ROOT/var/run
%find_lang fileschanged

%clean
rm -rf ${RPM_BUILD_ROOT}

%post server
%{fillup_and_insserv -y -n fam fam}

%postun server
%restart_on_update fam
%insserv_cleanup

%preun server
%stop_on_removal fam

%post
/sbin/ldconfig
%install_info --info-dir=%{_infodir} %{_infodir}/fileschanged.info.gz

%postun
/sbin/ldconfig
%install_info_delete --info-dir=%{_infodir} %{_infodir}/fileschanged.info.gz

%files -f fileschanged.lang
%defattr(-,root,root)
%doc COPYING AUTHORS ChangeLog TODO README NEWS
/%{_libdir}/libfam.so.0
/%{_libdir}/libfam.so.0.0.0
%{_bindir}/fileschanged
/%{_mandir}/man1/fileschanged.1.gz
/%{_infodir}/fileschanged.info.gz

%files devel
%defattr(-,root,root)
/usr/include/fam.h
/%{_libdir}/libfam.a
/%{_libdir}/libfam.la
/%{_libdir}/libfam.so
/%{_mandir}/man8/famd.8.gz

%files server
%defattr(-,root,root)
%{_sbindir}/rcfam
%{_sbindir}/famd
%config(noreplace) /etc/fam.conf
/etc/init.d/fam
/%{_mandir}/man3/fam.3.gz
/%{_mandir}/man5/famd.conf.5.gz
/var/adm/fillup-templates/sysconfig.fam
%config(noreplace) /etc/xinetd.d/fam

%changelog
openSUSE Build Service is sponsored by