Move patch to distfiles mirrors
authorThomas Sachau <tommy@gentoo.org>
Sun, 28 Dec 2014 14:28:32 +0000 (14:28 +0000)
committerThomas Sachau <tommy@gentoo.org>
Sun, 28 Dec 2014 14:28:32 +0000 (14:28 +0000)
Package-Manager: portage-2.2.15/cvs/Linux x86_64
Manifest-Sign-Key: 0x35899067

dev-libs/efl/ChangeLog
dev-libs/efl/Manifest
dev-libs/efl/efl-1.12.2.ebuild
dev-libs/efl/files/efl-1.12.2-lauch_via_logind_or_root_privilege.patch [deleted file]

index 737aa9cac632ba49a526617d7db6edcf8bcff586..29956e9434c3e06dfd8cd8154bcd2fb2209a21fe 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-libs/efl
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/efl/ChangeLog,v 1.22 2014/12/28 09:43:36 tommy Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/efl/ChangeLog,v 1.23 2014/12/28 14:28:23 tommy Exp $
+
+  28 Dec 2014; Thomas Sachau (Tommy[D]) <tommy@gentoo.org>
+  -files/efl-1.12.2-lauch_via_logind_or_root_privilege.patch, efl-1.12.2.ebuild:
+  Move patch to distfiles mirrors
 
   28 Dec 2014; Thomas Sachau (Tommy[D]) <tommy@gentoo.org>
   +files/efl-1.12.2-lauch_via_logind_or_root_privilege.patch:
index 7d4535da38aa6d8fe64e52011391f554426e2dae..dfff9497d5758a12b7e143b1e82def7647b7c206 100644 (file)
@@ -1,9 +1,9 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
 
-AUX efl-1.12.2-lauch_via_logind_or_root_privilege.patch 27159 SHA256 601fffd6073eb09d7fe9173cb782f8b8f62a59f5f82b8be3a677728bf6df8b99 SHA512 30538186e6691131a5060337518db8704d8340e43d77e3392a863b70ff54446ea6edd0030298b887f109db204a3b1ec7ecf14d9c7f5ea3ca37fc2797aaa010b7 WHIRLPOOL 66293507e0645b828e54c169d0bb095c66a46128518e38add0cc09d4746c81b540eead451ed52b9a36514bc00481e33baa49cbbcd54acddacf60b125cf3cf3fd
 DIST efl-1.10.1.tar.bz2 38538939 SHA256 203e6455a98b89c36e5ad838ea7dab855d744b8253843f468b72a925a058499f SHA512 96da96af331d7acc96f18dacd21c5756455a059244438daba2c9d6aeb5c991cdca5013ef7e672bae0bbe69a755c20eee8bb2051dbb372495e77ce943b57c16df WHIRLPOOL 76448b1077a81b698586129dc3ba033f82c6b0551edb92202c4cbbfd816e890390075df2d64f5e2c5fb7834bd5610628f5e63644ef73174d5e6680a973afa1f7
 DIST efl-1.11.2.tar.bz2 40950173 SHA256 b8646edbcfeb28da1447e072fa80b39546be18023903f7e5cf63c06784abc759 SHA512 4ffabe3b5ec704bcbff3d47c597fe8f27c03a6d6f43bd1f85add4667f1b946ac00d93a71cebdb31d46f5dbc6429d3100932d5011c8e7ef83ada73f19a24d1f04 WHIRLPOOL 69a858b29a1f4a7a0104fb167a738e9109cde78ba0107016814699f6f9a7757a7a931a5625db388a7550f5e0158c9765c3b23c47bb52c1e089814336310a7212
+DIST efl-1.12.2-lauch_via_logind_or_root_privilege.patch.xz 6276 SHA256 9af4e2cc5df96d25fb70f7d21381444ce988dd8f71f1a544bdc357115040897c SHA512 2011619b6382358e291ee185426716836c136e85d7fd337b73f909acd7b2ba82d65bba3e5328eac0909a55af04aa47f5e0778f6f22fb47a914c146b68ba17733 WHIRLPOOL c4085c8f3d59566c09e8a7428df6a0a2cb634f5f15f2fbf75bd98d85e6136a8469ef1ec1a692e485e1d7afc9c3c35cfe0ac428d2843eabbbcb8e516910a97ba9
 DIST efl-1.12.2.tar.bz2 46808743 SHA256 aa1a6b95de3d92dda819e1245254e3d9c0d68f77d27d89afb1ae3f2244c0bf0c SHA512 8d137a4cd7a11f102b949bfc7047b3be870df6d7ede72765b005914729bf291f59d1f70b69ab7fbbd3328975068aa5ded2f10e556a7d4f7c31aedfcd0d7340e9 WHIRLPOOL 531f81000dafbd88dacd24588a3832a7c2afccf466d070d78d86641b8c0e3e64854c4f9d8dfe46ab0fb84fd6890ac6eb3e8e63d02ef58bedf88c265412f3ddf7
 DIST efl-1.8.5.tar.bz2 28175735 SHA256 4456ce34bdc8294336c451a44e12f2f928ac9b857040da6d72c10432611646de SHA512 155542aa900980c59745dd2b25244d52b38de0de400b8432f9183c53c9770efdbca9d6e31f3305cf16d19357660ff8383447442d6a08c9ddec2e83a5b054e6df WHIRLPOOL d8efbc474a6d62837ab94c7ab6a060c1440fa16a2e798c2d722d6029ac17421afb8b07b3cf614c94fa9fed9f55fad8994377bc7a37b1e024fcf28423b45221a0
 DIST efl-1.8.6.tar.bz2 28101148 SHA256 0cc0a559ee7b249000771734e4c037695284d4980839436b57ac3afbaffb2089 SHA512 8bd02faa155500cdeab5dab878e7884c05829c5e6e7c645cd4802ffe597bb4abca8e783e771595be56a72ba2a10c8e361626b51f94292a05a8747985dbba064e WHIRLPOOL 35353c081872fb316e61f4a379a650be18bd61c213872715c4b363d3664afc92bdb2f90d454862b31e0523739071a716d1e4bbe7d25482ff82ba2681f611e098
