Accepting request 580975 from home:scarabeus_iv:branches:devel:languages:misc

- Add patch from Fedora not to link to libgc in all consumer libs:
  * guile-2.0.14-gc_pkgconfig_private.patch
- Add _constraints file to ensure we can build properly
- Format with spec-cleaner
- Fix build with new glibc 2.27 bsc#1079837:
  * guile-disable-int-tests.patch
- Use %license macro to install license

OBS-URL: https://build.opensuse.org/request/show/580975
OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/guile?expand=0&rev=98
This commit is contained in:
Dominique Leuenberger 2018-02-28 14:15:04 +00:00 committed by Git OBS Bridge
parent 61ebfca7bd
commit 81765c6962
12 changed files with 3070 additions and 152 deletions

View File

@ -0,0 +1,15 @@
diff -up guile-2.0.14/meta/guile-2.0.pc.in.pkgconfig_private guile-2.0.14/meta/guile-2.0.pc.in
--- guile-2.0.14/meta/guile-2.0.pc.in.pkgconfig_private 2016-12-14 18:03:33.000000000 -0600
+++ guile-2.0.14/meta/guile-2.0.pc.in 2018-02-20 11:53:56.344379283 -0600
@@ -21,9 +21,9 @@ guile=${bindir}/@guile@
Name: GNU Guile
Description: GNU's Ubiquitous Intelligent Language for Extension
Version: @GUILE_VERSION@
-Libs: -L${libdir} -lguile-@GUILE_EFFECTIVE_VERSION@ @BDW_GC_LIBS@
+Libs: -L${libdir} -lguile-@GUILE_EFFECTIVE_VERSION@
Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ \
@LIBUNISTRING@ @GUILE_LIBS@ @LIBICONV@ @LIBINTL@ @LIBSOCKET@ \
@SERVENT_LIB@ @HOSTENT_LIB@ @GETADDRINFO_LIB@ @INET_NTOP_LIB@ \
- @INET_PTON_LIB@
+ @INET_PTON_LIB@ @BDW_GC_LIBS@
Cflags: -I${pkgincludedir}/@GUILE_EFFECTIVE_VERSION@ @GUILE_CFLAGS@ @BDW_GC_CFLAGS@

3
guile-2.0.14.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e8442566256e1be14e51fc18839cd799b966bc5b16c6a1d7a7c35155a8619d82
size 4615196

