rpm-software-management / rpmlint

Tool for checking common errors in rpm packages
GNU General Public License v2.0
135 stars 117 forks source link

rpmlint is sloooooow #779

Closed voxik closed 2 years ago

voxik commented 2 years ago

I have always used to run rpmlint in following form:

$ rpmlint ./ruby.spec /var/lib/mock/ruby/result/ruby*.rpm

And I got the result instantaneously. But now it takes ages:

... snip ...

========================================================== 33 packages and 1 specfiles checked; 134 errors, 314 warnings, 134 badness; has taken 613.8 s ==========================================================
marxin commented 2 years ago

Please try using -T and -t options, they should help us here. And can you please upload somewhere the RPM files?

voxik commented 2 years ago

Being bored, this is small strace output:

$ strace -p 87550
strace: Process 87550 attached
restart_syscall(<... resuming interrupted read ...>) = 1
read(4, "\nElf file type is DYN (Shared ob"..., 32768) = 1732
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90331, si_uid=1000, si_status=0, si_utime=14, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90331, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90331
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90337
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nThere is no dynamic section in "..., 32768) = 43
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90337, si_uid=1000, si_status=0, si_utime=14, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90337, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90337
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90340
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nSymbol table '.symtab' contains"..., 32768) = 12288
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "T  UND onigenc_with_ascii_strnic"..., 32768) = 1127
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90340, si_uid=1000, si_status=0, si_utime=12, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90340, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90340
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90343
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nString dump of section '.commen"..., 32768) = 95
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90343, si_uid=1000, si_status=0, si_utime=16, si_stime=0} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90343, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90343
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc8602a270)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc8602a270)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90346
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\n/tmp/rpmlint.ruby-libs-debuginf"..., 32768) = 1419
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90346, si_uid=1000, si_status=0, si_utime=15, si_stime=2} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90346, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90346
openat(AT_FDCWD, "/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 4
read(4, "0-7\n", 1024)                  = 4
close(4)                                = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f766f7fe910, parent_tid=0x7f766f7fe910, exit_signal=0, stack=0x7f766effe000, stack_size=0x7fff00, tls=0x7f766f7fe640} => {parent_tid=[90349]}, 88) = 90349
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7f76a57d4acc, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x561c8683a2a0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f76a57d4ac8, FUTEX_WAIT_BITSET_PRIVATE, 0, {tv_sec=4596783, tv_nsec=409612022}, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f768c001220, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f7690ff8910, parent_tid=0x7f7690ff8910, exit_signal=0, stack=0x7f76907f8000, stack_size=0x7fff00, tls=0x7f7690ff8640} => {parent_tid=[90350]}, 88) = 90350
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7f76a57d4acc, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x561c8681e450, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x7f768c001220, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f766effd910, parent_tid=0x7f766effd910, exit_signal=0, stack=0x7f766e7fd000, stack_size=0x7fff00, tls=0x7f766effd640} => {parent_tid=[90351]}, 88) = 90351
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7f76a57d4ac8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x561c862889c0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f766ffff910, parent_tid=0x7f766ffff910, exit_signal=0, stack=0x7f766f7ff000, stack_size=0x7fff00, tls=0x7f766ffff640} => {parent_tid=[90352]}, 88) = 90352
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7f76a57d4ac8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x561c863ee8a0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x7f768c001220, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ac8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x561c867b50f0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x7f76a57d4ac8, FUTEX_WAIT_BITSET_PRIVATE, 0, {tv_sec=4596783, tv_nsec=416446562}, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f768c001220, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4acc, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f7674000d10, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7f76a57d4ad0, FUTEX_WAKE_PRIVATE, 1) = 0
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90353
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "There are 37 section headers, st"..., 32768) = 3728
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90353, si_uid=1000, si_status=0, si_utime=15, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90353, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90353
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90356
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nElf file type is DYN (Shared ob"..., 32768) = 1732
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90356, si_uid=1000, si_status=0, si_utime=14, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90356, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90356
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90359
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nThere is no dynamic section in "..., 32768) = 43
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90359, si_uid=1000, si_status=0, si_utime=14, si_stime=0} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90359, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90359
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90362
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nSymbol table '.symtab' contains"..., 32768) = 8192
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "14 __GNU_EH_FRAME_HDR\n   116: 00"..., 32768) = 1784
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90362, si_uid=1000, si_status=0, si_utime=15, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90362, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90362
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc86029ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90365
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\nString dump of section '.commen"..., 32768) = 95
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 2 ([{fd=4, revents=POLLHUP}, {fd=6, revents=POLLHUP}])
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=90365, si_uid=1000, si_status=0, si_utime=16, si_stime=1} ---
read(4, "", 32768)                      = 0
close(4)                                = 0
read(6, "", 32768)                      = 0
close(6)                                = 0
wait4(90365, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 90365
pipe2([4, 5], O_CLOEXEC)                = 0
pipe2([6, 7], O_CLOEXEC)                = 0
newfstatat(4, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(4, TCGETS, 0x7ffc8602a270)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
newfstatat(6, "", {st_mode=S_IFIFO|0600, st_size=0, ...}, AT_EMPTY_PATH) = 0
ioctl(6, TCGETS, 0x7ffc8602a270)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(6, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
pipe2([8, 9], O_CLOEXEC)                = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
vfork()                                 = 90368
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
close(9)                                = 0
close(7)                                = 0
close(5)                                = 0
read(8, "", 50000)                      = 0
close(8)                                = 0
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1^Cstrace: Process 87550 detached
 <detached ...>

It seems it checks some elf properties in some inefficient manner. Can this be related to #780?

voxik commented 2 years ago

I guess you can get the files from this scratch build:

https://koji.fedoraproject.org/koji/taskinfo?taskID=80818741

voxik commented 2 years ago
Check time report (>1%):
    Check                            Duration (in s)   Fraction (in %)  Checked files
    BinariesCheck                             623.93              99.0            201
    TOTAL                                     630.19            100.00          17037

cProfile report:
         13339907 function calls (13295273 primitive calls) in 631.753 seconds

   Ordered by: cumulative time
   List reduced from 1577 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000  631.433  631.433 /usr/lib/python3.10/site-packages/rpmlint/lint.py:101(run)
        1    0.000    0.000  631.433  631.433 /usr/lib/python3.10/site-packages/rpmlint/lint.py:58(_run)
        1    0.003    0.003  631.415  631.415 /usr/lib/python3.10/site-packages/rpmlint/lint.py:214(validate_files)
       34    0.000    0.000  631.411   18.571 /usr/lib/python3.10/site-packages/rpmlint/lint.py:252(validate_file)
       34    0.006    0.000  630.188   18.535 /usr/lib/python3.10/site-packages/rpmlint/lint.py:268(run_checks)
      561    0.008    0.000  627.597    1.119 /usr/lib/python3.10/site-packages/rpmlint/checks/AbstractCheck.py:14(check)
       32    0.053    0.002  623.933   19.498 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:584(check_binary)
      201    0.062    0.000  623.723    3.103 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:546(run_elf_checks)
     1275    0.036    0.000  622.423    0.488 /usr/lib64/python3.10/subprocess.py:460(run)
     1275    0.024    0.000  620.069    0.486 /usr/lib64/python3.10/subprocess.py:1105(communicate)
     1206    0.177    0.000  618.801    0.513 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
     4460    0.100    0.000  618.150    0.139 /usr/lib64/python3.10/selectors.py:403(select)
     4460  618.035    0.139  618.035    0.139 {method 'poll' of 'select.poll' objects}
      201    0.008    0.000  518.752    2.581 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:348(__init__)
      201    0.003    0.000  106.233    0.529 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:282(__init__)
      201    0.195    0.001  106.230    0.529 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:288(parse)
      201    0.002    0.000  104.143    0.518 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:148(__init__)
      201    0.034    0.000  104.141    0.518 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:154(parse)
      201    0.002    0.000  103.582    0.515 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:27(__init__)
      201    0.027    0.000  103.580    0.515 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:33(parse_dwarf_compilation_units)
      201    0.002    0.000  103.350    0.514 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:220(__init__)
      201    0.022    0.000  103.340    0.514 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:227(parse)
      201    0.001    0.000  103.105    0.513 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:319(__init__)
      201    0.009    0.000  103.103    0.513 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:325(parse)
      201    0.002    0.000  101.912    0.507 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:79(__init__)
      201    0.057    0.000  101.910    0.507 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:86(parse)
      224    0.028    0.000    3.355    0.015 /usr/lib/python3.10/site-packages/rpmlint/checks/AbstractCheck.py:38(check_binary)
    29131    1.149    0.000    2.742    0.000 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:521(grep)
     1276    0.098    0.000    2.291    0.002 /usr/lib64/python3.10/subprocess.py:753(__init__)
     1276    0.371    0.000    2.053    0.002 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)

========================================================
         13339907 function calls (13295273 primitive calls) in 631.753 seconds

   Ordered by: call count
   List reduced from 1577 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
  4745087    1.999    0.000    1.999    0.000 {method 'search' of 're.Pattern' objects}
  1007935    0.116    0.000    0.116    0.000 {method 'append' of 'list' objects}
   979674    0.135    0.000    0.143    0.000 {built-in method builtins.isinstance}
   705335    0.094    0.000    0.094    0.000 {method 'startswith' of 'str' objects}
   380447    0.067    0.000    0.067    0.000 {built-in method sys.intern}
   340364    0.025    0.000    0.025    0.000 {built-in method builtins.ord}
322139/311919    0.038    0.000    0.040    0.000 {built-in method builtins.len}
   296159    0.089    0.000    0.089    0.000 {method 'group' of 're.Match' objects}
   275320    0.061    0.000    0.061    0.000 {built-in method posix.fspath}
   153506    0.073    0.000    0.073    0.000 {method 'encode' of 'str' objects}
144987/144936    0.030    0.000    0.040    0.000 /usr/lib/python3.10/site-packages/rpmlint/helpers.py:35(byte_to_string)
   144017    0.045    0.000    0.045    0.000 {method 'match' of 're.Pattern' objects}
   136127    0.254    0.000    0.408    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
   116987    0.040    0.000    0.040    0.000 {method 'split' of 'str' objects}
   114192    0.020    0.000    0.020    0.000 {method 'endswith' of 'str' objects}
    93081    0.052    0.000    0.099    0.000 /usr/lib64/python3.10/codecs.py:319(decode)
    93081    0.047    0.000    0.047    0.000 {built-in method _codecs.utf_8_decode}
    92835    0.018    0.000    0.018    0.000 {method 'lstrip' of 'str' objects}
    86713    0.010    0.000    0.010    0.000 {built-in method _stat.S_ISREG}
    77082    0.052    0.000    0.070    0.000 /usr/lib64/python3.10/pathlib.py:239(splitroot)
    75813    0.016    0.000    0.023    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
    63678    0.015    0.000    0.015    0.000 {method '__exit__' of '_thread.lock' objects}
    51111    0.010    0.000    0.014    0.000 /usr/lib/python3.10/site-packages/rpmlint/checks/DBusPolicyCheck.py:19(<genexpr>)
    51022    0.016    0.000    0.016    0.000 {built-in method __new__ of type object at 0x7f6359c5c0a0}
    50958    0.033    0.000    0.033    0.000 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:39(__init__)
    48914    0.014    0.000    0.014    0.000 {method 'join' of 'str' objects}
    47622    0.037    0.000    0.135    0.000 /usr/lib64/python3.10/threading.py:264(__enter__)
    47622    0.029    0.000    0.039    0.000 /usr/lib64/python3.10/threading.py:267(__exit__)
    47357    0.270    0.000    0.469    0.000 /usr/lib64/python3.10/pathlib.py:56(parse_parts)
    47357    0.005    0.000    0.005    0.000 {method 'reverse' of 'list' objects}

========================================================
         13339907 function calls (13295273 primitive calls) in 631.753 seconds

   Ordered by: internal time
   List reduced from 1577 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     4460  618.035    0.139  618.035    0.139 {method 'poll' of 'select.poll' objects}
  4745087    1.999    0.000    1.999    0.000 {method 'search' of 're.Pattern' objects}
15170/15020    1.180    0.000    1.182    0.000 {method 'read' of '_io.BufferedReader' objects}
    29131    1.149    0.000    2.742    0.000 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:521(grep)
     1276    0.838    0.001    0.838    0.001 {built-in method _posixsubprocess.fork_exec}
    22373    0.827    0.000    0.827    0.000 {method 'acquire' of '_thread.lock' objects}
    46506    0.427    0.000    0.546    0.000 {built-in method io.open}
       33    0.376    0.011    1.531    0.046 /usr/lib/python3.10/site-packages/rpmlint/checks/FilesCheck.py:423(check)
     1276    0.371    0.000    2.053    0.002 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
    47357    0.270    0.000    0.469    0.000 /usr/lib64/python3.10/pathlib.py:56(parse_parts)
   136127    0.254    0.000    0.408    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
      201    0.195    0.001  106.230    0.529 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:288(parse)
     1206    0.177    0.000  618.801    0.513 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
   979674    0.135    0.000    0.143    0.000 {built-in method builtins.isinstance}
       33    0.133    0.004    0.444    0.013 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:547(_gatherFilesInfo)
  1007935    0.116    0.000    0.116    0.000 {method 'append' of 'list' objects}
     4460    0.100    0.000  618.150    0.139 /usr/lib64/python3.10/selectors.py:403(select)
    47356    0.099    0.000    0.606    0.000 /usr/lib64/python3.10/pathlib.py:567(_parse_args)
    41994    0.099    0.000    0.151    0.000 /usr/lib64/python3.10/posixpath.py:71(join)
     1276    0.098    0.000    2.291    0.002 /usr/lib64/python3.10/subprocess.py:753(__init__)
   705335    0.094    0.000    0.094    0.000 {method 'startswith' of 'str' objects}
    21153    0.090    0.000    0.090    0.000 {method '__enter__' of '_thread.lock' objects}
    19851    0.090    0.000    0.257    0.000 /usr/lib64/python3.10/threading.py:421(acquire)
       37    0.089    0.002    0.089    0.002 {method 'read' of '_io.TextIOWrapper' objects}
   296159    0.089    0.000    0.089    0.000 {method 'group' of 're.Match' objects}
10766/7937    0.084    0.000    0.129    0.000 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:128(has_forbidden_controlchars)
    19851    0.082    0.000    1.124    0.000 /usr/lib64/python3.10/concurrent/futures/thread.py:155(submit)
    21386    0.081    0.000    0.093    0.000 /usr/lib64/python3.10/threading.py:236(__init__)
    17755    0.074    0.000    0.106    0.000 /usr/lib64/python3.10/posixpath.py:337(normpath)
   153506    0.073    0.000    0.073    0.000 {method 'encode' of 'str' objects}
voxik commented 2 years ago

Just looking closer, 1275 subprocess calls must be expensive:

     1275    0.036    0.000  622.423    0.488 /usr/lib64/python3.10/subprocess.py:460(run)

and that likely corresponds with the strace output

voxik commented 2 years ago

This should be good enough reproducer to demonstrate the issue:

$ curl -OL https://kojipkgs.fedoraproject.org//work/tasks/8741/80818741/ruby-libs-debuginfo-3.1.0-1.fc36.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7666k  100 7666k    0     0  4904k      0  0:00:01  0:00:01 --:--:-- 4908k

$ rpmlint -t -T ./ruby-libs-debuginfo-3.1.0-1.fc36.x86_64.rpm
============================================================================================== rpmlint session starts =============================================================================================
rpmlint: 2.2.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: ruby.rpmlintrc
checks: 32, packages: 1

ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):20: E: use-of-RPM_SOURCE_DIR$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-build_assert\)$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-check_type\)$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-container_of\)$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-list\)$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "^rubygem-bundler\.noarch: E: non-executable-script /usr/share/gems/gems/bundler-[\d\.]+/lib/bundler/templates/[\w/\.]+ 644 /usr/bin/env "
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "^ruby-libs\.\w+: E: missing-call-to-chdir-with-chroot /usr/lib(64)?/libruby.so.[\d/.]+$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "^ruby-libs\.\w+: E: shared-library-without-dependency-information /usr/lib(64)?/ruby/enc/gb2312.so$"
ruby-libs-debuginfo.x86_64: E: unused-rpmlintrc-filter "^ruby-libs\.\w+: W: library-not-linked-against-libc /usr/lib64/ruby/.+.so$"
ruby-libs-debuginfo.x86_64: W: crypto-policy-non-compliance-openssl /usr/lib/debug/usr/lib64/ruby/openssl.so-3.1.0-1.fc36.x86_64.debug SSL_CTX_set_cipher_list
ruby-libs-debuginfo.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib/debug/usr/lib64/ruby/socket.so-3.1.0-1.fc36.x86_64.debug

