Obsidian-StudiosInc / entrance

General purpose Display Manager built on the Enlightenment Foundation Libraries (EFL)
GNU General Public License v3.0
24 stars 10 forks source link

Failing to run entrance locally #33

Closed rafspiny closed 5 years ago

rafspiny commented 5 years ago

Description

Unable to run entrance locally.

Steps to reproduce

  1. Run ./utils/local_build.sh

16:45 $ ./utils/local_build.sh The Meson build system Version: 0.46.1 Source dir: /data/projects/entrance Build dir: /data/projects/entrance/build Build type: native build Project name: entrance Native C compiler: cc (gcc 6.4.0 "gcc (Gentoo 6.4.0-r1 p1.3) 6.4.0") Build machine cpu family: x86_64 Build machine cpu: x86_64 Library crypt found: YES Found pkg-config: /usr/bin/pkg-config (0.29.2) Native dependency elementary found: YES 1.21.99.59806 Native dependency ecore-x found: YES 1.21.99.59806 Native dependency edje found: YES 1.21.99.59806 Native dependency xcb found: YES 1.13 Library pam found: YES Has header "alloca.h": YES Configuring config.h using configuration Configuring entrance.conf using configuration Configuring entrance using configuration Program /data/projects/entrance/meson-chmod.sh found: YES (/data/projects/entrance/meson-chmod.sh) Build targets in project: 6 Found ninja-1.8.2 at /usr/bin/ninja scan-build: Using '/usr/lib64/llvm/6/bin/clang-6.0' for static analysis ninja: Entering directory `build' [6/20] Compiling C object 'src/bin/src@bin@@entrance_client@exe/entrance_login.c.o'. ../src/bin/entrance_login.c: In function ‘_login_auth_cb’: ../src/bin/entrance_login.c:216:40: warning: unused parameter ‘user’ [-Wunused-parameter] _login_auth_cb(void data, const char user, Eina_Bool granted) ^~~~ [20/20] Generating default.edj with a custom command. scan-build: Removing directory '/tmp/scan-build-2018-11-05-164529-6980-1' because it contains no reports. scan-build: No bugs found.


2. Run ./utils/entrance_xephyr.sh

> INF<7356>:entrance ../src/daemon/entrance_config.c:87 _users_get() entrance: Updating configuration

The only thing I see is a blank screen.
![entrance_xephyr](https://user-images.githubusercontent.com/1770381/48008887-d5f80280-e11a-11e8-81e2-7f4ec6dce07b.png)

3. I though I should have started an entrance client, so I ran 
> DISPLAY=:1.0 ./build/test/entrance/entrance_client -d=:1.0 -p=43 -t=default
>
> ../src/bin/entrance_client.c:87 root gid not allowed, defaulting to nobody
> ../src/bin/entrance_client.c:94 root uid not allowed, defaulting to nobody
> ../src/bin/entrance_client.c:107 login init
> ../src/bin/entrance_client.c:109 gui init
> ../src/bin/entrance_gui.c:79 Gui init: default
> ../src/bin/entrance_client.c:111 connect init
> ../src/bin/entrance_connect.c:243 client connected to server
> ../src/bin/entrance_connect.c:39 disconnected

Basically, it seems like I got immediately disconnected.

## How entrance is started
I am using the scripts in the utils folder

## System information
- OS: Gentoo Linux
- Pam enabled
- Consolekit disabled
- Systemd
- EFL Version: 999, from git

Probably, it is just my lack of knowledge about X and entrance. Nevertheless, a small wiki page to explain how this is supposed to be used, would help.
wltjr commented 5 years ago

This is a known issue #30 that broke between beta and actual releases. Anything since 1.21.1 including git has this issue. I have spent time investigating without any luck. I need to rebuild EFL reverting commits between beta and release 1.21.1.

Sadly upstream does not care about entrance at all. They want to make E such that it can be a desktop, wm and a login manager. I am not aware of any efforts to make it such. Most presently start E from the command line.

I have spent several hours looking into this. It is very odd. Everything starts without, the cursor moves with the mouse, yet the display never renders. Like an event did not take place, or a focus issue. There were not that many commits between beta and release of 1.21.1, but one of them did break entrance. Or I need to do something else to get the UI to start/render, I am presently lacking. Its really chasing a needle in a hay stack.

wltjr commented 5 years ago

If you switch to EFL 1.20.7, or anything before 1.21.1 release it works fine. I will fix it ASAP. It halted my progress with wayland integration via dbus using elogind or logind.

rafspiny commented 5 years ago

Thanks! I did not realised it was the same as #30. I will try EFL 1.20.7 tonight btw.

wltjr commented 5 years ago

No worries, I did a really bad job of describing the issue in #30. I mostly did it as a reminder to fix entrance. I assumed at the time it was a trivial problem to resolve. Now I know otherwise, and have no clue how long it will take to fix. It should be something minor, but I must find the needle in the hay stack. That upstream is moving to more Wayland and less X stuff. That does not help either.

I want to move Entrance to Wayland, but it still needs to support both, for running Entrance UI itself under X or Wayland, in addition to launching X or Wayland sessions. I was working on the session part. Now I may have to see about running entrance UI under Wayland to fix the issue. I feel like it is something X related, though maybe not. Since X starts, cursor moves with mouse, just the EFL/Elementary stuff never starts it seems. Though no errors during startup. Seems like maybe a focus issue or something waiting, for an event. The UI does not seem to know it needs to start or something.

rafspiny commented 5 years ago

Thanks for the explanation. I tried EFL 1.20.7 and it is working like you said. If I may help you with testing, just let me know.

wltjr commented 5 years ago

There were not that many commits, only 2 pages of history, between efl-1.21.0-beta2 and the released efl-1.21.1. Something in that set of commits is what broke entrance on EFL 1.21.1. I need to review each, and/or revert them one by one to find the cause.

I feel like its some API or change in EFL, like with focus or something. That causes things to not fully start. But could be something else, something with the change in default EFL themes, or other.

rafspiny commented 5 years ago

Yesterday I narrowed it down to this list: From 1c029b8fd96599bbb14965fa436efa265da5dd96 to 65c6b158f928d25bdd9f3dfe2e90e335016982fa

I will finish the search for the commit tonight

wltjr commented 5 years ago

Excellent! Thank you very much for your time in looking into this issue. Hopefully you can find the commit that broke entrance. If not, I should have time for this in a couple weeks, once I wrap up some other stuff. My plan was just to create some reverse patches to undo the commits, till I found one that restored Entrance functionality. Then I would look further into that change to see if it is an API change or breakage. Either way again I appreciate your time and effort!

rafspiny commented 5 years ago

Sure, no problem. With git bisect I found out breaking commit. Possibly, setting the prop.override can do the trick for the moment.

wltjr commented 5 years ago

@rafspiny You rock man! Thanks for locating that commit and the suggestion for a fix. I was able to resolve this for myself locally. This should resolve the issue for you and others. I can finally upgrade EFL on my laptop. I have had entrance running via auto-login on my desktop to get around the GUI issues. Now I no longer have to do that, though likely will leave auto-login in place on my desktop.

I can also get back to furthering entrance, like dbus integration for Wayland. I rather avoid having to do any system calls to like loginctrl to start the session for Wayland, seat, etc. I want to do that via dbus. I was making progress with initial dbus integration till this issue came up and prevented all progress.

Once again a HUGE thanks!!!

wltjr commented 5 years ago

This did fix running entrance via xephyr, but there is another issue under EFL 1.21.1 for regular usage. I opened issue #34. I have dealt with the similar symptoms quite a lot. I thought I had all those resolved. It is likely something I can fix. If you log in via auto-login and then log out, it launches the client UI without issue. It is just on first start for regular log in. That is odd, but maybe something else changed in order of initializing things under 1.21.1 or side effect of the override property. But at least I can work on it locally again :+1: