summaryrefslogtreecommitdiff
path: root/recipes/efl1
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/efl1
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/efl1')
-rw-r--r--recipes/efl1/ecore-native_svn.bb32
-rw-r--r--recipes/efl1/ecore.inc43
-rw-r--r--recipes/efl1/ecore/add-tslib-support.patch104
-rw-r--r--recipes/efl1/ecore/fix-directfb-include.patch13
-rw-r--r--recipes/efl1/ecore_svn.bb32
-rw-r--r--recipes/efl1/edb_svn.bb9
-rw-r--r--recipes/efl1/edbus_svn.bb19
-rw-r--r--recipes/efl1/edje-native_svn.bb11
-rw-r--r--recipes/efl1/edje-sdk_svn.bb9
-rw-r--r--recipes/efl1/edje_svn.bb27
-rw-r--r--recipes/efl1/eet-native_svn.bb6
-rw-r--r--recipes/efl1/eet_svn.bb16
-rw-r--r--recipes/efl1/eflpp_svn.bb14
-rw-r--r--recipes/efl1/efreet_svn.bb11
-rw-r--r--recipes/efl1/eina-native_svn.bb6
-rw-r--r--recipes/efl1/eina_svn.bb8
-rw-r--r--recipes/efl1/elementary_svn.bb33
-rw-r--r--recipes/efl1/embryo-native_svn.bb3
-rw-r--r--recipes/efl1/embryo_svn.bb9
-rw-r--r--recipes/efl1/emotion_svn.bb14
-rw-r--r--recipes/efl1/engrave_svn.bb8
-rw-r--r--recipes/efl1/enhance_svn.bb7
-rw-r--r--recipes/efl1/epdf/fix-plugin-path-check.patch24
-rw-r--r--recipes/efl1/epdf_svn.bb28
-rw-r--r--recipes/efl1/epeg_svn.bb9
-rw-r--r--recipes/efl1/epsilon_svn.bb21
-rw-r--r--recipes/efl1/esmart_svn.bb27
-rw-r--r--recipes/efl1/etk-native_svn.bb5
-rw-r--r--recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch496
-rw-r--r--recipes/efl1/etk_svn.bb33
-rw-r--r--recipes/efl1/evas-native_svn.bb118
-rw-r--r--recipes/efl1/evas.inc53
-rw-r--r--recipes/efl1/evas/.mtn2git_empty0
-rw-r--r--recipes/efl1/evas_svn.bb63
-rw-r--r--recipes/efl1/evolve-native_svn.bb6
-rw-r--r--recipes/efl1/evolve_svn.bb7
-rw-r--r--recipes/efl1/ewl_svn.bb32
-rw-r--r--recipes/efl1/exml_svn.bb8
-rw-r--r--recipes/efl1/imlib2/remove-local-includes-20080421.patch15
-rw-r--r--recipes/efl1/imlib2_svn.bb26
-rw-r--r--recipes/efl1/libefso_svn.bb17
41 files changed, 1422 insertions, 0 deletions
diff --git a/recipes/efl1/ecore-native_svn.bb b/recipes/efl1/ecore-native_svn.bb
new file mode 100644
index 0000000000..22208b926e
--- /dev/null
+++ b/recipes/efl1/ecore-native_svn.bb
@@ -0,0 +1,32 @@
+require ecore.inc
+inherit native
+DEPENDS = "eet-native evas-native"
+PR = "r3"
+
+EXTRA_OECONF = "\
+ --enable-ecore-txt \
+ --enable-ecore-config \
+ --disable-ecore-x-xcb \
+ --disable-ecore-x \
+ --enable-ecore-job \
+ --disable-ecore-directfb \
+ --disable-ecore-sdl \
+ --enable-ecore-fb \
+ --enable-ecore-evas \
+ --enable-ecore-evas-fb \
+ --disable-ecore-evas-x11-gl \
+ --disable-ecore-evas-xrender \
+ --disable-ecore-evas-dfb \
+ --disable-ecore-evas-sdl \
+ --disable-openssl \
+ --enable-abstract-sockets \
+ --enable-ecore-con \
+ --enable-ecore-ipc \
+ --enable-ecore-file \
+ --enable-inotify \
+ --disable-poll \
+ --disable-curl \
+ --disable-ecore-desktop \
+ --disable-ecore-imf \
+ --disable-ecore-imf_evas \
+"
diff --git a/recipes/efl1/ecore.inc b/recipes/efl1/ecore.inc
new file mode 100644
index 0000000000..a25cacc3e9
--- /dev/null
+++ b/recipes/efl1/ecore.inc
@@ -0,0 +1,43 @@
+DESCRIPTION = "Ecore is the Enlightenment application framework library"
+LICENSE = "MIT BSD"
+DEPENDS = "curl eet evas tslib libxtst libxcomposite libxinerama libxscrnsaver libxdamage libxrandr libxcursor libxprintutil"
+# optional
+# DEPENDS += "directfb libsdl-x11 openssl virtual/libiconv"
+PV = "0.9.9.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ecore"
+
+PACKAGES += "\
+ ${PN}-con \
+ ${PN}-config \
+ ${PN}-desktop \
+ ${PN}-directfb \
+ ${PN}-sdl \
+ ${PN}-evas \
+ ${PN}-fb \
+ ${PN}-file \
+ ${PN}-imf \
+ ${PN}-imf-evas \
+ ${PN}-ipc \
+ ${PN}-job \
+ ${PN}-txt \
+ ${PN}-x \
+ "
+FILES_${PN} = "${libdir}/libecore.so.*"
+FILES_${PN}-con = "${libdir}/libecore_con.so.*"
+FILES_${PN}-config = "${libdir}/libecore_config.so.*"
+FILES_${PN}-desktop = "${libdir}/libecore_desktop.so.*"
+FILES_${PN}-directfb = "${libdir}/libecore_directfb.so.*"
+FILES_${PN}-sdl = "${libdir}/libecore_sdl.so.*"
+FILES_${PN}-evas = "${libdir}/libecore_evas.so.*"
+FILES_${PN}-fb = "${libdir}/libecore_fb.so.*"
+FILES_${PN}-file = "${libdir}/libecore_file.so.*"
+FILES_${PN}-imf = "${libdir}/libecore_imf.so.*"
+FILES_${PN}-imf-evas = "${libdir}/libecore_imf_evas.so.*"
+FILES_${PN}-ipc = "${libdir}/libecore_ipc.so.*"
+FILES_${PN}-job = "${libdir}/libecore_job.so.*"
+FILES_${PN}-txt = "${libdir}/libecore_txt.so.*"
+FILES_${PN}-x = "${libdir}/libecore_x.so.*"
diff --git a/recipes/efl1/ecore/add-tslib-support.patch b/recipes/efl1/ecore/add-tslib-support.patch
new file mode 100644
index 0000000000..c125122a91
--- /dev/null
+++ b/recipes/efl1/ecore/add-tslib-support.patch
@@ -0,0 +1,104 @@
+
+#
+# tslib support for ecore, (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
+#
+
+--- ecore/src/lib/ecore_fb/ecore_fb.c~add-tslib-support.patch
++++ ecore/src/lib/ecore_fb/ecore_fb.c
+@@ -4,6 +4,13 @@
+ #include "Ecore_Fb.h"
+ #include "ecore_private.h"
+
++
++#ifdef HAVE_TSLIB
++#include <tslib.h>
++#include <errno.h>
++#endif
++
++
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <stdio.h>
+@@ -77,6 +84,11 @@
+ unsigned char z;
+ };
+
++#ifdef HAVE_TSLIB
++struct tsdev *_ecore_fb_tslib_tsdev = NULL;
++struct ts_sample _ecore_fb_tslib_event;
++#endif
++
+ static void _ecore_fb_size_get(int *w, int *h);
+ static int _ecore_fb_ts_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
+ static int _ecore_fb_kbd_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
+@@ -269,10 +281,39 @@
+ ecore_fb_init(const char *name __UNUSED__)
+ {
+ int prev_flags;
++#ifdef HAVE_TSLIB
++ char *tslib_tsdevice = NULL;
++#endif
+
+ _ecore_fb_init_count++;
+ if (_ecore_fb_init_count > 1) return _ecore_fb_init_count;
++#ifdef HAVE_TSLIB
++ if ( ( tslib_tsdevice = getenv("TSLIB_TSDEVICE") ) != NULL )
++ {
++ printf( "ECORE_FB: TSLIB_TSDEVICE = '%s'\n", tslib_tsdevice );
++ _ecore_fb_tslib_tsdev = ts_open( tslib_tsdevice, 1 ); /* 1 = nonblocking, 0 = blocking */
++
++ if ( !_ecore_fb_tslib_tsdev )
++ {
++ printf( "ECORE_FB: Can't ts_open (%s)\n", strerror( errno ) );
++ return 0;
++ }
++
++ if ( ts_config( _ecore_fb_tslib_tsdev ) )
++ {
++ printf( "ECORE_FB: Can't ts_config (%s)\n", strerror( errno ) );
++ return 0;
++ }
++ _ecore_fb_ts_fd = ts_fd( _ecore_fb_tslib_tsdev );
++ if ( _ecore_fb_ts_fd < 0 )
++ {
++ printf( "ECORE_FB: Can't open touchscreen (%s)\n", strerror( errno ) );
++ return 0;
++ }
++ }
++#else
+ _ecore_fb_ts_fd = open("/dev/touchscreen/0", O_RDONLY);
++#endif
+ if (_ecore_fb_ts_fd >= 0)
+ {
+ prev_flags = fcntl(_ecore_fb_ts_fd, F_GETFL);
+@@ -790,7 +831,21 @@
+ char *ptr;
+ double t;
+ int did_triple = 0;
+-
++
++#ifdef HAVE_TSLIB
++ if ( _ecore_fb_ts_apply_cal )
++ num = ts_read_raw( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 );
++ else
++ num = ts_read( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 );
++ if ( num != 1 )
++ {
++ return 1; /* no more samples at this time */
++ }
++ x = _ecore_fb_tslib_event.x;
++ y = _ecore_fb_tslib_event.y;
++ pressure = _ecore_fb_tslib_event.pressure;
++ v = 1; /* loop, there might be more samples */
++#else
+ ptr = (char *)&(_ecore_fb_ts_event);
+ ptr += _ecore_fb_ts_event_byte_count;
+ num = sizeof(Ecore_Fb_Ts_Event) - _ecore_fb_ts_event_byte_count;
+@@ -811,6 +866,7 @@
+ y = _ecore_fb_ts_event.y;
+ }
+ pressure = _ecore_fb_ts_event.pressure;
++#endif
+ /* add event to queue */
+ /* always add a move event */
+ if ((pressure) || (prev_pressure))
diff --git a/recipes/efl1/ecore/fix-directfb-include.patch b/recipes/efl1/ecore/fix-directfb-include.patch
new file mode 100644
index 0000000000..b1c06f7f43
--- /dev/null
+++ b/recipes/efl1/ecore/fix-directfb-include.patch
@@ -0,0 +1,13 @@
+Index: ecore-0.9.9.038/src/lib/ecore_directfb/Ecore_DirectFB.h
+===================================================================
+--- ecore-0.9.9.038.orig/src/lib/ecore_directfb/Ecore_DirectFB.h
++++ ecore-0.9.9.038/src/lib/ecore_directfb/Ecore_DirectFB.h
+@@ -23,7 +23,7 @@
+ #endif
+
+ #include <Ecore_Data.h>
+-#include <directfb.h>
++#include <directfb/directfb.h>
+
+
+ #ifdef __cplusplus
diff --git a/recipes/efl1/ecore_svn.bb b/recipes/efl1/ecore_svn.bb
new file mode 100644
index 0000000000..a35111d308
--- /dev/null
+++ b/recipes/efl1/ecore_svn.bb
@@ -0,0 +1,32 @@
+require ecore.inc
+PR = "r1"
+
+EXTRA_OECONF = "\
+ --x-includes=${STAGING_INCDIR}/X11 \
+ --x-libraries=${STAGING_LIBDIR} \
+ --enable-simple-x11 \
+\
+ --enable-ecore-txt \
+ --enable-ecore-config \
+ --disable-ecore-x-xcb \
+ --enable-ecore-x \
+ --enable-ecore-job \
+ --disable-ecore-directfb \
+ --disable-ecore-sdl \
+ --enable-ecore-fb \
+ --enable-ecore-evas \
+ --enable-ecore-evas-software-16-x11 \
+ --disable-ecore-evas-x11-gl \
+ --enable-ecore-evas-xrender \
+ --disable-ecore-evas-dfb \
+ --disable-ecore-evas-sdl \
+ --disable-openssl \
+ --enable-abstract-sockets \
+ --enable-ecore-con \
+ --enable-ecore-ipc \
+ --enable-ecore-file \
+ --enable-inotify \
+ --disable-poll \
+ --enable-curl \
+ --disable-ecore-desktop \
+"
diff --git a/recipes/efl1/edb_svn.bb b/recipes/efl1/edb_svn.bb
new file mode 100644
index 0000000000..a3d2d3d99c
--- /dev/null
+++ b/recipes/efl1/edb_svn.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Edb is the Enlightenment database library"
+LICENSE = "MIT BSD"
+DEPENDS = "zlib"
+PV = "1.0.5.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD;module=edb;proto=http"
diff --git a/recipes/efl1/edbus_svn.bb b/recipes/efl1/edbus_svn.bb
new file mode 100644
index 0000000000..b9fc1a67b8
--- /dev/null
+++ b/recipes/efl1/edbus_svn.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "DBus and HAL convenience wrappers for EFL"
+DEPENDS = "dbus ecore"
+LICENSE = "MIT BSD"
+PV = "0.5.0.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk;module=e_dbus;proto=http"
+S = "${WORKDIR}/e_dbus"
+
+EXTRA_OECONF = "--enable-build-test-gui"
+
+PACKAGES =+ "${PN}-enotify ${PN}-edbus ${PN}-enm ${PN}-ehal ${PN}-test-gui"
+FILES_${PN}-enotify = "${libdir}/libenotify.so.*"
+FILES_${PN}-edbus = "${libdir}/libedbus.so.*"
+FILES_${PN}-enm = "${libdir}/libenm.so.*"
+FILES_${PN}-ehal = "${libdir}/libehal.so.*"
+FILES_${PN}-test-gui = "${bindir}/e_dbus_hal"
diff --git a/recipes/efl1/edje-native_svn.bb b/recipes/efl1/edje-native_svn.bb
new file mode 100644
index 0000000000..238bfd00dc
--- /dev/null
+++ b/recipes/efl1/edje-native_svn.bb
@@ -0,0 +1,11 @@
+require edje_${PV}.bb
+inherit native
+PR = "r1"
+
+DEPENDS = "evas-native ecore-native eet-native embryo-native"
+
+do_configure_prepend() {
+ sed -i 's:EMBRYO_PREFIX"/bin:"${STAGING_BINDIR}:' ${S}/src/bin/edje_cc_out.c
+ sed -i 's:cpp -I:/usr/bin/cpp -I:' ${S}/src/bin/edje_cc_parse.c
+ sed -i 's:gcc -I:/usr/bin/gcc -I:' ${S}/src/bin/edje_cc_parse.c
+}
diff --git a/recipes/efl1/edje-sdk_svn.bb b/recipes/efl1/edje-sdk_svn.bb
new file mode 100644
index 0000000000..2bd75a0672
--- /dev/null
+++ b/recipes/efl1/edje-sdk_svn.bb
@@ -0,0 +1,9 @@
+require edje_svn.bb
+
+inherit sdk
+PR = "r1"
+
+SRCNAME = "${@bb.data.getVar('PN', d, 1).replace('-sdk', '')}"
+DEPENDS = "evas-native ecore-native eet-native embryo-native"
+S = "${WORKDIR}/edje"
+
diff --git a/recipes/efl1/edje_svn.bb b/recipes/efl1/edje_svn.bb
new file mode 100644
index 0000000000..7cf257f62a
--- /dev/null
+++ b/recipes/efl1/edje_svn.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Edje is the Enlightenment graphical design & layout library"
+DEPENDS = "eet evas ecore embryo edje-native"
+LICENSE = "MIT BSD"
+PV = "0.5.0.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+# gain some extra performance at the expense of RAM - generally i'd say bad
+# and a possible source of bugs
+#EXTRA_OECONF = "--enable-edje-program-cache"
+
+PACKAGES =+ "${PN}-utils"
+RDEPENDS_${PN}-utils = "cpp cpp-symlinks embryo-tests"
+
+RRECOMMENDS_${PN}-utils = "\
+ libevas-saver-png \
+ libevas-saver-jpeg \
+ libevas-saver-eet \
+ libevas-saver-tiff \
+"
+
+DEBIAN_NOAUTONAME_${PN}-utils = "1"
+FILES_${PN}-utils = "\
+ ${bindir}/edje_* \
+ ${datadir}/edje/include/edje.inc \
+"
diff --git a/recipes/efl1/eet-native_svn.bb b/recipes/efl1/eet-native_svn.bb
new file mode 100644
index 0000000000..454bc53a7b
--- /dev/null
+++ b/recipes/efl1/eet-native_svn.bb
@@ -0,0 +1,6 @@
+require eet_svn.bb
+inherit native
+DEPENDS = "zlib-native jpeg-native eina-native"
+# we no longer inherit pkgconfig, so we need to state this explicitly
+# (see explanation in efl.bbclass and autotools.bbclass)
+DEPENDS += "pkgconfig-native"
diff --git a/recipes/efl1/eet_svn.bb b/recipes/efl1/eet_svn.bb
new file mode 100644
index 0000000000..4af40da984
--- /dev/null
+++ b/recipes/efl1/eet_svn.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "EET is the Enlightenment data storage library"
+DEPENDS = "zlib jpeg openssl eina"
+LICENSE = "MIT BSD"
+PV = "1.1.0+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+EXTRA_OECONF = "\
+ --enable-openssl \
+ --enable-cypher \
+ --enable-signature \
+ --disable-coverage \
+ --enable-old-eet-file-format \
+ --disable-assert \
+"
diff --git a/recipes/efl1/eflpp_svn.bb b/recipes/efl1/eflpp_svn.bb
new file mode 100644
index 0000000000..4942f5c548
--- /dev/null
+++ b/recipes/efl1/eflpp_svn.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "EFLpp are C++ bindings to the EFL"
+AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>"
+HOMEPAGE = "http://www.vanille-media.de/site/index.php/projects/efl/"
+LICENSE = "LGPL"
+DEPENDS = "evas ecore edje emotion esmart etk ewl libsigc++-2.0"
+PV = "0.1.0+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/BINDINGS;module=cxx;proto=http"
+S = "${WORKDIR}/cxx"
diff --git a/recipes/efl1/efreet_svn.bb b/recipes/efl1/efreet_svn.bb
new file mode 100644
index 0000000000..218d22efe3
--- /dev/null
+++ b/recipes/efl1/efreet_svn.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "The Enlightenment freedesktop.org library"
+DEPENDS = "ecore"
+LICENSE = "MIT BSD"
+PV = "0.5.0.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+PACKAGES =+ "${PN}-mime ${PN}-trash"
+FILES_${PN}-mime = "${libdir}/libefreet_mime.so.*"
+FILES_${PN}-trash = "${libdir}/libefreet_trash.so.*"
diff --git a/recipes/efl1/eina-native_svn.bb b/recipes/efl1/eina-native_svn.bb
new file mode 100644
index 0000000000..8cc34bb178
--- /dev/null
+++ b/recipes/efl1/eina-native_svn.bb
@@ -0,0 +1,6 @@
+require eina_svn.bb
+inherit native
+DEPENDS = ""
+# we no longer inherit pkgconfig, so we need to state this explicitly
+# (see explanation in efl.bbclass and autotools.bbclass)
+DEPENDS += "pkgconfig-native"
diff --git a/recipes/efl1/eina_svn.bb b/recipes/efl1/eina_svn.bb
new file mode 100644
index 0000000000..f38c4c5b36
--- /dev/null
+++ b/recipes/efl1/eina_svn.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Eina is the Enlightenment data library"
+LICENSE = "LGPL"
+PV = "0.0.1+svnr${SRCREV}"
+PR = "r0"
+
+inherit efl
+
+FILES_${PN} += "${libdir}/eina"
diff --git a/recipes/efl1/elementary_svn.bb b/recipes/efl1/elementary_svn.bb
new file mode 100644
index 0000000000..82a099f00d
--- /dev/null
+++ b/recipes/efl1/elementary_svn.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "EFL based widget set for mobile devices"
+LICENSE = "LGPL"
+DEPENDS = "evas ecore edje eet edbus"
+PV = "0.0.0+svnr${SRCREV}"
+PR = "r4"
+
+inherit efl
+
+EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/TMP/st;module=elementary;proto=http"
+S = "${WORKDIR}/elementary"
+
+RDEPENDS_${PN} = "elementary-themes"
+RRECOMMENDS_${PN} = "elementary-tests"
+
+do_compile_append() {
+ sed -i -e s:${STAGING_DIR_TARGET}::g \
+ -e s:/${TARGET_SYS}::g \
+ elementary.pc
+}
+
+FILES_${PN}-themes = "\
+ ${datadir}/elementary/themes \
+"
+
+FILES_${PN}-tests = "\
+ ${bindir}/elementary* \
+ ${datadir}/elementary/images \
+ ${datadir}/elementary/objects \
+ ${datadir}/applications/* \
+ ${datadir}/icons/* \
+"
diff --git a/recipes/efl1/embryo-native_svn.bb b/recipes/efl1/embryo-native_svn.bb
new file mode 100644
index 0000000000..2fc3faddfd
--- /dev/null
+++ b/recipes/efl1/embryo-native_svn.bb
@@ -0,0 +1,3 @@
+require embryo_${PV}.bb
+inherit native
+
diff --git a/recipes/efl1/embryo_svn.bb b/recipes/efl1/embryo_svn.bb
new file mode 100644
index 0000000000..688ec22e97
--- /dev/null
+++ b/recipes/efl1/embryo_svn.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "The Enlightenment C-like scripting language for Edje"
+LICENSE = "MIT BSD"
+PV = "0.9.9.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+# HACK alert: When compiling for VFP embryo emits bugs -- maybe gcc bug
+#FULL_OPTIMIZATION_arm =+ "-O0"
diff --git a/recipes/efl1/emotion_svn.bb b/recipes/efl1/emotion_svn.bb
new file mode 100644
index 0000000000..455bc82b18
--- /dev/null
+++ b/recipes/efl1/emotion_svn.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "The Enlightenment multimedia library"
+LICENSE = "MIT BSD"
+# we no longer build the libxine backend, since the gstreamer backend seems more promising
+DEPENDS = "eet evas ecore edje gstreamer gst-plugins-base"
+PV = "0.1.0.042+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+EXTRA_OECONF = "--disable-xine --enable-gstreamer"
+
+PACKAGES =+ "emotion-backend-gstreamer"
+FILES_emotion-backend-gstreamer = "${libdir}/emotion/*.so"
+RRECOMMENDS_${PN} = "emotion-backend-gstreamer"
diff --git a/recipes/efl1/engrave_svn.bb b/recipes/efl1/engrave_svn.bb
new file mode 100644
index 0000000000..3dc5e332a2
--- /dev/null
+++ b/recipes/efl1/engrave_svn.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Engrave is an Edje Editing Library"
+LICENSE = "MIT"
+# also requires yacc and lex on host
+DEPENDS = "evas ecore"
+PV = "0.0.0+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
diff --git a/recipes/efl1/enhance_svn.bb b/recipes/efl1/enhance_svn.bb
new file mode 100644
index 0000000000..dd09256655
--- /dev/null
+++ b/recipes/efl1/enhance_svn.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Enhance translates between glade .xml files and ETK"
+LICENSE = "MIT"
+DEPENDS = "exml"
+PV = "0.0.0+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
diff --git a/recipes/efl1/epdf/fix-plugin-path-check.patch b/recipes/efl1/epdf/fix-plugin-path-check.patch
new file mode 100644
index 0000000000..b218fffb7a
--- /dev/null
+++ b/recipes/efl1/epdf/fix-plugin-path-check.patch
@@ -0,0 +1,24 @@
+Index: epdf/configure.in
+===================================================================
+--- epdf.orig/configure.in
++++ epdf/configure.in
+@@ -95,8 +95,8 @@
+ [
+ have_ewl="yes"
+ requirements="$requirements ewl"
+- EWL_TEST_LIBS_DIR="`$PKG_CONFIG --variable=testsdir ewl`"
+- EWL_TEST_SOURCE_DIR="`$PKG_CONFIG --variable=testssrcdir ewl`"
++ EWL_TEST_LIBS_DIR="/usr/lib/ewl/tests/"
++ EWL_TEST_SOURCE_DIR="/usr/share/ewl/examples/"
+ AC_SUBST(EWL_TEST_LIBS_DIR)
+ AC_SUBST(EWL_TEST_SOURCE_DIR)
+ ],
+@@ -144,7 +144,7 @@
+ [
+ have_epsilon="yes"
+ requirements="$requirements epsilon imlib2"
+- EPSILON_PLUGINS_DIR="`$PKG_CONFIG --variable=pluginsdir epsilon`"
++ EPSILON_PLUGINS_DIR="/usr/lib/epsilon/plugins/"
+ AC_SUBST(EPSILON_PLUGINS_DIR)
+ ],
+ [
diff --git a/recipes/efl1/epdf_svn.bb b/recipes/efl1/epdf_svn.bb
new file mode 100644
index 0000000000..7aeb537268
--- /dev/null
+++ b/recipes/efl1/epdf_svn.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Epdf is the glue between EFL and libpoppler"
+LICENSE = "MIT BSD"
+DEPENDS = "poppler evas ecore etk ewl"
+PV = "0.1.0+svnr${SRCREV}"
+PR = "r2"
+
+inherit efl
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/PROTO;module=epdf;proto=http"
+# file://fix-plugin-path-check.patch;HACK=1;patch=1"
+# FIXME This package is not really working correctly at the moment. It doesn't
+# recognize epsilon and doesn't build everything. The next one actually using
+# this package is welcome to fix it.
+
+EXTRA_OECONF = "--enable-etk --enable-ewl"
+
+# add ewl additions
+FILES_${PN}-dev += "${libdir}/ewl/tests/*.a ${libdir}/ewl/tests/*.la"
+FILES_${PN}-dbg += "${libdir}/ewl/tests/.debug"
+
+# add epsilon additions
+FILES_${PN}-dev += "${libdir}/epsilon/plugins/epdf_thumbnailer.a ${libdir}/epsilon/plugins/epdf_thumbnailer.la"
+FILES_${PN}-dbg += "${libdir}/epsilon/plugins/.debug"
+
+PACKAGES += "${PN}-ewl-widget epsilon-plugin-${PN}"
+FILES_${PN}-ewl-widget = "${libdir}/ewl/tests/libewl_pdf*.so*"
+FILES_epsilon-plugin-${PN} = "${libdir}/epsilon/plugins/epdf_thumbnailer.so*"
+
diff --git a/recipes/efl1/epeg_svn.bb b/recipes/efl1/epeg_svn.bb
new file mode 100644
index 0000000000..25ea7fa0b9
--- /dev/null
+++ b/recipes/efl1/epeg_svn.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Epeg is a small library for handling thumbnails."
+LICENSE = "MIT"
+DEPENDS = "jpeg"
+PV = "0.9.0+svnr${SRCREV}"
+PR = "r2"
+
+inherit efl
+
+SRC_URI = "svn://svn.enlightenment.org/svn/e/trunk/OLD;module=epeg;proto=http"
diff --git a/recipes/efl1/epsilon_svn.bb b/recipes/efl1/epsilon_svn.bb
new file mode 100644
index 0000000000..ad928eb693
--- /dev/null
+++ b/recipes/efl1/epsilon_svn.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Epsilon is a flexible and powerful image thumbnailing library \
+that is compliant with the freedesktop.org Thumbnail Managing Standard."
+LICENSE = "MIT BSD"
+# can also depend on xine for movie thumbnails
+DEPENDS = "libpng evas ecore edje perl-native"
+PV = "0.3.0.012+svnr${SRCREV}"
+PR = "r4"
+
+inherit efl
+
+# a gstreamer thumbnailer would be nice now that we have emotion using gstreamer as well
+EXTRA_OECONF = "--disable-xine"
+
+# package the thumb daemon seperately
+PACKAGES =+ "${PN}-thumbd"
+FILES_${PN}-thumbd = "${bindir}/epsilon ${bindir}/epsilon_thumbd"
+RRECOMMENDS_${PN} = "${PN}-thumbd"
+
+FILES_${PN}-dev += "${libdir}/${PN}/*/*.a ${libdir}/${PN}/*/*.la"
+FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug/*.so"
+
diff --git a/recipes/efl1/esmart_svn.bb b/recipes/efl1/esmart_svn.bb
new file mode 100644
index 0000000000..1ff75a4a84
--- /dev/null
+++ b/recipes/efl1/esmart_svn.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "ESmart is a collection of smart Evas objects"
+LICENSE = "MIT BSD"
+DEPENDS = "evas ecore edje imlib2 epsilon libtool"
+PV = "0.9.0.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
+
+PACKAGES =+ "${PN}-textentry \
+ ${PN}-thumb \
+ ${PN}-container \
+ ${PN}-container-plugins \
+ ${PN}-file-dialog \
+ ${PN}-draggies \
+ ${PN}-trans-x11"
+
+FILES_${PN}-dbg += "${libdir}/.debug/ ${libdir}/esmart/*/.debug/"
+FILES_${PN}-textentry = "${libdir}/libesmart_text_entry*.so*"
+FILES_${PN}-thumb = "${libdir}/libesmart_thumb*.so*"
+FILES_${PN}-container = "${libdir}/libesmart_container*"
+DEPENDS_${PN}-container += "${PN}-container-plugins"
+FILES_${PN}-container-plugins = "${libdir}/esmart/layout/*.so"
+FILES_${PN}-file-dialog = "${libdir}/libesmart_file_dialog*.so*"
+FILES_${PN}-draggies = "${libdir}/libesmart_draggies*.so*"
+FILES_${PN}-trans-x11 = "${libdir}/libesmart_trans_x11*.so*"
diff --git a/recipes/efl1/etk-native_svn.bb b/recipes/efl1/etk-native_svn.bb
new file mode 100644
index 0000000000..345802d25d
--- /dev/null
+++ b/recipes/efl1/etk-native_svn.bb
@@ -0,0 +1,5 @@
+require etk_svn.bb
+inherit native
+DEPENDS = "evas-native ecore-native edje-native"
+
+SRC_URI += "file://no-tests.patch;patch=1"
diff --git a/recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch b/recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch
new file mode 100644
index 0000000000..75ef0f95ea
--- /dev/null
+++ b/recipes/efl1/etk/etk_scrolled_view_dragable_combined_bouncy.patch
@@ -0,0 +1,496 @@
+Hi All,
+ The attached patch lets etk_scrolled_view been dragable with
+pressing on the panel directly and drag. If you drag fast, after
+releasing the panel will still scrolling until it stop slowly.
+
+Adding the following functions.
+void etk_scrolled_view_dragable_set(Etk_Scrolled_View
+*scrolled_view, Etk_Bool dragable);
+Etk_Bool etk_scrolled_view_dragable_get(Etk_Scrolled_View *scrolled_view);
+
+additional functions for detail control. (Most user don't need them)
+double
+etk_scrolled_view_drag_sample_interval_magic_set(Etk_Scrolled_View
+*scrolled_view,double interval);
+double
+etk_scrolled_view_drag_sample_interval_magic_get(Etk_Scrolled_View
+*scrolled_view);
+unsigned int etk_scrolled_view_drag_damping_magic_set(Etk_Scrolled_View
+*scrolled_view,unsigned int damping);
+unsigned int etk_scrolled_view_drag_damping_magic_get(Etk_Scrolled_View
+*scrolled_view);
+
+You can test this with etk_test after patching and adding two line in
+etk_test
+
+Signed-off: Tick @ openmoko.org
+
+Index: etk/src/lib/etk_scrolled_view.c
+===================================================================
+--- etk.orig/src/lib/etk_scrolled_view.c 2008-04-02 11:53:32.000000000 +0800
++++ etk/src/lib/etk_scrolled_view.c 2008-04-05 00:41:47.000000000 +0800
+@@ -37,7 +37,15 @@
+ static Etk_Bool _etk_scrolled_view_child_added_cb(Etk_Object *object, void *child, void *data);
+ static Etk_Bool _etk_scrolled_view_child_removed_cb(Etk_Object *object, void *child, void *data);
+ static Etk_Bool _etk_scrolled_view_child_scroll_size_changed_cb(Etk_Object *object, void *data);
++static int _etk_scrolled_view_motive_bounce(void *data);
+
++
++static Etk_Bool _etk_scrolled_view_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data);
++static Etk_Bool _etk_scrolled_view_mouse_up(Etk_Object *object, Etk_Event_Mouse_Up *event, void *data);
++static Etk_Bool _etk_scrolled_view_mouse_click(Etk_Object *object, Etk_Event_Mouse_Up *event, void *data);
++static Etk_Bool _etk_scrolled_view_mouse_move(Etk_Object *object, Etk_Event_Mouse_Move *event, void *data);
++
++static Etk_Bool _etk_scrolled_view_bar_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data);
+ /**************************
+ *
+ * Implementation
+@@ -173,6 +181,106 @@
+ *vpolicy = scrolled_view ? scrolled_view->vpolicy : ETK_POLICY_AUTO;
+ }
+
++/**
++ * @brief Set the scrolled view dragable or not
++ * @param scrolled_view a scrolled view
++ * @param dragable The scrolled view is dragable or not?
++ */
++void etk_scrolled_view_dragable_set(Etk_Scrolled_View *scrolled_view, Etk_Bool dragable)
++{
++ if (!scrolled_view)
++ return;
++ scrolled_view->drag.dragable = dragable;
++}
++
++/**
++ * @brief Get the scrolled view dragable flag
++ * @param scrolled_view a scrolled view
++ * @return Returns ETK_TURE if the scrolled view is dragable
++ */
++Etk_Bool etk_scrolled_view_dragable_get(Etk_Scrolled_View *scrolled_view)
++{
++ if (!scrolled_view)
++ return ETK_FALSE;
++ return scrolled_view->drag.dragable;
++}
++
++/**
++ * @brief Set the scrolled view boucy or not.
++ * @param scrolled_view a scrolled view
++ * @param bouncy The scrolled view is bouncy or not (Default TRUE)
++ */
++void etk_scrolled_view_drag_bouncy_set(Etk_Scrolled_View *scrolled_view, Etk_Bool bouncy)
++{
++ if (!scrolled_view)
++ return;
++ scrolled_view->drag.bouncy = bouncy;
++}
++
++/**
++ * @brief Get the scrolled view bouncy flag
++ * @param scrolled_view a scrolled view
++ * @return Returns ETK_TURE if the scrolled view is bouncy
++ */
++Etk_Bool etk_scrolled_view_drag_bouncy_get(Etk_Scrolled_View *scrolled_view)
++{
++ if (!scrolled_view)
++ return ETK_FALSE;
++ return scrolled_view->drag.bouncy;
++}
++
++/**
++ * @brief Set the scrolled view sample interval to calculate the scrolling speed.
++ * @param scrolled_view a scrolled view
++ * @param interval The interval of sampling latest scrolling speed (minimial 0.2 second, default 0.5 second)
++ * @return Returns the actual sampling interval set. If scrolled_view is NULL returns 0.0f.
++ */
++double etk_scrolled_view_drag_sample_interval_magic_set(Etk_Scrolled_View *scrolled_view,double interval)
++{
++ if (!scrolled_view)
++ return 0.0f;
++ interval = interval >= 0.2f ? interval : 0.2f;
++ scrolled_view->drag.sample_magic = interval;
++ return scrolled_view->drag.sample_magic;
++}
++
++/**
++ * @brief Get the scrolled view sample interval to calculate the scrolling speed.
++ * @param scrolled_view a scrolled view
++ * @return Returns the sampling interval. If scrolled_view is NULL return 0.0f.
++ */
++double etk_scrolled_view_drag_sample_interval_magic_get(Etk_Scrolled_View *scrolled_view)
++{
++ if (!scrolled_view)
++ return 0.0f;
++ return scrolled_view->drag.sample_magic;
++}
++
++/**
++ * @brief Set the damping magic number of a dragable scrolled view
++ * @param scrolled_view a scrolled view
++ * @param damping The damping factor of the dragable scrolled view (default 100)
++ * @return Returns the actual damping factor set
++ */
++unsigned int etk_scrolled_view_drag_damping_magic_set(Etk_Scrolled_View *scrolled_view,unsigned int damping)
++{
++ if (!scrolled_view)
++ return 0;
++ scrolled_view->drag.damping_magic = damping;
++ return scrolled_view->drag.damping_magic;
++}
++
++/**
++ * @brief Get the damping magic number of a dragable scrolled view
++ * @param scrolled_view a scrolled view
++ * @return Returns the actual damping factor
++ */
++unsigned int etk_scrolled_view_drag_damping_magic_get(Etk_Scrolled_View *scrolled_view)
++{
++ if (!scrolled_view)
++ return 0;
++ return scrolled_view->drag.damping_magic;
++}
+
+ /**************************
+ *
+@@ -189,6 +297,14 @@
+ scrolled_view->hpolicy = ETK_POLICY_AUTO;
+ scrolled_view->vpolicy = ETK_POLICY_AUTO;
+
++ scrolled_view->drag.bar_pressed = ETK_FALSE;
++ scrolled_view->drag.dragable = ETK_FALSE;
++ scrolled_view->drag.bouncy = ETK_TRUE;
++
++ // FIXME This can be put in etk_config (Make whole system be configured)
++ etk_scrolled_view_drag_sample_interval_magic_set(scrolled_view,0.5f);
++ etk_scrolled_view_drag_damping_magic_set(scrolled_view,100);
++
+ scrolled_view->hscrollbar = etk_hscrollbar_new(0.0, 0.0, 0.0, 12.0, 50.0, 0.0);
+ etk_widget_theme_parent_set(scrolled_view->hscrollbar, ETK_WIDGET(scrolled_view));
+ etk_widget_parent_set(scrolled_view->hscrollbar, ETK_WIDGET(scrolled_view));
+@@ -205,11 +321,18 @@
+ ETK_WIDGET(scrolled_view)->size_allocate = _etk_scrolled_view_size_allocate;
+
+ etk_signal_connect_by_code(ETK_WIDGET_KEY_DOWN_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_key_down_cb), NULL);
++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_DOWN_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_down), &scrolled_view->drag);
++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_UP_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_up), &scrolled_view->drag);
++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_CLICK_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_click), &scrolled_view->drag);
++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_MOVE_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_move), &scrolled_view->drag);
+ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_WHEEL_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_mouse_wheel), NULL);
+ etk_signal_connect_by_code(ETK_CONTAINER_CHILD_ADDED_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_child_added_cb), NULL);
+ etk_signal_connect_by_code(ETK_CONTAINER_CHILD_REMOVED_SIGNAL, ETK_OBJECT(scrolled_view), ETK_CALLBACK(_etk_scrolled_view_child_removed_cb), NULL);
+ etk_signal_connect_by_code(ETK_RANGE_VALUE_CHANGED_SIGNAL, ETK_OBJECT(scrolled_view->hscrollbar), ETK_CALLBACK(_etk_scrolled_view_hscrollbar_value_changed_cb), scrolled_view);
++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_DOWN_SIGNAL, ETK_OBJECT(scrolled_view->hscrollbar), ETK_CALLBACK(_etk_scrolled_view_bar_mouse_down), scrolled_view);
+ etk_signal_connect_by_code(ETK_RANGE_VALUE_CHANGED_SIGNAL, ETK_OBJECT(scrolled_view->vscrollbar), ETK_CALLBACK(_etk_scrolled_view_vscrollbar_value_changed_cb), scrolled_view);
++ etk_signal_connect_by_code(ETK_WIDGET_MOUSE_DOWN_SIGNAL, ETK_OBJECT(scrolled_view->vscrollbar), ETK_CALLBACK(_etk_scrolled_view_bar_mouse_down), scrolled_view);
++
+ }
+
+ /* Sets the property whose id is "property_id" to the value "value" */
+@@ -390,6 +513,94 @@
+ etk_widget_size_allocate(child, child_geometry);
+ }
+
++/* Check if reaching the boundary */
++static inline double _etk_scrolled_view_bounce_check (Etk_Range * range, double delta,double v)
++{
++ double pos = (range->value + delta);
++ if (pos <= range->lower)
++ {
++ pos = range->lower + (range->lower - pos);
++ v *= -1;
++ }
++ etk_range_value_set(range, pos);
++ if (pos > range->value)
++ v *= -1;
++ return v;
++}
++
++/* Animator for inertial scrolling */
++static int _etk_scrolled_view_motive_bounce(void *data)
++{
++ Etk_Scrolled_View *scrolled_view = ETK_SCROLLED_VIEW(data);
++ struct Etk_Scrolled_View_Mouse_Drag *drag;
++ Etk_Range *vscrollbar_range;
++ Etk_Range *hscrollbar_range;
++ double delta_time;
++ double delta_V;
++ double delta_x;
++ double delta_y;
++ if (!scrolled_view)
++ return 0;
++ drag = &scrolled_view->drag;
++ if (drag->mouse_down)
++ return 0;
++
++ // Using trapezoid method to calculate the distance.
++ delta_time = ecore_time_get() - drag->timestamp;
++ delta_V = delta_time * (drag->damping_magic + abs(drag->Vx)+ abs(drag->Vy))/2;
++ delta_time = delta_time < 0.01f ? 0.01f: delta_time;
++
++ if (drag->Vx < delta_V && drag->Vx > -delta_V)
++ {
++ delta_x = 0;
++ drag->Vx = 0;
++ }
++ else if (drag->Vx > 0)
++ {
++ delta_x = ((drag->Vx * 2) - delta_V) * delta_time / 2;
++ drag->Vx = drag->Vx - delta_V;
++ }
++ else
++ {
++ delta_x = ((drag->Vx * 2) + delta_V) * delta_time / 2;
++ drag->Vx = drag->Vx + delta_V;
++ }
++
++ if (drag->Vy < delta_V && drag->Vy > -delta_V)
++ {
++ drag->Vy = 0;
++ delta_y = 0;
++ }
++ else if(drag->Vy > 0)
++ {
++ delta_y = ((drag->Vy * 2) - delta_V) * delta_time / 2;
++ drag->Vy = drag->Vy - delta_V;
++ } else
++ {
++ delta_y = ((drag->Vy * 2) + delta_V) * delta_time / 2;
++ drag->Vy = drag->Vy + delta_V;
++ }
++
++ if (drag->Vx == 0 && drag->Vy == 0)
++ return 0;
++
++ vscrollbar_range = ETK_RANGE(scrolled_view->vscrollbar);
++ hscrollbar_range = ETK_RANGE(scrolled_view->hscrollbar);
++ if (drag->bouncy)
++ {
++ drag->Vx = _etk_scrolled_view_bounce_check(hscrollbar_range, delta_x, drag->Vx);
++ drag->Vy = _etk_scrolled_view_bounce_check(vscrollbar_range, delta_y, drag->Vy);
++ }
++ else
++ {
++ drag->Vx = drag->Vx == _etk_scrolled_view_bounce_check(hscrollbar_range, delta_x, drag->Vx) ? drag->Vx : 0.0f;
++ drag->Vy = drag->Vy == _etk_scrolled_view_bounce_check(vscrollbar_range, delta_y, drag->Vy) ? drag->Vy : 0.0f;
++ }
++ drag->timestamp = ecore_time_get();
++ return 1;
++}
++
++
+ /**************************
+ *
+ * Callbacks and handlers
+@@ -431,6 +642,135 @@
+ return propagate;
+ }
+
++/* Called when mouse button has been pressed down */
++static Etk_Bool _etk_scrolled_view_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data)
++{
++ Etk_Scrolled_View *scrolled_view;
++ Etk_Range *vscrollbar_range;
++ Etk_Range *hscrollbar_range;
++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data;
++
++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object)))
++ return ETK_FALSE;
++
++ if (!drag->dragable)
++ return ETK_FALSE;
++
++ if (!drag->mouse_down && event->button)
++ {
++ vscrollbar_range = ETK_RANGE(scrolled_view->vscrollbar);
++ hscrollbar_range = ETK_RANGE(scrolled_view->hscrollbar);
++ drag->mouse_down = ETK_TRUE;
++ drag->timestamp = ecore_time_get();
++ drag->old_timestamp = 0.0f;
++ drag->position = event->widget;
++ drag->bar_position.x = hscrollbar_range->value;
++ drag->bar_position.y = vscrollbar_range->value;
++ }
++ return ETK_FALSE;
++}
++
++/* Called when mouse is dragging */
++static Etk_Bool _etk_scrolled_view_mouse_move(Etk_Object *object, Etk_Event_Mouse_Move *event, void *data)
++{
++ Etk_Scrolled_View *scrolled_view;
++ Etk_Range *vscrollbar_range;
++ Etk_Range *hscrollbar_range;
++ double delta_time;
++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data;
++
++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object)))
++ return ETK_FALSE;
++
++ if (!drag->dragable)
++ return ETK_FALSE;
++
++ if (!drag->mouse_down)
++ return ETK_FALSE;
++
++ if (!event->buttons)
++ return ETK_FALSE;
++
++ vscrollbar_range = ETK_RANGE(scrolled_view->vscrollbar);
++ hscrollbar_range = ETK_RANGE(scrolled_view->hscrollbar);
++ if (drag->scroll_flag == 0)
++ {
++ drag->scroll_flag = (event->cur.widget.y - drag->position.y)/vscrollbar_range->step_increment || (event->cur.widget.x - drag->position.x)/hscrollbar_range->step_increment;
++ }
++
++ if (drag->scroll_flag)
++ {
++ if (drag->bar_pressed==ETK_FALSE)
++ {
++ etk_range_value_set(vscrollbar_range, vscrollbar_range->value - (event->cur.widget.y - drag->position.y));
++ etk_range_value_set(hscrollbar_range, hscrollbar_range->value - (event->cur.widget.x - drag->position.x));
++ }
++ drag->position = event->cur.widget;
++ delta_time = ecore_time_get() - drag->timestamp;
++ // in case delta_time is zero
++ delta_time = delta_time == 0.0f ? drag->sample_magic : delta_time;
++ if (delta_time > drag->sample_magic || drag->old_timestamp == 0)
++ {
++ drag->old_timestamp = drag->timestamp;
++ drag->timestamp = ecore_time_get();
++ drag->Vx = (hscrollbar_range->value - drag->bar_position.x) / delta_time;
++ drag->Vy = (vscrollbar_range->value - drag->bar_position.y) / delta_time;
++ drag->bar_position.x = hscrollbar_range->value;
++ drag->bar_position.y = vscrollbar_range->value;
++ }
++ return ETK_TRUE;
++ }
++ return ETK_FALSE;
++}
++
++/* Called when mouse button has been released */
++static Etk_Bool _etk_scrolled_view_mouse_up(Etk_Object *object, Etk_Event_Mouse_Up *event, void *data)
++{
++ Etk_Scrolled_View *scrolled_view;
++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data;
++
++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object)))
++ return ETK_FALSE;
++
++ if (!drag->dragable)
++ return ETK_FALSE;
++
++ if (!drag->mouse_down)
++ return ETK_FALSE;
++
++ if (drag->bar_pressed == ETK_TRUE)
++ {
++ drag->bar_pressed = ETK_FALSE;
++ return ETK_FALSE;
++ }
++
++ drag->mouse_down = ETK_FALSE;
++
++ if (drag->scroll_flag)
++ {
++ drag->timestamp = ecore_time_get();
++ ecore_animator_add(&_etk_scrolled_view_motive_bounce, scrolled_view);
++ return ETK_TRUE;
++ }
++ return ETK_FALSE;
++}
++
++/* Called when mouse button has been clicked */
++static Etk_Bool _etk_scrolled_view_mouse_click (Etk_Object *object, Etk_Event_Mouse_Up *event, void *data)
++{
++ Etk_Scrolled_View *scrolled_view;
++ struct Etk_Scrolled_View_Mouse_Drag *drag = (struct Etk_Scrolled_View_Mouse_Drag *) data;
++ if (!(scrolled_view = ETK_SCROLLED_VIEW(object)))
++ return ETK_TRUE;
++
++ if (drag->scroll_flag)
++ {
++ drag->scroll_flag = 0;
++ return ETK_TRUE;
++ }
++ return ETK_FALSE;
++}
++
+ /* Called when the user wants to scroll the scrolled view with the mouse wheel */
+ static Etk_Bool _etk_scrolled_view_mouse_wheel(Etk_Object *object, Etk_Event_Mouse_Wheel *event, void *data)
+ {
+@@ -458,6 +798,18 @@
+ return ETK_TRUE;
+ }
+
++/* Called when dragging on the scrollbar */
++static Etk_Bool _etk_scrolled_view_bar_mouse_down(Etk_Object *object, Etk_Event_Mouse_Down *event, void *data)
++{
++ Etk_Scrolled_View *scrolled_view;
++ Etk_Widget *child;
++ if (!(scrolled_view = ETK_SCROLLED_VIEW(data)) || !(child = ETK_BIN(scrolled_view)->child) || !child->scroll)
++ return ETK_FALSE;
++ scrolled_view->drag.bar_pressed = ETK_TRUE;
++ return ETK_FALSE;
++}
++
++
+ /* Called when the value of the vscrollbar has changed */
+ static Etk_Bool _etk_scrolled_view_vscrollbar_value_changed_cb(Etk_Object *object, double value, void *data)
+ {
+Index: etk/src/lib/etk_scrolled_view.h
+===================================================================
+--- etk.orig/src/lib/etk_scrolled_view.h 2008-04-02 11:53:32.000000000 +0800
++++ etk/src/lib/etk_scrolled_view.h 2008-04-05 00:03:31.000000000 +0800
+@@ -33,9 +33,24 @@
+ ETK_POLICY_AUTO, /**< The scrollbar is shown and hidden automatically whether or not the child can fit
+ * entirely in the scrolled view */
+ ETK_POLICY_SHOW, /**< The scrollbar is always visible */
+- ETK_POLICY_HIDE /**< The scrollbar is always hidden */
++ ETK_POLICY_HIDE, /**< The scrollbar is always hidden */
+ } Etk_Scrolled_View_Policy;
+
++struct Etk_Scrolled_View_Mouse_Drag
++{
++ Etk_Bool mouse_down;
++ Etk_Bool bar_pressed;
++ Etk_Bool dragable;
++ Etk_Bool bouncy;
++ int scroll_flag;
++ Etk_Position position;
++ Etk_Position bar_position;
++ double sample_magic;
++ unsigned int damping_magic;
++ double timestamp;
++ double old_timestamp;
++ double Vx,Vy;
++};
+
+ /**
+ * @brief @widget The structure of a scrolled view
+@@ -52,9 +67,12 @@
+
+ Etk_Scrolled_View_Policy hpolicy;
+ Etk_Scrolled_View_Policy vpolicy;
++
++ struct Etk_Scrolled_View_Mouse_Drag drag;
+ };
+
+
++
+ Etk_Type *etk_scrolled_view_type_get(void);
+ Etk_Widget *etk_scrolled_view_new(void);
+
+@@ -63,6 +81,14 @@
+ void etk_scrolled_view_add_with_viewport(Etk_Scrolled_View *scrolled_view, Etk_Widget *child);
+ void etk_scrolled_view_policy_set(Etk_Scrolled_View *scrolled_view, Etk_Scrolled_View_Policy hpolicy, Etk_Scrolled_View_Policy vpolicy);
+ void etk_scrolled_view_policy_get(Etk_Scrolled_View *scrolled_view, Etk_Scrolled_View_Policy *hpolicy, Etk_Scrolled_View_Policy *vpolicy);
++void etk_scrolled_view_dragable_set(Etk_Scrolled_View *scrolled_view, Etk_Bool dragable);
++Etk_Bool etk_scrolled_view_dragable_get(Etk_Scrolled_View *scrolled_view);
++void etk_scrolled_view_drag_bouncy_set(Etk_Scrolled_View *scrolled_view, Etk_Bool bouncy);
++Etk_Bool etk_scrolled_view_drag_bouncy_get(Etk_Scrolled_View *scrolled_view);
++double etk_scrolled_view_drag_sample_interval_magic_set(Etk_Scrolled_View *scrolled_view,double interval);
++double etk_scrolled_view_drag_sample_interval_magic_get(Etk_Scrolled_View *scrolled_view);
++unsigned int etk_scrolled_view_drag_damping_magic_set(Etk_Scrolled_View *scrolled_view,unsigned int damping);
++unsigned int etk_scrolled_view_drag_damping_magic_get(Etk_Scrolled_View *scrolled_view);
+
+ /** @} */
+
diff --git a/recipes/efl1/etk_svn.bb b/recipes/efl1/etk_svn.bb
new file mode 100644
index 0000000000..5c47c406d2
--- /dev/null
+++ b/recipes/efl1/etk_svn.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries."
+DEPENDS = "evas ecore edje"
+LICENSE = "MIT"
+PV = "0.1.0.042+svnr${SRCREV}"
+PR = "r4"
+
+inherit efl
+
+RRECOMMENDS_${PN} = "\
+ etk-engines-software-x11 \
+ etk-engines-evas \
+ etk-engines-fb \
+ etk-engines-x11 \
+ etk-engines-software-x11-16 \
+"
+
+PACKAGES += "etk-engines-software-x11"
+FILES_${PN}-engines-software-x11 = "${libdir}/etk/engines/ecore_evas_software_x11.so"
+
+PACKAGES =+ "etk-engines-gl-x11"
+FILES_${PN}-engines-gl-x11 = "${libdir}/etk/engines/ecore_evas_gl_x11.so"
+
+PACKAGES =+ "etk-engines-evas"
+FILES_${PN}-engines-evas = "${libdir}/etk/engines/ecore_evas.so"
+
+PACKAGES =+ "etk-engines-fb"
+FILES_${PN}-engines-fb = "${libdir}/etk/engines/ecore_fb.so"
+
+PACKAGES =+ "etk-engines-x11"
+FILES_${PN}-engines-x11 = "${libdir}/etk/engines/ecore_evas_x11.so"
+
+PACKAGES =+ "etk-engines-software-x11-16"
+FILES_${PN}-engines-software-x11-16 = "${libdir}/etk/engines/ecore_evas_software_x11_16.so"
diff --git a/recipes/efl1/evas-native_svn.bb b/recipes/efl1/evas-native_svn.bb
new file mode 100644
index 0000000000..dbd03f5257
--- /dev/null
+++ b/recipes/efl1/evas-native_svn.bb
@@ -0,0 +1,118 @@
+require evas.inc
+inherit native
+DEPENDS = "freetype-native libpng-native jpeg-native eet-native eina-native"
+PR = "r0"
+
+EXTRA_OECONF = "\
+ --x-includes=${STAGING_INCDIR}/X11 \
+ --x-libraries=${STAGING_LIBDIR} \
+ --enable-evas-magic-debug \
+ \
+ --enable-fb \
+ --disable-directfb \
+ --disable-sdl \
+ --enable-buffer \
+ --disable-software-ddraw \
+ --disable-software-qtopia \
+ --disable-software-x11 \
+ --disable-software-16-x11 \
+ --disable-software-xcb \
+ --disable-gl-x11 \
+ --disable-xrender-x11 \
+ --disable-xrender-xcb \
+ --disable-glitz-x11 \
+ --enable-image-loader-eet \
+ --disable-image-loader-edb \
+ --disable-image-loader-gif \
+ --enable-image-loader-png \
+ --enable-image-loader-jpeg \
+ --enable-image-loader-tiff \
+ --enable-image-loader-xpm \
+ --disable-image-loader-svg \
+ --enable-cpu-c \
+ --enable-fontconfig \
+ --enable-font-loader-eet \
+ --enable-scale-sample \
+ --enable-scale-smooth \
+ --enable-convert-yuv \
+ --enable-small-dither-mask \
+ --disable-no-dither-mask \
+ --disable-convert-8-rgb-332 \
+ --disable-convert-8-rgb-666 \
+ --disable-convert-8-rgb-232 \
+ --disable-convert-8-rgb-222 \
+ --disable-convert-8-rgb-221 \
+ --disable-convert-8-rgb-121 \
+ --disable-convert-8-rgb-111 \
+ --enable-convert-16-rgb-565 \
+ --disable-convert-16-rgb-555 \
+ --disable-convert-16-rgb-444 \
+ --disable-convert-16-rgb-ipq \
+ --enable-convert-16-rgb-rot-0 \
+ --disable-convert-16-rgb-rot-90 \
+ --enable-convert-16-rgb-rot-270 \
+ --disable-convert-24-rgb-888 \
+ --disable-convert-24-bgr-888 \
+ --disable-convert-32-rgb-8888 \
+ --disable-convert-32-rgbx-8888 \
+ --disable-convert-32-bgr-8888 \
+ --disable-convert-32-bgrx-8888 \
+ --disable-convert-32-rgb-rot-0 \
+ --disable-convert-32-rgb-rot-90 \
+ --disable-convert-32-rgb-rot-270"
+
+
+# evas needs a different oe_libinstall, so copy/paste autotools_stage_all
+do_stage() {
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake DESTDIR="${STAGE_TEMP}" install
+ autotools_stage_dir ${STAGE_TEMP}/${includedir} ${STAGING_INCDIR}
+ if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
+ autotools_stage_dir ${STAGE_TEMP}/${bindir} ${STAGING_DIR_HOST}${layout_bindir}
+ autotools_stage_dir ${STAGE_TEMP}/${sbindir} ${STAGING_DIR_HOST}${layout_sbindir}
+ autotools_stage_dir ${STAGE_TEMP}/${base_bindir} ${STAGING_DIR_HOST}${layout_base_bindir}
+ autotools_stage_dir ${STAGE_TEMP}/${base_sbindir} ${STAGING_DIR_HOST}${layout_base_sbindir}
+ autotools_stage_dir ${STAGE_TEMP}/${libexecdir} ${STAGING_DIR_HOST}${layout_libexecdir}
+ fi
+ if [ -d ${STAGE_TEMP}/${libdir} ]
+ then
+ olddir=`pwd`
+ cd ${STAGE_TEMP}/${libdir}
+ las=$(find . -name \*.la -type f)
+ cd $olddir
+ echo "Found la files: $las"
+ if [ -n "$las" ]; then
+ # If there are .la files then libtool was used in the
+ # build, so install them with magic mangling.
+ for i in $las
+ do
+ dir=$(dirname $i)
+ echo "oe_libinstall -C ${STAGE_TEMP}/${libdir}/${dir} -so $(basename $i .la) ${STAGING_LIBDIR}/${dir}"
+ oe_libinstall -C ${STAGE_TEMP}/${libdir}/${dir} -so $(basename $i .la) ${STAGING_LIBDIR}/${dir}
+ done
+ else
+ # Otherwise libtool wasn't used, and lib/ can be copied
+ # directly.
+ echo "cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}"
+ cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}
+ fi
+
+ fi
+ # Ok, this is nasty. pkgconfig.bbclass is usually used to install .pc files,
+ # however some packages rely on the presence of .pc files to enable/disable
+ # their configurataions in which case we better should not install everything
+ # unconditionally, but rather depend on the actual results of make install.
+ # The good news though: a) there are not many packages doing this and
+ # b) packaged staging will fix that anyways. :M:
+ if [ "${AUTOTOOLS_STAGE_PKGCONFIG}" = "1" ]
+ then
+ echo "cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/"
+ cp -f ${STAGE_TEMP}/${libdir}/pkgconfig/*.pc ${STAGING_LIBDIR}/pkgconfig/
+ fi
+ rm -rf ${STAGE_TEMP}/${mandir} || true
+ rm -rf ${STAGE_TEMP}/${infodir} || true
+ autotools_stage_dir ${STAGE_TEMP}/${datadir} ${STAGING_DATADIR}
+ rm -rf ${STAGE_TEMP}
+
+}
diff --git a/recipes/efl1/evas.inc b/recipes/efl1/evas.inc
new file mode 100644
index 0000000000..ff7a184fb2
--- /dev/null
+++ b/recipes/efl1/evas.inc
@@ -0,0 +1,53 @@
+DESCRIPTION = "Evas is the Enlightenment canvas API"
+LICENSE = "MIT BSD"
+# can also depend on valgrind, libsdl-x11, directfb
+DEPENDS = "eina eet freetype jpeg libpng virtual/libx11 libxext libxrender fontconfig"
+PV = "0.9.9.050+svnr${SRCREV}"
+
+
+# disable thumb mode for arm
+ARM_INSTRUCTION_SET = "arm"
+
+inherit efl
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/evas"
+EXTRA_OECONF = "<override me>"
+
+python populate_packages_prepend () {
+ for plugin_type in "engines loaders savers".split():
+ bb.note( "splitting packages for evas %s..." % plugin_type )
+ basedir = bb.data.expand( '${libdir}/evas/modules/%s' % plugin_type, d )
+
+ do_split_packages(d, basedir, '^(.*)',
+ output_pattern = 'evas-' + plugin_type[:-1] + "-%s",
+ description = 'Evas module %s',
+ allow_dirs=True, recursive=False, extra_depends="" )
+}
+
+do_install_append() {
+ find "${D}" -name .debug -type d -exec rm -rf {} \;
+}
+
+FILES_${PN}-dev += "${libdir}/evas/modules/*/*/*/*.a ${libdir}/evas/modules/*/*/*/*.la"
+FILES_${PN}-dbg += "${libdir}/evas/modules/*/*/*/.debug/"
+
+PACKAGES_DYNAMIC = "libevas-engine-* libevas-loader-* libevas-saver-*"
+
+RRECOMMENDS_${PN} = "\
+ libevas-engine-buffer \
+ libevas-engine-fb \
+ libevas-engine-software-generic \
+ libevas-engine-software-x11 \
+ libevas-engine-software-16 \
+ libevas-engine-software-16-x11 \
+ libevas-engine-xrender-x11 \
+ \
+ libevas-loader-png \
+ libevas-loader-jpeg \
+ libevas-loader-eet \
+"
+
+# disabling this, since (due to OE bugs) it drags in whole Gtk+
+#RRECOMMENDS_${PN} += "\
+# libevas-loader-svg \
+#"
diff --git a/recipes/efl1/evas/.mtn2git_empty b/recipes/efl1/evas/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/recipes/efl1/evas/.mtn2git_empty
diff --git a/recipes/efl1/evas_svn.bb b/recipes/efl1/evas_svn.bb
new file mode 100644
index 0000000000..02d4cf446a
--- /dev/null
+++ b/recipes/efl1/evas_svn.bb
@@ -0,0 +1,63 @@
+require evas.inc
+PR = "r1"
+
+EXTRA_OECONF = "\
+ --x-includes=${STAGING_INCDIR}/X11 \
+ --x-libraries=${STAGING_LIBDIR} \
+ --enable-evas-magic-debug \
+ \
+ --enable-fb \
+ --disable-directfb \
+ --disable-sdl \
+ --enable-buffer \
+ --disable-software-ddraw \
+ --disable-software-qtopia \
+ --enable-simple-x11 \
+ --enable-software-x11 \
+ --enable-software-16-x11 \
+ --disable-software-xcb \
+ --disable-gl-x11 \
+ --enable-xrender-x11 \
+ --disable-xrender-xcb \
+ --disable-glitz-x11 \
+ --enable-image-loader-eet \
+ --disable-image-loader-edb \
+ --disable-image-loader-gif \
+ --enable-image-loader-png \
+ --enable-image-loader-jpeg \
+ --enable-image-loader-tiff \
+ --enable-image-loader-xpm \
+ --disable-image-loader-svg \
+ --enable-cpu-c \
+ --enable-fontconfig \
+ --enable-font-loader-eet \
+ --enable-scale-sample \
+ --enable-scale-smooth \
+ --enable-convert-yuv \
+ --enable-small-dither-mask \
+ --disable-no-dither-mask \
+ --disable-convert-8-rgb-332 \
+ --disable-convert-8-rgb-666 \
+ --disable-convert-8-rgb-232 \
+ --disable-convert-8-rgb-222 \
+ --disable-convert-8-rgb-221 \
+ --disable-convert-8-rgb-121 \
+ --disable-convert-8-rgb-111 \
+ --enable-convert-16-rgb-565 \
+ --disable-convert-16-rgb-555 \
+ --disable-convert-16-rgb-444 \
+ --disable-convert-16-rgb-ipq \
+ --enable-convert-16-rgb-rot-0 \
+ --enable-convert-16-rgb-rot-90 \
+ --disable-convert-16-rgb-rot-180 \
+ --enable-convert-16-rgb-rot-270 \
+ --enable-convert-24-rgb-888 \
+ --enable-convert-24-bgr-888 \
+ --enable-convert-32-rgb-8888 \
+ --enable-convert-32-rgbx-8888 \
+ --enable-convert-32-bgr-8888 \
+ --enable-convert-32-bgrx-8888 \
+ --enable-convert-32-rgb-rot-0 \
+ --enable-convert-32-rgb-rot-90 \
+ --disable-convert-32-rgb-rot-180 \
+ --enable-convert-32-rgb-rot-270"
diff --git a/recipes/efl1/evolve-native_svn.bb b/recipes/efl1/evolve-native_svn.bb
new file mode 100644
index 0000000000..5d57075498
--- /dev/null
+++ b/recipes/efl1/evolve-native_svn.bb
@@ -0,0 +1,6 @@
+require evolve_svn.bb
+inherit native
+DEPENDS = "etk-native"
+
+# needs ecore-x :/
+BROKEN = "1"
diff --git a/recipes/efl1/evolve_svn.bb b/recipes/efl1/evolve_svn.bb
new file mode 100644
index 0000000000..e38df93e24
--- /dev/null
+++ b/recipes/efl1/evolve_svn.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Evolve allows you to write ETK designs using a C-like language"
+LICENSE = "MIT"
+DEPENDS = "etk evolve-native"
+PV = "0.0.0+svnr${SRCREV}"
+PR = "r2"
+
+inherit efl
diff --git a/recipes/efl1/ewl_svn.bb b/recipes/efl1/ewl_svn.bb
new file mode 100644
index 0000000000..6425e865a3
--- /dev/null
+++ b/recipes/efl1/ewl_svn.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "The Enlightened Widget Library"
+DEPENDS = "evas ecore edje emotion efreet epsilon"
+LICENSE = "MIT BSD"
+PV = "0.5.2.050+svnr${SRCREV}"
+PR = "r1"
+
+inherit efl
+
+EXTRA_OECONF = "\
+ --enable-software-x11 \
+ --enable-software-16-x11 \
+ --enable-xrender-x11 \
+ --disable-opengl-x11 \
+ --disable-software-xcb \
+ --disable-software-sdl \
+ --enable-framebuffer \
+ --enable-software-buffer \
+ --disable-opengl-glew \
+"
+
+# TODO package engines more granular
+PACKAGES += "${PN}-plugins ${PN}-engines"
+
+FILES_${PN} += "${sysconfdir}/ewl/*"
+FILES_${PN}-tests += "${libdir}/ewl/tests/*.so*"
+FILES_${PN}-dev += "${libdir}/ewl/*/*.a ${libdir}/ewl/*/*.la"
+FILES_${PN}-dbg += "${libdir}/ewl/*/.debug"
+
+FILES_${PN}-engines = "${libdir}/ewl/engines/*.so*"
+FILES_${PN}-plugins = "${libdir}/ewl/plugins/*.so*"
+
+RRECOMMENDS_${PN} = "${PN}-engines ${PN}-plugins ewl-themes"
diff --git a/recipes/efl1/exml_svn.bb b/recipes/efl1/exml_svn.bb
new file mode 100644
index 0000000000..363a23d7f1
--- /dev/null
+++ b/recipes/efl1/exml_svn.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Exml is a generic XML parser wrapper."
+LICENSE = "MIT"
+DEPENDS = "libxml2 libxslt ecore"
+PV = "0.1.1+svnr${SRCREV}"
+PR = "r2"
+
+inherit efl
+
diff --git a/recipes/efl1/imlib2/remove-local-includes-20080421.patch b/recipes/efl1/imlib2/remove-local-includes-20080421.patch
new file mode 100644
index 0000000000..d28ba9ebf0
--- /dev/null
+++ b/recipes/efl1/imlib2/remove-local-includes-20080421.patch
@@ -0,0 +1,15 @@
+Index: imlib2/configure.in
+===================================================================
+--- imlib2.orig/configure.in 2008-04-21 14:28:58.000000000 +0800
++++ imlib2/configure.in 2008-04-21 14:30:07.000000000 +0800
+@@ -191,9 +191,7 @@
+
+ if test "x$have_x" = "xyes"; then
+ AC_PATH_XTRA
+- x_dir=${x_dir:-/usr/X11R6}
+- x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}}
+- x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext"
++ x_libs="-lX11 -lXext"
+ AC_DEFINE(BUILD_X11, 1, [enabling X11 support])
+ else
+ x_cflags=""
diff --git a/recipes/efl1/imlib2_svn.bb b/recipes/efl1/imlib2_svn.bb
new file mode 100644
index 0000000000..025a36add4
--- /dev/null
+++ b/recipes/efl1/imlib2_svn.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "A graphic library for file loading, saving, rendering, and manipulation."
+LICENSE = "BSD"
+# can also depend on tiff34, ungif or gif, z, bz2, id3tag
+DEPENDS = "freetype libpng jpeg virtual/libx11 libxext"
+PROVIDES = "virtual/imlib2"
+PV = "1.4.2.001+svnr${SRCREV}"
+PR = "r0"
+
+inherit efl
+
+EXTRA_OECONF = "--with-x"
+
+# TODO: Use more fine granular version
+#OE_LT_RPATH_ALLOW=":${libdir}/imlib2/loaders:${libdir}/imlib2/filters:"
+OE_LT_RPATH_ALLOW = "any"
+OE_LT_RPATH_ALLOW[export]="1"
+
+PACKAGES =+ "imlib2-loaders-dbg imlib2-filters-dbg imlib2-loaders imlib2-filters"
+FILES_${PN} = "${libdir}/lib*.so.* ${libdir}/imlib2/*/*.so"
+FILES_${PN}-dbg = "${libdir}/.debug/ ${bindir}/.debug/"
+FILES_${PN}-dev += "${bindir}/imlib2-config ${libdir}/*.so ${includedir}"
+FILES_${PN}-bin = "${bindir}"
+FILES_imlib2-loaders = "${libdir}/imlib2/loaders/*.so"
+FILES_imlib2-filters = "${libdir}/imlib2/filters/*.so"
+FILES_imlib2-loaders-dbg += "${libdir}/imlib2/loaders/.debug"
+FILES_imlib2-filters-dbg += "${libdir}/imlib2/filters/.debug"
diff --git a/recipes/efl1/libefso_svn.bb b/recipes/efl1/libefso_svn.bb
new file mode 100644
index 0000000000..20d520cba5
--- /dev/null
+++ b/recipes/efl1/libefso_svn.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "EFL FSO wrapper library"
+SECTION = "e/libs"
+LICENSE = "GPLv2"
+DEPENDS = "ecore edbus"
+PV = "0.0.0+svnr${SRCREV}"
+PR = "r2"
+
+SRC_URI = "svn://svn.om.vptt.ch/trunk/;proto=http;module=libefso"
+S = "${WORKDIR}/libefso"
+
+inherit autotools pkgconfig
+
+do_stage () {
+ install -m 0644 src/lib/efso.h ${STAGING_INCDIR}/efso.h
+ oe_libinstall -a -so -C src/lib libefso ${STAGING_LIBDIR}
+ autotools_stage_all
+}