mirror of https://git.openwrt.org/project/luci.git
luci-app-package-manager: rename from luci-app-opkg and add APK support
Rename luci-app-opkg to luci-app-package-manager and add APK support to it. The idea is to adapt APK to mimic OPKG output to require minimal changes to the luci app. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
parent
591911d172
commit
bcd13b918e
|
@ -1,387 +0,0 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1095
|
||||
msgid "%s used (%1024mB used of %1024mB, %1024mB free)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1135
|
||||
msgid ""
|
||||
"<strong>Warning!</strong> Package operations can <a %s>break your system</a>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1163
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:792
|
||||
msgid "Allow overwriting conflicting package files"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:953
|
||||
msgid "Automatically remove unused dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1218
|
||||
msgid "Available"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:878
|
||||
msgid ""
|
||||
"Below is a listing of the various configuration files used by <em>opkg</em>. "
|
||||
"Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
|
||||
"custom repository entries. The configuration in the other files may be "
|
||||
"changed but is usually not preserved by <em>sysupgrade</em>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:800
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:846
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:893
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:959
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1056
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1150
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1167
|
||||
msgid "Configure opkg…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:744
|
||||
msgid "Dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:750
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:938
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1236
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:755
|
||||
msgid "Details for package <em>%h</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1142
|
||||
msgid "Disk space"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1030
|
||||
msgid "Dismiss"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1172
|
||||
msgid "Display LuCI translation packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1189
|
||||
msgid "Display all available translation packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1175
|
||||
msgid ""
|
||||
"Display base translation packages and translation packages for already "
|
||||
"installed languages only"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:354
|
||||
msgid "Displaying %d-%d of %d"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1155
|
||||
msgid "Download and install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1008
|
||||
msgid "Errors"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:982
|
||||
msgid "Executing package manager"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1147
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/root/usr/share/rpcd/acl.d/luci-app-opkg.json:3
|
||||
msgid "Grant access to opkg management"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1202
|
||||
msgid "Hide all translation packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:808
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:824
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1066
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1133
|
||||
msgid "Install additional software and upgrade existing packages with opkg."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:780
|
||||
msgid "Install suggested translation packages as well"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:299
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:522
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1219
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:830
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1043
|
||||
msgid ""
|
||||
"Installing packages from untrusted sources is a potential security risk! "
|
||||
"Really attempt to install <em>%h</em>?"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:288
|
||||
msgid "Install…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:857
|
||||
msgid "Loading configuration data…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1084
|
||||
msgid "Loading package information…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1046
|
||||
msgid "MD5"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:840
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1042
|
||||
msgid "Manually install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:510
|
||||
msgid "Needs upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1227
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1245
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:368
|
||||
msgid "No information available"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:355
|
||||
msgid "No packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:372
|
||||
msgid "No packages matching \"<strong>%h</strong>\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:542
|
||||
msgid "Not available"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:527
|
||||
msgid "Not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1158
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:856
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:904
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:918
|
||||
msgid "OPKG Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1233
|
||||
msgid "Package name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1157
|
||||
msgid "Package name or URL…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1225
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1243
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:837
|
||||
msgid "Really attempt to install <em>%h</em>?"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:967
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:943
|
||||
msgid "Remove package <em>%h</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:276
|
||||
msgid "Remove…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:737
|
||||
msgid "Require approx. %1024mB size for %d package(s) to install."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:517
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:535
|
||||
msgid "Require version %h %h, installed %h"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:540
|
||||
msgid ""
|
||||
"Required dependency package <em>%h</em> is not available in any repository."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:508
|
||||
msgid "Requires update to %h %h"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:373
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1047
|
||||
msgid "SHA256"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:915
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:905
|
||||
msgid "Saving configuration data…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:758
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:946
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1045
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1235
|
||||
msgid "Size (.ipk)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1130
|
||||
#: applications/luci-app-opkg/root/usr/share/luci/menu.d/luci-app-opkg.json:3
|
||||
msgid "Software"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:761
|
||||
msgid "Suggested translations"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:740
|
||||
msgid "Suggested translations require approx. %1024mB additional space."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1013
|
||||
msgid "The <em>opkg %h</em> command failed with code <code>%d</code>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:513
|
||||
msgid ""
|
||||
"The installed version of package <em>%h</em> is not compatible, require %s "
|
||||
"while %s is installed."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:833
|
||||
msgid "The package <em>%h</em> is not available in any configured repository."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:530
|
||||
msgid ""
|
||||
"The repository version of package <em>%h</em> is not compatible, require %s "
|
||||
"but only %s is available."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1149
|
||||
msgid "Type to filter…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1032
|
||||
msgid "Unable to execute <em>opkg %s</em> command: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:871
|
||||
msgid "Unable to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:910
|
||||
msgid "Unable to save %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1165
|
||||
msgid "Update lists…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1220
|
||||
msgid "Updates"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:265
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:294
|
||||
msgid "Upgrade…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1166
|
||||
msgid "Upload Package…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:757
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:945
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1234
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:519
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:537
|
||||
msgid "Version incompatible"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:984
|
||||
msgid "Waiting for the <em>opkg %h</em> command to complete…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1198
|
||||
msgctxt "Display translation packages"
|
||||
msgid "all"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1185
|
||||
msgctxt "Display translation packages"
|
||||
msgid "filtered"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1211
|
||||
msgctxt "Display translation packages"
|
||||
msgid "none"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:673
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:934
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:1143
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:671
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:932
|
||||
msgid "~%1024mB compressed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:669
|
||||
#: applications/luci-app-opkg/htdocs/luci-static/resources/view/opkg.js:930
|
||||
msgid "~%1024mB installed"
|
||||
msgstr ""
|
|
@ -1,59 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
action=$1
|
||||
shift
|
||||
|
||||
case "$action" in
|
||||
list-installed)
|
||||
cat /usr/lib/opkg/status
|
||||
;;
|
||||
list-available)
|
||||
lists_dir=$(sed -rne 's#^lists_dir \S+ (\S+)#\1#p' /etc/opkg.conf /etc/opkg/*.conf 2>/dev/null | tail -n 1)
|
||||
find "${lists_dir:-/usr/lib/opkg/lists}" -type f '!' -name '*.sig' | xargs -r gzip -cd
|
||||
;;
|
||||
install|update|remove)
|
||||
(
|
||||
opkg="opkg"
|
||||
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
--autoremove|--force-overwrite|--force-removal-of-dependent-packages)
|
||||
opkg="$opkg $1"
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if flock -x 200; then
|
||||
$opkg $action "$@" </dev/null >/tmp/opkg.out 2>/tmp/opkg.err
|
||||
code=$?
|
||||
stdout=$(cat /tmp/opkg.out)
|
||||
stderr=$(cat /tmp/opkg.err)
|
||||
else
|
||||
code=255
|
||||
stderr="Failed to acquire lock"
|
||||
fi
|
||||
|
||||
json_init
|
||||
json_add_int code $code
|
||||
[ -n "$stdout" ] && json_add_string stdout "$stdout"
|
||||
[ -n "$stderr" ] && json_add_string stderr "$stderr"
|
||||
json_dump
|
||||
) 200>/tmp/opkg.lock
|
||||
|
||||
rm -f /tmp/opkg.lock /tmp/opkg.err /tmp/opkg.out
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {list-installed|list-available}" >&2
|
||||
echo " $0 {install|upgrade|remove} pkg[ pkg...]" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"admin/system/opkg": {
|
||||
"title": "Software",
|
||||
"order": 30,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "opkg"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-opkg" ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"luci-app-opkg": {
|
||||
"description": "Grant access to opkg management",
|
||||
"read": {
|
||||
"cgi-io": [ "exec" ],
|
||||
"file": {
|
||||
"/usr/libexec/opkg-list installed": [ "exec" ],
|
||||
"/usr/libexec/opkg-list available": [ "exec" ],
|
||||
"/usr/libexec/opkg-call list-installed": [ "exec" ],
|
||||
"/usr/libexec/opkg-call list-available": [ "exec" ],
|
||||
"/etc/opkg.conf": [ "read" ],
|
||||
"/etc/opkg/*.conf": [ "read" ]
|
||||
},
|
||||
"ubus": {
|
||||
"luci": [ "getMountPoints" ]
|
||||
}
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/usr/libexec/opkg-call install": [ "exec" ],
|
||||
"/usr/libexec/opkg-call install *": [ "exec" ],
|
||||
"/usr/libexec/opkg-call remove *": [ "exec" ],
|
||||
"/usr/libexec/opkg-call update": [ "exec" ],
|
||||
"/etc/opkg.conf": [ "write" ],
|
||||
"/etc/opkg/*.conf": [ "write" ],
|
||||
"/tmp/upload.ipk": [ "write" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
LUCI_TITLE:=OPKG package management application
|
||||
LUCI_DEPENDS:=+luci-base +opkg
|
||||
LUCI_TITLE:=Package management application
|
||||
LUCI_DEPENDS:=+luci-base
|
||||
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
|
|
@ -803,7 +803,7 @@ function handleInstall(ev)
|
|||
'data-command': 'install',
|
||||
'data-package': name,
|
||||
'class': 'btn cbi-button-action',
|
||||
'click': handleOpkg,
|
||||
'click': handlePkg,
|
||||
'disabled': isReadonlyView
|
||||
}, _('Install'))
|
||||
])
|
||||
|
@ -819,7 +819,7 @@ function handleManualInstall(ev)
|
|||
'data-package': name_or_url,
|
||||
'click': function(ev) {
|
||||
document.querySelector('input[name="install"]').value = '';
|
||||
handleOpkg(ev);
|
||||
handlePkg(ev);
|
||||
}
|
||||
}, _('Install')), warning;
|
||||
|
||||
|
@ -852,17 +852,28 @@ function handleManualInstall(ev)
|
|||
function handleConfig(ev)
|
||||
{
|
||||
var conf = {};
|
||||
var base_dir = L.hasSystemFeature('apk') ? '/etc/apk' : '/etc/opkg';
|
||||
|
||||
ui.showModal(_('OPKG Configuration'), [
|
||||
ui.showModal(_('%s Configuration').format(L.hasSystemFeature('apk') ? 'APK' : 'OPKG'), [
|
||||
E('p', { 'class': 'spinning' }, _('Loading configuration data…'))
|
||||
]);
|
||||
|
||||
fs.list('/etc/opkg').then(function(partials) {
|
||||
var files = [ '/etc/opkg.conf' ];
|
||||
fs.list(base_dir).then(function(partials) {
|
||||
var files = [];
|
||||
|
||||
for (var i = 0; i < partials.length; i++)
|
||||
if (partials[i].type == 'file' && partials[i].name.match(/\.conf$/))
|
||||
files.push('/etc/opkg/' + partials[i].name);
|
||||
if (!L.hasSystemFeature('apk'))
|
||||
files.push(base_dir + '.conf')
|
||||
|
||||
for (var i = 0; i < partials.length; i++) {
|
||||
if (partials[i].type == 'file') {
|
||||
if (L.hasSystemFeature('apk')) {
|
||||
if (partials[i].name == 'repositories')
|
||||
files.push(base_dir + '/' + partials[i].name);
|
||||
} else if (partials[i].name.match(/\.conf$/)) {
|
||||
files.push(base_dir + '/' + partials[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Promise.all(files.map(function(file) {
|
||||
return fs.read(file)
|
||||
|
@ -874,8 +885,10 @@ function handleConfig(ev)
|
|||
});
|
||||
}));
|
||||
}).then(function() {
|
||||
var opkg_text = _('Below is a listing of the various configuration files used by <em>opkg</em>. Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for custom repository entries. The configuration in the other files may be changed but is usually not preserved by <em>sysupgrade</em>.')
|
||||
var apk_text = _('Below is a listing of the various configuration files used by <em>apk</em>. The configuration in the other files may be changed but is usually not preserved by <em>sysupgrade</em>.')
|
||||
var body = [
|
||||
E('p', {}, _('Below is a listing of the various configuration files used by <em>opkg</em>. Use <em>opkg.conf</em> for global settings and <em>customfeeds.conf</em> for custom repository entries. The configuration in the other files may be changed but is usually not preserved by <em>sysupgrade</em>.'))
|
||||
E('p', {}, L.hasSystemFeature('apk') ? apk_text : opkg_text)
|
||||
];
|
||||
|
||||
Object.keys(conf).sort().forEach(function(file) {
|
||||
|
@ -901,7 +914,7 @@ function handleConfig(ev)
|
|||
data[textarea.getAttribute('name')] = textarea.value
|
||||
});
|
||||
|
||||
ui.showModal(_('OPKG Configuration'), [
|
||||
ui.showModal(_('%s Configuration').format(L.hasSystemFeature('apk') ? 'APK' : 'OPKG'), [
|
||||
E('p', { 'class': 'spinning' }, _('Saving configuration data…'))
|
||||
]);
|
||||
|
||||
|
@ -915,7 +928,7 @@ function handleConfig(ev)
|
|||
}, _('Save')),
|
||||
]));
|
||||
|
||||
ui.showModal(_('OPKG Configuration'), body);
|
||||
ui.showModal(_('%s Configuration').format(L.hasSystemFeature('apk') ? 'APK' : 'OPKG'), body);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -948,7 +961,7 @@ function handleRemove(ev)
|
|||
desc || '',
|
||||
E('div', { 'style': 'display:flex; justify-content:space-between; flex-wrap:wrap' }, [
|
||||
E('label', { 'class': 'cbi-checkbox', 'style': 'float:left' }, [
|
||||
E('input', { 'id': 'autoremove-cb', 'type': 'checkbox', 'checked': 'checked', 'name': 'autoremove', 'disabled': isReadonlyView }), ' ',
|
||||
E('input', { 'id': 'autoremove-cb', 'type': 'checkbox', 'checked': 'checked', 'name': 'autoremove', 'disabled': isReadonlyView || L.hasSystemFeature('apk') }), ' ',
|
||||
E('label', { 'for': 'autoremove-cb' }), ' ',
|
||||
_('Automatically remove unused dependencies')
|
||||
]),
|
||||
|
@ -962,7 +975,7 @@ function handleRemove(ev)
|
|||
'data-command': 'remove',
|
||||
'data-package': name,
|
||||
'class': 'btn cbi-button-negative',
|
||||
'click': handleOpkg,
|
||||
'click': handlePkg,
|
||||
'disabled': isReadonlyView
|
||||
}, _('Remove'))
|
||||
])
|
||||
|
@ -970,7 +983,7 @@ function handleRemove(ev)
|
|||
]);
|
||||
}
|
||||
|
||||
function handleOpkg(ev)
|
||||
function handlePkg(ev)
|
||||
{
|
||||
return new Promise(function(resolveFn, rejectFn) {
|
||||
var cmd = ev.target.getAttribute('data-command'),
|
||||
|
@ -981,7 +994,7 @@ function handleOpkg(ev)
|
|||
|
||||
var dlg = ui.showModal(_('Executing package manager'), [
|
||||
E('p', { 'class': 'spinning' },
|
||||
_('Waiting for the <em>opkg %h</em> command to complete…').format(cmd))
|
||||
_('Waiting for the <em>%s %h</em> command to complete…').format(L.hasSystemFeature('apk') ? 'apk' : 'opkg', cmd))
|
||||
]);
|
||||
|
||||
var argv = [ cmd ];
|
||||
|
@ -1001,7 +1014,7 @@ function handleOpkg(ev)
|
|||
if (pkg != null)
|
||||
argv.push(pkg);
|
||||
|
||||
fs.exec_direct('/usr/libexec/opkg-call', argv, 'json').then(function(res) {
|
||||
fs.exec_direct('/usr/libexec/package-manager-call', argv, 'json').then(function(res) {
|
||||
dlg.removeChild(dlg.lastChild);
|
||||
|
||||
if (res.stdout)
|
||||
|
@ -1013,7 +1026,7 @@ function handleOpkg(ev)
|
|||
}
|
||||
|
||||
if (res.code !== 0)
|
||||
dlg.appendChild(E('p', _('The <em>opkg %h</em> command failed with code <code>%d</code>.').format(cmd, (res.code & 0xff) || -1)));
|
||||
dlg.appendChild(E('p', _('The <em>%s %h</em> command failed with code <code>%d</code>.').format(L.hasSystemFeature('apk') ? 'apk' : 'opkg', cmd, (res.code & 0xff) || -1)));
|
||||
|
||||
dlg.appendChild(E('div', { 'class': 'button-row' },
|
||||
E('div', {
|
||||
|
@ -1026,13 +1039,13 @@ function handleOpkg(ev)
|
|||
updateLists();
|
||||
|
||||
if (res.code !== 0)
|
||||
rejectFn(new Error(res.stderr || 'opkg error %d'.format(res.code)));
|
||||
rejectFn(new Error(res.stderr || '%s error %d'.format(L.hasSystemFeature('apk') ? 'apk' : 'opkg', res.code)));
|
||||
else
|
||||
resolveFn(res);
|
||||
}, this, res)
|
||||
}, _('Dismiss'))));
|
||||
}).catch(function(err) {
|
||||
ui.addNotification(null, E('p', _('Unable to execute <em>opkg %s</em> command: %s').format(cmd, err)));
|
||||
ui.addNotification(null, E('p', _('Unable to execute <em>%s %s</em> command: %s').format(L.hasSystemFeature('apk') ? 'apk' : 'opkg', cmd, err)));
|
||||
ui.hideModal();
|
||||
});
|
||||
});
|
||||
|
@ -1040,7 +1053,7 @@ function handleOpkg(ev)
|
|||
|
||||
function handleUpload(ev)
|
||||
{
|
||||
var path = '/tmp/upload.ipk';
|
||||
var path = '/tmp/upload.%s'.format(L.hasSystemFeature('apk') ? 'apk' : 'ipk');
|
||||
return ui.uploadFile(path).then(L.bind(function(btn, res) {
|
||||
ui.showModal(_('Manually install package'), [
|
||||
E('p', {}, _('Installing packages from untrusted sources is a potential security risk! Really attempt to install <em>%h</em>?').format(res.name)),
|
||||
|
@ -1062,7 +1075,7 @@ function handleUpload(ev)
|
|||
'data-command': 'install',
|
||||
'data-package': path,
|
||||
'click': function(ev) {
|
||||
handleOpkg(ev).finally(function() {
|
||||
handlePkg(ev).finally(function() {
|
||||
fs.remove(path)
|
||||
});
|
||||
}
|
||||
|
@ -1076,8 +1089,8 @@ function downloadLists()
|
|||
{
|
||||
return Promise.all([
|
||||
callMountPoints(),
|
||||
fs.exec_direct('/usr/libexec/opkg-call', [ 'list-available' ]),
|
||||
fs.exec_direct('/usr/libexec/opkg-call', [ 'list-installed' ])
|
||||
fs.exec_direct('/usr/libexec/package-manager-call', [ 'list-available' ]),
|
||||
fs.exec_direct('/usr/libexec/package-manager-call', [ 'list-installed' ])
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -1133,7 +1146,7 @@ return view.extend({
|
|||
E('h2', {}, _('Software')),
|
||||
|
||||
E('div', { 'class': 'cbi-map-descr' }, [
|
||||
E('span', _('Install additional software and upgrade existing packages with opkg.')),
|
||||
E('span', _('Install additional software and upgrade existing packages with %s.').format(L.hasSystemFeature('apk') ? 'apk' : 'opkg')),
|
||||
E('br'),
|
||||
E('span', _('<strong>Warning!</strong> Package operations can <a %s>break your system</a>.').format(
|
||||
'href="https://openwrt.org/meta/infobox/upgrade_packages_warning" target="_blank" rel="noreferrer"'
|
||||
|
@ -1165,9 +1178,9 @@ return view.extend({
|
|||
E('div', {}, [
|
||||
E('label', {}, _('Actions') + ':'), ' ',
|
||||
E('span', { 'class': 'control-group' }, [
|
||||
E('button', { 'class': 'btn cbi-button-positive', 'data-command': 'update', 'click': handleOpkg, 'disabled': isReadonlyView }, [ _('Update lists…') ]), ' ',
|
||||
E('button', { 'class': 'btn cbi-button-positive', 'data-command': 'update', 'click': handlePkg, 'disabled': isReadonlyView }, [ _('Update lists…') ]), ' ',
|
||||
E('button', { 'class': 'btn cbi-button-action', 'click': handleUpload, 'disabled': isReadonlyView }, [ _('Upload Package…') ]), ' ',
|
||||
E('button', { 'class': 'btn cbi-button-neutral', 'click': handleConfig }, [ _('Configure opkg…') ])
|
||||
E('button', { 'class': 'btn cbi-button-neutral', 'click': handleConfig }, [ _('Configure %s').format(L.hasSystemFeature('apk') ? 'apk' : 'opkg') ])
|
||||
])
|
||||
]),
|
||||
|
|
@ -0,0 +1,387 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1095
|
||||
msgid "%s used (%1024mB used of %1024mB, %1024mB free)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1135
|
||||
msgid ""
|
||||
"<strong>Warning!</strong> Package operations can <a %s>break your system</a>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1163
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:792
|
||||
msgid "Allow overwriting conflicting package files"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:953
|
||||
msgid "Automatically remove unused dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1218
|
||||
msgid "Available"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:878
|
||||
msgid ""
|
||||
"Below is a listing of the various configuration files used by <em>ipkg</em>. "
|
||||
"Use <em>ipkg.conf</em> for global settings and <em>customfeeds.conf</em> for "
|
||||
"custom repository entries. The configuration in the other files may be "
|
||||
"changed but is usually not preserved by <em>sysupgrade</em>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:800
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:846
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:893
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:959
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1056
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1150
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1167
|
||||
msgid "Configure ipkg…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:744
|
||||
msgid "Dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:750
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:938
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1236
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:755
|
||||
msgid "Details for package <em>%h</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1142
|
||||
msgid "Disk space"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1030
|
||||
msgid "Dismiss"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1172
|
||||
msgid "Display LuCI translation packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1189
|
||||
msgid "Display all available translation packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1175
|
||||
msgid ""
|
||||
"Display base translation packages and translation packages for already "
|
||||
"installed languages only"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:354
|
||||
msgid "Displaying %d-%d of %d"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1155
|
||||
msgid "Download and install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1008
|
||||
msgid "Errors"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:982
|
||||
msgid "Executing package manager"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1147
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/root/usr/share/rpcd/acl.d/luci-app-ipkg.json:3
|
||||
msgid "Grant access to ipkg management"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1202
|
||||
msgid "Hide all translation packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:808
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:824
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1066
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1133
|
||||
msgid "Install additional software and upgrade existing packages with ipkg."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:780
|
||||
msgid "Install suggested translation packages as well"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:299
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:522
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1219
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:830
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1043
|
||||
msgid ""
|
||||
"Installing packages from untrusted sources is a potential security risk! "
|
||||
"Really attempt to install <em>%h</em>?"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:288
|
||||
msgid "Install…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:857
|
||||
msgid "Loading configuration data…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1084
|
||||
msgid "Loading package information…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1046
|
||||
msgid "MD5"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:840
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1042
|
||||
msgid "Manually install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:510
|
||||
msgid "Needs upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1227
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1245
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:368
|
||||
msgid "No information available"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:355
|
||||
msgid "No packages"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:372
|
||||
msgid "No packages matching \"<strong>%h</strong>\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:542
|
||||
msgid "Not available"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:527
|
||||
msgid "Not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1158
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:856
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:904
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:918
|
||||
msgid "OPKG Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1233
|
||||
msgid "Package name"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1157
|
||||
msgid "Package name or URL…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1225
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1243
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:837
|
||||
msgid "Really attempt to install <em>%h</em>?"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:967
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:943
|
||||
msgid "Remove package <em>%h</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:276
|
||||
msgid "Remove…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:737
|
||||
msgid "Require approx. %1024mB size for %d package(s) to install."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:517
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:535
|
||||
msgid "Require version %h %h, installed %h"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:540
|
||||
msgid ""
|
||||
"Required dependency package <em>%h</em> is not available in any repository."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:508
|
||||
msgid "Requires update to %h %h"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:373
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1047
|
||||
msgid "SHA256"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:915
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:905
|
||||
msgid "Saving configuration data…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:758
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:946
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1045
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1235
|
||||
msgid "Size (.ipk)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1130
|
||||
#: applications/luci-app-ipkg/root/usr/share/luci/menu.d/luci-app-ipkg.json:3
|
||||
msgid "Software"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:761
|
||||
msgid "Suggested translations"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:740
|
||||
msgid "Suggested translations require approx. %1024mB additional space."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1013
|
||||
msgid "The <em>ipkg %h</em> command failed with code <code>%d</code>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:513
|
||||
msgid ""
|
||||
"The installed version of package <em>%h</em> is not compatible, require %s "
|
||||
"while %s is installed."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:833
|
||||
msgid "The package <em>%h</em> is not available in any configured repository."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:530
|
||||
msgid ""
|
||||
"The repository version of package <em>%h</em> is not compatible, require %s "
|
||||
"but only %s is available."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1149
|
||||
msgid "Type to filter…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1032
|
||||
msgid "Unable to execute <em>ipkg %s</em> command: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:871
|
||||
msgid "Unable to read %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:910
|
||||
msgid "Unable to save %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1165
|
||||
msgid "Update lists…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1220
|
||||
msgid "Updates"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:265
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:294
|
||||
msgid "Upgrade…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1166
|
||||
msgid "Upload Package…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:757
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:945
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1234
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:519
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:537
|
||||
msgid "Version incompatible"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:984
|
||||
msgid "Waiting for the <em>ipkg %h</em> command to complete…"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1198
|
||||
msgctxt "Display translation packages"
|
||||
msgid "all"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1185
|
||||
msgctxt "Display translation packages"
|
||||
msgid "filtered"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1211
|
||||
msgctxt "Display translation packages"
|
||||
msgid "none"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:673
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:934
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:1143
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:671
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:932
|
||||
msgid "~%1024mB compressed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:669
|
||||
#: applications/luci-app-ipkg/htdocs/luci-static/resources/view/package_manager.js:930
|
||||
msgid "~%1024mB installed"
|
||||
msgstr ""
|
|
@ -0,0 +1,111 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
action=$1
|
||||
shift
|
||||
|
||||
if [ -f /usr/bin/apk ]; then
|
||||
ipkg_bin="apk"
|
||||
else
|
||||
ipkg_bin="opkg"
|
||||
fi
|
||||
|
||||
case "$action" in
|
||||
list-installed)
|
||||
if [ $ipkg_bin = "apk" ]; then
|
||||
$ipkg_bin list -I --full 2>/dev/null
|
||||
else
|
||||
cat /usr/lib/opkg/status
|
||||
fi
|
||||
;;
|
||||
list-available)
|
||||
if [ $ipkg_bin = "apk" ]; then
|
||||
$ipkg_bin list --full 2>/dev/null
|
||||
else
|
||||
lists_dir=$(sed -rne 's#^lists_dir \S+ (\S+)#\1#p' /etc/opkg.conf /etc/opkg/*.conf 2>/dev/null | tail -n 1)
|
||||
find "${lists_dir:-/usr/lib/opkg/lists}" -type f '!' -name '*.sig' | xargs -r gzip -cd
|
||||
fi
|
||||
;;
|
||||
install|update|remove)
|
||||
(
|
||||
cmd="$ipkg_bin"
|
||||
|
||||
# APK have command renamed
|
||||
if [ $ipkg_bin = "apk" ]; then
|
||||
case "$action" in
|
||||
install)
|
||||
action="add"
|
||||
;;
|
||||
update)
|
||||
action="upgrade"
|
||||
;;
|
||||
remove)
|
||||
action="del"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# APK have --autoremove enabled by default and
|
||||
# --force-removal-of-dependent-packages as -r option
|
||||
if [ $ipkg_bin = "apk" ]; then
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
--force-removal-of-dependent-packages)
|
||||
cmd="$cmd -r"
|
||||
shift
|
||||
;;
|
||||
--force-overwrite)
|
||||
cmd="$cmd $1"
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
--autoremove|--force-overwrite|--force-removal-of-dependent-packages)
|
||||
ipkg_bin="$apk $1"
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if flock -x 200; then
|
||||
$cmd $action "$@" </dev/null >/tmp/ipkg.out 2>/tmp/ipkg.err
|
||||
code=$?
|
||||
stdout=$(cat /tmp/ipkg.out)
|
||||
stderr=$(cat /tmp/ipkg.err)
|
||||
else
|
||||
code=255
|
||||
stderr="Failed to acquire lock"
|
||||
fi
|
||||
|
||||
json_init
|
||||
json_add_int code $code
|
||||
[ -n "$stdout" ] && json_add_string stdout "$stdout"
|
||||
[ -n "$stderr" ] && json_add_string stderr "$stderr"
|
||||
json_dump
|
||||
) 200>/tmp/ipkg.lock
|
||||
|
||||
rm -f /tmp/ipkg.lock /tmp/ipkg.err /tmp/ipkg.out
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {list-installed|list-available}" >&2
|
||||
echo " $0 {install|upgrade|remove} pkg[ pkg...]" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"admin/system/package-manager": {
|
||||
"title": "Software",
|
||||
"order": 30,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "package-manager"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-package-manager" ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"luci-app-package-manager": {
|
||||
"description": "Grant access to package management",
|
||||
"read": {
|
||||
"cgi-io": [ "exec" ],
|
||||
"file": {
|
||||
"/usr/libexec/package-manager-call list-installed": [ "exec" ],
|
||||
"/usr/libexec/package-manager-call list-available": [ "exec" ],
|
||||
"/etc/opkg.conf": [ "read" ],
|
||||
"/etc/opkg/*.conf": [ "read" ],
|
||||
"/etc/apk/repositories": [ "read" ]
|
||||
},
|
||||
"ubus": {
|
||||
"luci": [ "getMountPoints" ]
|
||||
}
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/usr/libexec/package-manager-call install": [ "exec" ],
|
||||
"/usr/libexec/package-manager-call install *": [ "exec" ],
|
||||
"/usr/libexec/package-manager-call remove *": [ "exec" ],
|
||||
"/usr/libexec/package-manager-call update": [ "exec" ],
|
||||
"/etc/opkg.conf": [ "write" ],
|
||||
"/etc/opkg/*.conf": [ "write" ],
|
||||
"/etc/apk/repositories": [ "write" ],
|
||||
"/tmp/upload.ipk": [ "write" ],
|
||||
"/tmp/upload.apk": [ "write" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,7 +13,7 @@ LUCI_TITLE:=LuCI interface with Uhttpd as Webserver (default)
|
|||
LUCI_DESCRIPTION:=Standard OpenWrt set including package management and attended sysupgrades support
|
||||
LUCI_DEPENDS:= \
|
||||
+luci-light \
|
||||
+luci-app-opkg
|
||||
+luci-app-package-manager
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
|
|
Loading…
Reference in New Issue