diff options
author | Tom Lane | 2024-05-03 15:08:50 +0000 |
---|---|---|
committer | Tom Lane | 2024-05-03 15:08:50 +0000 |
commit | 01df14763431df1506cbae206945cd165c66d1d3 (patch) | |
tree | fb76c1fc85ba29e2bdaf61dc91849575de86d456 | |
parent | a42fc1c903b54ba94374e5e0c08905b9a1479f19 (diff) |
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/[email protected]
-rw-r--r-- | GNUmakefile.in | 7 | ||||
-rw-r--r-- | meson.build | 6 | ||||
-rw-r--r-- | meson_options.txt | 3 |
3 files changed, 12 insertions, 4 deletions
diff --git a/GNUmakefile.in b/GNUmakefile.in index 30553b2a950..cf6e759486e 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -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) diff --git a/meson.build b/meson.build index cdfd31377d1..1c0579d5a6b 100644 --- a/meson.build +++ b/meson.build @@ -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 diff --git a/meson_options.txt b/meson_options.txt index 249ecc5ffdf..246cecf3827 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -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 |