Blob Blame History Raw
%global _dirname gambc-v4_7_2-devel

# Using -O2 on ppc64 triggers ICE with gcc < 4.6.4
# http://www.iro.umontreal.ca/~gambit/bugzilla/show_bug.cgi?id=155
# https://bugzilla.redhat.com/show_bug.cgi?id=808285
# Use --with ppc64opt2 when rebuilding to see if this is fixed
%bcond_with ppc64opt2

%if 0%{?el6}
%ifarch ppc64
%if ! %{with ppc64opt2}
%global optflags %(echo %{optflags} | sed 's/-O2 /-O1 /')
%endif
%endif # ppc64
%endif # el6

Name:           gambit-c
Version:        4.7.2
Release:        3%{?dist}
Summary:        Scheme programming system

Group:          Development/Languages
License:        ASL 2.0 or LGPLv2
URL:            http://www.iro.umontreal.ca/~gambit
Source0:        http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/%{_dirname}.tgz
Source1:        gambit-init.el
Patch0:         gambc-v4_2_8-modtime.patch
Patch1:         gambc-v4_6_6-reduce-opt.patch

BuildRequires:  emacs
Requires:       gcc

%description
Gambit-C includes a Scheme interpreter and a Scheme compiler which can
be used to build standalone executables.  Because the compiler
generates portable C code it is fairly easy to port to any platform
with a decent C compiler.

The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme
standards.  The full numeric tower is implemented, including: infinite
precision integers (bignums), rationals, inexact reals (floating point
numbers), and complex numbers.


%package        doc
Summary:        Documentation for %{name}
Group:          Documentation

BuildArch:      noarch
Requires:       %{name} = %{version}-%{release}
Requires(post):  info
Requires(preun): info
# switch to noarch
Obsoletes:      gambit-c-doc < %{version}-%{release}

%description    doc
Gambit-C includes a Scheme interpreter and a Scheme compiler which can
be used to build standalone executables.  Because the compiler
generates portable C code it is fairly easy to port to any platform
with a decent C compiler.

This package contains the Gambit-C user manual in HTML and PDF formats.


%package -n emacs-gambit
Summary:        Gambit-C editing mode for Emacs
Group:          Applications/Editors

BuildArch:      noarch
Requires:       emacs(bin) >= %{_emacs_version}

%description -n emacs-gambit
An Emacs mode for editing Gambit-C Scheme source code.

%package -n emacs-gambit-el
Summary:        Elisp source file for emacs-gambit
Group:          Applications/Editors

BuildArch:      noarch
Requires:       emacs-gambit = %{version}-%{release}

%description -n emacs-gambit-el
Elisp source file for the Gambit-C editing mode for Emacs.


%prep
%setup -q -n %{_dirname}
%patch0 -p1 -b .modtime

%if 0%{?el6}
%ifarch ppc64
%if ! %{with ppc64opt2}
%patch1 -p1 -b .reduce-opt
%endif
%endif # ppc64
%endif # el6

