fvwmorg / fvwm3

FVWM version 3 -- the successor to fvwm2
Other
488 stars 75 forks source link

Meson Build: #996

Open Kangie opened 3 months ago

Kangie commented 3 months ago

This PR is an attempt at finishing off the WIP meson build infrastructure so that we I never have to think about autotools again.

This includes some (very basic) fvwmprompt/fvwmconsole paths based on golang detection. This will probably need to be amended (or just dropped to simplify the build, retaining only the 'modern' path).

Known issues:

See #89

Kangie commented 3 months ago

Fwiw it builds, links, and installs... On my dev machine. I have not tried a build container yet.

it is also entirely untested, and I don't know the codebase well enough to be sure that everything is covered. I figure good enough for comment now though.

ThomasAdam commented 3 months ago

Thanks, @Kangie

Please just focus on the necessary changes to make meson build with the codebase in the state that it is in.

I'm well aware of the time.h vs says/time.h issue, and the whole RETSIGTYPE return stuff, but I don't want those sorts of changes coming in as part of this work. This change is big enough without those cleanups.

We can do all of that sort of thing later.

Kangie commented 3 months ago

I've moved the commits to the end for now - I'm happy to make a new branch with those commits that I can PR from afterwards, but they're all fixes that IMO could easily fall under the topic of build system modernisation.

As it stands none of the refactor commits materially impact on the autotools build path, we're just configuring for things that no longer exist in code.

Edit: I'm happy to tidy up my commit history down to one or two atomic meson build commits (plus the refactors, etc elsewhere), just let me know what you want that to look like.

Kangie commented 3 months ago

In terms of further tidyup, etc, we do a lot of checks for POSIX headers, etc. Do you want to retain those or can I start stripping that down?

ThomasAdam commented 3 months ago

Hi @Kangie

Thanks again for looking at this.

I think I'd want to do this in stages.

The first approach is to get meson working side-by-side with autotools. When this is eventually merged to main, it isn't replacing autotools at all -- I know there's plenty of platforms out there which can't use meson, but for which people still compile fvwm -- so I want to really assess that before any official switchover is considered, where it's replacing autotools.

What I will say, is that replacement isn't going to remove anything about autotools from the build system -- if someone wishes to use autotools, they can.

So to your question, any cleanups we do have to work for both autotools and meson -- things like RETSIGTYPE and sys/time.h are easy. But we're not at that point yet.

There's a slew of crap from me on the meson branch your PR is based from that deliberately needs squashing together and reworking into decent commits.

Additionally, I'm not sure I've made proper use of meson_options and their 'auto' field, compared with the checks I'm doing in the main/top-level meson.build file -- that really does need looking at as well.

Kangie commented 3 months ago

I was out for most of today, but made decent progress this evening:

It looks like there are still a number of outstanding modules. I can add them but thought I'd check if there was a reason that they weren't ported other than the WIP nature of the branch I picked up. :)

asciidoc:

[5/193] Generating doc/fvwm3styles.html with a custom command
asciidoctor: ERROR: fvwm3styles.adoc: line 7: include file not found: /data/development/temp/fvwm3/doc/fvwm3_styles.ad
[6/193] Generating doc/fvwm3commands.html with a custom command
asciidoctor: ERROR: fvwm3commands.adoc: line 7: include file not found: /data/development/temp/fvwm3/doc/fvwm3_commands.ad
[29/193] Generating doc/fvwm3menus.html with a custom command
asciidoctor: ERROR: fvwm3menus.adoc: line 7: include file not found: /data/development/temp/fvwm3/doc/fvwm3_menus.ad
[55/193] Generating doc/fvwm3styles.1 with a custom command
asciidoctor: ERROR: fvwm3styles.adoc: line 7: include file not found: /data/development/temp/fvwm3/doc/fvwm3_styles.ad
Kangie commented 3 months ago

@eli-schwartz I think that I've hit pretty much all of the edge cases we're going to find here - the remaining C modules should be mostly trivial. Could you please review the meson build changes (and docs) for me and tell me if there's anything I've obviously gotten wrong (or that could be done in a better way!)

Kangie commented 3 months ago

I got an answer for this:

