forked from pool/guile1
Dave Plater
c158960588
Prepare for RPM 4.20 OBS-URL: https://build.opensuse.org/request/show/1152167 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/guile1?expand=0&rev=40
283 lines
9.9 KiB
RPMSpec
283 lines
9.9 KiB
RPMSpec
#
|
|
# spec file for package guile1
|
|
#
|
|
# Copyright (c) 2020 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define binpref guile1
|
|
Name: guile1
|
|
Version: 1.8.8
|
|
Release: 0
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
License: LGPL-2.1-or-later
|
|
Group: Development/Languages/Scheme
|
|
URL: https://www.gnu.org/software/guile/
|
|
#https://github.com/texmacs/guile/archive/texmacs.zip
|
|
Source0: https://ftp.gnu.org/gnu/guile/guile-%{version}.tar.gz
|
|
Source1: https://ftp.gnu.org/gnu/guile/guile-%{version}.tar.gz.sig
|
|
Source2: %{name}.keyring
|
|
Patch1: guile-64bit.patch
|
|
Patch2: guile-1.6.10-mktemp.patch
|
|
Patch3: guile-popen-test.patch
|
|
Patch5: guile-gcc.patch
|
|
Patch6: guile-automake-1.13.patch
|
|
Patch7: guile-socket-test.patch
|
|
# fix failures with texinfo 5.2
|
|
Patch8: guile-texinfo.patch
|
|
Patch9: guile1-CVE-2016-8605.patch
|
|
# PATCH-FIX-OPENSUSE (version is obsolete upstream / from 2010)
|
|
Patch10: reproducible.patch
|
|
Patch11: guile1-fix-texinfo-default-utf8.patch
|
|
BuildRequires: automake
|
|
BuildRequires: gc-devel
|
|
BuildRequires: gmp-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: readline-devel
|
|
# Require the library packages, at least current version. The *.so symlinks are in the main package (due to dlopen(), so without the requires, it would be dangling symlinks.
|
|
Requires: libguile-srfi-srfi-1-v-3-3 >= %{version}
|
|
Requires: libguile-srfi-srfi-13-14-v-3-3 >= %{version}
|
|
Requires: libguile-srfi-srfi-4-v-3-3 >= %{version}
|
|
Requires: libguile-srfi-srfi-60-v-2-2 >= %{version}
|
|
Requires: libguile17 >= %{version}
|
|
Requires: libguilereadline-v-17-17 >= %{version}
|
|
PreReq: %{install_info_prereq}
|
|
# FIXME: use proper Requires(pre/post/preun/...)
|
|
PreReq: fileutils
|
|
PreReq: sh-utils
|
|
Conflicts: slib < 3a5
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if 0%{?suse_version}
|
|
BuildRequires: pkg-config
|
|
%else
|
|
BuildRequires: pkgconfig
|
|
%endif
|
|
%if 0%{?suse_version} >= 1230
|
|
BuildRequires: makeinfo
|
|
%endif
|
|
|
|
%description
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs.
|
|
|
|
%package -n libguile17
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
|
|
%description -n libguile17
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the shared libraries.
|
|
|
|
%package -n libguile-srfi-srfi-1-v-3-3
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
|
|
%description -n libguile-srfi-srfi-1-v-3-3
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the shared libraries.
|
|
|
|
%package -n libguile-srfi-srfi-4-v-3-3
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
|
|
%description -n libguile-srfi-srfi-4-v-3-3
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the shared libraries.
|
|
|
|
%package -n libguile-srfi-srfi-13-14-v-3-3
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
|
|
%description -n libguile-srfi-srfi-13-14-v-3-3
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the shared libraries.
|
|
|
|
%package -n libguile-srfi-srfi-60-v-2-2
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
|
|
%description -n libguile-srfi-srfi-60-v-2-2
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the shared libraries.
|
|
|
|
%package -n libguilereadline-v-17-17
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
|
|
%description -n libguilereadline-v-17-17
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the shared libraries.
|
|
|
|
%package -n libguile1-devel
|
|
Summary: GNU's Ubiquitous Intelligent Language for Extension
|
|
Group: Development/Languages/Scheme
|
|
Requires: gmp-devel
|
|
Requires: guile1
|
|
Requires: libguile-srfi-srfi-1-v-3-3 = %{version}-%{release}
|
|
Requires: libguile-srfi-srfi-13-14-v-3-3 = %{version}-%{release}
|
|
Requires: libguile-srfi-srfi-4-v-3-3 = %{version}-%{release}
|
|
Requires: libguile-srfi-srfi-60-v-2-2 = %{version}-%{release}
|
|
Requires: libguile17 = %{version}-%{release}
|
|
Requires: libguilereadline-v-17-17 = %{version}-%{release}
|
|
Requires: libltdl-devel
|
|
Requires: ncurses-devel
|
|
Requires: readline-devel
|
|
|
|
%description -n libguile1-devel
|
|
This is Guile, a portable, embeddable Scheme implementation written in
|
|
C. Guile provides a machine independent execution platform that can be
|
|
linked in as a library when building extensible programs. This package
|
|
contains the files necessary to link against the guile libraries.
|
|
|
|
%prep
|
|
%setup -q -n guile-%{version}
|
|
%patch -P 1
|
|
%patch -P 2
|
|
%patch -P 3
|
|
%patch -P 5
|
|
%patch -P 6 -p1
|
|
%patch -P 7 -p1
|
|
%patch -P 8 -p1
|
|
%patch -P 9 -p1
|
|
%patch -P 10 -p1
|
|
%patch -P 11
|
|
# guile-1.8.1: The code is not so good for -Werror (unused results of write()).
|
|
sed -i s/-Werror// configure.in configure
|
|
|
|
%build
|
|
%define _lto_cflags %{nil}
|
|
# NOTE: GCC 10 succeeds in rewriting a
|
|
#particular tail call into jumps. This avoids stack frames from the
|
|
#recursive call which the check relies on. Funnily enough, a comment
|
|
#says: "If the code could be inlined, that might cause the test to give
|
|
#an incorrect answer." - indeed.
|
|
# As a result the guile executable causes a segfault when built with -02
|
|
export CFLAGS="`echo %optflags|tr 02 00`"
|
|
echo $CFLAGS
|
|
sed -i "s:GUILE_:GUILE1_:" guile-config/guile.m4
|
|
sed -i "s:guile:guile1:" guile-config/guile.m4
|
|
# automake 1.13: do not run test simultaneously
|
|
find -name Makefile.am | xargs sed -i 's/\(^AUTOMAKE_OPTIONS.*$\)/\1 serial-tests/'
|
|
autoreconf -fi
|
|
# FIXME: Following files are apparently compiled without RPM_OPT_FLAGS:
|
|
# gen-scmconfig.c,c-tokenize.c
|
|
%configure \
|
|
--disable-static \
|
|
--with-pic \
|
|
--with-threads \
|
|
--program-transform-name="s:guile:%{binpref}:"
|
|
make --trace %{?_smp_mflags}
|
|
|
|
%check
|
|
# 47 of 11930 tests are failing now
|
|
make check || :
|
|
|
|
%install
|
|
make DESTDIR=%{buildroot} install %{?_smp_mflags}
|
|
mkdir -p %{buildroot}%{_datadir}/guile/site
|
|
rm -r %{buildroot}%{_infodir}
|
|
# conflict with guile2
|
|
mv %{buildroot}%{_datadir}/aclocal/guile{,1}.m4
|
|
# use /usr/bin/guile1 instead of /usr/bin/guile
|
|
sed -i "s:${GUILE-guile}:${GUILE-guile1}:" %{buildroot}%{_datadir}/guile/1.8/scripts/*
|
|
sed -i "s:%{_bindir}/guile:%{_bindir}/guile1:" %{buildroot}%{_bindir}/guile1-config
|
|
|
|
%post -n libguile-srfi-srfi-1-v-3-3 -p /sbin/ldconfig
|
|
|
|
%postun -n libguile-srfi-srfi-1-v-3-3 -p /sbin/ldconfig
|
|
|
|
%files -n libguile-srfi-srfi-1-v-3-3
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libguile-srfi-srfi-1-v-3.so.3*
|
|
|
|
%post -n libguile-srfi-srfi-4-v-3-3 -p /sbin/ldconfig
|
|
|
|
%postun -n libguile-srfi-srfi-4-v-3-3 -p /sbin/ldconfig
|
|
|
|
%files -n libguile-srfi-srfi-4-v-3-3
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libguile-srfi-srfi-4-v-3.so.3*
|
|
|
|
%post -n libguile-srfi-srfi-13-14-v-3-3 -p /sbin/ldconfig
|
|
|
|
%postun -n libguile-srfi-srfi-13-14-v-3-3 -p /sbin/ldconfig
|
|
|
|
%files -n libguile-srfi-srfi-13-14-v-3-3
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libguile-srfi-srfi-13-14-v-3.so.3*
|
|
|
|
%post -n libguile-srfi-srfi-60-v-2-2 -p /sbin/ldconfig
|
|
|
|
%postun -n libguile-srfi-srfi-60-v-2-2 -p /sbin/ldconfig
|
|
|
|
%files -n libguile-srfi-srfi-60-v-2-2
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libguile-srfi-srfi-60-v-2.so.2*
|
|
|
|
%post -n libguile17 -p /sbin/ldconfig
|
|
|
|
%postun -n libguile17 -p /sbin/ldconfig
|
|
|
|
%files -n libguile17
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libguile.so.17*
|
|
|
|
%post -n libguilereadline-v-17-17 -p /sbin/ldconfig
|
|
|
|
%postun -n libguilereadline-v-17-17 -p /sbin/ldconfig
|
|
|
|
%files -n libguilereadline-v-17-17
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libguilereadline-v-17.so.17*
|
|
|
|
%pre
|
|
# Remove obsolete files (< SuSE Linux 10.2)
|
|
rm -f var/adm/SuSEconfig/md5%{_datadir}/guile/*/slibcat
|
|
rm -f usr/share/guile/site/slibcat.SuSEconfig
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc ABOUT-NLS AUTHORS ChangeLog* GUILE-VERSION HACKING
|
|
%doc NEWS README THANKS
|
|
%license LICENSE COPYING*
|
|
%{_bindir}/*
|
|
%dir %{_datadir}/guile
|
|
%{_datadir}/guile/1.8
|
|
%dir %{_datadir}/guile/site
|
|
%{_mandir}/man1/%{binpref}.1.gz
|
|
# please leave *.so files here [bnc#772490]
|
|
%{_libdir}/libguile*.so
|
|
|
|
%files -n libguile1-devel
|
|
%defattr(-,root,root)
|
|
%{_includedir}/*
|
|
%{_libdir}/libguile*.la
|
|
%{_libdir}/pkgconfig/*
|
|
%{_datadir}/aclocal/guile1.m4
|
|
|
|
%changelog
|