Name: mit-scheme-c
Version: 9.2
Release: 8%{?dist}
Group: Development/Tools
Summary: MIT/GNU Scheme Interpreter
License: GPLv2+
URL:     https://www.gnu.org/software/mit-scheme/
Source0: http://ftp.gnu.org/gnu/mit-scheme/stable.pkg/%{version}/%{name}-%{version}.tar.gz
# clean up doc directories to conform with normal Fedora locations
Patch0: doc-dir.patch
Patch1: ld-fixup.patch

# don't have the time or means to deal with other architectures right now
ExclusiveArch: x86_64

BuildRequires: gcc
BuildRequires: automake
BuildRequires: texinfo-tex
BuildRequires: autoconf-archive
BuildRequires: libX11-devel
BuildRequires: ncurses-devel
BuildRequires: openssl-devel
BuildRequires: mhash-devel
BuildRequires: libmcrypt-devel
BuildRequires: gdbm-devel
BuildRequires: postgresql-devel
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
Requires: libX11
Requires: ncurses
Requires: openssl
Requires: mhash
Requires: libmcrypt
Requires: gdbm
Requires: postgresql-libs

# don't try to build .debugsource packages
%undefine _debugsource_packages
# don't do buildroot check
%define __arch_install_post %{nil}
%define __os_install_post %{nil}

%description
MIT/GNU Scheme is an implementation of the Scheme programming language.
This package is based on the portable c version of the MIT/GNU scheme
code.

%prep
%autosetup -p1 -n %{name}-%{version}
pushd doc
autoreconf --install --sym
popd

%build
pushd src
export CFLAGS="%{optflags}"
sh etc/make-liarc.sh --libdir=/usr/lib64 --prefix=/usr
popd

pushd doc
%configure --prefix=/usr --enable-pdf --enable-ps
# don't parallelize build of docs (probably a bug that needs to be cleaned up in Makefiles)
%{__make} -j1
popd

%install
pushd src
%make_install
popd

pushd doc
%make_install
# clean up info dir file and this scheme file that gets installed
rm -f %{buildroot}%{_infodir}/dir %{buildroot}%{_infodir}/mit-scheme-doc-config.scm*
popd

%post
/sbin/install-info %{_infodir}/mit-scheme-ffi.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info %{_infodir}/mit-scheme-imail.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info %{_infodir}/mit-scheme-ref.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info %{_infodir}/mit-scheme-sos.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info %{_infodir}/mit-scheme-user.info.gz %{_infodir}/dir > /dev/null 2>&1 || :

%preun
/sbin/install-info --delete %{_infodir}/mit-scheme-ffi.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info --delete %{_infodir}/mit-scheme-imail.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info --delete %{_infodir}/mit-scheme-ref.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info --delete %{_infodir}/mit-scheme-sos.info.gz %{_infodir}/dir > /dev/null 2>&1 || :
/sbin/install-info --delete %{_infodir}/mit-scheme-user.info.gz %{_infodir}/dir > /dev/null 2>&1 || :

%files
%license src/COPYING
%doc src/README.txt changelog.txt
%{_libdir}/%{name}/*
%{_bindir}/*
%{_infodir}/*
%{_mandir}/man1/*

%package docs
Summary: MIT/GNU Scheme documentation
License: FDLv1.2

%description docs
Documentation for MIT/GNU Scheme

%files docs
%{_docdir}/%{name}/*

%changelog
* Fri Feb 19 2021 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-8
- Add pdf and ps docs back to build.

* Sun Jun 07 2020 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-7
- Fix multiple definition of C_return_value.
- Temporarily disable producing pdf and ps docs while figuring out texi2dvi issue.

* Wed Oct 02 2019 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-6
- Don't do buildroot check

* Thu Feb 07 2019 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-5
- Fix cleanup of buildroot string

* Fri Feb 01 2019 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-4
- Add BuildRequires for gcc

* Mon Oct 23 2017 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-3
- add optflags to compile

* Mon Oct 23 2017 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-2
- Add optional packages for build

* Sat Oct 21 2017 Jerry Snitselaar <jsnitsel@redhat.com> - 9.2-1
- initial build