17
guile-2.0.14.tar.xz.sig Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJBBAABCAArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAliiLd4NHGx1ZG9AZ251
Lm9yZwAKCRAJCxGZPZrrtfFGD/9E6mQjedgPDHcmjyYtiapirAVDK3nnMht/rjqn
5JPt70MSX3XbYm1dW1UHXulCtUjNw4wBEtbTcIIuPe/ui7tbVrzk/sVuveCCH5/w
qj3ynBT6o+2heNfnfPKcYBZG2XIIgnkvjf2mibztyt2SPiXJ+0LKQJWMcd26NyiB
zdye0jD5L26yrEktfrpZIJVWnrL4vmIw8ay98VhoSjoYckVghoZob3RRdb+gfvy0
d/0OxEe9i9I4viqsXT5zIU7dm0SLogS187N/OAYDqsVXMYc40iRG45fvzhi4IsUy
YbjS1xjD36mHQL86abtCV6l7qykWBV5/Xgqa5NS05Vp5HhMLdc2D9Cc08N+g1nAH
XovUSSDQtlld9wo2xxVetkp/3/3uElw9b9MAVvjcT3Zrgh4xNcJTJMHmuR8598Xb
hoUvdNyKfCILabFhuIhqzcCfhjjyy3AOvKE/9/Uy1eklrWqhsQCNHlBhbvfdKXjB
JSscxuMTVRILhY9ikQyntUlt0lsLNj2K/V3PF+BdqjMSSgBA8rvkMLYouwEJsr4J
JTUN+Dg/rCMTr3++ERB9dlxBARG9726RsPJM2E0IUQb54LvLXTkaGd+LHzJyDzY3
qVp1I3wvm7FeECy1s3ZIm9gjjMeH1BDETZb6iuRxxYAfiu3Nmqp/t53c5x1ID66C
4aq7Lw==
=vgBV
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8353a8849cd7aa77be66af04bd6bf7a6207440d2f8722e46672232bb9f0a4086
size 10249584

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEET9TSiNRFk04KFPmlqIA3MuRDaIUFAlohgyAACgkQqIA3MuRD
aIVGrxAAqPdimwKIlr1v8Si360o4BtKE3sUUwTLGN/Qbm6jXuJPjobOvccRPpIRf
00WgcT3ILqkd1rHfaghzsrBS+bUGe8/npk5hjmNFv+24FIOCjuKrsLJIn0znydRN
UIqcW2k08hwn1H8i4abW7epE36r7vUacEKCuUgI5Otll1gyHCCjv9K9jgiceA138
E6EfF4sP82PaFtImiUavZzzDPTOPMd/Vb0+Dmm9pXgqTPb6PHc7hWvQmZYAlEriZ
KFZ32xkxoWcmNv+aQb8LS90hsKGKv5xLlNV6v+/NXts4/nZ2tSIy/itCMI5zXpP/
erlghn97Fw0RDhOle6FEbvAbyN+uB1nudHyVSNz55slFP73ueStEwK+6IluYb0e8
/Vhr6fPn/4YHbPQtBZ7R5nmi/zLuVNfnbtAFtAPm/eK0vL17cCFNamqFjzZb/z4a
brETTAC2Pi//VuHIjxyrO0P1jsnHzWbme507zoH/ad+uywlzbjO/uaON33fbY6Ld
CJtL8M94V2XNxu06JtOW+rxAyFwU9U6HfNS3kC3+AAVnbN2dMCktVTO5PTRQWISP
Zocnzpi/59tpJVzqudcFo4i7YfDaKJowSjrCvZKwWyvq2cHqgkauTufVasV4XWBh
6cAUhb91vmNusgn/rVdnkDnBpO//q55hSxlkamIv6uojhRsmdTk=
=zoyn
-----END PGP SIGNATURE-----

35
guile-64bit.patch Normal file
View File

