Blob Blame History Raw
#%global _default_patch_fuzz 2

%global bootstrap 0

%global shortversion 5.0.0
%global libver 9

Name:           chicken
Version:        %{shortversion}
Release:        5%{?dist}
Summary:        A practical and portable Scheme system

License:        BSD
URL:            http://call-cc.org
Source0:        http://code.call-cc.org/releases/%{shortversion}/%{name}-%{version}.tar.gz
Patch0:         make_cflags_work.patch
BuildRequires:  gcc
BuildRequires:  chrpath
Requires:       chicken-libs%{?_isa} = %{version}-%{release}

# Old docs subpackage, which is no longer a subpackage
Obsoletes:      chicken-doc < 4.8.0.5-3
Provides:       chicken-doc = %{version}-%{release}

%if 0%{?rhel}
BuildRequires:  net-tools
%else
BuildRequires:  hostname
%endif

%if %{bootstrap} == 0
BuildRequires:  chicken
%endif

%package libs
Summary:        Chicken Scheme runtime library

%description libs
The Chicken Scheme runtime library, linked to by programs compiled with
Chicken.

%description
CHICKEN is a compiler for the Scheme programming language.
CHICKEN produces portable, efficient C, supports almost all of the R5RS
Scheme language standard, and includes many enhancements and extensions.

%prep
%setup -q -n %{name}-%{version}
%patch0 -p1

%build
%if %{bootstrap} == 0

# This removes all C code from the repo, and leaves us only with Scheme code.
# Otherwise, it will try to compile C, defeating the point of bootstrapping.
make PLATFORM=linux spotless

# The above command nukes a necessary buildtag file, and there's no way that
# I can find to regenerate it - so instead we just generate it ourselves.
echo "#define C_BUILD_TAG \"compiled $(date '+%Y-%m-%d') on $(hostname)\"" > buildtag.h

%endif

# Chicken's build system is freaking horrible.
# So, Fedora requires that we use optflags here - makes sense, they contain
# some security related flags, etc. The issue is that Chicken uses the same
# flags that it was compiled with when it compiles code for the end-user.
# So if we pass -Wall here, it'll give the user a bunch of warnings when they
# compile anything at all with `csc`. So that's lovely. -codeblock
make CFLAGS="$(echo "%{optflags}" | sed 's/-Wall//') -Wformat" \
     PREFIX=%{_prefix} \
     BINDIR=%{_bindir} \
     LIBDIR=%{_libdir} \
     DATADIR=%{_datadir}/chicken \
     INCLUDEDIR=%{_includedir}/chicken \
     INFODIR=%{_infodir}/chicken \
     TOPMANDIR=%{_mandir} \
     DOCDIR=%{_docdir}/chicken \
     PLATFORM=linux

%install
make CFLAGS="$(echo "%{optflags}" | sed 's/-Wall//') -Wformat" \
     PREFIX=%{_prefix} \
     BINDIR=%{_bindir} \
     LIBDIR=%{_libdir} \
     DATADIR=%{_datadir}/chicken \
     INCLUDEDIR=%{_includedir}/chicken \
     INFODIR=%{_infodir}/chicken \
     TOPMANDIR=%{_mandir} \
     DOCDIR=%{_docdir}/chicken \
     DESTDIR=%{buildroot} \
     PLATFORM=linux install

rm -f %{buildroot}/%{_docdir}/%{name}/LICENSE %{buildroot}/%{_docdir}/%{name}/README

find %{buildroot} -name \*.so -exec chrpath --delete \{\} \;
find %{buildroot} -name \*.a -exec rm \{\} \;
chrpath --delete %{buildroot}/%{_bindir}/chicken*
chrpath --delete %{buildroot}/%{_bindir}/csc
chrpath --delete %{buildroot}/%{_bindir}/csi

