Skip to content

Commit 7e0b84b

Browse files
committed
update HOWTOs
1 parent 737dd35 commit 7e0b84b

4 files changed

+26
-163
lines changed

HOWTO-handle-security-issue.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -382,13 +382,13 @@ References
382382
==========
383383

384384
URL for this Security Advisory:
385-
https://www.openssl.org/news/secadv/{YYYYMMDD}.txt
385+
https://openssl-library.org/news/secadv/{YYYYMMDD}.txt
386386

387387
Note: the online version of the advisory may be updated with additional details
388388
over time.
389389

390390
For details of OpenSSL severity classifications please see:
391-
https://www.openssl.org/policies/general/security-policy.html
391+
https://openssl-library.org/policies/general/security-policy
392392
```
393393
394394
Where:
@@ -603,7 +603,7 @@ Finish by publishing all the applicable
603603
`vulnerabilities-json/CVE-YYYY-NNNN.json` as instructed in [private cvepool.md].
604604
605605
[public openssl/openssl repository]: https://github.com/openssl/openssl
606-
[Security Policy]: https://www.openssl.org/policies/general/security-policy.html
606+
[Security Policy]: https://openssl-library.org/policies/general/security-policy
607607
[GitHub Security Advisory]: https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/about-repository-security-advisories
608608
[HOWTO-make-a-release.md]: ./HOWTO-make-a-release.md
609609

HOWTO-make-a-release.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ it's implied that the former is frozen as well.
103103

104104
## Notify comitters and platform owners of the freeze
105105

106-
When the tree is frozen, an email should be sent to [email protected], as well as to the community platform owners (documented [here](https://www.openssl.org/policies/general-supplemental/platforms.html))indicating that the tree is frozen, and how long the freeze is expected to last. It should also indicate to the community platform owners that additional, more frequent testing during the freeze would be appreciated, as community platforms are not all in our CI system. This will help mitigate inadvertent breakage during the freeze period on platforms we do not consistently test against.
106+
When the tree is frozen, an email should be sent to [email protected], as well as to the community platform owners (documented [here](https://openssl-library.org/policies/platforms/))indicating that the tree is frozen, and how long the freeze is expected to last. It should also indicate to the community platform owners that additional, more frequent testing during the freeze would be appreciated, as community platforms are not all in our CI system. This will help mitigate inadvertent breakage during the freeze period on platforms we do not consistently test against.
107107

108108

109109
## Make sure that the openssl source is up to date

HOWTO-publish-a-release.md

+16-140
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@ Releases are staged by another procedure, separate from this.
1313
- [SSH access](#check-your-access)
1414
- [Publish the release](#publish-the-release)
1515
- [Update the source repositories](#update-the-source-repositories)
16-
- [Upload release files to OpenSSL downloads](#upload-release-files-to-openssl-downloads) [only public releases]
17-
- [Upload release files to Github](#upload-release-files-to-github)
18-
- [Web method](#web-method)
19-
- [GH CLI method](#gh-cli-method)
16+
- [Publish GitHub release](#publish-github-release)
2017
- [Update the release metadata](#update-the-release-metadata)
2118
- [Post-publishing tasks](#post-publishing-tasks)
2219
- [Check automations](#check-automations)
@@ -87,82 +84,18 @@ instructed by `$TOOLS/release-tools/stage-release.sh`, which was performed
8784
when [staging the releases](HOWTO-stage-a-release.md). You may want to
8885
sanity check the pushes by inserting the `-n` (dry-run) option.
8986

90-
## Upload release files to OpenSSL downloads
87+
## Publish GitHub release
9188

92-
*BE CAREFUL* This section makes everything visible and is therefore largely
93-
irreversible. If you are performing a dry run then DO NOT perform any steps
94-
in this section.
95-
96-
*NOTE* This section should only be performed for public releases, i.e.
97-
releases made from `[email protected]:openssl/openssl.git` or
98-
`[email protected]:openssl/security.git`.
99-
100-
Everything in this section is to be done as the `openssl` user on
101-
`dev.openssl.org`, so if you haven't done that yet, you now *must* perform
102-
the steps described in [SSH access](#ssh-access) above.
103-
104-
Check that the release has been uploaded properly. The release tarballs and
105-
associated files should be in `~openssl/dist/new`. They should be owned by
106-
the `upload` userid and world-readable.
107-
108-
Copy the tarballs to appropriate directories. This can be done using the
109-
do-release.pl script. See `$TOOLS/release-tools/DO-RELEASE.md` for a
110-
description of the options. For example:
111-
112-
perl ~openssl/do-release.pl --copy --move
113-
114-
This will copy the relevant files to the website and move them from
115-
`~openssl/dist/new` to `~openssl/dist/old` so they will not seen by a
116-
subsequent release. Alternatively if you want to perform one release at a
117-
time or copy/move the files manually, see below.
118-
119-
The `do-release.pl` script will display the commands you will need to issue
120-
to send the announcement emails later. Keep a note of those commands for
121-
future reference.
122-
123-
Verify that the tarballs are available for download:
124-
125-
ls /srv/ftp/source
126-
127-
## Upload release files to Github
128-
129-
Upload the release files to the "Releases" section on github. Do this by
130-
visiting the release URL that corresponds to the source repository that the
131-
release was made from, or by using [the Github CLI tool](https://cli.github.com/]:
132-
133-
- For releases from `[email protected]:openssl/openssl.git` or
134-
`[email protected]:openssl/security.git`:
135-
136-
URL: https://github.com/openssl/openssl/releases
137-
138-
GH CLI `--repo`: github.com/openssl/openssl
139-
140-
- For releases from `[email protected]:openssl/premium.git`:
141-
142-
URL: https://github.openssl.org/openssl/extended-releases/releases
143-
144-
GH CLI `--repo`: github.openssl.org/openssl/openssl
145-
146-
In both tools, you will need to make a title and a short description.
147-
148-
For the title, use something like "OpenSSL 3.1.0".
89+
When a tag is pushed to the GitHub repository the automation creates a draft
90+
release in https://github.com/openssl/openssl/releases. Check the signed
91+
announcement .asc file. Check that the tarball length and hashes match in
92+
the .md5, .sha1, .sha256.
14993

15094
For the release notes [^1], we currently use the same text as is added in the
151-
`newsflash.md` file to announce the release
152-
(see [Update the release data locally](#update-the-release-data-locally) below)
95+
`newsflash.md` file to announce the release.
15396

15497
[^1]: The release notes field has previously been described as "description"
15598

156-
### Web method
157-
158-
Click the "Draft a new release" button. Give the release a title and a
159-
release note as recommended above. Upload the four release files, e.g.
160-
161-
- `openssl-3.1.0.tar.gz`
162-
- `openssl-3.1.0.tar.gz.asc`
163-
- `openssl-3.1.0.tar.gz.sha1`
164-
- `openssl-3.1.0.tar.gz.sha256`
165-
16699
If this is an alpha or beta release, check the "Set as a pre-release"
167100
checkbox.
168101

@@ -171,27 +104,6 @@ checkbox.
171104

172105
Finish up by clicking "Publish release".
173106

174-
### GH CLI method
175-
176-
This is an example:
177-
178-
gh release create \
179-
--repo github.com/openssl/openssl --verify-tag --draft \
180-
--title "OpenSSL 3.1.0" \
181-
--notes "Final version of OpenSSL 3.1.0 is now available: please download and upgrade!"
182-
openssl-3.1.0 \
183-
openssl-3.1.0.tar.gz \
184-
openssl-3.1.0.tar.gz.asc \
185-
openssl-3.1.0.tar.gz.sha1 \
186-
openssl-3.1.0.tar.gz.sha256 \
187-
188-
The first non-option argument `openssl-3.1.0` is the tag, the rest are the
189-
files to upload.
190-
191-
If this is an alpha or beta release, additionally use the option `--prerelease`.
192-
193-
If this is the latest release version, additionally use `--latest`.
194-
195107
## Update the release metadata
196108

197109
*The changes in this section should be made in your clone of the release
@@ -216,19 +128,6 @@ Await approval from reviewers, then merge the pull request.
216128

217129
# Post-publishing tasks
218130

219-
## Check automations
220-
221-
The updates performed when [publishing the releases](#publish-the-release),
222-
automations on <https://automation.openssl.org/> should kick in. Typically,
223-
the builders named "doc" and "web" should be seen working within minutes
224-
(pending other builder that mirror the repositories that have been updated).
225-
226-
These builders update different aspects of the web site, and will finish off
227-
by invalidating the corresponding pages in the CDN cache, to ensure that
228-
they are reloaded by the CDN.
229-
230-
You can also look at the result at <https://www-origin.openssl.org>.
231-
232131
## Check the website
233132

234133
Verify that the release notes, which are built from the CHANGES.md file
@@ -237,49 +136,34 @@ automation; if you see a problem, check if the web build job has been
237136
performed yet, you may have to wait a few minutes before it kicks in.
238137

239138
Wait for a while for the CDN flush to work (normally within a few minutes).
240-
Have a look at the website and news announcement at:
241-
242-
- <https://www.openssl.org/>
243-
- <https://www.openssl.org/news/>
244139

245140
Check the download page has updated properly:
246141

247-
- <https://www.openssl.org/source/>
142+
- <https://openssl-library.org/source>
248143

249144
Check the notes look sensible at:
250145

251-
- <https://www.openssl.org/news/newslog.html>
146+
- <https://openssl-library.org/news/newslog>
252147

253148
Also check the notes here:
254149

255-
- <https://www.openssl.org/news/openssl-1.0.2-notes.html>
256-
- <https://www.openssl.org/news/openssl-1.1.0-notes.html>
257-
- <https://www.openssl.org/news/openssl-1.1.1-notes.html>
258-
- <https://www.openssl.org/news/openssl-3.0-notes.html>
259-
- <https://www.openssl.org/news/openssl-3.1-notes.html>
150+
- <https://openssl-library.org/news/openssl-3.0-notes>
151+
- <https://openssl-library.org/news/openssl-3.1-notes>
152+
- <https://openssl-library.org/news/openssl-3.2-notes>
153+
- <https://openssl-library.org/news/openssl-3.3-notes>
260154

261155
## Send the announcement mail
262156

263157
Send out the announcements. Generic release announcement messages will be
264158
created automatically by the build script and the commands you need to use
265-
to send them were displayed when you executed do-release.pl above. They
159+
to send them were displayed when you executed `do-release.pl` above. They
266160
should be sent from the account of the person that owns the key used for
267-
signing the release announcement. Ensure that mutt is configured correctly -
268-
send a test email first if necessary.
269-
270-
If do-release.pl was used with `--move` be sure to move the announcement
271-
text files away from the staging directory *after they have been sent*.
272-
This is done as follows (with VERSION replaced with the version of OpenSSL
273-
to announce):
274-
275-
sudo -u openssl \
276-
mv ~openssl/dist/new/openssl-VERSION.txt.asc ~openssl/dist/old
161+
signing the release announcement.
277162

278163
## Send out the Security Advisory
279164

280165
*The secadv file mentioned in this section is the Security Advisory
281-
that you copied into the release data repo, up in the section
282-
[Update the release data locally](#update-the-release-data-locally)*
166+
that you copied into the release data repo*
283167

284168
*This section is only applicable if this is a security release*
285169

@@ -323,14 +207,6 @@ When done, remove the email file:
323207

324208
rm /tmp/secadv_FILENAME.txt.asc
325209

326-
Approve the openssl-announce email. Go to
327-
<https://mta.openssl.org/mailman/admindb/openssl-announce>
328-
and approve the messages.
329-
330-
For premium releases, approve the support-announce email as well. Go to
331-
<https://mta.openssl.org/mailman/admindb/support-announce> and approve the
332-
messages.
333-
334210
Check that the mailing list messages have arrived.
335211

336212
## MITRE / CVE.org

HOWTO-stage-a-release.md

+6-19
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ Updates pending!
2424
- [Software](#software)
2525
- [Repositories](#repositories)
2626
- [PGP / GnuPG key](#pgp-gnupg-key)
27-
- [SFTP access](#check-your-access)
2827
- [Prepare your repository checkouts](#prepare-your-repository-checkouts)
2928
- [Staging tasks](#staging-tasks)
30-
31-
- [Generate the tarball and announcement text](#generating-the-tarball-and-announcement-text)
29+
- [Generate the announcement text](#generating-the-tarball-and-announcement-text)
3230
- [Remember the results](#remember-the-results)
3331

3432
# Prerequisites
@@ -41,8 +39,6 @@ programs in you `$PATH`:
4139
- openssl
4240
- gpg
4341
- git
44-
- ssh
45-
- sftp
4642

4743
(note: this may not be a complete list)
4844

@@ -86,13 +82,6 @@ You must have OpenSSL's team key:
8682
If you don't have it and think you should, get an export from someone on the
8783
team that has it.
8884

89-
## SFTP access
90-
91-
To stage a release, you must have appropriate access to OpenSSL's upload
92-
address, `[email protected]`. To test this, try to log in with sftp:
93-
94-
95-
9685
## Prepare your repository checkouts
9786

9887
- To stage a release, you need to checkout the release staging tool
@@ -117,13 +106,13 @@ address, `[email protected]`. To test this, try to log in with sftp:
117106

118107
# Staging tasks
119108

120-
## Generate the tarball and announcement text
109+
## Generate the announcement text
121110

122111
*The changes in this section should be made in your clone of the openssl
123112
source repo*
124113

125-
To generate and stage a release tarball and announcement text, there is a
126-
script `$TOOLS/release-tools/stage-release.sh`. It's expected to be run
114+
To generate and stage announcement text, there is a script
115+
`$TOOLS/release-tools/stage-release.sh`. It's expected to be run
127116
while standing in the worktree of an OpenSSL source repository, and the
128117
expects the checked out branch to be the branch to stage the release from,
129118
matching one of OpenSSL release branch patterns.
@@ -147,13 +136,11 @@ It is generally called like this:
147136
This scripts will perform a number of preparatory tasks, such as updating
148137
the copyright year, running `make update`, update release dates, and move
149138
the branch to the next development version. This results not only in a
150-
staged release tarball and announcement text, but also in a set of commits.
139+
staged announcement text, but also in a set of commits.
151140

152141
After having run the stage-release script, verify that its results are
153142
sensible. Check the commits that were added, using for example `git log`.
154-
Check the signed announcement .asc file. Check that the tarball length and
155-
hashes match in the .md5, .sha1, .sha256, and review the announcment file.
156-
Check the data left in the metadata .dat file.
143+
Review the announcment file. Check the data left in the metadata .dat file.
157144

158145
*Do not push* the local commits to the source repo at this stage.
159146

0 commit comments

Comments
 (0)