@@ -11,19 +11,19 @@ DIST efl-1.9.4.tar.bz2 28180009 SHA256 39a285488dbc32f9c90514615ca8b9c13b7e47cd2
 DIST efl-1.9.5.tar.bz2 28199381 SHA256 207a9310a0d34cb08911282247745bb89907d7ee183485464c35318279d48cf7 SHA512 e3e214c205c5a680055c9fb98bc467a37564982ceb58f4cfb8f7dd761745a65f81820c2a7d399f6302e47e91bdf7d15ef6d042d284b2f8e69781d2508fc9fb49 WHIRLPOOL 304f89308606bb097dc2d3b58ef4f578b54fcc638aeb88f7b468a4544024b69351aa5b5fad74e67cdbb7cd426eca4103f0535ca56acf59d7ae6d99d5e8ae5cfe
 EBUILD efl-1.10.1.ebuild 6523 SHA256 a664fa208d52e42b35870b0dfe8c645eb68964b87228bd0fc0d21e4c9e89d1fb SHA512 c2d3eaf6d2f28586ae75aff9aee6a7982df2f5bec23befe9bc5812c6916bf391505bb5ff9d5554b82814f1b9054285b618c93c40d7a680eb673a393e9dc39bda WHIRLPOOL 54796a08b2b9b7102e363e7f072b203d55b89277ede923dec27b23808ae9f5e7a903ab2425ffd36a1aded96cbb141a88fa276eac8b153ff321491bd867479b5f
 EBUILD efl-1.11.2.ebuild 6523 SHA256 e016fa983e0cb124798f6af47315f733d323c5eb90a7bf36d429206befe46f31 SHA512 21b04e4ac239732b17e73d03008c0f9c28c10bafa2b066912c2f708ff0a4fdc6ef53670b0c1a5aa6e4f98625bfc4dc9dac7231ae526a896d36fc9da7ac7da18d WHIRLPOOL df48d88209c1bf66df69a609de4070c4d4cb9d4587ab3f91468e8298da6df074f01349485389713e656715e6a6b53a671a8f7ef00a59c64a8c7bbab3fa8d841c
-EBUILD efl-1.12.2.ebuild 6734 SHA256 a10792b17d1d21315bdd8d5eb5f2a1dc354d733342b05f6a6fe1532ba06a417a SHA512 102d640bd01edbdb77f989ec1c4c8b77f34a8c2f3e7acfaab736891db89b15e4c7a71ecdc7ea32f9bb4644b6637697cf44386d4e6520c803c4fde1e086540984 WHIRLPOOL 88bc4015ce39bde70ad53563a2a9e691505dee51d401e291a1984688ce74a9526ff8f4920fef1733bd27a7fa41cf2ddcf6cadbd9719a2763b82421ff7a291b23
+EBUILD efl-1.12.2.ebuild 6826 SHA256 cce116a2c61f7cd056459a5c10a04c3c04160b31b25fcdef7119a1862ac525e4 SHA512 4b72b57e7b6877e804f3d0d96fe3c5ace555497a06f559a88987f30aa0aaa2d81f0a8a5b5fc8c62e32a9edd304410df36cfce5d5fac1843c00400b3198488038 WHIRLPOOL a6a4ce9cbd2097a3c584410915ce624293782841049eb62a714c79270ee2c2bd869c376b4f0319475fdf75459061131185d7e6f0859073916cd7c3050bcce9d6
 EBUILD efl-1.8.5.ebuild 6334 SHA256 3cdfc4077f960364441316485b869114a5ef3e26fdcb1d2980ab91845a8599a4 SHA512 a26e3f85e42a0a5421c56a1fdedbf946e581be4a2520b0f3b40247a5805c1696c593956893fc236295655e467fc15f0fbf708e10fc873c8ef7ff44ff832fe51c WHIRLPOOL 3c46d816cc2bbd9a1d2b01e3f9c77d4d671ca4fe081593b5bc4cf771e718080db0da7edf26434610141a3c539e299fc2d5c08d334e745ee1da317d3cb22d66f7
 EBUILD efl-1.8.6.ebuild 6336 SHA256 ba1bca73166be583857a868768bd3dae143c5302d6d0fafee0b37a6a32b70395 SHA512 7314e95d7b01e25c71caecb8b9815c8b15aa0ade1ef0d7b7e09e31f14faa2cd9167ec93fe866248b1e8bc9f7a473cb859ab75bfb99b7182feb345ecc12915f80 WHIRLPOOL 149f79007b2122f88026096e802ec56341c6b4f0d4e6bc5b8048ad27c236be905a597ac320d348b383e9f4dd88dc4ceea93e675a69b18f9708420ef4a5dbd5b4
 EBUILD efl-1.9.4.ebuild 6482 SHA256 98acd2b86c2365d14b28f2530fa682d5660b095d123525906177d79e73bf49da SHA512 4700f46497e3da31553015977491706d8c42b2a096a00cd0401bce9e684f2753425f4b172dad2bf21c470d42bdd4d09528083581b69eae6a480b5d6085408654 WHIRLPOOL 1cc7bac952d53e1bf6a615141e95d39dbd1e4ccef4fea8079a86058954f9fe2006a717074379573482e9acc157d8ffec4667a174bd6f3b64a8b6879f47afe1c9
 EBUILD efl-1.9.5.ebuild 6482 SHA256 9091681f607ed2582d5e70ac9b5970b42e5e97dc705cad5571ee70518810352d SHA512 3494f64f256349551c01ec45fc79fbc04bd1017a3daeb85c9dd87021df1a0db5fab1786cf7faeef09bf7ff95acfd17c4bffdcff4058b11ccf60e73acde8b5e1c WHIRLPOOL b4996d1435745640ebfa27655c95b945dd9e572771e9baf7b7f71466f7cadae76d6c9c889894d3b048e1edf3e1bfa1bd2f1cd018add706bf719db6c6cd5fa2f3
-MISC ChangeLog 3950 SHA256 bbd5b360da1b82487704882096b7f04adc73d71128661bd4e20a14ebc293d518 SHA512 705cb44b95bf6e0168eb9629a59e7028f7efeed48cf375a794247ddfffc2e8dcfc55ae2aab82e8df867cdc9d57e5336c781e05085f008b86d716fd6b9d709bcb WHIRLPOOL d8cb249d1f98f2180bdf8858a33f821cb39be1443162e4142439d68a28e271f403d55c0d1037d088c447b879fdb5c27c685127b0e4cffc345fc9f8498e7963f5
+MISC ChangeLog 4125 SHA256 0103bbba976fcfbb99f279bdb063e298901ef617e1d4b6a0dfce5413ad197e7e SHA512 5c947d4b83b1e837243e1f8a2ecde70455e0212d0faf78f0faf34cab02f430ab918138f2e1d211fd17e499bcc927141dc8a92b24eb4e8bde6c40f3259af7616d WHIRLPOOL ba082985c4475e25cf3eabe43fdda7bcf33400e77dc81a90ccec82c5dac5ac207d6dbabcd05b89ed09b037aa3edf36e3e8329d9c5421e10f5263a66a9f2e9c03
 MISC metadata.xml 1492 SHA256 64533d61993cc09cb2f0151115fb131ba67dc024d2c746406091c0d4e7d94ac4 SHA512 70b417c1a97e668173b0ce5796b98094d6c2bc109f15064a79dac30a97feae1650e80d4cc2d2dd26c87a8e89503809c4bfb6f41614f1e577aa95c1e60980588a WHIRLPOOL cd5463af66fbff1dbeef6537ad96d6e6278abddb1b86bf256ac65be07b422139c8343ee47727f2de8ddd400cf0485cd91e3eea3e3d4bc8effc078dd27fc9c86b
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
-iJwEAQEIAAYFAlSf0O4ACgkQG7kqcTWJkGdUQwQAyNy15l0BiQALAg0UOsoo67t0
-KNFAw9bEGcyaN1UD4qYlN64UFuYjb0cJRIo4K/LsmpWm44ohaZ4NDofXmaJvWjkL
-usvCeQqpZ1Kk+GxmhhbAOwXS6rC6dNCg/GsDRM/3gH+KPgvIv/nZbI88BtoWTrWW
-k75SrNWGEVyu75ZLVGs=
-=JrQD
+iJwEAQEIAAYFAlSgE60ACgkQG7kqcTWJkGdaqwP/RvceZBww5Ho9Ci/JRVGU9OIx
+uj0QG8cpwvyXfDQcRLB5vH8Jwzm38IjGV7KsruZwnPRPFD9Whh/U3yPxZkB8rQwM
+xw6JCe1VDY2Y3xK97Uej9Gf1RMYopO1+edCgqEnHsJNC+0lpOm56PoiJwfc5rwQa
+YyotuNkL0rO25yaNhTo=
+=wxoL
 -----END PGP SIGNATURE-----
