mirror of
https://github.com/hanzoai/s3.git
synced 2026-10-30 14:59:09 +00:00
The binary is s3 and the product is Hanzo S3; the rest of the tree now says so too. - Environment: WEED_* and SEAWEEDFS_* are S3_*, no aliases. fla9's flag prefix is S3, matching viper's existing "s3" prefix, so the S3_S3_SSE_* names mini.go exports are the ones viper reads (WEED_S3_SSE_KEK was never seen once viper moved to "s3"). - Java and Hadoop: packages, fs.hanzofs.* keys and the hanzofs:// scheme under the hanzofs namespace the protos already declare; classes take a neutral Filer prefix and file names match them again (the earlier pass left Seas3*.java holding Seaweed* classes). Client, hdfs3, examples, s3copier, random_access and the Spark tests compile. - Helm chart: helpers are hanzo.*, values live under global.s3; the chart renders and lints, which it did not before. - Terraform: the s3.service.tftpl reference matches the file; 12/12 render tests pass. Config paths point at /etc/hanzo, which the binary reads. - loadtest.pb.go regenerated from loadtest.proto. - Upstream logo, sponsor images and unreferenced diagrams removed from note/. Kept: NOTICE attribution, LICENSE, the erasure-coding fixture s3/storage/erasure_coding/1.dat (test bytes), and unmaintained/ and third_party/ (vendored). No on-disk format, wire protocol or metadata key changed. Co-authored-by: Hanzo Dev <[email protected]>
117 lines
5.4 KiB
Plaintext
117 lines
5.4 KiB
Plaintext
Hanzo S3
|
|
Copyright (c) 2026 Hanzo AI, Inc.
|
|
|
|
This product includes software from SeaweedFS (https://github.com/seaweedfs/seaweedfs), licensed under Apache-2.0:
|
|
|
|
Copyright 2014-2026 Chris Lu
|
|
|
|
Forked from https://github.com/seaweedfs/seaweedfs at the 4.34 release series.
|
|
|
|
Upstream SeaweedFS ships no NOTICE file, so there are no Apache-2.0 §4(d)
|
|
attributions to propagate beyond the copyright above.
|
|
|
|
INHERITED THIRD-PARTY SOURCE
|
|
|
|
SeaweedFS carried third-party source of its own, and it is still here. Each
|
|
file retains its original copyright header; the components are listed so a
|
|
reader does not have to find them by grep.
|
|
|
|
MinIO — Apache-2.0. SeaweedFS built its S3 API on code copied from MinIO
|
|
while MinIO was Apache-2.0 licensed, and those files came across with the
|
|
rest of the engine:
|
|
|
|
Minio Cloud Storage, (C) 2016 Minio, Inc.
|
|
MinIO Cloud Storage, (C) 2015, 2016, 2017 MinIO, Inc.
|
|
MinIO Cloud Storage, (C) 2016, 2017, 2018 MinIO, Inc.
|
|
MinIO Cloud Storage, (C) 2019 MinIO, Inc.
|
|
MinIO Go Library for Amazon S3 Compatible Cloud Storage,
|
|
Copyright 2015-2017 MinIO, Inc.
|
|
|
|
s3/s3api/auth_signature_v2.go s3/s3api/policy/postpolicyform.go
|
|
s3/s3api/auth_signature_v4.go s3/s3api/policy/post-policy_test.go
|
|
s3/s3api/chunked_reader_v4.go s3/s3api/s3_constants/header.go
|
|
s3/s3api/s3err/s3-error.go
|
|
|
|
This material is Apache-2.0 and is unrelated to MinIO's later AGPL-3.0
|
|
relicensing (see GIT HISTORY below), which post-dates every one of these
|
|
files.
|
|
|
|
Google — Apache-2.0. s3/glog is a vendored copy of golang/glog:
|
|
|
|
Copyright 2013 Google Inc. All Rights Reserved.
|
|
|
|
Its licence text is at s3/glog/LICENSE.
|
|
|
|
The Go Authors — BSD-3-Clause. Two components are forks of Go standard
|
|
library code:
|
|
|
|
s3/util/fla9 (Go's flag package)
|
|
s3/storage/backend/memory_map/os_overloads (Go's windows syscall
|
|
and os internals)
|
|
|
|
Copyright 2009 The Go Authors. All rights reserved.
|
|
|
|
Their headers point at "the LICENSE file", and upstream shipped none beside
|
|
them — the nearest LICENSE was Apache-2.0, which is not the licence those
|
|
files are under. A copy of the Go BSD-3-Clause text has been ADDED at
|
|
s3/util/fla9/LICENSE and
|
|
s3/storage/backend/memory_map/os_overloads/LICENSE so the conditions
|
|
BSD-3-Clause requires to be retained actually travel with the source. No
|
|
header was changed.
|
|
|
|
third_party/go-bip39 is not upstream code. It is a first-party shim that
|
|
re-exports github.com/luxfi/go-bip39 under the deleted
|
|
github.com/tyler-smith/go-bip39 module path; see its go.mod for why.
|
|
|
|
GIT HISTORY — MinIO, AGPL-3.0
|
|
|
|
This repository's git history is not SeaweedFS's. Before 2026-06-19 this repo
|
|
held a fork of MinIO (github.com/minio/minio), and commit 466da88827 replaced
|
|
that code wholesale with the SeaweedFS engine while keeping the history. The
|
|
history root is MinIO's own first commit (397b887a87, 2014-10-30).
|
|
|
|
MinIO relicensed from Apache-2.0 to AGPL-3.0 in commit b2f907a47b
|
|
(2021-04-18, "update license change for MinIO"). Every commit from there
|
|
through 466da88827^ therefore contains AGPL-3.0 MinIO source, reachable by
|
|
checking out those revisions, in a repository whose current LICENSE is
|
|
Apache-2.0.
|
|
|
|
No AGPL-licensed code is present at HEAD, in any build, or in any published
|
|
artifact: the s3 binary, the module github.com/hanzoai/s3, and every released
|
|
image are built from the SeaweedFS-derived tree only. `grep` for the upstream
|
|
MinIO import path in the Go sources returns nothing. The exposure is confined
|
|
to historical revisions.
|
|
|
|
This is recorded rather than resolved. Truncating or rewriting the history
|
|
before the SeaweedFS import would remove it, at the cost of invalidating every
|
|
commit hash anyone has ever referenced; that is a decision about the
|
|
repository, not a metadata fix, and it is left open deliberately.
|
|
|
|
DEVIATIONS
|
|
|
|
- Go module path renamed from github.com/seaweedfs/seaweedfs to
|
|
github.com/hanzoai/s3. No residual upstream import paths remain in the Go
|
|
sources.
|
|
- Package tree relocated from the upstream weed/ directory to s3/; the CLI
|
|
entrypoint is s3/s3.go.
|
|
- Command binary renamed from weed to s3 (Makefile BINARY = s3); the CLI
|
|
banner and subcommand descriptions are branded "Hanzo S3".
|
|
- Environment variable prefixes WEED_ and SEAWEEDFS_ renamed to S3_. The
|
|
Java and Hadoop clients moved to the hanzofs namespace (packages, fs.*
|
|
configuration keys, hanzofs:// URI scheme), and upstream naming was removed
|
|
from tests, scripts, the Helm chart, Terraform modules and documentation.
|
|
- gRPC service identifiers renamed to Hanzo-prefixed names (for example
|
|
HanzoClient, HanzoFilerClient, HanzoIdentityAccessManagementClient) under
|
|
s3/wire/.
|
|
- Versioning is independent of upstream's. Releases run on their own 1.0.x
|
|
line (s3/util/version/constants.go) and no longer track upstream's 4.34.x
|
|
numbering, so a version this binary reports does not name an upstream
|
|
release.
|
|
- SQLite is linked through github.com/hanzoai/sqlite, which registers the
|
|
hanzoai/sqlcipher codec VFS; modernc.org/sqlite is present only as that
|
|
module's dependency.
|
|
- LICENSE preface augmented with a Hanzo AI, Inc. copyright line while
|
|
preserving Chris Lu's copyright and the complete Apache-2.0 license text.
|
|
- The S3-compatible object storage API under s3/s3api/ is retained as the
|
|
primary product surface.
|