The one thing I'm not clear on, Kangie, is how we mimick the --program-{prefix,suffix,transform-name} option in meson. A lot of packagers make use of this to keep fvwm2 and fvwm3 installed side-by-side.

it's

meson doesn't have a builtin way to do this, and while I'm interested in the notion I'm not entirely sure how we'd reliably do it for both compiled executables and install_data()'ed scripts but you could add a meson_options.txt option for it and simply add it to the first parameter for executable()

From my persective as a downstream packager in Gentoo land, I set a blocking dependency on fvwm2 and fvwm3 - users can have one or the other, not both. I'm not sure that it's unreasonable to do this in 2024. ;)

Let's consider it as a post-merge enhancement for now; we can raise a ticket for discussion and resolve it once we're happy that everything else is working (but before the next release)?

Kangie commented 3 months ago

@ThomasAdam I'm reasonably happy with the progress here, enough to put a stop to fiddling with the code and commits in this PR and work off a few tickets before the next release (I'm happy to address any feedback you have here, of course!)

My Gentoo 1.1.0 install has these files:

/bin
/bin/fvwm-convert-2.6
/bin/fvwm-menu-desktop -> ../lib/python-exec/python-exec2
/bin/fvwm-menu-directory
/bin/fvwm-menu-xlock
/bin/fvwm-perllib
/bin/fvwm-root
/bin/fvwm3
/bin/FvwmCommand -> ../lib/python-exec/python-exec2
/bin/FvwmPrompt
/lib
/lib/python-exec
/lib/python-exec/python3.11
/lib/python-exec/python3.11/fvwm-menu-desktop
/lib/python-exec/python3.11/FvwmCommand
/libexec
/libexec/fvwm3
/libexec/fvwm3/1.1.0
/libexec/fvwm3/1.1.0/FvwmAnimate
/libexec/fvwm3/1.1.0/FvwmAuto
/libexec/fvwm3/1.1.0/FvwmBacker
/libexec/fvwm3/1.1.0/FvwmButtons
/libexec/fvwm3/1.1.0/FvwmCommandS
/libexec/fvwm3/1.1.0/FvwmEvent
/libexec/fvwm3/1.1.0/FvwmForm
/libexec/fvwm3/1.1.0/FvwmIconMan
/libexec/fvwm3/1.1.0/FvwmIdent
/libexec/fvwm3/1.1.0/FvwmMFL
/libexec/fvwm3/1.1.0/FvwmPager
/libexec/fvwm3/1.1.0/FvwmPerl
/libexec/fvwm3/1.1.0/FvwmRearrange
/libexec/fvwm3/1.1.0/FvwmScript
/libexec/fvwm3/1.1.0/FvwmTalk
/share
/share/doc
/share/doc/fvwm3-1.1.0-r1
/share/doc/fvwm3-1.1.0-r1/html
/share/doc/fvwm3-1.1.0-r1/html/fvwm-convert-2.6.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm-menu-desktop.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm-menu-directory.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm-menu-xlock.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm-perllib.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm-root.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm3.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm3all.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm3commands.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm3menus.html
/share/doc/fvwm3-1.1.0-r1/html/fvwm3styles.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmAnimate.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmAuto.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmBacker.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmButtons.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmCommand.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmConsole.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmEvent.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmForm.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmIconMan.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmIdent.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmMFL.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmPager.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmPerl.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmRearrange.html
/share/doc/fvwm3-1.1.0-r1/html/FvwmScript.html
/share/doc/fvwm3-1.1.0-r1/html/index.html
/share/doc/fvwm3-1.1.0-r1/NEWS.bz2
/share/fvwm3
/share/fvwm3/ConfigFvwmBacker
/share/fvwm3/ConfigFvwmButtons
/share/fvwm3/ConfigFvwmDefaults
/share/fvwm3/ConfigFvwmIconMan
/share/fvwm3/ConfigFvwmIdent
/share/fvwm3/ConfigFvwmPager
/share/fvwm3/default-config
/share/fvwm3/default-config/config
/share/fvwm3/default-config/FvwmScript-ConfirmCopyConfig
/share/fvwm3/default-config/FvwmScript-ConfirmQuit
/share/fvwm3/default-config/FvwmScript-DateTime
/share/fvwm3/default-config/images
/share/fvwm3/default-config/images/background
/share/fvwm3/default-config/images/background/bg1.png
/share/fvwm3/default-config/images/background/bg2.png
/share/fvwm3/default-config/images/background/bg3.png
/share/fvwm3/default-config/images/bgicons
/share/fvwm3/default-config/images/bgicons/bg1.png
/share/fvwm3/default-config/images/bgicons/bg2.png
/share/fvwm3/default-config/images/bgicons/bg3.png
/share/fvwm3/default-config/images/fvwm-logo-small.png
/share/fvwm3/default-config/images/icons
/share/fvwm3/default-config/images/icons/apps.png
/share/fvwm3/default-config/images/icons/conf.png
/share/fvwm3/default-config/images/icons/help.png
/share/fvwm3/default-config/images/icons/info.png
/share/fvwm3/default-config/images/icons/programs.png
/share/fvwm3/default-config/images/icons/quit.png
/share/fvwm3/default-config/images/icons/refresh.png
/share/fvwm3/default-config/images/icons/restart.png
/share/fvwm3/default-config/images/icons/run_arrow.png
/share/fvwm3/default-config/images/icons/terminal.png
/share/fvwm3/default-config/images/icons/wallpaper.png
/share/fvwm3/default-config/images/icons/win
/share/fvwm3/default-config/images/icons/win/bottom.png
/share/fvwm3/default-config/images/icons/win/close.png
/share/fvwm3/default-config/images/icons/win/destroy.png
/share/fvwm3/default-config/images/icons/win/done.png
/share/fvwm3/default-config/images/icons/win/iconify.png
/share/fvwm3/default-config/images/icons/win/lower.png
/share/fvwm3/default-config/images/icons/win/max.png
/share/fvwm3/default-config/images/icons/win/move.png
/share/fvwm3/default-config/images/icons/win/raise.png
/share/fvwm3/default-config/images/icons/win/resize.png
/share/fvwm3/default-config/images/icons/win/sendto.png
/share/fvwm3/default-config/images/icons/win/shade.png
/share/fvwm3/default-config/images/icons/win/stays.png
/share/fvwm3/default-config/images/icons/win/sticky.png
/share/fvwm3/default-config/images/icons/win/title.png
/share/fvwm3/default-config/images/icons/win/top.png
/share/fvwm3/default-config/stalonetrayrc
/share/fvwm3/fvwm-menu-desktop-config.fpl
/share/fvwm3/fvwm-script-ComExample.pl
/share/fvwm3/FvwmForm-Capture
/share/fvwm3/FvwmForm-Desktop
/share/fvwm3/FvwmForm-Form
/share/fvwm3/FvwmForm-QuitVerify
/share/fvwm3/FvwmForm-Rlogin
/share/fvwm3/FvwmForm-RootCursor
/share/fvwm3/FvwmForm-Talk
/share/fvwm3/FvwmForm-TalkHelp
/share/fvwm3/FvwmForm-XDGMenuHelp
/share/fvwm3/FvwmForm-XDGOptionsHelp
/share/fvwm3/FvwmScript-BaseConfig
/share/fvwm3/FvwmScript-BellSetup
/share/fvwm3/FvwmScript-Buttons
/share/fvwm3/FvwmScript-Colorset
/share/fvwm3/FvwmScript-ComExample
/share/fvwm3/FvwmScript-ConfirmCopyConfig -> default-config/FvwmScript-ConfirmCopyConfig
/share/fvwm3/FvwmScript-ConfirmQuit -> default-config/FvwmScript-ConfirmQuit
/share/fvwm3/FvwmScript-Date
/share/fvwm3/FvwmScript-DateTime -> default-config/FvwmScript-DateTime
/share/fvwm3/FvwmScript-FileBrowser
/share/fvwm3/FvwmScript-Find
/share/fvwm3/FvwmScript-KeyboardSetup
/share/fvwm3/FvwmScript-PointerSetup
/share/fvwm3/FvwmScript-Quit
/share/fvwm3/FvwmScript-ScreenDump
/share/fvwm3/FvwmScript-ScreenSetup
/share/fvwm3/FvwmScript-WidgetDemo
/share/fvwm3/locale
/share/fvwm3/locale/ar
/share/fvwm3/locale/ar/LC_MESSAGES
/share/fvwm3/locale/ar/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/ar/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/da
/share/fvwm3/locale/da/LC_MESSAGES
/share/fvwm3/locale/da/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/da/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/de
/share/fvwm3/locale/de/LC_MESSAGES
/share/fvwm3/locale/de/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/de/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/es
/share/fvwm3/locale/es/LC_MESSAGES
/share/fvwm3/locale/es/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/es/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/fr
/share/fvwm3/locale/fr/LC_MESSAGES
/share/fvwm3/locale/fr/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/fr/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/ru
/share/fvwm3/locale/ru/LC_MESSAGES
/share/fvwm3/locale/ru/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/ru/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/sv_SE
/share/fvwm3/locale/sv_SE/LC_MESSAGES
/share/fvwm3/locale/sv_SE/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/sv_SE/LC_MESSAGES/FvwmScript.mo
/share/fvwm3/locale/zh_CN
/share/fvwm3/locale/zh_CN/LC_MESSAGES
/share/fvwm3/locale/zh_CN/LC_MESSAGES/fvwm.mo
/share/fvwm3/locale/zh_CN/LC_MESSAGES/FvwmScript.mo
/share/man
/share/man/man1
/share/man/man1/fvwm-convert-2.6.1.bz2
/share/man/man1/fvwm-menu-desktop.1.bz2
/share/man/man1/fvwm-menu-directory.1.bz2
/share/man/man1/fvwm-menu-xlock.1.bz2
/share/man/man1/fvwm-perllib.1.bz2
/share/man/man1/fvwm-root.1.bz2
/share/man/man1/fvwm3.1.bz2
/share/man/man1/fvwm3all.1.bz2
/share/man/man1/fvwm3commands.1.bz2
/share/man/man1/fvwm3menus.1.bz2
/share/man/man1/fvwm3styles.1.bz2
/share/man/man1/FvwmAnimate.1.bz2
/share/man/man1/FvwmAuto.1.bz2
/share/man/man1/FvwmBacker.1.bz2
/share/man/man1/FvwmButtons.1.bz2
/share/man/man1/FvwmCommand.1.bz2
/share/man/man1/FvwmConsole.1.bz2
/share/man/man1/FvwmEvent.1.bz2
/share/man/man1/FvwmForm.1.bz2
/share/man/man1/FvwmIconMan.1.bz2
/share/man/man1/FvwmIdent.1.bz2
/share/man/man1/FvwmMFL.1.bz2
/share/man/man1/FvwmPager.1.bz2
/share/man/man1/FvwmPerl.1.bz2
/share/man/man1/FvwmRearrange.1.bz2
/share/man/man1/FvwmScript.1.bz2
/share/xsessions
/share/xsessions/fvwm3.desktop
/X11
/X11/Sessions
/X11/Sessions/fvwm3

