mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-09 13:38:05 +08:00
157 lines
6.0 KiB
Makefile
157 lines
6.0 KiB
Makefile
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=clashoo
|
|
PKG_UPSTREAM_VERSION:=1.19.33
|
|
PKG_UPSTREAM_TAG:=v$(PKG_UPSTREAM_VERSION)
|
|
PKG_SHORT_SHA:=3f27ef3
|
|
|
|
PKG_VERSION:=2026.10.27-r5
|
|
PKG_RELEASE:=21
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-stable-$(PKG_UPSTREAM_TAG)-$(PKG_SHORT_SHA).tar.gz
|
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-stable-$(PKG_UPSTREAM_TAG)-$(PKG_SHORT_SHA)
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
|
|
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-clashoo/releases/download/mihomo-src
|
|
PKG_SOURCE_VERSION:=aab968687034c10cd073a21293a3dc200a95171c
|
|
PKG_HASH:=skip
|
|
PKG_BUILD_VERSION:=$(PKG_UPSTREAM_TAG)
|
|
|
|
PKG_LICENSE:=GPL3.0+
|
|
PKG_MAINTAINER:=kenzok8
|
|
|
|
PKG_BUILD_DEPENDS:=golang/host
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_BUILD_FLAGS:=no-mips16
|
|
|
|
PKG_BUILD_TIME:=$(shell date -u -Iseconds)
|
|
|
|
GO_PKG:=github.com/metacubex/mihomo
|
|
GO_PKG_LDFLAGS_X:=$(GO_PKG)/constant.Version=$(PKG_BUILD_VERSION) $(GO_PKG)/constant.BuildTime=$(PKG_BUILD_TIME)
|
|
GO_PKG_TAGS:=with_gvisor
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
|
|
|
|
define Package/clashoo
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
TITLE:=Clashoo (Mihomo)
|
|
DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +yq +firewall4 +ip-full +coreutils-nohup +coreutils-timeout +kmod-inet-diag +kmod-nft-socket +kmod-nft-tproxy +kmod-tun +kmod-dummy +unzip
|
|
PROVIDES:=mihomo clash-meta
|
|
endef
|
|
|
|
define Package/clashoo/description
|
|
Mihomo proxy core with runtime environment for Clashoo.
|
|
endef
|
|
|
|
define Package/clashoo/conffiles
|
|
/etc/config/clashoo
|
|
endef
|
|
|
|
define Package/clashoo/install
|
|
$(call GoPackage/Package/Install/Bin,$(1))
|
|
|
|
$(INSTALL_DIR) $(1)/usr/libexec/clashoo
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
mv -f $(1)/usr/bin/mihomo $(1)/usr/libexec/clashoo/mihomo-stable
|
|
ln -sf /usr/libexec/clashoo/mihomo-stable $(1)/usr/bin/mihomo
|
|
ln -sf /usr/libexec/clashoo/mihomo-stable $(1)/usr/bin/clash-meta
|
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_DIR) $(1)/etc/clashoo
|
|
$(INSTALL_DIR) $(1)/etc/clashoo/provider
|
|
$(INSTALL_DIR) $(1)/etc/clashoo/proxyprovider
|
|
$(INSTALL_DIR) $(1)/etc/clashoo/ruleprovider
|
|
$(INSTALL_DIR) $(1)/usr/share/clashoo
|
|
$(INSTALL_DIR) $(1)/usr/share/clashbackup
|
|
$(INSTALL_DIR) $(1)/usr/share/clashoo/config
|
|
$(INSTALL_DIR) $(1)/usr/share/clashoo/config/sub
|
|
$(INSTALL_DIR) $(1)/usr/share/clashoo/config/upload
|
|
$(INSTALL_DIR) $(1)/usr/share/clashoo/config/custom
|
|
|
|
$(INSTALL_BIN) $(CURDIR)/files/etc/init.d/clashoo $(1)/etc/init.d/clashoo
|
|
$(INSTALL_CONF) $(CURDIR)/files/etc/config/clashoo $(1)/etc/config/clashoo
|
|
$(INSTALL_DATA) $(CURDIR)/files/etc/config/clashoo $(1)/usr/share/clashoo/clashoo.default
|
|
$(CP) $(CURDIR)/files/usr/share/clashoo/* $(1)/usr/share/clashoo/
|
|
$(INSTALL_BIN) $(CURDIR)/files/usr/share/clashoo/migrate_lan_acl.sh $(1)/usr/share/clashoo/migrate_lan_acl.sh
|
|
$(INSTALL_BIN) $(CURDIR)/files/usr/share/clashoo/migrate_fake_ip_filter.sh $(1)/usr/share/clashoo/migrate_fake_ip_filter.sh
|
|
$(INSTALL_BIN) $(CURDIR)/files/usr/share/clashoo/detect_core_arch.sh $(1)/usr/share/clashoo/detect_core_arch.sh
|
|
$(INSTALL_BIN) $(CURDIR)/files/usr/share/clashoo/diagnose_bypass.sh $(1)/usr/share/clashoo/diagnose_bypass.sh
|
|
|
|
$(RM) $(1)/usr/share/clashoo/dashboard
|
|
$(RM) $(1)/usr/share/clashoo/yacd
|
|
$(RM) $(1)/usr/share/clashoo/update.log
|
|
$(RM) $(1)/usr/share/clashoo/geoip.log
|
|
$(RM) $(1)/usr/share/clashoo/core_down_complete
|
|
endef
|
|
|
|
define Package/clashoo/preinst
|
|
#!/bin/sh
|
|
if [ -z "$${IPKG_INSTROOT}" ]; then
|
|
save_core() {
|
|
src="$$1"
|
|
dst="$$2"
|
|
[ -f "$$src" ] && [ ! -L "$$src" ] || return 0
|
|
if [ -e "$$dst" ] || [ -L "$$dst" ]; then return 0; fi
|
|
mkdir -p "$$(dirname "$$dst")" || return 1
|
|
tmp="$$dst.tmp.$$$$"
|
|
cp "$$src" "$$tmp" && chmod 0755 "$$tmp" && cmp -s "$$src" "$$tmp" || {
|
|
rm -f "$$tmp"
|
|
return 1
|
|
}
|
|
if command -v sha256sum >/dev/null 2>&1; then
|
|
old_hash="$$(sha256sum "$$src" | awk '{print $$1}')"
|
|
new_hash="$$(sha256sum "$$tmp" | awk '{print $$1}')"
|
|
[ "$$old_hash" = "$$new_hash" ] || {
|
|
rm -f "$$tmp"
|
|
return 1
|
|
}
|
|
fi
|
|
mv -f "$$tmp" "$$dst"
|
|
}
|
|
save_core /usr/bin/mihomo /usr/share/clashoo/bin/mihomo-alpha || exit 1
|
|
save_core /usr/bin/mihomo-stable /usr/share/clashoo/bin/mihomo-stable || exit 1
|
|
if [ -x /usr/bin/clash-meta ] && [ ! -L /usr/bin/clash-meta ] && [ ! -e /usr/share/clashoo/bin/mihomo-stable ]; then
|
|
if ! /usr/bin/clash-meta -v 2>/dev/null | grep -Eiq '(alpha|beta|rc|pre|smart)'; then
|
|
save_core /usr/bin/clash-meta /usr/share/clashoo/bin/mihomo-stable || exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
exit 0
|
|
endef
|
|
|
|
define Package/clashoo/postinst
|
|
#!/bin/sh
|
|
if [ -z "$${IPKG_INSTROOT}" ]; then
|
|
rm -f /usr/share/clashoo/check_luci_version.sh /usr/share/clashoo/check_clash_meta_version.sh /usr/share/clashoo/check_mihomo_core_version.sh
|
|
rm -f /usr/share/clashoo/cuslist.sh /usr/share/clashoo/groups.sh /usr/share/clashoo/load_groups.sh /usr/share/clashoo/panel_diag.sh
|
|
rm -f /usr/share/clashoo/rmlist.sh /usr/share/clashoo/uplist.sh /usr/share/clashoo/rpc_restart_async.sh /usr/share/clashoo/rpc_update_china_ip_async.sh
|
|
rm -rf /usr/share/clashoo/create
|
|
# 旧方案把 stable 内核放在 /usr/bin/mihomo-stable,现方案改用
|
|
# /usr/libexec/clashoo/mihomo-stable(随包)+ /usr/share/clashoo/bin/(自定义下载)。
|
|
# preinst 已把它抄到 /usr/share/clashoo/bin/mihomo-stable,确认内容相同后才删
|
|
# 旧位置;目标已有其他自定义内核时保留旧文件,避免误删。
|
|
if [ -f /usr/share/clashoo/bin/mihomo-stable ] && [ -f /usr/bin/mihomo-stable ] && [ ! -L /usr/bin/mihomo-stable ] && cmp -s /usr/bin/mihomo-stable /usr/share/clashoo/bin/mihomo-stable; then
|
|
rm -f /usr/bin/mihomo-stable
|
|
fi
|
|
/usr/share/clashoo/migrate_lan_acl.sh >/dev/null 2>&1 || true
|
|
/usr/share/clashoo/migrate_fake_ip_filter.sh >/dev/null 2>&1 || true
|
|
/usr/share/clashoo/detect_core_arch.sh >/dev/null 2>&1 || true
|
|
if [ "$$(uci -q get clashoo.config.enable 2>/dev/null)" = "1" ]; then
|
|
/etc/init.d/clashoo enable 2>/dev/null || true
|
|
else
|
|
/etc/init.d/clashoo disable 2>/dev/null || true
|
|
fi
|
|
fi
|
|
exit 0
|
|
endef
|
|
|
|
define Build/Prepare
|
|
$(Build/Prepare/Default)
|
|
$(RM) -r $(PKG_BUILD_DIR)/rules/logic_test
|
|
endef
|
|
|
|
$(eval $(call GoBinPackage,clashoo))
|
|
$(eval $(call BuildPackage,clashoo))
|