Hello, On Fri, Nov 22, 2024 at 01:35:01PM -0600, G. Branden Robinson wrote: > Hi onf, > > At 2024-11-22T15:55:33+0100, onf wrote: > > My understanding of CMake is that it's equally awful, but at least it > > supports Windows properly if you need that sort of thing. > > groff builds for Cygwin and MSYS2 right now, without patches as far as I > know. If by "supports Windows properly" you mean "without a POSIX > layer", my understanding is that groff used to build on MS-DOS, but no > one's made the attempt in a long time. I think it'd be neat to have it > running on FreeDOS. > > Microsoft's offered a variety of POSIX compatibility layers over the > years; they switch them out at intervals. I suppose that helps to > create the impression that the Windows API is more stable than that > horrible Unixy stuff over which they exercise insufficient control. > > At any rate, if someone has patches to support a Windows-native groff > build, I'm happy to give them serious consideration. > > > > > Checking the output of ./configure in groff's repository shows > > > > that autoconf checks for stuff that's guaranteed to be true on any > > > > POSIX platform that's not several decades out of date, > > > > > > The funny thing about guarantees is how often vendors fail, whether > > > through incompetence or a decision to "clear away dead weight" in > > > favor of some "bold new initiative", to back them up in fact. > > > > Perhaps, but given that the stuff it checks for has been mandated > > since POSIX.1-2001, you could hardly make the case that such a > > platform is a "POSIX platform not several decades out of date". > > AIX, HP-UX 11, and Solaris 10 are still out there. AT&T troff is still > on them, as far as I know, and a big part of groff's mission is to be a > replacement for AT&T troff anywhere someone might want one. > > > > We still support (the very old) Solaris 10, for example: > > > > > > checking for sys/time.h... yes > > > checking for stdbool.h... yes > > > checking for stdckdint.h... no > > > checking for sys/wait.h... yes > > > checking for crtdefs.h... no > > > checking for wctype.h... yes > > > > I am not sure what this quote is supposed to illustrate. Neither of > > the two missing header files are standardized by POSIX as far as I can > > tell. My Linux system doesn't have them either and a web search > > suggests they are something Windows-specific. > > stdckdint.h is new to C23.[1] Very long in coming, but its availability > made it pretty easy to adopt saturating arithmetic in GNU troff, > something I was keen to do. > > > > > and it even does some of this multiple times: > > > > > > Autoconf has had a caching system for a long time. Maybe decades. > > > [...] > > > > Well, the checks I quoted apparently didn't use caching. I checked the > > output again and other ones are being cached, but the ones I quoted > > aren't. > > $ autoconf --version | head -n 1 > > autoconf (GNU Autoconf) 2.71 > > $ automake --version | head -n 1 > > automake (GNU automake) 1.16.5 > > Were you quoting a groff build or some other project's? > > > > Yes, it's big. It's a compiled object (in the mundane sense, not in > > > the CS sense of "machine translation between languages"). A > > > standard C library is big, too. > > > > Are you seriously comparing those two? > > Yes. There's nothing weird or conceptually difficult about aggregating > a collection of modular or even independent components into a whole that > is coherent for transport or execution; see ar(1) and tar(1) for > instance. The "configure" script that Autoconf generates is an assembly > of macro-processed units for the user's convenience. But it is not the > "preferred form for modification", as the GPL text puts it, just as a > ".a" file is not the preferred means of hacking on a static library (and > would not be even if it had it not been translated into machine > language). > > > As Dave Kemper noted, the fact that documentation is important doesn't > > mean its presence should be a prerequisite to being able to compile > > the software itself. One can obtain documentation by other means; it > > doesn't need to be compiled in one go with the software. > > This isn't a hill I'm trying to fight on; the issue is that no one with > a jones to support a Texinfo-independent build of the groff project has > shown up to support and _maintain_ the changes necessary to do so. > > > Any reasonable build setup I've ran into which requires additional > > dependencies to generate documentation allows me, at the very least, > > to disable generating documentation. Many allow one to choose between > > building the software, the documentation, or both. > > Sure. Debian packagers often exercise such flexibility. > > > > Not me. A completely undocumented build system sounds like a > > > nightmare to me--a toy or experiment undertaken by its author, > > > possibly. > > > > If anything seems like an experiment it's autotools to be honest. > > Thomas Dickey (maintainer of ncurses and other projects) has had a > notoriously difficult relationship with the Autotools. You might be > entertained by his page on the subject. > > https://invisible-island.net/autoconf/autoconf.html > > I suspect the Autotools maintainers largely absorbed some of the lessons > Thomas had to offer, but as far as I know, his projects have not > rejoined the Autoconf mainstream. Oh well. We're all inertial about > _something_... > > > I wasn't talking about writing another autoconf macro (god forbid!), > > When I finally rolled up my sleeves and did so, it was much less > difficult than I had feared. > > > I was talking about figuring out how to manually disable the texinfo > > prerequisite. > > I don't advise anyone to attempt this until we can officially support. > If it's done at all, it should be done correctly. > > > I overestimated the size of autotools' source files, though; the m4 > > files used by gnulib unintentionally fell into the estimate too. > > If we audit libgroff for functions that have standardized since 1990 (or > have quasi-standardized by dint of availability in gnulib), I suspect > that the library could shrink, but gnulib's contribution to our m4 > footprint might increase. > > That wouldn't be bad. Let groff developers focus on groff. Our mission > is setting type. > > > > > I am still puzzled that GNU has so many volunteers and supporters > > > > given how awfully it approaches just so many things. > > > > > > I can't, and wouldn't want to, command you to contribute to any GNU > > > project. In my experience, people who are convinced that the grass > > > is so much greener somewhere else invariably find out that it isn't. > > > They then either pretend not to have made this discovery, or they > > > embrace a more realistic perspective. > > > > > > That goes for many aspects of life, of course, not just software. > > > > Well, most 'somewhere else' at least don't require me to surrender > > ownership of the stuff I contribute. > > If you think this is true of groff, that's false. Here's part of the > new-maintainer-onboarding email I received in September. > > >>> For a program to be GNU software does not require transferring > >>> copyright to the FSF; that is a separate question. If you transfer > >>> the copyright to the FSF, the FSF will enforce the GPL for the > >>> program if someone violates it; if you keep the copyright, > >>> enforcement will be up to you. > > I'm keenly aware that the groff home page still has a banner on it > claiming that copyright assignment is required. It's my intention to > remove that banner after I've sorted out the copyright assignment status > of past contributions: I have to ask the GNU project how to even do > this (and that process should be documented--at all, or better than it > is). Partly, this is a matter of finding out which groff contributors > have signed copyright assignment papers _at all_; if someone has, I > don't need to follow up to find out of if the scope of such an > assignment includes groff or not. > > My spidey sense tells me that this process is going to be a > high-latency, email-heavy procedure--anything that has ever involved > lawyers in its life cycle always is, and the FSF doesn't have a lot of > paid support staff. I have therefore decided not to undertake it before > the 1.24 release.
> > From my own experience, though, sometimes the grass really IS greener > > on the other side. For instance, I have had great experience switching > > away from systemd, apt, and PulseAudio. apt is a terrible interface to a very useful and mature packaging system. which leads me to write my own tool which uses: * original apt-tools to manage packages * aptitude to query the state of a system or the available packages and repo. however I realize most of newcomers only know apt which is a terrible thing because (to me at least) the packaging system is one of the best point of debian promotion. > Lennart Poettering seems to have a talent for > developing 66% of a solution to a problem (based on whatever Apple did > with macOS Another point is "both fedora and ubuntu are the distro where all bad ideas happens first" so debian is for now the safer place for average linux users. > they don't really need whatever it is that's missing. (For a > half-throated defense of systemd, see Benno Rice's LCA 2019 talk.[2]) well … I don't go on it :) I use debian with no task selected, iproute2 and nftables (no ifupdown nor networkmanager), slim and dwm. I tried to replace systemd with sinit but it failed. I have to investigate. > an interview back in the day. I wonder if this was because Jason > Gunthorpe wrote it in C++ instead of Perl. I … that … it broke my heart ! > If Mark Shuttleworth has > done one good thing in his life, it's mailing > out thousands (millions?) of free CD-ROMs of a dpkg-based distribution > at a crucial period when wretched old, half-assed RPM threatened to > become the monopoly player in GNU/Linux-based package management. Amen! on the other hand: we were so many to experience terrible experiences at this time that "anything but RPM" was fine (I remember I moved back to slackware before someone told me about debian). I adopted debian circa 2000 and it's my distro since then both for servers and desktops (even if I gave many other distro a chance). > I'm curious to see where approaches like Nix and GNU Mes[4] take us. > (One decades-old tradition GNU keeps vigorously alive: mediocre-to-bad > project names.) Guix enters slowly in my setup as a "Vagrant + Chef + Docker made right" wanabe. I'll leave my debian desktop whenever I can leave linux to OpenBSD. To come back to autotools: i recently gave a try to https://github.com/kristapsdz/oconfigure I don't know how it compares but it's much more simple. Ingo is also a reason of my interest to groff. regards, -- Marc Chantreux Pôle CESAR (Calcul et services avancés à la recherche) Université de Strasbourg 14 rue René Descartes, BP 80010, 67084 STRASBOURG CEDEX 03.68.85.60.79