From 218611964b791ed8c6ebfce35cd810027d40f6db Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sat, 11 May 2019 20:53:47 +0800 Subject: [PATCH 1/7] fix warning. --- root/usr/lib/lua/luci/controller/diskmanager.lua | 2 +- root/usr/lib/lua/luci/view/partition.htm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/root/usr/lib/lua/luci/controller/diskmanager.lua b/root/usr/lib/lua/luci/controller/diskmanager.lua index ad8c0ca..6d14425 100644 --- a/root/usr/lib/lua/luci/controller/diskmanager.lua +++ b/root/usr/lib/lua/luci/controller/diskmanager.lua @@ -36,7 +36,7 @@ function index() if executables_all_existed then -- entry(path, target, title, order) -- set leaf attr to true to pass argument throughe url (e.g. admin/system/disk/partition/sda) - entry({"admin", "system", "disk"}, cbi("disk"), _("Disk Management"), 55) + entry({"admin", "system", "disk"}, form("disk"), _("Disk Management"), 55) entry({"admin", "system", "disk", "partition"}, template("partition"), nil).leaf = true entry({"admin", "system", "disk", "addpartition"}, call("action_addpartition"), nil).leaf = true entry({"admin", "system", "disk", "removepartition"}, call("action_removepartition"), nil).leaf = true diff --git a/root/usr/lib/lua/luci/view/partition.htm b/root/usr/lib/lua/luci/view/partition.htm index e722086..b9bfc7c 100644 --- a/root/usr/lib/lua/luci/view/partition.htm +++ b/root/usr/lib/lua/luci/view/partition.htm @@ -251,11 +251,11 @@

<%:Partition Management%>

