mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-19 20:00:51 +08:00
Allow selecting the git revision to be packaged by "make dist".
Commit 619bc23a1 changed "make dist" to invoke "git archive", but hard-wired the call to specify that the HEAD revision should be packaged. Our tarball building process needs to be able to specify which git commit to package (notably, for packaging back branches). While we could make that work with some hackery to operate in detached-HEAD state, it's a lot nicer just to expose git archive's ability to specify what to package. Hence, invent a new make variable PG_GIT_REVISION. This is undocumented, but so is "make dist". Also make corresponding changes in the meson scripts. We have no near-term intention of using that for package building, but it will likely happen eventually, so stay prepared. Discussion: https://postgr.es/m/3552543.1713909947@sss.pgh.pa.us
This commit is contained in:
parent
a42fc1c903
commit
01df147634
@ -87,6 +87,9 @@ update-unicode: | submake-generated-headers submake-libpgport
|
||||
distdir = postgresql-$(VERSION)
|
||||
dummy = =install=
|
||||
|
||||
# git revision to be packaged
|
||||
PG_GIT_REVISION = HEAD
|
||||
|
||||
GIT = git
|
||||
|
||||
dist: $(distdir).tar.gz $(distdir).tar.bz2
|
||||
@ -102,10 +105,10 @@ distdir-location:
|
||||
# on, Unix machines.
|
||||
|
||||
$(distdir).tar.gz:
|
||||
$(GIT) -C $(srcdir) -c core.autocrlf=false archive --format tar.gz -9 --prefix $(distdir)/ HEAD -o $(abs_top_builddir)/$@
|
||||
$(GIT) -C $(srcdir) -c core.autocrlf=false archive --format tar.gz -9 --prefix $(distdir)/ $(PG_GIT_REVISION) -o $(abs_top_builddir)/$@
|
||||
|
||||
$(distdir).tar.bz2:
|
||||
$(GIT) -C $(srcdir) -c core.autocrlf=false -c tar.tar.bz2.command='$(BZIP2) -c' archive --format tar.bz2 --prefix $(distdir)/ HEAD -o $(abs_top_builddir)/$@
|
||||
$(GIT) -C $(srcdir) -c core.autocrlf=false -c tar.tar.bz2.command='$(BZIP2) -c' archive --format tar.bz2 --prefix $(distdir)/ $(PG_GIT_REVISION) -o $(abs_top_builddir)/$@
|
||||
|
||||
distcheck: dist
|
||||
rm -rf $(dummy)
|
||||
|
@ -3469,6 +3469,8 @@ bzip2 = find_program('bzip2', required: false, native: true)
|
||||
|
||||
distdir = meson.project_name() + '-' + meson.project_version()
|
||||
|
||||
pg_git_revision = get_option('PG_GIT_REVISION')
|
||||
|
||||
# Note: core.autocrlf=false is needed to avoid line-ending conversion
|
||||
# in case the environment has a different setting. Without this, a
|
||||
# tarball created on Windows might be different than on, and unusable
|
||||
@ -3483,7 +3485,7 @@ tar_gz = custom_target('tar.gz',
|
||||
'-9',
|
||||
'--prefix', distdir + '/',
|
||||
'-o', join_paths(meson.build_root(), '@OUTPUT@'),
|
||||
'HEAD', '.'],
|
||||
pg_git_revision],
|
||||
output: distdir + '.tar.gz',
|
||||
)
|
||||
|
||||
@ -3497,7 +3499,7 @@ if bzip2.found()
|
||||
'--format', 'tar.bz2',
|
||||
'--prefix', distdir + '/',
|
||||
'-o', join_paths(meson.build_root(), '@OUTPUT@'),
|
||||
'HEAD', '.'],
|
||||
pg_git_revision],
|
||||
output: distdir + '.tar.bz2',
|
||||
)
|
||||
else
|
||||
|
@ -55,6 +55,9 @@ option('atomics', type: 'boolean', value: true,
|
||||
option('spinlocks', type: 'boolean', value: true,
|
||||
description: 'Use spinlocks')
|
||||
|
||||
option('PG_GIT_REVISION', type: 'string', value: 'HEAD',
|
||||
description: 'git revision to be packaged by pgdist target')
|
||||
|
||||
|
||||
# Compilation options
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user