Blame SPECS/compat-guile18.spec

5ec397
%bcond_without emacs
5ec397
%global mver 1.8
5ec397
5ec397
Summary: A GNU implementation of Scheme for application extensibility
5ec397
Name: compat-guile18
5ec397
Version: %{mver}.8
5ec397
Release: 22%{?dist}
5ec397
Source: ftp://ftp.gnu.org/pub/gnu/guile/guile-%{version}.tar.gz
5ec397
URL: http://www.gnu.org/software/guile/
5ec397
Patch1: guile-1.8.7-multilib.patch
5ec397
Patch2: guile-1.8.7-testsuite.patch
5ec397
Patch3: guile-1.8.8-deplibs.patch
5ec397
Patch4: guile-1.8.8-cve-2016-8605.patch
5ec397
License: LGPLv2+
5ec397
Group: Development/Languages
5ec397
BuildRequires: libtool libtool-ltdl-devel gmp-devel readline-devel
5ec397
BuildRequires: gettext-devel
5ec397
%{?with_emacs:BuildRequires: emacs}
5ec397
Provides: guile = 5:%{version}-7
5ec397
Provides: guile%{?_isa} = 5:%{version}-7
5ec397
Obsoletes: guile < 5:%{version}-7
5ec397
5ec397
%description
5ec397
GUILE (GNU's Ubiquitous Intelligent Language for Extension) is a library
5ec397
implementation of the Scheme programming language, written in C.  GUILE
5ec397
provides a machine-independent execution platform that can be linked in
5ec397
as a library during the building of extensible programs.
5ec397
5ec397
Install the compat-guile18 package if you'd like to add extensibility to
5ec397
programs that you are developing.
5ec397
5ec397
%package devel
5ec397
Summary: Libraries and header files for the GUILE extensibility library
5ec397
Group: Development/Libraries
5ec397
Requires: %{name}%{?_isa} = %{version}-%{release} gmp-devel
5ec397
Requires: pkgconfig
5ec397
Provides: guile-devel = 5:%{version}-7
5ec397
Provides: guile-devel%{?_isa} = 5:%{version}-7
5ec397
Obsoletes: guile-devel < 5:%{version}-7
5ec397
Obsoletes: guile-devel%{?_isa} < 5:%{version}-7
5ec397
5ec397
%description devel
5ec397
The compat-guile18-devel package includes the libraries, header files, etc.,
5ec397
that you'll need to develop applications that are linked with the
5ec397
GUILE extensibility library.
5ec397
5ec397
You need to install the compat-guile18-devel package if you want to develop
5ec397
applications that will be linked to GUILE.  You'll also need to install the
5ec397
compat-guile18 package.
5ec397
5ec397
%prep
5ec397
%setup -q -n guile-%{version}
5ec397
5ec397
%patch1 -p1 -b .multilib
5ec397
%patch2 -p1 -b .testsuite
5ec397
%patch3 -p1 -b .deplibs
5ec397
%patch4 -p1 -b .cve-2016-8605
5ec397
5ec397
%build
5ec397
5ec397
export CFLAGS="$RPM_OPT_FLAGS -fwrapv"
5ec397
export LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed"
5ec397
%configure --disable-static --disable-error-on-warning
5ec397
5ec397
# Remove RPATH
5ec397
sed -i 's|" $sys_lib_dlsearch_path "|" $sys_lib_dlsearch_path %{_libdir} "|' \
5ec397
    {,guile-readline/}libtool
5ec397
5ec397
make %{?_smp_mflags}
5ec397
5ec397
%install
5ec397
make DESTDIR=$RPM_BUILD_ROOT install
5ec397
5ec397
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/guile/site
5ec397
5ec397
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libguile*.la
5ec397
5ec397
# Necessary renaming and removing
5ec397
rm -rf ${RPM_BUILD_ROOT}%{_infodir}
5ec397
mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}
5ec397
mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}-tools
5ec397
mv ${RPM_BUILD_ROOT}%{_mandir}/man1/guile{,%{mver}}.1
5ec397
mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}-config
5ec397
mv ${RPM_BUILD_ROOT}%{_bindir}/guile{,%{mver}}-snarf
5ec397
mv ${RPM_BUILD_ROOT}%{_datadir}/aclocal/guile{,%{mver}}.m4
5ec397
sed -i -e 's|/usr/bin/guile|/usr/bin/guile%{mver}|' \
5ec397
    ${RPM_BUILD_ROOT}%{_bindir}/guile%{mver}-config
