commit 8a4756ae4af6b3a21069f8681b653bed02fe9a8d
Author: Jakub Bogusz <[email protected]>
Date:   Fri Sep 13 19:24:26 2013 +0200

    - new
    - include patch adds missing C++ includes
    - soname patch (from Debian) sets libXdmf soname
    - log2 patch fixes log2() conflict with libc (in metis sources)
    - destdir patch fixes python module install wrt. DESTDIR

 xdmf-destdir.patch |  11 ++++
 xdmf-include.patch |  30 +++++++++++
 xdmf-log2.patch    |  55 +++++++++++++++++++
 xdmf-soname.patch  |  16 ++++++
 xdmf.spec          | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 266 insertions(+)
---
diff --git a/xdmf.spec b/xdmf.spec
new file mode 100644
index 0000000..dc5fc92
--- /dev/null
+++ b/xdmf.spec
@@ -0,0 +1,154 @@
+# TODO: MPI
+# fix utils:
+# - installs libmetis conflicting with system metis
+# - wants preinstalled libvtk{NetCDF,exoIIc} or installs own versions
+# - installs headers to /usr/include/utils/Xdmf* (too generic dir name)
+#
+# Conditional build:
+%bcond_with    mpi     # MPI support
+%bcond_with    utils   # build XdmfUtils (see TODO above)
+#
+Summary:       eXtensible Data Model and Format library
+Summary(pl.UTF-8):     Biblioteka rozszerzalnego modelu i formatu danych (XDMF)
+Name:          xdmf
+# Debian says 2.1, but no version information anywhere in sources/CVS
+Version:       0
+%define        snap    20100330
+Release:       0.%{snap}.1
+# specified in libsrc/{gzstream,bz2stream}.*
+License:       LGPL v2.1+
+Group:         Libraries
+# cvs -d :pserver:anonymous:[email protected]:/cvsroot/Xdmf co Xdmf
+Source0:       %{name}.tar.xz
+# Source0-md5: 63f99d11bea8d56d4185cb8facd44ca2
+Patch0:                %{name}-include.patch
+Patch1:                %{name}-soname.patch
+Patch2:                %{name}-log2.patch
+Patch3:                %{name}-destdir.patch
+URL:           http://www.xdmf.org/
+BuildRequires: bzip2-devel
+BuildRequires: cmake >= 2.4
+BuildRequires: hdf5-devel >= 1.8
+BuildRequires: libstdc++-devel
+BuildRequires: libxml2-devel >= 2
+BuildRequires: python-devel >= 2
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.219
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+BuildRequires: zlib-devel
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+eXtensible Data Model and Format library.
+
+%description -l pl.UTF-8
+Biblioteka rozszerzalnego modelu i formatu danych (XDMF - eXtensible
+Data Model and Format).
+
+%package devel
+Summary:       Header files for Xdmf library
+Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki Xdmf
+Group:         Development/Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      libstdc++-devel
+Requires:      bzip2-devel
+Requires:      zlib-devel
+
+%description devel
+Header files for Xdmf library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki Xdmf.
+
+%package -n python-xdmf
+Summary:       Python binding for Xdmf library
+Summary(pl.UTF-8):     Pythonowy interfejs do biblioteki Xdmf
+Group:         Libraries/Python
+Requires:      %{name} = %{version}-%{release}
+
+%description -n python-xdmf
+Python binding for Xdmf library.
+
+%description -n python-xdmf -l pl.UTF-8
+Pythonowy interfejs do biblioteki Xdmf.
+
+%prep
+%setup -q -n Xdmf
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+%build
+mkdir build
+cd build
+%cmake .. \
+       -DPythonLibs_FIND_VERSION=%{py_ver} \
+       %{!?with_mpi:-DXDMF_BUILD_MPI=OFF} \
+       %{?with_utils:-DXDMF_BUILD_UTILS=ON} \
+       -DXDMF_SYSTEM_HDF5=ON \
+       -DXDMF_SYSTEM_LIBXML2=ON \
+       -DXDMF_SYSTEM_ZLIB=ON \
+       -DXDMF_USE_RPATH=OFF \
+       -DXDMF_WRAP_PYTHON=ON
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+# cmake compiles only to .pyc
+%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
+%py_postclean
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post  -p /sbin/ldconfig
+%postun        -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libXdmf.so.2
+%if %{with utils}
+%attr(755,root,root) %{_libdir}/libXdmfUtils.so
+%attr(755,root,root) %{_libdir}/libmetis.so
+%attr(755,root,root) %{_libdir}/libvtkNetCDF.so
+%attr(755,root,root) %{_libdir}/libvtkexoIIc.so
+%attr(755,root,root) %{_bindir}/XdmfDiff
+%attr(755,root,root) %{_bindir}/XdmfExodusConverter
+%attr(755,root,root) %{_bindir}/XdmfPartitioner
+%endif
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libXdmf.so
+%{_libdir}/XdmfCMake
+%{_includedir}/Xdmf*.h
+%{_includedir}/bz2stream.h
+%{_includedir}/gzstream.h
+%if %{with utils}
+%{_includedir}/XdmfSTLConverter.txx
+# FIXME: too generic dir
+%dir %{_includedir}/utils
+%{_includedir}/utils/Xdmf*.h
+# FIXME: conflict with system metis
+%{_includedir}/metis
+%{_includedir}/vtkexodus2
+%{_includedir}/vtknetcdf
+%endif
+
+%files -n python-xdmf
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/Xdmf
+%attr(755,root,root) %{py_sitedir}/Xdmf/_Xdmf.so
+%{py_sitedir}/Xdmf/Xdmf.py[co]
+%{py_sitedir}/Xdmf/__init__.py[co]
+%if %{with utils}
+%attr(755,root,root) %{py_sitedir}/Xdmf/_XdmfUtils.so
+%{py_sitedir}/Xdmf/XdmfUtils.py[co]
+%endif
diff --git a/xdmf-destdir.patch b/xdmf-destdir.patch
new file mode 100644
index 0000000..15a3f01
--- /dev/null
+++ b/xdmf-destdir.patch
@@ -0,0 +1,11 @@
+--- Xdmf/libsrc/CMakeLists.txt.orig    2013-09-13 18:11:14.450878952 +0200
++++ Xdmf/libsrc/CMakeLists.txt 2013-09-13 18:24:45.464178361 +0200
+@@ -506,7 +506,7 @@
+ 
+   # Compile Byte Code
+   INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} 
${Xdmf_SOURCE_DIR}/CMake/CompileXdmfByteCode.py 
+-    ${CMAKE_INSTALL_PREFIX}/${XDMF_WRAP_PYTHON_INSTALL_PY_DIR})")
++  \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${XDMF_WRAP_PYTHON_INSTALL_PY_DIR})")
+   
+ ENDIF(XDMF_WRAP_PYTHON)
+ 
diff --git a/xdmf-include.patch b/xdmf-include.patch
new file mode 100644
index 0000000..9dd1289
--- /dev/null
+++ b/xdmf-include.patch
@@ -0,0 +1,30 @@
+--- Xdmf/libsrc/XdmfArray.h.orig       2010-03-24 21:03:48.000000000 +0100
++++ Xdmf/libsrc/XdmfArray.h    2013-09-13 16:09:37.644518551 +0200
+@@ -46,6 +46,7 @@ accomplished directly thru XdmfArrays by
+ 
+ #ifndef SWIG
+ #include <stdlib.h>
++#include <string.h>
+ #endif
+ 
+ class XDMF_EXPORT XdmfArray : public XdmfDataDesc {
+--- Xdmf/libsrc/XdmfObject.h.orig      2009-12-23 18:23:49.000000000 +0100
++++ Xdmf/libsrc/XdmfObject.h   2013-09-13 16:13:03.814509766 +0200
+@@ -81,6 +81,7 @@
+ 
+ # ifdef UNIX
+ #  include "sys/file.h"
++#  include <string.h>
+ #  include "strings.h"
+ #  define STRCASECMP strcasecmp
+ #  define STRNCASECMP strncasecmp
+--- Xdmf/libsrc/utils/XdmfExodusReader.cxx.orig        2010-03-18 
16:24:25.000000000 +0100
++++ Xdmf/libsrc/utils/XdmfExodusReader.cxx     2013-09-13 17:25:22.130994452 
+0200
+@@ -24,6 +24,7 @@
+ /*******************************************************************/
+ 
+ #include "XdmfExodusReader.h"
++#include <algorithm>
+ #include <exodusII.h>
+ 
+ //
diff --git a/xdmf-log2.patch b/xdmf-log2.patch
new file mode 100644
index 0000000..08110cc
--- /dev/null
+++ b/xdmf-log2.patch
@@ -0,0 +1,55 @@
+--- Xdmf/Utilities/metis/util.c.orig   2010-03-24 21:03:47.000000000 +0100
++++ Xdmf/Utilities/metis/util.c        2013-09-13 17:11:43.511029060 +0200
+@@ -509,7 +509,7 @@ void InitRandom(int seed)
+ /*************************************************************************
+ * This function returns the log2(x)
+ **************************************************************************/
+-int log2(int a)
++int intlog2(int a)
+ {
+   int i;
+ 
+--- Xdmf/Utilities/metis/rename.h.orig 2010-03-24 21:03:47.000000000 +0100
++++ Xdmf/Utilities/metis/rename.h      2013-09-13 17:12:24.884360419 +0200
+@@ -410,7 +410,7 @@
+ #define RandomPermute                 __RandomPermute
+ #define ispow2                                __ispow2
+ #define InitRandom                    __InitRandom
+-#define log2                          __log2
++#define intlog2                               __intlog2
+ 
+ 
+ 
+--- Xdmf/Utilities/metis/kmetis.c.orig 2010-03-24 21:03:47.000000000 +0100
++++ Xdmf/Utilities/metis/kmetis.c      2013-09-13 17:12:59.174358871 +0200
+@@ -66,7 +66,7 @@ void METIS_WPartGraphKway(int *nvtxs, id
+     ctrl.dbglvl = options[OPTION_DBGLVL];
+   }
+   ctrl.optype = OP_KMETIS;
+-  ctrl.CoarsenTo = amax((*nvtxs)/(40*log2(*nparts)), 20*(*nparts));
++  ctrl.CoarsenTo = amax((*nvtxs)/(40*intlog2(*nparts)), 20*(*nparts));
+   ctrl.maxvwgt = 1.5*((graph.vwgt ? idxsum(*nvtxs, graph.vwgt) : 
(*nvtxs))/ctrl.CoarsenTo);
+ 
+   InitRandom(-1);
+--- Xdmf/Utilities/metis/kvmetis.c.orig        2010-03-24 21:03:47.000000000 
+0100
++++ Xdmf/Utilities/metis/kvmetis.c     2013-09-13 17:13:06.084358658 +0200
+@@ -66,7 +66,7 @@ void METIS_WPartGraphVKway(int *nvtxs, i
+     ctrl.dbglvl = options[OPTION_DBGLVL];
+   }
+   ctrl.optype = OP_KVMETIS;
+-  ctrl.CoarsenTo = amax((*nvtxs)/(40*log2(*nparts)), 20*(*nparts));
++  ctrl.CoarsenTo = amax((*nvtxs)/(40*intlog2(*nparts)), 20*(*nparts));
+   ctrl.maxvwgt = 1.5*((graph.vwgt ? idxsum(*nvtxs, graph.vwgt) : 
(*nvtxs))/ctrl.CoarsenTo);
+ 
+   InitRandom(-1);
+--- Xdmf/Utilities/metis/mkmetis.c.orig        2010-03-24 21:03:47.000000000 
+0100
++++ Xdmf/Utilities/metis/mkmetis.c     2013-09-13 17:13:17.037691588 +0200
+@@ -47,7 +47,7 @@ void METIS_mCPartGraphKway(int *nvtxs, i
+     ctrl.dbglvl = options[OPTION_DBGLVL];
+   }
+   ctrl.optype = OP_KMETIS;
+-  ctrl.CoarsenTo = amax((*nvtxs)/(20*log2(*nparts)), 30*(*nparts));
++  ctrl.CoarsenTo = amax((*nvtxs)/(20*intlog2(*nparts)), 30*(*nparts));
+ 
+   ctrl.nmaxvwgt = 1.5/(1.0*ctrl.CoarsenTo);
+ 
diff --git a/xdmf-soname.patch b/xdmf-soname.patch
new file mode 100644
index 0000000..ba4b483
--- /dev/null
+++ b/xdmf-soname.patch
@@ -0,0 +1,16 @@
+Description: Add a soname to the libXdmf.so.2.1 library
+Author: Alastair McKinstry <[email protected]>
+Last-Updated: 2011-06-20
+Forwarded: not-needed
+
+--- xdmf-2.1.orig/libsrc/CMakeLists.txt
++++ xdmf-2.1/libsrc/CMakeLists.txt
+@@ -417,6 +417,8 @@ ENDIF(VTK_BUILD_SHARED_LIBS OR BUILD_SHA
+ 
+ ADD_LIBRARY(Xdmf ${LIBTYPE} ${XdmfSources})
+ 
++SET_TARGET_PROPERTIES(Xdmf PROPERTIES  SOVERSION 2)
++
+ IF(XDMF_USE_MYSQL)
+     ADD_DEFINITIONS("-DXDMF_USE_MYSQL")
+     INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_PATH})
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xdmf.git/commitdiff/8a4756ae4af6b3a21069f8681b653bed02fe9a8d

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to