CSUF LogoCSUF Site Navigation
optics.csufresno.edu

F12 Enlightenment DR17 (E17) E17 Entrance Setup

Department of Electrical and Computer Engineering
Associate Professor Gregory R. Kriehn
Forums
Wiki
F12 E17 Entrance Setup



WARNING:  ENTRANCE BROKEN


Entrance seems to currently be broken beyond repair, at least when trying to integrate it into Fedora 12. Despite repeated attempts, I have not been able to get Entrance to work, even when temporarily disabling SELinux. Therefore, I strongly suggest that you do not try to integrate Entrance into your Enlightenment experience at this point in time. I am keeping the old version of this page up for archival purposes, however, in the hope that if the situation changes, I can update this page.

If you happen to get Entrance to work, please send me an e-mail detailing how you accomplished the task.




entrance is the login manager for Enlightenment. I enjoy using it due its nifty effects, although it is not without problems. There is currently a bug in entrance that will not allow users using the csh or tcsh shell to login properly, but since I have now switched to bash, I have sidestepped the problem.

NOTE:  Entrance seems to be having major SELinux and pam.d conflicts with Fedora 12. Until I get all of the issues sorted out, the only way to get it working properly is to first disable SELinux:

~> sudo setenforce 0
Since I do not like disabling SELinux, I am not currently using Entrance as my Login Manager. Furthermore, Entrance is no longer working correctly with pam, meaning that sound is not working either (this is a common problem with Entrance). I'm not happy about this since Fedora 12's gdm is horrific... ...but with Entrance somewhat non-functional, there is little choice in the matter.

I have verified that the following procedure does work on Fedora 12 with SELinux disabled, though.

Assuming that it has been compiled properly, there are still three or four main issues that need to be addressed to get entrance working properly:

Integrating Enlightenment into the Xsession file


The first thing we need to do is edit /etc/X11/xinit/Xsession with sudo and add a few lines for Enlightenment, so that entrance knows that it is available for use. Locate the relevant parts in the file, and insert the following text, as necessary:
[SNIP]

    case "$1" in
        failsafe)
            exec -l $SHELL -c "xterm -geometry 80x24-0-0"
            ;;
        # The following lines have been added.
        enlightenment)
            exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"enlightenment\""
            ;;
        # End of changes.
        gnome|gnome-session)
            # lack of SSH_AGENT is intentional, see #441123.  though
            # the whole thing should really happen in xinitrc.d anyway.
            exec -l $SHELL -c gnome-session
            exec -l $SHELL -c gnome-session
            exec /bin/sh -c "exec -l $SHELL -c \"gnome-session\""
            ;;
        kde|kde1|kde2)
            exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"startkde\""
            ;;
        twm)
            # fall back to twm
            exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"twm\""
            ;;
        *)

[SNIP]
exec $CK_XINIT_SESSION $SSH_AGENT /bin/sh -c "exec -l $SHELL -c \"enlightenment\"" should span a single line.

Configuration of the xserver location

If you used my RPMs or the easy_e17.sh script to install E17, you should be able to skip over this section. But if you are using Didier's old repositories, entrance may be setup for a system that still uses X11R6 from X.org (the Foundation that creates the X Window System) instead of the new X11R7 files that were first introduced in Fedora Core 5. This can be checked with the following command:
~> entrance_edit
Look at the second line. If it says:
xserver = "/usr/X11R6/bin/X -quiet -nolisten tcp vt7"
you have a problem and entrance will not launch successfully. It will certainly try after you have finished the other configuration steps (as can be verified by checking your /var/log/messages file), but it will still fail because X.org now uses X11R7 instead of X11R6. Notice the old release notes of Fedora Core 5, and see the third point in particular:



The following list includes some of the more visible changes for developers in X11R7:

* The entire build system has changed from imake to the GNU autotools collection.