5ec397
sed -i -e 's|guile-tools|guile%{mver}-tools|g' \
5ec397
    ${RPM_BUILD_ROOT}%{_bindir}/guile%{mver}-tools
5ec397
sed -i -e 's|guile-snarf|guile%{mver}-snarf|g' \
5ec397
    ${RPM_BUILD_ROOT}%{_bindir}/guile%{mver}-snarf
5ec397
5ec397
ac=${RPM_BUILD_ROOT}%{_datadir}/aclocal/guile%{mver}.m4
5ec397
sed -i -e 's|,guile|,guile%{mver}|g' $ac
5ec397
sed -i -e 's|guile-tools|guile%{mver}-tools|g' $ac
5ec397
sed -i -e 's|guile-config|guile%{mver}-config|g' $ac
5ec397
sed -i -e 's|GUILE_PROGS|GUILE1_8_PROGS|g' $ac
5ec397
sed -i -e 's|GUILE_FLAGS|GUILE1_8_FLAGS|g' $ac
5ec397
sed -i -e 's|GUILE_SITE_DIR|GUILE1_8_SITE_DIR|g' $ac
5ec397
sed -i -e 's|GUILE_CHECK|GUILE1_8_CHECK|g' $ac
5ec397
sed -i -e 's|GUILE_MODULE_CHECK|GUILE1_8_MODULE_CHECK|g' $ac
5ec397
sed -i -e 's|GUILE_MODULE_AVAILABLE|GUILE1_8_MODULE_AVAILABLE|g' $ac
5ec397
sed -i -e 's|GUILE_MODULE_REQUIRED|GUILE1_8_MODULE_REQUIRED|g' $ac
5ec397
sed -i -e 's|GUILE_MODULE_EXPORTS|GUILE1_8_MODULE_EXPORTS|g' $ac
5ec397
sed -i -e 's|GUILE_MODULE_REQUIRED_EXPORT|GUILE1_8_MODULE_REQUIRED_EXPORT|g' $ac
5ec397
5ec397
# Compress large documentation
5ec397
bzip2 NEWS
5ec397
5ec397
touch $RPM_BUILD_ROOT%{_datadir}/guile/%{mver}/slibcat
5ec397
ln -s ../../slib $RPM_BUILD_ROOT%{_datadir}/guile/%{mver}/slib
5ec397
5ec397
%check
5ec397
make %{?_smp_mflags} check
5ec397
5ec397
%post -p /sbin/ldconfig
5ec397
5ec397
%postun -p /sbin/ldconfig
5ec397
5ec397
%triggerin -- slib
5ec397
# Remove files created in guile < 1.8.3-2
5ec397
rm -f %{_datadir}/guile/site/slib{,cat}
5ec397
5ec397
ln -sfT ../../slib %{_datadir}/guile/%{mver}/slib
5ec397
rm -f %{_datadir}/guile/%{mver}/slibcat
5ec397
export SCHEME_LIBRARY_PATH=%{_datadir}/slib/
5ec397
5ec397
# Build SLIB catalog
5ec397
for pre in \
5ec397
    "(use-modules (ice-9 slib))" \
5ec397
    "(load \"%{_datadir}/slib/guile.init\")"
5ec397
do
5ec397
    %{_bindir}/guile%{mver} -c "$pre