touch -r doc/gambit-c.info-2{,.tstamp}
iconv -f iso88591 -t utf8 doc/gambit-c.info-2 -o doc/gambit-c.info-2.utf8
touch -r doc/gambit-c.info-2{,.utf8}
mv doc/gambit-c.info-2{.utf8,}
# Permission fixes
chmod -x lib/*.{c,h}


%build
%configure --enable-single-host \
           --enable-gcc-opts \
           --bindir=%{_libdir}/%{name}/bin \
           --libdir=%{_libdir}/%{name}

make %{?_smp_mflags}

# Compile emacs module
(cd misc && emacs -batch -f batch-byte-compile gambit.el)


%check
make check


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_bindir}
for i in gsc gsi
do
  ln -sf ../%{_lib}/%{name}/bin/$i $RPM_BUILD_ROOT%{_bindir}/$i
done
cat > $RPM_BUILD_ROOT%{_bindir}/gsix <<EOF
#!/bin/sh
%{_libdir}/%{name}/bin/six $@
EOF
chmod +x $RPM_BUILD_ROOT%{_bindir}/gsix

# Remove duplicate docs
rm -rf $RPM_BUILD_ROOT%{_prefix}/doc

# Emacs mode files
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
cp -p misc/gambit.elc $RPM_BUILD_ROOT%{_emacs_sitelispdir}
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_emacs_sitestartdir}

# Link static libs
(cd $RPM_BUILD_ROOT%{_libdir} && ln -s %{name}/*.a .)


%clean
rm -rf $RPM_BUILD_ROOT


%post doc
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir 2>/dev/null || :


%preun doc
if [ $1 -eq 0 ]; then
  /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir 2>/dev/null || :
fi


%files
%defattr(-,root,root,-)
%doc LGPL.txt LICENSE-2.0.txt README
%{_bindir}/*
%{_includedir}/*.h
%{_mandir}/man1/gsi.*
%{_libdir}/%{name}
%{_libdir}/*.a

%files -n emacs-gambit
%defattr(-,root,root,-)
%doc LGPL.txt LICENSE-2.0.txt
%{_emacs_sitelispdir}/*.elc
%{_emacs_sitestartdir}/gambit-init.el

%files -n emacs-gambit-el
%defattr(-,root,root,-)
%{_emacs_sitelispdir}/*.el

%files doc
%defattr(-,root,root,-)
%doc doc/gambit-c.html doc/gambit-c.pdf
# don't package examples until makefiles are fixed
# examples
%{_infodir}/*



%changelog
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri Feb  7 2014 Michel Salim <salimma@fedoraproject.org> - 4.7.2-1
- Update to 4.7.2

* Tue Nov 05 2013 Kyle McMartin <kyle@fedoraproject.org>
- Fix FTBFS because of dirname macro, use _dirname instead.

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6.6-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Tue Jun  5 2012 Michel Salim <salimma@fedoraproject.org> - 4.6.6-1
- Update to 4.6.6

* Sat Mar 31 2012 Michel Salim <salimma@fedoraproject.org> - 4.6.5-2
- Reduce optimization level on ppc64 to work around gcc compilation error

* Thu Mar 29 2012 Michel Salim <salimma@fedoraproject.org> - 4.6.5-1
- Update to 4.6.5
- Drop termite subpackages, they have been disabled for many releases
- Disable ppc64 target for now; broken since 4.6.4

* Wed Feb 15 2012 Michel Salim <salimma@fedoraproject.org> - 4.6.4-1
- Update to 4.6.4

* Wed Feb  1 2012 Michel Salim <salimma@fedoraproject.org> - 4.6.3-1
- Update to 4.6.3

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Wed Jul 27 2011 Michel Salim <salimma@fedoraproject.org> - 4.6.1-1
- Update to 4.6.1

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Mon Jul 12 2010 Michel Salim <salimma@fedoraproject.org> - 4.6.0-2
- noarch -doc subpackage properly obsoletes older, arched variant

* Mon Jul 12 2010 Michel Salim <salimma@fedoraproject.org> - 4.6.0-1
- Update to 4.6.0
- Bundle license text with independent Emacs subpackage

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Jan 28 2009 Michel Salim <salimma@fedoraproject.org> - 4.3.2-2
- If termite packages are disabled, the corresponding gambit-c packages
  Provides: and Obsoletes: them

* Fri Dec 19 2008 Michel Salim <salimma@fedoraproject.org> - 4.3.2-1
- Update to 4.3.2

* Tue Oct 14 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.9-1
- Update to 4.2.9
- Disable Termite for now; still broken
- When built on EL-5, depend directly on emacs binary rather than emacs(bin)

* Mon Jul 14 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.8-6
- Put include files and libraries in standard paths

* Thu Jun 19 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.8-5
- Package Termite as a module instead of bundling a custom Gambit-C with it

* Thu Jun 19 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.8-4
- Permission fixes for Termite subpackage

* Wed Jun 18 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.8-3
- Bundle Termite as a subpackage

* Sat Jun  7 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.8-2
- Rename six symlink to avoid clash with existing six package

* Mon Jun  2 2008 Michel Salim <salimma@fedoraproject.org> - 4.2.8-1
- Update to 4.2.8
- Rename to gambit-c

* Fri Dec 28 2007 Gerard Milmeister <gemi@bluewin.ch> - 4.1.2-1
- new release 4.1.2

* Sat Apr 14 2007 Gerard Milmeister <gemi@bluewin.ch> - 4.0-1.b22
- new version 4.0b22

* Sun Oct 15 2006 Gerard Milmeister <gemi@bluewin.ch> - 4.0-1.b20
- new version 4.0b20

* Sat Feb  4 2006 Gerard Milmeister <gemi@bluewin.ch> - 4.0-1.b17
- new version 4.0b17

* Mon Nov  7 2005 Gerard Milmeister <gemi@bluewin.ch> - 4.0-1.b15
- New Version 4.0b15

* Fri Aug 12 2005 Gerard Milmeister <gemi@bluewin.ch> - 4.0-1.b14
- First Fedora release