Tim Fenn a54da77
Summary: Crystallographic Binary File and Image Library
Tim Fenn a54da77
Name: CBFlib
Tim Fenn a54da77
Version: 0.9.2.3
Tim Fenn a54da77
Release: 2%{?dist}
Tim Fenn a54da77
# library files (*.so*) are LGPLv2+, all else is GPLv2+
Tim Fenn a54da77
License: GPLv2+ and (GPLv2+ or LGPLv2+)
Tim Fenn a54da77
Group: System Environment/Libraries
Tim Fenn a54da77
URL: http://www.bernstein-plus-sons.com/software/CBF
Tim Fenn a54da77
Source0: http://downloads.sourceforge.net/cbflib/%{name}-%{version}.tar.gz
Tim Fenn a54da77
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Tim Fenn a54da77
BuildRequires: gcc-gfortran
Tim Fenn a54da77
Tim Fenn a54da77
%description
Tim Fenn a54da77
CBFlib (Crystallographic Binary File library) is a library of ANSI-C
Tim Fenn a54da77
functions providing a simple mechanism for accessing Crystallographic
Tim Fenn a54da77
Binary Files (CBF files) and Image-supporting CIF (imgCIF) files. The
Tim Fenn a54da77
CBFlib API is loosely based on the CIFPARSE API for mmCIF files. Like
Tim Fenn a54da77
CIFPARSE, CBFlib does not perform any semantic integrity checks;
Tim Fenn a54da77
rather it simply provides functions to create, read, modify and write
Tim Fenn a54da77
CBF binary data files and imgCIF ASCII data files.
Tim Fenn a54da77
Tim Fenn a54da77
%package devel
Tim Fenn a54da77
Summary: Header files and library for developing programs with cbf
Tim Fenn a54da77
Requires: %{name}%{?_isa} = %{version}-%{release}
Tim Fenn a54da77
Group: Development/Libraries
Tim Fenn a54da77
Tim Fenn a54da77
%description devel
Tim Fenn a54da77
Tim Fenn a54da77
This package contains libraries and header files needed for program
Tim Fenn a54da77
development using the crystallographic binary file and image library.
Tim Fenn a54da77
Tim Fenn a54da77
%prep
Tim Fenn a54da77
%setup -q -n %{name}-%{version}
Tim Fenn a54da77
Tim Fenn a54da77
# various cleanups
Tim Fenn a54da77
iconv -f iso8859-15 -t utf-8 doc/cif_img_1.5.3_8Jul07.dic > doc/cif_img_1.5.3_8Jul07.dic.conv && mv -f doc/cif_img_1.5.3_8Jul07.dic.conv doc/cif_img_1.5.3_8Jul07.dic 
Tim Fenn a54da77
rm doc/.symlinks
Tim Fenn a54da77
rm doc/.undosymlinks
Tim Fenn a54da77
chmod 644 examples/*.c
Tim Fenn a54da77
Tim Fenn a54da77
%build
Tim Fenn a54da77
# make %{?_smp_mflags}
Tim Fenn a54da77
cd src
Tim Fenn a54da77
gcc -fPIC -DCBF_DONT_USE_LONG_LONG -D_USE_XOPEN_EXTENDED %{optflags} -c *.c ../examples/img.c -I../include/ -I../examples/
Tim Fenn a54da77
gcc -shared -Wl,-soname,libcbf.so.0 -o libcbf.so.0.0.0 *.o -lm
Tim Fenn a54da77
rm *.o
Tim Fenn a54da77
gfortran -fPIC -fno-range-check %{optflags} -c *.f90 -I../include/
Tim Fenn a54da77
gfortran -shared -Wl,-soname,libfcb.so.0 -o libfcb.so.0.0.0 *.o
Tim Fenn a54da77
Tim Fenn a54da77
cd ../examples
Tim Fenn a54da77
utilsublist="adscimg2cbf
Tim Fenn a54da77
cbf2adscimg
Tim Fenn a54da77
adscimg2cbf"
Tim Fenn a54da77
for i in $utilsublist; do
Tim Fenn a54da77
  gcc %{optflags} ${i}.c ${i}_sub.c -I../include ../src/libcbf.so.0.0.0 -o ${i}
Tim Fenn a54da77
done
Tim Fenn a54da77
utillist="convert_image
Tim Fenn a54da77
convert_minicbf
Tim Fenn a54da77
makecbf
Tim Fenn a54da77
img2cif
Tim Fenn a54da77
cif2cbf
Tim Fenn a54da77
cif2c"
Tim Fenn a54da77
for i in $utillist; do
Tim Fenn a54da77
  gcc %{optflags} ${i}.c -I../include ../src/libcbf.so.0.0.0 -o ${i} -lm
Tim Fenn a54da77
done
Tim Fenn a54da77
Tim Fenn a54da77
%install
Tim Fenn a54da77
rm -rf %{buildroot}
Tim Fenn a54da77
# make install DESTDIR=%{buildroot} INSTALL='install -p'
Tim Fenn a54da77
Tim Fenn a54da77
mkdir -p %{buildroot}%{_libdir}
Tim Fenn a54da77
install -p -m 644 src/*.so* %{buildroot}%{_libdir}/
Tim Fenn a54da77
pushd %{buildroot}%{_libdir}
Tim Fenn a54da77
chmod +x libcbf.so.0.0.0
Tim Fenn a54da77
ln -sf libcbf.so.0.0.0 libcbf.so.0
Tim Fenn a54da77
ln -sf libcbf.so.0.0.0 libcbf.so
Tim Fenn a54da77
chmod +x libfcb.so.0.0.0
Tim Fenn a54da77
ln -sf libfcb.so.0.0.0 libfcb.so.0
Tim Fenn a54da77
ln -sf libfcb.so.0.0.0 libfcb.so
Tim Fenn a54da77
popd
Tim Fenn a54da77
Tim Fenn a54da77
mkdir -p %{buildroot}%{_bindir}
Tim Fenn a54da77
utilsublist="adscimg2cbf
Tim Fenn a54da77
cbf2adscimg
Tim Fenn a54da77
adscimg2cbf"
Tim Fenn a54da77
for i in $utilsublist; do
Tim Fenn a54da77
  install -p -m 755 examples/${i} %{buildroot}%{_bindir}/
Tim Fenn a54da77
done
Tim Fenn a54da77
utillist="convert_image
Tim Fenn a54da77
convert_minicbf
Tim Fenn a54da77
makecbf
Tim Fenn a54da77
img2cif
Tim Fenn a54da77
cif2cbf
Tim Fenn a54da77
cif2c"
Tim Fenn a54da77
for i in $utillist; do
Tim Fenn a54da77
  install -p -m 755 examples/${i} %{buildroot}%{_bindir}/
Tim Fenn a54da77
done
Tim Fenn a54da77
Tim Fenn a54da77
mkdir -p %{buildroot}%{_includedir}/cbf
Tim Fenn a54da77
install -p -m 644 include/* %{buildroot}%{_includedir}/cbf/
Tim Fenn a54da77
install -p -m 644 examples/img.h %{buildroot}%{_includedir}/cbf/
Tim Fenn a54da77
Tim Fenn a54da77
%post -p /sbin/ldconfig
Tim Fenn a54da77
Tim Fenn a54da77
%postun -p /sbin/ldconfig
Tim Fenn a54da77
Tim Fenn a54da77
%clean
Tim Fenn a54da77
rm -rf %{buildroot}
Tim Fenn a54da77
Tim Fenn a54da77
%files
Tim Fenn a54da77
%defattr(-,root,root,-)
Tim Fenn a54da77
%doc README doc/gpl.txt
Tim Fenn a54da77
# GPLv2+
Tim Fenn a54da77
%{_bindir}/adscimg2cbf
Tim Fenn a54da77
%{_bindir}/cbf2adscimg
Tim Fenn a54da77
%{_bindir}/convert_image
Tim Fenn a54da77
%{_bindir}/convert_minicbf
Tim Fenn a54da77
%{_bindir}/makecbf
Tim Fenn a54da77
%{_bindir}/img2cif
Tim Fenn a54da77
%{_bindir}/cif2cbf
Tim Fenn a54da77
%{_bindir}/cif2c
Tim Fenn a54da77
# LGPLv2+
Tim Fenn a54da77
%{_libdir}/libcbf.so.0.0.0
Tim Fenn a54da77
%{_libdir}/libcbf.so.0
Tim Fenn a54da77
%{_libdir}/libfcb.so.0.0.0
Tim Fenn a54da77
%{_libdir}/libfcb.so.0
Tim Fenn a54da77
Tim Fenn a54da77
%files devel
Tim Fenn a54da77
%defattr(-,root,root,-)
Tim Fenn a54da77
# GPLv2+
Tim Fenn a54da77
%doc doc
Tim Fenn a54da77
# LGPLv2+
Tim Fenn a54da77
%{_libdir}/libcbf.so
Tim Fenn a54da77
%{_libdir}/libfcb.so
Tim Fenn a54da77
# GPLv2+
Tim Fenn a54da77
%{_includedir}/cbf
Tim Fenn a54da77
Tim Fenn a54da77
%changelog
Tim Fenn a54da77
* Sun Jan 29 2012 Tim Fenn <tim.fenn@gmail.com> - 0.9.2.3-2
Tim Fenn a54da77
- update requires
Tim Fenn a54da77
- fix permissions of .c files in examples directory
Tim Fenn a54da77
Tim Fenn a54da77
* Fri Dec 30 2011 Tim Fenn <tim.fenn@gmail.com> - 0.9.2.3-1
Tim Fenn a54da77
- update to 0.9.2.3
Tim Fenn a54da77
- remove duplicate adscimg2cbf
Tim Fenn a54da77
- fix typo
Tim Fenn a54da77
- use optflags and buildroot instead of RPM_OPT_FLAGS and RPM_BUILD_ROOT
Tim Fenn a54da77
- keep gpl.txt in doc dir
Tim Fenn a54da77
Tim Fenn a54da77
* Fri Jul 01 2011 Tim Fenn <fenn@stanford.edu> - 0.9.2.2-1
Tim Fenn a54da77
- update to 0.9.2.2 (removes pycifrw dependency)
Tim Fenn a54da77
Tim Fenn a54da77
* Mon Nov 15 2010 Tim Fenn <fenn@stanford.edu> - 0.9.1-1
Tim Fenn a54da77
- update to 0.9.1rc2
Tim Fenn a54da77
- add lm to linker for utils
Tim Fenn a54da77
Tim Fenn a54da77
* Mon Mar 08 2010 Tim Fenn <fenn@stanford.edu> - 0.9.0-1
Tim Fenn a54da77
- update to 0.9.0
Tim Fenn a54da77
- include examples
Tim Fenn a54da77
Tim Fenn a54da77
* Wed Dec 09 2009 Tim Fenn <fenn@stanford.edu> - 0.8.1-2
Tim Fenn a54da77
- add a define to cflags
Tim Fenn a54da77
- fix up doc
Tim Fenn a54da77
- license update
Tim Fenn a54da77
Tim Fenn a54da77
* Wed Sep 16 2009 Tim Fenn <fenn@stanford.edu> - 0.8.1-1
Tim Fenn a54da77
- initial build