Check time report (>1%):
    Check                            Duration (in s)   Fraction (in %)  Checked files
    BinariesCheck                             288.47              99.9             92
    TOTAL                                     288.63            100.00            365

cProfile report:
         1816310 function calls (1777394 primitive calls) in 289.037 seconds

   Ordered by: cumulative time
   List reduced from 1445 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000  288.714  288.714 /usr/lib/python3.10/site-packages/rpmlint/lint.py:101(run)
        1    0.000    0.000  288.714  288.714 /usr/lib/python3.10/site-packages/rpmlint/lint.py:58(_run)
        1    0.000    0.000  288.714  288.714 /usr/lib/python3.10/site-packages/rpmlint/lint.py:214(validate_files)
        1    0.000    0.000  288.714  288.714 /usr/lib/python3.10/site-packages/rpmlint/lint.py:252(validate_file)
        1    0.000    0.000  288.630  288.630 /usr/lib/python3.10/site-packages/rpmlint/lint.py:268(run_checks)
       17    0.000    0.000  288.491   16.970 /usr/lib/python3.10/site-packages/rpmlint/checks/AbstractCheck.py:14(check)
        1    0.010    0.010  288.475  288.475 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:584(check_binary)
       92    0.027    0.000  288.382    3.135 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:546(run_elf_checks)
      555    0.016    0.000  286.969    0.517 /usr/lib64/python3.10/subprocess.py:460(run)
      555    0.011    0.000  285.908    0.515 /usr/lib64/python3.10/subprocess.py:1105(communicate)
      552    0.081    0.000  285.745    0.518 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
     2931    0.047    0.000  285.436    0.097 /usr/lib64/python3.10/selectors.py:403(select)
     2931  285.381    0.097  285.381    0.097 {method 'poll' of 'select.poll' objects}
       92    0.003    0.000  239.541    2.604 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:348(__init__)
       92    0.001    0.000   49.125    0.534 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:79(__init__)
       92    0.029    0.000   49.124    0.534 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:86(parse)
       92    0.001    0.000   48.176    0.524 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:27(__init__)
       92    0.019    0.000   48.175    0.524 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:33(parse_dwarf_compilation_units)
       92    0.002    0.000   48.163    0.524 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:282(__init__)
       92    0.158    0.002   48.161    0.523 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:288(parse)
       92    0.001    0.000   48.078    0.523 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:220(__init__)
       92    0.005    0.000   48.075    0.523 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:227(parse)
       92    0.001    0.000   47.190    0.513 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:319(__init__)
       92    0.005    0.000   47.189    0.513 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:325(parse)
       92    0.001    0.000   46.981    0.511 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:148(__init__)
       92    0.015    0.000   46.980    0.511 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:154(parse)
      556    0.044    0.000    1.033    0.002 /usr/lib64/python3.10/subprocess.py:753(__init__)
      556    0.168    0.000    0.925    0.002 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
   130525    0.606    0.000    0.606    0.000 {method 'search' of 're.Pattern' objects}
     4903    0.394    0.000    0.394    0.000 {method 'acquire' of '_thread.lock' objects}

========================================================
         1816310 function calls (1777394 primitive calls) in 289.037 seconds

   Ordered by: call count
   List reduced from 1445 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   254826    0.036    0.000    0.036    0.000 {method 'append' of 'list' objects}
   216671    0.065    0.000    0.065    0.000 {method 'group' of 're.Match' objects}
   163093    0.037    0.000    0.040    0.000 {built-in method builtins.isinstance}
133001/123002    0.015    0.000    0.017    0.000 {built-in method builtins.len}
   130525    0.606    0.000    0.606    0.000 {method 'search' of 're.Pattern' objects}
    74794    0.016    0.000    0.023    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
    66270    0.021    0.000    0.021    0.000 {built-in method posix.fspath}
    59653    0.032    0.000    0.032    0.000 {method 'encode' of 'str' objects}
    59279    0.116    0.000    0.185    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
    45202    0.014    0.000    0.014    0.000 /usr/lib64/python3.10/sre_parse.py:233(__next)
    41319    0.027    0.000    0.027    0.000 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:39(__init__)
    38931    0.003    0.000    0.003    0.000 {built-in method builtins.ord}
    35439    0.009    0.000    0.020    0.000 /usr/lib64/python3.10/sre_parse.py:254(get)
    33308    0.009    0.000    0.011    0.000 /usr/lib64/python3.10/sre_parse.py:172(append)
    28624    0.011    0.000    0.011    0.000 {built-in method builtins.min}
    14965    0.003    0.000    0.003    0.000 {method 'startswith' of 'str' objects}
    11874    0.002    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:160(__len__)
    11264    0.003    0.000    0.006    0.000 /usr/lib64/python3.10/sre_parse.py:249(match)
10124/656    0.016    0.000    0.028    0.000 /usr/lib64/python3.10/sre_parse.py:174(getwidth)
    10054    0.003    0.000    0.003    0.000 {method 'strip' of 'str' objects}
     9954    0.003    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:111(__init__)
 9826/351    0.033    0.000    0.056    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
 9147/383    0.051    0.000    0.145    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
     8739    0.001    0.000    0.001    0.000 {built-in method builtins.max}
     7819    0.000    0.000    0.000    0.000 {method 'isspace' of 'str' objects}
     7802    0.001    0.000    0.001    0.000 {method 'isalnum' of 'str' objects}
     6708    0.004    0.000    0.004    0.000 {method 'split' of 'str' objects}
     6696    0.003    0.000    0.003    0.000 {method '__exit__' of '_thread.lock' objects}
     5433    0.007    0.000    0.011    0.000 /usr/lib64/python3.10/threading.py:264(__enter__)
     5433    0.007    0.000    0.009    0.000 /usr/lib64/python3.10/threading.py:267(__exit__)

========================================================
         1816310 function calls (1777394 primitive calls) in 289.037 seconds

   Ordered by: internal time
   List reduced from 1445 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     2931  285.381    0.097  285.381    0.097 {method 'poll' of 'select.poll' objects}
   130525    0.606    0.000    0.606    0.000 {method 'search' of 're.Pattern' objects}
     4903    0.394    0.000    0.394    0.000 {method 'acquire' of '_thread.lock' objects}
      556    0.376    0.001    0.376    0.001 {built-in method _posixsubprocess.fork_exec}
      556    0.168    0.000    0.925    0.002 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
       92    0.158    0.002   48.161    0.523 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:288(parse)
      192    0.121    0.001    0.121    0.001 {method 'read' of '_io.BufferedReader' objects}
    59279    0.116    0.000    0.185    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
      552    0.081    0.000  285.745    0.518 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
   216671    0.065    0.000    0.065    0.000 {method 'group' of 're.Match' objects}
 9147/383    0.051    0.000    0.145    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
     2931    0.047    0.000  285.436    0.097 /usr/lib64/python3.10/selectors.py:403(select)
      556    0.044    0.000    1.033    0.002 /usr/lib64/python3.10/subprocess.py:753(__init__)
   163093    0.037    0.000    0.040    0.000 {built-in method builtins.isinstance}
   254826    0.036    0.000    0.036    0.000 {method 'append' of 'list' objects}
     1235    0.035    0.000    0.035    0.000 {built-in method io.open}
 9826/351    0.033    0.000    0.056    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
    59653    0.032    0.000    0.032    0.000 {method 'encode' of 'str' objects}
     4038    0.031    0.000    0.031    0.000 {built-in method posix.read}
      381    0.029    0.000    0.029    0.000 {built-in method _thread.start_new_thread}
       35    0.029    0.001    0.029    0.001 {method 'read' of '_io.TextIOWrapper' objects}
       92    0.029    0.000   49.124    0.534 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:86(parse)
     2210    0.028    0.000    0.028    0.000 {method 'close' of '_io.TextIOWrapper' objects}
      553    0.028    0.000    0.028    0.000 {method 'splitlines' of 'str' objects}
       92    0.027    0.000  288.382    3.135 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:546(run_elf_checks)
    41319    0.027    0.000    0.027    0.000 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:39(__init__)
      556    0.024    0.000    0.024    0.000 {built-in method posix.waitpid}
     4054    0.023    0.000    0.035    0.000 /usr/lib64/python3.10/posixpath.py:71(join)
     2220    0.021    0.000    0.025    0.000 /usr/lib64/python3.10/threading.py:236(__init__)
    66270    0.021    0.000    0.021    0.000 {built-in method posix.fspath}

============================================================== 1 packages and 0 specfiles checked; 9 errors, 2 warnings, 9 badness; has taken 288.7 s =============================================================
marxin commented 2 years ago

I can confirm it comes from ReadelfParser which wraps readelf and parses various stuff. Please, re-test without the debug info packages. Is it still slooow?

voxik commented 2 years ago

I am afraid it is not any better. Using just ruby-libs instead:

$ curl -OL https://kojipkgs.fedoraproject.org//work/tasks/8741/80818741/ruby-libs-3.1.0-1.fc36.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3284k  100 3284k    0     0  2535k      0  0:00:01  0:00:01 --:--:-- 2536k

$ rpmlint -t -T ./ruby-libs-3.1.0-1.fc36.x86_64.rpm 
============================================================================================== rpmlint session starts =============================================================================================
rpmlint: 2.2.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: ruby.rpmlintrc
checks: 32, packages: 1

ruby-libs.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):20: E: use-of-RPM_SOURCE_DIR$"
ruby-libs.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-build_assert\)$"
ruby-libs.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-check_type\)$"
ruby-libs.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-container_of\)$"
ruby-libs.x86_64: E: unused-rpmlintrc-filter "ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-list\)$"
ruby-libs.x86_64: E: unused-rpmlintrc-filter "^rubygem-bundler\.noarch: E: non-executable-script /usr/share/gems/gems/bundler-[\d\.]+/lib/bundler/templates/[\w/\.]+ 644 /usr/bin/env "
ruby-libs.x86_64: W: obsolete-not-provided ruby-tcltk
ruby-libs.x86_64: W: obsolete-not-provided rubygem-net-telnet
ruby-libs.x86_64: W: obsolete-not-provided rubygem-xmlrpc
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/continuation.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/digest/bubblebabble.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cp949.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/emacs_mule.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/encdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_jp.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_kr.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_tw.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_1.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_10.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_11.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_13.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_14.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_15.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_16.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_2.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_3.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_4.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_6.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_7.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_9.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_r.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_u.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/shift_jis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/chinese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/ebcdic.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_iso2022_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_docomo.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_softbank.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/escape.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/iso2022.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_euc.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_sjis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/korean.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/single_byte.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/transdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/utf_16_32.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1250.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1251.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1252.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1253.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1257.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_31j.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/fcntl.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/rbconfig/sizeof.so
ruby-libs.x86_64: W: dangling-symlink /usr/share/ruby/io /usr/share/gems/gems/io-console-0.5.10/lib/io
ruby-libs.x86_64: W: crypto-policy-non-compliance-openssl /usr/lib64/ruby/openssl.so SSL_CTX_set_cipher_list
ruby-libs.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/ruby/socket.so

Check time report (>1%):
    Check                            Duration (in s)   Fraction (in %)  Checked files
    BinariesCheck                             286.48              99.9             92
    TOTAL                                     286.68            100.00            549

cProfile report:
         1695339 function calls (1656193 primitive calls) in 287.055 seconds

   Ordered by: cumulative time
   List reduced from 1498 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000  286.732  286.732 /usr/lib/python3.10/site-packages/rpmlint/lint.py:101(run)
        1    0.000    0.000  286.732  286.732 /usr/lib/python3.10/site-packages/rpmlint/lint.py:58(_run)
        1    0.000    0.000  286.732  286.732 /usr/lib/python3.10/site-packages/rpmlint/lint.py:214(validate_files)
        1    0.000    0.000  286.732  286.732 /usr/lib/python3.10/site-packages/rpmlint/lint.py:252(validate_file)
        1    0.000    0.000  286.678  286.678 /usr/lib/python3.10/site-packages/rpmlint/lint.py:268(run_checks)
       17    0.000    0.000  286.586   16.858 /usr/lib/python3.10/site-packages/rpmlint/checks/AbstractCheck.py:14(check)
        1    0.012    0.012  286.480  286.480 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:584(check_binary)
       92    0.019    0.000  286.447    3.114 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:546(run_elf_checks)
      555    0.016    0.000  285.708    0.515 /usr/lib64/python3.10/subprocess.py:460(run)
      555    0.012    0.000  284.601    0.513 /usr/lib64/python3.10/subprocess.py:1105(communicate)
      552    0.073    0.000  284.499    0.515 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
     1196    0.041    0.000  284.223    0.238 /usr/lib64/python3.10/selectors.py:403(select)
     1196  284.175    0.238  284.175    0.238 {method 'poll' of 'select.poll' objects}
       92    0.003    0.000  238.539    2.593 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:348(__init__)
       92    0.001    0.000   48.110    0.523 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:148(__init__)
       92    0.015    0.000   48.109    0.523 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:154(parse)
       92    0.001    0.000   47.755    0.519 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:282(__init__)
       92    0.043    0.000   47.754    0.519 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:288(parse)
       92    0.001    0.000   47.722    0.519 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:220(__init__)
       92    0.017    0.000   47.716    0.519 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:227(parse)
       92    0.001    0.000   47.532    0.517 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:79(__init__)
       92    0.023    0.000   47.531    0.517 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:86(parse)
       92    0.001    0.000   47.416    0.515 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:319(__init__)
       92    0.003    0.000   47.415    0.515 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:325(parse)
       92    0.001    0.000   47.328    0.514 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:27(__init__)
       92    0.004    0.000   47.328    0.514 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:33(parse_dwarf_compilation_units)
      556    0.045    0.000    1.079    0.002 /usr/lib64/python3.10/subprocess.py:753(__init__)
      556    0.174    0.000    0.967    0.002 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
      556    0.392    0.001    0.392    0.001 {built-in method _posixsubprocess.fork_exec}
     1837    0.019    0.000    0.332    0.000 /usr/lib64/python3.10/concurrent/futures/thread.py:155(submit)

========================================================
         1695339 function calls (1656193 primitive calls) in 287.055 seconds

   Ordered by: call count
   List reduced from 1498 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   221687    0.031    0.000    0.031    0.000 {method 'append' of 'list' objects}
   200803    0.119    0.000    0.119    0.000 {method 'search' of 're.Pattern' objects}
   175941    0.039    0.000    0.042    0.000 {built-in method builtins.isinstance}