* Libraries now install pkgconfig *.pc files, which should now always be used by software that depends on these libraries, instead of hard coding paths to them in /usr/X11R6/lib or elsewhere.

* Everything is now installed directly into /usr instead of /usr/X11R6. All software that hard codes paths to anything in /usr/X11R6 must now be changed, preferably to dynamically detect the proper location of the object. Developers are strongly advised against hard-coding the new X11R7 default paths.

* Every library has its own private source RPM package, which creates a runtime binary subpackage and a -devel subpackage.



Specific to entrance, notice that it looks for X in /usr/X11R6/bin, instead of in /usr/bin, where everything is now installed. This can be fixed by executing the following command:

~> sudo entrance_edit --xserver "/usr/bin/X -quiet -nolisten tcp vt7"
Now run:
~> entrance_edit
The second line should now say:
xserver = "/usr/bin/X -quiet -nolisten tcp vt7"
entrance will now run, but only if the /etc/entrance_config.cfg is not changed again (say, when updated rpm packages are installed). I have asked Didier to change his configuration scripts when he develops new rpm packages for entrance, and I believe that the problem is now permanently fixed. But if it crops up again, you now know how to fix it.

Edit /etc/X11/prefdm to use entrance as the Default Login Manager

Edit /etc/X11/prefdm using sudo. Locate the relevant parts in the file, and insert the following text, as necessary:
[SNIP]

if [ -f /etc/sysconfig/desktop ]; then
        . /etc/sysconfig/desktop
        if [ "$DISPLAYMANAGER" = GNOME ]; then
                preferred=/usr/sbin/gdm
                quit_arg="--retain-splash"
        # The following lines have been added.
        # Note that the DISPLAYMANAGER variable
        # must be used in /etc/sysconfig/desktop.
        elif [ "$DISPLAYMANAGER" = E17 ]; then
                preferred=/usr/sbin/entranced
        # End of changes.
        elif [ "$DISPLAYMANAGER" = KDE ]; then
                preferred=/usr/bin/kdm
        elif [ "$DISPLAYMANAGER" = XDM ]; then
                preferred=/usr/bin/xdm
        elif [ -n "$DISPLAYMANAGER" ]; then
                preferred=$DISPLAYMANAGER
        fi
fi

[SNIP]

# Fallbacks, in order
exec gdm "$@" >/dev/null 2>&1 </dev/null
# The following lines have been added.
exec entranced "$@" >/dev/null 2>&1 </dev/null
#End of changes.
exec kdm "$@" >/dev/null 2>&1 </dev/null

[SNIP]
If you prefer to fallback to entranced first, opposed to gnome (or something else), you can just move the new fallback code to the desired place with regard to the order of importance (i.e., before the gdm snippet).

NOTE:  If you are using the easy_e17.sh script, and entrance was installed by default to /usr/local/sbin/, then the preferred line should read:

preferred=/usr/local/sbin/entranced
Configuring /etc/sysconfig/desktop

Finally, we must change /etc/sysconfig/desktop:
DISPLAYMANAGER="E17"
Finally, hit Ctrl-Alt-F1 (hold all three down at once), and login to a terminal. After logging in, type:
~> sudo init 3
to change your Run Level to Multi-User Mode. This will kill gdm, the Gnome daemon and login manager. Then change your Run Level back to Full Multi-User Mode (X-based logins):
~> sudo init 5
If you have enough time before X launches, you can just "exit" from the terminal. After waiting a couple of seconds, entrance should now successfully launch.

If you do not wish to use entrance, the only thing that needs to be changed from now on is the variable in /etc/sysconfig/desktop (and changing back and forth between Run Levels 3 and 5). My /etc/sysconfig/desktop file currently looks like:
DISPLAYMANAGER="E17"
#DISPLAYMANAGER="GNOME"
If I want to run Gnome, I comment out the E17 line and uncomment the GNOME line.

Overall, integrating entrance properly into Fedora is a bit complicated, but it works.  Next up, is General Configuration for E17.