legionus / kbd

Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git
https://kbd-project.org
Other
84 stars 41 forks source link

loadkeys from 2.1.0 release throws error messages #29

Closed Polynomial-C closed 5 years ago

Polynomial-C commented 5 years ago
breakmygentoo:~ # loadkeys -q windowkeys de-latin1-nodeadkeys
kbdfile already opened: /usr/share/keymaps/i386/include/windowkeys.map.gz
cannot open file de-latin1-nodeadkeys
breakmygentoo:~ # loadkeys -q de-latin1-nodeadkeys
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
breakmygentoo:~ # loadkeys -q /usr/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz 
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
scandir: No such file or directory
breakmygentoo:~ #

Funnily, the keyboard layouts are getting loaded despite the error messages.

Polynomial-C commented 5 years ago

Same with 2.0.90 release.

Whissi commented 5 years ago

I run bisect, first bad commit is 976867c3a842562c775368a9827d2ed791dcba84:

commit 976867c3a842562c775368a9827d2ed791dcba84
Author: Alexey Gladkov
Date:   Mon Jun 11 16:46:40 2018 +0200

    Rewrite libkbdfile library

    Signed-off-by: Alexey Gladkov

Full log:

git bisect start
# good: [8cc0ce8423973675871d3ca80603d174d3db6c2e] v2.0.4
git bisect good 8cc0ce8423973675871d3ca80603d174d3db6c2e
# bad: [8778f4e1881564f3605752ecbb6925a0abc75450] v2.1.0
git bisect bad 8778f4e1881564f3605752ecbb6925a0abc75450
# skip: [cd679d36c5241dd3d17bb5338cff61e3eed7dd28] Add Apple USB keyboard/trackpad (ISO), Swedish, reverse function keys
git bisect skip cd679d36c5241dd3d17bb5338cff61e3eed7dd28
# skip: [d4dc6c07cf6c49cd031031dae05fe4ccaef0bfcd] Fix build warnings (part 2)
git bisect skip d4dc6c07cf6c49cd031031dae05fe4ccaef0bfcd
# bad: [0f617e1d60e3e5173610e1383ab1904e3216b493] libkeymap: Include sys/types.h in array.h for ssize_t
git bisect bad 0f617e1d60e3e5173610e1383ab1904e3216b493
# skip: [2f06dd19c92a16ca4ad52d1e22f67f53ad459810] Add Apple USB keyboard/trackpad (ISO), Swedish
git bisect skip 2f06dd19c92a16ca4ad52d1e22f67f53ad459810
# bad: [adc47400a71e1931cbd498f3ad8f12c3c77a137e] openvt: Check vtname variable size when it is filled
git bisect bad adc47400a71e1931cbd498f3ad8f12c3c77a137e
# skip: [1e089edaa305b4c371b7e82c858a160986ca00f2] Renamed dvorak/no keymap to avoid shadowing qwerty/no.
git bisect skip 1e089edaa305b4c371b7e82c858a160986ca00f2
# skip: [b7742c2969e9ca94d596038af5ce010365c9c834] Fix memory leaks
git bisect skip b7742c2969e9ca94d596038af5ce010365c9c834
# bad: [2eda7207c38978ddc9483f5eb7f494d6ac8a3894] Rewrite autogen.sh and update autotools stuff
git bisect bad 2eda7207c38978ddc9483f5eb7f494d6ac8a3894
# skip: [a3751c107088884126a4838af32f3a5859c76b33] Fix build warnings (part 3)
git bisect skip a3751c107088884126a4838af32f3a5859c76b33
# good: [c33311c525cc50fa11b7d6c914e2e09e54a41433] Add dvorak-ukp.map
git bisect good c33311c525cc50fa11b7d6c914e2e09e54a41433
# skip: [6a88816a8a65acfcd66c1789b1aecfab07faeb88] Add Apple USB keyboard model A1243 with keypad, aluminium, Swedish
git bisect skip 6a88816a8a65acfcd66c1789b1aecfab07faeb88
# bad: [e664a75f4486140ce315d4fa0f71b11a112b0279] Fix build error
git bisect bad e664a75f4486140ce315d4fa0f71b11a112b0279
# skip: [7f823ba0e0c3874eb92d5023298a4e673725ac16] Fix build warnings (part 1)
git bisect skip 7f823ba0e0c3874eb92d5023298a4e673725ac16
# good: [afb661b80441b6e3fa8cfa3b69f50e4805ebf8be] Fix infinite loop of vlock if locked VC is closed
git bisect good afb661b80441b6e3fa8cfa3b69f50e4805ebf8be
# skip: [674396f88aeace2a86f2efb4d4e698cc9fa31a5f] Problems with codepage.1
git bisect skip 674396f88aeace2a86f2efb4d4e698cc9fa31a5f
# good: [3a94fb97a564b6e81ada9feaf0fcf688c18e4d05] Remove garbage
git bisect good 3a94fb97a564b6e81ada9feaf0fcf688c18e4d05
# skip: [403ef74653f8670c1f83585d767abee0414f4ca9] Problems with loadkeys.1
git bisect skip 403ef74653f8670c1f83585d767abee0414f4ca9
# bad: [976867c3a842562c775368a9827d2ed791dcba84] Rewrite libkbdfile library
git bisect bad 976867c3a842562c775368a9827d2ed791dcba84
# good: [12c4be5d77f56aa918e5a98bb397278ff8640c2d] Move common code to separate internal library
git bisect good 12c4be5d77f56aa918e5a98bb397278ff8640c2d
# first bad commit: [976867c3a842562c775368a9827d2ed791dcba84] Rewrite libkbdfile library
legionus commented 5 years ago