131860/121870    0.014    0.000    0.016    0.000 {built-in method builtins.len}
    74361    0.015    0.000    0.023    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
    69246    0.023    0.000    0.023    0.000 {built-in method posix.fspath}
    60956    0.034    0.000    0.034    0.000 {method 'encode' of 'str' objects}
    60387    0.121    0.000    0.195    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
    44823    0.014    0.000    0.014    0.000 /usr/lib64/python3.10/sre_parse.py:233(__next)
    44365    0.003    0.000    0.003    0.000 {built-in method builtins.ord}
    43124    0.025    0.000    0.025    0.000 {method 'group' of 're.Match' objects}
    35058    0.009    0.000    0.019    0.000 /usr/lib64/python3.10/sre_parse.py:254(get)
    32935    0.008    0.000    0.010    0.000 /usr/lib64/python3.10/sre_parse.py:172(append)
    28600    0.013    0.000    0.013    0.000 {built-in method builtins.min}
    22289    0.003    0.000    0.003    0.000 {method 'startswith' of 'str' objects}
    11848    0.002    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:160(__len__)
    11260    0.003    0.000    0.006    0.000 /usr/lib64/python3.10/sre_parse.py:249(match)
10112/652    0.016    0.000    0.030    0.000 /usr/lib64/python3.10/sre_parse.py:174(getwidth)
     9944    0.003    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:111(__init__)
 9814/347    0.032    0.000    0.056    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
 9147/379    0.050    0.000    0.144    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
     8745    0.001    0.000    0.002    0.000 {built-in method builtins.max}
     7903    0.001    0.000    0.001    0.000 {built-in method sys.intern}
     7819    0.000    0.000    0.000    0.000 {method 'isspace' of 'str' objects}
     7802    0.001    0.000    0.001    0.000 {method 'isalnum' of 'str' objects}
     7252    0.004    0.000    0.004    0.000 {method '__exit__' of '_thread.lock' objects}
     6148    0.008    0.000    0.008    0.000 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:39(__init__)
     5984    0.007    0.000    0.011    0.000 /usr/lib64/python3.10/threading.py:264(__enter__)
     5984    0.007    0.000    0.009    0.000 /usr/lib64/python3.10/threading.py:267(__exit__)
     5835    0.003    0.000    0.003    0.000 {method 'split' of 'str' objects}

========================================================
         1695339 function calls (1656193 primitive calls) in 287.055 seconds

   Ordered by: internal time
   List reduced from 1498 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1196  284.175    0.238  284.175    0.238 {method 'poll' of 'select.poll' objects}
      556    0.392    0.001    0.392    0.001 {built-in method _posixsubprocess.fork_exec}
     5630    0.316    0.000    0.316    0.000 {method 'acquire' of '_thread.lock' objects}
      556    0.174    0.000    0.967    0.002 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
    60387    0.121    0.000    0.195    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
   200803    0.119    0.000    0.119    0.000 {method 'search' of 're.Pattern' objects}
      552    0.073    0.000  284.499    0.515 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
      429    0.059    0.000    0.059    0.000 {method 'read' of '_io.BufferedReader' objects}
 9147/379    0.050    0.000    0.144    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
      556    0.045    0.000    1.079    0.002 /usr/lib64/python3.10/subprocess.py:753(__init__)
       92    0.043    0.000   47.754    0.519 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:288(parse)
     2123    0.043    0.000    0.045    0.000 {built-in method io.open}
     1196    0.041    0.000  284.223    0.238 /usr/lib64/python3.10/selectors.py:403(select)
      652    0.041    0.000    0.085    0.000 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:521(grep)
   175941    0.039    0.000    0.042    0.000 {built-in method builtins.isinstance}
    60956    0.034    0.000    0.034    0.000 {method 'encode' of 'str' objects}
 9814/347    0.032    0.000    0.056    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
   221687    0.031    0.000    0.031    0.000 {method 'append' of 'list' objects}
       35    0.029    0.001    0.029    0.001 {method 'read' of '_io.TextIOWrapper' objects}
      380    0.029    0.000    0.029    0.000 {built-in method _thread.start_new_thread}
     2210    0.028    0.000    0.028    0.000 {method 'close' of '_io.TextIOWrapper' objects}
    43124    0.025    0.000    0.025    0.000 {method 'group' of 're.Match' objects}
      556    0.025    0.000    0.025    0.000 {built-in method posix.waitpid}
     4426    0.024    0.000    0.037    0.000 /usr/lib64/python3.10/posixpath.py:71(join)
     2304    0.024    0.000    0.024    0.000 {built-in method posix.read}
    69246    0.023    0.000    0.023    0.000 {built-in method posix.fspath}
       92    0.023    0.000   47.531    0.517 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:86(parse)
     1664    0.022    0.000    0.022    0.000 {built-in method posix.pipe}
     2403    0.021    0.000    0.025    0.000 /usr/lib64/python3.10/threading.py:236(__init__)
       33    0.020    0.001    0.038    0.001 /usr/lib/python3.10/site-packages/toml/decoder.py:165(loads)

============================================================= 1 packages and 0 specfiles checked; 6 errors, 69 warnings, 6 badness; has taken 286.7 s =============================================================
marxin commented 2 years ago

Hmm, it finishes in 2 seconds for me:

============================ rpmlint session starts ============================
rpmlint: 2.0.0
configuration:
    /home/marxin/Programming/rpmlint/rpmlint/configdefaults.toml
checks: 27, packages: 1

ruby-libs.x86_64: W: symlink-should-be-relative /usr/share/ruby/io /usr/share/gems/gems/io-console-0.5.10/lib/io
ruby-libs.x86_64: E: shared-library-without-dependency-information /usr/lib64/ruby/enc/gb2312.so
ruby-libs.x86_64: E: outside-libdir-files /usr/share/systemtap/tapset/libruby.so.3.1.stp
ruby-libs.x86_64: W: obsolete-not-provided ruby-tcltk
ruby-libs.x86_64: W: obsolete-not-provided rubygem-net-telnet
ruby-libs.x86_64: W: obsolete-not-provided rubygem-xmlrpc
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/lib/.build-id
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/lib/.build-id/ae
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/lib/.build-id/ba
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/lib/.build-id/cb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/lib/.build-id/da
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/lib/.build-id/de
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/doc/ruby-libs
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/doc/ruby-libs/NEWS.md
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/doc/ruby-libs/README.md
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/licenses/ruby-libs
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/licenses/ruby-libs/COPYING
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/licenses/ruby-libs/COPYING.ja
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/licenses/ruby-libs/GPL
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/licenses/ruby-libs/LEGAL
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/English.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/abbrev.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/benchmark
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/benchmark.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/benchmark/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/cookie.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/core.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/html.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/session
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/session.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/session/pstore.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/cgi/util.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/coverage.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/core_ext
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/core_ext/array.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/core_ext/string.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/delete_suffix.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/fields_converter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/input_record_separator.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/match_p.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/parser.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/row.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/table.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/csv/writer.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/date.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/delegate.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/core_ext
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/core_ext/name_error.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/experimental.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/formatter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/formatters
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/formatters/plain_formatter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/formatters/verbose_formatter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/jaro_winkler.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/levenshtein.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/key_error_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/method_name_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/name_error_checkers
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/name_error_checkers.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/null_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/pattern_key_name_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/spell_checkers/require_path_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/tree_spell_checker.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/verbose.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/did_you_mean/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/digest
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/digest.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/digest/loader.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/digest/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/acl.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/drb.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/eq.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/extserv.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/extservm.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/gw.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/invokemethod.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/observer.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/ssl.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/timeridconv.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/unix.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/drb/weakidconv.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/erb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/erb.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/erb/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/error_highlight
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/error_highlight.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/error_highlight/base.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/error_highlight/core_ext.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/error_highlight/formatter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/error_highlight/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/expect.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/closure.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/cparser.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/function.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/import.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/pack.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/struct.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/types.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/value.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fiddle/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/fileutils.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/find.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/forwardable
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/forwardable.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/forwardable/impl.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/getoptlong.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/io
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ipaddr.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/kconv.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger/errors.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger/formatter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger/log_device.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger/period.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger/severity.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/logger/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/mkmf.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/monitor.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/mutex_m.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/backward.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/exceptions.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/generic_request.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/header.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/proxy_delta.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/request.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/requests.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/response.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/responses.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/http/status.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/https.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/net/protocol.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/objspace
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/objspace.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/objspace/trace.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/observer.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/open-uri.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/bn.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/buffering.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/cipher.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/digest.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/hmac.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/marshal.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/pkey.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/ssl.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/openssl/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optionparser.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/ac.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/date.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/kwargs.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/shellwords.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/time.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/uri.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/optparse/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ostruct.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/pathname.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/pp.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/prettyprint.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/pstore.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/compat.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/debugflags.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/exception.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/grammar.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/grammarfileparser.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/info.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/iset.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/logfilegenerator.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/parser-text.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/parser.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/parserfilegenerator.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/sourcetext.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/state.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/statetransitiontable.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/racc/static.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/random
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/random/formatter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/readline.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/ansi.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/config.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/general_io.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/history.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_actor
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_actor.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_actor/base.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_actor/emacs.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_actor/vi_command.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_actor/vi_insert.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/key_stroke.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/kill_ring.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/line_editor.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/terminfo.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/unicode
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/unicode.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/unicode/east_asian_width.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/reline/windows.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/resolv-replace.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/resolv.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/rinda
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/rinda/rinda.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/rinda/ring.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/rinda/tuplespace.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ripper
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ripper.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ripper/core.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ripper/filter.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ripper/lexer.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/ripper/sexp.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/securerandom.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/set
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/set.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/set/sorted_set.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/shellwords.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/singleton.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/socket.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/syslog
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/syslog/logger.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/tempfile.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/time.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/timeout.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/tmpdir.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/tsort.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/un.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/unicode_normalize
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/unicode_normalize/normalize.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/unicode_normalize/tables.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/common.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/file.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/ftp.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/generic.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/http.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/https.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/ldap.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/ldaps.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/mailto.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/version.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/ws.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/uri/wss.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/vendor_ruby
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/weakref.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/yaml
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/yaml.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/yaml/dbm.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/ruby/yaml/store.rb
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/systemtap
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/systemtap/tapset
ruby-libs.x86_64: E: non-versioned-file-in-library-package /usr/share/systemtap/tapset/libruby.so.3.1.stp
ruby-libs.x86_64: E: no-signature
ruby-libs.x86_64: E: no-group-tag
ruby-libs.x86_64: E: library-without-ldconfig-postun /usr/lib64/libruby.so.3.1.0
ruby-libs.x86_64: E: library-without-ldconfig-postin /usr/lib64/libruby.so.3.1.0
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/continuation.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/digest/bubblebabble.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cp949.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/emacs_mule.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/encdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_jp.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_kr.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_tw.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_1.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_10.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_11.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_13.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_14.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_15.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_16.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_2.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_3.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_4.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_6.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_7.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_9.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_r.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_u.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/shift_jis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/chinese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/ebcdic.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_iso2022_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_docomo.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_softbank.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/escape.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/iso2022.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_euc.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_sjis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/korean.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/single_byte.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/transdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/utf_16_32.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1250.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1251.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1252.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1253.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1257.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_31j.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/fcntl.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/rbconfig/sizeof.so
ruby-libs.x86_64: W: invalid-license Ruby
ruby-libs.x86_64: W: invalid-license BSD
ruby-libs.x86_64: W: dangling-symlink /usr/share/ruby/io /usr/share/gems/gems/io-console-0.5.10/lib/io
ruby-libs.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/ruby/socket.so

