Files
zeekayandHanzo Dev af0f387bbe Remove weed and SeaweedFS naming from the tree
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]>
2026-10-02 08:06:48 -07:00

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.