Move build guide to root README
This commit is contained in:
@@ -34,11 +34,11 @@
|
||||
|
||||
Основные точки, где это уже вырезано:
|
||||
|
||||
- [include/registry.go](./include/registry.go)
|
||||
- [option/options.go](./option/options.go)
|
||||
- [box.go](./box.go)
|
||||
- [experimental/clashapi/server.go](./experimental/clashapi/server.go)
|
||||
- [release/DEFAULT_BUILD_TAGS_OTHERS](./release/DEFAULT_BUILD_TAGS_OTHERS)
|
||||
- [include/registry.go](./sing-box-rr/include/registry.go)
|
||||
- [option/options.go](./sing-box-rr/option/options.go)
|
||||
- [box.go](./sing-box-rr/box.go)
|
||||
- [experimental/clashapi/server.go](./sing-box-rr/experimental/clashapi/server.go)
|
||||
- [release/DEFAULT_BUILD_TAGS_OTHERS](./sing-box-rr/release/DEFAULT_BUILD_TAGS_OTHERS)
|
||||
|
||||
## 2. Что сейчас входит в дефолтную сборку
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
Скрипты [build-ipk.sh](/home/fresa/sing-box-rr-edition/build-ipk.sh) и [build-apk.sh](/home/fresa/sing-box-rr-edition/build-apk.sh) читают теги из:
|
||||
|
||||
- [release/DEFAULT_BUILD_TAGS_OTHERS](./release/DEFAULT_BUILD_TAGS_OTHERS)
|
||||
- [release/DEFAULT_BUILD_TAGS_OTHERS](./sing-box-rr/release/DEFAULT_BUILD_TAGS_OTHERS)
|
||||
|
||||
Текущее значение:
|
||||
|
||||
@@ -58,8 +58,8 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Дефолтные теги для обычных сборок лежат в:
|
||||
|
||||
- [release/DEFAULT_BUILD_TAGS](./release/DEFAULT_BUILD_TAGS)
|
||||
- [release/DEFAULT_BUILD_TAGS_WINDOWS](./release/DEFAULT_BUILD_TAGS_WINDOWS)
|
||||
- [release/DEFAULT_BUILD_TAGS](./sing-box-rr/release/DEFAULT_BUILD_TAGS)
|
||||
- [release/DEFAULT_BUILD_TAGS_WINDOWS](./sing-box-rr/release/DEFAULT_BUILD_TAGS_WINDOWS)
|
||||
|
||||
Там по-прежнему включён `with_naive_outbound` для non-OpenWrt сборок.
|
||||
|
||||
@@ -67,7 +67,7 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Отдельные дефолты для libbox управляются в:
|
||||
|
||||
- [cmd/internal/build_libbox/main.go](./cmd/internal/build_libbox/main.go)
|
||||
- [cmd/internal/build_libbox/main.go](./sing-box-rr/cmd/internal/build_libbox/main.go)
|
||||
|
||||
Если режешь дефолтные теги, держи этот файл синхронным с остальными.
|
||||
|
||||
@@ -89,8 +89,8 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Связанные файлы:
|
||||
|
||||
- [include/quic.go](./include/quic.go)
|
||||
- [include/quic_stub.go](./include/quic_stub.go)
|
||||
- [include/quic.go](./sing-box-rr/include/quic.go)
|
||||
- [include/quic_stub.go](./sing-box-rr/include/quic_stub.go)
|
||||
|
||||
После отключения парсер всё ещё знает эти типы, но runtime возвращает понятную ошибку "not included in this build".
|
||||
|
||||
@@ -100,8 +100,8 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Связанные файлы:
|
||||
|
||||
- [include/clashapi.go](./include/clashapi.go)
|
||||
- [include/clashapi_stub.go](./include/clashapi_stub.go)
|
||||
- [include/clashapi.go](./sing-box-rr/include/clashapi.go)
|
||||
- [include/clashapi_stub.go](./sing-box-rr/include/clashapi_stub.go)
|
||||
|
||||
### `with_utls`
|
||||
|
||||
@@ -121,8 +121,8 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Связанные файлы:
|
||||
|
||||
- [include/naive_outbound.go](./include/naive_outbound.go)
|
||||
- [include/naive_outbound_stub.go](./include/naive_outbound_stub.go)
|
||||
- [include/naive_outbound.go](./sing-box-rr/include/naive_outbound.go)
|
||||
- [include/naive_outbound_stub.go](./sing-box-rr/include/naive_outbound_stub.go)
|
||||
|
||||
Если нужен OpenWrt package build без `naive`, есть два пути:
|
||||
|
||||
@@ -133,7 +133,7 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Если build tags уже не хватает, режь runtime-регистрацию прямо в:
|
||||
|
||||
- [include/registry.go](./include/registry.go)
|
||||
- [include/registry.go](./sing-box-rr/include/registry.go)
|
||||
|
||||
Именно этот файл определяет, что бинарник реально экспонирует во время работы.
|
||||
|
||||
@@ -209,9 +209,9 @@ with_gvisor,with_quic,with_utls,with_clash_api,badlinkname,tfogo_checklinkname0
|
||||
|
||||
Providers уже отключены в текущем форке. Ключевые точки среза:
|
||||
|
||||
- [option/options.go](./option/options.go)
|
||||
- [box.go](./box.go)
|
||||
- [experimental/clashapi/server.go](./experimental/clashapi/server.go)
|
||||
- [option/options.go](./sing-box-rr/option/options.go)
|
||||
- [box.go](./sing-box-rr/box.go)
|
||||
- [experimental/clashapi/server.go](./sing-box-rr/experimental/clashapi/server.go)
|
||||
|
||||
Тот же паттерн можно использовать, если позже будешь убирать другие top-level config sections.
|
||||
|
||||
@@ -233,9 +233,9 @@ Providers уже отключены в текущем форке. Ключевы
|
||||
|
||||
Для этого форка самый безопасный порядок такой:
|
||||
|
||||
1. Резать build tags в [release/DEFAULT_BUILD_TAGS_OTHERS](./release/DEFAULT_BUILD_TAGS_OTHERS).
|
||||
2. Если нужно, синхронизировать ту же политику в [release/DEFAULT_BUILD_TAGS](./release/DEFAULT_BUILD_TAGS), [release/DEFAULT_BUILD_TAGS_WINDOWS](./release/DEFAULT_BUILD_TAGS_WINDOWS) и [cmd/internal/build_libbox/main.go](./cmd/internal/build_libbox/main.go).
|
||||
3. Потом убирать лишнюю runtime-регистрацию в [include/registry.go](./include/registry.go).
|
||||
1. Резать build tags в [release/DEFAULT_BUILD_TAGS_OTHERS](./sing-box-rr/release/DEFAULT_BUILD_TAGS_OTHERS).
|
||||
2. Если нужно, синхронизировать ту же политику в [release/DEFAULT_BUILD_TAGS](./sing-box-rr/release/DEFAULT_BUILD_TAGS), [release/DEFAULT_BUILD_TAGS_WINDOWS](./sing-box-rr/release/DEFAULT_BUILD_TAGS_WINDOWS) и [cmd/internal/build_libbox/main.go](./sing-box-rr/cmd/internal/build_libbox/main.go).
|
||||
3. Потом убирать лишнюю runtime-регистрацию в [include/registry.go](./sing-box-rr/include/registry.go).
|
||||
4. Только после стабилизации сборки резать config surface.
|
||||
5. Физически удалять старые каталоги с исходниками только в самом конце.
|
||||
|
||||
@@ -295,8 +295,8 @@ Providers уже отключены в текущем форке. Ключевы
|
||||
|
||||
В проекте сейчас есть два пути пакетизации:
|
||||
|
||||
- локальные helper scripts: [build-ipk.sh](/home/fresa/sing-box-rr-edition/build-ipk.sh) и [build-apk.sh](/home/fresa/sing-box-rr-edition/build-apk.sh)
|
||||
- обычная OpenWrt feed-сборка через [sing-box-rr/Makefile](./Makefile)
|
||||
- локальные helper scripts: [build-ipk.sh](./build-ipk.sh) и [build-apk.sh](./build-apk.sh)
|
||||
- обычная OpenWrt feed-сборка через [sing-box-rr/Makefile](./sing-box-rr/Makefile)
|
||||
|
||||
Оба пути специально выставляют:
|
||||
|
||||
@@ -307,9 +307,9 @@ Providers уже отключены в текущем форке. Ключевы
|
||||
|
||||
Связанные файлы:
|
||||
|
||||
- [build-ipk.sh](/home/fresa/sing-box-rr-edition/build-ipk.sh)
|
||||
- [build-apk.sh](/home/fresa/sing-box-rr-edition/build-apk.sh)
|
||||
- [sing-box-rr/Makefile](./Makefile)
|
||||
- [build-ipk.sh](./build-ipk.sh)
|
||||
- [build-apk.sh](./build-apk.sh)
|
||||
- [sing-box-rr/Makefile](./sing-box-rr/Makefile)
|
||||
|
||||
Если меняешь package name или `Provides`, сначала проверь зависимости downstream-пакетов.
|
||||
|
||||
@@ -317,10 +317,10 @@ Providers уже отключены в текущем форке. Ключевы
|
||||
|
||||
Для `24.10.x SDK` пакет нельзя собирать через стандартный `golang-package.mk`, потому что в этой ветке OpenWrt `golang/host` всё ещё `1.23.x`, а текущий форк требует `go 1.26.1`.
|
||||
|
||||
Поэтому feed-пакет в [sing-box-rr/Makefile](./Makefile):
|
||||
Поэтому feed-пакет в [sing-box-rr/Makefile](./sing-box-rr/Makefile):
|
||||
|
||||
- не зависит от `golang/host`
|
||||
- берет исходники прямо из корня этого форка
|
||||
- берет исходники прямо из каталога `sing-box-rr`
|
||||
- собирает бинарь внешним `go`, по умолчанию через `/usr/local/go/bin/go`
|
||||
- сейчас рассчитан на `aarch64` и `x86_64`, но для роутерного профиля нам важен именно `aarch64`
|
||||
|
||||
@@ -344,22 +344,22 @@ make package/feeds/singboxrr/sing-box-rr/compile V=s GO_BIN=/usr/local/go/bin/go
|
||||
### OpenWrt 24.10 IPK
|
||||
|
||||
```bash
|
||||
../build-ipk.sh arm64
|
||||
../build-ipk.sh x86_64
|
||||
./build-ipk.sh arm64
|
||||
./build-ipk.sh x86_64
|
||||
```
|
||||
|
||||
### OpenWrt 25.12 APK
|
||||
|
||||
```bash
|
||||
../build-apk.sh arm64
|
||||
../build-apk.sh x86_64
|
||||
./build-apk.sh arm64
|
||||
./build-apk.sh x86_64
|
||||
```
|
||||
|
||||
### Принудительная чистая пересборка Go cache
|
||||
|
||||
```bash
|
||||
../build-ipk.sh arm64 --force
|
||||
../build-apk.sh arm64 --force
|
||||
./build-ipk.sh arm64 --force
|
||||
./build-apk.sh arm64 --force
|
||||
```
|
||||
|
||||
## 10. Что проверять после каждого среза
|
||||
@@ -377,8 +377,8 @@ make package/feeds/singboxrr/sing-box-rr/compile V=s GO_BIN=/usr/local/go/bin/go
|
||||
|
||||
```bash
|
||||
git status --short
|
||||
../build-ipk.sh arm64
|
||||
../build-apk.sh arm64
|
||||
./build-ipk.sh arm64
|
||||
./build-apk.sh arm64
|
||||
```
|
||||
|
||||
Если режешь сборку для роутера, на котором уже стоит `zeroblock`, отдельно проверь совместимость package dependency перед изменением `Provides`, `Conflicts` и имени пакета.
|
||||
Reference in New Issue
Block a user