- build system switched to cmake

- enabled GUI
- enabled Eigen2
- updated to 2.3.0 final
- patched to fix various build issues
- split libs and GUI into separate subpackages
- fixed rpmlint warnings about strange file permissions
This commit is contained in:
Dominik Mierzejewski 2010-11-25 00:58:12 +01:00
parent 22b2962888
commit 913fc11374
5 changed files with 212 additions and 135 deletions

2
.gitignore vendored
View File

@ -1 +1,3 @@
openbabel-2.0.2.tar.gz
/openbabel-2.3.0b2-20100803-r3942.tar.gz
/openbabel-2.3.0.tar.gz

View File

@ -1,65 +1,37 @@
diff -up openbabel-2.2.3/configure.in.inchi openbabel-2.2.3/configure.in
--- openbabel-2.2.3/configure.in.inchi 2009-07-29 03:05:04.000000000 +0200
+++ openbabel-2.2.3/configure.in 2009-09-14 01:14:49.000000000 +0200
@@ -239,8 +239,11 @@ AC_SUBST(LIBDL)
AM_PATH_XML2(2.6.5)
AM_CONDITIONAL(BUILD_XML, test x"$XML_LIBS" != "x")
diff -up openbabel-2.3.0/cmake/modules/FindInchi.cmake.r openbabel-2.3.0/cmake/modules/FindInchi.cmake
--- openbabel-2.3.0/cmake/modules/FindInchi.cmake.r 2010-10-13 02:37:01.000000000 +0200
+++ openbabel-2.3.0/cmake/modules/FindInchi.cmake 2010-11-23 01:56:55.081622107 +0100
@@ -13,7 +13,7 @@ if(INCHI_INCLUDE_DIR AND INCHI_LIBRARY)
# in cache already
set(INCHI_FOUND TRUE)
else()
- find_path(INCHI_INCLUDE_DIR NAMES inchi_api.h)
+ find_path(INCHI_INCLUDE_DIR NAMES inchi_api.h PATHS /usr/include/inchi )
find_library(INCHI_LIBRARY NAMES inchi Inchi)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(INCHI DEFAULT_MSG INCHI_LIBRARY
diff -up openbabel-2.3.0/include/CMakeLists.txt.r openbabel-2.3.0/include/CMakeLists.txt
--- openbabel-2.3.0/include/CMakeLists.txt.r 2010-09-25 17:05:05.000000000 +0200
+++ openbabel-2.3.0/include/CMakeLists.txt 2010-11-23 01:56:55.082628237 +0100
@@ -4,7 +4,9 @@ file(GLOB math_headers openbabel/ma
file(GLOB stereo_headers openbabel/stereo/*.h)
file(GLOB depict_headers openbabel/stereo/*.h)
+AC_CHECK_LIB(stdinchi, GetStdINCHI, LIBSTDINCHI="-lstdinchi", LIBSTDINCHI="")
AC_CHECK_LIB(inchi, GetINCHI, LIBINCHI="-linchi", LIBINCHI="")
-AM_CONDITIONAL(BUILD_INCHI, test x"$LIBINCHI" = "x" -o "$inchi" = "yes")
+AM_CONDITIONAL(HAVE_INCHI, test x"$LIBINCHI" != "x" -o x"$LIBSTDINCHI" != "x" -o "$inchi" = "yes")
+AM_CONDITIONAL(HAVE_STDINCHI, test x"$LIBSTDINCHI" != "x")
+AM_CONDITIONAL(BUILD_INCHI, test "$inchi" = "yes")
+if(NOT OPENBABEL_USE_SYSTEM_INCHI)
install(FILES inchi_api.h DESTINATION include/inchi)
+endif(NOT OPENBABEL_USE_SYSTEM_INCHI)
install(FILES chemdrawcdx.h DESTINATION ${OB_INCLUDE_DIRS}/openbabel)
install(FILES ${openbabel_headers} DESTINATION ${OB_INCLUDE_DIRS}/openbabel)
install(FILES ${math_headers} DESTINATION ${OB_INCLUDE_DIRS}/openbabel/math)
diff -up openbabel-2.3.0/scripts/ruby/extconf.rb.r openbabel-2.3.0/scripts/ruby/extconf.rb
--- openbabel-2.3.0/scripts/ruby/extconf.rb.r 2010-10-23 03:54:40.000000000 +0200
+++ openbabel-2.3.0/scripts/ruby/extconf.rb 2010-11-23 01:56:55.083627521 +0100
@@ -17,7 +17,7 @@ dir_config('openbabel')
# Find a trivial header in order to add the proper include path
# to the build flags.
here = File.dirname(__FILE__)
-find_header('inchi_api.h', here + '/../../include')
+find_header('inchi_api.h', '/usr/include/inchi', '/usr/include', here + '/../../include')
AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no])
AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no])
diff -up openbabel-2.2.3/src/formats/Makefile.am.inchi openbabel-2.2.3/src/formats/Makefile.am
--- openbabel-2.2.3/src/formats/Makefile.am.inchi 2009-07-09 15:05:02.000000000 +0200
+++ openbabel-2.2.3/src/formats/Makefile.am 2009-09-14 01:15:55.000000000 +0200
@@ -39,11 +39,17 @@ endif
if !BUILD_SHARED
noinst_LTLIBRARIES = libformats.la
+if HAVE_INCHI
if BUILD_INCHI
libformats_la_LIBADD = inchi102/libinchi.la
else
+if HAVE_STDINCHI
+libformats_la_LIBADD = -lstdinchi
+else
libformats_la_LIBADD = -linchi
endif
+endif
+endif
libformats_la_SOURCES = \
APIInterface.cpp MCDLformat.cpp \
CSRformat.cpp PQSformat.cpp alchemyformat.cpp \
@@ -124,7 +130,7 @@ if HAVE_SHARED_POINTER
formats_LTLIBRARIES += chemdrawcdxformat.la chemkinformat.la \
rxnformat.la rsmiformat.la
endif
-if BUILD_INCHI
+if HAVE_INCHI
formats_LTLIBRARIES += inchiformat.la
endif
if BUILD_ZLIB
@@ -261,12 +267,18 @@ hinformat_la_SOURCES = hinformat.cpp
hinformat_la_LDFLAGS = -module -avoid-version -no-undefined $(win32ldflags) ../libopenbabel.la
inchiformat_la_SOURCES = inchiformat.cpp getinchi.cpp
+if HAVE_INCHI
if BUILD_INCHI
inchiformat_la_LDFLAGS = -module -avoid-version -no-undefined $(win32ldflags) ../libopenbabel.la inchi102/libinchi.la
else
inchiformat_la_LDFLAGS = -module -avoid-version -no-undefined $(win32ldflags) ../libopenbabel.la
+if HAVE_STDINCHI
+inchiformat_la_LIBADD = -lstdinchi
+else
inchiformat_la_LIBADD = -linchi
endif
+endif
+endif
jaguarformat_la_SOURCES = jaguarformat.cpp
jaguarformat_la_LDFLAGS = -module -avoid-version -no-undefined $(win32ldflags) ../libopenbabel.la
# Prevent Ruby 1.8.x from trying to compile and link the extension
# using gcc.

View File

@ -1,15 +1,91 @@
diff -up openbabel-2.2.1b3-20090215-r2890/scripts/Makefile.am.r openbabel-2.2.1b3-20090215-r2890/scripts/Makefile.am
diff -up openbabel-2.2.1b3-20090215-r2890/scripts/perl/Makefile.PL.r openbabel-2.2.1b3-20090215-r2890/scripts/perl/Makefile.PL
--- openbabel-2.2.1b3-20090215-r2890/scripts/perl/Makefile.PL.r 2008-12-01 18:41:42.000000000 +0100
+++ openbabel-2.2.1b3-20090215-r2890/scripts/perl/Makefile.PL 2009-03-01 10:43:01.000000000 +0100
@@ -3,8 +3,8 @@ use ExtUtils::MakeMaker;
use lib 'inc';
use Devel::CheckLib;
diff -up openbabel-2.3.0/scripts/CMakeLists.txt.r openbabel-2.3.0/scripts/CMakeLists.txt
--- openbabel-2.3.0/scripts/CMakeLists.txt.r 2010-10-25 19:37:42.000000000 +0200
+++ openbabel-2.3.0/scripts/CMakeLists.txt 2010-11-24 22:53:29.250004683 +0100
@@ -82,6 +82,7 @@ if (DO_PYTHON_BINDINGS)
COMMAND ${CMAKE_COMMAND} -E copy ob.py ${openbabel_SOURCE_DIR}/scripts/python/openbabel.py
COMMAND ${CMAKE_COMMAND} -E remove ob.py
VERBATIM)
+ add_dependencies(_openbabel openbabel)
-check_lib_or_exit( lib => 'openbabel' , libpath =>
-@ENV{"LD_LIBRARY_PATH"});
+#check_lib_or_exit( lib => 'openbabel' , libpath =>
+#@ENV{"LD_LIBRARY_PATH"});
if (PYTHON_PREFIX)
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${openbabel_SOURCE_DIR}/scripts/python/setup.py install --prefix=${PYTHON_PREFIX} WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts)")
@@ -89,7 +90,7 @@ if (DO_PYTHON_BINDINGS)
if (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${openbabel_SOURCE_DIR}/scripts/python/setup.py install WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts)")
else (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
- install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${openbabel_SOURCE_DIR}/scripts/python/setup.py install --prefix=${CMAKE_INSTALL_PREFIX} WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts)")
+ install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${openbabel_SOURCE_DIR}/scripts/python/setup.py install --prefix=$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX} WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts)")
endif (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
endif (PYTHON_PREFIX)
@@ -228,8 +229,8 @@ if (DO_PERL_BINDINGS)
DEPENDS ${openbabel_SOURCE_DIR}/scripts/perl/openbabel-perl.cpp
WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/perl
)
- add_dependencies(bindings_perl pre_bindings_perl)
- install(CODE "execute_process(COMMAND make install WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/perl)")
+ add_dependencies(bindings_perl pre_bindings_perl openbabel)
+ install(CODE "execute_process(COMMAND make install_vendor WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/perl)")
else (NOT MSVC)
add_library(bindings_perl MODULE ${openbabel_SOURCE_DIR}/scripts/perl/openbabel-perl.cpp)
@@ -282,20 +283,20 @@ if (DO_RUBY_BINDINGS)
COMMAND ${CMAKE_COMMAND} -E make_directory ${openbabel_BINARY_DIR}/scripts/ruby
)
add_custom_target(bindings_ruby ALL
- COMMAND ${RUBY_EXECUTABLE} ${openbabel_SOURCE_DIR}/scripts/ruby/extconf.rb --with-openbabel-lib=${BABEL_LIBRARY} --with-openbabel-include=${openbabel_BINARY_DIR}/include
+ COMMAND ${RUBY_EXECUTABLE} ${openbabel_SOURCE_DIR}/scripts/ruby/extconf.rb --with-openbabel-lib=${openbabel_BINARY_DIR}/lib${LIB_SUFFIX} --with-openbabel-include=${openbabel_BINARY_DIR}/include
COMMAND ${CMAKE_COMMAND} -E echo "Compiling Ruby bindings"
COMMAND make
DEPENDS ${openbabel_SOURCE_DIR}/scripts/ruby/openbabel-ruby.cpp
WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/ruby
)
- add_dependencies(bindings_ruby pre_bindings_ruby)
+ add_dependencies(bindings_ruby pre_bindings_ruby openbabel)
if (RUBY_PREFIX)
install(CODE "execute_process(COMMAND DESTDIR=${RUBY_PREFIX} make install WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/ruby)")
else (RUBY_PREFIX)
if (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
install(CODE "execute_process(COMMAND make install WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/ruby)")
else (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
- install(CODE "execute_process(COMMAND DESTDIR=${CMAKE_INSTALL_PREFIX} make install WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/ruby)")
+ install(CODE "execute_process(COMMAND make DESTDIR=$ENV{DESTDIR} install WORKING_DIRECTORY ${openbabel_BINARY_DIR}/scripts/ruby)")
endif (${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
endif (RUBY_PREFIX)
else(NOT MSVC)
diff -up openbabel-2.3.0/scripts/perl/Makefile.PL.r openbabel-2.3.0/scripts/perl/Makefile.PL
--- openbabel-2.3.0/scripts/perl/Makefile.PL.r 2010-10-23 03:44:58.000000000 +0200
+++ openbabel-2.3.0/scripts/perl/Makefile.PL 2010-11-24 22:53:46.417249628 +0100
@@ -12,6 +12,9 @@ $cmakebindir = @ENV{"OBJ_DIR"};
if (-e "$cmakebindir/lib/libopenbabel.so" || -e "$cmakebindir/lib/libopenbabel.dylib") {
check_lib_or_exit( lib => 'openbabel' , libpath => "$cmakebindir/lib");
}
+elsif (-e "$cmakebindir/lib64/libopenbabel.so") {
+ check_lib_or_exit( lib => 'openbabel' , libpath => "$cmakebindir/lib64");
+}
else {
check_lib_or_exit( lib => 'openbabel' , libpath => @ENV{"LD_LIBRARY_PATH"});
}
@@ -21,6 +24,8 @@ $ldfrom = "\$(OBJECT) -L$cmakebindir/lib
if (-r "$cmakebindir/lib/libopenbabel.dylib") and (-s _) and (-B _);
$ldfrom = "\$(OBJECT) -L$cmakebindir/lib -lopenbabel"
if (-r "$cmakebindir/lib/libopenbabel.so") and (-s _) and (-B _);
+$ldfrom = "\$(OBJECT) -L$cmakebindir/lib64 -lopenbabel"
+ if (-r "$cmakebindir/lib64/libopenbabel.so") and (-s _) and (-B _);
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
diff -up openbabel-2.3.0/scripts/python/setup.py.r openbabel-2.3.0/scripts/python/setup.py
--- openbabel-2.3.0/scripts/python/setup.py.r 2010-10-26 16:39:01.000000000 +0200
+++ openbabel-2.3.0/scripts/python/setup.py 2010-11-23 01:56:55.083627521 +0100
@@ -17,7 +17,9 @@ obExtension = Extension('_openbabel',
[os.path.join(srcdir, "openbabel-python.cpp")],
include_dirs=[os.path.join(srcdir, "..", "..", "include"),
os.path.join("..", "include")],
- library_dirs=[os.path.join("..", "lib")],
+ library_dirs=[os.path.join(srcdir, "..", "..", "lib"),
+ os.path.join(srcdir, "..", "..", "lib64"),
+ os.path.join("..", "lib")],
libraries=['openbabel']
)
$CC = 'g++';
$srcdir = '../../src';

View File

@ -6,10 +6,11 @@
%define beta_ver %{nil}
%define beta_str %{nil}
%define beta_dir %{nil}
Name: openbabel
Version: 2.2.3
Release: 4%{beta_ver}%{?dist}
Version: 2.3.0
Release: 1%{beta_ver}%{?dist}
Summary: Chemistry software file format converter
License: GPLv2
Group: Applications/File
@ -18,8 +19,9 @@ Source: http://downloads.sourceforge.net/sourceforge/openbabel/%{name}-%{version
Patch1: %{name}-rpm.patch
Patch3: %{name}-inchi.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: cmake
BuildRequires: eigen2-devel
BuildRequires: inchi-devel >= 1.0.3
BuildRequires: libtool
BuildRequires: libxml2-devel
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: python
@ -27,8 +29,7 @@ BuildRequires: python-devel
BuildRequires: ruby
BuildRequires: ruby-devel
BuildRequires: swig
#TODO: enable when GUI is functional
#BuildRequires: wxGTK-devel
BuildRequires: wxGTK-devel
BuildRequires: zlib-devel
%description
@ -38,17 +39,44 @@ Babel left off, as a cross-platform program and library designed to
interconvert between many file formats used in molecular modeling,
computational chemistry, and many related areas.
Open Babel includes two components, a command-line utility and a C++
library. The command-line utility is intended to be used as a replacement
for the original babel program, to translate between various chemical file
formats. The C++ library includes all of the file-translation code as well
as a wide variety of utilities to foster development of other open source
scientific software.
This package contains the command-line utility, which is intended to
be used as a replacement for the original babel program, to translate
between various chemical file formats as well as a wide variety of
utilities to foster development of other open source scientific
software.
%package gui
Summary: Chemistry software file format converter - GUI version
Group: Applications/File
%description gui
Open Babel is a free, open-source version of the Babel chemistry file
translation program. Open Babel is a project designed to pick up where
Babel left off, as a cross-platform program and library designed to
interconvert between many file formats used in molecular modeling,
computational chemistry, and many related areas.
This package contains the graphical interface.
%package libs
Summary: Chemistry software file format converter - libraries
Group: System Environment/Libraries
Obsoletes: %{name} < 2.3.0-1
%description libs
Open Babel is a free, open-source version of the Babel chemistry file
translation program. Open Babel is a project designed to pick up where
Babel left off, as a cross-platform program and library designed to
interconvert between many file formats used in molecular modeling,
computational chemistry, and many related areas.
This package contains the C++ library, which includes all of the
file-translation code.
%package devel
Summary: Development tools for programs which will use the Open Babel library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Requires: pkgconfig
%description devel
@ -88,74 +116,64 @@ Requires: %{name} = %{version}-%{release}
Ruby wrapper for the Open Babel library.
%prep
%setup -q -n %{name}-%{version}%{beta_str}
%setup -q -n %{name}-%{version}%{beta_dir}
%patch1 -p1 -b .r
%patch3 -p1 -b .inchi
chmod 644 src/formats/mmcifformat.cpp
chmod 644 src/formats/{fchk,genbank,mmcif}format.cpp
chmod 644 src/math/align.cpp
chmod 644 include/openbabel/{graphsym.h,math/align.h}
%build
autoreconf --force --install
%configure --enable-shared=yes --enable-static=no --disable-inchi --enable-maintainer-mode
%{__make} %{?_smp_mflags}
pushd scripts/perl
perl Makefile.PL INSTALLDIRS="vendor"
%{__make} %{?_smp_mflags} OPTIMIZE="$RPM_OPT_FLAGS"
popd
pushd scripts/python
python setup.py build
popd
pushd scripts/ruby
ruby extconf.rb --with-openbabel-include=../../include --with-openbabel-lib=../../src/.libs
%{__make} %{?_smp_mflags}
popd
%cmake \
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DBUILD_GUI:BOOL=ON \
-DPYTHON_BINDINGS:BOOL=ON \
-DPERL_BINDINGS:BOOL=ON \
-DRUBY_BINDINGS:BOOL=ON \
-DOPENBABEL_USE_SYSTEM_INCHI=true \
.
make VERBOSE=1 %{?_smp_mflags}
%install
%{__rm} -rf $RPM_BUILD_ROOT
touch scripts/CMakeLists.txt
make VERBOSE=1 DESTDIR=$RPM_BUILD_ROOT install
%{__make} install DESTDIR=$RPM_BUILD_ROOT
%{__rm} $RPM_BUILD_ROOT%{_libdir}{,/%{name}/%{version}%{beta_ver}}/*.la
pushd scripts/perl
%{__make} install DESTDIR=$RPM_BUILD_ROOT
popd
%{__rm} -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
%{__rm} -f $RPM_BUILD_ROOT%{perl_vendorarch}/*/Chemistry/OpenBabel/{.packlist,OpenBabel.bs}
chmod 755 $RPM_BUILD_ROOT%{perl_vendorarch}/*/Chemistry/OpenBabel/OpenBabel.so
pushd scripts/python
%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
popd
chmod 755 $RPM_BUILD_ROOT%{python_sitearch}/_openbabel.so
pushd scripts/ruby
%{__make} install DESTDIR=$RPM_BUILD_ROOT
popd
rm $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
rm -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Chemistry/OpenBabel/{.packlist,OpenBabel.bs}
chmod 755 $RPM_BUILD_ROOT%{perl_vendorarch}/auto/Chemistry/OpenBabel/OpenBabel.so
%clean
%{__rm} -rf $RPM_BUILD_ROOT
%if 0
%check
%{__make} check
%{__make} test
%endif
%post -p /sbin/ldconfig
%post libs -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%{_bindir}/babel
%{_bindir}/ob*
%{_bindir}/roundtrip
%{_mandir}/man1/*
%files gui
%defattr(-,root,root,-)
%{_bindir}/OBGUI
%files libs
%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog README THANKS
%doc doc/*.html
%doc doc/README* doc/babel*.inc doc/dioxin.*
%{_bindir}/*
%{_mandir}/man1/*
%{_datadir}/%{name}
%doc doc/README* doc/dioxin.*
%{_libdir}/libopenbabel.so.*
%{_libdir}/%{name}
%{_datadir}/%{name}
%files devel
%defattr(-,root,root,-)
@ -181,6 +199,15 @@ popd
%{ruby_sitearch}/openbabel.so
%changelog
* Sun Nov 21 2010 Dominik Mierzejewski <rpm@greysector.net> 2.3.0-1
- build system switched to cmake
- enabled GUI
- enabled Eigen2
- updated to 2.3.0 final
- patched to fix various build issues
- split libs and GUI into separate subpackages
- fixed rpmlint warnings about strange file permissions
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 2.2.3-4
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild

View File

@ -1 +1 @@
7ea8845c54d6d3a9be378c78088af804 openbabel-2.2.3.tar.gz
effda01ed4a31d18d8e3d08191799608 openbabel-2.3.0.tar.gz