Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ See [faq](https://github.com/gokcehan/lf/wiki/FAQ) for more information and [tut
See [packages](https://github.com/gokcehan/lf/wiki/Packages) for community maintained packages.

See [releases](https://github.com/gokcehan/lf/releases) for pre-built binaries.
See [security](SECURITY.md) for release verification and reproducible builds.

Building from the source requires [Go](https://go.dev/).

Expand Down
32 changes: 32 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Verifying Releases

Release binaries are signed using [sigstore cosign](https://github.com/sigstore/cosign) with keyless signing.
Each signing event is recorded in the [Rekor](https://rekor.sigstore.dev) transparency log, providing a public auditable record that the binary was built by the official GitHub Actions release workflow.

## Verify a download

Install cosign:

go install github.com/sigstore/cosign/v3/cmd/cosign@latest

Download the binary, checksums, and sigstore bundle for your platform from the [releases page](https://github.com/gokcehan/lf/releases), then run:

cosign verify-blob lf-linux-amd64.tar.gz \
--bundle lf-linux-amd64.tar.gz.sigstore.json \
--certificate-identity "https://github.com/gokcehan/lf/.github/workflows/release.yml@refs/tags/TAG" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com"

Replace `TAG` with the release tag (e.g. `r33`).

## Verify checksums

sha256sum -c sha256sums.txt

## Reproduce a build

Builds are reproducible given the same Go version and source:

go version -m ./lf # shows the exact Go version used
git checkout TAG
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w -X main.gVersion=TAG"
sha256sum lf # compare with sha256sums.txt
2 changes: 1 addition & 1 deletion gen/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ set -o errexit -o nounset

[ -z "${version:-}" ] && version=$(git describe --tags --abbrev=0)

CGO_ENABLED=0 go build -ldflags="-s -w -X main.gVersion=$version" "$@"
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w -X main.gVersion=$version" "$@"
Comment thread
valoq marked this conversation as resolved.
Outdated

# vim: tabstop=4 shiftwidth=4 textwidth=80 colorcolumn=80