1 # OpenSSL release generation script.
3 # Add script directory to search list.
8 use lib dirname (__FILE__);
10 require "release-check.pl";
11 require "release-date.pl";
12 require "release-git.pl";
13 require "release-update.pl";
14 require "release-version.pl";
19 my ($revert, $beta, $info_only, $branch_info_only, $no_update);
26 my $version = openssl_git_expected_version($major);
27 my $last = openssl_last_release($major, 1);
28 my $next = openssl_version_next($version, $beta);
30 print "${s}Major version: $major\n";
31 print "${s}Last release: $last\n";
32 print "${s}Current version: $version\n";
33 print "${s}Next release: $next\n";
38 print "All Branch details:\n";
39 foreach (@openssl_branches)
42 print_git_info($_, "\t");
47 # Initialise git version tables
48 @openssl_branches = openssl_git_releases();
53 } elsif (/^--major-version=(.*)$/) {
55 } elsif (/^--git-branch-info/) {
56 $branch_info_only = 1;
57 } elsif (/^--no-update/) {
59 } elsif (/^--revert/) {
63 } elsif (/^--debug/) {
66 } elsif (/^--verbose/) {
71 $major_branch = openssl_git_major_version() unless defined $major_branch;
75 print_git_info($major_branch, "");
79 if ($branch_info_only)
87 my $_ = openssl_git_current_branch();
88 print "Reverting to repository version for $_\n";
89 system ("git reset --hard origin/$_");
90 die "Error reverting!!" if $?;
94 my $current_major = openssl_git_major_version();
95 my $expected_version = openssl_git_expected_version($current_major);
96 my $last_version = openssl_last_release($current_major);
97 my $last_branch_release = openssl_last_release($current_major, 1);
98 my $next_version = openssl_version_next($expected_version, $beta);
100 print "Current branch major version $current_major\n";
101 print "Last release on this branch: $last_branch_release\n";
102 print "Current branch version $expected_version\n";
103 print "Next release version $next_version\n";
105 $ok = openssl_check_all($expected_version, $last_version);
107 print "Branch sanity check: " . ($ok ? "OK" : "NOT OK") . "\n";
111 print "Sanity check failed, cannot continue\n";
115 openssl_git_make_update() unless $no_update;
117 my $date = openssl_current_date();
119 $expected_version = openssl_version_next($expected_version, $beta);
121 print "Updating versions to $expected_version\n";
123 openssl_update_all($expected_version, $date);
125 $ok = openssl_check_all($expected_version, $last_version, $date);
127 print "Changes sanity check: " . ($ok ? "OK" : "NOT OK") . "\n";
131 print "Release sanity check failed, cannot continue\n";
135 print "Committing changes:\n";
137 system("git commit -a -m \"Prepare for $expected_version release\"");
138 die "Error comitting release changes!" if $?;
140 my $tag = "OpenSSL_$expected_version";
144 print "Tagging release with tag $tag\n";
146 system("git tag -m \"OpenSSL $expected_version release tag\" $tag");
147 die "Error tagging release!" if $?;
149 $last_version = $expected_version;
150 $expected_version = openssl_version_next($expected_version, $beta);
152 print "Updating versions to $expected_version\n";
154 openssl_update_all($expected_version);
156 $ok = openssl_check_all($expected_version, $last_version);
158 print "Sanity check: " . ($ok ? "OK" : "NOT OK") . "\n";
162 print "Sanity check failed, cannot continue\n";
166 system("git commit -a -m \"Prepare for $expected_version\"");
167 die "Error comitting release changes!" if $?;