Eterm and Enlightenment Window Manager on Unstable Debian non-systemd
Built Eterm and Enlightenment Window Manager 0.21.stu.xyz from E git repositories in this non-systemd Debian Unstable (Sid) local instance. It's not the first time that I build E, obviously, as elsewhere there is another post from previous E version that could not just be built.
I had to first download dependencies prior to building E21:
Shell
apt-get update | |
apt-get install libcurl4-gnutls-dev libgstreamer-plugins-base1.0-dev libsndfile1-dev libqt4-opengl-dev libqt5opengl5-dev libc6-dev zlib1g-dev libfreetype6-dev fontconfig libharfbuzz-dev libpng-dev libblkid-dev libbullet-dev libfribidi-dev libjpeg-dev libluajit-5.1-dev libmount-dev libraw-dev librsvg2-dev libx11-dev libxext-dev libxrender-dev libxcomposite-dev libxdamage-dev libwebp-dev libxfixes-dev libxrandr-dev libxinerama-dev libspectre-dev libgstreamer1.0-dev libtiff5-dev libgif-dev libvlc-dev libxcb-dpms0-dev libxcb-keysyms1-dev libxcb-xprint0-dev libxcb-xtest0-dev libxcursor-dev libxine2-dev libxkbfile-dev libxp-dev libxcb-shape0-dev libudev-dev libdbus-1-dev libasound2-dev libpoppler-dev libxcb1-dev libxss-dev libssl-dev libpulse-dev x11proto-print-dev libxtst-dev libpam0g-dev make libgles2-mesa-dev libpoppler-cpp-dev check doxygen automake autoconf libtool pkg-config texinfo sed libgcrypt-dev connman-dev libbluetooth-dev |
Sept. 09, 2017: libxcb-xprint0-dev, libxp-dev, and libeina1 may be omitted If your environment is Debian Stretch.
IMPORTANT NOTE! If you have built your own X Window System, for instance X.org, and its installation path prefix is not /usr
, to avoid error output similar to:
[...]
checking for X11/Xresource.h... yes
checking for evas_engine_gl_xlib... yes
checking for XCreateColormap... yes
checking for XRenderCreatePicture... yes
checking for GL/gl.h... yes
checking whether pthread_create() is supported... yes
checking for glXCreateContext in -lGL... no
checking for GLES2/gl2.h... yes
checking for glTexImage2D in -lGLESv2... no
configure: error: OpenGL XLib dependencies not found
you must direct EFL where to search by setting variables:
Shell
TLALOC=/your/custom/X-path | |
export PKG_CONFIG_PATH=$TLALOC/lib/pkgconfig:$TLALOC/share/pkgconfig |
and possibly:
Shell
export ACLOCAL="aclocal -I $TLALOC/share/aclocal" |
END OF IMPORTANT NOTE!
E21 sources have been narrowed to EFL and Enlightenment, itself. Accordingly, I git cloned source as:
Shell
git clone git://git.enlightenment.org/core/efl.git/ | |
git clone git://git.enlightenment.org/core/enlightenment.git/ |
Specifying --prefix=/usr to configure EFL causes make
to stop during subsequent build of Enlightenment, and outputs:
CCLD src/modules/gadman/module.la
/usr/bin/eldbus-codegen: symbol lookup error: /usr/lib/libefl.so.1: undefined symbol: _efl_object_init_generation
make[2]: *** [src/modules/geolocation/eldbus_geo_clue2_client.c] Error 127
Makefile:17585: recipe for target 'src/modules/geolocation/eldbus_geo_clue2_client.c' failed
make[2]: Leaving directory '/usr/src/build/enlightenment/git08-11-2016/enlightenment'
make[1]: *** [all-recursive] Error 1
Makefile:16462: recipe for target 'all-recursive' failed
make[1]: Leaving directory '/usr/src/build/enlightenment/git08-11-2016/enlightenment'
make: *** [all] Error 2
Makefile:4990: recipe for target 'all' failed
accordingly, I had to install EFL to /usr/local/ (which is the default installation path)
Shell
cd efl | |
./autogen.sh --with-x --with-opengl=full --disable-systemd | |
make | |
sudo make install | |
sudo ldconfig |
Note (1) Consider adding directive --with-crypto=gnutls
to ./autogen.sh in above command, if during make EFL procedure you encounter openssl errors in lib/emile/emile_image.c
1.
Note (2) After ./autogen.sh finished, its final output was:
#-------------------------------------------------------------------#
##==-- ALERT --==##
#-------------------------------------------------------------------#Your installation prefix is *NOT* /usr so this means you need
to ensure some files are visible to dbus otherwise services cannot
be started when needed. You will need to do the following:System-wide installation:
ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.serviceor add "/usr/local/share" to $XDG_DATA_DIRS
User installation:
ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service ~/.local/share/dbus-1/services/org.enlightenment.Ethumb.service#-------------------------------------------------------------------#
I proceeded to install Enlightenment (please note the prefix):
Shell
cd enlightenment | |
./autogen.sh --prefix=/usr --disable-systemd --with-profile=FAST_PC | |
make | |
sudo make install | |
sudo ldconfig |
Please note above directive explicitly disabling systemd; again this Debian instance is not tainted with that.
After the build procedure completed successfully, I adhered to the prefious EFL guidance:
System-wide installation:
Shell
ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service /usr/share/dbus-1/services/org.enlightenment.Ethumb.service |
or add "/usr/local/share" to $XDG_DATA_DIRS
User installation:
Shell
ln -s /usr/local/share/dbus-1/services/org.enlightenment.Ethumb.service ~/.local/share/dbus-1/services/org.enlightenment.Ethumb.service |
Building Eterm
So I wanted to build Eterm; thus, following instructions from Eterm.org I had to fulfill requirements from Debian repository:
Shell
apt-get install libimlib2-dev libast2-dev libxt-dev |
Last package required; otherwise, during make
:
In file included from feature.h:100:0,
from actions.c:27:
/usr/include/libast.h:77:28: fatal error: X11/Intrinsic.h: No such file or directory
# include <X11/Intrinsic.h>
^
compilation terminated.
make[2]: *** [actions.lo] Error 1
Makefile:415: recipe for target 'actions.lo' failed
Then proceeded with the usual way to build and install software in GNU/Linux:
Shell
wget http://www.eterm.org/download/Eterm-0.9.6.tar.gz | |
tar -xvPf Eterm-0.9.6.tar.gz | |
cd Eterm-0.9.6 | |
./configure --prefix=/usr --with-x --enable-trans | |
make | |
sudo make install |
Setting Up Eterm to Emerge Upon Enlightenment Instantiation
Logged into your Debian as yourself in your home directory, create directory .Eterm and setup your first theme, get-E.
Shell
mkdir --verbose -p .Eterm/themes | |
cd .Eterm/themes | |
wget http://www.eterm.org/themes/0.9.x/get-E-Eterm-theme.tar.gz | |
tar -xvPf get-E-Eterm-theme.tar.gz | |
cd get-E | |
rm -iv pixmaps.list | |
ln -s /usr/share/Eterm/pix/pixmaps.list pixmaps.list |
You may delete now your tarred download get-E-Eterm-theme.tar.gz.
Now you may use XDM to manage your login and use .xsession script in your home directory to provide you with a one or couple of Eterm windows when Enlightenment starts up. For instance, your .xsession file may contain:
#!/bin/sh
# below you set a root background picture
Esetroot /home/you/Pictures/xyz.jpg && \
# Option -O means transparent;
# -F specifies font dimension;
# -g specifies window widthxheight AND
## +0-0 implies corner of screen;
# -t specifies theme
Eterm -O -F 10x20 -g 125x20+0-0 -t get-E &
# Last directive will instantiate Enlightenment
exec enlightenment_start
Note: Esetroot utility is built as a component of Eterm.
Please note also that the above lines beginning with a hash (#) are comments only -- except for the very first directive
; also note that the last non-comment does not end in &, &&, nor \; that is, enlightenment_start instantiates and stays as a foreground process until you finish your enlightenment session.
Final Thoughts
Well not everything is 'peachy' and there seems to be a conflict between Enlightenment 0.21.ust.xyz and Apache OpenOffice 4.1.2 for Debian on AMD64. Issue is reproducible by embedding a URL link in Writer and hovering the mouse over for a couple of seconds. Gotcha is also less prevalent when hovering the mouse pointer over OpenOffice icons. Enlightenment locks and all sessions by any other applications are frozen -- potentially losing whatever work one was doing (ugh!)
Losing one's sessions and/or work is especially true when I have to CTRL + ALT and press F1, F2, etc. to get another shell, login and restart XDM. Nevertheless, if instead of restarting XDM one inputs the command2:
Shell
killall -SEGV enlightenment |
we get the following dialog that ameliorates losing one's sessions and/or work: press (F1) Recover.
Snapshot was taken with gnome utility with a delay of 5 minutes (300 seconds) prior to reproducing the Enlightenment lock issue by mousing over the ephemeral URL link in Apache OpenOffice Writer:
Shell
gnome-screenshot --display=0 -d 300 -f file-to-save-screenshot.png |
Of course, issue should be fixed to fully enjoy latest Enlightenment.
1 emile compilation error with openssl 1.1.0c
via Re: [E-devel] Unable to build EFL nor from stable nor from git
2Re: [E-devel] Apache OpenOffice 4.1.2 locks in Enlightenment 0.21.99.21605
DISCLAIMER although due diligence has been applied, this resource is made available for testing/evaluation purposes on an AS IS basis. The procedure only reflects my own modifications, my limited testing, and the potential user who executes the procedures assumes all risks.
Please do not hold me or Metztli Information Technology (and/or its associates) responsible if the information provided here does not achieve the desired result. The information is provided AS IS and with the hope that it may be useful to the Internet community --especially those interested in Enlightenment, Eterm, and/or Apache OpenOffice 4.1.2 support on Debian.
Notwithstanding, There is no implicit or explicit guarantee that the information presented here is accurate --even though due diligence was exercised during the procedure. Accordingly, if an user(s) decide to implement the procedure or shell commands described here she, he, or them, do so at her, his, or their own risk. You have been forewarned.