Dear Marc,
perhaps going through /tmp/updater_crash.log
helps?
M
Stack Traceback
===============
(2) Lua function '?' at line 64 of chunk '"logging"]'M
Local variables:M
err = More than one candidate with a virtual package ip {msg:More than one candidate with a virtual package ip, tp:error, reason:inconsistent (more...)}M
err2string = Lua function '?' (defined at line 45 of chunk "logging"])M
msg = string: "\
inconsistent: More than one candidate with a virtual package ip"M
(*temporary) = table: 0x2127340 {msg:
inconsistent: More than one candidate with a virtual package ip}M
(3) C function 'function: 0xdebbf0'M
(4) upvalue C function 'error'M
(5) Lua global 'pkg_aggregate' at line 266 of chunk '"postprocess"]'M
Local variables:M
(for generator) = C function: 0xb6ecb140M
(for state) = table: 0xddb950 {kmod-video-gspca-vc032x:table: 0x175f1d0, gnunet-social:table: 0x1d4b350 (more...)}M
(for control) = string: "ip"M
name = string: "ip"M
pkg_group = table: 0x1dd7070 {virtual:true, modifiers:table: 0x1dd7120, candidates:table: 0x1dd70f0}M
(6) Lua field 'run' at line 339 of chunk '"postprocess"]'M
Local variables:M
repo_errors = nilM
(7) Lua function '?' at line 56 of chunk '"updater"]'M
Local variables:M
entrypoint = string: "internal:entry_lua"M
tlc = table: 0xdea430 {env:table: 0xded2d0, level_check:function: 0xdeaa20, tp:context, sec_level:Full (more...)}M
ep_uri = table: 0xdeddd0 {ok:function: 0xdeb7e0, tp:uri, cback:function: 0xdee110, callbacks:table: 0xdefc10 (more...)}M
ok = boolean: trueM
tls = string: "-- Do not edit this file. It is the entry point. Edit the user.lua file.\
\
local branch = \"\"\
local lists\
if uci then\
-- If something is really broken, we could be unable to load the uci dynamic module. Try to do some recovery in such case and hope it works well the next time.
\
local cursor = uci.cursor()\
branch = cursor:get(\"updater\", \"override\", \"branch\")\
if branch then\
WARN(\"Branch overriden to \" .. branch)\
branch = branch .. \"/\"\
else\
branch = \"\"\
updater_crash.logend\
lists = cursor:get(\"updater\", \"pkglists\", \"lists\")\
else\
ERROR(\"UCI library is not available. Not processing user lists.\")\
end\
\
-- Guess what board this is.\
local base_model = \"\"\
if model then\
if model:match(\"[Oo]mnia\") then\
base_model = \"omnia/\"\
elseif model:match(\"[Tt]urris\") then\
base_model = \"turris/\"\
end\
end\
\
local base_url\
if base_model then\
base_url = \"https://api.turris.cz/updater-defs/\" .. turris_version .. \"/\" .. base_model .. branch\
end\
\
-- Reused options for remotely fetched scripts\
local script_options = {\
security = \"Remote\",\
ca = \"file:///etc/ssl/updater.pem\",\
crl = \"file:///tmp/crl.pem\",\
pubkey = {\
\"file:///etc/updater/keys/release.pub\",\
\"file:///etc/updater/keys/standby.pub\",\
\"file:///etc/updater/keys/test.pub\" -- It is normal for this one to not be present in production systems\
}\
}\
\
if base_url then\
-- The distribution script. It contains the repository and bunch of basic packages. The URI is computed based on the branch and the guessed board\
Script(\"base\", base_url .. \"base.lua\", script_options)\
end\
\
-- Some provided by the user\
Script \"user-src\" \"file:///etc/updater/user.lua\" { security = \"Local\" }\
-- Some auto-generated by command line\
Script \"auto-src\" \"file:///etc/updater/auto.lua\" { security = \"Local\" }\
\
:local base_url\
if base_model then\
base_url = \"https://api.turris.cz/updater-defs/\" .. turris_version .. \"/\" .. base_model .. branch\
end\
\
-- Reused options for remotely fetched scripts\
local script_options = {\
security = \"Remote\",\
ca = \"file:///etc/ssl/updater.pem\",\
crl = \"file:///tmp/crl.pem\",\
pubkey = {\
\"file:///etc/updater/keys/release.pub\",\
\"file:///etc/updater/keys/standby.pub\",\
\"file:///etc/updater/keys/test.pub\" -- It is normal for this one to not be present in production systems\
}\
}\
\
if base_url then\
-- The distribution script. It contains the repository and bunch of basic packages. The URI is computed based on the branch and the guessed board\
Script(\"base\", base_url .. \"base.lua\", script_options)\
end\
\
-- Some provided by the user\
Script \"user-src\" \"file:///etc/updater/user.lua\" { security = \"Local\" }\
-- Some auto-generated by command line\
Script \"auto-src\" \"file:///etc/updater/auto.lua\" { security = \"Local\" }\
\
if uci and base_url then\
-- Go through user lists and pull them in.\
if type(lists) == \"string\" then\
lists = {lists}\
end\
if type(lists) == \"table\" then\
for _, l in ipairs(lists) do\
-- TODO: Make restricted security work\
Script(\"userlist-\" .. l, base_url .. \"userlists/\" .. l .. \".lua\", script_options)\
end\
end\
end\
"M
err = table: 0xdefdc0 {sec_level:Full, tp:context, flags:table: 0xdf0680, name:, hierarchy:table: 0xdf05f0 (more...)}M
~
(END)root@turris:/tmp#
This listing is mine, its what I get trying to update my freshly unpacked
Turris Omnia - RTROM01
with
Turris OS version 3.2.1
Kernel version 4.4.13-05df79f63527051ea0071350f86faf76-7
Firmware Version OpenWrt omnia 15.05 r49274 / LuCI 3200f7dc985b1ac048a62a96ffae783b3c285448 branch (git-16.212.24666-3200f7d)
with an empty
/etc/updater/user.lua file.
Perhaps this gives you (and me?) a hint on
the duplicate candidate(s) with “a virtual package ip”?
best, bernd.
btw: after 4 hours going through config, manuals, …: I have to say: I love that box! Thank you, CZ.nic!