Name:           cfitsio
Version:        3.370
Release:        1%{?_dist_release}
Summary:        Library for manipulating FITS data files
Summary(ja):    FITS データファイルを処理するためのライブラリ

Group:          System Environment/Libraries
License:        MIT
URL:            http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html

Source0:        ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3370.tar.gz
# Unbundles zlib
Patch0:         cfitsio-zlib.patch
# Remove soname version check
Patch1:         cfitsio-noversioncheck.patch
# Some rearrangements in pkg-config file
Patch2:         cfitsio-pkgconfig.patch

BuildRoot:      %{_tmppath}/%{name}-%{version}-root
BuildRequires:  gcc-gfortran
BuildRequires:  bzip2-devel
BuildRequires:  zlib-devel

Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig

%description
CFITSIO is a library of C and FORTRAN subroutines for reading and writing 
data files in FITS (Flexible Image Transport System) data format. CFITSIO 
simplifies the task of writing software that deals with FITS files by 
providing an easy to use set of high-level routines that insulate the 
programmer from the internal complexities of the FITS file format. At the 
same time, CFITSIO provides many advanced features that have made it the 
most widely used FITS file programming interface in the astronomical 
community.

%package devel
Summary: Headers required when building programs against cfitsio
Summary(ja): cfitsio を用いるプログラムのビルドに必要なヘッダファイル
Group:  Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig

%description devel
Headers required when building a program against the cfitsio library.

%package static
Summary: Static cfitsio library
Summary(ja): cfitsio の静的ライブラリ
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}

%description static
Static cfitsio library; avoid use if possible.

%package docs
Summary: Documentation for cfitsio
Summary(ja): cfitsio のドキュメント
Group:  Documentation
BuildArch: noarch

%description docs
Stand-alone documentation for cfitsio.

%package -n fpack
Summary: FITS image compression and decompression utilities
Group: Applications/Engineering
Requires: %{name} = %{version}-%{release}

%description -n fpack
fpack optimally compresses FITS format images and funpack restores them
to the original state.

* Integer format images are losslessly compressed using the Rice
compression algorithm.
    * typically 30% better compression than GZIP
    * about 3 times faster compression speed than GZIP
    * about the same uncompression speed as GUNZIP 

* Floating-point format images are compressed with a lossy algorithm
    * truncates the image pixel noise by a user-specified amount to
      produce much higher compression than by lossless techniques
    * the precision of scientific measurements in the compressed image
      (relative to those in the original image) depends on the selected
       amount of compression

%prep
%setup -q -n cfitsio
%patch0 -p1
%patch1 -p1
%patch2 -p1

# remove bundled zlib
# not all the files inside zlib belong to zlib
pushd zlib
rm adler32.c crc32.c deflate.c infback.c inffast.c inflate.c inflate.h \
inftrees.c inftrees.h zlib.h deflate.h trees.c trees.h uncompr.c zconf.h \
zutil.c zutil.h crc32.h  inffast.h  inffixed.h 
popd

%build
%configure \
    --enable-reentrant \
%ifarch x86_64
    --enable-sse2 \
%endif
    --with-bzip2
make shared %{?_smp_mflags} 
make fpack %{?_smp_mflags}
make funpack %{?_smp_mflags}

%check
make testprog
LD_LIBRARY_PATH=. ./testprog > testprog.lis
cmp -s testprog.lis testprog.out
cmp -s testprog.fit testprog.std

%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_includedir}/%{name}
make LIBDIR=%{_lib} INCLUDEDIR=include/%{name} \
     CFITSIO_LIB=%{buildroot}%{_libdir} \
     CFITSIO_INCLUDE=%{buildroot}%{_includedir}/%{name} install
cp -p f{,un}pack %{buildroot}%{_bindir}

chmod 755 %{buildroot}%{_libdir}/libcfitsio.so.*
chmod 755 %{buildroot}%{_bindir}/f{,un}pack


%clean
rm -rf %{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root,-)
%doc README License.txt docs/changes.txt
%{_libdir}/libcfitsio.so.*

%files devel
%defattr(-,root,root,-)
%{_includedir}/%{name}
%{_libdir}/libcfitsio.so
%{_libdir}/pkgconfig/cfitsio.pc

%files static
%defattr(-,root,root,-)
%{_libdir}/libcfitsio.a

%files docs
%defattr(-,root,root,-)
%doc docs/fitsio.doc docs/fitsio.pdf docs/cfitsio.doc docs/cfitsio.pdf License.txt

%files -n fpack
%defattr(-,root,root,-)
%doc docs/fpackguide.pdf License.txt
%{_bindir}/fpack
%{_bindir}/funpack

%changelog
* Tue Feb 24 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 3.370-1
- new upstream release
- moved docs subpackages to Documentation Group

* Sat Sep  3 2011 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 3.280-1
- new upstream release
- added Patch1

* Mon Sep 27 2010 Shu KONNO <owa@bg.wakwak.com> 3.240-2
- rebuilt with rpm-4.8.1 for pkg-config

* Thu Apr 15 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 3.240-1
- new upstream release

* Sun Aug 30 2009 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 3.140-3
- Initial build for Vine Linux

* Fri Jul 24 2009 Matthew Truch <matt at truch.net> - 3.140-2
- Bump to include proper tarball.

* Tue Jul 21 2009 Matthew Truch <matt at truch.net> - 3.140-1
- Update to upstream 3.140 release.
- Bump for mass rebuild.

* Wed Jun 17 2009 Matthew Truch <matt at truch.net> - 3.130-5
- Separate -docs noarch subpackage as per BZ 492438.
- Explicitly set file attributes correctly.  

* Tue Mar 10 2009 Matthew Truch <matt at truch.net> - 3.130-4
- Set correct version in pkgconfig .pc file.  

