summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--disable-out-of-memory-test.patch13
-rw-r--r--guile-2.0.14-gc_pkgconfig_private.patch15
-rw-r--r--guile-configure.patch21
-rw-r--r--guile-multilib.patch47
-rw-r--r--guile-threadstest.patch12
-rw-r--r--guile.spec156
-rw-r--r--sources1
8 files changed, 266 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..4fd9366 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/guile-2.2.7.tar.xz
diff --git a/disable-out-of-memory-test.patch b/disable-out-of-memory-test.patch
new file mode 100644
index 0000000..657aa93
--- /dev/null
+++ b/disable-out-of-memory-test.patch
@@ -0,0 +1,13 @@
+diff --git a/test-suite/standalone/test-out-of-memory b/test-suite/standalone/test-out-of-memory
+index 95692d6..49988ce 100755
+--- a/test-suite/standalone/test-out-of-memory
++++ b/test-suite/standalone/test-out-of-memory
+@@ -3,6 +3,8 @@ guild compile "$0"
+ exec guile -q -s "$0" "$@"
+ !#
+
++(exit 77)
++
+ (unless (defined? 'setrlimit)
+ ;; Without an rlimit, this test can take down your system, as it
+ ;; consumes all of your memory. That doesn't seem like something we
diff --git a/guile-2.0.14-gc_pkgconfig_private.patch b/guile-2.0.14-gc_pkgconfig_private.patch
new file mode 100644
index 0000000..d8ee031
--- /dev/null
+++ b/guile-2.0.14-gc_pkgconfig_private.patch
@@ -0,0 +1,15 @@
+diff -up guile-2.2.7/meta/guile-2.2.pc.in.pkgconfig_private guile-2.2.7/meta/guile-2.2.pc.in
+--- guile-2.2.7/meta/guile-2.2.pc.in.pkgconfig_private 2016-12-14 18:03:33.000000000 -0600
++++ guile-2.0.7/meta/guile-2.2.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@
diff --git a/guile-configure.patch b/guile-configure.patch
new file mode 100644
index 0000000..e5b9436
--- /dev/null
+++ b/guile-configure.patch
@@ -0,0 +1,21 @@
+diff -Nrup a/m4/mathfunc.m4 b/m4/mathfunc.m4
+--- a/m4/mathfunc.m4 2016-12-14 17:03:33.000000000 -0700
++++ b/m4/mathfunc.m4 2020-01-06 19:48:46.684158282 -0700
+@@ -60,7 +60,7 @@ AC_DEFUN([gl_MATHFUNC],
+ #endif
+ #include <math.h>
+ $4
+- $2 (*funcptr) $3 = ]func[;
++ __attribute__ ((used)) $2 (*funcptr) $3 = ]func[;
+ int i_ret;
+ float f_ret;
+ double d_ret;
+@@ -85,7 +85,7 @@ AC_DEFUN([gl_MATHFUNC],
+ #endif
+ #include <math.h>
+ $4
+- $2 (*funcptr) $3 = ]func[;
++ __attribute__ ((used)) $2 (*funcptr) $3 = ]func[;
+ int i_ret;
+ float f_ret;
+ double d_ret;
diff --git a/guile-multilib.patch b/guile-multilib.patch
new file mode 100644
index 0000000..4baf309
--- /dev/null
+++ b/guile-multilib.patch
@@ -0,0 +1,47 @@
+diff -up guile-2.0.9/libguile/Makefile.in.multilib guile-2.0.9/libguile/Makefile.in
+--- guile-2.0.9/libguile/Makefile.in.multilib 2013-04-10 01:31:59.000000000 +0200
++++ guile-2.0.9/libguile/Makefile.in 2013-07-16 16:59:59.490527131 +0200
+@@ -3283,6 +3283,11 @@ install-nodist_modincludeHEADERS: $(nodi
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(modincludedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(modincludedir)" || exit $$?; \
++ for f in $$files; do if [ "$$f" = "scmconfig.h" ]; then \
++ grep -q "SCM_SIZEOF_LONG 4" "$(DESTDIR)$(modincludedir)/$$f" && g=32 || g=64; \
++ mv "$(DESTDIR)$(modincludedir)/$$f" "$(DESTDIR)$(modincludedir)/scmconfig-$$g.h"; \
++ $(INSTALL_HEADER) "$${d}scmconfig-multilib.h" "$(DESTDIR)$(modincludedir)/$$f"; \
++ fi; done \
+ done
+
+ uninstall-nodist_modincludeHEADERS:
+diff -up guile-2.0.9/libguile/scmconfig-multilib.h.multilib guile-2.0.9/libguile/scmconfig-multilib.h
+--- guile-2.0.9/libguile/scmconfig-multilib.h.multilib 2013-07-16 17:02:26.045733704 +0200
++++ guile-2.0.9/libguile/scmconfig-multilib.h 2013-07-16 17:01:51.623685971 +0200
+@@ -0,0 +1,7 @@
++/* multilib clean wrapper */
++#include <bits/wordsize.h>
++#if __WORDSIZE == 32
++#include "libguile/scmconfig-32.h"
++#else
++#include "libguile/scmconfig-64.h"
++#endif
+diff -up guile-2.0.9/meta/guile-config.in.multilib guile-2.0.9/meta/guile-config.in
+--- guile-2.0.9/meta/guile-config.in.multilib 2012-07-02 11:28:14.000000000 +0200
++++ guile-2.0.9/meta/guile-config.in 2013-07-16 17:09:25.650324597 +0200
+@@ -1,7 +1,6 @@
+ #!/bin/sh
+-PKG_CONFIG_PATH="@pkgconfigdir@:$PKG_CONFIG_PATH"
+ GUILE_AUTO_COMPILE=0
+-export PKG_CONFIG_PATH GUILE_AUTO_COMPILE
++export GUILE_AUTO_COMPILE
+
+ exec "@installed_guile@" -e main -s $0 "$@"
+ !#
+@@ -31,7 +30,7 @@ exec "@installed_guile@" -e main -s $0 "
+ (ice-9 rdelim))
+
+
+-(define %pkg-config-program "@PKG_CONFIG@")
++(define %pkg-config-program "pkg-config")
+
+ ;;;; main function, command-line processing
+
diff --git a/guile-threadstest.patch b/guile-threadstest.patch
new file mode 100644
index 0000000..9699601
--- /dev/null
+++ b/guile-threadstest.patch
@@ -0,0 +1,12 @@
+diff --git a/test-suite/tests/threads.test b/test-suite/tests/threads.test
+index efdf36d..ff5ba2d 100644
+--- a/test-suite/tests/threads.test
++++ b/test-suite/tests/threads.test
+@@ -382,6 +382,7 @@
+
+ (pass-if "mutex with owner not retained (bug #27450)"
+ (let ((g (make-guardian)))
++ (throw 'unresolved)
+ (g (let ((m (make-mutex))) (lock-mutex m) m))
+
+ ;; Avoid false references to M on the stack.
diff --git a/guile.spec b/guile.spec
new file mode 100644
index 0000000..d675eb8
--- /dev/null
+++ b/guile.spec
@@ -0,0 +1,156 @@
+Name: guile
+Version: 2.2.7
+Release: 6
+Epoch: 5
+Summary: GNU's Ubiquitous Intelligent Language for Extension
+License: LGPLv3+
+URL: https://www.gnu.org/software/guile/
+Source: https://ftp.gnu.org/gnu/guile/%{name}-%{version}.tar.xz
+
+%global g_version 2.2
+
+#Patch from fedora
+#https://src.fedoraproject.org/rpms/guile22/blob/f38/f/guile-multilb.patch
+Patch1: guile-multilib.patch
+#https://src.fedoraproject.org/rpms/guile22/blob/f38/f/guile-threadstest.patch
+Patch3: guile-threadstest.patch
+#https://src.fedoraproject.org/rpms/guile22/blob/f38/f/disable-out-of-memory-test.patch
+Patch4: disable-out-of-memory-test.patch
+#https://src.fedoraproject.org/rpms/guile22/blob/f38/f/guile-configure.patch
+Patch5: guile-configure.patch
+#https://src.fedoraproject.org/rpms/guile/blob/rawhide/f/guile-2.0.14-gc_pkgconfig_private.patch
+Patch6000: guile-2.0.14-gc_pkgconfig_private.patch
+
+BuildRequires: gcc libtool gmp-devel readline-devel gc-devel libffi-devel
+BuildRequires: gettext-devel libunistring-devel libtool-ltdl-devel
+Requires: coreutils
+
+%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 devel
+Summary: Development files and Header files for %{name}
+Requires: guile = %{epoch}:%{version}-%{release} gmp-devel gc-devel pkgconfig
+
+%description devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+%package_help
+
+%prep
+%autosetup -n %{name}-%{version} -p1
+
+%build
+autoreconf -fiv
+%configure --disable-error-on-warning
+sed -i 's|" $sys_lib_dlsearch_path "|" $sys_lib_dlsearch_path %{_libdir} "|' libtool
+%make_build
+
+%install
+%make_install
+install -d %{buildroot}%{_datadir}/guile/site/%{g_version}
+%delete_la_and_a
+rm -f %{buildroot}%{_infodir}/dir
+bzip2 NEWS
+
+for i in %{buildroot}%{_infodir}/goops.info; do
+ iconv -f iso8859-1 -t utf-8 < $i > $i.utf8 && mv -f ${i}{.utf8,}
+done
+
+touch %{buildroot}%{_datadir}/guile/site/%{g_version}/slibcat
+
+ln -s guile %{buildroot}%{_bindir}/guile2
+ln -s guile-tools %{buildroot}%{_bindir}/guile-tools2
+
+find %{buildroot}%{_datadir} -name '*.scm' -exec touch -r "%{_specdir}/guile.spec" '{}' \;
+find %{buildroot}%{_libdir} -name '*.go' -exec touch -r "%{_specdir}/guile.spec" '{}' \;
+
+%check
+make check || true
+
+%ldconfig_scriptlets
+
+%triggerin -- slib >= 3b4-1
+export SCHEME_LIBRARY_PATH=%{_datadir}/slib/
+
+%{_bindir}/guile --fresh-auto-compile --no-auto-compile -c \
+ "(use-modules (ice-9 slib)) (require 'new-catalog)" &> /dev/null || \
+ rm -f %{_datadir}/guile/site/%{g_version}/slibcat
+:
+%triggerun -- slib >= 3b4-1
+if [ "$2" = 0 ]; then
+ rm -f %{_datadir}/guile/site/%{g_version}/slibcat
+fi
+
+%files
+%doc AUTHORS
+%license COPYING COPYING.LESSER LICENSE
+%{_datadir}/guile/%{g_version}/*
+%dir %{_datadir}/guile/site/%{g_version}
+%{_bindir}/guild
+%{_bindir}/guile
+%{_bindir}/guile2
+%{_bindir}/guile-tools*
+%{_libdir}/guile
+%{_libdir}/libguile-%{g_version}.so.*
+%{_infodir}/guile.info*.gz
+%{_infodir}/r5rs.info.gz
+%ghost %{_datadir}/guile/site/%{g_version}/slibcat
+%exclude %{_libdir}/libguile*gdb.scm
+
+%files devel
+%{_bindir}/guile-config
+%{_bindir}/guile-snarf
+%{_includedir}/guile/%{g_version}/libguile/*.h
+%{_includedir}/guile/%{g_version}/*.h
+%{_libdir}/pkgconfig/guile-%{g_version}.pc
+%{_libdir}/libguile-%{g_version}.so
+%{_datadir}/aclocal/guile.m4
+
+%files help
+%doc HACKING NEWS.bz2 README THANKS
+%{_mandir}/man1/guile.1.gz
+
+%changelog
+* Mon Aug 19 2024 zhangpan <zhangpan103@h-partners.com> - 5:2.2.7-6
+- backport patch from upstream
+
+* Fri Jul 19 2024 liweigang <liweiganga@uniontech.com> - 5:2.2.7-5
+- fix build error(automake 1.17)
+- regenerate configure file
+
+* Wed Jan 03 2024 konglidong <konglidong@uniontech.com> - 2.2.7-4
+- fix bad macro expansion in changelog
+
+* Sat Apr 8 2023 Z572 <873216071@qq.com> - 2.2.7-3
+- fix guile-tools alias 'guile2-tools' -> 'guile-tools2'
+
+* Mon Feb 20 2023 zhouwenpei <zhouwenpei1@h-partners.com> - 2.2.7-2
+- delete old so files
+
+* Mon Feb 13 2023 zhouwenpei <zhouwenpei1@h-partners.com> - 2.2.7-1
+- upgrade to 2.2.7
+
+* Mon Apr 25 2022 yangcheng <yangcheng87@h-partners.com> - 2.0.14-18
+- Remove multithreaded builds to resolve binary bep differences
+
+* Fri Jul 30 2021 chenyanpanHW <chenyanpan@huawei.com> - 2.0.14-17
+- DESC: delete -S git from autosetup, and delete BuildRequires git
+
+* Wed Jul 21 2021 yushaogui <yushaogui@huawei.com> - 2.0.14-16
+- delete gdb in buildrequires
+
+* Fri Mar 20 2020 songnannan <songnannan2@huawei.com> - 2.0.14-15
+- add gdb in buildrequires
+
+* Sat Sep 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.0.14-14
+- Type:bugfix
+- Id:NA
+- SUG:NA
+- DESC:remove the libguile-2.0.so.22.8.1-gdb.scm from package
+
+* Tue Sep 18 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.0.14-13
+- Package init
diff --git a/sources b/sources
new file mode 100644
index 0000000..7ea7b8e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+7a7e8def41678c567148c26a8a0a0873 guile-2.2.7.tar.xz