Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps,doc: move openssl maintenance guide to doc #32209

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion deps/openssl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ Please refer [config/opensslconf_asm.h](config/opensslconf_asm.h) for details.

### Upgrading OpenSSL

Please refer [config/README.md](config/README.md).
Please refer to [maintaining-openssl](../../doc/guides/maintaining-openssl.md).
64 changes: 33 additions & 31 deletions deps/openssl/config/README.md → doc/guides/maintaining-openssl.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,46 @@
## Upgrading OpenSSL
# Maintaining OpenSSL

### Requirements
- Linux environment (Only CentOS7.1 and Ubuntu16 are tested)
- `perl` Only Perl version 5 is tested.
- `nasm` (http://www.nasm.us/) The version of 2.11 or higher is needed.
- GNU `as` in binutils. The version of 2.26 or higher is needed.
This document describes how to update `deps/openssl/`.

### 0. Check Requirements
## Requirements
* Linux environment
* `perl` Only Perl version 5 is tested.
* `nasm` (http://www.nasm.us/) The version of 2.11 or higher is needed.
* GNU `as` in binutils. The version of 2.26 or higher is needed.

## 0. Check Requirements

```sh
$ perl -v
% perl -v

This is perl 5, version 22, subversion 1 (v5.22.1) built for
x86_64-linux-gnu-thread-multi
(with 60 registered patches, see perl -V for more detail)

$ as --version
% as --version
GNU assembler (GNU Binutils for Ubuntu) 2.26.1
Copyright (C) 2015 Free Software Foundation, Inc.
...
$ nasm -v
% nasm -v
NASM version 2.11.08
```

### 1. Obtain and extract new OpenSSL sources
## 1. Obtain and extract new OpenSSL sources

Get a new source from https://www.openssl.org/source/ and extract
all files into `deps/openssl/openssl`. Then add all files and commit
them.
```sh
$ cd deps/openssl/
$ rm -rf openssl
$ tar zxf ~/tmp/openssl-1.1.0h.tar.gz
$ mv openssl-1.1.0h openssl
$ git add --all openssl
$ git commit openssl
% cd deps/openssl/
% rm -rf openssl
% tar zxf ~/tmp/openssl-1.1.0h.tar.gz
% mv openssl-1.1.0h openssl
% git add --all openssl
% git commit openssl
````

The commit message can be (with the openssl version set to the relevant value):
```
```text
deps: upgrade openssl sources to 1.1.0h

This updates all sources in deps/openssl/openssl by:
Expand All @@ -50,22 +52,22 @@ This updates all sources in deps/openssl/openssl by:
$ git commit openssl
```

### 2. Execute `make` in `deps/openssl/config` directory
## 2. Execute `make` in `deps/openssl/config` directory

Use `make` to regenerate all platform dependent files in
`deps/openssl/config/archs/`:
```sh
$ cd deps/openssl/config; make
% cd deps/openssl/config; make
```

### 3. Check diffs
## 3. Check diffs

Check diffs if updates are right. Even if no updates in openssl
sources, `buildinf.h` files will be updated for they have a timestamp
data in them.
```sh
$ cd deps/openssl/config
$ git diff
% cd deps/openssl/config
% git diff
```

*Note*: On Windows, OpenSSL Configure generates `makefile` that can be
Expand All @@ -75,20 +77,20 @@ created. When source files or build options are updated in Windows,
it needs to change these two Makefiles by hand. If you are not sure,
please ask @shigeki for details.

### 4. Commit and make test
## 4. Commit and make test

Update all architecture dependent files. Do not forget to git add or remove
files if they are changed before commit:
```sh
$ git add deps/openssl/config/archs
$ git add deps/openssl/openssl/crypto/include/internal/bn_conf.h
$ git add deps/openssl/openssl/crypto/include/internal/dso_conf.h
$ git add deps/openssl/openssl/include/openssl/opensslconf.h
$ git commit
% git add deps/openssl/config/archs
% git add deps/openssl/openssl/crypto/include/internal/bn_conf.h
% git add deps/openssl/openssl/crypto/include/internal/dso_conf.h
% git add deps/openssl/openssl/include/openssl/opensslconf.h
% git commit
```

The commit message can be (with the openssl version set to the relevant value):
```
```text
deps: update archs files for OpenSSL-1.1.0

After an OpenSSL source update, all the config files need to be regenerated and
Expand All @@ -102,4 +104,4 @@ The commit message can be (with the openssl version set to the relevant value):
$ git commit
```

Finally, build Node and run tests.
Finally, build Node.js and run tests.