Hi Barak,

thank you for forward-porting and reworking your Debian patches (7 items),
and for the clear patch headers: describing the problem separately from the
solution made the review a lot easier. All items are dealt with in SVN 2163.

Before going through the patches, let me correct something I said earlier.
I wrote that my aim is to change the GNU APL sources so that Debian does not
need to patch them. What I should have said is: so that Debian does not need
to patch the C++ sources. The reason is a difference between Debian's build
strategy and GNU APL's:

  - Debian minimizes the build artifacts in a package, at the expense of
    more build dependencies. It can, for example, safely assume autoconf,
    automake and makeinfo (as the GNU project does), backed by its dependency
    tracking.

  - GNU APL minimizes the build dependencies, at the expense of shipping
    build artifacts. apl.info, apl.html, configure, Makefile.in etc. are in
    the tarball and in the Savannah SVN, so that a user's "svn up" brings
    them in and building GNU APL needs neither autoconf/automake nor
    makeinfo. This is non-standard, but it does not hurt either.

I therefore divided your patches into two classes:

  1. source code fixes, platform issues etc. These I fix in the GNU APL
     sources, so that you can drop the patches.

  2. Debian build related patches. These remain on your side; Debian is
     your turf, not mine, and I would prefer not to touch how non-Debian
     builds work.

Summary
-------
Fixed:                 4  (0003, 0004, 0006, 0007)
Fixed with exception:  1  (0001)
Not a bug:             2  (0002, 0005)

Fixed
-----
0003 install-dirs-at-make-time: applied as is. The apl_DIR__ macros are
     now passed in AM_CPPFLAGS and gnu-apl.d/preferences is generated at
     make time. I tested a build with --prefix=/usr
     --libdir='${prefix}/lib/x86_64-linux-gnu' --sysconfdir=/etc and
     make install DESTDIR=...: apl --show_lib_dir and LIBREF-3/4/5 now
     point to where wslib3-5 and the native libraries are installed. I
     also made the windows-installer-stage target build preferences
     first, since configure no longer creates it.

0004 Quad_FIO-screen-size-no-tty: applied as is. In addition, ⎕FIO ¯9
     no longer runs off the end of the function on MinGW (it now returns
     0 there).

0006 pkg-config-for-host: applied as is. aclocal.m4 (which is in SVN)
     now contains the pkg.m4 macros, so pkg.m4 is only needed to
     regenerate it.

0007 vpath-builds-anywhere: applied, except for README-12-vpath-builds:
     the make target VPATH_clean still exists in trunk, so the README now
     mentions it as an alternative to 'make distclean'.

Fixed with exception
--------------------
0001 doc-info-html: not applied, since building the manuals from their
     .texi sources is the Debian strategy (class 2). However, the problems
     that you describe were real, and I fixed them in a way that keeps the
     shipped manuals:

     - ./configure checks for makeinfo (AM_CONDITIONAL apl_MAKEINFO).
     - With makeinfo, apl.info, apl.html, libapl.info and libapl.html are
       rebuilt if their .texi source is newer, and a makeinfo error stops
       the build (no more "|| touch").
     - Without makeinfo, the shipped files are used (with a warning if the
       .texi source is newer). If a shipped file is missing, then this is
       an error instead of an empty file.
     - make install takes the .info files from the build directory if
       they were rebuilt there (VPATH build), and otherwise from $(srcdir).
     - doc/DALY/apl-library.info is handled the same way (it had no build
       rule at all before), and uninstall removes apl-library.info (it
       removed apl.info and libapl.info before).

     Since you import the sources without the pre-built manuals and have
     makeinfo, the unpatched Makefiles should now build all of them for
     you. Whether you still need 0001 then depends only on its other
     changes (info-in-builddir, not installing the .texi files), which
     are up to you.

Not a bug
---------
0002 no-debian-subdir and 0005 no-Bible-preview: these are Debian
     specific (class 2) and stay with you, as you suggested. Upstream
     keeps installing HOWTOs/Bible. Note that the packaging directory in
     trunk is now called deb/ (not debian/), so it should no longer clash with
     your debian/ directory.

Best Regards,
Jürgen

PS: The analysis of your report and the resulting changes were made with
the help of Claude Code (Anthropic). All changes were reviewed by me and
verified against the GNU APL testcases before being committed.


On 11/5/26 17:03, Barak A. Pearlmutter wrote:
Okay Jürgen, I just uploaded a version to debian based on the current
svn trunk tip as exposed on the savannah git repo.

Thanks for merging all those earlier patches, or fixing the issues
some better way, as the case may be.

I've forward ported the remaining patches, and reworked them, and
added some more.

https://salsa.debian.org/debian/gnu-apl/-/tree/debian/debian/patches

The patch headers should describe what's going on for each one. I
tried to first describe the issue, then list alternative solutions,
then describe the solution used. That way if the particular solution
seems bogus you should still have a clean problem description.

Patches 0002 and 0005 are debian-specific (sort of, I guess) so you
might want to ignore them.

Most of these are build script stuff.

Cheers,

--Barak.


  • [PATCH] big-en... Barak A. Pearlmutter
    • Re: [PATC... Dr . Jürgen Sauermann via Bugs and suggestions for GNU APL
      • Re: [... Barak A. Pearlmutter
      • Re: [... Barak A. Pearlmutter
        • R... Dr . Jürgen Sauermann via Bugs and suggestions for GNU APL
        • R... Barak A. Pearlmutter
          • ... Dr . Jürgen Sauermann via Bugs and suggestions for GNU APL
        • R... Barak A. Pearlmutter

Reply via email to