From 6ee4741281f032e13423a1e05c4fb9a90454e748 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Thu, 24 Jun 2021 16:07:03 +0100 Subject: [PATCH] Ensure ordinals are created during release process We introduce a new makefile target "make release-update" that forces ordinal file renumbering, and also does the fips checksum updates. We then call that from the release script. Fixes #15806 Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/15901) --- Configurations/unix-Makefile.tmpl | 13 +++++++++++++ dev/release.sh | 7 ++++++- util/mknum.pl | 9 +++------ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 8de2b9bd4178a..b82166f70ae65 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -1310,6 +1310,19 @@ CRYPTOHEADERS={- join(" \\\n" . ' ' x 14, fill_lines(" ", $COLUMNS - 14, sort keys %cryptoheaders)) -} SSLHEADERS={- join(" \\\n" . ' ' x 11, fill_lines(" ", $COLUMNS - 11, sort keys %sslheaders)) -} + +renumber: build_generated + $(PERL) $(SRCDIR)/util/mknum.pl --version $(VERSION) --no-warnings \ + --ordinals $(SRCDIR)/util/libcrypto.num \ + --symhacks $(SRCDIR)/include/openssl/symhacks.h \ + --renumber \ + $(CRYPTOHEADERS) + $(PERL) $(SRCDIR)/util/mknum.pl --version $(VERSION) --no-warnings \ + --ordinals $(SRCDIR)/util/libssl.num \ + --symhacks $(SRCDIR)/include/openssl/symhacks.h \ + --renumber \ + $(SSLHEADERS) + ordinals: build_generated $(PERL) $(SRCDIR)/util/mknum.pl --version $(VERSION) --no-warnings \ --ordinals $(SRCDIR)/util/libcrypto.num \ diff --git a/dev/release.sh b/dev/release.sh index 14a3d445c601f..bf5aa8af35b92 100755 --- a/dev/release.sh +++ b/dev/release.sh @@ -322,7 +322,12 @@ echo "== Configuring OpenSSL for update and release. This may take a bit of tim $VERBOSE "== Checking source file updates and fips checksums" make update >&42 - +# As long as we're doing an alpha release, we can have symbols without specific +# numbers assigned. In a beta or final release, all symbols MUST have an +# assigned number. +if [ "$next_method" != 'alpha' ]; then + make renumber >&42 +fi make update-fips-checksums >&42 if [ -n "$(git status --porcelain)" ]; then diff --git a/util/mknum.pl b/util/mknum.pl index 284fe891ef45f..8c978dfe2dc52 100644 --- a/util/mknum.pl +++ b/util/mknum.pl @@ -22,6 +22,7 @@ my $version = undef; # the version to use for added symbols my $checkexist = 0; # (unsure yet) my $warnings = 1; +my $renumber = 0; my $verbose = 0; my $debug = 0; @@ -29,6 +30,7 @@ 'symhacks=s' => \$symhacks_file, 'version=s' => \$version, 'exist' => \$checkexist, + 'renumber' => \$renumber, 'warnings!' => \$warnings, 'verbose' => \$verbose, 'debug' => \$debug) @@ -88,12 +90,7 @@ close IN; } -# As long as we're running in development or alpha releases, we can have -# symbols without specific numbers assigned. In beta or final release, all -# symbols MUST have an assigned number. -if ($version !~ m/^\d+\.\d+\.\d+(?:-alpha|(?:-.*?)?-dev$)/) { - $ordinals->renumber(); -} +$ordinals->renumber() if $renumber; if ($checkexist) { my %new_names = map { $_->name() => 1 }