Set fourth file version digit to signify rebuild.
[shibboleth/cpp-xmltooling.git] / xmltooling.spec.in
index db333f8..b8f5f8d 100644 (file)
@@ -1,24 +1,35 @@
-Name:          xmltooling
-Version:       @-VERSION-@
+Name:          @PACKAGE_NAME@
+Version:       @PACKAGE_VERSION@
 Release:       1
 Release:       1
-Summary:    OpenSAML XMLTooling library
-Group:         System Environment/Libraries
-Vendor:                Internet2
+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/
-Source:            %{name}-%{version}.tar.gz
+Source:                %{name}-%{version}.tar.bz2
 BuildRoot:     %{_tmppath}/%{name}-%{version}-root
 BuildRoot:     %{_tmppath}/%{name}-%{version}-root
-%if 0%{?suse_version} > 1030
-%define libpkgprefix lib
-BuildRequires:  libXerces-c-devel >= 2.8.0
+%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
 %else
-%define libpkgprefix
-BuildRequires:  xerces%{?xercesver}-c-devel >= 2.8.0
+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
 %endif
-BuildRequires: %{libpkgprefix}xml-security-c-devel >= 1.4.0
-BuildRequires: gcc-c++, openssl-devel, curl-devel >= 7.10.6
-%{?_with_log4cpp:BuildRequires:        %{libpkgprefix}log4cpp-devel >= 1.0}
-%{!?_with_log4cpp:BuildRequires: %{libpkgprefix}log4shib-devel}
 
 %if "%{_vendor}" == "suse"
 %define pkgdocdir %{_docdir}/%{name}
 
 %if "%{_vendor}" == "suse"
 %define pkgdocdir %{_docdir}/%{name}
@@ -26,6 +37,12 @@ BuildRequires:       gcc-c++, openssl-devel, curl-devel >= 7.10.6
 %define pkgdocdir %{_docdir}/%{name}-%{version}
 %endif
 
 %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
 classes based on the Xerces-C DOM. It adds more powerful facilities
 %description
 The XMLTooling library contains generic XML parsing and processing
 classes based on the Xerces-C DOM. It adds more powerful facilities
@@ -33,13 +50,16 @@ 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.
 
-%if 0%{?suse_version} > 1030
-%package -n libxmltooling12
+%package -n lib@PACKAGE_NAME@6
 Summary:    OpenSAML XMLTooling library
 Summary:    OpenSAML XMLTooling library
-Group:      Development/Libraries
-Provides:   xmltooling = %{version}
+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
 
 
-%description -n libxmltooling12
+%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
 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
@@ -47,52 +67,65 @@ classes to add value around the DOM, as well as signing and encryption
 support.
 
 This package contains just the shared library.
 support.
 
 This package contains just the shared library.
-%endif
 
 
-%if 0%{?suse_version} > 1030
-%package -n libxmltooling-devel
-Requires: libxmltooling12 = %version
-%else
-%package devel
-Requires: %name = %version
-%endif
-Summary: XMLTooling development Headers
-Group: Development/Libraries
-%if 0%{?suse_version} > 1030
-Requires: libXerces-c-devel >= 2.8.0
+%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
 %else
-Requires: xerces%{?xercesver}-c-devel >= 2.8.0
+Requires:  libxerces-c-devel >= 3.1
 %endif
 %endif
-Requires: %{libpkgprefix}xml-security-c-devel >= 1.4.0
-Requires: openssl-devel, curl-devel >= 7.10.6
-%{?_with_log4cpp:Requires: %{libpkgprefix}log4cpp-devel >= 1.0}
-%{!?_with_log4cpp:Requires: %{libpkgprefix}log4shib-devel}
-
-%if 0%{?suse_version} > 1030
-%description -n libxmltooling-devel
-Requires: libxmltooling12 = %version
+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
 %else
-%description
+Requires: curl-devel >= 7.10.6
 %endif
 %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 includes files needed for development with xmltooling.
+This package includes files needed for development with XMLTooling.
+
+%package -n @PACKAGE_NAME@-schemas
+Summary:       XMLTooling schemas and catalog
+Group:         Development/Libraries/C and C++
+
+%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 DESTDIR=$RPM_BUILD_ROOT pkgdocdir=%{pkgdocdir}
 # Don't package unit tester if present.
 %{__make}
 
 %install
 %{__make} install DESTDIR=$RPM_BUILD_ROOT pkgdocdir=%{pkgdocdir}
 # Don't package unit tester if present.
-%{__rm} -f $RPM_BUILD_ROOT/%{_bindir}/xmltoolingtest
+%{__rm} -f $RPM_BUILD_ROOT/%{_bindir}/@PACKAGE_NAME@test
 
 %check
 %{__make} check
 
 %check
 %{__make} check
@@ -101,43 +134,55 @@ This package includes files needed for development with xmltooling.
 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
 
 %ifnos solaris2.8 solaris2.9 solaris2.10
 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
 
 %ifnos solaris2.8 solaris2.9 solaris2.10
-%if 0%{?suse_version} > 1030
-%post -n libxmltooling12 -p /sbin/ldconfig
-%else
-%post -p /sbin/ldconfig
-%endif
+%post -n lib@PACKAGE_NAME@6 -p /sbin/ldconfig
 %endif
 
 %ifnos solaris2.8 solaris2.9 solaris2.10
 %endif
 
 %ifnos solaris2.8 solaris2.9 solaris2.10
-%if 0%{?suse_version} > 1030
-%postun -n libxmltooling12 -p /sbin/ldconfig
-%else
-%postun -p /sbin/ldconfig
-%endif
+%postun -n lib@PACKAGE_NAME@6 -p /sbin/ldconfig
 %endif
 
 %endif
 
-%if 0%{?suse_version} > 1030
-%files -n libxmltooling12
-%else
-%files
-%endif
+%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
+%{_libdir}/*.so.*
 
 
-%if 0%{?suse_version} > 1030
-%files -n libxmltooling-devel
-%else
-%files devel
-%endif
+%files -n @PACKAGE_NAME@-schemas
+%defattr(-,root,root,-)
+%dir %{_datadir}/xml/@PACKAGE_NAME@
+%{_datadir}/xml/@PACKAGE_NAME@/*
+
+%files -n lib@PACKAGE_NAME@-devel
 %defattr(-,root,root,-)
 %{_includedir}/*
 %{_libdir}/*.so
 %defattr(-,root,root,-)
 %{_includedir}/*
 %{_libdir}/*.so
+%{_libdir}/pkgconfig/@PACKAGE_NAME@.pc
 %doc %{pkgdocdir}
 
 %changelog
 %doc %{pkgdocdir}
 
 %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
 * Thu Aug 6 2009  Scott Cantor  <cantor.2@osu.edu>  - 1.2.1-1
 - SuSE conventions
 - Stop packaging unit tester