Debian Patches

Status for mit-scheme/12.1-5

Patch Description Author Forwarded Bugs Origin Last update
0001-allow-autoreconf-force.patch allow autoreconf force

Recombobulate slightly to allow full regeneration via the command
$ autoreconf --force

- move src/microcode/aclocal.m4 to src/microcode/mit_scheme_native_code.m4

- use single shared directory for locally-defined macros (src/microcode/ for now)

The necessary local m4 macro file is explicitly included.
This is necessary because autoconf is not using automake or libtools,
so AC_CONFIG_MACRO_DIR([.../microcode]) won't work. Gulp.
"Barak A. Pearlmutter" <barak+git@cs.nuim.ie> no 2013-07-22
0002-AUXDIR_NAME-sans-arch.patch AUXDIR_NAME sans arch "Barak A. Pearlmutter" <barak+git@cs.nuim.ie> not-needed 2013-07-03
0003-sequentialize-docs.patch sequentialize docs "Barak A. Pearlmutter" <barak+git@cs.nuim.ie> no 2013-08-12
0005-man-page.patch man page

Minor updates to mit-scheme(1).
"Barak A. Pearlmutter" <barak+git@pearlmutter.net> no 2020-06-09
0007-verbose-texi2dvi.patch verbose texi2dvi "Barak A. Pearlmutter" <barak+git@pearlmutter.net> not-needed 2021-02-09
0006-texi2any-_html-fix.patch texi2any _html fix

Recent versions of texi2any dump html in foo_html/ instead of foo/,
which is breaking the installation scripts.

This is the cheesiest fix possible: add code that copies foo_html/* to foo/
after each invocation of texi2any --html.
"Barak A. Pearlmutter" <barak+git@pearlmutter.net> no 2024-11-10
0008-chacha-no-late-posix-c-source.patch chacha: drop ineffective late _POSIX_C_SOURCE definition

chacha.i is not a translation unit of its own: it is included at the
*end* of chacha8.c, chacha12.c and chacha20.c, each of which has
already included <stdint.h> and hence <features.h>. Defining
_POSIX_C_SOURCE there therefore has no effect on which declarations
the libc headers expose, but it does redefine a macro <features.h> has
already set.

That redefinition used to be benign because glibc happened to pick the
same value, 200809L. Current glibc defines _POSIX_C_SOURCE as
202405L, so the values now differ and gcc reports

chacha.i:32:9: error: '_POSIX_C_SOURCE' redefined [-Werror]

which is fatal because the microcode is built with -Werror.

Nothing in chacha.i or chacha.h needs anything beyond <stdint.h>, so
drop the definition rather than hoisting it into the three including
files -- that would *narrow* the visible namespace, which is plainly
not what was intended. md5.c, keccak.c and blowfish.c keep theirs:
those define it before any #include, where it works as intended.
"Barak A. Pearlmutter" <bap@debian.org> no debian 2026-09-04
0009-info-dircategory-scheme.patch file the info manuals under "The Algorithmic Language Scheme"

The MIT/GNU Scheme manuals sit by themselves under "Programming
Languages" in the top-level Info directory, while the other Scheme
systems packaged in Debian -- Guile, SCM, SLIB, XlibScm -- all use the
"The Algorithmic Language Scheme" section. The result is that a
reader looking at (dir) finds the Scheme documentation split across
two unrelated headings.

Use the same @dircategory as everybody else, in all seven manuals (the
four in doc/ plus the three plugin manuals under src/), so that they
are listed together, and update doc/info-dir -- the fallback top-level
Info node, installed only when none exists -- to match.
"Barak A. Pearlmutter" <bap@debian.org> no debian 2026-09-04
0010-blowfish-selftest-iv-overflow.patch blowfish: fix 8-byte stack overflow in the self test

blowfish_selftest() sets up the IV for each of the six chained-mode
tests with

memcpy(block, IV, 16);

but both IV and block are uint8_t[8] -- Blowfish has a 64-bit block,
so an 8-byte IV is the only size that makes sense here. The copy
therefore reads 8 bytes past the end of IV and writes 8 bytes past the
end of block, into whatever follows it on the stack (in practice buf[],
which is overwritten immediately afterwards, which is why this has gone
unnoticed).

It is still undefined behaviour, and with _FORTIFY_SOURCE it is the
kind of thing that turns into a runtime abort when the compiler stops
being able to prove otherwise. gcc already sees it:

In function 'memcpy',
inlined from 'blowfish_selftest' at blowfish.c:537:2:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:10: warning:
'__builtin___memcpy_chk' forming offset [8, 15] is out of the bounds
[0, 8] of object 'block' with type 'uint8_t[8]' [-Warray-bounds=]

Use sizeof(IV), which is what was meant.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-05
0011-sos-drop-stray-menu.patch sos: drop the stray sibling menu in the Introduction node

Introduction is @unnumbered, so it is a sibling of the Classes ...
Printing chapters, not their parent, and the Top node's master menu
already lists all seven at the same level. The extra menu at the end
of Introduction claims those six chapters as its children, which
contradicts the up pointers in their own @node lines:

sos.texinfo:123: warning: node up pointer for `Classes' is `Top'
but up is `Introduction' in menu
... and the same for Instances, Slots, Generic Procedures, Methods
and Printing.

Delete the duplicate menu. Nothing is lost -- the identical list is
in Top's menu one screen earlier -- and the Info hierarchy stops
contradicting itself.
"Barak A. Pearlmutter" <bap@debian.org> no 2026-09-05

All known versions for source package 'mit-scheme'

Links