Check time report (>1%):
    Check                            Duration (in s)   Fraction (in %)  Checked files
    BinariesCheck                               2.15              91.6             92
    BuildDateCheck                              0.05               2.0            549
    FilesCheck                                  0.04               1.9               
    BuildRootCheck                              0.04               1.8            549
    SignatureCheck                              0.03               1.3               
    TagsCheck                                   0.02               1.1               
    TOTAL                                       2.35            100.00            549

cProfile report:
         1799974 function calls (1761782 primitive calls) in 2.707 seconds

   Ordered by: cumulative time
   List reduced from 1520 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    2.421    2.421 /home/marxin/Programming/rpmlint/rpmlint/lint.py:101(run)
        1    0.000    0.000    2.421    2.421 /home/marxin/Programming/rpmlint/rpmlint/lint.py:58(_run)
        1    0.000    0.000    2.420    2.420 /home/marxin/Programming/rpmlint/rpmlint/lint.py:214(validate_files)
        1    0.000    0.000    2.420    2.420 /home/marxin/Programming/rpmlint/rpmlint/lint.py:252(validate_file)
        1    0.000    0.000    2.346    2.346 /home/marxin/Programming/rpmlint/rpmlint/lint.py:268(run_checks)
       16    0.000    0.000    2.244    0.140 /home/marxin/Programming/rpmlint/rpmlint/checks/AbstractCheck.py:14(check)
        1    0.006    0.006    2.150    2.150 /home/marxin/Programming/rpmlint/rpmlint/checks/BinariesCheck.py:585(check_binary)
       92    0.012    0.000    2.137    0.023 /home/marxin/Programming/rpmlint/rpmlint/checks/BinariesCheck.py:547(run_elf_checks)
      555    0.010    0.000    1.955    0.004 /usr/lib64/python3.8/subprocess.py:452(run)
       92    0.003    0.000    1.504    0.016 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:348(__init__)
      556    0.025    0.000    1.197    0.002 /usr/lib64/python3.8/subprocess.py:736(__init__)
      556    0.136    0.000    1.150    0.002 /usr/lib64/python3.8/subprocess.py:1552(_execute_child)
      555    0.005    0.000    0.745    0.001 /usr/lib64/python3.8/subprocess.py:984(communicate)
      552    0.032    0.000    0.660    0.001 /usr/lib64/python3.8/subprocess.py:1815(_communicate)
     1259    0.009    0.000    0.549    0.000 /usr/lib64/python3.8/selectors.py:402(select)
     1259    0.538    0.000    0.538    0.000 {method 'poll' of 'select.poll' objects}
     2303    0.498    0.000    0.498    0.000 {built-in method posix.read}
       92    0.001    0.000    0.473    0.005 /home/marxin/Programming/rpmlint/rpmlint/objdumpparser.py:27(__init__)
       92    0.002    0.000    0.472    0.005 /home/marxin/Programming/rpmlint/rpmlint/objdumpparser.py:33(parse_dwarf_compilation_units)
       92    0.001    0.000    0.378    0.004 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:282(__init__)
       92    0.016    0.000    0.377    0.004 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:288(parse)
       92    0.000    0.000    0.301    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:79(__init__)
       92    0.008    0.000    0.301    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:86(parse)
       92    0.001    0.000    0.286    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:148(__init__)
      556    0.286    0.001    0.286    0.001 {built-in method _posixsubprocess.fork_exec}
       92    0.007    0.000    0.286    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:154(parse)
       92    0.001    0.000    0.277    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:220(__init__)
       92    0.006    0.000    0.275    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:227(parse)
       92    0.001    0.000    0.258    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:319(__init__)
       92    0.002    0.000    0.258    0.003 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:325(parse)

========================================================
         1799974 function calls (1761782 primitive calls) in 2.707 seconds

   Ordered by: call count
   List reduced from 1520 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   224260    0.021    0.000    0.021    0.000 {method 'append' of 'list' objects}
   209613    0.028    0.000    0.030    0.000 {built-in method builtins.isinstance}
   199002    0.076    0.000    0.076    0.000 {method 'search' of 're.Pattern' objects}
131093/121434    0.012    0.000    0.014    0.000 {built-in method builtins.len}
   109134    0.012    0.000    0.012    0.000 {built-in method posix.fspath}
    98635    0.021    0.000    0.021    0.000 {method 'encode' of 'str' objects}
    98065    0.057    0.000    0.099    0.000 /usr/lib64/python3.8/os.py:800(fsencode)
    68624    0.015    0.000    0.023    0.000 /usr/lib64/python3.8/sre_parse.py:164(__getitem__)
    43117    0.011    0.000    0.011    0.000 {method 'group' of 're.Match' objects}
    40783    0.003    0.000    0.003    0.000 {built-in method builtins.ord}
    39803    0.014    0.000    0.014    0.000 /usr/lib64/python3.8/sre_parse.py:233(__next)
    30341    0.008    0.000    0.019    0.000 /usr/lib64/python3.8/sre_parse.py:254(get)
    29153    0.006    0.000    0.008    0.000 /usr/lib64/python3.8/sre_parse.py:172(append)
    27742    0.013    0.000    0.013    0.000 {built-in method builtins.min}
    20096    0.003    0.000    0.003    0.000 {method 'startswith' of 'str' objects}
    11301    0.002    0.000    0.003    0.000 /usr/lib64/python3.8/sre_parse.py:160(__len__)
    10912    0.003    0.000    0.007    0.000 /usr/lib64/python3.8/sre_parse.py:249(match)
 9756/535    0.013    0.000    0.027    0.000 /usr/lib64/python3.8/sre_parse.py:174(getwidth)
     9613    0.004    0.000    0.004    0.000 /usr/lib64/python3.8/sre_parse.py:111(__init__)
 9489/264    0.029    0.000    0.054    0.000 /usr/lib64/python3.8/sre_compile.py:71(_compile)
 8908/294    0.044    0.000    0.135    0.000 /usr/lib64/python3.8/sre_parse.py:493(_parse)
     8614    0.002    0.000    0.002    0.000 {built-in method builtins.max}
     7958    0.002    0.000    0.002    0.000 {built-in method sys.intern}
     7819    0.001    0.000    0.001    0.000 {method 'isspace' of 'str' objects}
     7802    0.001    0.000    0.001    0.000 {method 'isalnum' of 'str' objects}
     7761    0.003    0.000    0.004    0.000 /usr/lib64/python3.8/posixpath.py:41(_get_sep)
     6646    0.014    0.000    0.021    0.000 /usr/lib64/python3.8/posixpath.py:71(join)
     6148    0.004    0.000    0.004    0.000 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:39(__init__)
     6119    0.002    0.000    0.002    0.000 {method 'split' of 'str' objects}
     6094    0.008    0.000    0.033    0.000 /usr/lib64/python3.8/subprocess.py:1634(<genexpr>)

========================================================
         1799974 function calls (1761782 primitive calls) in 2.707 seconds

   Ordered by: internal time
   List reduced from 1520 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1259    0.538    0.000    0.538    0.000 {method 'poll' of 'select.poll' objects}
     2303    0.498    0.000    0.498    0.000 {built-in method posix.read}
      556    0.286    0.001    0.286    0.001 {built-in method _posixsubprocess.fork_exec}
      556    0.136    0.000    1.150    0.002 /usr/lib64/python3.8/subprocess.py:1552(_execute_child)
      490    0.081    0.000    0.081    0.000 {method 'read' of '_io.BufferedReader' objects}
   199002    0.076    0.000    0.076    0.000 {method 'search' of 're.Pattern' objects}
     3682    0.061    0.000    0.061    0.000 {method 'acquire' of '_thread.lock' objects}
    98065    0.057    0.000    0.099    0.000 /usr/lib64/python3.8/os.py:800(fsencode)
 8908/294    0.044    0.000    0.135    0.000 /usr/lib64/python3.8/sre_parse.py:493(_parse)
      652    0.041    0.000    0.086    0.000 /home/marxin/Programming/rpmlint/rpmlint/pkg.py:521(grep)
      552    0.032    0.000    0.660    0.001 /usr/lib64/python3.8/subprocess.py:1815(_communicate)
 9489/264    0.029    0.000    0.054    0.000 /usr/lib64/python3.8/sre_compile.py:71(_compile)
   209613    0.028    0.000    0.030    0.000 {built-in method builtins.isinstance}
      556    0.025    0.000    1.197    0.002 /usr/lib64/python3.8/subprocess.py:736(__init__)
      556    0.023    0.000    0.066    0.000 /usr/lib64/python3.8/subprocess.py:1101(_close_pipe_fds)
   224260    0.021    0.000    0.021    0.000 {method 'append' of 'list' objects}
    98635    0.021    0.000    0.021    0.000 {method 'encode' of 'str' objects}
     2122    0.020    0.000    0.023    0.000 {built-in method io.open}
       33    0.016    0.000    0.034    0.001 /usr/lib/python3.8/site-packages/toml/decoder.py:165(loads)
       92    0.016    0.000    0.377    0.004 /home/marxin/Programming/rpmlint/rpmlint/readelfparser.py:288(parse)
     1111    0.016    0.000    0.023    0.000 /usr/lib64/python3.8/contextlib.py:429(callback)
        1    0.015    0.015    0.015    0.015 /usr/lib/python3.8/site-packages/enchant/__init__.py:276(_request_dict_data)
    68624    0.015    0.000    0.023    0.000 /usr/lib64/python3.8/sre_parse.py:164(__getitem__)
    39803    0.014    0.000    0.014    0.000 /usr/lib64/python3.8/sre_parse.py:233(__next)
     6646    0.014    0.000    0.021    0.000 /usr/lib64/python3.8/posixpath.py:71(join)
 9756/535    0.013    0.000    0.027    0.000 /usr/lib64/python3.8/sre_parse.py:174(getwidth)
    27742    0.013    0.000    0.013    0.000 {built-in method builtins.min}
