File ding-libs.spec of Package ding-libs

#
# spec file for package ding-libs
#
# Copyright (c) 2014 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/
#


%global collection_version 0.6.2
%global dhash_version 0.4.3
%global ini_config_version 1.0.0.1
%global path_utils_version 0.2.1
%global ref_array_version 0.1.3
%global basicobjects_version 0.1.0

Name:           ding-libs
Version:        0.3.0.1
Release:        0
Summary:        "Ding is not GLib" assorted utility libraries
License:        GPL-3.0+ and LGPL-3.0+
Group:          Development/Libraries/C and C++
Url:            http://fedorahosted.org/sssd/

#DL-URL:	https://fedorahosted.org/sssd/wiki/Releases
#Git-Clone:	git://git.fedorahosted.org/ding-libs
Source:         https://fedorahosted.org/released/ding-libs/%name-%version.tar.gz
Source2:        https://fedorahosted.org/released/ding-libs/%name-%version.tar.gz.asc
Source3:        %name.keyring
Source4:        baselibs.conf
Patch1:         doxygen-notimestamp.dif
Patch2:         0001-build-add-missing-Requires-to-pkgconfig-file.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

### Build Dependencies ###
BuildRequires:  doxygen
BuildRequires:  m4
BuildRequires:  pkgconfig

%description
Assorted C utility libraries: libcollection, libdhash, libini_config,
librefarray, libpath_utils and libbasicobjects.

##############################################################################
# Path Utils
##############################################################################

%package -n libbasicobjects0
Summary:        Library containing basic objects like dynamic string
License:        GPL-3.0+
Group:          System/Libraries
Version:        %basicobjects_version
Release:        0

%description -n libbasicobjects0
A small library that provides a buffer object.

%package -n libbasicobjects-devel
Summary:        Library containing basic objects like dynamic string
License:        GPL-3.0+
Group:          Development/Libraries/C and C++
Version:        %basicobjects_version
Release:        0
Requires:       libbasicobjects0 = %version

%description -n libbasicobjects-devel
A small library that provides a buffer object.

%post -n libbasicobjects0 -p /sbin/ldconfig

%postun -n libbasicobjects0 -p /sbin/ldconfig

%files -n libbasicobjects0
%defattr(-,root,root)
%_libdir/libbasicobjects.so.0*

%files -n libbasicobjects-devel
%defattr(-,root,root)
%_includedir/simplebuffer.h
%_libdir/libbasicobjects.so
%_libdir/pkgconfig/basicobjects.pc

%package -n libpath_utils1
Summary:        Filesystem Path Utilities
License:        LGPL-3.0+
Group:          System/Libraries
Version:        %{path_utils_version}
Release:        0

%description -n libpath_utils1
Utility functions to manipulate filesystem pathnames

%package -n libpath_utils-devel
Summary:        Development files for libpath_utils
License:        LGPL-3.0+
Group:          Development/Libraries/C and C++
Requires:       libpath_utils1 = %{path_utils_version}
Version:        %{path_utils_version}
Release:        0

%description -n libpath_utils-devel
Utility functions to manipulate filesystem pathnames

%post -n libpath_utils1 -p /sbin/ldconfig

%postun -n libpath_utils1 -p /sbin/ldconfig

%files -n libpath_utils1
%defattr(-,root,root,-)
%{_libdir}/libpath_utils.so.1*

%files -n libpath_utils-devel
%defattr(-,root,root,-)
%doc COPYING COPYING.LESSER
%{_includedir}/path_utils.h
%{_libdir}/libpath_utils.so
%{_libdir}/pkgconfig/path_utils.pc
%doc path_utils/README.path_utils
%doc path_utils/doc/html/

##############################################################################
# dhash
##############################################################################

%package -n libdhash1
Summary:        Dynamic hash table
License:        LGPL-3.0+
Group:          System/Libraries
Version:        %{dhash_version}
Release:        0

%description -n libdhash1
A hash table which will dynamically resize to achieve optimal storage & access
time properties

%package -n libdhash-devel
Summary:        Development files for libdhash
License:        LGPL-3.0+
Group:          Development/Libraries/C and C++
Requires:       libdhash1 = %{dhash_version}
Version:        %{dhash_version}
Release:        0

%description -n libdhash-devel
A hash table which will dynamically resize to achieve optimal storage & access
time properties

%post -n libdhash1 -p /sbin/ldconfig

%postun -n libdhash1 -p /sbin/ldconfig

%files -n libdhash1
%defattr(-,root,root,-)
%{_libdir}/libdhash.so.1*

%files -n libdhash-devel
%defattr(-,root,root,-)
%doc COPYING COPYING.LESSER
%{_includedir}/dhash.h
%{_libdir}/libdhash.so
%{_libdir}/pkgconfig/dhash.pc
%doc dhash/README.dhash
%doc dhash/examples/

