Skip to content

Commit

Permalink
Add Free/OpenBSD to testing.
Browse files Browse the repository at this point in the history
  • Loading branch information
kristapsdz committed Nov 19, 2023
1 parent 388e7ee commit d68add7
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 2 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,29 @@ jobs:
./configure CPPFLAGS="-DENABLE_SECCOMP_FILTER=1"
bmake regress
shell: alpine-s390x.sh {0}
freebsd_sandboxed:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Test in FreeBSD
uses: vmactions/freebsd-vm@v1
with:
usesh: true
prepare: pkg install -y curl
run: |
freebsd-version
./configure
make regress
openbsd_sandboxed:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Test in OpenBSD
uses: vmactions/openbsd-vm@v1
with:
usesh: true
prepare: pkg_add curl
run: |
uname -a
./configure
make regress
40 changes: 38 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ installation, deployment, examples, and usage documentation.

## Installation

Building the bleeding-edge version of **kcgi** (instead of from your system's
packages or a stable version) is similar to building the source releases.
Building the bleeding-edge version of **kcgi** (instead of from your
system's packages or a stable version) is similar to building the source
releases.

You'll a C compiler, zlib (zlib-dev on some systems), and BSD make
(bmake on some systems) for building.

Begin by cloning or downloading. Then configure with `./configure`,
compile with `make` (BSD make, so it may be `bmake` on your system),
Expand Down Expand Up @@ -39,6 +43,17 @@ CFLAGS=$(pkg-config --cflags libbsd-overlay) \
./configure LDFLAGS=$(pkg-config --libs libbsd-overlay)
```

If you intend to run on Linux with seccomp sandboxing, pass the
following to the configuration:

```
./configure CPPFLAGS="-DENABLE_SECCOMP_FILTER=1"
```

You'll need the Linux kernel headers installed, which are usually by
default but sometimes require the *linux-headers* package or similar.


## Tests

It's useful to run the installed regression tests on the bleeding edge
Expand All @@ -60,6 +75,27 @@ cd afl
afl-fuzz -i in/urlencoded -o out -- ./afl-urlencoded
```

## Automated testing

The public GitHub repository repository for **kcgi** uses automated
testing on each check-in to run the regression tests. The following
systems are checked:

- Alpine/musl Linux (latest, aarch64, sandboxed)
- Alpine/musl Linux (latest, armv7, sandboxed)
- Alpine/musl Linux (latest, ppc64le, sandboxed)
- Alpine/musl Linux (latest, s390x, sandboxed)
- Alpine/musl Linux (latest, x86\_64, sandboxed)
- FreeBSD (latest, x86\_64, sandboxed)
- Mac OS X (latest, x86, sandboxed)
- OpenBSD (latest, x86\_64, sandboxed)
- Ubuntu/glibc Linux (latest, x86\_64, un-sandboxed)
- Ubuntu/glibc Linux (latest, x86\_64, sandboxed)
- Ubuntu/glibc Linux (latest, x86\_64, sandboxed, libbsd)

These are also run weekly to catch any changes as new operating system
features come into play.

## License

All sources use the ISC (like OpenBSD) license.
Expand Down

0 comments on commit d68add7

Please sign in to comment.