Позиционирование как самостоятельного продукта и переход на AGPL-3.0-only
HY2XS больше не описывается как форк H UI. Из README, docs, сообщений builder'а и post-install metadata убрана вся fork/H UI терминология. Лицензия: - LICENSE: MIT заменён на полный текст AGPL-3.0-only - README: бейдж и раздел лицензии, подпись Flamy Studio - orchestrator/package.json, apps/frontend/package.json: license - package.sh: LICENSE кладётся в install package, license=AGPL-3.0-only в metadata - verify.sh, acceptance.sh: проверки корневой AGPL и metadata Документация: - 04-admin-panel-h-ui-fork.md -> 04-admin-panel.md, переписан вокруг модели Hysteria2 = external runtime dependency, HY2XS admin = native HY2XS component - docs 01, 02, 03, 08, 09, 11, 12, README: единая терминология HY2XS admin post-install.env: - блок HUI_* заменён на HY2XS_ADMIN_*, HUI_FORK_REF -> HY2XS_ADMIN_SOURCE Внутренний legacy namespace (H_UI_* ключи SQLite, HUI_DATA/HUI_LOG, API /hui, h_ui_db.sql) намеренно не тронут: он требует отдельной миграции БД и выносится в отдельный этап.
This commit is contained in:
@@ -22,7 +22,7 @@ dist/hy2xs-install-<version>.tar.gz
|
||||
- [`tools/build/lib/verify.sh`](lib/verify.sh) — проверка структуры репозитория и итогового архива.
|
||||
- [`tools/build/hysteria-lock.env`](hysteria-lock.env) — pinned версия, URL и SHA256 upstream Hysteria2 binary.
|
||||
- [`orchestrator`](../../orchestrator) — TypeScript/Bun install-only orchestrator.
|
||||
- [`apps`](../../apps) — HY2XS admin fork: backend на Go и frontend.
|
||||
- [`apps`](../../apps) — HY2XS admin: Go backend и Vue frontend.
|
||||
- [`package`](../../package) — skeleton будущего install package: `install.sh`, templates, systemd units, default config.
|
||||
- [`dist`](../../dist) — итоговые архивы. Создаётся builder'ом, в git обычно не хранится.
|
||||
- [`.toolchain`](../../.toolchain) — локальный toolchain builder'а. Создаётся автоматически, в git не хранится.
|
||||
|
||||
@@ -33,7 +33,7 @@ main() {
|
||||
log_step "Building install-only orchestrator"
|
||||
build_orchestrator
|
||||
|
||||
log_step "Bundling HY2XS admin fork"
|
||||
log_step "Bundling HY2XS admin"
|
||||
bundle_ui
|
||||
|
||||
log_step "Writing metadata"
|
||||
|
||||
@@ -9,6 +9,13 @@ run_fix20_acceptance_subset() {
|
||||
[ -x "$package_dir/install.sh" ] || fail "acceptance: install.sh is missing or not executable"
|
||||
[ -x "$package_dir/orchestrator/hy2xs-orchestrator" ] || fail "acceptance: orchestrator artifact is missing"
|
||||
|
||||
log_step "Acceptance: project license is shipped with the package"
|
||||
[ -f "$package_dir/LICENSE" ] || fail "acceptance: LICENSE is missing from the package"
|
||||
grep -q 'GNU AFFERO GENERAL PUBLIC LICENSE' "$package_dir/LICENSE" \
|
||||
|| fail "acceptance: packaged LICENSE must be AGPL-3.0-only"
|
||||
grep -q '^license=AGPL-3.0-only$' "$package_dir/metadata/package.env" \
|
||||
|| fail "acceptance: package metadata must declare license=AGPL-3.0-only"
|
||||
|
||||
log_step "Acceptance: orchestrator CLI help path"
|
||||
"$package_dir/orchestrator/hy2xs-orchestrator" diagnostics collect --package-dir "$package_dir" >/dev/null 2>&1 || true
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ prepare_stage() {
|
||||
rm -rf "$STAGE_DIR/orchestrator" "$STAGE_DIR/ui" "$STAGE_DIR/metadata"
|
||||
mkdir -p "$STAGE_DIR/orchestrator" "$STAGE_DIR/ui/hy2xs-admin" "$STAGE_DIR/metadata"
|
||||
|
||||
install -m 0644 LICENSE "$STAGE_DIR/LICENSE"
|
||||
|
||||
printf '%s\n' "$version" >"$STAGE_DIR/metadata/package.version"
|
||||
printf '%s\n' "$build_id" >"$STAGE_DIR/metadata/package.build_id"
|
||||
}
|
||||
@@ -102,6 +104,7 @@ write_metadata() {
|
||||
|
||||
{
|
||||
printf 'name=HY2XS\n'
|
||||
printf 'license=AGPL-3.0-only\n'
|
||||
printf 'version=%s\n' "$version"
|
||||
printf 'build_id=%s\n' "$build_id"
|
||||
printf 'build_host_os=debian13\n'
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
require_repo_layout() {
|
||||
[ -f "LICENSE" ] || fail "missing LICENSE"
|
||||
[ -d "orchestrator/src" ] || fail "missing orchestrator/src"
|
||||
[ -f "orchestrator/package.json" ] || fail "missing orchestrator/package.json"
|
||||
[ -f "orchestrator/bun.lock" ] || fail "missing orchestrator/bun.lock"
|
||||
@@ -44,6 +45,7 @@ verify_archive() {
|
||||
listing="$(tar -tzf "$archive")"
|
||||
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/install.sh$' || fail "archive missing install.sh"
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/LICENSE$' || fail "archive missing LICENSE"
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/orchestrator/hy2xs-orchestrator$' || fail "archive missing orchestrator artifact"
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/ui/hy2xs-admin/hy2xs-admin$' || fail "archive missing bundled UI binary"
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/systemd/hysteria-server.service$' || fail "archive missing hysteria systemd unit"
|
||||
@@ -53,6 +55,13 @@ verify_archive() {
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/templates/env/post-install.env.tpl$' || fail "archive missing post-install env template"
|
||||
printf '%s\n' "$listing" | grep -q '^hy2xs-install/metadata/checksums.txt$' || fail "archive missing checksums"
|
||||
|
||||
local license_text
|
||||
license_text="$(tar -xOzf "$archive" hy2xs-install/LICENSE)"
|
||||
printf '%s\n' "$license_text" | grep -q 'GNU AFFERO GENERAL PUBLIC LICENSE' \
|
||||
|| fail "packaged LICENSE is not the GNU Affero General Public License"
|
||||
printf '%s\n' "$license_text" | grep -q 'Version 3, 19 November 2007' \
|
||||
|| fail "packaged LICENSE is not AGPL version 3"
|
||||
|
||||
local env_content
|
||||
env_content="$(tar -xOzf "$archive" hy2xs-install/config/hy2xs.env)"
|
||||
printf '%s\n' "$env_content" | grep -q 'replace-with-your-domain.example' && fail "packaged hy2xs.env contains placeholder domain"
|
||||
@@ -80,6 +89,7 @@ verify_archive() {
|
||||
printf '%s\n' "$meta" | grep -q '^source_git_commit=' || fail "metadata missing source_git_commit"
|
||||
printf '%s\n' "$meta" | grep -q '^dirty_tree=' || fail "metadata missing dirty_tree"
|
||||
printf '%s\n' "$meta" | grep -q '^build_profile=production$' || fail "metadata missing build_profile=production"
|
||||
printf '%s\n' "$meta" | grep -q '^license=AGPL-3.0-only$' || fail "metadata missing license=AGPL-3.0-only"
|
||||
|
||||
if declare -F run_fix20_acceptance_subset >/dev/null 2>&1; then
|
||||
run_fix20_acceptance_subset "$tmp/hy2xs-install"
|
||||
|
||||
Reference in New Issue
Block a user