Page MenuHomePhabricator

Terminology 1.7.0 no input reaction to keystrokes
Closed, InvalidPublic

Description

Hello world :-)

Terminology 1.6.0 works fine on FreeBSD with older and newer EFL+E. 1.7.0 does build okay but does not work - no reaction to keystrokes. It shows menu, can change settings, can copy, shows motd, but terminal itself is deaf does not listen to any key or paste.

Was there any important change that can cause this behaviour?

Any hints welcome :-)

cederom created this task.May 14 2020, 8:17 AM

If you create a new terminal from the menu, is it better?
What if you focus/unfocus the window?

Hello @billiob and thank you for quick response :-)

Running from Menu does not change anything. I am launching from iBar icon :-)

Focusing/unfocusing also doest not change anything.

Running from a terminal shows this errors on keystroke I hope that helps:

Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<44422>:ecore ../src/lib/ecore/ecore_main.c:1356 _ecore_main_fd_handler_add() Failed to add poll on fd 29 (errno = 22: Invalid argument)!
ERR<45309>:ecore ../src/lib/ecore/ecore_main.c:1356 _ecore_main_fd_handler_add() Failed to add poll on fd 29 (errno = 22: Invalid argument)!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set() Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!
ERR<98561>:ecore ../src/lib/ecore/ecore_main.c:1647 ecore_main_fd_handler_active_set()
Failed to mod epoll fd 43, loop data=0x8024614b0: Invalid argument!

Would it be possible for you to compile terminology 1.6.0 with the same efl version?

Sure thing, I am porting EFL+E to FreeBSD so no problem with building and patching :-)

I am working fine on 1.6.0 (port updated from 1.4.1) on the same EFL (1.23.3) and E (0.23.1) :-)

There are some changes in src/bin/termpty.c but I don't see why it should fail.

@cederom

Can you show the build options for EFL? There should be no reference to epoll

I think you have some other package installed which is causing EFL to build with epoll support?

I'm running terminology fine here on OpenBSD and FreeBSD.

cederom added a comment.EditedMay 14 2020, 1:00 PM

Hey @netstar :-) Which version of Terminology on which E and EFL?

Yes probably I messed up the EFL configuration still experimenting with that.. but on those settings 1.6.0 works fine ;-)

Do you have a recommended EFL config that would exclude Linux specific stuff? :-)

I'm runnning E 24.0 and EFL 1.24 and Terminology 1.7.0 on FreeBSD 12.1 and OpenBSD 6.7-beta

@cederom Are you building in unclean environment? It might be that build system picks stuff from libepoll-shim FreeBSD package.

That sounds about right @arrowdodger

These goes the port updates tickets and whole ports sources / patches are there too:

Yes the libepoll-shim is installed:

# pkg info libepoll-shim
libepoll-shim-0.0.20200223
Name           : libepoll-shim
Version        : 0.0.20200223
Installed on   : Mon Apr  6 15:22:02 2020 CEST
Origin         : devel/libepoll-shim
Architecture   : FreeBSD:12:amd64
Prefix         : /usr/local
Categories     : devel
Licenses       : MIT
Maintainer     : x11@FreeBSD.org
WWW            : https://github.com/jiixyj/epoll-shim
Comment        : Small epoll implementation using kqueue
Shared Libs provided:
        libepoll-shim.so.0
Annotations    :
        FreeBSD_version: 1201000
        repo_type      : binary
        repository     : FreeBSD
Flat size      : 40.9KiB
Description    :
epoll-shim is a small library that implements epoll on top of kqueue. It
has been successfully used to port libinput, libevdev, Wayland and more
software to FreeBSD.

WWW: https://github.com/jiixyj/epoll-shim

Follow that guide - remove the libepoll-shim package as suggested by @arrowdodger

Thank you! :-) The best way to build/install is to use port :-) This is why I am updating the port :-)

By the way @netstar did you manage to run EFL+E+ Wayland on FreeBSD? I am encountering some E build errors. EFL is now building fine with wl switch :-)

Please advise the FreeBSD port maintainers not to build with wayland support . It does not work, it merely builds.

Follow the guide as above.

Well, it looks like I am updating the port, because no one did that so far ;-)

It may not be possible to simply remove libepoll-shim as other packages and libraried depends on it:

 # pkg info -r libepoll-shim