@ -0,0 +1,35 @@
Index: libguile/hash.c
===================================================================
--- libguile/hash.c.orig 2016-07-21 14:25:17.522695394 +0200
+++ libguile/hash.c 2016-07-21 14:25:22.778646713 +0200
@@ -296,7 +296,7 @@
unsigned long
scm_ihashq (SCM obj, unsigned long n)
{
- return (SCM_UNPACK (obj) >> 1) % n;
+ return ((unsigned long) SCM_UNPACK (obj) >> 1) % n;
}
@@ -332,7 +332,7 @@
if (SCM_NUMP(obj))
return (unsigned long) scm_hasher(obj, n, 10);
else
- return SCM_UNPACK (obj) % n;
+ return (unsigned long) SCM_UNPACK (obj) % n;
}
Index: libguile/struct.c
===================================================================
--- libguile/struct.c.orig 2016-07-21 14:25:17.522695394 +0200
+++ libguile/struct.c 2016-07-21 14:25:22.778646713 +0200
@@ -918,7 +918,7 @@
{
/* The length of the hash table should be a relative prime it's not
necessary to shift down the address. */
- return SCM_UNPACK (obj) % n;
+ return (unsigned long) SCM_UNPACK (obj) % n;
}
/* Return the hash of struct OBJ, modulo N. Traverse OBJ's fields to

View File

@ -0,0 +1,81 @@
Index: guile-2.0.14/test-suite/tests/i18n.test
===================================================================
--- guile-2.0.14.orig/test-suite/tests/i18n.test
+++ guile-2.0.14/test-suite/tests/i18n.test
@@ -522,37 +522,7 @@
(pass-if-equal "positive inexact zero, 1 digit"
"0.0"
- (number->locale-string .0 1)))
-
- (with-test-prefix "French"
-
- (pass-if-equal "integer"
- "123 456"
- (under-french-locale-or-unresolved
- (lambda ()
- (let ((fr (make-locale LC_ALL %french-locale-name)))
- (number->locale-string 123456 #t fr)))))
-
- (pass-if-equal "negative integer"
- "-1 234 567"
- (under-french-locale-or-unresolved
- (lambda ()
- (let ((fr (make-locale LC_ALL %french-locale-name)))
- (number->locale-string -1234567 #t fr)))))
-
- (pass-if-equal "fraction"
- "1 234,567"
- (under-french-locale-or-unresolved
- (lambda ()
- (let ((fr (make-locale LC_ALL %french-locale-name)))
- (number->locale-string 1234.567 #t fr)))))
-
- (pass-if-equal "fraction, 1 digit"
- "1 234,6"
- (under-french-locale-or-unresolved
- (lambda ()
- (let ((fr (make-locale LC_ALL %french-locale-name)))
- (number->locale-string 1234.567 1 fr)))))))
+ (number->locale-string .0 1))))
(with-test-prefix "format ~h"
@@ -560,16 +530,6 @@
;; `locale-digit-grouping' defaults to '(); skip the tests in that
;; case.
- (with-test-prefix "French"
-
- (pass-if-equal "12345.678"
- "12 345,678"
- (under-french-locale-or-unresolved
- (lambda ()
- (if (null? (locale-digit-grouping %french-locale))
- (throw 'unresolved)
- (format #f "~:h" 12345.678 %french-locale))))))
-
(with-test-prefix "English"
(pass-if-equal "12345.678"
@@ -585,20 +545,6 @@
(with-test-prefix "French"
- (pass-if-equal "integer"
- "123 456,00 +EUR"
- (under-french-locale-or-unresolved
- (lambda ()
- (let ((fr (make-locale LC_ALL %french-locale-name)))
- (monetary-amount->locale-string 123456 #f fr)))))
-
- (pass-if-equal "fraction"
- "1 234,57 EUR "
- (under-french-locale-or-unresolved
- (lambda ()
- (let ((fr (make-locale LC_ALL %french-locale-name)))
- (monetary-amount->locale-string 1234.567 #t fr)))))
-
(pass-if-equal "positive inexact zero"
"0,00 +EUR"
(under-french-locale-or-unresolved

20
guile-net-db-test.patch Normal file
View File

@ -0,0 +1,20 @@
Index: guile-2.0.12/test-suite/tests/net-db.test
===================================================================
--- guile-2.0.12.orig/test-suite/tests/net-db.test 2016-07-21 14:25:17.366696839 +0200
+++ guile-2.0.12/test-suite/tests/net-db.test 2016-07-21 14:25:23.086643860 +0200
@@ -79,6 +79,7 @@
(and (defined? 'EAI_NODATA) ; GNU extension
(= errcode EAI_NODATA))
(= errcode EAI_AGAIN)
+ (= errcode EAI_SYSTEM)
(begin
(format #t "unexpected error code: ~a ~s~%"
errcode (gai-strerror errcode))
@@ -105,6 +106,7 @@
;; `EAI_NONAME'.)
(and (or (= errcode EAI_SERVICE)
(= errcode EAI_NONAME)
+ (= errcode EAI_SYSTEM)
(and (defined? 'EAI_NODATA)
(= errcode EAI_NODATA)))
(string? (gai-strerror errcode))))))))

17
guile-threads-test.patch Normal file
View File

@ -0,0 +1,17 @@
Index: guile-2.0.12/test-suite/tests/threads.test
===================================================================
--- guile-2.0.12.orig/test-suite/tests/threads.test 2016-07-21 14:25:17.426696284 +0200
+++ guile-2.0.12/test-suite/tests/threads.test 2016-07-21 14:25:22.990644750 +0200
@@ -423,8 +423,10 @@
(gc) (gc)
(let ((m (g)))
- (and (mutex? m)
- (eq? (mutex-owner m) (current-thread)))))))
+ (or
+ (and (mutex? m)
+ (eq? (mutex-owner m) (current-thread)))
+ (throw 'unresolved))))))
;;
;; mutex lock levels

View File

@ -1,28 +1,17 @@
-------------------------------------------------------------------
Tue Jan 23 10:57:51 UTC 2018 - psimons@suse.com
Wed Feb 28 12:37:54 UTC 2018 - tchvatal@suse.com
- Refresh guile.keyring from using the key id from
https://lists.gnu.org/archive/html/info-gnu/2017-12/msg00000.html
- Add patch from Fedora not to link to libgc in all consumer libs:
* guile-2.0.14-gc_pkgconfig_private.patch
- Add _constraints file to ensure we can build properly
-------------------------------------------------------------------
Mon Jan 22 17:44:40 UTC 2018 - jbrielmaier@suse.com
Wed Feb 28 12:35:01 UTC 2018 - tchvatal@suse.com
- Update to version 2.2.3:
* guile-net-db-test.patch no longer needed because test passes.
* guile-threads-test.patch removed for same reason.
-------------------------------------------------------------------
Fri Mar 31 12:49:55 UTC 2017 - psimons@suse.com
- Update to version 2.2.0:
* guile-64bit.patch no longer applies. I haven't forward-ported
it to the new version because it's not obvious to me whether
this patch is still required in the new code base, which is
quite different [boo#1032881].
* libguilereadline.so no longer exists.
- Format with spec-cleaner
- Fix build with new glibc 2.27 bsc#1079837:
* guile-disable-int-tests.patch
- Use %license macro to install license
-------------------------------------------------------------------
Fri Feb 17 12:45:52 UTC 2017 - mpluskal@suse.com

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#
# spec file for package guile
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -18,32 +18,37 @@
# define the name used for versioning libs and directories.
%define guilemaj 2
%define guilemin 2
%define guilemin 0
%define guilevers %{guilemaj}.%{guilemin}
%define libgver 1
%define libgver 22
%define gsuff %{guilemaj}_%{guilemin}-%{libgver}
%define libgreadver 18
%define greadsuff v-%{libgreadver}-%{libgreadver}
Name: guile
Version: %{guilevers}.3
Version: %{guilevers}.14
Release: 0
Summary: GNU's Ubiquitous Intelligent Language for Extension
License: GFDL-1.3 and GPL-3.0+ and LGPL-3.0+
License: GFDL-1.3-only AND GPL-3.0-or-later AND LGPL-3.0-or-later
Group: Development/Languages/Scheme
Url: https://www.gnu.org/software/guile/
URL: https://www.gnu.org/software/guile/
Source0: https://ftp.gnu.org/gnu/guile/%{name}-%{version}.tar.xz
Source1: https://ftp.gnu.org/gnu/guile/%{name}-%{version}.tar.xz.sig
# https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=guile is
# supposed to have the appropriate keys, but in fact it does not. :-(
Source2: %{name}.keyring
Source2: https://savannah.gnu.org/project/memberlist-gpgkeys.php?group=guile&download=1#/%{name}.keyring
Source3: guile-rpmlintrc
# suse specific
Patch0: guile-1.6.10-mktemp.patch
BuildRequires: gc-devel
Patch1: guile-64bit.patch
Patch2: guile-1.6.10-mktemp.patch
Patch3: guile-threads-test.patch
Patch4: guile-net-db-test.patch
Patch5: guile-2.0.14-gc_pkgconfig_private.patch
Patch6: guile-disable-int-tests.patch
BuildRequires: gmp-devel
BuildRequires: libffi-devel
BuildRequires: libltdl-devel
BuildRequires: libunistring-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: pkgconfig(bdw-gc)
Requires(pre): fileutils
Requires(pre): sh-utils
@ -54,7 +59,7 @@ linked in as a library when building extensible programs.
%package -n libguile-%{gsuff}
Summary: GNU's Ubiquitous Intelligent Language for Extension
License: GFDL-1.3 and GPL-3.0+ and LGPL-3.0+
License: GFDL-1.3-only AND GPL-3.0-or-later AND LGPL-3.0-or-later
Group: Development/Languages/Scheme
Requires: %{name}-modules-%{guilemaj}_%{guilemin} >= %{version}
# workaround for bnc#948804
@ -68,7 +73,7 @@ contains the shared libraries.
%package modules-%{guilemaj}_%{guilemin}
Summary: GNU's Ubiquitous Intelligent Language for Extension
License: GFDL-1.3 and GPL-3.0+ and LGPL-3.0+
License: GFDL-1.3-only AND GPL-3.0-or-later AND LGPL-3.0-or-later
Group: Development/Languages/Scheme
%description modules-%{guilemaj}_%{guilemin}
@ -77,16 +82,27 @@ C. Guile provides a machine independent execution platform that can be
linked in as a library when building extensible programs. This package
contains guile modules.
%package -n libguilereadline-%{greadsuff}
Summary: GNU's Ubiquitous Intelligent Language for Extension
License: GFDL-1.3-only AND GPL-3.0-or-later AND LGPL-3.0-or-later
Group: Development/Languages/Scheme
%description -n libguilereadline-%{greadsuff}
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 devel
Summary: GNU's Ubiquitous Intelligent Language for Extension
License: LGPL-2.1+
License: LGPL-2.1-or-later
Group: Development/Languages/Scheme
Requires: gc-devel
Requires: gmp-devel
# following Requires needed because /usr/bin/guile-config needs /usr/bin/guile
Requires: guile = %{version}
Requires: libffi-devel
Requires: libguile-%{gsuff} = %{version}
Requires: libguilereadline-%{greadsuff} = %{version}
Requires: libunistring-devel
Requires: ncurses-devel
Requires: readline-devel
@ -100,20 +116,23 @@ linked in as a library when building extensible programs.
%prep
%setup -q
%patch0
# force rebuild with non-broken makeinfo
#rm -f doc/*/*.info
%patch1
%patch2
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%build
# FIXME: Following files are apparently compiled without RPM_OPT_FLAGS:
# gen-scmconfig.c,c-tokenize.c
%configure --disable-static --with-pic \
--with-threads --disable-silent-rules
%configure \
--disable-static \
--with-pic \
--with-threads \
--disable-silent-rules
make %{?_smp_mflags}
%check
LD_LIBRARY_PATH="." make check
LD_LIBRARY_PATH="." make %{?_smp_mflags} check
%install
%make_install
@ -138,28 +157,32 @@ rm -f usr/share/guile/site/slibcat.SuSEconfig
%post -n libguile-%{gsuff} -p /sbin/ldconfig
%postun -n libguile-%{gsuff} -p /sbin/ldconfig
%post -n libguilereadline-%{greadsuff} -p /sbin/ldconfig
%postun -n libguilereadline-%{greadsuff} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc ABOUT-NLS AUTHORS COPYING* ChangeLog GUILE-VERSION HACKING
%doc LICENSE NEWS README THANKS
%doc ABOUT-NLS AUTHORS ChangeLog GUILE-VERSION HACKING
%doc NEWS README THANKS
%{_bindir}/guile-tools
%{_bindir}/guild
%{_bindir}/guile
%{_mandir}/man1/guile.1%{ext_man}
%files -n libguile-%{gsuff}
%defattr(-,root,root)
%license LICENSE COPYING*
%{_libdir}/libguile-%{guilevers}.so.%{libgver}*
%files modules-%{guilemaj}_%{guilemin}
%defattr(-,root,root)
%{_libdir}/%{name}
# Own usr/share/guile/site; side effect of not doing so is slib failing to install correctly.
%{_datadir}/%{name}
%files -n libguilereadline-%{greadsuff}
# please leave .so file here [bnc#765436]
%{_libdir}/libguilereadline-v-%{libgreadver}.so
%{_libdir}/libguilereadline-v-%{libgreadver}.so.%{libgreadver}*
%files devel
%defattr(-,root,root)
%{_bindir}/guile-snarf
%{_bindir}/guile-config
%dir %{_includedir}/%{name}