##############################################################################
# collection
##############################################################################

%package -n libcollection2
Summary:        Collection data-type for C
License:        LGPL-3.0+
Group:          System/Libraries
Version:        %{collection_version}
Release:        0

%description -n libcollection2
A data-type to collect data in a hierarchical structure for easy iteration
and serialization

%package -n libcollection-devel
Summary:        Development files for libcollection
License:        LGPL-3.0+
Group:          Development/Libraries/C and C++
Requires:       libcollection2 = %{collection_version}
Version:        %{collection_version}
Release:        0

%description -n libcollection-devel
A data-type to collect data in a hierarchical structure for easy iteration
and serialization

%post -n libcollection2 -p /sbin/ldconfig

%postun -n libcollection2 -p /sbin/ldconfig

%files -n libcollection2
%defattr(-,root,root,-)
%{_libdir}/libcollection.so.2*

%files -n libcollection-devel
%defattr(-,root,root,-)
%doc COPYING COPYING.LESSER
%{_includedir}/collection.h
%{_includedir}/collection_tools.h
%{_includedir}/collection_queue.h
%{_includedir}/collection_stack.h
%{_libdir}/libcollection.so
%{_libdir}/pkgconfig/collection.pc
%doc collection/doc/html/

##############################################################################
# ref_array
##############################################################################

%package -n libref_array1
Summary:        A refcounted array for C
License:        GPL-3.0+
Group:          System/Libraries
Version:        %{ref_array_version}
Release:        0

%description -n libref_array1
A dynamically-growing, reference-counted array

%package -n libref_array-devel
Summary:        Development files for libref_array
License:        GPL-3.0+
Group:          Development/Libraries/C and C++
Requires:       libref_array1 = %{ref_array_version}
Version:        %{ref_array_version}
Release:        0

%description -n libref_array-devel
A dynamically-growing, reference-counted array

%post -n libref_array1 -p /sbin/ldconfig

%postun -n libref_array1 -p /sbin/ldconfig

%files -n libref_array1
%defattr(-,root,root,-)
%{_libdir}/libref_array.so.1*

%files -n libref_array-devel
%defattr(-,root,root,-)
%doc COPYING COPYING.LESSER
%{_includedir}/ref_array.h
%{_libdir}/libref_array.so
%{_libdir}/pkgconfig/ref_array.pc
%doc refarray/README.ref_array
%doc refarray/doc/html/

##############################################################################
# ini_config
##############################################################################

%package -n libini_config3
Summary:        INI file parser for C
License:        LGPL-3.0+
Group:          System/Libraries
Version:        %{ini_config_version}
Release:        0

%description -n libini_config3
Library to process config files in INI format into a libcollection data
structure

%package -n libini_config-devel
Summary:        Development files for libini_config
License:        LGPL-3.0+
Group:          Development/Libraries/C and C++
Requires:       libbasicobjects-devel
Requires:       libini_config3 = %{ini_config_version}
Requires:       libref_array-devel
Version:        %{ini_config_version}
Release:        0

%description -n libini_config-devel
Library to process config files in INI format into a libcollection data
structure

%post -n libini_config3 -p /sbin/ldconfig

%postun -n libini_config3 -p /sbin/ldconfig

%files -n libini_config3
%defattr(-,root,root,-)
%{_libdir}/libini_config.so.3*

%files -n libini_config-devel
%defattr(-,root,root,-)
%doc COPYING COPYING.LESSER
%{_includedir}/ini_*.h
%{_libdir}/libini_config.so
%{_libdir}/pkgconfig/ini_config.pc
%doc ini/doc/html/

##############################################################################
# Build steps
##############################################################################

%prep
%{?gpg_verify: %gpg_verify %{S:2}}
%setup -q
%patch -P 1 -P 2 -p1

%build
%configure \
    --disable-static

# ding fails to do the required SONAME changes/symvers tracking, so hack it up.
echo "DING_%version { global: *; };" >ding.map
make %{?_smp_mflags} all docs LDFLAGS="-Wl,--version-script=$PWD/ding.map"

%check
make %{?_smp_mflags} check

%install
make install DESTDIR=$RPM_BUILD_ROOT

# Remove .la files created by libtool
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la

# Remove the example files from the output directory
# We will copy them directly from the source directory
# for packaging
rm -f \
    $RPM_BUILD_ROOT/usr/share/doc/ding-libs/README.* \
    $RPM_BUILD_ROOT/usr/share/doc/ding-libs/examples/dhash_example.c \
    $RPM_BUILD_ROOT/usr/share/doc/ding-libs/examples/dhash_test.c

# Remove document install script. RPM is handling this
rm -f */doc/html/installdox

%changelog