5ec397
        (set! implementation-vicinity (lambda ()
5ec397
        \"%{_datadir}/guile/%{mver}/\"))
5ec397
        (require 'new-catalog)" &> /dev/null && break
5ec397
    rm -f %{_datadir}/guile/%{mver}/slibcat
5ec397
done
5ec397
:
5ec397
5ec397
%triggerun -- slib
5ec397
if [ "$2" = 0 ]; then
5ec397
    rm -f %{_datadir}/guile/%{mver}/slib{,cat}
5ec397
fi
5ec397
5ec397
%files
5ec397
%doc AUTHORS COPYING* ChangeLog HACKING NEWS.bz2 README THANKS
5ec397
%{_bindir}/guile%{mver}
5ec397
%{_bindir}/guile%{mver}-tools
5ec397
%{_libdir}/libguile*.so.*
5ec397
# The following unversioned libraries are needed in runtime
5ec397
%{_libdir}/libguilereadline-*.so
5ec397
%{_libdir}/libguile-srfi-srfi-*.so
5ec397
%dir %{_datadir}/guile
5ec397
%dir %{_datadir}/guile/%{mver}
5ec397
%{_datadir}/guile/%{mver}/ice-9
5ec397
%{_datadir}/guile/%{mver}/lang
5ec397
%{_datadir}/guile/%{mver}/oop
5ec397
%{_datadir}/guile/%{mver}/scripts
5ec397
%{_datadir}/guile/%{mver}/srfi
5ec397
%{_datadir}/guile/%{mver}/guile-procedures.txt
5ec397
%ghost %{_datadir}/guile/%{mver}/slibcat
5ec397
%ghost %{_datadir}/guile/%{mver}/slib
5ec397
%dir %{_datadir}/guile/site
5ec397
%if %{with emacs}
5ec397
%dir %{_datadir}/emacs/site-lisp
5ec397
%{_datadir}/emacs/site-lisp/*.el
5ec397
%endif
5ec397
%{_mandir}/man1/guile%{mver}.1*
5ec397
5ec397
%files devel
5ec397
%{_bindir}/guile%{mver}-config
5ec397
%{_bindir}/guile%{mver}-snarf
5ec397
%{_datadir}/aclocal/*
5ec397
%{_libdir}/libguile.so
5ec397
%{_libdir}/pkgconfig/*.pc
5ec397
%{_includedir}/guile
5ec397
%{_includedir}/libguile
5ec397
%{_includedir}/libguile.h
5ec397
5ec397
%changelog
5ec397
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.8-22
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
5ec397
5ec397
* Thu Feb  1 2018 Florian Weimer <fweimer@redhat.com> - 1.8.8-21
5ec397
- Use LDFLAGS from redhat-rpm-config
5ec397
5ec397
* Mon Jan 29 2018 Miroslav Lichvar <mlichvar@redhat.com> - 1.8.8-20
5ec397
- Remove incorrect arch-specific Obsoletes (#1537209)
5ec397
5ec397
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 1.8.8-19
5ec397
- Rebuilt for switch to libxcrypt
5ec397
5ec397
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.8-18
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
5ec397
5ec397
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.8-17
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
5ec397
5ec397
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.8-16
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
5ec397
5ec397
* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.8.8-15
5ec397
- Rebuild for readline 7.x
5ec397
5ec397
* Wed Oct 12 2016 Miroslav Lichvar <mlichvar@redhat.com> - 1.8.8-14
5ec397
- Remove thread-unsafe umask modification in mkdir (CVE-2016-8605)
5ec397
5ec397
* Wed Feb 17 2016 Miroslav Lichvar <mlichvar@redhat.com> - 1.8.8-13
5ec397
- Add -fwrapv to CFLAGS (#1307394)
5ec397
5ec397
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.8-12
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
5ec397
5ec397
* Wed Jul 15 2015 Miroslav Lichvar <mlichvar@redhat.com> - 1.8.8-11
5ec397
- Fix building with new glibc (#1239406)
5ec397
5ec397
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.8-10
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
5ec397
5ec397
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.8-9
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
5ec397
5ec397
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.8-8
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
5ec397
5ec397
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.8-7
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
5ec397
5ec397
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.8-6
5ec397
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
5ec397
5ec397
* Mon Jan 21 2013 Jan Synáček <jsynacek@redhat.com> - 1.8.8-5
5ec397
- Add additional Provides and Obsoletes with %%{?_isa} to fix upgrade path
5ec397
5ec397
* Fri Jan 18 2013 Jan Synáček <jsynacek@redhat.com> - 1.8.8-4
5ec397
- Bump Provides/Obsoletes by a release
5ec397
- Add Provides/Obsoletes to -devel package as well
5ec397
- Add a comment about unversion libraries
5ec397
- Fix mixed tabs/spaces (remove tabs)
5ec397
5ec397
* Thu Jan 17 2013 Jan Synáček <jsynacek@redhat.com> - 5:1.8.8-3
5ec397
- Move .so files back to the main package (needed in runtime)
5ec397
5ec397
* Thu Jan 17 2013 Jan Synáček <jsynacek@redhat.com> - 5:1.8.8-2
5ec397
- Move unversioned .so files to -devel package
5ec397
- Remove unnecessary %%clear
5ec397
- Use %%global instead of %%define
5ec397
- Remove unnecessary (compatible) licenses
5ec397
- Fix %%post onliner
5ec397
- Compile with --as-needed
5ec397
- Add _isa flag where appropriate
5ec397
- Correctly specify Provides and Obsoletes
5ec397
- Rename to guile-compat18
5ec397
5ec397
* Fri Oct 19 2012 Jan Synáček <jsynacek@redhat.com> - 5:1.8.8-1
5ec397
- Make compat-package