While my meson build installed to a prefix in /tmp looks like this:

/bin/fvwm-convert-2.6
/bin/fvwm-menu-desktop
/bin/fvwm-menu-directory
/bin/fvwm-menu-xlock
/bin/fvwm-perllib
/bin/FvwmPrompt
/lib64
/lib64/libfvwm3.so
/libexec
/libexec/fvwm3
/libexec/fvwm3/1.1.0-49-g9b28f34a
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmCommandS
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmForm
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmIconMan
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmIdent
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmMFL
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmPager
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmPerl
/libexec/fvwm3/1.1.0-49-g9b28f34a/FvwmRearrange
/share
/share/doc
/share/doc/fvwm3-1.1.0-49-g9b28f34a
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm-convert-2.6.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm-menu-desktop.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm-menu-directory.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm-menu-xlock.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm-perllib.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm-root.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm3.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm3all.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm3commands.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm3menus.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/fvwm3styles.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmAnimate.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmAuto.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmBacker.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmButtons.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmEvent.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmForm.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmIconMan.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmIdent.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmMFL.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmPager.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmPerl.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmPrompt.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmRearrange.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/FvwmScript.html
/share/doc/fvwm3-1.1.0-49-g9b28f34a/html/index.html
/share/fvwm3
/share/fvwm3/ConfigFvwmIconMan
/share/fvwm3/ConfigFvwmIdent
/share/fvwm3/ConfigFvwmPager
/share/fvwm3/default-config
/share/fvwm3/default-config/config
/share/fvwm3/default-config/FvwmScript-ConfirmCopyConfig
/share/fvwm3/default-config/FvwmScript-ConfirmQuit
/share/fvwm3/default-config/FvwmScript-DateTime
/share/fvwm3/default-config/images
/share/fvwm3/default-config/images/background
/share/fvwm3/default-config/images/background/bg1.png
/share/fvwm3/default-config/images/background/bg2.png
/share/fvwm3/default-config/images/background/bg3.png
/share/fvwm3/default-config/images/bgicons
/share/fvwm3/default-config/images/bgicons/bg1.png
/share/fvwm3/default-config/images/bgicons/bg2.png
/share/fvwm3/default-config/images/bgicons/bg3.png
/share/fvwm3/default-config/images/fvwm-logo-small.png
/share/fvwm3/default-config/images/icons
/share/fvwm3/default-config/images/icons/apps.png
/share/fvwm3/default-config/images/icons/conf.png
/share/fvwm3/default-config/images/icons/help.png
/share/fvwm3/default-config/images/icons/info.png
/share/fvwm3/default-config/images/icons/programs.png
/share/fvwm3/default-config/images/icons/quit.png
/share/fvwm3/default-config/images/icons/refresh.png
/share/fvwm3/default-config/images/icons/restart.png
/share/fvwm3/default-config/images/icons/run_arrow.png
/share/fvwm3/default-config/images/icons/terminal.png
/share/fvwm3/default-config/images/icons/wallpaper.png
/share/fvwm3/default-config/images/icons/win
/share/fvwm3/default-config/images/icons/win/bottom.png
/share/fvwm3/default-config/images/icons/win/close.png
/share/fvwm3/default-config/images/icons/win/destroy.png
/share/fvwm3/default-config/images/icons/win/done.png
/share/fvwm3/default-config/images/icons/win/iconify.png
/share/fvwm3/default-config/images/icons/win/lower.png
/share/fvwm3/default-config/images/icons/win/max.png
/share/fvwm3/default-config/images/icons/win/move.png
/share/fvwm3/default-config/images/icons/win/raise.png
/share/fvwm3/default-config/images/icons/win/resize.png
/share/fvwm3/default-config/images/icons/win/sendto.png
/share/fvwm3/default-config/images/icons/win/shade.png
/share/fvwm3/default-config/images/icons/win/stays.png
/share/fvwm3/default-config/images/icons/win/sticky.png
/share/fvwm3/default-config/images/icons/win/title.png
/share/fvwm3/default-config/images/icons/win/top.png
/share/fvwm3/default-config/stalonetrayrc
/share/fvwm3/fvwm-menu-desktop-config.fpl
/share/fvwm3/FvwmForm-Capture
/share/fvwm3/FvwmForm-Desktop
/share/fvwm3/FvwmForm-Form
/share/fvwm3/FvwmForm-QuitVerify
/share/fvwm3/FvwmForm-Rlogin
/share/fvwm3/FvwmForm-RootCursor
/share/fvwm3/FvwmForm-Talk
/share/fvwm3/FvwmForm-TalkHelp
/share/fvwm3/FvwmForm-XDGMenuHelp
/share/fvwm3/FvwmForm-XDGOptionsHelp
/share/fvwm3/FvwmScript-BaseConfig
/share/fvwm3/FvwmScript-BellSetup
/share/fvwm3/FvwmScript-Buttons
/share/fvwm3/FvwmScript-Colorset
/share/fvwm3/FvwmScript-ComExample.in
/share/fvwm3/FvwmScript-Date
/share/fvwm3/FvwmScript-FileBrowser
/share/fvwm3/FvwmScript-Find
/share/fvwm3/FvwmScript-KeyboardSetup
/share/fvwm3/FvwmScript-PointerSetup
/share/fvwm3/FvwmScript-Quit
/share/fvwm3/FvwmScript-ScreenDump
/share/fvwm3/FvwmScript-ScreenSetup
/share/fvwm3/FvwmScript-WidgetDemo
/share/fvwm3/perllib
/share/fvwm3/perllib/Commands.pm
/share/fvwm3/perllib/Constants.pm
/share/fvwm3/perllib/create-commands
/share/fvwm3/perllib/create-constants
/share/fvwm3/perllib/Event.pm
/share/fvwm3/perllib/EventNames.pm
/share/fvwm3/perllib/Module
/share/fvwm3/perllib/Module.pm
/share/fvwm3/perllib/Module/Terminal.pm
/share/fvwm3/perllib/Module/Toolkit.pm
/share/fvwm3/perllib/Tracker
/share/fvwm3/perllib/Tracker.pm
/share/fvwm3/perllib/Tracker/Colorsets.pm
/share/fvwm3/perllib/Tracker/GlobalConfig.pm
/share/fvwm3/perllib/Tracker/Makefile.am
/share/fvwm3/perllib/Tracker/ModuleConfig.pm
/share/fvwm3/perllib/Tracker/PageInfo.pm
/share/fvwm3/perllib/Tracker/Scheduler.pm
/share/fvwm3/perllib/Tracker/WindowList.pm
/share/locale
/share/locale/ar
/share/locale/ar/LC_MESSAGES
/share/locale/ar/LC_MESSAGES/fvwm3.mo
/share/locale/da
/share/locale/da/LC_MESSAGES
/share/locale/da/LC_MESSAGES/fvwm3.mo
/share/locale/de
/share/locale/de/LC_MESSAGES
/share/locale/de/LC_MESSAGES/fvwm3.mo
/share/locale/es
/share/locale/es/LC_MESSAGES
/share/locale/es/LC_MESSAGES/fvwm3.mo
/share/locale/fr
/share/locale/fr/LC_MESSAGES
/share/locale/fr/LC_MESSAGES/fvwm3.mo
/share/locale/ru
/share/locale/ru/LC_MESSAGES
/share/locale/ru/LC_MESSAGES/fvwm3.mo
/share/locale/sv_SE
/share/locale/sv_SE/LC_MESSAGES
/share/locale/sv_SE/LC_MESSAGES/fvwm3.mo
/share/locale/zh_CN
/share/locale/zh_CN/LC_MESSAGES
/share/locale/zh_CN/LC_MESSAGES/fvwm3.mo
/share/man
/share/man/man1
/share/man/man1/fvwm-convert-2.6.1
/share/man/man1/fvwm-menu-desktop.1
/share/man/man1/fvwm-menu-directory.1
/share/man/man1/fvwm-menu-xlock.1
/share/man/man1/fvwm-perllib.1
/share/man/man1/fvwm-root.1
/share/man/man1/fvwm3.1
/share/man/man1/fvwm3all.1
/share/man/man1/fvwm3commands.1
/share/man/man1/fvwm3menus.1
/share/man/man1/fvwm3styles.1
/share/man/man1/FvwmAnimate.1
/share/man/man1/FvwmAuto.1
/share/man/man1/FvwmBacker.1
/share/man/man1/FvwmButtons.1
/share/man/man1/FvwmEvent.1
/share/man/man1/FvwmForm.1
/share/man/man1/FvwmIconMan.1
/share/man/man1/FvwmIdent.1
/share/man/man1/FvwmMFL.1
/share/man/man1/FvwmPager.1
/share/man/man1/FvwmPerl.1
/share/man/man1/FvwmPrompt.1
/share/man/man1/FvwmRearrange.1
/share/man/man1/FvwmScript.1

A quick diff suggests that meson and fvwm3 disagree about what localedir should be, I'll leave that to you to look into.

Would you like me to squash this down? I'm pretty happy with the atomic nature of these commits, and that actual build fixes that were unconered while progressing have been addressed (aside from the CI/CD changes).

Kangie commented 3 weeks ago

This has been rebased and updated for the fvwmpager changes.

I have a pending PR on Meson to fix the 'configure_file eating \@' issue, and I'll raise an issue upstream for the transform feature https://github.com/mesonbuild/meson/issues/13315, but I don't think that should be a blocker here - we still have the automake path for anyone that needs to do that, or the other fvwms could be transformed on a given system if meson is desirable.

Todo is to validate that we now get identical output when configuring either way with a local copy of meson, then updating the minimum version to match. It's less than ideal, but better than a forever workaround IMO - it's a trivial backport if any distros don't want to/can't upgrade though, and an arguable bugfix.