Fixed in master. Thanks!

Whissi commented 5 years ago

Sorry, I still experience problem with master (at commit 0667bb2b46d0ef17db926300b02604a9e6355248). I don't see any changes.

Polynomial-C commented 5 years ago

Same here. It is still not fixed. Please reopen the issue.

legionus commented 5 years ago

Please show me new output. I added testcase into Travis CI [1][2] and I no longer see these error messages.

[1] https://travis-ci.org/legionus/kbd/jobs/562822829 [2] https://travis-ci.org/legionus/kbd/jobs/563929094

Polynomial-C commented 5 years ago

The scandir: No such file or directory error message is gone but these here still show up:

breakmygentoo:~ # loadkeys -q windowkeys de-latin1-nodeadkeys
kbdfile already opened: /usr/share/keymaps/i386/include/windowkeys.map.gz
cannot open file de-latin1-nodeadkeys
breakmygentoo:~ #
legionus commented 5 years ago

Please, check the master.

Whissi commented 5 years ago

No visible changes.

Polynomial-C commented 5 years ago

Alright, the problem is bigger than I previously assumed. The Gentoo keymaps init script fails to load keymaps during boot with 2.1.0 release. That is a severe regression and we have taken measures to no longer ship 2.1.0 release to our users until this bug has been fixed.

legionus commented 5 years ago
$ ./src/.libs/loadkeys windowkeys de-latin1-nodeadkeys; echo $?
0

$ strace -fF -e file ./src/.libs/loadkeys windowkeys de-latin1-nodeadkeys | grep -e "windowkeys -e "de-latin1-nodeadkeys
execve("./src/.libs/loadkeys", ["./src/.libs/loadkeys", "windowkeys", "de-latin1-nodeadkeys"], 0x7ffc2b6e5008 /* 40 vars */) = 0
stat("windowkeys", 0x7fff2b1d7780)      = -1 ENOENT (Нет такого файла или каталога)
[pid 15284] openat(4, "windowkeys.map.gz", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 5
stat("de-latin1-nodeadkeys", 0x7fff2b1d7780) = -1 ENOENT (Нет такого файла или каталога)
[pid 15285] openat(4, "de-latin1-nodeadkeys.map.gz", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 5

$ git describe
v2.1.0-5-g9da7ed8

I can't reproduce the issue anymore.

Polynomial-C commented 5 years ago

I get this with latest git HEAD:

[pid 32215] execve("/bin/gzip", ["gzip", "-d", "-c", "/usr/share/keymaps/i386/include/"...], 0x55a168410e88 /* 60 vars */) = 0
[pid 32215] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid 32215] openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
[pid 32215] openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 4
[pid 32215] openat(AT_FDCWD, "/usr/share/keymaps/i386/include/", O_RDONLY|O_DIRECTORY) = 4
[pid 32215] openat(4, "windowkeys.map.gz", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 5
kbdfile already opened: /usr/share/keymaps/i386/include/windowkeys.map.gz[pid 32215] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=32215, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---

openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/usr/share/locale/C.UTF-8/LC_MESSAGES/kbd.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/C.utf8/LC_MESSAGES/kbd.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/C/LC_MESSAGES/kbd.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
cannot open file de-latin1-nodeadkeys
+++ exited with 0 +++
Polynomial-C commented 5 years ago

I suppose the kbdfile already opened: /usr/share/keymaps/i386/include/windowkeys.map.gz comes because it already loaded the windowkeys successfully at first attempt. But still not the de-latin1-nodeadkeys map.

legionus commented 5 years ago

@Polynomial-C, Please, show me how you compile and how you test it. Maybe you should do make clean.

Polynomial-C commented 5 years ago

Oh my... now I feel stupid.

No, I did not forget to run make clean, in fact I always used a fresh copy of the previously checked out git sources. But I used the wrong git repository. My clone of your repo still pointed to http://git.kernel.org/cgit/linux/kernel/git/legion/kbd.git and that repo is exactly two commits behind the GitHub repo :tired_face: Now after using the correct git remote and rebuilding the sources I too cannot reproduce the issue anymore. I am sincerely sorry for causing so much confusion...

legionus commented 5 years ago

@Polynomial-C no proplem, man :) I just pushed changes to kernel.org and in all mirrors (git.altlinux.org, gitlab.com, etc.).

legionus commented 5 years ago

I will make a new release on Monday. Thanks!

Polynomial-C commented 5 years ago

I will make a new release on Monday. Thanks!

What's the staus here? We already have Tuesday :)

legionus commented 5 years ago

https://github.com/legionus/kbd/releases/tag/v2.2.0

Polynomial-C commented 5 years ago

Thank you very much :) sys-apps/kbd: Bump to version 2.2.0