131093/121434    0.012    0.000    0.014    0.000 {built-in method builtins.len}
       92    0.012    0.000    2.137    0.023 /home/marxin/Programming/rpmlint/rpmlint/checks/BinariesCheck.py:547(run_elf_checks)
   109134    0.012    0.000    0.012    0.000 {built-in method posix.fspath}

 1 packages and 0 specfiles checked; 277 errors, 71 warnings, 277 badness; has taken 2.4 s 
voxik commented 2 years ago

There set of check enabled on Fedora is quite customized looking at the configuration files. Can there be some heavyweight check enabled comparing to defaults?

marxin commented 2 years ago

Check time report (>1%): Check Duration (in s) Fraction (in %) Checked files BinariesCheck 288.47 99.9 92

No, it all comes from the BinariesCheck, it seems readelf runs enormously long for you for some reason. Can you please perf record it?

voxik commented 2 years ago

Interesting. I have expanded the build I was testing and the latest official build:

$ time readelf -W -S usr/lib64/libruby.so.3.1.0 
There are 32 section headers, starting at offset 0x3ca2e8:

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .note.gnu.property NOTE            00000000000002e0 0002e0 000030 00   A  0   0  8
  [ 2] .note.gnu.build-id NOTE            0000000000000310 000310 000024 00   A  0   0  4
  [ 3] .gnu.hash         GNU_HASH        0000000000000338 000338 00349c 00   A  4   0  8
  [ 4] .dynsym           DYNSYM          00000000000037d8 0037d8 00c720 18   A  5   1  8
  [ 5] .dynstr           STRTAB          000000000000fef8 00fef8 009050 00   A  0   0  1
  [ 6] .gnu.version      VERSYM          0000000000018f48 018f48 001098 02   A  4   0  2
  [ 7] .gnu.version_r    VERNEED         0000000000019fe0 019fe0 0001c0 00   A  5   4  8
  [ 8] .rela.dyn         RELA            000000000001a1a0 01a1a0 00f840 18   A  4   0  8
  [ 9] .rela.plt         RELA            00000000000299e0 0299e0 009240 18  AI  4  23  8
  [10] .init             PROGBITS        0000000000033000 033000 00001b 00  AX  0   0  4
  [11] .plt              PROGBITS        0000000000033020 033020 006190 10  AX  0   0 16
  [12] .text             PROGBITS        00000000000391b0 0391b0 25f592 00  AX  0   0 16
  [13] .fini             PROGBITS        0000000000298744 298744 00000d 00  AX  0   0  4
  [14] .rodata           PROGBITS        0000000000299000 299000 0b2a6c 00   A  0   0 32
  [15] .stapsdt.base     PROGBITS        000000000034ba6c 34ba6c 000001 00   A  0   0  1
  [16] .eh_frame_hdr     PROGBITS        000000000034ba70 34ba70 00da44 00   A  0   0  4
  [17] .eh_frame         PROGBITS        00000000003594b8 3594b8 0544c8 00   A  0   0  8
  [18] .tbss             NOBITS          00000000003af050 3ae050 000010 00 WAT  0   0  8
  [19] .init_array       INIT_ARRAY      00000000003af050 3ae050 000008 08  WA  0   0  8
  [20] .fini_array       FINI_ARRAY      00000000003af058 3ae058 000008 08  WA  0   0  8
  [21] .data.rel.ro      PROGBITS        00000000003af060 3ae060 006230 00  WA  0   0 32
  [22] .dynamic          DYNAMIC         00000000003b5290 3b4290 000240 10  WA  5   0  8
  [23] .got              PROGBITS        00000000003b54d0 3b44d0 003b20 08  WA  0   0  8
  [24] .data             PROGBITS        00000000003b9000 3b8000 000248 00  WA  0   0 32
  [25] .probes           PROGBITS        00000000003b9248 3b8248 00002c 00  WA  0   0  2
  [26] .bss              NOBITS          00000000003b9280 3b8274 011f98 00  WA  0   0 32
  [27] .note.stapsdt     NOTE            0000000000000000 3b8274 000eb4 00      0   0  4
  [28] .gnu.build.attributes NOTE            00000000003cd218 3b9128 00059c 00      0   0  4
  [29] .gnu_debuglink    PROGBITS        0000000000000000 3b96c4 000030 00      0   0  4
  [30] .gnu_debugdata    PROGBITS        0000000000000000 3b96f4 010aa4 00      0   0  1
  [31] .shstrtab         STRTAB          0000000000000000 3ca198 000149 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  D (mbind), l (large), p (processor specific)

real    0m0,615s
user    0m0,137s
sys 0m0,009s

$ time readelf -W -S usr/lib64/libruby.so.3.0.3 
There are 32 section headers, starting at offset 0x381d68:

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .note.gnu.property NOTE            00000000000002e0 0002e0 000030 00   A  0   0  8
  [ 2] .note.gnu.build-id NOTE            0000000000000310 000310 000024 00   A  0   0  4
  [ 3] .gnu.hash         GNU_HASH        0000000000000338 000338 003358 00   A  4   0  8
  [ 4] .dynsym           DYNSYM          0000000000003690 003690 00bf88 18   A  5   1  8
  [ 5] .dynstr           STRTAB          000000000000f618 00f618 008946 00   A  0   0  1
  [ 6] .gnu.version      VERSYM          0000000000017f5e 017f5e 000ff6 02   A  4   0  2
  [ 7] .gnu.version_r    VERNEED         0000000000018f58 018f58 0001b0 00   A  5   4  8
  [ 8] .rela.dyn         RELA            0000000000019108 019108 00ea48 18   A  4   0  8
  [ 9] .rela.plt         RELA            0000000000027b50 027b50 008cd0 18  AI  4  23  8
  [10] .init             PROGBITS        0000000000031000 031000 00001b 00  AX  0   0  4
  [11] .plt              PROGBITS        0000000000031020 031020 005df0 10  AX  0   0 16
  [12] .text             PROGBITS        0000000000036e10 036e10 230f92 00  AX  0   0 16
  [13] .fini             PROGBITS        0000000000267da4 267da4 00000d 00  AX  0   0  4
  [14] .rodata           PROGBITS        0000000000268000 268000 0a7f1e 00   A  0   0 32
  [15] .stapsdt.base     PROGBITS        000000000030ff1e 30ff1e 000001 00   A  0   0  1
  [16] .eh_frame_hdr     PROGBITS        000000000030ff20 30ff20 00ca44 00   A  0   0  4
  [17] .eh_frame         PROGBITS        000000000031c968 31c968 04abf0 00   A  0   0  8
  [18] .tbss             NOBITS          0000000000368950 367950 000010 00 WAT  0   0  8
  [19] .init_array       INIT_ARRAY      0000000000368950 367950 000008 08  WA  0   0  8
  [20] .fini_array       FINI_ARRAY      0000000000368958 367958 000008 08  WA  0   0  8
  [21] .data.rel.ro      PROGBITS        0000000000368960 367960 005c30 00  WA  0   0 32
  [22] .dynamic          DYNAMIC         000000000036e590 36d590 000240 10  WA  5   0  8
  [23] .got              PROGBITS        000000000036e7d0 36d7d0 003818 08  WA  0   0  8
  [24] .data             PROGBITS        0000000000372000 371000 000248 00  WA  0   0 32
  [25] .probes           PROGBITS        0000000000372248 371248 00002c 00  WA  0   0  2
  [26] .bss              NOBITS          0000000000372280 371274 0107c8 00  WA  0   0 32
  [27] .note.stapsdt     NOTE            0000000000000000 371274 000f28 00      0   0  4
  [28] .gnu.build.attributes NOTE            0000000000384a48 37219c 0005ac 00      0   0  4
  [29] .gnu_debuglink    PROGBITS        0000000000000000 372748 000034 00      0   0  4
  [30] .gnu_debugdata    PROGBITS        0000000000000000 37277c 00f4a0 00      0   0  1
  [31] .shstrtab         STRTAB          0000000000000000 381c1c 000149 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  D (mbind), l (large), p (processor specific)

real    0m0,006s
user    0m0,003s
sys 0m0,003s

So it is quite fast on the old version but slow with the new version. I'll report this against elfutils in Fedora.

voxik commented 2 years ago

I'll report this against elfutils in Fedora.

https://bugzilla.redhat.com/show_bug.cgi?id=2037423

marxin commented 2 years ago

So it is quite fast on the old version but slow with the new version. I'll report this against elfutils in Fedora.

Interesting, I guess it's related to debuginfod that downloads a debug info for the binary.

marxin commented 2 years ago

All right, so we need to use --debug-dump=no-follow-links that is present is recent binutils. Lemme prepare a patch.

voxik commented 2 years ago

The ab476fe on itself improves situation:

$ rpmlint -t -T ./ruby-libs-3.1.0-1.fc36.x86_64.rpm 
============================================================================================== rpmlint session starts =============================================================================================
rpmlint: 2.2.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 1

ruby-libs.x86_64: E: shared-library-without-dependency-information /usr/lib64/ruby/enc/gb2312.so
ruby-libs.x86_64: W: obsolete-not-provided ruby-tcltk
ruby-libs.x86_64: W: obsolete-not-provided rubygem-net-telnet
ruby-libs.x86_64: W: obsolete-not-provided rubygem-xmlrpc
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/continuation.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/digest/bubblebabble.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cp949.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/emacs_mule.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/encdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_jp.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_kr.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_tw.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_1.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_10.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_11.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_13.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_14.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_15.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_16.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_2.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_3.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_4.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_6.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_7.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_9.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_r.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_u.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/shift_jis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/chinese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/ebcdic.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_iso2022_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_docomo.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_softbank.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/escape.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/iso2022.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_euc.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_sjis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/korean.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/single_byte.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/transdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/utf_16_32.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1250.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1251.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1252.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1253.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1257.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_31j.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/fcntl.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/rbconfig/sizeof.so
ruby-libs.x86_64: W: dangling-symlink /usr/share/ruby/io /usr/share/gems/gems/io-console-0.5.10/lib/io
ruby-libs.x86_64: W: crypto-policy-non-compliance-openssl /usr/lib64/ruby/openssl.so SSL_CTX_set_cipher_list
ruby-libs.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/ruby/socket.so