index febcf34cb6ec2c547c909934678a9d5e7cd6e857..6254be035ca682c53e2c8168316a84cb8d9003ca 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/efl/efl-1.12.2.ebuild,v 1.2 2014/12/27 19:40:03 tommy Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/efl/efl-1.12.2.ebuild,v 1.3 2014/12/28 14:28:23 tommy Exp $
 
 EAPI="5"
 
@@ -18,6 +18,8 @@ else
        EKEY_STATE="snap"
 fi
 
+SRC_URI="${SRC_URI} mirror://gentoo/efl-1.12.2-lauch_via_logind_or_root_privilege.patch.xz"
+
 inherit autotools enlightenment
 
 DESCRIPTION="Enlightenment Foundation Libraries all-in-one package"
@@ -156,7 +158,7 @@ DEPEND="
 S=${WORKDIR}/${MY_P}
 
 src_prepare() {
-       epatch "${FILESDIR}"/${P}-lauch_via_logind_or_root_privilege.patch
+       epatch "${WORKDIR}"/${P}-lauch_via_logind_or_root_privilege.patch
        eautoreconf
        enlightenment_src_prepare
 }
diff --git a/dev-libs/efl/files/efl-1.12.2-lauch_via_logind_or_root_privilege.patch b/dev-libs/efl/files/efl-1.12.2-lauch_via_logind_or_root_privilege.patch
deleted file mode 100644 (file)
index b2fde06..0000000
+++ /dev/null
@@ -1,960 +0,0 @@
-From b10ab1a86f35ab793ba6efb49224d9ecdd1b7dbd Mon Sep 17 00:00:00 2001
-From: Seunghun Lee <shiin.lee@samsung.com>
-Date: Tue, 9 Dec 2014 09:36:42 -0500
-Subject: ecore-drm: added drm launcher that is allow to determine whether to
- launch with logind or root privilege.
-
-Summary:
-- allow to launch drm backend without systemd-logind with root privilege.
-- allow to open drm device node via logind, not directly open it, in case exist systemd-logind.
-- fixes issue that couldn't switch session, because ecore-drm couldn't drop master to drm device with no permission. (allow to switch session appropriate.)
-
-Reviewers: gwanglim, devilhorns
-
-Subscribers: torori, cedric
-
-Differential Revision: https://phab.enlightenment.org/D1704
-
-diff --git a/configure.ac b/configure.ac
-index e09213d..5911192 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -673,13 +673,18 @@ fi
- AM_CONDITIONAL([HAVE_SYSTEMD_USER_SESSION], [test "x${have_systemd_user_session}" = "xyes"])
- AC_SUBST([USER_SESSION_DIR])
- 
--
- if test "x${have_systemd_pkg}" = "xauto" -o "x${have_systemd_pkg}" = "xyes"; then
-    PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon >= 192 libsystemd-journal >= 192],
-    [have_systemd_pkg="yes"],
-    [have_systemd_pkg="no"])
- fi
- 
-+PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login >= 198],
-+                  [have_systemd_login=yes], [have_systemd_login=no])
-+AS_IF([test "x$have_systemd_login" = "xyes"],
-+      [AC_DEFINE([HAVE_SYSTEMD_LOGIN], [1], [Have systemd-login])])
-+AM_CONDITIONAL(HAVE_SYSTEMD_LOGIN, test "x$have_systemd_login" = "xyes")
-+
- # check for systemd library if requested
- if test "x${want_systemd}" = "xyes" -a "x${have_systemd_pkg}" = "xno"; then
-    AC_MSG_ERROR([Systemd dependencie requested but not found])
-@@ -3072,7 +3077,7 @@ EFL_INTERNAL_DEPEND_PKG([ECORE_DRM], [eeze])
- EFL_INTERNAL_DEPEND_PKG([ECORE_DRM], [eo])
- EFL_INTERNAL_DEPEND_PKG([ECORE_DRM], [eina])
- 
--EFL_DEPEND_PKG([ECORE_DRM], [DRM], [libdrm >= 2.4 xkbcommon >= 0.3.0 libsystemd-login >= 192 gbm])
-+EFL_DEPEND_PKG([ECORE_DRM], [DRM], [libdrm >= 2.4 xkbcommon >= 0.3.0 gbm])
- 
- EFL_EVAL_PKGS([ECORE_DRM])
- 
-diff --git a/src/Makefile_Ecore_Drm.am b/src/Makefile_Ecore_Drm.am
-index 8867f37..b558277 100644
---- a/src/Makefile_Ecore_Drm.am
-+++ b/src/Makefile_Ecore_Drm.am
-@@ -16,10 +16,17 @@ lib/ecore_drm/ecore_drm_inputs.c \
- lib/ecore_drm/ecore_drm_output.c \
- lib/ecore_drm/ecore_drm_tty.c \
- lib/ecore_drm/ecore_drm_device.c \
--lib/ecore_drm/ecore_drm_dbus.c \
-+lib/ecore_drm/ecore_drm_launcher.c \
- lib/ecore_drm/ecore_drm.c \
-+lib/ecore_drm/ecore_drm_logind.h \
- lib/ecore_drm/ecore_drm_private.h
- 
-+if HAVE_SYSTEMD_LOGIN
-+lib_ecore_drm_libecore_drm_la_SOURCES += \
-+lib/ecore_drm/ecore_drm_logind.c \
-+lib/ecore_drm/ecore_drm_dbus.c
-+endif
-+
- lib_ecore_drm_libecore_drm_la_CPPFLAGS = \
-   -I$(top_builddir)/src/lib/efl \
-   @ECORE_DRM_CFLAGS@ \
-diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h
-index 80efaf5..3238a20 100644
---- a/src/lib/ecore_drm/Ecore_Drm.h
-+++ b/src/lib/ecore_drm/Ecore_Drm.h
-@@ -194,4 +194,6 @@ EAPI Eina_Bool ecore_drm_sprites_crtc_supported(Ecore_Drm_Output *output, unsign
- EAPI Ecore_Drm_Fb *ecore_drm_fb_create(Ecore_Drm_Device *dev, int width, int height);
- EAPI void ecore_drm_fb_destroy(Ecore_Drm_Fb *fb);
- 
-+EAPI Eina_Bool ecore_drm_launcher_connect(Ecore_Drm_Device *dev);
-+EAPI void ecore_drm_launcher_disconnect(Ecore_Drm_Device *dev);
- #endif
-diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c
-index c341c19..6413270 100644
---- a/src/lib/ecore_drm/ecore_drm.c
-+++ b/src/lib/ecore_drm/ecore_drm.c
-@@ -6,7 +6,6 @@
- 
- /* local variables */
- static int _ecore_drm_init_count = 0;
--static char *sid;
- 
- /* external variables */
- int _ecore_drm_log_dom = -1;
-@@ -65,12 +64,6 @@ ecore_drm_init(void)
-    if (!eina_log_domain_level_check(_ecore_drm_log_dom, EINA_LOG_LEVEL_DBG))
-      eina_log_domain_level_set("ecore_drm", EINA_LOG_LEVEL_DBG);
- 
--   /* get sd-login properties we need */
--   if (sd_pid_get_session(getpid(), &sid) < 0) goto sd_err;
--
--   /* try to init dbus */
--   if (!_ecore_drm_dbus_init(sid)) goto dbus_err;
--
-    /* try to init eeze */
-    if (!eeze_init()) goto eeze_err;
- 
-@@ -78,10 +71,6 @@ ecore_drm_init(void)
-    return _ecore_drm_init_count;
- 
- eeze_err:
--   _ecore_drm_dbus_shutdown();
--dbus_err:
--   free(sid);
--sd_err:
-    eina_log_domain_unregister(_ecore_drm_log_dom);
-    _ecore_drm_log_dom = -1;
- log_err:
-@@ -115,9 +104,6 @@ ecore_drm_shutdown(void)
-    /* close eeze */
-    eeze_shutdown();
- 
--   /* cleanup dbus */
--   _ecore_drm_dbus_shutdown();
--
-    /* shutdown ecore_event */
-    ecore_event_shutdown();
- 
-@@ -131,8 +117,6 @@ ecore_drm_shutdown(void)
-    /* shutdown eina */
-    eina_shutdown();
- 
--   free(sid);
--
-    /* return init count */
-    return _ecore_drm_init_count;
- }
-diff --git a/src/lib/ecore_drm/ecore_drm_dbus.c b/src/lib/ecore_drm/ecore_drm_dbus.c
-index 222b5e9..bfac33f 100644
---- a/src/lib/ecore_drm/ecore_drm_dbus.c
-+++ b/src/lib/ecore_drm/ecore_drm_dbus.c
-@@ -175,7 +175,7 @@ _ecore_drm_dbus_session_release(const char *session)
-    return EINA_TRUE;
- }
- 
--static void 
-+void 
- _ecore_drm_dbus_device_release(uint32_t major, uint32_t minor)
- {
-    Eldbus_Proxy *proxy;
-@@ -199,11 +199,35 @@ _ecore_drm_dbus_device_release(uint32_t major, uint32_t minor)
-    eldbus_proxy_send(proxy, msg, NULL, NULL, -1);
- }
- 
--static int 
--_ecore_drm_dbus_device_take(uint32_t major, uint32_t minor, Eldbus_Message_Cb callback, const void *data)
-+static void
-+_cb_device_taken(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending)
-+{
-+   const char *errname, *errmsg;
-+   Ecore_Drm_Open_Cb callback = NULL;
-+   Eina_Bool b = EINA_FALSE;
-+   int fd = -1;
-+
-+   if (eldbus_message_error_get(msg, &errname, &errmsg))
-+     {
-+        ERR("Eldbus Message Error: %s %s", errname, errmsg);
-+        goto eldbus_err;
-+     }
-+
-+   /* DBUS_TYPE_UNIX_FD == 'h' */
-+   if (!eldbus_message_arguments_get(msg, "hb", &fd, &b))
-+     ERR("\tCould not get UNIX_FD from eldbus message: %d %d", fd, b);
-+
-+eldbus_err:
-+   callback = (Ecore_Drm_Open_Cb)eldbus_pending_data_del(pending, "callback");
-+   if (callback) callback(data, fd, b);
-+}
-+
-+int 
-+_ecore_drm_dbus_device_take(uint32_t major, uint32_t minor, Ecore_Drm_Open_Cb callback, void *data)
- {
-    Eldbus_Proxy *proxy;
-    Eldbus_Message *msg;
-+   Eldbus_Pending *pending;
- 
-    /* try to get the Session proxy */
-    if (!(proxy = eldbus_proxy_get(dobj, "org.freedesktop.login1.Session")))
-@@ -219,11 +243,45 @@ _ecore_drm_dbus_device_take(uint32_t major, uint32_t minor, Eldbus_Message_Cb ca
-      }
- 
-    eldbus_message_arguments_append(msg, "uu", major, minor);
--   eldbus_proxy_send(proxy, msg, callback, data, -1);
-+   pending = eldbus_proxy_send(proxy, msg, _cb_device_taken, data, -1);
-+   if (callback) eldbus_pending_data_set(pending, "callback", callback);
- 
-    return 1;
- }
- 
-+int
-+_ecore_drm_dbus_device_take_no_pending(uint32_t major, uint32_t minor, Eina_Bool *paused_out, double timeout)
-+{
-+   Eldbus_Proxy *proxy;
-+   Eldbus_Message *msg, *reply;
-+   Eina_Bool b;
-+   int fd;
-+
-+   /* try to get the Session proxy */
-+   if (!(proxy = eldbus_proxy_get(dobj, "org.freedesktop.login1.Session")))
-+     {
-+        ERR("Could not get eldbus session proxy");
-+        return -1;
-+     }
-+
-+   if (!(msg = eldbus_proxy_method_call_new(proxy, "TakeDevice")))
-+     {
-+        ERR("Could not create method call for proxy");
-+        return -1;
-+     }
-+
-+   if (!eldbus_message_arguments_append(msg, "uu", major, minor))
-+     return -1;
-+
-+   reply = eldbus_proxy_send_and_block(proxy, msg, timeout);
-+
-+   if (!eldbus_message_arguments_get(reply, "hb", &fd, &b))
-+     return -1;
-+
-+   if (paused_out) *paused_out = b;
-+   return fd;
-+}
-+
- int 
- _ecore_drm_dbus_init(const char *session)
- {
-@@ -343,25 +401,3 @@ _ecore_drm_dbus_shutdown(void)
- 
-    return _dbus_init_count;
- }
--
--void 
--_ecore_drm_dbus_device_open(const char *device, Eldbus_Message_Cb callback, const void *data)
--{
--   struct stat st;
--
--   if (stat(device, &st) < 0) return;
--   if (!S_ISCHR(st.st_mode)) return;
--
--   _ecore_drm_dbus_device_take(major(st.st_rdev), minor(st.st_rdev), callback, data);
--}
--
--void 
--_ecore_drm_dbus_device_close(const char *device)
--{
--   struct stat st;
--
--   if (stat(device, &st) < 0) return;
--   if (!S_ISCHR(st.st_mode)) return;
--
--   _ecore_drm_dbus_device_release(major(st.st_rdev), minor(st.st_rdev));
--}
-diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c
-index e8ca052..957c439e 100644
---- a/src/lib/ecore_drm/ecore_drm_device.c
-+++ b/src/lib/ecore_drm/ecore_drm_device.c
-@@ -254,7 +254,8 @@ ecore_drm_device_open(Ecore_Drm_Device *dev)
-    /* check for valid device */
-    if ((!dev) || (!dev->drm.name)) return EINA_FALSE;
- 
--   dev->drm.fd = open(dev->drm.name, O_RDWR | O_CLOEXEC);
-+   /* DRM device node is needed immediately to keep going. */
-+   dev->drm.fd = _ecore_drm_launcher_device_open_no_pending(dev->drm.name, O_RDWR);
-    if (dev->drm.fd < 0) return EINA_FALSE;
- 
-    DBG("Opened Device %s : %d", dev->drm.name, dev->drm.fd);
-@@ -319,7 +320,7 @@ ecore_drm_device_close(Ecore_Drm_Device *dev)
-    if (dev->drm.hdlr) ecore_main_fd_handler_del(dev->drm.hdlr);
-    dev->drm.hdlr = NULL;
- 
--   close(dev->drm.fd);
-+   _ecore_drm_launcher_device_close(dev->drm.name, dev->drm.fd);
- 
-    /* reset device fd */
-    dev->drm.fd = -1;
-diff --git a/src/lib/ecore_drm/ecore_drm_inputs.c b/src/lib/ecore_drm/ecore_drm_inputs.c
-index f03af36..a1ca008 100644
---- a/src/lib/ecore_drm/ecore_drm_inputs.c
-+++ b/src/lib/ecore_drm/ecore_drm_inputs.c
-@@ -57,29 +57,18 @@ flag_err:
- }
- 
- static void 
--_cb_device_opened(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
-+_cb_device_opened(void *data, int fd, Eina_Bool paused EINA_UNUSED)
- {
-    Ecore_Drm_Device_Open_Data *d;
-    Ecore_Drm_Evdev *edev;
-    Eina_Bool b = EINA_FALSE;
--   const char *errname, *errmsg;
--   int fd = -1;
- 
-    if (!(d = data)) return;
- 
--   if (eldbus_message_error_get(msg, &errname, &errmsg))
--     {
--        ERR("Eldbus Message Error: %s %s", errname, errmsg);
--        ERR("\tFailed to open device: %s", d->node);
--        return;
--     }
--
--   /* DBG("Input Device Opened: %s", d->node); */
--
--   /* DBUS_TYPE_UNIX_FD == 'h' */
--   if (!eldbus_message_arguments_get(msg, "hb", &fd, &b))
-+   if (fd < 0)
-      {
-         ERR("\tCould not get UNIX_FD from eldbus message: %d %d", fd, b);
-+        ERR("\tFailed to open device: %s", d->node);
-         goto cleanup;
-      }
- 
-@@ -100,7 +89,7 @@ _cb_device_opened(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending
-    goto cleanup;
- 
- release:
--   _ecore_drm_dbus_device_close(d->node);
-+   _ecore_drm_launcher_device_close(d->node, fd);
- cleanup:
-    eina_stringshare_del(d->node);
-    free(d);
-@@ -162,7 +151,8 @@ _device_add(Ecore_Drm_Input *input, const char *device)
- 
-    DBG("\tDevice Path: %s", data->node);
- 
--   _ecore_drm_dbus_device_open(data->node, _cb_device_opened, data);
-+   if (!_ecore_drm_launcher_device_open(data->node, _cb_device_opened, data, O_RDWR | O_NONBLOCK))
-+     goto dev_err;
- 
-    return EINA_TRUE;
- 
-@@ -311,7 +301,7 @@ ecore_drm_inputs_destroy(Ecore_Drm_Device *dev)
- 
-         EINA_LIST_FREE(seat->devices, edev)
-           {
--             _ecore_drm_dbus_device_close(edev->path);
-+             _ecore_drm_launcher_device_close(edev->path, edev->fd);
-              _ecore_drm_evdev_device_destroy(edev);
-           }
-      }
-diff --git a/src/lib/ecore_drm/ecore_drm_launcher.c b/src/lib/ecore_drm/ecore_drm_launcher.c
-new file mode 100644
-index 0000000..e2d64d5
---- /dev/null
-+++ b/src/lib/ecore_drm/ecore_drm_launcher.c
-@@ -0,0 +1,139 @@
-+#include "ecore_drm_private.h"
-+#include "ecore_drm_logind.h"
-+
-+static Eina_Bool logind = EINA_FALSE;
-+
-+EAPI Eina_Bool
-+ecore_drm_launcher_connect(Ecore_Drm_Device *dev)
-+{
-+   if (!(logind = _ecore_drm_logind_connect(dev)))
-+     {
-+        DBG("Launcher: Not Support loignd\n");
-+        if (geteuid() == 0)
-+          {
-+             DBG("Launcher: Try to keep going with root privilege\n");
-+             if (!ecore_drm_tty_open(dev, NULL))
-+               {
-+                  ERR("Launcher: failed to open tty with root privilege\n");
-+                  return EINA_FALSE;
-+               }
-+          }
-+        else
-+          {
-+             ERR("Launcher: Need Root Privilege or logind\n");
-+             return EINA_FALSE;
-+          }
-+     }
-+   DBG("Launcher: Success Connect\n");
-+
-+   return EINA_TRUE;
-+}
-+
-+EAPI void
-+ecore_drm_launcher_disconnect(Ecore_Drm_Device *dev)
-+{
-+   if (logind)
-+     {
-+        logind = EINA_FALSE;
-+        _ecore_drm_logind_disconnect(dev);
-+     }
-+   else
-+     {
-+        ecore_drm_tty_close(dev);
-+     }
-+}
-+
-+static int
-+_device_flags_set(int fd, int flags)
-+{
-+   int fl;
-+
-+   fl = fcntl(fd, F_GETFL);
-+   if (fl < 0)
-+     return -1;
-+
-+   if (flags & O_NONBLOCK)
-+     fl |= O_NONBLOCK;
-+
-+   if (fcntl(fd, F_SETFL, fl) < 0)
-+     return -1;
-+
-+   fl = fcntl(fd, F_GETFD);
-+   if (fl < 0)
-+     return -1;
-+
-+   if (!(flags & O_CLOEXEC))
-+     fl &= ~FD_CLOEXEC;
-+
-+   if (fcntl(fd, F_SETFD, fl) < 0)
-+     return -1;
-+
-+   return fd;
-+}
-+
-+Eina_Bool
-+_ecore_drm_launcher_device_open(const char *device, Ecore_Drm_Open_Cb callback, void *data, int flags)
-+{
-+   int fd = -1;
-+   struct stat s;
-+
-+   if (logind)
-+     {
-+        if (!_ecore_drm_logind_device_open(device, callback, data))
-+          return EINA_FALSE;
-+     }
-+   else
-+     {
-+        fd = open(device, flags | O_CLOEXEC);
-+        if (fd < 0) return EINA_FALSE;
-+        if (fstat(fd, &s) == -1)
-+          {
-+             close(fd);
-+             fd = -1;
-+             return EINA_FALSE;
-+          }
-+
-+        callback(data, fd, EINA_FALSE);
-+     }
-+
-+   return EINA_TRUE;
-+}
-+
-+int
-+_ecore_drm_launcher_device_open_no_pending(const char *device, int flags)
-+{
-+   int fd = -1;
-+   struct stat s;
-+
-+   if (logind)
-+     {
-+        fd = _ecore_drm_logind_device_open_no_pending(device);
-+        if ((fd = _device_flags_set(fd, flags)) == -1)
-+          {
-+             _ecore_drm_logind_device_close(device);
-+             return -1;
-+          }
-+     }
-+   else
-+     {
-+        fd = open(device, flags, flags | O_CLOEXEC);
-+        if (fd < 0) return fd;
-+        if (fstat(fd, &s) == -1)
-+          {
-+             close(fd);
-+             return -1;
-+          }
-+     }
-+
-+   DBG("Device opened %s", device);
-+   return fd;
-+}
-+
-+void
-+_ecore_drm_launcher_device_close(const char *device, int fd)
-+{
-+   if (logind)
-+     return _ecore_drm_logind_device_close(device);
-+
-+   close(fd);
-+}
-diff --git a/src/lib/ecore_drm/ecore_drm_logind.c b/src/lib/ecore_drm/ecore_drm_logind.c
-new file mode 100644
-index 0000000..a3c6c1e
---- /dev/null
-+++ b/src/lib/ecore_drm/ecore_drm_logind.c
-@@ -0,0 +1,310 @@
-+#include <sys/stat.h>
-+#include <sys/ioctl.h>
-+#include <linux/vt.h>
-+#include <linux/kd.h>
-+#include <linux/major.h>
-+#include "ecore_drm_private.h"
-+#include "ecore_drm_logind.h"
-+
-+#ifndef KDSKBMUTE
-+# define KDSKBMUTE 0x4B51
-+#endif
-+
-+static char *sid;
-+
-+static Eina_Bool
-+_ecore_drm_logind_cb_vt_switch(void *data, int type EINA_UNUSED, void *event)
-+{
-+   Ecore_Drm_Device *dev;
-+   Ecore_Event_Key *ev;
-+   int keycode;
-+   int vt;
-+
-+   dev = data;
-+   ev = event;
-+   keycode = ev->keycode - 8;
-+
-+   if ((ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) &&
-+       (ev->modifiers & ECORE_EVENT_MODIFIER_ALT) &&
-+       (keycode >= KEY_F1) && (keycode <= KEY_F8))
-+     {
-+        vt = (keycode - KEY_F1 + 1);
-+
-+        if (ioctl(dev->tty.fd, VT_ACTIVATE, vt) < 0)
-+          ERR("Failed to activate vt: %m");
-+     }
-+
-+   return ECORE_CALLBACK_PASS_ON;
-+}
-+
-+static Eina_Bool
-+_ecore_drm_logind_cb_vt_signal(void *data, int type EINA_UNUSED, void *event)
-+{
-+   Ecore_Drm_Device *dev;
-+   Ecore_Event_Signal_User *ev;
-+   siginfo_t sigdata;
-+
-+   dev = data;
-+   ev = event;
-+
-+   sigdata = ev->data;
-+   if (sigdata.si_code != SI_KERNEL) return ECORE_CALLBACK_RENEW;
-+
-+   if (ev->number == 1)
-+     {
-+        Ecore_Drm_Input *input;
-+        Ecore_Drm_Output *output;
-+        Ecore_Drm_Sprite *sprite;
-+        Eina_List *l;
-+
-+        /* disable inputs (suspends) */
-+        EINA_LIST_FOREACH(dev->inputs, l, input)
-+          ecore_drm_inputs_disable(input);
-+
-+        /* disable hardware cursor */
-+        EINA_LIST_FOREACH(dev->outputs, l, output)
-+          ecore_drm_output_cursor_size_set(output, 0, 0, 0);
-+
-+        /* disable sprites */
-+        EINA_LIST_FOREACH(dev->sprites, l, sprite)
-+          ecore_drm_sprites_fb_set(sprite, 0, 0);
-+
-+        if (!ecore_drm_tty_release(dev))
-+          ERR("Could not release VT: %m");
-+     }
-+   else if (ev->number == 2)
-+     {
-+        if (ecore_drm_tty_acquire(dev))
-+          {
-+             Ecore_Drm_Output *output;
-+             Ecore_Drm_Input *input;
-+             Eina_List *l;
-+
-+             /* set output mode */
-+             EINA_LIST_FOREACH(dev->outputs, l, output)
-+                ecore_drm_output_enable(output);
-+
-+             /* enable inputs */
-+             EINA_LIST_FOREACH(dev->inputs, l, input)
-+                ecore_drm_inputs_enable(input);
-+          }
-+        else
-+          ERR("Could not acquire VT: %m");
-+     }
-+
-+   return ECORE_CALLBACK_PASS_ON;
-+}
-+
-+static Eina_Bool 
-+_ecore_drm_logind_tty_setup(Ecore_Drm_Device *dev)
-+{
-+   struct stat st;
-+   int kmode;
-+   struct vt_mode vtmode = { 0 };
-+
-+   if (fstat(dev->tty.fd, &st) == -1)
-+     {
-+        ERR("Failed to get stats for tty: %m");
-+        return EINA_FALSE;
-+     }
-+
-+   if (ioctl(dev->tty.fd, KDGETMODE, &kmode))
-+     {
-+        ERR("Could not get tty mode: %m");
-+        return EINA_FALSE;
-+     }
-+
-+   if (ioctl(dev->tty.fd, VT_ACTIVATE, minor(st.st_rdev)) < 0)
-+     {
-+        ERR("Failed to activate vt: %m");
-+        return EINA_FALSE;
-+     }
-+
-+   if (ioctl(dev->tty.fd, VT_WAITACTIVE, minor(st.st_rdev)) < 0)
-+     {
-+        ERR("Failed to wait active: %m");
-+        return EINA_FALSE;
-+     }
-+
-+   /* NB: Don't set this. This Turns OFF keyboard on the VT */
-+   /* if (ioctl(dev->tty.fd, KDSKBMUTE, 1) &&  */
-+   /*     ioctl(dev->tty.fd, KDSKBMODE, K_OFF)) */
-+   /*   { */
-+   /*      ERR("Could not set K_OFF keyboard mode: %m"); */
-+   /*      return EINA_FALSE; */
-+   /*   } */
-+
-+   if (kmode != KD_GRAPHICS)
-+     {
-+        if (ioctl(dev->tty.fd, KDSETMODE, KD_GRAPHICS))
-+          {
-+             ERR("Could not set graphics mode: %m");
-+             goto err_kmode;
-+          }
-+     }
-+
-+   vtmode.mode = VT_PROCESS;
-+   vtmode.waitv = 0;
-+   vtmode.relsig = SIGUSR1;
-+   vtmode.acqsig = SIGUSR2;
-+   if (ioctl(dev->tty.fd, VT_SETMODE, &vtmode) < 0)
-+     {
-+        ERR("Could not set Terminal Mode: %m");
-+        goto err_setmode;
-+     }
-+
-+   return EINA_TRUE;
-+err_setmode:
-+   ioctl(dev->tty.fd, KDSETMODE, KD_TEXT);
-+err_kmode:
-+   return EINA_FALSE;
-+}
-+
-+
-+static Eina_Bool
-+_ecore_drm_logind_vt_open(Ecore_Drm_Device *dev, const char *name)
-+{
-+   char tty[32] = "<stdin>";
-+
-+   /* check for valid device */
-+   if ((!dev) || (!dev->drm.name)) return EINA_FALSE;
-+
-+   /* assign default tty fd of -1 */
-+   dev->tty.fd = -1;
-+
-+   if (!name)
-+     {
-+        char *env;
-+
-+        if ((env = getenv("ECORE_DRM_TTY")))
-+          snprintf(tty, sizeof(tty), "%s", env);
-+        else
-+          dev->tty.fd = dup(STDIN_FILENO);
-+     }
-+   else
-+     snprintf(tty, sizeof(tty), "%s", name);
-+
-+   if (dev->tty.fd < 0)
-+     {
-+        DBG("Trying to Open Tty: %s", tty);
-+
-+        dev->tty.fd = open(tty, O_RDWR | O_NOCTTY);
-+        if (dev->tty.fd < 0)
-+          {
-+             DBG("Failed to Open Tty: %m");
-+             return EINA_FALSE;
-+          }
-+     }
-+
-+   /* save tty name */
-+   dev->tty.name = eina_stringshare_add(tty);
-+
-+   /* FIXME */
-+   if (!_ecore_drm_logind_tty_setup(dev))
-+     {
-+        close(dev->tty.fd);
-+        dev->tty.fd = -1;
-+        return EINA_FALSE;
-+     }
-+
-+   /* setup handler for signals */
-+   dev->tty.event_hdlr =
-+      ecore_event_handler_add(ECORE_EVENT_SIGNAL_USER,
-+                              _ecore_drm_logind_cb_vt_signal, dev);
-+
-+   /* setup handler for key event of vt switch */
-+   dev->tty.switch_hdlr =
-+      ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
-+                              _ecore_drm_logind_cb_vt_switch, dev);
-+
-+   /* set current tty into env */
-+   setenv("ECORE_DRM_TTY", tty, 1);
-+
-+   return EINA_TRUE;
-+}
-+
-+static void
-+_ecore_drm_logind_vt_close(Ecore_Drm_Device *dev)
-+{
-+   struct vt_mode mode = { 0 };
-+
-+   ioctl(dev->tty.fd, KDSETMODE, KD_TEXT);
-+   mode.mode = VT_AUTO;
-+   ioctl(dev->tty.fd, VT_SETMODE, &mode);
-+
-+   if (dev->tty.event_hdlr) ecore_event_handler_del(dev->tty.event_hdlr);
-+   dev->tty.event_hdlr = NULL;
-+
-+   if (dev->tty.switch_hdlr) ecore_event_handler_del(dev->tty.switch_hdlr);
-+   dev->tty.switch_hdlr = NULL;
-+
-+   if (dev->tty.name) eina_stringshare_del(dev->tty.name);
-+   dev->tty.name = NULL;
-+
-+   unsetenv("ECORE_DRM_TTY");
-+}
-+
-+Eina_Bool
-+_ecore_drm_logind_connect(Ecore_Drm_Device *dev)
-+{
-+   /* get sd-login properties we need */
-+   if (sd_pid_get_session(getpid(), &sid) < 0) return EINA_FALSE;
-+
-+   /* try to init dbus */
-+   if (!_ecore_drm_dbus_init(sid))
-+     {
-+        free(sid);
-+        return EINA_FALSE;
-+     }
-+
-+   if (!_ecore_drm_logind_vt_open(dev, NULL))
-+     {
-+        free(sid);
-+        return EINA_FALSE;
-+     }
-+
-+   return EINA_TRUE;
-+}
-+
-+void
-+_ecore_drm_logind_disconnect(Ecore_Drm_Device *dev)
-+{
-+   _ecore_drm_logind_vt_close(dev);
-+   _ecore_drm_dbus_shutdown();
-+}
-+
-+Eina_Bool
-+_ecore_drm_logind_device_open(const char *device, Ecore_Drm_Open_Cb callback, void *data)
-+{
-+   struct stat st;
-+
-+   if (stat(device, &st) < 0) return EINA_FALSE;
-+   if (!S_ISCHR(st.st_mode)) return EINA_FALSE;
-+
-+   if (_ecore_drm_dbus_device_take(major(st.st_rdev), minor(st.st_rdev), callback, data) < 0)
-+     return EINA_FALSE;
-+
-+   return EINA_TRUE;
-+}
-+
-+int
-+_ecore_drm_logind_device_open_no_pending(const char *device)
-+{
-+   struct stat st;
-+
-+   if (stat(device, &st) < 0) return EINA_FALSE;
-+   if (!S_ISCHR(st.st_mode)) return EINA_FALSE;
-+
-+   return _ecore_drm_dbus_device_take_no_pending(major(st.st_rdev), minor(st.st_rdev), NULL, -1);
-+}
-+
-+void
-+_ecore_drm_logind_device_close(const char *device)
-+{
-+   struct stat st;
-+
-+   if (stat(device, &st) < 0) return;
-+   if (!S_ISCHR(st.st_mode)) return;
-+
-+   _ecore_drm_dbus_device_release(major(st.st_rdev), minor(st.st_rdev));
-+}
-diff --git a/src/lib/ecore_drm/ecore_drm_logind.h b/src/lib/ecore_drm/ecore_drm_logind.h
-new file mode 100644
-index 0000000..4315722
---- /dev/null
-+++ b/src/lib/ecore_drm/ecore_drm_logind.h
-@@ -0,0 +1,55 @@
-+#ifndef _ECORE_DRM_LOGIN_H_
-+# define _ECORE_DRM_LOGIN_H_
-+
-+# ifdef HAVE_CONFIG_H
-+#  include "config.h"
-+# endif
-+
-+#ifdef HAVE_SYSTEMD_LOGIN
-+# include <systemd/sd-login.h>
-+
-+Eina_Bool _ecore_drm_logind_connect(Ecore_Drm_Device *dev);
-+void _ecore_drm_logind_disconnect(Ecore_Drm_Device *dev);
-+Eina_Bool _ecore_drm_logind_device_open(const char *device, Ecore_Drm_Open_Cb callback, void *data);
-+int _ecore_drm_logind_device_open_no_pending(const char *device);
-+void _ecore_drm_logind_device_close(const char *device);
-+
-+int _ecore_drm_dbus_init(const char *session);
-+int _ecore_drm_dbus_shutdown(void);
-+int _ecore_drm_dbus_device_take(uint32_t major, uint32_t minor, Ecore_Drm_Open_Cb callback, void *data);
-+int _ecore_drm_dbus_device_take_no_pending(uint32_t major, uint32_t minor, Eina_Bool *paused_out, double timeout);
-+void _ecore_drm_dbus_device_release(uint32_t major, uint32_t minor);
-+
-+#else
-+static inline Eina_Bool
-+_ecore_drm_logind_connect(Ecore_Drm_Device *dev EINA_UNUSED)
-+{
-+      return EINA_FALSE;
-+}
-+
-+static inline void
-+_ecore_drm_logind_disconnect(Ecore_Drm_Device *dev EINA_UNUSED)
-+{
-+      return;
-+}
-+
-+static inline Eina_Bool
-+_ecore_drm_logind_device_open(const char *device EINA_UNUSED, Ecore_Drm_Open_Cb callback EINA_UNUSED, void *data EINA_UNUSED)
-+{
-+      return EINA_FALSE;
-+}
-+
-+static inline int
-+_ecore_drm_logind_device_open_no_pending(const char *device EINA_UNUSED)
-+{
-+      return -1;
-+}
-+
-+static inline void
-+_ecore_drm_logind_device_close(const char *device EINA_UNUSED)
-+{
-+      return;
-+}
-+#endif
-+
-+#endif
-diff --git a/src/lib/ecore_drm/ecore_drm_private.h b/src/lib/ecore_drm/ecore_drm_private.h
-index fe769a4..7a3c0a0 100644
---- a/src/lib/ecore_drm/ecore_drm_private.h
-+++ b/src/lib/ecore_drm/ecore_drm_private.h
-@@ -21,7 +21,6 @@
- 
- # include <linux/input.h>
- //# include <libinput.h>
--# include <systemd/sd-login.h>
- # include <xkbcommon/xkbcommon.h>
- 
- # include <xf86drm.h>
-@@ -228,10 +227,11 @@ struct _Ecore_Drm_Sprite
-    unsigned int formats[];
- };
- 
--int _ecore_drm_dbus_init(const char *session);
--int _ecore_drm_dbus_shutdown(void);
--void _ecore_drm_dbus_device_open(const char *device, Eldbus_Message_Cb callback, const void *data);
--void _ecore_drm_dbus_device_close(const char *device);
-+typedef void (*Ecore_Drm_Open_Cb)(void *data, int fd, Eina_Bool b);
-+
-+Eina_Bool _ecore_drm_launcher_device_open(const char *device, Ecore_Drm_Open_Cb callback, void *data, int flags);
-+int _ecore_drm_launcher_device_open_no_pending(const char *device, int flags);
-+void _ecore_drm_launcher_device_close(const char *device, int fd);
- 
- Ecore_Drm_Evdev *_ecore_drm_evdev_device_create(Ecore_Drm_Seat *seat, const char *path, int fd);
- void _ecore_drm_evdev_device_destroy(Ecore_Drm_Evdev *evdev);
-diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
-index ce6ce84..776939e 100644
---- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
-+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
-@@ -474,6 +474,12 @@ _ecore_evas_drm_init(const char *device)
-           goto dev_err;
-      }
- 
-+   if (!ecore_drm_launcher_connect(dev))
-+     {
-+        ERR("Could not connect DRM launcher");
-+        goto launcher_err;
-+     }
-+
-    /* try to open the graphics card */
-    if (!ecore_drm_device_open(dev))
-      {
-@@ -481,13 +487,6 @@ _ecore_evas_drm_init(const char *device)
-         goto dev_open_err;
-      }
- 
--   /* try to open the tty */
--   if (!ecore_drm_tty_open(dev, NULL))
--     {
--        ERR("Could not open tty: %m");
--        goto tty_open_err;
--     }
--
-    /* try to create sprites */
-    if (!ecore_drm_sprites_create(dev))
-      {
-@@ -516,11 +515,11 @@ _ecore_evas_drm_init(const char *device)
- output_err:
-    ecore_drm_sprites_destroy(dev);
- sprite_err:
--   ecore_drm_tty_close(dev);
--tty_open_err:
-    ecore_drm_device_close(dev);
- dev_open_err:
-    ecore_drm_device_free(dev);
-+   ecore_drm_launcher_disconnect(dev);
-+launcher_err:
- dev_err:
-    ecore_drm_shutdown();
-    return --_ecore_evas_init_count;
-@@ -534,9 +533,9 @@ _ecore_evas_drm_shutdown(void)
-    ecore_drm_sprites_destroy(dev);
-    /* NB: No need to free outputs here. Is done in device free */
-    ecore_drm_inputs_destroy(dev);
--   ecore_drm_tty_close(dev);
-    ecore_drm_device_close(dev);
-    ecore_drm_device_free(dev);
-+   ecore_drm_launcher_disconnect(dev);
-    ecore_drm_shutdown();
- 
-    ecore_event_evas_shutdown();
--- 
-cgit v0.10.1
-