* Sun Feb 22 2009 Matthew Truch <matt at truch.net> - 3.130-3
- Re-check testprogram output.
- Build for koji, rpm, gcc upgrade.  

* Thu Feb 5 2009 Matthew Truch <matt at truch.net> - 3.130-2
- Fix source file naming typo.

* Wed Feb 4 2009 Matthew Truch <matt at truch.net> - 3.130-1
- Update to 3.130 upstream.

* Sat Sep 20 2008 Matthew Truch <matt at truch.net> - 3.100-2
- Test library with included test-suite.  

* Fri Sep 19 2008 Matthew Truch <matt at truch.net> - 3.100-1
- Update to 3.100 upstream.
  Includes bugfixes and new compression scheme.

* Fri Mar 7 2008 Matthew Truch <matt at truch.net> - 3.060-3
- Properly indicated include and lib directories in .pc file
  (BZ 436539)
- Fix typo in -static descrition.

* Mon Feb 11 2008 Matthew Truch <matt at truch.net> - 3.060-2
- Bump release for rebuild.

* Fri Nov 9 2007 Matthew Truch <matt at truch.net> - 3.060-1
- Update to 3.060 bugfix release.
- Add static package (BZ 372801)

* Tue Aug 21 2007 Matthew Truch <matt at truch.net> - 3.040-3
- Bump release for rebuild (build-id etc.)

* Thu Aug 2 2007 Matthew Truch <matt at truch.net> - 3.040-2
- Update License tag

* Mon Jul 9 2007 Matthew Truch <matt at truch.net> - 3.040-1
- Upgrade to version 3.040 of cfitsio.

* Fri Feb 16 2007 Matthew Truch <matt at truch.net> - 3.030-2
- Require pkgconfig for -devel.
- export CC=gcc so we don't clobber $RPM_OPT_FLAGS, thereby 
  ruining any -debuginfo packages.  
  See RedHat Bugzilla 229041.

* Fri Jan 5 2007 Matthew Truch <matt at truch.net> - 3.030-1
- Upgrade to version 3.020 of cfitsio.

* Fri Dec 8 2006 Matthew Truch <matt at truch.net> - 3.020-3
- Commit correct patch to configure and Makefiles.

* Fri Dec 8 2006 Matthew Truch <matt at truch.net> - 3.020-2
- Modify spec file to install to correct directories.
- Package cfitsio.pc file in -devel package.

* Wed Dec 6 2006 Matthew Truch <matt at truch.net> - 3.020-1
- Upgrade to revision 3.020 of cfitsio.

* Mon Aug 28 2006 Matthew Truch <matt at truch.net> - 3.006-6
- Bump release for rebuild in prep. for FC6.

* Thu Mar 30 2006 Matthew Truch <matt at truch.net> - 3.006-5
- Include defattr() for devel package as well - bug 187366

* Sun Mar 19 2006 Matthew Truch <matt at truch.net> - 3.006-4
- Don't use macro {buildroot} in build, only in install as per 
  appended comments to Bugzilla bug 172042
  
* Fri Mar 10 2006 Matthew Truch <matt at truch.net> - 3.006-3
- Point to f95 instead of g95 as per bugzilla bug 185107

* Tue Feb 28 2006 Matthew Truch <matt at truch.net> - 3.006-2
- Fix spelling typo in name of License.txt file.

* Tue Feb 28 2006 Matthew Truch <matt at truch.net> - 3.006-1
- Use new 3.006 fully official stable (non-beta) upstream package.

* Tue Feb 28 2006 Matthew Truch <matt at truch.net> - 3.005-0.2.beta
- Bump release for FC5 extras rebuild.

* Fri Dec 23 2005 Matthew Truch <matt at truch.net> - 3.005-0.1.beta
- Update to 3.005beta release.

* Mon Nov 14 2005 Matthew Truch <matt at truch.net> - 3.004-0.12.b
- Put in proper URL and Source addresses.
- Sync up spec files.

* Sun Nov 13 2005 Matthew Truch <matt at truch.net> - 3.004-0.11.b
- Clean up unused code in spec file.

* Sun Nov 13 2005 Matthew Truch <matt at truch.net> - 3.004-0.10.b
- Set environment variables correctly.
- Include patch so Makefile will put things where they belong.

* Sun Nov 13 2005 Matthew Truch <matt at truch.net> - 3.004-0.9.b
- Set libdir and includedir correctly for build process.

* Sat Nov 12 2005 Matthew Truch <matt at truch.net> - 3.004-0.8.b
- unset FC once we are done with the build

* Sat Nov 12 2005 Ed Hill <ed@eh3.com> - 3.004-0.7.b
- shared libs and small cleanups

* Sun Nov 06 2005 Matthew Truch <matt at truch.net> - 3.004-0.6.b
- Own include directory created by the devel package.

* Sun Nov 06 2005 Matthew Truch <matt at truch.net> - 3.004-0.5.b
- Shorten summary.
- Improve specfile post and postun syntax.
- Install headers in cfitsio include subdir.
- Include more documentation provided in tarball.

* Sun Nov 06 2005 Matthew Truch <matt at truch.net> - 3.004-0.4.b
- Require cfitsio for cfitsio-devel

* Sat Nov 05 2005 Matthew Truch <matt at truch.net> - 3.004-0.3.b
- Use proper virgin tarball from upstream.

* Sun Oct 30 2005 Matthew Truch <matt at truch.net> - 3.004-0.2.b
- Include gcc-gfortran build requirment and make sure it gets used.
- Use macros instead of hard coded paths.
- Include home page in description

* Sat Oct 29 2005 Matthew Truch <matt at truch.net> - 3.004-0.1.b
- Initial spec file for Fedora Extras.

