-Name: opensaml
-Summary: Open source SAML library
-Version: @-VERSION-@
+Name: @PACKAGE_NAME@
+Version: @PACKAGE_VERSION@
Release: 1
-Group: System Environment/Libraries
+Summary: OpenSAML SAML library
+Group: Development/Libraries/C and C++
Vendor: Internet2
License: Apache 2.0
URL: http://www.opensaml.org/
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
-
-BuildRequires: xerces%{?xercesver}-c-devel >= 2.6.1
-BuildRequires: xml-security-c-devel >= 1.3.1
-BuildRequires: log4cpp-devel >= 0.3.5
-BuildRequires: xmltooling-devel, cxxtest
+%if 0%{?suse_version} > 1030 && 0%{?suse_version} < 1130
+BuildRequires: libXerces-c-devel >= 2.8.0
+%else
+BuildRequires: libxerces-c-devel >= 2.8.0
+%endif
+BuildRequires: libxml-security-c-devel >= 1.4.0
+BuildRequires: libxmltooling-devel >= 1.4
+%{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
+%{!?_with_log4cpp:BuildRequires: liblog4shib-devel}
+BuildRequires: gcc-c++, boost-devel >= 1.32.0
+%if 0%{?suse_version} > 1000
+BuildRequires: pkg-config
+%endif
+%{!?_without_doxygen:BuildRequires: doxygen}
+%if "%{_vendor}" == "redhat"
+BuildRequires: redhat-rpm-config
+%endif
+
+%if "%{_vendor}" == "suse"
+%define pkgdocdir %{_docdir}/%{name}
+%else
+%define pkgdocdir %{_docdir}/%{name}-%{version}
+%endif
%description
OpenSAML is an open source implementation of the OASIS Security Assertion
Markup Language Specification. It contains a set of open source C++ classes
that support the SAML 1.0, 1.1, and 2.0 specifications.
-This package contains the saml runtime library.
+%package -n @PACKAGE_NAME@-bin
+Summary: Utilities for OpenSAML library
+Group: Development/Libraries/C and C++
+
+%description -n @PACKAGE_NAME@-bin
+OpenSAML is an open source implementation of the OASIS Security Assertion
+Markup Language Specification. It contains a set of open source C++ classes
+that support the SAML 1.0, 1.1, and 2.0 specifications.
+
+This package contains the utility programs.
+
+%package -n libsaml8
+Summary: OpenSAML SAML library
+Group: Development/Libraries/C and C++
+Provides: @PACKAGE_NAME@ = %{version}-%{release}
+Obsoletes: @PACKAGE_NAME@ < %{version}-%{release}
-%package devel
-Summary: OpenSAML development Headers
-Group: Development/Libraries
-Requires: %{name} = %{version}
+%description -n libsaml8
+OpenSAML is an open source implementation of the OASIS Security Assertion
+Markup Language Specification. It contains a set of open source C++ classes
+that support the SAML 1.0, 1.1, and 2.0 specifications.
-%description devel
+This package contains just the shared library.
+
+%package -n libsaml-devel
+Summary: OpenSAML development Headers
+Group: Development/Libraries/C and C++
+Requires: libsaml8 = %{version}-%{release}
+Provides: @PACKAGE_NAME@-devel = %{version}-%{release}
+Obsoletes: @PACKAGE_NAME@-devel < %{version}-%{release}
+%if 0%{?suse_version} > 1030 && 0%{?suse_version} < 1130
+BuildRequires: libXerces-c-devel >= 2.8.0
+%else
+BuildRequires: libxerces-c-devel >= 2.8.0
+%endif
+Requires: libxml-security-c-devel >= 1.4.0
+Requires: libxmltooling-devel >= 1.4
+%{?_with_log4cpp:Requires: liblog4cpp-devel >= 1.0}
+%{!?_with_log4cpp:Requires: liblog4shib-devel}
+
+%description -n libsaml-devel
OpenSAML is an open source implementation of the OASIS Security Assertion
Markup Language Specification. It contains a set of open source C++ classes
that support the SAML 1.0, 1.1, and 2.0 specifications.
-This package contains the headers and other necessary files to build
-applications or libraries that use or extend the saml library.
+This package includes files needed for development with OpenSAML.
+
+%package -n @PACKAGE_NAME@-schemas
+Summary: OpenSAML schemas and catalog
+Group: Development/Libraries/C and C++
-%package docs
-Summary: OpenSAML API Documentation
-Group: Development/Libraries
-Requires: %{name} = %{version}
+%description -n @PACKAGE_NAME@-schemas
+OpenSAML is an open source implementation of the OASIS Security Assertion
+Markup Language Specification. It contains a set of open source C++ classes
+that support the SAML 1.0, 1.1, and 2.0 specifications.
-%description docs
-OpenSAML Library API documentation generated by doxygen.
+This package includes XML schemas and related files.
%prep
%setup -q
%build
%configure %{?saml_options}
-make
+%{__make}
%install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-rm -rf _docs
-make install DESTDIR=$RPM_BUILD_ROOT
-mv $RPM_BUILD_ROOT/usr/doc/%{name} _docs
+%{__make} install DESTDIR=$RPM_BUILD_ROOT pkgdocdir=%{pkgdocdir}
+# Don't package unit tester if present.
+%{__rm} -f $RPM_BUILD_ROOT/%{_bindir}/samltest
-%check || :
-make check
+%check
+%{__make} check
%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
+[ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
-%post
-/sbin/ldconfig
+%ifnos solaris2.8 solaris2.9 solaris2.10
+%post -n libsaml8 -p /sbin/ldconfig
+%endif
-%postun
-/sbin/ldconfig
+%ifnos solaris2.8 solaris2.9 solaris2.10
+%postun -n libsaml8 -p /sbin/ldconfig
+%endif
-%files
+%files -n @PACKAGE_NAME@-bin
+%defattr(-,root,root,-)
+%{_bindir}/samlsign
+
+%files -n libsaml8
%defattr(-,root,root,-)
-%doc _docs/LICENSE.txt _docs/NOTICE.txt
%{_libdir}/libsaml.so.*
-%dir %{_datadir}/xml/%{name}
-%{_datadir}/xml/%{name}
-%exclude %{_bindir}/samltest
-%files devel
+%files -n @PACKAGE_NAME@-schemas
%defattr(-,root,root,-)
-%{_includedir}
-%{_libdir}/libsaml.so
+%dir %{_datadir}/xml/@PACKAGE_NAME@
+%{_datadir}/xml/@PACKAGE_NAME@/*
-%files docs
-%defattr(644,root,root,755)
-%doc _docs/api
+%files -n libsaml-devel
+%defattr(-,root,root,-)
+%{_includedir}/*
+%{_libdir}/*.so
+%{_libdir}/pkgconfig/@PACKAGE_NAME@.pc
+%doc %{pkgdocdir}
%changelog
-* Sun Apr 16 2006 Scott Cantor <cantor.2@osu.edu> - 2.0-1
-- First SPEC file for 2.0
+* Wed Dec 14 2011 Scott Cantor <cantor.2@osu.edu> - 2.5-1
+- Update lib package number.
+- Add boost-devel dependency.
+
+* Tue Oct 26 2010 Scott Cantor <cantor.2@osu.edu> - 2.4-1
+- Update version
+- Add pkg-config support.
+- Sync package names for side by side install.
+- Adjust Xerces dependency name and Group setting
+- Split out schemas into separate subpackage
+
+* Mon Aug 31 2009 Scott Cantor <cantor.2@osu.edu> - 2.3-1
+- Bump soname for SUSE packaging.
+
+* Sat Aug 8 2009 Scott Cantor <cantor.2@osu.edu> - 2.2.1-1
+- SuSE conventions
+- Stop packaging unit tester
+
+* Wed Dec 3 2008 Scott Cantor <cantor.2@osu.edu> - 2.2-1
+- Bumping for minor update.
+- Fixing SUSE Xerces dependency name.
+
+* Tue Jul 1 2008 Scott Cantor <cantor.2@osu.edu> - 2.1-1
+- Bumping for minor update.
+
+* Mon Mar 17 2008 Scott Cantor <cantor.2@osu.edu> - 2.0-6
+- Official release.
+
+* Fri Jan 18 2008 Scott Cantor <cantor.2@osu.edu> - 2.0-5
+- Release candidate 1.
+
+* Thu Nov 08 2007 Scott Cantor <cantor.2@osu.edu> - 2.0-4
+- Second public beta.
+
+* Thu Aug 16 2007 Scott Cantor <cantor.2@osu.edu> - 2.0-3
+- First public beta.
+
+* Fri Jul 13 2007 Scott Cantor <cantor.2@osu.edu> - 2.0-2
+- Second alpha.
+
+* Sun Apr 16 2007 Scott Cantor <cantor.2@osu.edu> - 2.0-1
+- First SPEC file for 2.0.