diff -Nru guile-2.2-2.2.4+1/debian/.git-dpm guile-2.2-2.2.4+1/debian/.git-dpm --- guile-2.2-2.2.4+1/debian/.git-dpm 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/.git-dpm 2019-06-01 15:15:02.000000000 -0500 @@ -1,6 +1,6 @@ # see git-dpm(1) from git-dpm package -59d9bcd468aab0d97d763595fd4e934044dc7590 -59d9bcd468aab0d97d763595fd4e934044dc7590 +c17d093ff083f4f8ba604d7ea60d76282fd31daf +c17d093ff083f4f8ba604d7ea60d76282fd31daf 4d0be7303dd8f27e1e15478751a9daa2c680a677 4d0be7303dd8f27e1e15478751a9daa2c680a677 guile-2.2_2.2.4+1.orig.tar.xz diff -Nru guile-2.2-2.2.4+1/debian/changelog guile-2.2-2.2.4+1/debian/changelog --- guile-2.2-2.2.4+1/debian/changelog 2018-07-28 15:10:51.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/changelog 2019-06-02 11:17:15.000000000 -0500 @@ -1,3 +1,27 @@ +guile-2.2 (2.2.4+1-2) unstable; urgency=medium + + * Backport upstream fix for after-gc-hook test failures. Replace + 0006-gc.test-after-gc-hook-mark-unresolved-on-failure-for.patch that + marked the failure as unresolved on mips(el) (a failure which has been + seen since on at least sparc64 and amd64) with + 0006-Fix-gc.test-after-gc-hook-gets-called-failures.patch which + addresses the underlying problem. (Closes: 900652) + + * Handle guile-config/guile-snarf/guild as alternatives. Arrange for + guile-config, guile-snarf, guild (and guile-tools) to be handled via + update-alternatives with all of the other tools dependent on + guile-config. Configure with "--program-suffix -2.2" which gives the + binaries the correct names from the start, so that we don't have to + manually change them in debian/rules. This also arranges for + guile-config, etc. to refer to the versioned guile in their #! lines, + which is what we should have been doing all along. + + Thanks to Ahmed El-Mahmoudy and Norbert Preining for reporting the + problem, Kari Pahula and Vagrant Cascadian for help devising the fix, + and Thibaut Paumard for help testing. (Closes: 926182) + + -- Rob Browning Sun, 02 Jun 2019 11:17:15 -0500 + guile-2.2 (2.2.4+1-1) unstable; urgency=medium * Upgrade to 2.2.4. diff -Nru guile-2.2-2.2.4+1/debian/guile-dev.install guile-2.2-2.2.4+1/debian/guile-dev.install --- guile-2.2-2.2.4+1/debian/guile-dev.install 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/guile-dev.install 2019-06-01 15:22:01.000000000 -0500 @@ -1,7 +1,7 @@ -debian/tmp/usr/bin/guild -debian/tmp/usr/bin/guile-config -debian/tmp/usr/bin/guile-snarf -debian/tmp/usr/bin/guile-tools +debian/tmp/usr/bin/guild-@DEB_SRC_EFF_VER@ +debian/tmp/usr/bin/guile-config-@DEB_SRC_EFF_VER@ +debian/tmp/usr/bin/guile-snarf-@DEB_SRC_EFF_VER@ +debian/tmp/usr/bin/guile-tools-@DEB_SRC_EFF_VER@ debian/tmp/usr/include/* debian/tmp/usr/lib/*/*.a debian/tmp/usr/lib/*/libguile-@DEB_SRC_EFF_VER@.so diff -Nru guile-2.2-2.2.4+1/debian/guile-dev.postinst guile-2.2-2.2.4+1/debian/guile-dev.postinst --- guile-2.2-2.2.4+1/debian/guile-dev.postinst 1969-12-31 18:00:00.000000000 -0600 +++ guile-2.2-2.2.4+1/debian/guile-dev.postinst 2019-06-02 11:17:15.000000000 -0500 @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +update-alternatives \ + --install /usr/bin/guile-config guile-config \ + /usr/bin/guile-config-@DEB_SRC_EFF_VER@ @DEB_ALT_PRIORITY@ \ + --slave /usr/bin/guile-snarf guile-snarf \ + /usr/bin/guile-snarf-@DEB_SRC_EFF_VER@ \ + --slave /usr/bin/guild guile-guild \ + /usr/bin/guild-@DEB_SRC_EFF_VER@ \ + --slave /usr/bin/guile-tools guile-tools \ + /usr/bin/guile-tools-@DEB_SRC_EFF_VER@ + +#DEBHELPER# diff -Nru guile-2.2-2.2.4+1/debian/guile-dev.prerm guile-2.2-2.2.4+1/debian/guile-dev.prerm --- guile-2.2-2.2.4+1/debian/guile-dev.prerm 1969-12-31 18:00:00.000000000 -0600 +++ guile-2.2-2.2.4+1/debian/guile-dev.prerm 2019-06-01 15:22:01.000000000 -0500 @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" != upgrade ] +then + update-alternatives --verbose \ + --remove guile-config \ + /usr/bin/guile-config-@DEB_SRC_EFF_VER@ +fi + +#DEBHELPER# diff -Nru guile-2.2-2.2.4+1/debian/guile-libs.install guile-2.2-2.2.4+1/debian/guile-libs.install --- guile-2.2-2.2.4+1/debian/guile-libs.install 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/guile-libs.install 2019-06-02 11:17:15.000000000 -0500 @@ -1,4 +1,4 @@ -debian/tmp/usr/bin/guile /usr/lib/@MARCH@guile-@DEB_SRC_EFF_VER@/bin +debian/tmp/usr/bin/guile /usr/lib/@MARCH@guile/@DEB_SRC_EFF_VER@/bin debian/tmp/usr/lib/*/guile/@DEB_SRC_EFF_VER@/ccache/* debian/tmp/usr/lib/*/libguile-@DEB_SRC_EFF_VER@.so.* debian/tmp/usr/lib/*/guile/@DEB_SRC_EFF_VER@/extensions/guile-readline.so* diff -Nru guile-2.2-2.2.4+1/debian/guile.links guile-2.2-2.2.4+1/debian/guile.links --- guile-2.2-2.2.4+1/debian/guile.links 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/guile.links 2019-06-02 11:17:15.000000000 -0500 @@ -1 +1 @@ -usr/lib/@MARCH@guile-@DEB_SRC_EFF_VER@/bin/guile usr/bin/guile-@DEB_SRC_EFF_VER@ +usr/lib/@MARCH@guile/@DEB_SRC_EFF_VER@/bin/guile usr/bin/guile-@DEB_SRC_EFF_VER@ diff -Nru guile-2.2-2.2.4+1/debian/guile.postinst guile-2.2-2.2.4+1/debian/guile.postinst --- guile-2.2-2.2.4+1/debian/guile.postinst 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/guile.postinst 2019-06-02 11:16:59.000000000 -0500 @@ -6,7 +6,7 @@ --install \ /usr/bin/guile \ guile \ - /usr/lib/@MARCH@guile-@DEB_SRC_EFF_VER@/bin/guile \ + /usr/lib/@MARCH@guile/@DEB_SRC_EFF_VER@/bin/guile \ @DEB_ALT_PRIORITY@ \ --slave /usr/share/man/man1/guile.1.gz guile.1.gz \ /usr/share/man/man1/guile-@DEB_SRC_EFF_VER@.1.gz diff -Nru guile-2.2-2.2.4+1/debian/guile.prerm guile-2.2-2.2.4+1/debian/guile.prerm --- guile-2.2-2.2.4+1/debian/guile.prerm 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/guile.prerm 2019-06-02 11:16:59.000000000 -0500 @@ -4,7 +4,7 @@ if [ "$1" != "upgrade" ] ; then update-alternatives --remove guile \ - /usr/lib/@MARCH@guile-@DEB_SRC_EFF_VER@/bin/guile + /usr/lib/@MARCH@guile/@DEB_SRC_EFF_VER@/bin/guile fi #DEBHELPER# diff -Nru guile-2.2-2.2.4+1/debian/patches/0006-Fix-gc.test-after-gc-hook-gets-called-failures.patch guile-2.2-2.2.4+1/debian/patches/0006-Fix-gc.test-after-gc-hook-gets-called-failures.patch --- guile-2.2-2.2.4+1/debian/patches/0006-Fix-gc.test-after-gc-hook-gets-called-failures.patch 1969-12-31 18:00:00.000000000 -0600 +++ guile-2.2-2.2.4+1/debian/patches/0006-Fix-gc.test-after-gc-hook-gets-called-failures.patch 2019-06-01 15:15:02.000000000 -0500 @@ -0,0 +1,35 @@ +From c17d093ff083f4f8ba604d7ea60d76282fd31daf Mon Sep 17 00:00:00 2001 +From: Andrea Azzarone +Date: Thu, 11 Apr 2019 16:30:58 +0100 +Subject: Fix gc.test "after-gc-hook gets called" failures. + +* libguile/scmsigs.c (signal_delivery_thread): Call scm_async_tick to +give any pending asyncs a chance to run before we block indefinitely +waiting for a signal to arrive. + +Origin: backport, commit: 546b0e87294b837ec29164d87cf17102e9aeee0c) +Bug: https://debbugs.gnu.org/31776 +Bug-Debian: https://bugs.debian.org/900652 +--- + libguile/scmsigs.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c +index 21b2a9529..755e657ea 100644 +--- a/libguile/scmsigs.c ++++ b/libguile/scmsigs.c +@@ -174,6 +174,14 @@ signal_delivery_thread (void *data) + { + struct signal_pipe_data sigdata; + ++ /* This tick gives any pending asyncs a chance to run before we ++ block indefinitely waiting for a signal to arrive. For example ++ it can happen that the garbage collector is triggered while ++ marking the signal handler for future execution. Due to the ++ way the after-gc-hook is designed, without a call to ++ scm_async_tick, the after-gc-hook will not be triggered. */ ++ scm_async_tick (); ++ + scm_without_guile (read_signal_pipe_data, &sigdata); + + sig = sigdata.sigbyte; diff -Nru guile-2.2-2.2.4+1/debian/patches/0006-gc.test-after-gc-hook-mark-unresolved-on-failure-for.patch guile-2.2-2.2.4+1/debian/patches/0006-gc.test-after-gc-hook-mark-unresolved-on-failure-for.patch --- guile-2.2-2.2.4+1/debian/patches/0006-gc.test-after-gc-hook-mark-unresolved-on-failure-for.patch 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/patches/0006-gc.test-after-gc-hook-mark-unresolved-on-failure-for.patch 1969-12-31 18:00:00.000000000 -0600 @@ -1,27 +0,0 @@ -From 59d9bcd468aab0d97d763595fd4e934044dc7590 Mon Sep 17 00:00:00 2001 -From: Rob Browning -Date: Sat, 21 Jul 2018 14:30:35 -0500 -Subject: gc.test: after-gc-hook - mark unresolved on failure for mips(el) - -Bug: https://debbugs.gnu.org/31776 -Bug-Debian: https://bugs.debian.org/900652 ---- - test-suite/tests/gc.test | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/test-suite/tests/gc.test b/test-suite/tests/gc.test -index 04f353984..69f48ebbf 100644 ---- a/test-suite/tests/gc.test -+++ b/test-suite/tests/gc.test -@@ -67,7 +67,10 @@ - (add-hook! after-gc-hook thunk) - (gc) - (remove-hook! after-gc-hook thunk) -- foo)) -+ (let ((cpu (substring %host-type 0 (string-index %host-type #\-)))) -+ (cond ((string=? cpu "mips") (maybe-gc-flakiness foo)) -+ ((string=? cpu "mipsel") (maybe-gc-flakiness foo)) -+ (else foo))))) - - (pass-if "Unused modules are removed" - (let* ((guard (make-guardian)) diff -Nru guile-2.2-2.2.4+1/debian/patches/series guile-2.2-2.2.4+1/debian/patches/series --- guile-2.2-2.2.4+1/debian/patches/series 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/patches/series 2019-06-01 15:15:02.000000000 -0500 @@ -3,4 +3,4 @@ 0003-Disable-sandbox.test-1e6-alloc-loop-allocation-limit.patch 0004-Disable-intermittently-failing-test-out-of-memory-te.patch 0005-Disable-more-of-test-out-of-memory-test.patch -0006-gc.test-after-gc-hook-mark-unresolved-on-failure-for.patch +0006-Fix-gc.test-after-gc-hook-gets-called-failures.patch diff -Nru guile-2.2-2.2.4+1/debian/rules guile-2.2-2.2.4+1/debian/rules --- guile-2.2-2.2.4+1/debian/rules 2018-07-28 15:10:09.000000000 -0500 +++ guile-2.2-2.2.4+1/debian/rules 2019-06-02 11:17:15.000000000 -0500 @@ -137,6 +137,8 @@ autogen_installdeb_files := $(addprefix debian/, \ guile-$(deb_src_eff_ver).postinst \ guile-$(deb_src_eff_ver).prerm \ + guile-$(deb_src_eff_ver)-dev.postinst \ + guile-$(deb_src_eff_ver)-dev.prerm \ guile-$(deb_src_eff_ver)-doc.postinst \ guile-$(deb_src_eff_ver)-doc.prerm \ guile-$(deb_src_eff_ver)-libs.postinst \ @@ -173,7 +175,8 @@ dh_autoreconf ./autogen.sh override_dh_auto_configure: - dh_auto_configure -- --disable-error-on-warning --disable-rpath + dh_auto_configure -- --disable-error-on-warning --disable-rpath \ + --program-suffix "-$(deb_src_eff_ver)" override_dh_auto_clean: # If Makefile doesn't exist GNUmakefile will abort on distclean. @@ -221,24 +224,16 @@ override_dh_auto_install: $(autogen_install_files) make DESTDIR="$$(pwd)/debian/tmp" INSTALL='install -p' install rm -f debian/tmp/usr/lib/$(march)libguile*.la - mv debian/tmp/usr/share/man/man1/guile.1 \ - debian/tmp/usr/share/man/man1/guile-$(deb_src_eff_ver).1 gdb_ext := \ debian/$(deb_pkg_basename)-libs/usr/lib/$(march)libguile-$(deb_src_eff_ver).so*-gdb.scm gdb_ext_dir := debian/$(deb_pkg_basename)-dev/usr/share/gdb/auto-load override_dh_install-arch: $(autogen_install_files) + cd debian/tmp/usr/bin && mv -i guile-$(deb_src_eff_ver) guile dh_install -a --fail-missing \ -Xusr/lib/$(march)guile/$(deb_src_eff_ver)/extensions/guile-readline.a \ -Xusr/lib/$(march)guile/$(deb_src_eff_ver)/extensions/guile-readline.la - - sed -i'' '0,\|/usr/bin/guile|s||$(deb_guile_bin_path)|' \ - debian/$(deb_pkg_basename)-dev/usr/bin/guile-config - - sed -i'' '0,\|\$${exec_prefix}/bin/guile|s||$(deb_guile_bin_path)|' \ - debian/$(deb_pkg_basename)-dev/usr/bin/guild - test -e $(gdb_ext) mkdir -p $(gdb_ext_dir) mv $(gdb_ext) $(gdb_ext_dir)