Check time report (>1%):
    Check                            Duration (in s)   Fraction (in %)  Checked files
    BinariesCheck                              49.39              99.6             92
    TOTAL                                      49.60            100.00            549

cProfile report:
         1694511 function calls (1655466 primitive calls) in 49.988 seconds

   Ordered by: cumulative time
   List reduced from 1494 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000   49.652   49.652 /usr/lib/python3.10/site-packages/rpmlint/lint.py:101(run)
        1    0.000    0.000   49.652   49.652 /usr/lib/python3.10/site-packages/rpmlint/lint.py:58(_run)
        1    0.000    0.000   49.652   49.652 /usr/lib/python3.10/site-packages/rpmlint/lint.py:214(validate_files)
        1    0.000    0.000   49.652   49.652 /usr/lib/python3.10/site-packages/rpmlint/lint.py:252(validate_file)
        1    0.000    0.000   49.597   49.597 /usr/lib/python3.10/site-packages/rpmlint/lint.py:268(run_checks)
       17    0.000    0.000   49.498    2.912 /usr/lib/python3.10/site-packages/rpmlint/checks/AbstractCheck.py:14(check)
        1    0.008    0.008   49.386   49.386 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:584(check_binary)
       92    0.009    0.000   49.344    0.536 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:546(run_elf_checks)
      647    0.008    0.000   48.995    0.076 /usr/lib64/python3.10/subprocess.py:460(run)
      647    0.005    0.000   48.513    0.075 /usr/lib64/python3.10/subprocess.py:1105(communicate)
      552    0.028    0.000   47.539    0.086 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
     1197    0.015    0.000   47.432    0.040 /usr/lib64/python3.10/selectors.py:403(select)
     1197   47.415    0.040   47.415    0.040 {method 'poll' of 'select.poll' objects}
       92    0.000    0.000   45.116    0.490 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:27(__init__)
       92    0.002    0.000   45.116    0.490 /usr/lib/python3.10/site-packages/rpmlint/objdumpparser.py:33(parse_dwarf_compilation_units)
       92    0.003    0.000    3.879    0.042 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:353(__init__)
       94    0.001    0.000    0.997    0.011 /usr/lib64/python3.10/subprocess.py:373(check_output)
      126    0.902    0.007    0.903    0.007 {method 'read' of '_io.TextIOWrapper' objects}
       92    0.001    0.000    0.742    0.008 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:79(__init__)
       92    0.010    0.000    0.742    0.008 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:87(parse)
       92    0.000    0.000    0.631    0.007 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:149(__init__)
       92    0.006    0.000    0.631    0.007 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:156(parse)
       92    0.000    0.000    0.556    0.006 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:285(__init__)
       92    0.012    0.000    0.556    0.006 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:292(parse)
       92    0.000    0.000    0.545    0.006 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:222(__init__)
       92    0.005    0.000    0.543    0.006 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:230(parse)
      648    0.021    0.000    0.468    0.001 /usr/lib64/python3.10/subprocess.py:753(__init__)
       92    0.000    0.000    0.467    0.005 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:323(__init__)
       92    0.001    0.000    0.467    0.005 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:330(parse)
      648    0.070    0.000    0.417    0.001 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)

========================================================
         1694511 function calls (1655466 primitive calls) in 49.988 seconds

   Ordered by: call count
   List reduced from 1494 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   219742    0.019    0.000    0.019    0.000 {method 'append' of 'list' objects}
   200775    0.086    0.000    0.086    0.000 {method 'search' of 're.Pattern' objects}
   175745    0.022    0.000    0.024    0.000 {built-in method builtins.isinstance}
131658/121699    0.013    0.000    0.015    0.000 {built-in method builtins.len}
    73674    0.016    0.000    0.024    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
    69516    0.009    0.000    0.009    0.000 {built-in method posix.fspath}
    61048    0.013    0.000    0.013    0.000 {method 'encode' of 'str' objects}
    60479    0.046    0.000    0.075    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
    44233    0.015    0.000    0.015    0.000 /usr/lib64/python3.10/sre_parse.py:233(__next)
    43827    0.003    0.000    0.003    0.000 {built-in method builtins.ord}
    43117    0.008    0.000    0.008    0.000 {method 'group' of 're.Match' objects}
    34486    0.009    0.000    0.020    0.000 /usr/lib64/python3.10/sre_parse.py:254(get)
    32368    0.008    0.000    0.010    0.000 /usr/lib64/python3.10/sre_parse.py:172(append)
    28521    0.013    0.000    0.013    0.000 {built-in method builtins.min}
    22289    0.003    0.000    0.003    0.000 {method 'startswith' of 'str' objects}
    11781    0.002    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:160(__len__)
    11215    0.003    0.000    0.007    0.000 /usr/lib64/python3.10/sre_parse.py:249(match)
10075/639    0.017    0.000    0.030    0.000 /usr/lib64/python3.10/sre_parse.py:174(getwidth)
     9913    0.003    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:111(__init__)
 9783/340    0.034    0.000    0.059    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
 9129/372    0.053    0.000    0.150    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
     8735    0.001    0.000    0.002    0.000 {built-in method builtins.max}
     7898    0.002    0.000    0.002    0.000 {built-in method sys.intern}
     7819    0.000    0.000    0.000    0.000 {method 'isspace' of 'str' objects}
     7802    0.001    0.000    0.001    0.000 {method 'isalnum' of 'str' objects}
     7346    0.002    0.000    0.002    0.000 {method '__exit__' of '_thread.lock' objects}
     6148    0.002    0.000    0.002    0.000 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:39(__init__)
     5985    0.004    0.000    0.007    0.000 /usr/lib64/python3.10/threading.py:264(__enter__)
     5985    0.005    0.000    0.006    0.000 /usr/lib64/python3.10/threading.py:267(__exit__)
     5830    0.002    0.000    0.002    0.000 {method 'split' of 'str' objects}

========================================================
         1694511 function calls (1655466 primitive calls) in 49.988 seconds

   Ordered by: internal time
   List reduced from 1494 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1197   47.415    0.040   47.415    0.040 {method 'poll' of 'select.poll' objects}
      126    0.902    0.007    0.903    0.007 {method 'read' of '_io.TextIOWrapper' objects}
     5359    0.191    0.000    0.191    0.000 {method 'acquire' of '_thread.lock' objects}
      648    0.185    0.000    0.185    0.000 {built-in method _posixsubprocess.fork_exec}
   200775    0.086    0.000    0.086    0.000 {method 'search' of 're.Pattern' objects}
      648    0.070    0.000    0.417    0.001 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
      429    0.059    0.000    0.059    0.000 {method 'read' of '_io.BufferedReader' objects}
 9129/372    0.053    0.000    0.150    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
    60479    0.046    0.000    0.075    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
      652    0.043    0.000    0.091    0.000 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:521(grep)
 9783/340    0.034    0.000    0.059    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
      552    0.028    0.000   47.539    0.086 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
     2214    0.024    0.000    0.027    0.000 {built-in method io.open}
   175745    0.022    0.000    0.024    0.000 {built-in method builtins.isinstance}
      648    0.021    0.000    0.468    0.001 /usr/lib64/python3.10/subprocess.py:753(__init__)
       33    0.021    0.001    0.040    0.001 /usr/lib/python3.10/site-packages/toml/decoder.py:165(loads)
   219742    0.019    0.000    0.019    0.000 {method 'append' of 'list' objects}
      381    0.018    0.000    0.018    0.000 {built-in method _thread.start_new_thread}
10075/639    0.017    0.000    0.030    0.000 /usr/lib64/python3.10/sre_parse.py:174(getwidth)
    73674    0.016    0.000    0.024    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
     1197    0.015    0.000   47.432    0.040 /usr/lib64/python3.10/selectors.py:403(select)
    44233    0.015    0.000    0.015    0.000 /usr/lib64/python3.10/sre_parse.py:233(__next)
     2404    0.014    0.000    0.016    0.000 /usr/lib64/python3.10/threading.py:236(__init__)
    61048    0.013    0.000    0.013    0.000 {method 'encode' of 'str' objects}
     2394    0.013    0.000    0.013    0.000 {method 'close' of '_io.TextIOWrapper' objects}
    28521    0.013    0.000    0.013    0.000 {built-in method builtins.min}
131658/121699    0.013    0.000    0.015    0.000 {built-in method builtins.len}
      648    0.012    0.000    0.012    0.000 {built-in method posix.waitpid}
        1    0.012    0.012    0.051    0.051 /usr/lib/python3.10/site-packages/rpmlint/checks/FilesCheck.py:423(check)
       92    0.012    0.000    0.556    0.006 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:292(parse)

============================================================== 1 packages and 0 specfiles checked; 1 errors, 69 warnings, 1 badness; has taken 49.7 s =============================================================

But it seems the full #785 is needed to have reasonable preformance:

$ rpmlint -t -T ./ruby-libs-3.1.0-1.fc36.x86_64.rpm 
============================================================================================== rpmlint session starts =============================================================================================
rpmlint: 2.2.0
configuration:
    /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 1

ruby-libs.x86_64: E: shared-library-without-dependency-information /usr/lib64/ruby/enc/gb2312.so
ruby-libs.x86_64: W: obsolete-not-provided ruby-tcltk
ruby-libs.x86_64: W: obsolete-not-provided rubygem-net-telnet
ruby-libs.x86_64: W: obsolete-not-provided rubygem-xmlrpc
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/continuation.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/digest/bubblebabble.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/cp949.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/emacs_mule.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/encdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_jp.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_kr.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/euc_tw.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_1.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_10.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_11.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_13.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_14.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_15.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_16.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_2.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_3.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_4.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_6.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_7.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/iso_8859_9.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_r.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/koi8_u.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/shift_jis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/big5.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/cesu_8.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/chinese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/ebcdic.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_iso2022_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_docomo.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_kddi.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/emoji_sjis_softbank.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/escape.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gb18030.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/gbk.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/iso2022.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_euc.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/japanese_sjis.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/korean.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/single_byte.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/transdb.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/trans/utf_16_32.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_16le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32be.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/utf_32le.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1250.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1251.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1252.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1253.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1254.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_1257.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/enc/windows_31j.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/fcntl.so
ruby-libs.x86_64: W: library-not-linked-against-libc /usr/lib64/ruby/rbconfig/sizeof.so
ruby-libs.x86_64: W: dangling-symlink /usr/share/ruby/io /usr/share/gems/gems/io-console-0.5.10/lib/io
ruby-libs.x86_64: W: crypto-policy-non-compliance-openssl /usr/lib64/ruby/openssl.so SSL_CTX_set_cipher_list
ruby-libs.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/ruby/socket.so

