new: add makefile for open wrt

This commit is contained in:
hiddify
2024-03-22 17:19:28 +00:00
parent 3d3b4e4625
commit 3b70b77b39
5 changed files with 119 additions and 5 deletions

View File

@@ -2,15 +2,21 @@
# Attribution-NonCommercial-ShareAlike 4.0 International
## Summary:
- The forks of the app are not allowed to be listed on F-Droid or other app stores under the original name or original design.
- Any forks should be published open-source under the same license.
- Prior consent is required to publish a fork or utilize any part of this repository (github.com/hiddify/hiddify-next and github.com/hiddify/hiddify-next-core) in an application intended for publication on the App Store or for iOS/macOS platforms. (We reserve the right to modify this requirement in the future after completing development for iOS and macOS).
- You need prior consent to publish a fork or use any part of this code in an application published in AppStore or publish for iOS or macOS. (We reserve the right to modify this requirement in the future after completing development for iOS and macOS).
- You are free to:
- Share — copy and redistribute the material in any medium or format
- Share — copy and redistribute the material in any medium or format with
- Adapt — remix, transform, and build upon the material
- Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial — You may not use the material for commercial purposes. You can not even include ads in it.
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
- Prior consent is required before utilizing any portion of this code for integration into an application intended for the App Store.
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
@@ -182,4 +188,4 @@ d. Nothing in this Public License constitutes or may be interpreted as a limitat
> Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
>
> Creative Commons may be contacted at creativecommons.org
> Creative Commons may be contacted at creativecommons.org

View File

@@ -14,7 +14,7 @@ endif
TAGS=with_gvisor,with_quic,with_wireguard,with_ech,with_utls,with_clash_api,with_grpc
IOS_ADD_TAGS=with_dhcp,with_low_memory,with_conntrack
GOBUILDLIB=CGO_ENABLED=1 go build -trimpath -tags $(TAGS) -ldflags="-w -s" -buildmode=c-shared
GOBUILDSRV=CGO_ENABLED=1 go build -trimpath -tags $(TAGS)
GOBUILDSRV=CGO_ENABLED=1 go build -ldflags "-s gc-w" -trimpath -tags $(TAGS)
.PHONY: protos
protos:
@@ -74,7 +74,7 @@ linux-amd64:
linux-custom:
mkdir -p $(BINDIR)/
#env GOARCH=mips $(GOBUILDSRV) -o $(BINDIR)/$(CLINAME) ./cli/
go build -trimpath -tags $(TAGS) -o $(BINDIR)/$(CLINAME) ./cli/
go build -ldflags "-w" -trimpath -tags $(TAGS) -o $(BINDIR)/$(CLINAME) ./cli/
chmod +x $(BINDIR)/$(CLINAME)
make webui

63
wrt/Makefile Normal file
View File

@@ -0,0 +1,63 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=hiddify-core
PKG_VERSION:=1.2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/hiddify/hiddify-core/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=481098a29b0b08d225598e5e74eddfe4cbdd4560b7ac74d210dcc923792a3e24
PKG_LICENSE:=https://github.com/hiddify/hiddify-next/edit/main/LICENSE.md
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Hiddify <wrt@hiddify.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_BUILD_FLAGS:=no-mips16
GO_PKG:=github.com/hiddify/hiddify-core
GO_PKG_BUILD_PKG:=$(GO_PKG)/cli
GO_PKG_LDFLAGS_X:=$(GO_PKG)/constant.Version=$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include ../../lang/golang/golang-package.mk
define Package/hiddify-core
TITLE:=Hiddify universal proxy platform
SECTION:=net
CATEGORY:=Network
URL:=https://hiddify.com/
DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +kmod-inet-diag +kmod-tun
USERID:=hiddify-core=5566:hiddify-core=5566
endef
define Package/hiddify-core/description
Hiddify is a universal proxy platform which supports hysteria, SOCKS, Shadowsocks,
ShadowTLS, Tor, trojan, VLess, VMess, WireGuard and so on.
endef
GO_PKG_TAGS:=with_gvisor,with_quic,with_wireguard,with_ech,with_utls,with_clash_api,with_grpc,with_low_memory,with_conntrack
define Package/hiddify-core/conffiles
/etc/config/hiddify-core
/etc/hiddify-core/
endef
define Package/hiddify-core/install
$(INSTALL_DIR) $(1)/usr/bin/
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/HiddifyCli $(1)/usr/bin/hiddify-cli
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/HiddifyCli $(1)/usr/bin/HiddifyCli
$(INSTALL_DIR) $(1)/etc/hiddify-core
$(INSTALL_DATA) $(PKG_BUILD_DIR)/release/config/config.json $(1)/etc/hiddify-core
$(INSTALL_DIR) $(1)/etc/config/
$(INSTALL_CONF) ./files/hiddify.conf $(1)/etc/config/hiddify-core
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/hiddify.init $(1)/etc/init.d/hiddify-core
endef
$(eval $(call BuildPackage,hiddify-core))

View File

@@ -0,0 +1,6 @@
config hiddify-core 'main'
option enabled '0'
option user 'hiddify-core'
option conffile '/etc/hiddify-core/config.json'
option workdir '/usr/share/hiddify-core'

View File

@@ -0,0 +1,39 @@
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=99
NAME="hiddify-core"
PROG="/usr/bin/hiddify-core"
start_service() {
config_load "$NAME"
local enabled user group conffile workdir
config_get_bool enabled "main" "enabled" "0"
[ "$enabled" -eq "1" ] || return 0
config_get user "main" "user" "root"
config_get conffile "main" "conffile"
config_get workdir "main" "workdir" "/usr/share/hiddify-core"
mkdir -p "$workdir"
local group="$(id -ng $user)"
chown $user:$group "$workdir"
procd_open_instance "$NAME.main"
procd_set_param command "$PROG" run -c "$conffile" -D "$workdir"
# Use root user if you want to use the TUN mode.
procd_set_param user "$user"
procd_set_param file "$conffile"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
}
service_triggers() {
procd_add_reload_trigger "$NAME"
}