x11-wm/enlightenment: update configure flags and module lists
authorMike Frysinger <vapier@gentoo.org>
Wed, 30 Dec 2015 19:13:03 +0000 (14:13 -0500)
committerMike Frysinger <vapier@gentoo.org>
Wed, 30 Dec 2015 20:40:36 +0000 (15:40 -0500)
x11-wm/enlightenment/enlightenment-0.17.9999.ebuild
x11-wm/enlightenment/metadata.xml

index 7d245d57f6e15fb4adb663b0d4d94f2d055969fa..3b6c43a8c67cbfac7d99e10a21119e1bbd6c1d86 100644 (file)
@@ -21,25 +21,29 @@ DESCRIPTION="Enlightenment DR17 window manager"
 LICENSE="BSD-2"
 SLOT="0.17/${PV%%_*}"
 
-# The @ is just an anchor to expand from
-__EVRY_MODS=""
-__CONF_MODS="
-       +@applications +@comp +@dialogs +@display
-       +@interaction +@intl +@menus
-       +@paths +@performance +@randr +@shelves +@theme +@wallpaper2
-       +@window-manipulation +@window-remembers"
-__NORM_MODS="
-       @access +@appmenu +@backlight +@bluez4 +@battery +@clock
-       +@connman +@contact +@cpufreq +@everything +@fileman
-       +@fileman-opinfo +@gadman +@ibar +@ibox +@illume2 +@mixer +@msgbus
-       +@music-control +@notification +@pager +@quickaccess +@shot
-       +@start +@syscon +@systray +@tasks +@teamwork +@temperature +@tiling
-       +@winlist +@wizard @wl-desktop-shell @wl-screenshot +@xkbswitch"
-IUSE_E_MODULES="
-       ${__CONF_MODS//@/enlightenment_modules_conf-}
-       ${__NORM_MODS//@/enlightenment_modules_}"
+__CONF_MODS=(
+       applications bindings dialogs display
+       interaction intl menus
+       paths performance randr shelves theme
+       window-manipulation window-remembers
+)
+__NORM_MODS=(
+       appmenu backlight bluez4 battery
+       clock conf connman cpufreq everything
+       fileman fileman-opinfo gadman geolocation
+       ibar ibox lokker
+       mixer msgbus music-control notification
+       pager packagekit pager-plain policy-mobile quickaccess
+       shot start syscon systray tasks teamwork temperature tiling
+       winlist wizard wl-desktop-shell wl-drm wl-text-input
+       wl-weekeyboard wl-wl wl-x11 xkbswitch xwayland
+)
+IUSE_E_MODULES=(
+       ${__CONF_MODS[@]/#/enlightenment_modules_conf-}
+       ${__NORM_MODS[@]/#/enlightenment_modules_}
+)
 
-IUSE="pam spell static-libs systemd +udev ukit wayland ${IUSE_E_MODULES}"
+IUSE="pam spell static-libs systemd +udev ukit wayland ${IUSE_E_MODULES[@]/#/+}"
 
 RDEPEND="
        pam? ( sys-libs/pam )
@@ -50,8 +54,8 @@ RDEPEND="
                >=x11-libs/pixman-0.31.1
                >=x11-libs/libxkbcommon-0.3.1
        )
-       >=dev-libs/efl-${PV}[X]
-       >=media-libs/elementary-${PV}
+       >=dev-libs/efl-1.16[X]
+       >=media-libs/elementary-1.16
        x11-libs/xcb-util-keysyms"
 DEPEND="${RDEPEND}"
 
@@ -62,23 +66,56 @@ src_prepare() {
        enlightenment_src_prepare
 }
 
+# Sanity check to make sure module lists are kept up-to-date.
+check_modules() {
+       local detected=$(
+               awk -F'[\\[\\](, ]' '$1 == "AC_E_OPTIONAL_MODULE" { print $3 }' \
+               configure.ac | sed 's:_:-:g' | LC_COLLATE=C sort
+       )
+       local sorted=$(
+               printf '%s\n' ${IUSE_E_MODULES[@]/#enlightenment_modules_} | \
+               LC_COLLATE=C sort
+       )
+       if [[ ${detected} != "${sorted}" ]] ; then
+               local out new old
+               eerror "The ebuild needs to be kept in sync."
+               echo "${sorted}" > ebuild-iuse
+               echo "${detected}" > configure-detected
+               out=$(diff -U 0 ebuild-iuse configure-detected | sed -e '1,2d' -e '/^@@/d')
+               new=$(echo "${out}" | sed -n '/^+/{s:^+::;p}')
+               old=$(echo "${out}" | sed -n '/^-/{s:^-::;p}')
+               eerror "Add these modules: $(echo ${new})"
+               eerror "Drop these modules: $(echo ${old})"
+               die "please update the ebuild"
+       fi
+}
+
 src_configure() {
+       check_modules
+
        E_ECONF=(
                --disable-install-sysactions
                $(use_enable doc)
-               --disable-device-hal
                $(use_enable nls)
                $(use_enable pam)
                $(use_enable systemd)
                --enable-device-udev
                $(use_enable udev mount-eeze)
                $(use_enable ukit mount-udisks)
-               $(use_enable wayland wayland-clients)
+               $(use_enable wayland)
        )
        local u c
-       for u in ${IUSE_E_MODULES} ; do
-               u=${u#+}
+       for u in ${IUSE_E_MODULES[@]} ; do
                c=${u#enlightenment_modules_}
+               # Disable modules by hand since we default to enabling them all.
+               case ${c} in
+               wl-*|xwayland)
+                       if ! use wayland ; then
+                               E_ECONF+=( --disable-${c} )
+                               continue
+                       fi
+                       ;;
+               esac
                E_ECONF+=( $(use_enable ${u} ${c}) )
        done
        enlightenment_src_configure
index 41964c0b346f122a826f15d0b63e9da7beb992a9..2ebc72107bbb6e23cd27f092d67521c9f25b316e 100644 (file)
@@ -68,14 +68,19 @@ Enlightenment Features:
     <flag name="enlightenment_modules_fileman">Enlightenment's integrated file manager</flag>
     <flag name="enlightenment_modules_fileman-opinfo">Can be placed on the desktop or in a shelf</flag>
     <flag name="enlightenment_modules_gadman">Module to manage gadgets on the desktop</flag>
+    <flag name="enlightenment_modules_geolocation">Geolocation</flag>
     <flag name="enlightenment_modules_ibar">Iconic application launcher</flag>
     <flag name="enlightenment_modules_ibox">A home for your iconified applications</flag>
     <flag name="enlightenment_modules_illume2">Illume2 - next generation of illume - special WM mode for embedded devices and set of plugins with same purpose</flag>
+    <flag name="enlightenment_modules_lokker">Screen locker</flag>
     <flag name="enlightenment_modules_mixer">A module to provide a mixer for changing volume</flag>
     <flag name="enlightenment_modules_msgbus">DBus Extension</flag>
     <flag name="enlightenment_modules_music-control">Control your music in your shelf</flag>
     <flag name="enlightenment_modules_notification">notification-daemon alternative. Popup if an event occur</flag>
+    <flag name="enlightenment_modules_packagekit">Package manager integration</flag>
     <flag name="enlightenment_modules_pager">Gadget to allow you to visualize your virtual desktops and the windows they contain</flag>
+    <flag name="enlightenment_modules_pager-plain">A simpler desktop pager</flag>
+    <flag name="enlightenment_modules_policy-mobile"></flag>
     <flag name="enlightenment_modules_quickaccess">Enlightenment Quickaccess Launcher</flag>
     <flag name="enlightenment_modules_shot">Simple screenshot+save/upload module</flag>
     <flag name="enlightenment_modules_start">Enlightenment's "Start" button equivalent</flag>
@@ -88,9 +93,17 @@ Enlightenment Features:
     <flag name="enlightenment_modules_winlist">A module to show the list of client applications presently running</flag>
     <flag name="enlightenment_modules_wizard">First Run Wizard</flag>
     <flag name="enlightenment_modules_wl-desktop-shell">Enlightenment Wayland Desktop Shell</flag>
+    <flag name="enlightenment_modules_wl-drm">Wayland DRM (Direct Rendering Manager) compositing module</flag>
     <flag name="enlightenment_modules_wl-screenshot">Enlightenment Wayland Screenshot module</flag>
+    <flag name="enlightenment_modules_wl-text-input">Wayland text input support</flag>
+    <flag name="enlightenment_modules_wl-weekeyboard">Wayland virtual keyboard</flag>
+    <flag name="enlightenment_modules_wl-wl">Wayland-in-Wayland module</flag>
+    <flag name="enlightenment_modules_wl-x11">Wayland-in-X11 module</flag>
     <flag name="enlightenment_modules_xkbswitch">Keyboard layout configuration and switcher</flag>
+    <flag name="enlightenment_modules_xwayland">X/Wayland integration</flag>
+    <flag name="enlightenment_modules_conf">Settings Panel</flag>
     <flag name="enlightenment_modules_conf-applications">Allows configuration of Ibar, Restart, and Startup applications</flag>
+    <flag name="enlightenment_modules_conf-bindings">Input Control Settings</flag>
     <flag name="enlightenment_modules_conf-comp">Configure default dialog properties</flag>
     <flag name="enlightenment_modules_conf-dialogs">Configure default dialog properties</flag>
     <flag name="enlightenment_modules_conf-display">Used to configure your screen</flag>