Compare commits
17 Commits
3d2fdb8372
...
master
Author | SHA1 | Date | |
---|---|---|---|
![]() |
43595de12d | ||
45ba485901
|
|||
34751eeb87
|
|||
18d16b2663
|
|||
![]() |
fd0fe77715 | ||
7aa9871c8c
|
|||
991d09a09e
|
|||
9530f3d561
|
|||
d9d586555e
|
|||
02abfefee4
|
|||
![]() |
5ba009c755 | ||
a373b82991
|
|||
a9c2b0b825
|
|||
2f5d617aab
|
|||
fbd8c18115
|
|||
ea53b8380f
|
|||
48b7e2e95d
|
41
.github/workflows/ci.yaml
vendored
Normal file
41
.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
zig-version: ["0.14.1"]
|
||||||
|
os: [macos-latest, windows-latest]
|
||||||
|
include:
|
||||||
|
- zig-version: "0.14.1"
|
||||||
|
check-format: true
|
||||||
|
os: ubuntu-latest
|
||||||
|
build-options: "-Dbuild-apps"
|
||||||
|
|
||||||
|
- zig-version: "master"
|
||||||
|
os: ubuntu-latest
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Zig
|
||||||
|
uses: mlugg/setup-zig@v2
|
||||||
|
with:
|
||||||
|
version: ${{ matrix.zig-version }}
|
||||||
|
|
||||||
|
- if: ${{ matrix.check-format }}
|
||||||
|
name: Check Formatting
|
||||||
|
run: zig fmt --ast-check --check .
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: zig build ${{ matrix.build-options }} --summary all
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
.zig-cache
|
||||||
|
zig-out
|
@@ -1,11 +1,12 @@
|
|||||||
.{
|
.{
|
||||||
.name = "libressl",
|
.name = .libressl,
|
||||||
.version = "3.9.2",
|
.fingerprint = 0x203FA82BE0954AFA,
|
||||||
.minimum_zig_version = "0.12.0",
|
.version = "4.0.0",
|
||||||
|
.minimum_zig_version = "0.14.0",
|
||||||
.dependencies = .{
|
.dependencies = .{
|
||||||
.libressl = .{
|
.libressl = .{
|
||||||
.url = "https://github.com/libressl/portable/releases/download/v3.9.2/libressl-3.9.2.tar.gz",
|
.url = "https://github.com/libressl/portable/releases/download/v4.0.0/libressl-4.0.0.tar.gz",
|
||||||
.hash = "1220713b293eab87698edf5d6b9bbacf6c17684e65c42da2ad00da6e7e9cf1df5517",
|
.hash = "N-V-__8AAGvDTQHGV38aqRN9PCALgEg4_XExU4juxdTJMTVQ",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
.paths = .{
|
.paths = .{
|
||||||
@@ -13,6 +14,6 @@
|
|||||||
"build.zig.zon",
|
"build.zig.zon",
|
||||||
"LICENSE",
|
"LICENSE",
|
||||||
"LICENSE-LIBRESSL",
|
"LICENSE-LIBRESSL",
|
||||||
"README.md",
|
"readme.md",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
33
readme.md
33
readme.md
@@ -2,22 +2,45 @@
|
|||||||
|
|
||||||
This is [LibreSSL Portable](https://github.com/libressl/portable), packaged for [Zig](https://ziglang.org/).
|
This is [LibreSSL Portable](https://github.com/libressl/portable), packaged for [Zig](https://ziglang.org/).
|
||||||
|
|
||||||
## Installation
|
## Status
|
||||||
|
|
||||||
|
This project currently builds the three main LibreSSL libraries as static libraries:
|
||||||
|
|
||||||
|
- `libcrypto`: core cryptographic routines
|
||||||
|
- `libssl`: OpenSSL 1.1 compatibility layer
|
||||||
|
- `libtls`: LibreSSL's new cryptography API
|
||||||
|
|
||||||
|
Operating systems and hardware architectures are supported on a best-effort basis, and patches to add additional OS/arch support are welcome. Building for Linux (`x86_64`), macOS (`aarch64`), and Windows (`x86_64` via `mingw64`) is directly tested by CI.
|
||||||
|
|
||||||
|
The command-line programs `nc`, `ocspcheck`, and `openssl` are not built by default, and building them when targeting Windows is not supported. Building the command-line programs may be enabled by specifing the `-Dbuild-apps` option to `zig build`
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
First, update your `build.zig.zon`:
|
First, update your `build.zig.zon`:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
# Initialize a `zig build` project if you haven't already
|
# Initialize a `zig build` project if you haven't already
|
||||||
zig init
|
zig init
|
||||||
zig fetch --save <PLACEHOLDER>
|
# replace <refname> with the version you want to use, e.g. 4.0.0
|
||||||
|
zig fetch --save git+https://github.com/allyourcodebase/libressl#<refname>
|
||||||
```
|
```
|
||||||
|
|
||||||
You can then import `libressl` in your `build.zig` with:
|
You can then use `libressl` in your `build.zig` as follows:
|
||||||
|
|
||||||
```zig
|
```zig
|
||||||
const libressl_dependency = b.dependency("libressl", .{
|
const libressl_dependency = b.dependency("libressl", .{
|
||||||
.target = target,
|
.target = target,
|
||||||
.optimize = optimize,
|
.optimize = optimize,
|
||||||
|
.@"enable-asm" = true, // enable assembly routines on supported platforms
|
||||||
});
|
});
|
||||||
your_exe.linkLibrary(libressl_dependency.artifact("tls"));
|
your_exe.linkLibrary(libressl_dependency.artifact("tls")); // or "ssl", or "crypto"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Zig Version Support Matrix
|
||||||
|
|
||||||
|
| Refname | LibreSSL Version | Zig `0.15.0-dev` | Zig `0.14.x` | Zig `0.13.x` | Zig `0.12.x` |
|
||||||
|
|-----------|------------------|------------------|--------------|--------------|--------------|
|
||||||
|
| `4.0.0+3` | `4.0.0` | ✅ | ✅ | ❌ | ❌ |
|
||||||
|
| `4.0.0+2` | `4.0.0` | ❌ | ✅ | ❌ | ❌ |
|
||||||
|
| `4.0.0+1` | `4.0.0` | ❌ | ❌ | ✅ | ✅ |
|
||||||
|
| `3.9.2+1` | `3.9.2` | ❌ | ❌ | ✅ | ✅ |
|
||||||
|
Reference in New Issue
Block a user