libepoll-shim-0.0.20200223:
	hikari-1.1.1
	efl-1.23.3
	freerdp-2.0.0.r4_8
	libinput-1.15.5
	wayland-1.18.0_3
	libevdev-1.5.9_1

Why does 1.6.0 works with this shim and 1.7.0 does not?

netstar closed this task as Invalid.May 14 2020, 1:25 PM

@cederom

EFL

meson build -Dsystemd=false -Deeze=false

Enlightenment

meson -Dsystemd=false -Ddevice-udev=false build

If you need more help open another ticket and add me to it.

Closing this terminology ticket (not a bug)

The problem with Terminology 1.7.0 is not fixed, exactly the same setup and 1.6.0 works fine, I cannot remove libepoll-shim from system because other applications depend on it. Will report a working solution if I find one. Thanks for your quick response :-)

Did you build EFL with those flags?

You cannot build a port package with all this other software installed.

billiob added a comment.EditedMay 14 2020, 1:47 PM

Your terminology 1.6.0 is probably linked with an other version of efl, one that was compiled when epoll-shim wasn't installed.

@cederom,
Try to build EFL and Terminology in jail with the strict minimum of other software installed. Terminology and Enlightenment from Git work fine here with EFL 1.24 on FreeBSD 11.3.

Thank you for your feedback that it works for you, this is valuable input.

I am building both 1.6.0 and 1.7.0 from scratch on the same machine.

epoll-shim is required by other packages and cannot be removed from the system. If presence of that package impacts Terminology then terminology build scripts need fix.

I need more free time to explore and test all EFL build options. At the moment it seems shim is on the dependencies list.

Thank you for your time :-)

arrowdodger added a comment.EditedMay 15 2020, 12:32 AM

epoll-shim is required by other packages and cannot be removed from the system. If presence of that package impacts Terminology then terminology build scripts need fix.

That's correct. If epoll thing has respective dependency line in meson.build, it should be conditionally stubbed out for FreeBSD. If not, the #include <epoll.h> should be guarded with #ifndef __FreeBSD__.

cederom added a comment.EditedMay 15 2020, 4:07 AM

I can confirm that this is the EFL build time configuration issue. Older EFL build works fine with Terminology 1.7.0. I will looks into that epoll stuff in a free moment. Thank you!! :-)

It's just

header_checks = [
  ...
  'sys/epoll.h',
  ...
]

in header_checks/meson.build

And then many

# ifdef HAVE_SYS_EPOLL_H

in differend code files.

I would ask another question - why does it bug in ecore_main.c, trying to use epoll mechanism? If the header, installed by libepoll-shim, is present - probably we need to add the library somewhere?

@cederom,
I cannot reproduce your problem on my test PC under FreeBSD 12.1.
I have libepoll-shim package installed, but during the configuration of EFL meson does not detect sys/epoll.h header. I have it installed in /usr/local/include/libepoll-shim/sys/epoll.h and I have CFLAGS=-I/usr/local/include exported, but meson does not detect it. Don't you have a symlink of this file in /usr/include for any reason?

@cederom,
It seems that has_header meson function is not recursive.
I could reproduce your problem creating symlinks of epoll.h in /usr/local/include/sys or in /usr/include/sys
I don't know why do you have such links (or strange CFLAGS=I/usr/local/include/libepoll-shim) but anyway it is not a standard situation. So I think that libepoll-shim package installed would not prevent correct building of EFL without epoll.

cederom added a comment.EditedMay 15 2020, 3:46 PM

Thank you @Peter2121.. I had to modify one header that was linux specific in order to make VNC server work:

https://phab.enlightenment.org/T8713

Maybe this is the problem? But I cannot see any other includes over there.

I also noticed that my recent compilation of EFL lags terribly in performance. The old build works fine (I am using it right now) and the 1.7.0 works here too. Some crazy dependencies seems to jump in when enabling all features. For sure I have messed up the build flags and/or configuration. Wanted to keep the old port habits of configuration (using configure), but I will change it so it reflect the new build system. I have to focus on EFL build parameters carefully now. Once again big thank you for your feedback and time!!

Btw. is there any easy way to see what features and parameters EFL was compiled with? :-)

This comment was removed by Peter2121.