[PATCH v3 0/5] miscellaneous build mods (part 2)
- From
Ramsay Jones <ramsay@ramsayjones.plus.com>
- Date
- May 16, 2025, 18:48 UTC
- Message-ID
- <20250516184843.1524925-1-ramsay@ramsayjones.plus.com>
- In-Reply-To
- <20250513191739.1513460-1-ramsay@ramsayjones.plus.com>
Changes in v3:
Patch #3 changed as a result of Patrick's review [*]:
- use the '/' magic string operator when setting the
ETC_GIT{CONFIG,ATTRIBUTES} build options.
- add the default values to the 'description' fields
for the 'gitconfig' and 'gitattributes' option
definitionsAlso, Junio, the range-diff below shows the typo fixup, but you should find that it doesn't show for you this time. ;)
[yes, I did fix it up locally, but then overwrote it from my cygwin repo ... Ahem! ;) ]
Again, I did a test merge to master@1a8a4971cc without issue and to next@0be31eac6b and seen@d36a872499. The conflict which showed up in v1 against the 'seen' branch now appears in 'next' and has the same resolution as v1.
A range-diff against v2 is given below.
[*] https://lore.kernel.org/git/aCbQ9OX2vqF82au8@pks.im/
Changes in v2:
Patch #3 is the only one changed (as a result of Patrick's review [0]):
- add some blank lines to make the option handling blocks easier to see. - add a comment to 'gitconfig' and 'gitattributes' options to indicate the default values.
Note: The indicated defaults for the 'gitconfig' and 'gitattributes' are only valid when the 'prefix' option is defaulted (or not /usr). Indicating the 'correct' value when -Dprefix=/usr in the comment would consume too much space. Is this acceptable, or is it too confusing/misleading?
Also, thanks to Eli for testing patch #5 on Solaris and confirming that it fixes the regression [1].
Note that I did a test merge to master@38af977b81 without issue and to next@889b7c5bd8 and seen@d8088176ab. The conflict which showed up in v1 against the 'seen' branch now appears in 'next' and has the same resolution as v1.
A range-diff against v1 is given below.
[0] https://lore.kernel.org/git/aB3CDOljn9zJsVwt@pks.im/ [1] https://lore.kernel.org/git/9baad29d-a5bf-443d-98a1-36d7020e5835@gentoo.org/
v1 cover letter follows:
This series (part 2) continues the miscellaneous changes to the make, meson and autoconf build systems. I am sending this part a little earlier than I expected, so there will now be a part 3!
The reason for the early posting is to try and avoid an regression in the autoconf build system (see patch #5). Hopefully, we still have time in this cycle to get patch #5 included.
This series is based on commit 6f84262c44 ("The eleventh batch", 2025-05-05)I did a test merge to 'next'@629a3ecd64 without issue, but 'seen'@71cfd25022 had a small conflict with commit 1a2929c851 ("meson: allow customize perl installation path", 2025-04-24) on the 'dd/meson-perl-custom-path' branch. (I note that a new version of that patch was posted to the list today).
The fixup looks like:
diff --cc perl/Git/SVN/Memoize/meson.build
index 4c589b30c3,8c2e80d2d2..d6209dc3bf
--- a/perl/Git/SVN/Memoize/meson.build
+++ b/perl/Git/SVN/Memoize/meson.build
@@@ -3,6 -3,6 +3,6 @@@ test_dependencies += custom_target
output: 'YAML.pm',
command: generate_perl_command,
install: true,
- install_dir: perllibdir / 'Git/SVN',
- install_dir: get_option('datadir') / 'perl5/Git/SVN/Memoize',
++ install_dir: perllibdir / 'Git/SVN/Memoize',
depends: [git_version_file],
)ATB, Ramsay Jones
Ramsay Jones (5): meson.build: quote the GITWEBDIR build configuration meson: correct install location of YAML.pm meson: correct path to system config/attribute files meson.build: correct setting of GIT_EXEC_PATH configure.ac: upgrade to a compilation check for sysinfo
configure.ac | 25 ++++++++++++++++++++++--- meson.build | 30 +++++++++++++++++++++++++----- meson_options.txt | 8 ++++---- perl/Git/SVN/Memoize/meson.build | 2 +- 4 files changed, 52 insertions(+), 13 deletions(-)
range-diff against v2:
1: 1f3d34eafd = 1: ac97fdc76e meson.build: quote the GITWEBDIR build configuration
2: 1b7751914a = 2: 181738d371 meson: correct install location of YAML.pm
3: a385bbed83 ! 3: 1f4c74973c meson: correct path to system config/attribute files
@@ meson.build: libgit_c_args = [
+if system_attributes != ''
+ libgit_c_args += '-DETC_GITATTRIBUTES="' + system_attributes + '"'
+else
-+ libgit_c_args += '-DETC_GITATTRIBUTES="' + get_option('sysconfdir') + '/gitattributes"'
++ libgit_c_args += '-DETC_GITATTRIBUTES="' + get_option('sysconfdir') / 'gitattributes"'
+endif
+
+system_config = get_option('gitconfig')
+if system_config != ''
+ libgit_c_args += '-DETC_GITCONFIG="' + system_config + '"'
+else
-+ libgit_c_args += '-DETC_GITCONFIG="' + get_option('sysconfdir') + '/gitconfig"'
++ libgit_c_args += '-DETC_GITCONFIG="' + get_option('sysconfdir') / 'gitconfig"'
+endif
+
editor_opt = get_option('default_editor')
@@ meson_options.txt: option('default_pager', type: 'string', value: 'less',
option('default_editor', type: 'string', value: 'vi',
description: 'Fall-back editor.')
-option('gitconfig', type: 'string', value: '/etc/gitconfig',
-+option('gitconfig', type: 'string', # default 'etc/gitconfig'
- description: 'Path to the global git configuration file.')
+- description: 'Path to the global git configuration file.')
-option('gitattributes', type: 'string', value: '/etc/gitattributes',
+- description: 'Path to the global git attributes file.')
++option('gitconfig', type: 'string', # default 'etc/gitconfig'
++ description: 'Path to the global git configuration file. (default: etc/gitconfig)')
+option('gitattributes', type: 'string', # default 'etc/gitattributes'
- description: 'Path to the global git attributes file.')
++ description: 'Path to the global git attributes file. (default: etc/gitattributes)')
option('pager_environment', type: 'string', value: 'LESS=FRX LV=-c',
description: 'Environment used when spawning the pager')
+ option('perl_cpan_fallback', type: 'boolean', value: true,
4: 0d00951475 = 4: 97ff1613f5 meson.build: correct setting of GIT_EXEC_PATH
5: 150e4110d2 ! 5: 983488fe4e configure.ac: upgrade to a compilation check for sysinfo
@@ Commit message
Commit 50dec7c566 ("config.mak.uname: add sysinfo() configuration for
cygwin", 2025-04-17) added a similar 'sysinfo()' check to the autoconf
build. This check looked for the 'sysinfo()' function itself, rather
- that just the header, but it will fail (incorrectly set HAVE_SYSINFO)
+ than just the header, but it will fail (incorrectly set HAVE_SYSINFO)
for the same reason.
In order to correctly identify the 'sysinfo()' function we require as-- 2.49.0