mirror of
https://github.com/remittor/zapret-openwrt.git
synced 2026-02-01 15:20:45 +03:00
Compare commits
22 Commits
v0.9.20260
...
v0.9.20260
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc90c8dace | ||
|
|
986b3a28b1 | ||
|
|
07f5b13f11 | ||
|
|
60044abbc0 | ||
|
|
01a1b8801d | ||
|
|
8302ed517f | ||
|
|
3f49fa3913 | ||
|
|
2e875efcf7 | ||
|
|
6a25a51571 | ||
|
|
a97d095aa6 | ||
|
|
13341758a0 | ||
|
|
6c3f5394f7 | ||
|
|
af466256af | ||
|
|
92b4159836 | ||
|
|
ea12fcc85a | ||
|
|
c261476262 | ||
|
|
7fb5b37ad3 | ||
|
|
da3cd4a341 | ||
|
|
b4c3854774 | ||
|
|
81c269a7a6 | ||
|
|
fe59ce025f | ||
|
|
bbc12a2e1f |
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@@ -155,6 +155,7 @@ jobs:
|
|||||||
- mipsel_24kc_24kf
|
- mipsel_24kc_24kf
|
||||||
- mipsel_74kc
|
- mipsel_74kc
|
||||||
- mipsel_mips32
|
- mipsel_mips32
|
||||||
|
- riscv64_generic
|
||||||
- x86_64
|
- x86_64
|
||||||
isTestOrFake:
|
isTestOrFake:
|
||||||
- ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}
|
- ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}
|
||||||
@@ -163,6 +164,8 @@ jobs:
|
|||||||
arch: arm_cortex-a9_vfpv3-d16
|
arch: arm_cortex-a9_vfpv3-d16
|
||||||
- branch: ${{ needs.var.outputs.APK_BRANCH }}
|
- branch: ${{ needs.var.outputs.APK_BRANCH }}
|
||||||
arch: mips_4kec
|
arch: mips_4kec
|
||||||
|
- branch: ${{ needs.var.outputs.IPK_BRANCH }}
|
||||||
|
arch: riscv64_generic
|
||||||
- { isTestOrFake: true }
|
- { isTestOrFake: true }
|
||||||
include:
|
include:
|
||||||
- branch: ${{ needs.var.outputs.IPK_BRANCH }}
|
- branch: ${{ needs.var.outputs.IPK_BRANCH }}
|
||||||
@@ -270,6 +273,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make defconfig
|
make defconfig
|
||||||
sed -i 's/CONFIG_LUCI_JSMIN=y/CONFIG_LUCI_JSMIN=n/g' .config
|
sed -i 's/CONFIG_LUCI_JSMIN=y/CONFIG_LUCI_JSMIN=n/g' .config
|
||||||
|
sed -i 's/CONFIG_LUCI_CSSTIDY=y/CONFIG_LUCI_CSSTIDY=n/g' .config
|
||||||
|
grep -q '^CONFIG_LUCI_CSSTIDY=' .config || echo 'CONFIG_LUCI_CSSTIDY=n' >> .config
|
||||||
echo "status=success" >> $GITHUB_OUTPUT
|
echo "status=success" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Show config
|
- name: Show config
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=luci-app-zapret2
|
PKG_NAME:=luci-app-zapret2
|
||||||
PKG_VERSION:=0.9.20260128
|
PKG_VERSION:=0.9.20260131
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=MIT
|
||||||
PKG_MAINTAINER:=remittor <https://github.com/remittor>
|
PKG_MAINTAINER:=remittor <https://github.com/remittor>
|
||||||
|
|||||||
@@ -158,13 +158,17 @@ return baseclass.extend({
|
|||||||
E('br'), E('br'),
|
E('br'), E('br'),
|
||||||
this.logArea,
|
this.logArea,
|
||||||
]),
|
]),
|
||||||
E('div', { 'class': 'right' }, [
|
E('div', { 'style': 'display:flex; justify-content:space-between; align-items:center; margin-top:1px;' }, [
|
||||||
this.btn_sitescheck,
|
E('div', { 'class': 'left' }, [
|
||||||
' ',
|
this.btn_sitescheck,
|
||||||
this.btn_dpicheck,
|
' ',
|
||||||
' ',
|
this.btn_dpicheck,
|
||||||
this.btn_cancel,
|
]),
|
||||||
])
|
E('div', { 'class': 'right' }, [
|
||||||
|
' ',
|
||||||
|
this.btn_cancel,
|
||||||
|
]),
|
||||||
|
]),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -175,6 +175,10 @@ return view.extend({
|
|||||||
|
|
||||||
statusPoll: function()
|
statusPoll: function()
|
||||||
{
|
{
|
||||||
|
if (tools.isModalActive()) {
|
||||||
|
this.POLL.running = false;
|
||||||
|
return; // not update page when any modal dialog is active
|
||||||
|
}
|
||||||
this.getAppStatus().then(
|
this.getAppStatus().then(
|
||||||
L.bind(this.setAppStatus, this)
|
L.bind(this.setAppStatus, this)
|
||||||
);
|
);
|
||||||
@@ -228,6 +232,7 @@ return view.extend({
|
|||||||
let cancel_button = E('button', {
|
let cancel_button = E('button', {
|
||||||
'class': btn_style_neutral,
|
'class': btn_style_neutral,
|
||||||
'click': ui.hideModal,
|
'click': ui.hideModal,
|
||||||
|
'class': btn_style_warning,
|
||||||
}, _('Cancel'));
|
}, _('Cancel'));
|
||||||
|
|
||||||
let resetcfg_btn = E('button', {
|
let resetcfg_btn = E('button', {
|
||||||
@@ -277,11 +282,14 @@ return view.extend({
|
|||||||
nfqws_strat,
|
nfqws_strat,
|
||||||
E('br'), E('br')
|
E('br'), E('br')
|
||||||
]),
|
]),
|
||||||
E('div', { 'class': 'right' }, [
|
E('div', { 'style': 'display:flex; justify-content:space-between; align-items:center; margin-top:1px;' }, [
|
||||||
cancel_button,
|
E('div', { 'class': 'left' }, [
|
||||||
' ',
|
resetcfg_btn,
|
||||||
resetcfg_btn,
|
]),
|
||||||
])
|
E('div', { 'class': 'right' }, [
|
||||||
|
cancel_button,
|
||||||
|
]),
|
||||||
|
]),
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -761,7 +761,12 @@ return baseclass.extend({
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
execAndRead: async function({ cmd = [ ], log = '', logArea = null, callback = null, ctx = null, hiderow = [ ], rpc_timeout = 5, rpc_root = false } = {})
|
isModalActive: function()
|
||||||
|
{
|
||||||
|
return document.body.classList.contains('modal-overlay-active');
|
||||||
|
},
|
||||||
|
|
||||||
|
execAndRead: async function({ cmd = [ ], log = '', logArea = null, callback = null, ctx = null, hiderow = [ ] } = {})
|
||||||
{
|
{
|
||||||
function appendLog(msg, end = '\n')
|
function appendLog(msg, end = '\n')
|
||||||
{
|
{
|
||||||
@@ -775,36 +780,49 @@ return baseclass.extend({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let hide_rows = Array.isArray(hiderow) ? hiderow : [ hiderow ];
|
let hide_rows = Array.isArray(hiderow) ? hiderow : [ hiderow ];
|
||||||
let rpc_opt = { "timeout": rpc_timeout*1000 };
|
|
||||||
if (rpc_root) {
|
|
||||||
rpc_opt.uid = 0; // run under root
|
|
||||||
}
|
|
||||||
const logFile = log; // file for reading: '/tmp/zapret_pkg_install.log'
|
const logFile = log; // file for reading: '/tmp/zapret_pkg_install.log'
|
||||||
const rcFile = logFile + '.rc';
|
const rcFile = logFile + '.rc';
|
||||||
try {
|
try {
|
||||||
await fs.exec('/bin/busybox', [ 'rm', '-f', logFile + '*' ], null, rpc_opt);
|
await fs.exec('/bin/busybox', [ 'rm', '-f', logFile + '*' ], null);
|
||||||
appendLog('Output file cleared!');
|
appendLog('Output file cleared!');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return callback.call(ctx, 500, 'ERROR: Failed to clear output file');
|
return callback.call(ctx, 500, 'ERROR: Failed to clear output file');
|
||||||
}
|
}
|
||||||
|
let processStarted = false;
|
||||||
|
let opt_list = [ logFile ];
|
||||||
try {
|
try {
|
||||||
let opt_list = [ logFile ];
|
|
||||||
opt_list.push(...cmd);
|
opt_list.push(...cmd);
|
||||||
let res = await fs.exec(this.appDir+'/script-exec.sh', opt_list, null, rpc_opt);
|
//console.log('script-exec.sh ... '+JSON.stringify(opt_list));
|
||||||
if (res.code != 0) {
|
let proc = new Promise((resolve) => {
|
||||||
return callback.call(ctx, 525, 'ERROR: cannot run "' + cmd[0] + '" script! (error = ' + res.code + ')');
|
fs.exec(this.appDir+'/script-exec.sh', opt_list, null)
|
||||||
}
|
.then (() => { resolve(); })
|
||||||
appendLog('Process started...');
|
.catch(() => { resolve(); });
|
||||||
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return callback.call(ctx, 520, 'ERROR: Failed on execute process: ' + e.message);
|
return callback.call(ctx, 520, 'ERROR: Failed on execute process: ' + e.message);
|
||||||
}
|
}
|
||||||
let lastLen = 0;
|
let lastLen = 0;
|
||||||
let retCode = -1;
|
let retCode = -1;
|
||||||
return await new Promise(async (resolve, reject) => {
|
return await new Promise(async (resolve, reject) => {
|
||||||
|
let ticks = 0;
|
||||||
async function epoll()
|
async function epoll()
|
||||||
{
|
{
|
||||||
|
ticks += 1;
|
||||||
try {
|
try {
|
||||||
let res = await fs.exec('/bin/cat', [ logFile ], null, rpc_opt);
|
let res = await fs.exec('/bin/cat', [ logFile ], null);
|
||||||
|
if (res.code != 0) {
|
||||||
|
if (ticks > 1) {
|
||||||
|
console.log('ERROR: execAndRead: '+JSON.stringify(opt_list));
|
||||||
|
resolve(callback.call(ctx, 541, 'ERROR: Failed on read process log: code = ' + res.code));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setTimeout(epoll, 500);
|
||||||
|
return; // skip first step with error
|
||||||
|
}
|
||||||
|
if (!processStarted) {
|
||||||
|
appendLog('Process started...');
|
||||||
|
processStarted = true;
|
||||||
|
}
|
||||||
if (res.stdout && res.stdout.length > lastLen) {
|
if (res.stdout && res.stdout.length > lastLen) {
|
||||||
let log = res.stdout.slice(lastLen);
|
let log = res.stdout.slice(lastLen);
|
||||||
hide_rows.forEach(re => {
|
hide_rows.forEach(re => {
|
||||||
@@ -814,7 +832,7 @@ return baseclass.extend({
|
|||||||
lastLen = res.stdout.length;
|
lastLen = res.stdout.length;
|
||||||
}
|
}
|
||||||
if (retCode < 0) {
|
if (retCode < 0) {
|
||||||
let rc = await fs.exec('/bin/cat', [ rcFile ], null, rpc_opt);
|
let rc = await fs.exec('/bin/cat', [ rcFile ], null);
|
||||||
if (rc.code != 0) {
|
if (rc.code != 0) {
|
||||||
fixLogEnd();
|
fixLogEnd();
|
||||||
resolve(callback.call(ctx, 545, 'ERROR: cannot read file "' + rcFile + '"'));
|
resolve(callback.call(ctx, 545, 'ERROR: cannot read file "' + rcFile + '"'));
|
||||||
|
|||||||
@@ -201,13 +201,17 @@ return baseclass.extend({
|
|||||||
E('hr'),
|
E('hr'),
|
||||||
this.logArea,
|
this.logArea,
|
||||||
]),
|
]),
|
||||||
E('div', { 'class': 'right' }, [
|
E('div', { 'style': 'display:flex; justify-content:space-between; align-items:center; margin-top:1px;' }, [
|
||||||
this.btn_check,
|
E('div', { 'class': 'left' }, [
|
||||||
' ',
|
this.btn_check,
|
||||||
this.btn_install,
|
' ',
|
||||||
' ',
|
this.btn_install,
|
||||||
this.btn_cancel,
|
]),
|
||||||
])
|
E('div', { 'class': 'right' }, [
|
||||||
|
' ',
|
||||||
|
this.btn_cancel,
|
||||||
|
]),
|
||||||
|
]),
|
||||||
]);
|
]);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
100
zapret2/Makefile
100
zapret2/Makefile
@@ -5,7 +5,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=zapret2
|
PKG_NAME:=zapret2
|
||||||
PKG_VERSION:=0.9.20260128
|
PKG_VERSION:=0.9.20260131
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_MAINTAINER:=bol-van
|
PKG_MAINTAINER:=bol-van
|
||||||
@@ -14,30 +14,45 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
|
|||||||
|
|
||||||
PKG_SOURCE_URL:=https://github.com/bol-van/zapret2.git
|
PKG_SOURCE_URL:=https://github.com/bol-van/zapret2.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_VERSION:=c8722d1ed9ac58561dd555b1c5b205e2f5f62432
|
PKG_SOURCE_VERSION:=a531da39fd7cf9d4c5c9c6fcf33d76b1d930c0d5
|
||||||
PKG_SOURCE_DATE:=2026-01-28
|
PKG_SOURCE_DATE:=2026-01-31
|
||||||
|
|
||||||
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret2/archive/refs/tags/v$(PKG_VERSION).tar.gz?
|
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret2/archive/refs/tags/v$(PKG_VERSION).tar.gz?
|
||||||
#PKG_HASH:=skip
|
#PKG_HASH:=skip
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
|
||||||
LUA_JIT?=1
|
LUA_JIT?=1
|
||||||
|
|
||||||
ifeq ($(LUA_JIT),1)
|
ifeq ($(LUA_JIT),1)
|
||||||
LUAJIT_VER?=2.1
|
|
||||||
LUA_VER?=5.1
|
LUA_VER?=5.1
|
||||||
LUA_DEPEND:=luajit
|
LUA_DEPEND:=
|
||||||
LUA_INCLUDE:=-I$(STAGING_DIR)/usr/include/luajit-$(LUAJIT_VER)
|
LUAJIT_VER?=2.1
|
||||||
LUA_LIBRARY:=-L$(STAGING_DIR)/usr/lib -lluajit-$(LUA_VER)
|
ifeq ($(ARCH),riscv64)
|
||||||
|
LUAJIT_URL:=https://github.com/infiWang/luajit2/archive
|
||||||
|
LAUJIT_BRANCH:=v2.1-20260114-riscv64
|
||||||
|
LUAJIT_COMMIT=4d8cf882a3a4ed3259407ad78614a60b02dd553f
|
||||||
|
LUAJIT_RELEASE:=2.1-20260114-$(LUAJIT_COMMIT)
|
||||||
|
LUAJIT_URL_FILE:=$(LUAJIT_COMMIT).tar.gz
|
||||||
|
else
|
||||||
|
LUAJIT_URL:=https://github.com/openresty/luajit2/archive/refs/tags
|
||||||
|
LUAJIT_RELEASE:=2.1-20250826
|
||||||
|
LUAJIT_URL_FILE:=v$(LUAJIT_RELEASE).tar.gz
|
||||||
|
endif
|
||||||
|
LUAJIT_TGZ:=$(PKG_NAME)-luajit-$(LUAJIT_RELEASE).tar.gz
|
||||||
|
LUASRC_DIR:=$(PKG_BUILD_DIR)/luajit-$(LUAJIT_RELEASE)
|
||||||
|
LUAOUT_DIR:=$(PKG_BUILD_DIR)/luajit-out
|
||||||
|
LUA_INCLUDE:=-I$(LUAOUT_DIR)/include/luajit-$(LUAJIT_VER)
|
||||||
|
LUA_LIBRARY:=-L$(LUAOUT_DIR)/lib -lluajit-$(LUA_VER)
|
||||||
else
|
else
|
||||||
LUA_VER?=5.5
|
LUA_VER?=5.4
|
||||||
LUA_DEPEND:=lua$(LUA_VER)
|
LUA_DEPEND:= +lua$(LUA_VER)
|
||||||
LUA_INCLUDE:=-I$(STAGING_DIR)/usr/include/lua$(LUA_VER)
|
LUA_INCLUDE:=-I$(STAGING_DIR)/usr/include/lua$(LUA_VER)
|
||||||
LUA_LIBRARY:=-L$(STAGING_DIR)/usr/lib -llua$(LUA_VER)
|
LUA_LIBRARY:=-L$(STAGING_DIR)/usr/lib -llua$(LUA_VER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
#TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS)
|
#TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS)
|
||||||
#TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
|
#TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
|
||||||
|
|
||||||
@@ -49,23 +64,74 @@ define Package/$(PKG_NAME)
|
|||||||
TITLE:=$(PKG_NAME)
|
TITLE:=$(PKG_NAME)
|
||||||
SUBMENU:=Zapret2
|
SUBMENU:=Zapret2
|
||||||
URL:=https://github.com/bol-van/zapret2
|
URL:=https://github.com/bol-van/zapret2
|
||||||
DEPENDS:= +nftables +curl +gzip +$(LUA_DEPEND)
|
DEPENDS:= +nftables +curl +gzip $(LUA_DEPEND)
|
||||||
DEPENDS+= +coreutils +coreutils-sort +coreutils-sleep
|
DEPENDS+= +coreutils +coreutils-sort +coreutils-sleep
|
||||||
DEPENDS+= +kmod-nft-nat +kmod-nft-offload +kmod-nft-queue
|
DEPENDS+= +kmod-nft-nat +kmod-nft-offload +kmod-nft-queue
|
||||||
DEPENDS+= +libnetfilter-queue +libcap +zlib
|
DEPENDS+= +libnetfilter-queue +libmnl +libcap +zlib
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifeq ($(LUA_JIT),1)
|
||||||
|
define Download/$(PKG_NAME)-luajit
|
||||||
|
FILE:=$(LUAJIT_TGZ)
|
||||||
|
URL:=$(LUAJIT_URL)
|
||||||
|
URL_FILE:=$(LUAJIT_URL_FILE)
|
||||||
|
HASH:=skip
|
||||||
|
endef
|
||||||
|
$(eval $(call Download,$(PKG_NAME)-luajit))
|
||||||
|
endif
|
||||||
|
|
||||||
define Build/Prepare
|
define Build/Prepare
|
||||||
$(Build/Prepare/Default)
|
$(Build/Prepare/Default)
|
||||||
rm -f $(PKG_BUILD_DIR)/$(MAKE_PATH)/nfqws2
|
rm -f $(PKG_BUILD_DIR)/$(MAKE_PATH)/nfqws2
|
||||||
rm -f $(PKG_BUILD_DIR)/ip2net/ip2net
|
rm -f $(PKG_BUILD_DIR)/ip2net/ip2net
|
||||||
rm -f $(PKG_BUILD_DIR)/mdig/mdig
|
rm -f $(PKG_BUILD_DIR)/mdig/mdig
|
||||||
|
if [ "$(LUA_JIT)" = 1 ]; then \
|
||||||
|
if [ ! -f "$(DL_DIR)/$(LUAJIT_TGZ)" ]; then \
|
||||||
|
echo "ERROR: LuaJIT tarball not found:"; \
|
||||||
|
echo " $(LUAJIT_TGZ)"; \
|
||||||
|
echo "Run: make package/$(PKG_NAME)/download"; \
|
||||||
|
false; \
|
||||||
|
fi ; \
|
||||||
|
rm -rf $(LUASRC_DIR) ; \
|
||||||
|
mkdir -p $(LUASRC_DIR) ; \
|
||||||
|
tar -xzf "$(DL_DIR)/$(LUAJIT_TGZ)" --strip-components=1 -C "$(LUASRC_DIR)" ; \
|
||||||
|
rm -rf $(LUAOUT_DIR) ; \
|
||||||
|
fi
|
||||||
endef
|
endef
|
||||||
|
|
||||||
#define Build/Configure
|
#define Build/Configure
|
||||||
#endef
|
#endef
|
||||||
|
|
||||||
|
ifeq ($(HOST_ARCH),$(filter $(HOST_ARCH), x86_64 mips64))
|
||||||
|
ifeq ($(CONFIG_ARCH_64BIT),)
|
||||||
|
HOST_BITS := -m32
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
if [ "$(LUA_JIT)" = 1 ]; then \
|
||||||
|
$(MAKE) $(PKG_JOBS) -C $(LUASRC_DIR) \
|
||||||
|
HOST_CC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_BITS)" \
|
||||||
|
CROSS="$(TARGET_CROSS)" \
|
||||||
|
XCFLAGS="-DLUAJIT_DISABLE_FFI" \
|
||||||
|
TARGET_CFLAGS="-Os -s -flto=auto $(TARGET_CFLAGS)" \
|
||||||
|
TARGET_AR="$(TARGET_AR) rcus" \
|
||||||
|
BUILDMODE=static \
|
||||||
|
DESTDIR=$(LUAOUT_DIR) \
|
||||||
|
PREFIX= \
|
||||||
|
TARGET_SYS=Linux ; \
|
||||||
|
rm -rf $(LUAOUT_DIR) ; \
|
||||||
|
if [ ! -f $(LUASRC_DIR)/src/libluajit.a ]; then \
|
||||||
|
echo "ERROR: file libluajit.a not found!"; \
|
||||||
|
false; \
|
||||||
|
fi ; \
|
||||||
|
mkdir -p $(LUAOUT_DIR) ; \
|
||||||
|
$(MAKE) -C $(LUASRC_DIR) \
|
||||||
|
DESTDIR=$(LUAOUT_DIR) \
|
||||||
|
PREFIX= \
|
||||||
|
TARGET_SYS=Linux \
|
||||||
|
install ; \
|
||||||
|
fi
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) $(TARGET_CONFIGURE_OPTS) LUA_JIT=$(LUA_JIT) LUA_CFLAGS="$(LUA_INCLUDE)" LUA_LIB="$(LUA_LIBRARY)"
|
$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) $(TARGET_CONFIGURE_OPTS) LUA_JIT=$(LUA_JIT) LUA_CFLAGS="$(LUA_INCLUDE)" LUA_LIB="$(LUA_LIBRARY)"
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR)/ip2net $(TARGET_CONFIGURE_OPTS)
|
$(MAKE) -C $(PKG_BUILD_DIR)/ip2net $(TARGET_CONFIGURE_OPTS)
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR)/mdig $(TARGET_CONFIGURE_OPTS)
|
$(MAKE) -C $(PKG_BUILD_DIR)/mdig $(TARGET_CONFIGURE_OPTS)
|
||||||
@@ -197,7 +263,7 @@ if [ -z "$${IPKG_INSTROOT}" ]; then
|
|||||||
$${ZAPRET_INITD} running && $${ZAPRET_INITD} stop >/dev/null 2>&1
|
$${ZAPRET_INITD} running && $${ZAPRET_INITD} stop >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if $${PKG_CHECK} zapret2 >/dev/null 2>&1; then
|
if $${PKG_CHECK} zapret2 2>/dev/null | grep -q . ; then
|
||||||
if [ ! -f "/opt/zapret2/sync_config.sh" ]; then
|
if [ ! -f "/opt/zapret2/sync_config.sh" ]; then
|
||||||
echo "Please uninstall incompatible \"zapret2\" package!"
|
echo "Please uninstall incompatible \"zapret2\" package!"
|
||||||
exit 47
|
exit 47
|
||||||
@@ -207,7 +273,7 @@ if [ -z "$${IPKG_INSTROOT}" ]; then
|
|||||||
exit 48
|
exit 48
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if $${PKG_CHECK} luci-app-zapret2 >/dev/null 2>&1; then
|
if $${PKG_CHECK} luci-app-zapret2 2>/dev/null | grep -q . ; then
|
||||||
SVC_FILE=/www/luci-static/resources/view/zapret2/service.js
|
SVC_FILE=/www/luci-static/resources/view/zapret2/service.js
|
||||||
if [ ! -f "$${SVC_FILE}" ] || ! grep -Fq "/remittor/zapret-openwrt" "$${SVC_FILE}"; then
|
if [ ! -f "$${SVC_FILE}" ] || ! grep -Fq "/remittor/zapret-openwrt" "$${SVC_FILE}"; then
|
||||||
echo "Please uninstall incompatible \"luci-app-zapret2\" package!"
|
echo "Please uninstall incompatible \"luci-app-zapret2\" package!"
|
||||||
@@ -223,10 +289,10 @@ if [ -z "$${IPKG_INSTROOT}" ]; then
|
|||||||
[ -d "$${ZAPRET_DIR}" ] && rm -rf $${ZAPRET_DIR}
|
[ -d "$${ZAPRET_DIR}" ] && rm -rf $${ZAPRET_DIR}
|
||||||
echo "All files of the previously installed package have been removed!"
|
echo "All files of the previously installed package have been removed!"
|
||||||
fi
|
fi
|
||||||
if $${PKG_CHECK} zapret2-mdig >/dev/null 2>&1; then
|
if $${PKG_CHECK} zapret2-mdig 2>/dev/null | grep -q . ; then
|
||||||
$${PKG_REMOVE} zapret2-mdig
|
$${PKG_REMOVE} zapret2-mdig
|
||||||
fi
|
fi
|
||||||
if $${PKG_CHECK} zapret2-ip2net >/dev/null 2>&1; then
|
if $${PKG_CHECK} zapret2-ip2net 2>/dev/null | grep -q . ; then
|
||||||
$${PKG_REMOVE} zapret2-ip2net
|
$${PKG_REMOVE} zapret2-ip2net
|
||||||
fi
|
fi
|
||||||
if [ ! -d "$${ZAPRET_DIR}" ]; then
|
if [ ! -d "$${ZAPRET_DIR}" ]; then
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ function set_cfg_nfqws_strat
|
|||||||
--new
|
--new
|
||||||
--filter-tcp=443
|
--filter-tcp=443
|
||||||
--filter-l3=ipv4
|
--filter-l3=ipv4
|
||||||
--filter-l7=tls <HOSTLIST_AUTO>
|
--filter-l7=tls <HOSTLIST>
|
||||||
--out-range=-s34228
|
--out-range=-s34228
|
||||||
--in-range=-s5556 --lua-desync=circular:fails=2:maxtime=60
|
--in-range=-s5556 --lua-desync=circular:fails=2:maxtime=60
|
||||||
--in-range=x
|
--in-range=x
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ TEST_SUITE='
|
|||||||
{ id: "US.CF-04", provider: "🇨🇦 Cloudflare", times: 1, url: "https://www.bigcartel.com/" },
|
{ id: "US.CF-04", provider: "🇨🇦 Cloudflare", times: 1, url: "https://www.bigcartel.com/" },
|
||||||
{ id: "US.DO-01", provider: "🇺🇸 DigitalOcean", times: 2, url: "https://genderize.io/" },
|
{ id: "US.DO-01", provider: "🇺🇸 DigitalOcean", times: 2, url: "https://genderize.io/" },
|
||||||
{ id: "DE.HE-01", provider: "🇩🇪 Hetzner", times: 1, url: "https://j.dejure.org/jcg/doctrine/doctrine_banner.webp" },
|
{ id: "DE.HE-01", provider: "🇩🇪 Hetzner", times: 1, url: "https://j.dejure.org/jcg/doctrine/doctrine_banner.webp" },
|
||||||
{ id: "DE.HE-02", provider: "🇩🇪 Hetzner", times: 1, url: "https://maps.gnosis.earth/ogcapi/api/swagger-ui/swagger-ui-standalone-preset.js#" },
|
{ id: "DE.HE-02", provider: "🇩🇪 Hetzner", times: 1, url: "https://accesorioscelular.com/tienda/css/plugins.css" },
|
||||||
{ id: "FI.HE-01", provider: "🇫🇮 Hetzner", times: 1, url: "https://251b5cd9.nip.io/1MB.bin" },
|
{ id: "FI.HE-01", provider: "🇫🇮 Hetzner", times: 1, url: "https://251b5cd9.nip.io/1MB.bin" },
|
||||||
{ id: "FI.HE-02", provider: "🇫🇮 Hetzner", times: 1, url: "https://nioges.com/libs/fontawesome/webfonts/fa-solid-900.woff2" },
|
{ id: "FI.HE-02", provider: "🇫🇮 Hetzner", times: 1, url: "https://nioges.com/libs/fontawesome/webfonts/fa-solid-900.woff2" },
|
||||||
{ id: "FI.HE-03", provider: "🇫🇮 Hetzner", times: 1, url: "https://5fd8bdae.nip.io/1MB.bin" },
|
{ id: "FI.HE-03", provider: "🇫🇮 Hetzner", times: 1, url: "https://5fd8bdae.nip.io/1MB.bin" },
|
||||||
@@ -88,11 +88,11 @@ TEST_SUITE='
|
|||||||
{ id: "US.AWS-01", provider: "🇺🇸 AWS", times: 1, url: "https://corp.kaltura.com/wp-content/cache/min/1/wp-content/themes/airfleet/dist/styles/theme.css" },
|
{ id: "US.AWS-01", provider: "🇺🇸 AWS", times: 1, url: "https://corp.kaltura.com/wp-content/cache/min/1/wp-content/themes/airfleet/dist/styles/theme.css" },
|
||||||
{ id: "US.GC-01", provider: "🇺🇸 Google Cloud", times: 1, url: "https://api.usercentrics.eu/gvl/v3/en.json" },
|
{ id: "US.GC-01", provider: "🇺🇸 Google Cloud", times: 1, url: "https://api.usercentrics.eu/gvl/v3/en.json" },
|
||||||
{ id: "US.FST-01", provider: "🇺🇸 Fastly", times: 1, url: "https://www.jetblue.com/footer/footer-element-es2015.js" },
|
{ id: "US.FST-01", provider: "🇺🇸 Fastly", times: 1, url: "https://www.jetblue.com/footer/footer-element-es2015.js" },
|
||||||
{ id: "CA.FST-01", provider: "🇨🇦 Fastly", times: 1, url: "https://www.cnn10.com/" },
|
{ id: "CA.FST-01", provider: "🇨🇦 Fastly", times: 1, url: "https://ssl.p.jwpcdn.com/player/v/8.40.5/bidding.js" },
|
||||||
{ id: "US.AKM-01", provider: "🇺🇸 Akamai", times: 1, url: "https://www.roxio.com/static/roxio/images/products/creator/nxt9/call-action-footer-bg.jpg" },
|
{ id: "US.AKM-01", provider: "🇺🇸 Akamai", times: 1, url: "https://www.roxio.com/static/roxio/images/products/creator/nxt9/call-action-footer-bg.jpg" },
|
||||||
{ id: "PL.AKM-01", provider: "🇵🇱 Akamai", times: 1, url: "https://media-assets.stryker.com/is/image/stryker/gateway_1?$max_width_1410$" },
|
{ id: "PL.AKM-01", provider: "🇵🇱 Akamai", times: 1, url: "https://media-assets.stryker.com/is/image/stryker/gateway_1?$max_width_1410$" },
|
||||||
{ id: "US.CDN77-01", provider: "🇺🇸 CDN77", times: 1, url: "https://cdn.eso.org/images/banner1920/eso2520a.jpg" },
|
{ id: "US.CDN77-01", provider: "🇺🇸 CDN77", times: 1, url: "https://cdn.eso.org/images/banner1920/eso2520a.jpg" },
|
||||||
{ id: "FR.CNTB-01", provider: "🇫🇷 Contabo", times: 1, url: "https://airsea.no/images/main_logo.png" },
|
{ id: "FR.CNTB-01", provider: "🇫🇷 Contabo", times: 1, url: "https://xdmarineshop.gr/index.php?route=index" },
|
||||||
{ id: "NL.SW-01", provider: "🇳🇱 Scaleway", times: 1, url: "https://www.velivole.fr/img/header.jpg" },
|
{ id: "NL.SW-01", provider: "🇳🇱 Scaleway", times: 1, url: "https://www.velivole.fr/img/header.jpg" },
|
||||||
{ id: "US.CNST-01", provider: "🇺🇸 Constant", times: 1, url: "https://cdn.xuansiwei.com/common/lib/font-awesome/4.7.0/fontawesome-webfont.woff2?v=4.7.0" }
|
{ id: "US.CNST-01", provider: "🇺🇸 Constant", times: 1, url: "https://cdn.xuansiwei.com/common/lib/font-awesome/4.7.0/fontawesome-webfont.woff2?v=4.7.0" }
|
||||||
'
|
'
|
||||||
|
|||||||
@@ -1,15 +1,22 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (c) 2024 remittor
|
# Copyright (c) 2024 remittor
|
||||||
|
PID_FILE=/tmp/zapret-script-exec.pid
|
||||||
|
[ -f $PID_FILE ] && exit 70
|
||||||
LOG_FILE=$1
|
LOG_FILE=$1
|
||||||
RC_FILE=$1.rc
|
RC_FILE=$1.rc
|
||||||
shift 1
|
SH_FILE=$2
|
||||||
|
shift 2
|
||||||
|
[ ! -f $SH_FILE ] && exit 71
|
||||||
: > $LOG_FILE
|
: > $LOG_FILE
|
||||||
: > $RC_FILE
|
: > $RC_FILE
|
||||||
(
|
start-stop-daemon -S -b -p $PID_FILE -x /bin/sh -- -c '
|
||||||
exec </dev/null >/dev/null 2>&1
|
LOG_FILE=$1
|
||||||
"$@" >> $LOG_FILE 2>&1
|
RC_FILE=$2
|
||||||
RETCODE=$?
|
SH_FILE=$3
|
||||||
|
shift 3
|
||||||
|
sh $SH_FILE "$@" > $LOG_FILE 2>&1
|
||||||
|
RET_CODE=$?
|
||||||
sleep 1
|
sleep 1
|
||||||
echo $RETCODE > $RC_FILE
|
echo $RET_CODE > $RC_FILE
|
||||||
) &
|
' sh $LOG_FILE $RC_FILE $SH_FILE "$@"
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -89,6 +89,16 @@ fi
|
|||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function check_pkg_installed
|
||||||
|
{
|
||||||
|
local pkg_name="$1"
|
||||||
|
if [ "$PKG_MGR" = apk ]; then
|
||||||
|
apk info -e "$pkg_name" >/dev/null 2>&1;
|
||||||
|
else
|
||||||
|
opkg status "$pkg_name" 2>/dev/null | grep -q .
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function get_distrib_param
|
function get_distrib_param
|
||||||
{
|
{
|
||||||
local parname=$1
|
local parname=$1
|
||||||
@@ -475,7 +485,7 @@ if [ "$opt_update" != "" ]; then
|
|||||||
mkdir $ZAP_PKG_DIR
|
mkdir $ZAP_PKG_DIR
|
||||||
ZAP_PKG_FN="$ZAP_PKG_DIR/${ZAP_PKG_URL##*/}"
|
ZAP_PKG_FN="$ZAP_PKG_DIR/${ZAP_PKG_URL##*/}"
|
||||||
echo "Download ZIP-file..."
|
echo "Download ZIP-file..."
|
||||||
curl -s -L --max-time 15 -H "$CURL_HEADER2" "$ZAP_PKG_URL" -o "$ZAP_PKG_FN"
|
curl -s -L --retry 5 --retry-delay 1 --retry-max-time 55 --retry-all-errors --max-time 30 -H "$CURL_HEADER2" "$ZAP_PKG_URL" -o "$ZAP_PKG_FN"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "ERROR: cannot download package!"
|
echo "ERROR: cannot download package!"
|
||||||
return 215
|
return 215
|
||||||
@@ -529,11 +539,11 @@ if [ "$opt_update" != "" ]; then
|
|||||||
if [ "$opt_forced" = true ]; then
|
if [ "$opt_forced" = true ]; then
|
||||||
pkg_mgr_update
|
pkg_mgr_update
|
||||||
fi
|
fi
|
||||||
if ${PKG_CHECK} ${ZAPRET_CFG_NAME}-mdig >/dev/null 2>&1; then
|
if check_pkg_installed ${ZAPRET_CFG_NAME}-mdig; then
|
||||||
echo "Uninstall mdig..."
|
echo "Uninstall mdig..."
|
||||||
${PKG_REMOVE} ${ZAPRET_CFG_NAME}-mdig
|
${PKG_REMOVE} ${ZAPRET_CFG_NAME}-mdig
|
||||||
fi
|
fi
|
||||||
if ${PKG_CHECK} ${ZAPRET_CFG_NAME}-ip2net >/dev/null 2>&1; then
|
if check_pkg_installed ${ZAPRET_CFG_NAME}-ip2net; then
|
||||||
echo "Uninstall ip2net..."
|
echo "Uninstall ip2net..."
|
||||||
${PKG_REMOVE} ${ZAPRET_CFG_NAME}-ip2net
|
${PKG_REMOVE} ${ZAPRET_CFG_NAME}-ip2net
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user