Set fourth file version digit to signify rebuild.
[shibboleth/cpp-xmltooling.git] / xmltooling.spec.in
index 2bf5b3d..b8f5f8d 100644 (file)
@@ -1,18 +1,47 @@
-Name:          xmltooling
-Summary:       Open source XMLTooling library
-Version:       @-VERSION-@
-Release:       5
-Group:         System Environment/Libraries
-Vendor:                Internet2
+Name:          @PACKAGE_NAME@
+Version:       @PACKAGE_VERSION@
+Release:       1
+Summary:       OpenSAML XMLTooling library
+Group:         Development/Libraries/C and C++
+Vendor:                Shibboleth Consortium
 License:       Apache 2.0
 URL:           http://www.opensaml.org/
 License:       Apache 2.0
 URL:           http://www.opensaml.org/
-Source0:       %{name}-%{version}.tar.gz
+Source:                %{name}-%{version}.tar.bz2
 BuildRoot:     %{_tmppath}/%{name}-%{version}-root
 BuildRoot:     %{_tmppath}/%{name}-%{version}-root
-BuildRequires:  xerces%{?xercesver}-c-devel >= 2.8.0
-BuildRequires: xml-security-c-devel >= 1.4.0
-BuildRequires: openssl-devel, curl-devel >= 7.10.6
-%{?_with_log4cpp:BuildRequires:        log4cpp-devel >= 1.0}
-%{!?_with_log4cpp:BuildRequires: log4shib-devel}
+%if 0%{?rhel} >= 7 || 0%{?centos_version} >= 700
+BuildRequires:  xerces-c-devel >= 3.1
+%else
+BuildRequires:  libxerces-c-devel >= 3.1
+%endif
+BuildRequires:  libxml-security-c-devel >= 1.7.3
+%{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
+%{!?_with_log4cpp:BuildRequires: liblog4shib-devel >= 1.0.4}
+BuildRequires: gcc-c++, openssl-devel, boost-devel >= 1.32.0
+%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+BuildRequires: libcurl-openssl-devel >= 7.21.7
+Requires: libcurl-openssl >= 7.21.7
+%else
+BuildRequires: curl-devel >= 7.10.6
+%endif
+%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
+
+# Prevent the RHEL/etc 6+ package from requiring a vanilla libcurl.
+%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%filter_from_requires /libcurl\.so\..*/d
+%filter_setup
+%endif
 
 %description
 The XMLTooling library contains generic XML parsing and processing
 
 %description
 The XMLTooling library contains generic XML parsing and processing
@@ -21,82 +50,153 @@ for declaring element- and type-specific API and implementation
 classes to add value around the DOM, as well as signing and encryption
 support.
 
 classes to add value around the DOM, as well as signing and encryption
 support.
 
-This package contains the xmltooling runtime library.
+%package -n lib@PACKAGE_NAME@6
+Summary:    OpenSAML XMLTooling library
+Group:      Development/Libraries/C and C++
+Provides:   @PACKAGE_NAME@ = %{version}-%{release}
+Obsoletes:  @PACKAGE_NAME@ < %{version}-%{release}
+%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+Requires: libcurl-openssl >= 7.21.7
+%endif
 
 
-%package devel
-Summary: XMLTooling development Headers
-Group: Development/Libraries
-Requires: %{name} = %{version}
+%description -n lib@PACKAGE_NAME@6
+The XMLTooling library contains generic XML parsing and processing
+classes based on the Xerces-C DOM. It adds more powerful facilities
+for declaring element- and type-specific API and implementation
+classes to add value around the DOM, as well as signing and encryption
+support.
 
 
-%description devel
+This package contains just the shared library.
+
+%package -n lib@PACKAGE_NAME@-devel
+Summary:       XMLTooling development Headers
+Group:         Development/Libraries/C and C++
+Requires:      lib@PACKAGE_NAME@6 = %{version}-%{release}
+Provides:      @PACKAGE_NAME@-devel = %{version}-%{release}
+Obsoletes:     @PACKAGE_NAME@-devel < %{version}-%{release}
+%if 0%{?rhel} >= 7 || 0%{?centos_version} >= 700
+Requires:  xerces-c-devel >= 3.1
+%else
+Requires:  libxerces-c-devel >= 3.1
+%endif
+Requires: libxml-security-c-devel >= 1.7.3
+%{?_with_log4cpp:Requires: liblog4cpp-devel >= 1.0}
+%{!?_with_log4cpp:Requires: liblog4shib-devel >= 1.0.4}
+Requires: openssl-devel, boost-devel >= 1.32.0
+%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+Requires: libcurl-openssl-devel >= 7.21.7
+%else
+Requires: curl-devel >= 7.10.6
+%endif
+
+%description -n lib@PACKAGE_NAME@-devel
 The XMLTooling library contains generic XML parsing and processing
 classes based on the Xerces-C DOM. It adds more powerful facilities
 for declaring element- and type-specific API and implementation
 classes to add value around the DOM, as well as signing and encryption
 support.
 
 The XMLTooling library contains generic XML parsing and processing
 classes based on the Xerces-C DOM. It adds more powerful facilities
 for declaring element- and type-specific API and implementation
 classes to add value around the DOM, as well as signing and encryption
 support.
 
-This package contains the headers and other necessary files to build
-applications or libraries that use or extend the xmltooling library.
+This package includes files needed for development with XMLTooling.
 
 
-%package docs
-Summary: XMLTooling API Documentation
-Group: Development/Libraries
-Requires: %{name} = %{version}
+%package -n @PACKAGE_NAME@-schemas
+Summary:       XMLTooling schemas and catalog
+Group:         Development/Libraries/C and C++
 
 
-%description docs
-XMLTooling Library API documentation generated by doxygen.
+%description -n @PACKAGE_NAME@-schemas
+The XMLTooling library contains generic XML parsing and processing
+classes based on the Xerces-C DOM. It adds more powerful facilities
+for declaring element- and type-specific API and implementation
+classes to add value around the DOM, as well as signing and encryption
+support.
+
+This package includes XML schemas and related files.
 
 %prep
 %setup -q
 
 %build
 
 %prep
 %setup -q
 
 %build
-%configure %{?xmltooling_options}
+%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%configure %{?@PACKAGE_NAME@_options} --with-curl=/opt/shibboleth
+%else
+%configure %{?@PACKAGE_NAME@_options}
+%endif
 %{__make}
 
 %install
 %{__make}
 
 %install
-[ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
-%{__make} install DESTDIR=$RPM_BUILD_ROOT
-find $RPM_BUILD_ROOT/%{_bindir} -type f |
-  %{__sed} -e "s|$RPM_BUILD_ROOT||" | sort > rpm.binlist
+%{__make} install DESTDIR=$RPM_BUILD_ROOT pkgdocdir=%{pkgdocdir}
+# Don't package unit tester if present.
+%{__rm} -f $RPM_BUILD_ROOT/%{_bindir}/@PACKAGE_NAME@test
 
 
-%check || :
+%check
 %{__make} check
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
 
 %{__make} check
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
 
-%ifnos solaris2.8 solaris2.9 solaris2.10 
-%post -p /sbin/ldconfig
+%ifnos solaris2.8 solaris2.9 solaris2.10
+%post -n lib@PACKAGE_NAME@6 -p /sbin/ldconfig
 %endif
 
 %endif
 
-%ifnos solaris2.8 solaris2.9 solaris2.10 
-%postun -p /sbin/ldconfig
+%ifnos solaris2.8 solaris2.9 solaris2.10
+%postun -n lib@PACKAGE_NAME@6 -p /sbin/ldconfig
 %endif
 
 %endif
 
-%files -f rpm.binlist
+%files -n lib@PACKAGE_NAME@6
 %defattr(-,root,root,-)
 %defattr(-,root,root,-)
-%{_libdir}/libxmltooling.so.*
-%{_libdir}/libxmltooling-lite.so.*
-%dir %{_datadir}/xml/xmltooling
-%{_datadir}/xml/xmltooling
-%docdir %{_datadir}/doc/xmltooling
-%{_datadir}/doc/xmltooling/LICENSE.txt
-%{_datadir}/doc/xmltooling/NOTICE.txt
-%{_datadir}/doc/xmltooling/CURL.LICENSE
-%{_datadir}/doc/xmltooling/LOG4CPP.LICENSE
-%{_datadir}/doc/xmltooling/OPENSSL.LICENSE
-
-%files devel
+%{_libdir}/*.so.*
+
+%files -n @PACKAGE_NAME@-schemas
 %defattr(-,root,root,-)
 %defattr(-,root,root,-)
-%{_includedir}
-%{_libdir}/libxmltooling.so
-%{_libdir}/libxmltooling-lite.so
+%dir %{_datadir}/xml/@PACKAGE_NAME@
+%{_datadir}/xml/@PACKAGE_NAME@/*
 
 
-%files docs
-%defattr(644,root,root,755)
-%doc %{_datadir}/doc/xmltooling/api
+%files -n lib@PACKAGE_NAME@-devel
+%defattr(-,root,root,-)
+%{_includedir}/*
+%{_libdir}/*.so
+%{_libdir}/pkgconfig/@PACKAGE_NAME@.pc
+%doc %{pkgdocdir}
 
 %changelog
 
 %changelog
+* Thu Feb 26 2015 Scott Cantor <cantor.2@osu.edu> - 1.5.4-1
+- Require Xerces 3.1 even on older platforms
+- Add Amazon platform checks
+- Switch to bz2 source to avoid future SuSE issues
+
+* Tue May 13 2014 Ian Young <ian@iay.org.uk> - 1.5.3-1.2
+- Update package dependencies for RHEL/CentOS 7
+
+* Wed Dec 14 2011 Scott Cantor  <cantor.2@osu.edu>  - 1.5-1
+- Update lib package number.
+- Add boost-devel dependency.
+
+* Sun Jun 26 2011  Scott Cantor  <cantor.2@osu.edu>  - 1.4.2-1
+- Override curl build for RHEL6.
+
+* Tue Oct 26 2010  Scott Cantor  <cantor.2@osu.edu>  - 1.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>  - 1.3-1
+- Bump soname for SUSE packaging.
+
+* Thu Aug 6 2009  Scott Cantor  <cantor.2@osu.edu>  - 1.2.1-1
+- SuSE conventions
+- Stop packaging unit tester
+
+* Wed Dec 3 2008  Scott Cantor  <cantor.2@osu.edu>  - 1.2-1
+- Bumping for minor update.
+- Fixing SuSE Xerces dependency name.
+
+* Tue Jul 1 2008  Scott Cantor  <cantor.2@osu.edu>  - 1.1-1
+- Bumping for minor update.
+
+* Mon Mar 17 2008  Scott Cantor  <cantor.2@osu.edu>  - 1.0-6
+- Official release.
+
 * Fri Jan 18 2008  Scott Cantor  <cantor.2@osu.edu>  - 1.0-5
 - Release candidate 1.
 
 * Fri Jan 18 2008  Scott Cantor  <cantor.2@osu.edu>  - 1.0-5
 - Release candidate 1.