I just had the error with xkbcomp not being in the dependencies of xorg-server.tcz after updating.
tce-update doesn't seem to update the dep files when the extension tcz itself hasn't changed.
I used the below script to check my dep files and found a few that needed updating (needs lua-5.4.tcz):
#!/usr/local/bin/lua
local quiet = arg[1] == '-q'
if arg[1] == '-h' or arg[1] == '--help' then
print [[
Usage: check_deps.lua [-q]
Check that all the *.tcz.dep files in the current install match dep.db
Prints a comparison of each .dep file except with -q
]]
return
end
-- make sure we have a dep.db
os.execute'depends-on.sh zzip'
local lib_to_deps = {}
local currlib
for line in io.lines'/etc/sysconfig/tcedir/dep.db' do
if currlib then
if line == '' then
currlib = nil
else
table.insert(lib_to_deps[currlib], line)
end
else
currlib = line
lib_to_deps[currlib] = {}
end
end
local needs = false
for path in io.popen('ls /etc/sysconfig/tcedir/optional/*.tcz'):lines() do
local tcz = path:match('[^/]+.tcz$')
if lib_to_deps[tcz] then
local currdepsf <close> = io.open(path .. '.dep')
local currdeps = currdepsf and currdepsf:read'a' or ''
-- normalise strings for comparison
currdeps = (currdeps .. '\n'):gsub('%s+\n', '\n')
local expected_deps = (table.concat(lib_to_deps[tcz], '\n') .. '\n'):gsub('%s+\n', '\n')
if currdeps ~= expected_deps then
needs = true
print(tcz)
if not quiet then
print'>>>'
print(string.format('%q', currdeps))
print'==='
print(string.format('%q', expected_deps))
print'<<<'
end
end
end
end
if needs then os.exit(1) end