mv %{buildroot}/%{_includedir}/chicken/chicken/* %{buildroot}/%{_includedir}/chicken
rmdir %{buildroot}/%{_includedir}/chicken/chicken

%check
make PLATFORM=linux check

%ldconfig_scriptlets libs

%files
%doc README LICENSE
%dir %{_datadir}/chicken
%{_datadir}/chicken/setup.defaults
%{_bindir}/chicken*
%{_bindir}/csc
%{_bindir}/csi
%{_bindir}/feathers
%dir %{_includedir}/chicken
%{_includedir}/chicken/chicken-config.h
%{_includedir}/chicken/chicken.h
%{_datarootdir}/chicken/feathers.tcl
%dir %{_libdir}/chicken
%dir %{_libdir}/chicken/%{libver}
%{_libdir}/chicken/%{libver}/*
%{_mandir}/man1/*
%{_docdir}/chicken

%files libs
%{_libdir}/libchicken.so*

%changelog
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Fri Mar 15 2019 Rick Elrod <relrod@redhat.com> - 5.0.0-2
- Build from the bootstrap.

* Fri Mar 15 2019 Rick Elrod <relrod@redhat.com> - 5.0.0-1
- Bump for latest release
- Drop CVE patches
- Bump libver.

* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon Jul 17 2017 Ricky Elrod <relrod@redhat.com> - 4.12.0-3
- Fix for CVE-2017-11343

* Thu May 11 2017 Ricky Elrod <relrod@redhat.com> - 4.12.0-2
- And use the bootstrap.

* Thu May 11 2017 Ricky Elrod <relrod@redhat.com> - 4.12.0-1
- Latest upstream release.
- Bootstrap for el7 aarch64.

* Tue Mar 21 2017 Ricky Elrod <relrod@redhat.com> - 4.11.0-5
- Fix for CVE-2017-6949

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.11.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Tue Aug 23 2016 Ricky Elrod <relrod@redhat.com> - 4.11.0-3
- Patch around CVE-2016-6830 and CVE-2016-6831

* Fri Jul 08 2016 Ricky Elrod <relrod@redhat.com> - 4.11.0-2
- Rebuild.

* Tue Jul 05 2016 Ricky Elrod <relrod@redhat.com> - 4.11.0-1
- Latest upstream release.

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Aug 10 2015 Ricky Elrod <relrod@redhat.com> - 4.10.0-1
- Latest upstream release.
- Drop former patches.

* Mon Jun 15 2015 Ricky Elrod <relrod@redhat.com> - 4.9.0.1-4
- Apply patch to work around out of bounds bug:
  https://bugzilla.redhat.com/show_bug.cgi?id=1231871

* Tue Jan 13 2015 Ricky Elrod <relrod@redhat.com> - 4.9.0.1-3
- Apply patch to work around buffer overrun:
  https://bugzilla.redhat.com/show_bug.cgi?id=1181483

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

* Thu Aug 07 2014 Ricky Elrod <relrod@redhat.com> - 4.9.0.1-1
- Latest upstream release.

* Sat Jun 07 2014 Ricky Elrod <relrod@redhat.com> - 4.9.0-4
- Rebuild from previous bootstrap.

* Sat Jun 07 2014 Ricky Elrod <relrod@redhat.com> - 4.9.0-3
- Bootstrap for el7.

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

* Wed Jun 4 2014 Ricky Elrod <codeblock@fedoraproject.org> - 4.9.0-1
- Latest upstream release.

* Tue May 20 2014 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.6-2
- Patch for CVE-2014-3776.

* Thu Apr 24 2014 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.6-1
- Upstream 4.8.0.6.

* Sat Dec 14 2013 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.5-3
- Get rid of docs subpackage.
- Add a -libs subpackage for the runtime library.

* Sun Dec 8 2013 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.5-2
- Add -Wformat for BZ #1037013.

* Sun Nov 24 2013 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.5-1
- Upstream 4.8.0.5.

* Fri Sep 27 2013 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.4-4
- Add upstream patch for CVE-2013-4385, until 4.8.0.5 is released.
  http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=commitdiff;h=cd1b9775005ebe220ba11265dbf5396142e65f26

* Mon Sep 02 2013 Ricky Elrod <codeblock@fedoraproject.org> - 4.8.0.4-3
- Nuke -Wall from optflags.

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

* Wed Jul 17 2013 Ricky Elrod <codeblock@fedoraproject.org> 4.8.0.4-1
- Upstream 4.8.0.4.

* Sat May 11 2013 Ricky Elrod <codeblock@fedoraproject.org> 4.8.0.3-4
- Bootstrap again, with working CFLAGS.

* Wed May 08 2013 Ricky Elrod <codeblock@fedoraproject.org> 4.8.0.3-3
- Bootstrap.

* Wed May 08 2013 Ricky Elrod <codeblock@fedoraproject.org> 4.8.0.3-2
- Fix BuildRequires for RHEL building.

* Sun May 05 2013 Ricky Elrod <codeblock@fedoraproject.org> 4.8.0.3-1
- Clean spec file up a lot.
- Bump to latest upstream release.

* Thu May 03 2012 J R Jones <fedora@zaniyah.org> 4.7.0-2
- Separated into separate sub-packages

* Thu May 03 2012 J R Jones <fedora@zaniyah.org> 4.7.0-1
- Specfile created.