<% if partitions_info[i]["File system"] ~= "Free Space" then %> - disabled<% end %> <% else %> - type="button" id="cbid.table.<%=i%>.Action"<% if diskmanager.isUsed(partitions_info[i]["Name"]) then %> disabled<% end %>> + type="button" id="cbid.table.<%=i%>.Action">
<%=partitions_info[i].Number%>
From 27056db48f876c69da4082883dab9569315b3e24 Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sun, 26 May 2019 18:10:05 +0800 Subject: [PATCH 2/7] update to official lua. --- root/usr/bin/lua | Bin 12299 -> 12299 bytes root/usr/bin/luac | Bin 12323 -> 12323 bytes root/usr/lib/liblua.so.5.1.5 | Bin 155651 -> 155651 bytes root/usr/lib/opkg/info/liblua5.1.5.control | 6 +++--- root/usr/lib/opkg/info/lua.control | 6 +++--- root/usr/lib/opkg/info/luac.control | 6 +++--- root/usr/lib/opkg/status | 19 +++++++++---------- 7 files changed, 18 insertions(+), 19 deletions(-) diff --git a/root/usr/bin/lua b/root/usr/bin/lua index d83f1bdc3eb22770ccb1ae693f5552d2835a9d11..384a7e66cce799d8d6e5b6106f78b68923bce5c8 100755 GIT binary patch delta 22 dcmeB9=uX%mFTohJSwTX9o5|Q{vy<{k9sp3!273Si delta 22 dcmeB9=uX%mFTr?evx0;IH@0LX%6xfvxLiYqzw!%OzzEZo{ENCUk76meKtHD`u>9 zL(htIu(IXt<7SD&g%MR2PPS2(z0QuBi37%UgE;e4cxr z@AG|Lp7(AdHId4cY!#VUPvzUIpViTs$-xzum(vg=>@Ph-+F9;7Vqm#ImSOw?kJq%b zs z{JL&hggR-TE!}0HE)yAmLsE0L$+%eF~ z=0sOsC$VzxrKE8b6?;R34XxEINBQ>u^#cn@BSiF_DIr!ir^&lp+5F<7=l;7>U;QPL zd@Tnz)(_Ja@P;Eny>QyGK`um@hVE5VRPE$@JXMCAkFrA#7Ef65)9|n3B+X2I_(&&h zC`H*Zv^;PvY0Qb9yg5oIq}3AMjKV)omFD0vmuJ_A!iI1&@tk?4U|HzfbJm=13gxuI zUL|BdNhyp-N3wU(kYXKc1u{piz6ADZ*hl*I+%tWw0iQzF^`y)E!*I;I>Jh5Z{>ec*uqjgqp<2yTv6DarTCs=t<2J|gjsiZ zjTJtnvQsDlr>E!jZ&dTnGjdU7|B1wqB|ZDoGO{1fR4A*I;jBV+l(H|<4KM!f_#|uf z-%=S7W92(|ld0)=RKWh8OYvx;qOu@vqW9N$^nx&yeeFU#8bdFu=Pb;6B6K$h-VQsV zEZ4!m$0m5z8?oP_Y;e1F&WqE$A{@lb^8y=ug=Z!p?`;%j1o*?deR)b{iT7bs{XYC8 zv-J_XhGuwgIHW*QFkRnFOR!MiEX+}8^!bE8DI|Si6L0!9;`~ux#D%wFw&YG|=cq_l zTdiX-?Q53$DKi&+U370stEn!WZsu&`)Ht_s?&R#|OmX&d_Hn*dBP=#P zargtC`-pRtvxW0x&MfEWoa3BdbNC)QIt2r2#5u-wf;bTDYFNDLtj}HE_Wt=i_q^Zd z`#e1F-KoT>L@HlZl!^HiKmB>Sf@-rzH-5E&st~j6ebm>^GLI7-k8`8}<0p9B)Xvg` z7qL)0;!A#FN_@HK#J_7zNV>Afa zE&Hhk71E)q;VvC@slYKfF11*aU3!v`bG+h;6tKP7rO#nz1ZR-v$ePz3Y3iwoAk#!! zHc29d0}F9|6cv3w!cNqvrlTzFT0cLs64!ks`E){v6pU{2aFE?zU3J`j{mPkNMUpM& z;O5pbdM_Nb#;6-Uu{Oy05L3~;go=`de2!D4$n_9A{@?0JGkyVRk%4 zx6ty)wYaW{j;zrtNl4HXR<^^RwF;es2W*Z#XT$6SZYG*BW~wg;{k<2A{)SLahuKSn z945&yBhtv^9WW z-%|`Tk&s%m{P!^HnK9Z%3h4^M@@Q}7iNaRa;%bGJ)?%l^ifi#s#ax-Ge;97q{k7}e z2bA@xpxV*XttrOcr{to-{t}5UOUcPE?jeV9wp?M5GVGZvEl~E+koTG2tnW{nmc9rh zVx&;S8%LCP{6{1Z$-%o(uw1a`Drz34<^ zXB!M+CW)CBdFCgWaqbYRMflFyy&;XWUIxGG5Pb~Za|J9zXogpXGvr7H=3UKn36@>W z-de%TPj5W7tP%3;sxZ8~_?p9N>LdXoZoh!&b8p9?-f;(PT%S3qUZf(~Z0f#+d3Uq) zA!WwG7e#wxVw0+m0`)Xi;V))N&OxiEBgiFRdWluTeQScfQM(&&9l^UYRs8%_sP}ZPJ2}Q5@kP>FDSR4l3g>Ms!l2e_{ZZH5cPF3ZGmXr5IqRz>mI}({#M;>DzpaS zx_4Y07&tKda{VBk{n7XFCP?j&_SMKLwj*R4r;F3i*~r<#8RqQbe3Ek?XD{a~;A(1n z<8A&n&Y9v&b53zibIx#fa-QbQa-Qe>jPnxbH=OgFSIcyh?|I@E&PC2!@O9H(T#kHy PN!WZ}eR&6!JEQ*t3v!QV diff --git a/root/usr/lib/liblua.so.5.1.5 b/root/usr/lib/liblua.so.5.1.5 index 9a40bd0a5454e0ef8f46be0a6eac0250fc22c142..f406cc991a8860a7adf5fe97a6d36e4f4d1b18ae 100644 GIT binary patch delta 52289 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 delta 52155 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 diff --git a/root/usr/lib/opkg/info/liblua5.1.5.control b/root/usr/lib/opkg/info/liblua5.1.5.control index eb25c86..b9b6517 100644 --- a/root/usr/lib/opkg/info/liblua5.1.5.control +++ b/root/usr/lib/opkg/info/liblua5.1.5.control @@ -1,15 +1,15 @@ Package: liblua5.1.5 -Version: 5.1.5-2 +Version: 5.1.5-3 Depends: libc Provides: liblua -Source: /root/home/src/openwrt/package/utils/lua +Source: feeds/base/package/utils/lua SourceName: liblua License: MIT LicenseFiles: COPYRIGHT Section: libs Maintainer: Jo-Philipp Wich Architecture: aarch64_cortex-a53 -Installed-Size: 66416 +Installed-Size: 66465 Description: Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free software. diff --git a/root/usr/lib/opkg/info/lua.control b/root/usr/lib/opkg/info/lua.control index d74a1fa..707debf 100644 --- a/root/usr/lib/opkg/info/lua.control +++ b/root/usr/lib/opkg/info/lua.control @@ -1,14 +1,14 @@ Package: lua -Version: 5.1.5-2 +Version: 5.1.5-3 Depends: libc, liblua5.1.5 -Source: /root/home/src/openwrt/package/utils/lua +Source: feeds/base/package/utils/lua SourceName: lua License: MIT LicenseFiles: COPYRIGHT Section: lang Maintainer: Jo-Philipp Wich Architecture: aarch64_cortex-a53 -Installed-Size: 4467 +Installed-Size: 4464 Description: Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free software. diff --git a/root/usr/lib/opkg/info/luac.control b/root/usr/lib/opkg/info/luac.control index cdc394f..33b55c9 100644 --- a/root/usr/lib/opkg/info/luac.control +++ b/root/usr/lib/opkg/info/luac.control @@ -1,14 +1,14 @@ Package: luac -Version: 5.1.5-2 +Version: 5.1.5-3 Depends: libc, liblua5.1.5 -Source: /root/home/src/openwrt/package/utils/lua +Source: feeds/base/package/utils/lua SourceName: luac License: MIT LicenseFiles: COPYRIGHT Section: lang Maintainer: Jo-Philipp Wich Architecture: aarch64_cortex-a53 -Installed-Size: 5186 +Installed-Size: 5169 Description: Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free software. diff --git a/root/usr/lib/opkg/status b/root/usr/lib/opkg/status index 57f1aff..0827179 100644 --- a/root/usr/lib/opkg/status +++ b/root/usr/lib/opkg/status @@ -686,11 +686,11 @@ Architecture: aarch64_cortex-a53 Installed-Time: 1553274868 Package: lua -Version: 5.1.5-2 +Version: 5.1.5-3 Depends: libc, liblua5.1.5 -Status: install hold installed +Status: install user installed Architecture: aarch64_cortex-a53 -Installed-Time: 1557505299 +Installed-Time: 1558864541 Package: libwebsockets-openssl Version: 3.1.0-1 @@ -1177,11 +1177,11 @@ Conffiles: Installed-Time: 1553966642 Package: luac -Version: 5.1.5-2 +Version: 5.1.5-3 Depends: libc, liblua5.1.5 -Status: install hold installed +Status: install user installed Architecture: aarch64_cortex-a53 -Installed-Time: 1557505299 +Installed-Time: 1558864641 Package: usign Version: 2015-07-04-ef641914-1 @@ -1206,13 +1206,12 @@ Architecture: all Installed-Time: 1553966307 Package: liblua5.1.5 -Version: 5.1.5-2 +Version: 5.1.5-3 Depends: libc Provides: liblua -Status: install hold installed +Status: install user installed Architecture: aarch64_cortex-a53 -Installed-Time: 1557505299 -Auto-Installed: yes +Installed-Time: 1558864616 Package: zlib Version: 1.2.11-2 From d55ba97d71933acf034bf32332682909a069d168 Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sun, 26 May 2019 18:20:28 +0800 Subject: [PATCH 3/7] keep samba4-hotplug --- root/usr/lib/opkg/status | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/usr/lib/opkg/status b/root/usr/lib/opkg/status index 0827179..4322a3a 100644 --- a/root/usr/lib/opkg/status +++ b/root/usr/lib/opkg/status @@ -1625,7 +1625,7 @@ Package: samba4-hotplug Version: 1-1 Depends: libc, librt, libpthread, samba4-server Status: install user installed -Architecture: rtd1295 +Architecture: all Installed-Time: 1548323670 Package: kmod-l2tp From d0201b524a4fb0136409943116aa4afa0376c553 Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sun, 26 May 2019 20:10:22 +0800 Subject: [PATCH 4/7] add some scripts. --- ch-mount.sh | 52 +++++++ fix_opkg_status.sh | 3 + hold_opkg_status | 371 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 426 insertions(+) create mode 100755 ch-mount.sh create mode 100755 fix_opkg_status.sh create mode 100644 hold_opkg_status diff --git a/ch-mount.sh b/ch-mount.sh new file mode 100755 index 0000000..27c04b7 --- /dev/null +++ b/ch-mount.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +SUDO='' + +function mnt() { + echo "MOUNTING" + ${SUDO} mount -t proc /proc ${2}proc + ${SUDO} mount -t sysfs /sys ${2}sys + ${SUDO} mount -o bind /dev ${2}dev + ${SUDO} mount -o bind /dev/pts ${2}dev/pts + ${SUDO} mount -t tmpfs tmpfs ${2}tmp + ${SUDO} mount -t tmpfs tmpfs ${2}mnt + + ${SUDO} mkdir ${2}tmp/lock ${2}tmp/bin + ${SUDO} cp /etc/resolv.conf ${2}tmp/resolv.conf + ${SUDO} cp -a /usr/bin/qemu-aarch64-static ${2}tmp/bin/ + #export PATH=$PATH:${2}tmp/bin + ${SUDO} mount -t binfmt_misc binfmt_misc ${2}proc/sys/fs/binfmt_misc + ${SUDO} sh -c "echo '-1' > ${2}proc/sys/fs/binfmt_misc/qemu-aarch64" + ${SUDO} sh -c "echo ':qemu-aarch64:M:0:\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/tmp/bin/qemu-aarch64-static:' > ${2}proc/sys/fs/binfmt_misc/register" + ${SUDO} chroot ${2} +} + +function umnt() { + echo "UNMOUNTING" + ${SUDO} umount ${2}proc/sys/fs/binfmt_misc + ${SUDO} umount ${2}tmp + ${SUDO} umount ${2}mnt + ${SUDO} umount ${2}proc + ${SUDO} umount ${2}sys + ${SUDO} umount ${2}dev/pts + ${SUDO} umount ${2}dev +} +if [ "$1" == "-m" ] && [ -n "$2" ] ; +then + mnt $1 $2 +elif [ "$1" == "-u" ] && [ -n "$2" ]; +then + umnt $1 $2 +else + echo "" + echo "Either 1'st, 2'nd or both parameters were missing" + echo "" + echo "1'st parameter can be one of these: -m(mount) OR -u(umount)" + echo "2'nd parameter is the full path of rootfs directory(with trailing '/')" + echo "" + echo "For example: ch-mount -m /media/sdcard/" + echo "" + echo 1st parameter : ${1} + echo 2nd parameter : ${2} +fi + diff --git a/fix_opkg_status.sh b/fix_opkg_status.sh new file mode 100755 index 0000000..871482a --- /dev/null +++ b/fix_opkg_status.sh @@ -0,0 +1,3 @@ +cat root/usr/lib/opkg/status > /tmp/_tmp_opkg_status || exit +(cat /tmp/_tmp_opkg_status |tr "\n" "#" |sed 's/##/\$/g' |tr "$" "\n" |grep -v "^Package: kmod-" |grep "^Package:" |tr "\n" "$" |sed 's/\$/##/g' |tr -d "\n" |tr "#" "\n" && cat hold_opkg_status ) > root/usr/lib/opkg/status +rm -f /tmp/_tmp_opkg_status \ No newline at end of file diff --git a/hold_opkg_status b/hold_opkg_status new file mode 100644 index 0000000..f5d3fbc --- /dev/null +++ b/hold_opkg_status @@ -0,0 +1,371 @@ +Package: kmod-l2tp +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ipv6, kmod-udptunnel4, kmod-udptunnel6 +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-rtl8168 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-mii +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-crypto-manager +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-aead, kmod-crypto-hash, kmod-crypto-pcompress, kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 +Auto-Installed: yes + +Package: kmod-crypto-pcompress +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 +Auto-Installed: yes + +Package: kmod-crypto-hash +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 +Auto-Installed: yes + +Package: kmod-crypto-aead +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-ufsd +Version: 4.1.7-rtd1295-2 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), libc +Status: install user installed +Architecture: rtd1295 +Installed-Time: 1548323668 + +Package: kmod-md-multipath +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-md-mod +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-lib-crc-ccitt +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-fs-nfsd +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-fs-nfs-common, kmod-fs-exportfs +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-md-mod +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-gre +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ipv6, kmod-iptunnel +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-md-raid10 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-md-mod +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-pppoe +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ppp, kmod-pppox +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-pppox +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ppp +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-crypto-crc32c +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-hash, kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-lib-xor +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-mii +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-dm +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-manager +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-lib-crc32c +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-crc32c +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-iptunnel +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-pptp +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ppp, kmod-gre, kmod-pppox +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-md-linear +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-md-mod +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-udptunnel4 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-udptunnel6 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-md-raid456 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-md-mod, kmod-lib-raid6, kmod-lib-xor +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-cryptodev +Version: 4.1.7+1.9.git-2017-05-29-rtd1295-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-authenc, kmod-crypto-hash +Status: install user installed +Architecture: rtd1295 +Installed-Time: 1548323678 + +Package: kmod-crypto-aes +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-crypto-core +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 +Auto-Installed: yes + +Package: kmod-crypto-authenc +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-manager, kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-lib-raid6 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-ata-ahci +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ata-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-dnsresolver +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-rtksdmmc +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-crypto-ecb +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-manager, kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-ipv6 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-ata-core +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-scsi-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 +Auto-Installed: yes + +Package: kmod-ppp +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-lib-crc-ccitt, kmod-slhc +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + +Package: kmod-fs-nfs +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-fs-nfs-common, kmod-dnsresolver +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-md-raid0 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-md-mod +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-md-raid1 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-md-mod +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-fs-exportfs +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-lib-lzo +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-lib-zlib +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-fs-nfs-common +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-mppe +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ppp, kmod-crypto-core, kmod-crypto-arc4, kmod-crypto-sha1, kmod-crypto-ecb +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-crypto-arc4 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-crypto-sha1 +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-crypto-hash, kmod-crypto-core +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 + +Package: kmod-pppol2tp +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-ppp, kmod-pppox, kmod-l2tp +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 + +Package: kmod-scsi-core +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2) +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323666 +Auto-Installed: yes + +Package: kmod-slhc +Version: 4.1.7-1 +Depends: kernel (= 4.1.7-1-e6b7dd72522ec3c2353db6b443ccc6d2), kmod-lib-crc-ccitt +Status: install hold installed +Architecture: rtd1295 +Installed-Time: 1548323667 +Auto-Installed: yes + From 34bb57ca319dd1e857ac3ccc8eb469085d9a066d Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sun, 26 May 2019 20:13:56 +0800 Subject: [PATCH 5/7] improve script. --- ch-mount.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ch-mount.sh b/ch-mount.sh index 27c04b7..3f022e6 100755 --- a/ch-mount.sh +++ b/ch-mount.sh @@ -4,18 +4,19 @@ SUDO='' function mnt() { echo "MOUNTING" - ${SUDO} mount -t proc /proc ${2}proc + ${SUDO} mount -t proc /proc ${2}proc || exit ${SUDO} mount -t sysfs /sys ${2}sys ${SUDO} mount -o bind /dev ${2}dev ${SUDO} mount -o bind /dev/pts ${2}dev/pts ${SUDO} mount -t tmpfs tmpfs ${2}tmp ${SUDO} mount -t tmpfs tmpfs ${2}mnt + ${SUDO} mount -t tmpfs tmpfs ${2}root ${SUDO} mkdir ${2}tmp/lock ${2}tmp/bin ${SUDO} cp /etc/resolv.conf ${2}tmp/resolv.conf ${SUDO} cp -a /usr/bin/qemu-aarch64-static ${2}tmp/bin/ #export PATH=$PATH:${2}tmp/bin - ${SUDO} mount -t binfmt_misc binfmt_misc ${2}proc/sys/fs/binfmt_misc + ${SUDO} mount -t binfmt_misc binfmt_misc ${2}proc/sys/fs/binfmt_misc || exit ${SUDO} sh -c "echo '-1' > ${2}proc/sys/fs/binfmt_misc/qemu-aarch64" ${SUDO} sh -c "echo ':qemu-aarch64:M:0:\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/tmp/bin/qemu-aarch64-static:' > ${2}proc/sys/fs/binfmt_misc/register" ${SUDO} chroot ${2} From 6eb99b4cdaa2a08bbcf3b49d1318f27111df5f09 Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sun, 26 May 2019 20:16:40 +0800 Subject: [PATCH 6/7] fix script. --- ch-mount.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ch-mount.sh b/ch-mount.sh index 3f022e6..2b18ef7 100755 --- a/ch-mount.sh +++ b/ch-mount.sh @@ -24,6 +24,7 @@ function mnt() { function umnt() { echo "UNMOUNTING" + ${SUDO} umount ${2}root ${SUDO} umount ${2}proc/sys/fs/binfmt_misc ${SUDO} umount ${2}tmp ${SUDO} umount ${2}mnt From 9e54a4f25f9f689e0ace9de6c9c496dc54b08921 Mon Sep 17 00:00:00 2001 From: jjm2473 <1129525450@qq.com> Date: Sun, 16 Jun 2019 22:31:18 +0800 Subject: [PATCH 7/7] luci-app-vsftpd: fix user list. --- root/usr/lib/lua/luci/model/cbi/aria2.lua | 2 +- root/usr/lib/lua/luci/model/cbi/vsftpd.lua | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/root/usr/lib/lua/luci/model/cbi/aria2.lua b/root/usr/lib/lua/luci/model/cbi/aria2.lua index 9e9df9a..d36610b 100644 --- a/root/usr/lib/lua/luci/model/cbi/aria2.lua +++ b/root/usr/lib/lua/luci/model/cbi/aria2.lua @@ -135,7 +135,7 @@ o = s:taboption("task", Value, "max_concurrent_downloads", translate("Max concur o.placeholder = "5" o = s:taboption("task", Value, "max_connection_per_server", translate("Max connection per server"), "1-16") -o.datetype = "range(1, 16)" +o.datatype = "range(1, 16)" o.placeholder = "1" o = s:taboption("task", Value, "min_split_size", translate("Min split size"), "1M-1024M") diff --git a/root/usr/lib/lua/luci/model/cbi/vsftpd.lua b/root/usr/lib/lua/luci/model/cbi/vsftpd.lua index 47c6289..f8bbf1c 100644 --- a/root/usr/lib/lua/luci/model/cbi/vsftpd.lua +++ b/root/usr/lib/lua/luci/model/cbi/vsftpd.lua @@ -163,6 +163,7 @@ anon_max_rate.rmempty=true anon_max_rate:depends("anonymous_enable",1) chown_username=s:taboption("anonymous",ListValue,"chown_username",translate("Chown User")) chown_username:depends("anonymous_enable",1) +local list_user for _, list_user in luci.util.vspairs(luci.util.split(luci.sys.exec("cat /etc/passwd | cut -f 1 -d:"))) do chown_username:value(list_user) end @@ -174,8 +175,14 @@ local_userlist_type=s:taboption("userlist",ListValue,"userlist_type",translate(" local_userlist_type:value("allow","allow") local_userlist_type:value("deny","deny") list=s:taboption("userlist",DynamicList,"userlist",translate("User")) +list.datatype = "string" for _, list_user in luci.util.vspairs(luci.util.split(luci.sys.exec("cat /etc/passwd | cut -f 1 -d:"))) do - list:value(list_user) + repeat + if list_user == "" then + break + end + list:value(list_user) + until true end tmpl=s:taboption("template",Value,"_tmpl","",translate("Here,you can edit the template of config file"))