Check time report (>1%):
    Check                            Duration (in s)   Fraction (in %)  Checked files
    BinariesCheck                               2.55              91.9             92
    FilesCheck                                  0.05               1.9               
    BuildDateCheck                              0.05               1.9            549
    BuildRootCheck                              0.05               1.7            549
    TOTAL                                       2.77            100.00            549

cProfile report:
         1624675 function calls (1585630 primitive calls) in 3.180 seconds

   Ordered by: cumulative time
   List reduced from 1492 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    2.842    2.842 /usr/lib/python3.10/site-packages/rpmlint/lint.py:101(run)
        1    0.000    0.000    2.842    2.842 /usr/lib/python3.10/site-packages/rpmlint/lint.py:58(_run)
        1    0.000    0.000    2.841    2.841 /usr/lib/python3.10/site-packages/rpmlint/lint.py:214(validate_files)
        1    0.000    0.000    2.841    2.841 /usr/lib/python3.10/site-packages/rpmlint/lint.py:252(validate_file)
        1    0.000    0.000    2.775    2.775 /usr/lib/python3.10/site-packages/rpmlint/lint.py:268(run_checks)
       17    0.000    0.000    2.674    0.157 /usr/lib/python3.10/site-packages/rpmlint/checks/AbstractCheck.py:14(check)
        1    0.004    0.004    2.551    2.551 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:586(check_binary)
       92    0.005    0.000    2.529    0.027 /usr/lib/python3.10/site-packages/rpmlint/checks/BinariesCheck.py:546(run_elf_checks)
      555    0.004    0.000    2.409    0.004 /usr/lib64/python3.10/subprocess.py:460(run)
       92    0.002    0.000    2.381    0.026 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:353(__init__)
      555    0.003    0.000    2.139    0.004 /usr/lib64/python3.10/subprocess.py:1105(communicate)
      460    0.015    0.000    1.651    0.004 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
     1011    0.008    0.000    1.594    0.002 /usr/lib64/python3.10/selectors.py:403(select)
     1011    1.585    0.002    1.585    0.002 {method 'poll' of 'select.poll' objects}
       94    0.001    0.000    0.484    0.005 /usr/lib64/python3.10/subprocess.py:373(check_output)
       92    0.000    0.000    0.432    0.005 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:285(__init__)
       92    0.010    0.000    0.431    0.005 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:292(parse)
      126    0.422    0.003    0.423    0.003 {method 'read' of '_io.TextIOWrapper' objects}
       92    0.000    0.000    0.390    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:79(__init__)
       92    0.006    0.000    0.390    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:87(parse)
       92    0.000    0.000    0.383    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:149(__init__)
       92    0.004    0.000    0.383    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:156(parse)
       92    0.000    0.000    0.382    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:222(__init__)
       92    0.004    0.000    0.380    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:230(parse)
       92    0.000    0.000    0.372    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:323(__init__)
       92    0.001    0.000    0.372    0.004 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:330(parse)
        1    0.000    0.000    0.284    0.284 /usr/lib/python3.10/site-packages/rpmlint/lint.py:303(load_checks)
       32    0.000    0.000    0.284    0.009 /usr/lib/python3.10/site-packages/rpmlint/lint.py:314(load_check)
      556    0.012    0.000    0.263    0.000 /usr/lib64/python3.10/subprocess.py:753(__init__)
   112/35    0.000    0.000    0.249    0.007 <frozen importlib._bootstrap>:1022(_find_and_load)

========================================================
         1624675 function calls (1585630 primitive calls) in 3.180 seconds

   Ordered by: call count
   List reduced from 1492 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
   213949    0.016    0.000    0.016    0.000 {method 'append' of 'list' objects}
   200775    0.075    0.000    0.075    0.000 {method 'search' of 're.Pattern' objects}
   164061    0.016    0.000    0.018    0.000 {built-in method builtins.isinstance}
131374/121415    0.011    0.000    0.013    0.000 {built-in method builtins.len}
    73674    0.016    0.000    0.024    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
    58752    0.005    0.000    0.005    0.000 {built-in method posix.fspath}
    51020    0.008    0.000    0.008    0.000 {method 'encode' of 'str' objects}
    50451    0.025    0.000    0.041    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
    44233    0.014    0.000    0.014    0.000 /usr/lib64/python3.10/sre_parse.py:233(__next)
    43827    0.003    0.000    0.003    0.000 {built-in method builtins.ord}
    43117    0.006    0.000    0.006    0.000 {method 'group' of 're.Match' objects}
    34486    0.009    0.000    0.020    0.000 /usr/lib64/python3.10/sre_parse.py:254(get)
    32368    0.008    0.000    0.011    0.000 /usr/lib64/python3.10/sre_parse.py:172(append)
    28521    0.015    0.000    0.015    0.000 {built-in method builtins.min}
    22289    0.003    0.000    0.003    0.000 {method 'startswith' of 'str' objects}
    11781    0.002    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:160(__len__)
    11215    0.003    0.000    0.006    0.000 /usr/lib64/python3.10/sre_parse.py:249(match)
10075/639    0.023    0.000    0.040    0.000 /usr/lib64/python3.10/sre_parse.py:174(getwidth)
     9913    0.003    0.000    0.003    0.000 /usr/lib64/python3.10/sre_parse.py:111(__init__)
 9783/340    0.034    0.000    0.058    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
 9129/372    0.051    0.000    0.156    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
     8735    0.002    0.000    0.002    0.000 {built-in method builtins.max}
     7898    0.002    0.000    0.002    0.000 {built-in method sys.intern}
     7819    0.000    0.000    0.000    0.000 {method 'isspace' of 'str' objects}
     7802    0.001    0.000    0.001    0.000 {method 'isalnum' of 'str' objects}
     7251    0.001    0.000    0.001    0.000 {method '__exit__' of '_thread.lock' objects}
     6148    0.002    0.000    0.002    0.000 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:39(__init__)
     5738    0.002    0.000    0.002    0.000 {method 'split' of 'str' objects}
     5434    0.002    0.000    0.010    0.000 /usr/lib64/python3.10/threading.py:264(__enter__)
     5434    0.002    0.000    0.003    0.000 /usr/lib64/python3.10/threading.py:267(__exit__)

========================================================
         1624675 function calls (1585630 primitive calls) in 3.180 seconds

   Ordered by: internal time
   List reduced from 1492 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     1011    1.585    0.002    1.585    0.002 {method 'poll' of 'select.poll' objects}
      126    0.422    0.003    0.423    0.003 {method 'read' of '_io.TextIOWrapper' objects}
      556    0.107    0.000    0.107    0.000 {built-in method _posixsubprocess.fork_exec}
     5330    0.084    0.000    0.084    0.000 {method 'acquire' of '_thread.lock' objects}
   200775    0.075    0.000    0.075    0.000 {method 'search' of 're.Pattern' objects}
      429    0.060    0.000    0.060    0.000 {method 'read' of '_io.BufferedReader' objects}
 9129/372    0.051    0.000    0.156    0.000 /usr/lib64/python3.10/sre_parse.py:493(_parse)
      652    0.045    0.000    0.096    0.000 /usr/lib/python3.10/site-packages/rpmlint/pkg.py:521(grep)
      556    0.038    0.000    0.235    0.000 /usr/lib64/python3.10/subprocess.py:1682(_execute_child)
 9783/340    0.034    0.000    0.058    0.000 /usr/lib64/python3.10/sre_compile.py:71(_compile)
    50451    0.025    0.000    0.041    0.000 /usr/lib64/python3.10/os.py:804(fsencode)
10075/639    0.023    0.000    0.040    0.000 /usr/lib64/python3.10/sre_parse.py:174(getwidth)
       33    0.020    0.001    0.038    0.001 /usr/lib/python3.10/site-packages/toml/decoder.py:165(loads)
     2030    0.018    0.000    0.021    0.000 {built-in method io.open}
   164061    0.016    0.000    0.018    0.000 {built-in method builtins.isinstance}
   213949    0.016    0.000    0.016    0.000 {method 'append' of 'list' objects}
    73674    0.016    0.000    0.024    0.000 /usr/lib64/python3.10/sre_parse.py:164(__getitem__)
    28521    0.015    0.000    0.015    0.000 {built-in method builtins.min}
      460    0.015    0.000    1.651    0.004 /usr/lib64/python3.10/subprocess.py:1947(_communicate)
    44233    0.014    0.000    0.014    0.000 /usr/lib64/python3.10/sre_parse.py:233(__next)
        1    0.013    0.013    0.053    0.053 /usr/lib/python3.10/site-packages/rpmlint/checks/FilesCheck.py:423(check)
      556    0.012    0.000    0.263    0.000 /usr/lib64/python3.10/subprocess.py:753(__init__)
131374/121415    0.011    0.000    0.013    0.000 {built-in method builtins.len}
       92    0.010    0.000    0.431    0.005 /usr/lib/python3.10/site-packages/rpmlint/readelfparser.py:292(parse)
        1    0.009    0.009    0.009    0.009 /usr/lib/python3.10/site-packages/enchant/__init__.py:276(_request_dict_data)
    34486    0.009    0.000    0.020    0.000 /usr/lib64/python3.10/sre_parse.py:254(get)
      357    0.009    0.000    0.011    0.000 /usr/lib/python3.10/site-packages/toml/decoder.py:609(_unescape)
    32368    0.008    0.000    0.011    0.000 /usr/lib64/python3.10/sre_parse.py:172(append)
    51020    0.008    0.000    0.008    0.000 {method 'encode' of 'str' objects}
     2309    0.008    0.000    0.008    0.000 {method '__enter__' of '_thread.lock' objects}

============================================================== 1 packages and 0 specfiles checked; 1 errors, 69 warnings, 1 badness; has taken 2.9 s ==============================================================

Thx for the fix :+1:

marxin commented 2 years ago

Thx for the fix +1

You're welcome, 3s is a reasonable time for a package. I know that the parsing can be improved (using multiple threads), but I haven't found enough motivation doing that.