All of lore.kernel.org
 help / color / mirror / Atom feed
* [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011
@ 2011-06-13  6:54 Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 01/23] ghostscript: update SRC_URI Saul Wold
                   ` (22 more replies)
  0 siblings, 23 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core


Richard et al,

This is a RFC, please review this list, most should be straight
foward udpdate for uclibc and world / docs build issues.

This does note include Khem's latest GCC and eglibc updates, whichs
need more testing.


Sau!


The following changes since commit 6a3e57fcd3a172c9b2707510d65741734c98a143:

  Revert "gcc: rebase the patch to avoid patch rejection" (2011-06-10 12:56:29 +0100)

are available in the git repository at:
  git://git.openembedded.org/openembedded-core-contrib sgw/stage
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage

Anders Darander (1):
  perl-native: fix download url

Bruce Ashfield (1):
  linux-yocto: rename recipes to explicitly indicate version

Dexuan Cui (1):
  git: restore the dependency on perl-native

Kang Kai (1):
  ghostscript: update SRC_URI

Khem Raj (4):
  util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext
  uclibc.inc: libsegfault is only RPROVIDED by uclibc
  gettext_0.18.1.1.bb: Fix build on uclibc
  uclibc: Cleanup the machine dependent config files

Koen Kooi (2):
  qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them
  connman-gnome 0.5: build from git

Phil Blundell (5):
  busybox: backport distro-features handling from oe master
  uclibc: fix compile error on i586
  import recipe_sanity.bbclass from oe master
  uclibc: remove redundant python code
  uclibc: remove PACKAGE_ARCH, fix compilation on i586

Saul Wold (8):
  json-glib: Fix up SRC_URI Checksums
  gconf-dbus: Update to 2.29.1 git
  clutter-box2d_git: Switch SRC_URI to git.gnome.org
  update-alternatives-dpkg: Fix SRC_URI Checksum
  jsib-glib: Fix SRC_URI Checksum
  rxvt-unicode: Fix SRC_URI & LIC_FILES Checksum
  alsa-tools: fix Checksums
  libx11-diet: Fixed checksum and rebase patch

 meta/classes/recipe_sanity.bbclass                 |  179 +
 meta/conf/machine/include/qemu.inc                 |    2 +-
 .../connman-gnome/applet_menu_popup_fix.patch      |   19 -
 .../connman/connman-gnome/connman-gnome.patch      | 4162 --------------------
 .../remove-connman-property-desktop-file.patch     |   42 -
 .../connman-gnome/service_name_update.patch        |   36 -
 .../connman/connman-gnome_0.5.bb                   |   13 +-
 meta/recipes-core/busybox/busybox.inc              |   80 +-
 meta/recipes-core/busybox/busybox_1.18.4.bb        |    2 +-
 .../gnulib-uclibc-sched_param-def.patch            |   21 +
 meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    7 +-
 .../uclibc/uclibc-git/armv5te/uClibc.machine       |    4 +-
 .../{nslu2be => armv5teb}/uClibc.machine           |    0
 .../uclibc/uclibc-git/efika/uClibc.machine         |   45 -
 .../uclibc/uclibc-git/epoll-asm-fix.patch          |   25 +
 .../uclibc-git/{qemumips => mips}/uClibc.machine   |    0
 .../uclibc/uclibc-git/qemuarm/uClibc.machine       |   77 -
 .../uclibc/uclibc-git/qemux86/uClibc.machine       |   59 -
 meta/recipes-core/uclibc/uclibc-git/uClibc.distro  |   14 +-
 meta/recipes-core/uclibc/uclibc.inc                |   19 +-
 meta/recipes-core/uclibc/uclibc_git.bb             |    6 +-
 meta/recipes-devtools/git/git.inc                  |    6 +-
 meta/recipes-devtools/git/git_1.7.5.1.bb           |    2 +-
 meta/recipes-devtools/perl/perl-native_5.12.3.bb   |    2 +-
 .../update-alternatives-dpkg_1.16.0.3.bb           |    4 +-
 .../ghostscript/ghostscript_9.02.bb                |    7 +-
 .../gnome/{gconf-dbus_svn.bb => gconf-dbus_git.bb} |   12 +-
 meta/recipes-gnome/json-glib/json-glib_0.12.4.bb   |    4 +-
 meta/recipes-graphics/clutter/clutter-box2d_git.bb |    2 +-
 meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb  |   14 +-
 .../xorg-lib/libx11/X18NCMSstubs.diff              |   62 +-
 .../xorg-util/util-macros_1.13.0.bb                |    4 +-
 ...x-yocto-stable_git.bb => linux-yocto_2.6.34.bb} |    0
 .../{linux-yocto_git.bb => linux-yocto_2.6.37.bb}  |    0
 .../recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb |    7 +-
 .../recipes-sato/rxvt-unicode/rxvt-unicode_9.11.bb |    8 +-
 36 files changed, 409 insertions(+), 4537 deletions(-)
 create mode 100644 meta/classes/recipe_sanity.bbclass
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/applet_menu_popup_fix.patch
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/connman-gnome.patch
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/remove-connman-property-desktop-file.patch
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/service_name_update.patch
 create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch
 rename meta/recipes-core/uclibc/uclibc-git/{nslu2be => armv5teb}/uClibc.machine (100%)
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch
 rename meta/recipes-core/uclibc/uclibc-git/{qemumips => mips}/uClibc.machine (100%)
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/uClibc.config
 rename meta/recipes-gnome/gnome/{gconf-dbus_svn.bb => gconf-dbus_git.bb} (76%)
 rename meta/recipes-kernel/linux/{linux-yocto-stable_git.bb => linux-yocto_2.6.34.bb} (100%)
 rename meta/recipes-kernel/linux/{linux-yocto_git.bb => linux-yocto_2.6.37.bb} (100%)

-- 
1.7.3.4




^ permalink raw reply	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 01/23] ghostscript: update SRC_URI
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 02/23] busybox: backport distro-features handling from oe master Saul Wold
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Kang Kai <kai.kang@windriver.com>

Build ghostscript-native fails on a i686 machine because it can't get
the source objarch.h and soobjarch.h, and .h files are not needed for
native package, so update the SRC_URI to fix it.

Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
 .../ghostscript/ghostscript_9.02.bb                |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-extended/ghostscript/ghostscript_9.02.bb b/meta/recipes-extended/ghostscript/ghostscript_9.02.bb
index e3d32dd..bee5684 100644
--- a/meta/recipes-extended/ghostscript/ghostscript_9.02.bb
+++ b/meta/recipes-extended/ghostscript/ghostscript_9.02.bb
@@ -15,17 +15,20 @@ SECTION = "console/utils"
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d151214b3131251dfc9d858593acbd24"
 
-PR = "r1"
+PR = "r2"
 
 DEPENDS = "${PN}-native tiff jpeg fontconfig cups"
 DEPENDS_virtclass-native = ""
 
-SRC_URI = "http://downloads.ghostscript.com/public/ghostscript-${PV}.tar.bz2 \
+SRC_URI_BASE = "http://downloads.ghostscript.com/public/ghostscript-${PV}.tar.bz2"
+
+SRC_URI = "${SRC_URI_BASE} \
            file://ghostscript-9.02-prevent_recompiling.patch \
            file://ghostscript-9.02-genarch.patch \
            file://objarch.h \
            file://soobjarch.h \
            "
+SRC_URI_virtclass-native = "${SRC_URI_BASE}"
 
 SRC_URI[md5sum] = "f67151444bd56a7904579fc75a083dd6"
 SRC_URI[sha256sum] = "03ea2cad13a36f8f9160912012b79619a826e7148fada6d3531feb25409ee05a"
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 02/23] busybox: backport distro-features handling from oe master
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 01/23] ghostscript: update SRC_URI Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native Saul Wold
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Phil Blundell

From: Phil Blundell <pb@pbcl.net>

This is a backport from oe master of the code which adjusts the busybox
config according to DISTRO_FEATURES etc.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 meta/recipes-core/busybox/busybox.inc       |   80 ++++++++++++++++++++++++++-
 meta/recipes-core/busybox/busybox_1.18.4.bb |    2 +-
 2 files changed, 79 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index 86fbdae..b697e88 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -35,8 +35,85 @@ RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc"
 
 inherit cml1 update-rc.d
 
+# internal helper
+def busybox_cfg(feature, features, tokens, cnf, rem):
+	if type(tokens) == type(""):
+		tokens = [tokens]
+	rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
+	if type(features) == type([]) and feature in features:
+		cnf.extend([token + '=y' for token in tokens])
+	else:
+		cnf.extend(['# ' + token + ' is not set' for token in tokens])
+
+# Map distro and machine features to config settings
+def features_to_busybox_settings(d):
+	cnf, rem = ([], [])
+	distro_features = bb.data.getVar('DISTRO_FEATURES', d).split()
+	machine_features = bb.data.getVar('MACHINE_FEATURES', d).split()
+	busybox_cfg('ipv6', distro_features, 'CONFIG_FEATURE_IPV6', cnf, rem)
+	busybox_cfg('largefile', distro_features, 'CONFIG_LFS', cnf, rem)
+	busybox_cfg('largefile', distro_features, 'CONFIG_FDISK_SUPPORT_LARGE_DISKS', cnf, rem)
+	busybox_cfg('nls',  distro_features, 'CONFIG_LOCALE_SUPPORT', cnf, rem)
+	busybox_cfg('ipv4', distro_features, 'CONFIG_FEATURE_IFUPDOWN_IPV4', cnf, rem)
+	busybox_cfg('ipv6', distro_features, 'CONFIG_FEATURE_IFUPDOWN_IPV6', cnf, rem)
+	busybox_cfg('kernel24', machine_features, 'CONFIG_FEATURE_2_4_MODULES', cnf, rem)
+	return "\n".join(cnf), "\n".join(rem)
+
+# X, Y = ${@features_to_uclibc_settings(d)}
+# unfortunately doesn't seem to work with bitbake, workaround:
+def features_to_busybox_conf(d):
+	cnf, rem = features_to_busybox_settings(d)
+	return cnf
+def features_to_busybox_del(d):
+	cnf, rem = features_to_busybox_settings(d)
+	return rem
+
+configmangle = '/CROSS_COMPILER_PREFIX/d; \
+		/CONFIG_EXTRA_CFLAGS/d; \
+		'
+OE_FEATURES := "${@features_to_busybox_conf(d)}"
+OE_DEL      := "${@features_to_busybox_del(d)}"
+DO_IPv4 := ${@base_contains('DISTRO_FEATURES', 'ipv4', 1, 0, d)}
+DO_IPv6 := ${@base_contains('DISTRO_FEATURES', 'ipv6', 1, 0, d)}
+
+python () {
+  if "${OE_DEL}":
+    bb.data.setVar('configmangle_append', "${OE_DEL}" + "\n", d)
+  if "${OE_FEATURES}":
+    bb.data.setVar('configmangle_append',
+                   "/^### DISTRO FEATURES$/a\\\n%s\n\n" %
+                   ("\\n".join((bb.data.expand("${OE_FEATURES}", d).split("\n")))),
+                   d)
+  bb.data.setVar('configmangle_append',
+                 "/^### CROSS$/a\\\n%s\n" %
+                  ("\\n".join(["CONFIG_CROSS_COMPILER_PREFIX=\"${TARGET_PREFIX}\"",
+			       "CONFIG_EXTRA_CFLAGS=\"${CFLAGS}\""
+                        ])
+                  ),
+                 d)
+}
+
+do_prepare_config () {
+	sed -e 's#@DATADIR@#${datadir}#g' \
+		< ${WORKDIR}/defconfig > ${S}/.config
+	sed -i -e '/CONFIG_STATIC/d' .config
+	echo "# CONFIG_STATIC is not set" >> .config
+	for i in 'CROSS' 'DISTRO FEATURES'; do echo "### $i"; done >> \
+		${S}/.config
+	sed -i -e '${configmangle}' ${S}/.config
+	if test ${DO_IPv4} -eq 0 && test ${DO_IPv6} -eq 0; then
+	  # disable networking applets
+	  mv ${S}/.config ${S}/.config.oe-tmp
+	  awk 'BEGIN{net=0}
+	  /^# Networking Utilities/{net=1}
+	  /^#$/{if(net){net=net+1}}
+	  {if(net==2&&$0 !~ /^#/&&$1){print("# "$1" is not set")}else{print}}' \
+		  ${S}/.config.oe-tmp > ${S}/.config
+	fi
+}
+
 do_configure () {
-	install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+	do_prepare_config
 	cml1_do_configure
 }
 
@@ -184,4 +261,3 @@ pkg_prerm_${PN}-syslog () {
 	update-alternatives --remove syslog-init syslog.${PN}
 	update-alternatives --remove syslog-conf syslog.conf.${PN}
 }
-
diff --git a/meta/recipes-core/busybox/busybox_1.18.4.bb b/meta/recipes-core/busybox/busybox_1.18.4.bb
index a5080d5..a999490 100644
--- a/meta/recipes-core/busybox/busybox_1.18.4.bb
+++ b/meta/recipes-core/busybox/busybox_1.18.4.bb
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://udhcpscript.patch \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 01/23] ghostscript: update SRC_URI Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 02/23] busybox: backport distro-features handling from oe master Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-14 12:53   ` Phil Blundell
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 04/23] uclibc: fix compile error on i586 Saul Wold
                   ` (19 subsequent siblings)
  22 siblings, 1 reply; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Dexuan Cui <dexuan.cui@intel.com>

[YOCTO #1155]

I thought git-native could depend on perl-native-runtime and tests on
Ubuntu 9.04/10.10 and Fedora 13 show it could buid fine (looks these distros
install perl-ExtUtils-MakeMaker by default).

However Joshua reported on Fedora 15 i686 host, git-native can't build unless
he manually installed perl-ExtUtils-MakeMaker to the host.

This makes me think we may as well make git-native depend on perl-native.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 meta/recipes-devtools/git/git.inc        |    6 +++---
 meta/recipes-devtools/git/git_1.7.5.1.bb |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
index c884f9c..5d77880 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -1,16 +1,16 @@
 DESCRIPTION = "The git revision control system used by the Linux kernel developers"
 SECTION = "console/utils"
 LICENSE = "GPLv2"
-DEPENDS = "perl-native openssl curl zlib expat"
+DEPENDS = "openssl curl zlib expat"
 
 SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.bz2 "
 S = "${WORKDIR}/git-${PV}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1"
 
-EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl --without-tcltk"
+EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --without-tcltk"
 
-inherit autotools
+inherit autotools perlnative
 
 do_install () {
 	oe_runmake install DESTDIR="${D}" bindir=${bindir} \
diff --git a/meta/recipes-devtools/git/git_1.7.5.1.bb b/meta/recipes-devtools/git/git_1.7.5.1.bb
index bfdbf62..04d1d56 100644
--- a/meta/recipes-devtools/git/git_1.7.5.1.bb
+++ b/meta/recipes-devtools/git/git_1.7.5.1.bb
@@ -1,6 +1,6 @@
 require git.inc
 
-PR = "r0"
+PR = "r2"
 
 EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no ac_cv_c_c99_format=yes \
                  ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 04/23] uclibc: fix compile error on i586
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (2 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 05/23] import recipe_sanity.bbclass from oe master Saul Wold
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Phil Blundell

From: Phil Blundell <pb@pbcl.net>

Without this you get:

| libc/sysdeps/linux/common/epoll.c: In function '__libc_epoll_pwait':
| libc/sysdeps/linux/common/epoll.c:71:80: error: memory input 7 is not directly addressable
| libc/sysdeps/linux/common/epoll.c:75:86: error: memory input 7 is not directly addressable
| make: *** [libc/sysdeps/linux/common/epoll.o] Error 1

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 .../uclibc/uclibc-git/epoll-asm-fix.patch          |   25 ++++++++++++++++++++
 meta/recipes-core/uclibc/uclibc_git.bb             |    1 +
 2 files changed, 26 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch

diff --git a/meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch b/meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch
new file mode 100644
index 0000000..bcd834d
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-git/epoll-asm-fix.patch
@@ -0,0 +1,25 @@
+Fix a compile error due to last argument to syscall() not being memory addressable.
+
+Upstream-Status: Pending
+Signed-off-by: Phil Blundell <philb@gnu.org>
+
+diff --git a/libc/sysdeps/linux/common/epoll.c b/libc/sysdeps/linux/common/epoll.c
+index 85b0cfd..c034b2c 100644
+--- a/libc/sysdeps/linux/common/epoll.c
++++ b/libc/sysdeps/linux/common/epoll.c
+@@ -67,12 +67,13 @@ extern __typeof(epoll_pwait) __libc_epoll_pwait;
+ int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
+ 						int timeout, const sigset_t *set)
+ {
++	int nsig = _NSIG / 8;
+ 	if (SINGLE_THREAD_P)
+-		return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8);
++		return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
+ # ifdef __UCLIBC_HAS_THREADS_NATIVE__
+ 	else {
+ 		int oldtype = LIBC_CANCEL_ASYNC ();
+-		int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8);
++		int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
+ 		LIBC_CANCEL_RESET (oldtype);
+ 		return result;
+ 	}
diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb
index eded2fb..54babca 100644
--- a/meta/recipes-core/uclibc/uclibc_git.bb
+++ b/meta/recipes-core/uclibc/uclibc_git.bb
@@ -29,5 +29,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
 	file://remove_attribute_optimize_Os.patch \
 	file://append_UCLIBC_EXTRA_CFLAGS.patch \
 	file://compile-arm-fork-with-O2.patch \
+	file://epoll-asm-fix.patch \
 	"
 S = "${WORKDIR}/git"
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 05/23] import recipe_sanity.bbclass from oe master
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (3 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 04/23] uclibc: fix compile error on i586 Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 06/23] json-glib: Fix up SRC_URI Checksums Saul Wold
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Phil Blundell

From: Phil Blundell <pb@pbcl.net>

This is a verbatim copy of the corresponding class from oe master.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 meta/classes/recipe_sanity.bbclass |  179 ++++++++++++++++++++++++++++++++++++
 1 files changed, 179 insertions(+), 0 deletions(-)
 create mode 100644 meta/classes/recipe_sanity.bbclass

diff --git a/meta/classes/recipe_sanity.bbclass b/meta/classes/recipe_sanity.bbclass
new file mode 100644
index 0000000..bb60ffa
--- /dev/null
+++ b/meta/classes/recipe_sanity.bbclass
@@ -0,0 +1,179 @@
+def __note(msg, d):
+    bb.note("%s: recipe_sanity: %s" % (d.getVar("P", 1), msg))
+
+__recipe_sanity_badruntimevars = "RDEPENDS RPROVIDES RRECOMMENDS RCONFLICTS"
+def bad_runtime_vars(cfgdata, d):
+    if bb.data.inherits_class("native", d) or \
+       bb.data.inherits_class("cross", d):
+        return
+
+    for var in d.getVar("__recipe_sanity_badruntimevars", 1).split():
+        val = d.getVar(var, 0)
+        if val and val != cfgdata.get(var):
+            __note("%s should be %s_${PN}" % (var, var), d)
+
+__recipe_sanity_reqvars = "DESCRIPTION"
+__recipe_sanity_reqdiffvars = "LICENSE"
+def req_vars(cfgdata, d):
+    for var in d.getVar("__recipe_sanity_reqvars", 1).split():
+        if not d.getVar(var, 0):
+            __note("%s should be set" % var, d)
+
+    for var in d.getVar("__recipe_sanity_reqdiffvars", 1).split():
+        val = d.getVar(var, 0)
+        cfgval = cfgdata.get(var)
+
+        # Hardcoding is bad, but I'm lazy.  We don't care about license being
+        # unset if the recipe has no sources!
+        if var == "LICENSE" and d.getVar("SRC_URI", 1) == cfgdata.get("SRC_URI"):
+            continue
+
+        if not val:
+            __note("%s should be set" % var, d)
+        elif val == cfgval:
+            __note("%s should be defined to something other than default (%s)" % (var, cfgval), d)
+
+def var_renames_overwrite(cfgdata, d):
+    renames = d.getVar("__recipe_sanity_renames", 0)
+    if renames:
+        for (key, newkey, oldvalue, newvalue) in renames:
+            if oldvalue != newvalue and oldvalue != cfgdata.get(newkey):
+                __note("rename of variable '%s' to '%s' overwrote existing value '%s' with '%s'." % (key, newkey, oldvalue, newvalue), d)
+
+def incorrect_nonempty_PACKAGES(cfgdata, d):
+    if bb.data.inherits_class("native", d) or \
+       bb.data.inherits_class("cross", d):
+        if d.getVar("PACKAGES", 1):
+            return True
+
+def can_use_autotools_base(cfgdata, d):
+    cfg = d.getVar("do_configure", 1)
+    if not bb.data.inherits_class("autotools", d):
+        return False
+
+    for i in ["autoreconf"] + ["%s_do_configure" % cls for cls in ["gnomebase", "gnome", "e", "autotools", "efl", "gpephone", "openmoko", "openmoko2", "xfce", "xlibs"]]:
+        if cfg.find(i) != -1:
+            return False
+
+    import os
+    for clsfile in d.getVar("__inherit_cache", 0):
+        (base, _) = os.path.splitext(os.path.basename(clsfile))
+        if cfg.find("%s_do_configure" % base) != -1:
+            __note("autotools_base usage needs verification, spotted %s_do_configure" % base, d)
+
+    return True
+
+def can_remove_FILESPATH(cfgdata, d):
+    expected = cfgdata.get("FILESPATH")
+    #expected = "${@':'.join([os.path.normpath(os.path.join(fp, p, o)) for fp in d.getVar('FILESPATHBASE', 1).split(':') for p in d.getVar('FILESPATHPKG', 1).split(':') for o in (d.getVar('OVERRIDES', 1) + ':').split(':') if os.path.exists(os.path.join(fp, p, o))])}:${FILESDIR}"
+    expectedpaths = bb.data.expand(expected, d)
+    unexpanded = d.getVar("FILESPATH", 0)
+    filespath = d.getVar("FILESPATH", 1).split(":")
+    filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)]
+    for fp in filespath:
+        if not fp in expectedpaths:
+            # __note("Path %s in FILESPATH not in the expected paths %s" %
+            # (fp, expectedpaths), d)
+            return False
+    return expected != unexpanded
+
+def can_remove_FILESDIR(cfgdata, d):
+    expected = cfgdata.get("FILESDIR")
+    #expected = "${@bb.which(d.getVar('FILESPATH', 1), '.')}"
+    unexpanded = d.getVar("FILESDIR", 0)
+    if unexpanded is None:
+        return False
+
+    expanded = os.path.normpath(d.getVar("FILESDIR", 1))
+    filespath = d.getVar("FILESPATH", 1).split(":")
+    filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)]
+
+    return unexpanded != expected and \
+           os.path.exists(expanded) and \
+           (expanded in filespath or
+            expanded == bb.data.expand(expected, d))
+
+def can_remove_others(p, cfgdata, d):
+    for k in ["S", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS",
+              "SECTION", "PACKAGES", "EXTRA_OECONF", "EXTRA_OEMAKE"]:
+    #for k in cfgdata:
+        unexpanded = d.getVar(k, 0)
+        cfgunexpanded = cfgdata.get(k)
+        if not cfgunexpanded:
+            continue
+
+        try:
+            expanded = d.getVar(k, 1)
+            cfgexpanded = bb.data.expand(cfgunexpanded, d)
+        except bb.fetch.ParameterError:
+            continue
+
+        if unexpanded != cfgunexpanded and \
+           cfgexpanded == expanded:
+           __note("candidate for removal of %s" % k, d)
+           bb.debug(1, "%s: recipe_sanity:   cfg's '%s' and d's '%s' both expand to %s" %
+                       (p, cfgunexpanded, unexpanded, expanded))
+
+python do_recipe_sanity () {
+    p = d.getVar("P", 1)
+    p = "%s %s %s" % (d.getVar("PN", 1), d.getVar("PV", 1), d.getVar("PR", 1))
+
+    sanitychecks = [
+        (can_remove_FILESDIR, "candidate for removal of FILESDIR"),
+        (can_remove_FILESPATH, "candidate for removal of FILESPATH"),
+        #(can_use_autotools_base, "candidate for use of autotools_base"),
+        (incorrect_nonempty_PACKAGES, "native or cross recipe with non-empty PACKAGES"),
+    ]
+    cfgdata = d.getVar("__recipe_sanity_cfgdata", 0)
+
+    for (func, msg) in sanitychecks:
+        if func(cfgdata, d):
+            __note(msg, d)
+
+    can_remove_others(p, cfgdata, d)
+    var_renames_overwrite(cfgdata, d)
+    req_vars(cfgdata, d)
+    bad_runtime_vars(cfgdata, d)
+}
+do_recipe_sanity[nostamp] = "1"
+#do_recipe_sanity[recrdeptask] = "do_recipe_sanity"
+addtask recipe_sanity
+
+do_recipe_sanity_all[nostamp] = "1"
+do_recipe_sanity_all[recrdeptask] = "do_recipe_sanity"
+do_recipe_sanity_all () {
+    :
+}
+addtask recipe_sanity_all after do_recipe_sanity
+
+python recipe_sanity_eh () {
+    from bb.event import getName
+
+    if getName(e) != "ConfigParsed":
+        return
+
+    d = e.data
+
+    cfgdata = {}
+    for k in d.keys():
+    #for k in ["S", "PR", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS",
+    #          "SECTION"]:
+        cfgdata[k] = d.getVar(k, 0)
+
+    d.setVar("__recipe_sanity_cfgdata", cfgdata)
+    #d.setVar("__recipe_sanity_cfgdata", d)
+
+    # Sick, very sick..
+    from bb.data_smart import DataSmart
+    old = DataSmart.renameVar
+    def myrename(self, key, newkey):
+        oldvalue = self.getVar(newkey, 0)
+        old(self, key, newkey)
+        newvalue = self.getVar(newkey, 0)
+        if oldvalue:
+            renames = self.getVar("__recipe_sanity_renames", 0) or set()
+            renames.add((key, newkey, oldvalue, newvalue))
+            self.setVar("__recipe_sanity_renames", renames)
+    DataSmart.renameVar = myrename
+}
+addhandler recipe_sanity_eh
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 06/23] json-glib: Fix up SRC_URI Checksums
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (4 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 05/23] import recipe_sanity.bbclass from oe master Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 07/23] gconf-dbus: Update to 2.29.1 git Saul Wold
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-gnome/json-glib/json-glib_0.12.4.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb b/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb
index 58dcde9..2b8bdf6 100644
--- a/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb
+++ b/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb
@@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 
 DEPENDS = "glib-2.0"
 
-SRC_URI[archive.md5sum] = "71f911329c9f742543b378c3494490da"
-SRC_URI[archive.sha256sum] = "89fa9b870dfe2d8b7b00210be76cdbb2d46a8d2cc77ca7cbe5d081bdf8cad780"
+SRC_URI[archive.md5sum] = "347e1714e4a2ce54298969d5ffec7dca"
+SRC_URI[archive.sha256sum] = "462cd611016ae189d5e3f258dc7741e6a2e8267404b4e3806aaf346d50f1df7e"  
 
 PR = "r0"
 
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 07/23] gconf-dbus: Update to 2.29.1 git
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (5 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 06/23] json-glib: Fix up SRC_URI Checksums Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  7:58   ` Koen Kooi
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 08/23] linux-yocto: rename recipes to explicitly indicate version Saul Wold
                   ` (15 subsequent siblings)
  22 siblings, 1 reply; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

New version now uses git
set --enable-defaults-service=no so that polkit is not pulled in

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../gnome/{gconf-dbus_svn.bb => gconf-dbus_git.bb} |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)
 rename meta/recipes-gnome/gnome/{gconf-dbus_svn.bb => gconf-dbus_git.bb} (76%)

diff --git a/meta/recipes-gnome/gnome/gconf-dbus_svn.bb b/meta/recipes-gnome/gnome/gconf-dbus_git.bb
similarity index 76%
rename from meta/recipes-gnome/gnome/gconf-dbus_svn.bb
rename to meta/recipes-gnome/gnome/gconf-dbus_git.bb
index 16a2ddb..2b6f9c3 100644
--- a/meta/recipes-gnome/gnome/gconf-dbus_svn.bb
+++ b/meta/recipes-gnome/gnome/gconf-dbus_git.bb
@@ -8,19 +8,17 @@ PROVIDES = "gconf"
 RPROVIDES_${PN} = "gconf"
 RPROVIDES_${PN}-dev = "gconf-dev"
 
-SRCREV = "705"
-PV = "2.16.0+svnr${SRCPV}"
+SRCREV = "d096734a6c53954baa64e3ce8a62d11296b9eaab"
+PV = "2.29.1+git${SRCPV}"
 
-SRC_URI = "svn://developer.imendio.com/svn/gconf-dbus;module=trunk;proto=http"
-S = "${WORKDIR}/trunk"
+SRC_URI = "git://meego.gitorious.org/meego-os-base/gconf-dbus.git"
+S = "${WORKDIR}/git"
 
 inherit pkgconfig autotools
 
 PARALLEL_MAKE = ""
 
-
-EXTRA_OECONF = "--disable-gtk-doc --disable-gtk --enable-shared --disable-static --enable-debug=yes"
-
+EXTRA_OECONF = "--disable-gtk-doc --disable-gtk --enable-shared --disable-static --enable-debug=yes --enable-defaults-service=no"
 
 do_configure_prepend() {
         touch gtk-doc.make
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 08/23] linux-yocto: rename recipes to explicitly indicate version
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (6 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 07/23] gconf-dbus: Update to 2.29.1 git Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 09/23] perl-native: fix download url Saul Wold
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Bruce Ashfield <bruce.ashfield@windriver.com>

The existing recipe names for the linux-yocto kernel builds
worked well when there was a single, or two versions of the
kernel available. But with the impending kernel updates and
retirement of older kernels, the re-use of the same recipes
for different kernel versions violates the principle of least
surprise.

To address this, the recipes are being renamed as follows:

    linux-yocto_git.bb -> linux-yocto_2.6.37.bb
    linux-yocto-stable_git.bb -> linux-yocto_2.6.34.bb

There continue to be versionless recipe names that feed into
versioned recipes at the appropriate points. They are:

     linux-yocto-dev.bb (tracking the latest yocto dev kernel)
     linux-yocto-korg_head.bb (tracking korg kernels)

There are no existing users of linux-yocto-stable in the master
branches to convert to the new naming, so these changes work
in isolation.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 ...x-yocto-stable_git.bb => linux-yocto_2.6.34.bb} |    0
 .../{linux-yocto_git.bb => linux-yocto_2.6.37.bb}  |    0
 2 files changed, 0 insertions(+), 0 deletions(-)
 rename meta/recipes-kernel/linux/{linux-yocto-stable_git.bb => linux-yocto_2.6.34.bb} (100%)
 rename meta/recipes-kernel/linux/{linux-yocto_git.bb => linux-yocto_2.6.37.bb} (100%)

diff --git a/meta/recipes-kernel/linux/linux-yocto-stable_git.bb b/meta/recipes-kernel/linux/linux-yocto_2.6.34.bb
similarity index 100%
rename from meta/recipes-kernel/linux/linux-yocto-stable_git.bb
rename to meta/recipes-kernel/linux/linux-yocto_2.6.34.bb
diff --git a/meta/recipes-kernel/linux/linux-yocto_git.bb b/meta/recipes-kernel/linux/linux-yocto_2.6.37.bb
similarity index 100%
rename from meta/recipes-kernel/linux/linux-yocto_git.bb
rename to meta/recipes-kernel/linux/linux-yocto_2.6.37.bb
-- 
1.7.3.4




^ permalink raw reply	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 09/23] perl-native: fix download url
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (7 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 08/23] linux-yocto: rename recipes to explicitly indicate version Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 10/23] clutter-box2d_git: Switch SRC_URI to git.gnome.org Saul Wold
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Anders Darander <anders@chargestorm.se>

Signed-off-by: Anders Darander <anders@chargestorm.se>
---
 meta/recipes-devtools/perl/perl-native_5.12.3.bb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-devtools/perl/perl-native_5.12.3.bb b/meta/recipes-devtools/perl/perl-native_5.12.3.bb
index cbb4e78..50fa1c9 100644
--- a/meta/recipes-devtools/perl/perl-native_5.12.3.bb
+++ b/meta/recipes-devtools/perl/perl-native_5.12.3.bb
@@ -9,7 +9,7 @@ PR = "r2"
 LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \
                     file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8"
 
-SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
+SRC_URI = "http://www.cpan.org/src/5.0/perl-${PV}.tar.gz \
            file://Configure-multilib.patch \
            file://perl-configpm-switch.patch \
            file://parallel_build_fix_1.patch \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 10/23] clutter-box2d_git: Switch SRC_URI to git.gnome.org
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (8 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 09/23] perl-native: fix download url Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 11/23] util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext Saul Wold
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-graphics/clutter/clutter-box2d_git.bb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-graphics/clutter/clutter-box2d_git.bb b/meta/recipes-graphics/clutter/clutter-box2d_git.bb
index 4c1c003..bfd46b2 100644
--- a/meta/recipes-graphics/clutter/clutter-box2d_git.bb
+++ b/meta/recipes-graphics/clutter/clutter-box2d_git.bb
@@ -6,7 +6,7 @@ SRCREV = "4799ac10ae8cb7da936a2b999aba58fe62eb1ee3"
 PV = "0.10.1+git${SRCPV}"
 PR = "r0"
 
-SRC_URI = "git://git.clutter-project.org/clutter-box2d.git;protocol=git"
+SRC_URI = "git://git.gnome.org/clutter-box2d.git"
 
 S = "${WORKDIR}/git"
 
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 11/23] util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (9 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 10/23] clutter-box2d_git: Switch SRC_URI to git.gnome.org Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 12/23] uclibc.inc: libsegfault is only RPROVIDED by uclibc Saul Wold
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Khem Raj <raj.khem@gmail.com>

So multiple provider problem can be reolved amicably

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../xorg-util/util-macros_1.13.0.bb                |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-graphics/xorg-util/util-macros_1.13.0.bb b/meta/recipes-graphics/xorg-util/util-macros_1.13.0.bb
index a6f5402..4bac614 100644
--- a/meta/recipes-graphics/xorg-util/util-macros_1.13.0.bb
+++ b/meta/recipes-graphics/xorg-util/util-macros_1.13.0.bb
@@ -12,8 +12,8 @@ PR = "r0"
 
 # ${PN} is empty so we need to tweak -dev and -dbg package dependencies
 DEPENDS = "libgpg-error"
-DEPENDS_virtclass-native = "gettext"
-DEPENDS_virtclass-nativesdk = "gettext"
+DEPENDS_virtclass-native = "virtual/gettext"
+DEPENDS_virtclass-nativesdk = "virtual/gettext"
 
 RDEPENDS_${PN}-dev = ""
 RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 12/23] uclibc.inc: libsegfault is only RPROVIDED by uclibc
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (10 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 11/23] util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 13/23] gettext_0.18.1.1.bb: Fix build on uclibc Saul Wold
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Khem Raj <raj.khem@gmail.com>

Using ${PN} also means that uclibc-initial gets to provide it
which we do not want

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/uclibc/uclibc.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index c1bc422..0f8c6c2 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -99,7 +99,7 @@ RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev"
 # uclibc does not really have libsegfault but then using the one from glibc is also not
 # going to work. So we pretend that we have it to make bitbake not pull other recipes
 # to satisfy this dependency for the images/tasks
-RPROVIDES_${PN} += "libsegfault"
+RPROVIDES_uclibc += "libsegfault"
 
 SRC_URI = "\
         http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 13/23] gettext_0.18.1.1.bb: Fix build on uclibc
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (11 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 12/23] uclibc.inc: libsegfault is only RPROVIDED by uclibc Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 14/23] uclibc: Cleanup the machine dependent config files Saul Wold
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Khem Raj <raj.khem@gmail.com>

Use libc-uclibc override to seprate out uclibc bits
instead of using TARGET_OS

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../gnulib-uclibc-sched_param-def.patch            |   21 ++++++++++++++++++++
 meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    7 +++--
 2 files changed, 25 insertions(+), 3 deletions(-)
 create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch

diff --git a/meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch b/meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch
new file mode 100644
index 0000000..d8d10db
--- /dev/null
+++ b/meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch
@@ -0,0 +1,21 @@
+uclibc defines __GLIBC__ but it does not expose struct shed_param as much as glibc
+and is not needed too per standard. gnulib attempts to use it but we have to account
+for it because in this case uclibc does not behave like glibc.
+
+-Khem
+
+Upstream-Status: Pending
+
+Index: gettext-0.18.1.1/gettext-tools/gnulib-lib/spawn.in.h
+===================================================================
+--- gettext-0.18.1.1.orig/gettext-tools/gnulib-lib/spawn.in.h
++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/spawn.in.h
+@@ -31,7 +31,7 @@
+ 
+ /* Get definitions of 'struct sched_param' and 'sigset_t'.
+    But avoid namespace pollution on glibc systems.  */
+-#ifndef __GLIBC__
++#if !defined __GLIBC__ || defined __UCLIBC__
+ # include <sched.h>
+ # include <signal.h>
+ #endif
diff --git a/meta/recipes-core/gettext/gettext_0.18.1.1.bb b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
index 5f5f164..f54c111 100644
--- a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
@@ -12,11 +12,12 @@ PROVIDES = "virtual/libintl virtual/gettext"
 PROVIDES_virtclass-native = ""
 CONFLICTS_${PN} = "proxy-libintl"
 SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
-           file://wchar-uclibc.patch \
           "
 
-SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
-SRC_URI_append_linux-uclibceabi = " file://gettext-error_print_progname.patch;patch=1"
+SRC_URI_append_libc-uclibc = " file://wchar-uclibc.patch \
+                               file://gettext-error_print_progname.patch \
+                               file://gnulib-uclibc-sched_param-def.patch \
+                             "
 
 SRC_URI[md5sum] = "3dd55b952826d2b32f51308f2f91aa89"
 SRC_URI[sha256sum] = "93ac71a7afa5b70c1b1032516663658c51e653087f42a3fc8044752c026443e9"
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 14/23] uclibc: Cleanup the machine dependent config files
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (12 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 13/23] gettext_0.18.1.1.bb: Fix build on uclibc Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 15/23] uclibc: remove redundant python code Saul Wold
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

From: Khem Raj <raj.khem@gmail.com>

We only have arch specific machine fragments now.
Introduce use of KCONFIG_ALLCONFIG and use allnoconfig

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../uclibc/uclibc-git/armv5te/uClibc.machine       |    4 +-
 .../{nslu2be => armv5teb}/uClibc.machine           |    0
 .../uclibc/uclibc-git/efika/uClibc.machine         |   45 ------------
 .../uclibc-git/{qemumips => mips}/uClibc.machine   |    0
 .../uclibc/uclibc-git/qemuarm/uClibc.machine       |   77 --------------------
 .../uclibc/uclibc-git/qemux86/uClibc.machine       |   59 ---------------
 meta/recipes-core/uclibc/uclibc-git/uClibc.distro  |   14 ++++-
 meta/recipes-core/uclibc/uclibc.inc                |    5 +-
 meta/recipes-core/uclibc/uclibc_git.bb             |    1 -
 9 files changed, 17 insertions(+), 188 deletions(-)
 rename meta/recipes-core/uclibc/uclibc-git/{nslu2be => armv5teb}/uClibc.machine (100%)
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine
 rename meta/recipes-core/uclibc/uclibc-git/{qemumips => mips}/uClibc.machine (100%)
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/uClibc.config

diff --git a/meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine
index b012a38..2242dc9 100644
--- a/meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine
+++ b/meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine
@@ -38,14 +38,14 @@ FORCE_OPTIONS_FOR_ARCH=y
 CONFIG_ARM_EABI=y
 # COMPILE_IN_THUMB_MODE is not set
 USE_BX=y
-CONFIG_GENERIC_ARM=y
+# CONFIG_GENERIC_ARM is not set
 # CONFIG_ARM610 is not set
 # CONFIG_ARM710 is not set
 # CONFIG_ARM7TDMI is not set
 # CONFIG_ARM720T is not set
 # CONFIG_ARM920T is not set
 # CONFIG_ARM922T is not set
-# CONFIG_ARM926T is not set
+CONFIG_ARM926T=y
 # CONFIG_ARM10T is not set
 # CONFIG_ARM1136JF_S is not set
 # CONFIG_ARM1176JZ_S is not set
diff --git a/meta/recipes-core/uclibc/uclibc-git/nslu2be/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/armv5teb/uClibc.machine
similarity index 100%
rename from meta/recipes-core/uclibc/uclibc-git/nslu2be/uClibc.machine
rename to meta/recipes-core/uclibc/uclibc-git/armv5teb/uClibc.machine
diff --git a/meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine
deleted file mode 100644
index 5ed7b51..0000000
--- a/meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine
+++ /dev/null
@@ -1,45 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Wed Dec 20 11:05:48 2006
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-# TARGET_i386 is not set
-# TARGET_i960 is not set
-# TARGET_ia64 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-TARGET_powerpc=y
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_vax is not set
-# TARGET_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="powerpc"
-FORCE_OPTIONS_FOR_ARCH=y
-ARCH_BIG_ENDIAN=y
-
-#
-# Using Big Endian
-#
-ARCH_HAS_MMU=y
-ARCH_USE_MMU=y
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-KERNEL_HEADERS="<path/to/kernel/headers>" 
-HAVE_DOT_CONFIG=y
diff --git a/meta/recipes-core/uclibc/uclibc-git/qemumips/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/mips/uClibc.machine
similarity index 100%
rename from meta/recipes-core/uclibc/uclibc-git/qemumips/uClibc.machine
rename to meta/recipes-core/uclibc/uclibc-git/mips/uClibc.machine
diff --git a/meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine
deleted file mode 100644
index 2242dc9..0000000
--- a/meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Version: 0.9.32-git
-# Mon Jul 19 01:34:29 2010
-#
-# TARGET_alpha is not set
-TARGET_arm=y
-# TARGET_avr32 is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-# TARGET_i386 is not set
-# TARGET_i960 is not set
-# TARGET_ia64 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_vax is not set
-# TARGET_x86_64 is not set
-# TARGET_xtensa is not set
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="arm"
-FORCE_OPTIONS_FOR_ARCH=y
-# CONFIG_ARM_OABI is not set
-CONFIG_ARM_EABI=y
-# COMPILE_IN_THUMB_MODE is not set
-USE_BX=y
-# CONFIG_GENERIC_ARM is not set
-# CONFIG_ARM610 is not set
-# CONFIG_ARM710 is not set
-# CONFIG_ARM7TDMI is not set
-# CONFIG_ARM720T is not set
-# CONFIG_ARM920T is not set
-# CONFIG_ARM922T is not set
-CONFIG_ARM926T=y
-# CONFIG_ARM10T is not set
-# CONFIG_ARM1136JF_S is not set
-# CONFIG_ARM1176JZ_S is not set
-# CONFIG_ARM1176JZF_S is not set
-# CONFIG_ARM_CORTEX_M3 is not set
-# CONFIG_ARM_CORTEX_M1 is not set
-# CONFIG_ARM_SA110 is not set
-# CONFIG_ARM_SA1100 is not set
-# CONFIG_ARM_XSCALE is not set
-# CONFIG_ARM_IWMMXT is not set
-TARGET_SUBARCH=""
-
-#
-# Using ELF file format
-#
-ARCH_ANY_ENDIAN=y
-ARCH_LITTLE_ENDIAN=y
-# ARCH_WANTS_BIG_ENDIAN is not set
-ARCH_WANTS_LITTLE_ENDIAN=y
-ARCH_HAS_MMU=y
-ARCH_USE_MMU=y
-UCLIBC_HAS_FLOATS=y
-# UCLIBC_HAS_FPU is not set
-UCLIBC_HAS_SOFT_FLOAT=y
-DO_C99_MATH=y
-# DO_XSI_MATH is not set
-# UCLIBC_HAS_FENV is not set
-KERNEL_HEADERS="/usr/include"
-HAVE_DOT_CONFIG=y
diff --git a/meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine b/meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine
deleted file mode 100644
index 3909ccc..0000000
--- a/meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-TARGET_i386=y
-# TARGET_i960 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="i386"
-# ARCH_SUPPORTS_BIG_ENDIAN is not set
-ARCH_SUPPORTS_LITTLE_ENDIAN=y
-FORCE_OPTIONS_FOR_ARCH=y
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-CONFIG_PENTIUM4=y
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-ARCH_LITTLE_ENDIAN=y
-# ARCH_BIG_ENDIAN is not set
-# ARCH_HAS_NO_MMU is not set
-ARCH_HAS_MMU=y
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-# UCLIBC_HAS_FENV is not set
-KERNEL_HEADERS="<path/to/kernel/headers>"
-HAVE_DOT_CONFIG=y
diff --git a/meta/recipes-core/uclibc/uclibc-git/uClibc.config b/meta/recipes-core/uclibc/uclibc-git/uClibc.config
deleted file mode 100644
index e69de29..0000000
diff --git a/meta/recipes-core/uclibc/uclibc-git/uClibc.distro b/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
index a1b7813..45b131d 100644
--- a/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
+++ b/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
@@ -157,4 +157,16 @@ WARNINGS="-Wall"
 DO_C99_MATH=y
 UCLIBC_HAS_LONG_DOUBLE_MATH=y
 UCLIBC_HAS_FENV=y
-
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_HAS_PTY=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_EPOLL=y
diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index 0f8c6c2..2bf3017 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -202,12 +202,11 @@ do_configure() {
         echo "### FPU" >>${S}/merged.config
         echo "### ABI" >>${S}/merged.config
         echo "### DISTRO FEATURES" >>${S}/merged.config
-        cp ${S}/merged.config ${S}/.config
 
         # Mangle the resulting .config depending on OE variables
-        sed -i -e '${configmangle}' ${S}/.config
+        sed -i -e '${configmangle}' ${S}/merged.config
 
-        oe_runmake oldconfig
+        oe_runmake KCONFIG_ALLCONFIG=${S}/merged.config allnoconfig
 }
 
 do_install() {
diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb
index 54babca..f5c861b 100644
--- a/meta/recipes-core/uclibc/uclibc_git.bb
+++ b/meta/recipes-core/uclibc/uclibc_git.bb
@@ -10,7 +10,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
 
 SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
-	file://uClibc.config \
 	file://uClibc.machine \
 	file://uClibc.distro \
 	file://uclibc-arm-ftruncate64.patch \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 15/23] uclibc: remove redundant python code
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (13 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 14/23] uclibc: Cleanup the machine dependent config files Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 16/23] uclibc: remove PACKAGE_ARCH, fix compilation on i586 Saul Wold
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Phil Blundell

From: Phil Blundell <pb@pbcl.net>

This chunk of python code has been around for a while (witness the
comment about gcc 3.4.0) and predates the availability of
COMPATIBLE_HOST.  Rewrite it using a more modern idiom.

Signed-off-by: Phil Blundell <philb@gnu.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/uclibc/uclibc.inc |   12 +-----------
 1 files changed, 1 insertions(+), 11 deletions(-)

diff --git a/meta/recipes-core/uclibc/uclibc.inc b/meta/recipes-core/uclibc/uclibc.inc
index 2bf3017..06c0f5d 100644
--- a/meta/recipes-core/uclibc/uclibc.inc
+++ b/meta/recipes-core/uclibc/uclibc.inc
@@ -36,21 +36,11 @@ cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \
 sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \
 "
 
-#
 # For now, we will skip building of a gcc package if it is a uclibc one
 # and our build is not a uclibc one, and we skip a glibc one if our build
 # is a uclibc build.
-#
-# See the note in gcc/gcc_3.4.0.oe
-#
+COMPATIBLE_HOST = ".*-uclibc.*"
 
-python __anonymous () {
-    import bb, re
-    uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None)
-    if not uc_os:
-        raise bb.parse.SkipPackage("incompatible with target %s" %
-                                   bb.data.getVar('TARGET_OS', d, 1))
-}
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
            virtual/${TARGET_PREFIX}gcc-intermediate \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 16/23] uclibc: remove PACKAGE_ARCH, fix compilation on i586
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (14 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 15/23] uclibc: remove redundant python code Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  8:34   ` Phil Blundell
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 17/23] qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them Saul Wold
                   ` (6 subsequent siblings)
  22 siblings, 1 reply; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Phil Blundell

From: Phil Blundell <pb@pbcl.net>

There is no good reason for uclibc to be machine specific.  Remove local
assignment to PACKAGE_ARCH so that it gets the default target
architecture and bump PR for that change.

See http://lists.linuxtogo.org/pipermail/openembedded-core/2011-May/003064.html

Signed-off-by: Phil Blundell <philb@gnu.org>
Acked-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/uclibc/uclibc_git.bb |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-core/uclibc/uclibc_git.bb b/meta/recipes-core/uclibc/uclibc_git.bb
index f5c861b..b8f58f0 100644
--- a/meta/recipes-core/uclibc/uclibc_git.bb
+++ b/meta/recipes-core/uclibc/uclibc_git.bb
@@ -2,11 +2,9 @@ SRCREV="71d63ed75648da9b0b71afabb9c60aaad792c55c"
 
 require uclibc.inc
 PV = "0.9.31+0.9.32rc3"
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
 
-#recent versions uclibc require real kernel headers
-PACKAGE_ARCH = "${MACHINE_ARCH}"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
 
 SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 17/23] qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (15 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 16/23] uclibc: remove PACKAGE_ARCH, fix compilation on i586 Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 18/23] connman-gnome 0.5: build from git Saul Wold
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Koen Kooi

From: Koen Kooi <koen@dominion.thruhere.net>

The ext3 format is pretty much mandatory for qemu usage, so always create it.

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 meta/conf/machine/include/qemu.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
index 9ef242f..e908f69 100644
--- a/meta/conf/machine/include/qemu.inc
+++ b/meta/conf/machine/include/qemu.inc
@@ -3,7 +3,7 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive"
 
 MACHINE_FEATURES = "kernel26 apm alsa pcmcia bluetooth irda usbgadget screen"
 
-IMAGE_FSTYPES ?= "tar.bz2 ext3"
+IMAGE_FSTYPES += "tar.bz2 ext3"
 
 ROOT_FLASH_SIZE = "280"
 
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 18/23] connman-gnome 0.5: build from git
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (16 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 17/23] qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 19/23] update-alternatives-dpkg: Fix SRC_URI Checksum Saul Wold
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core; +Cc: Koen Kooi

From: Koen Kooi <koen@dominion.thruhere.net>

All the local patches were applied upstream, so let's build straight from git to make that clear

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 .../connman-gnome/applet_menu_popup_fix.patch      |   19 -
 .../connman/connman-gnome/connman-gnome.patch      | 4162 --------------------
 .../remove-connman-property-desktop-file.patch     |   42 -
 .../connman-gnome/service_name_update.patch        |   36 -
 .../connman/connman-gnome_0.5.bb                   |   13 +-
 5 files changed, 4 insertions(+), 4268 deletions(-)
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/applet_menu_popup_fix.patch
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/connman-gnome.patch
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/remove-connman-property-desktop-file.patch
 delete mode 100644 meta/recipes-connectivity/connman/connman-gnome/service_name_update.patch

diff --git a/meta/recipes-connectivity/connman/connman-gnome/applet_menu_popup_fix.patch b/meta/recipes-connectivity/connman/connman-gnome/applet_menu_popup_fix.patch
deleted file mode 100644
index d34257b..0000000
--- a/meta/recipes-connectivity/connman/connman-gnome/applet_menu_popup_fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Even if all services are not available, we still need to let user have
-the ability to configure network, for example, online/offline, etc.
-Therefore enable the callback menu even when status is unavailable.
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-
-diff --git a/applet/status.c b/applet/status.c
-index 13ec752..d817f22 100644
---- a/applet/status.c
-+++ b/applet/status.c
-@@ -231,8 +231,6 @@ void status_unavailable(void)
- {
- 	icon_animation_stop(animation);
- 
--	available = FALSE;
--
- 	gtk_status_icon_set_from_pixbuf(statusicon, pixbuf_notifier);
- 	gtk_status_icon_set_tooltip(statusicon,
- 				"Connection Manager daemon is not running");
diff --git a/meta/recipes-connectivity/connman/connman-gnome/connman-gnome.patch b/meta/recipes-connectivity/connman/connman-gnome/connman-gnome.patch
deleted file mode 100644
index 2fe8bb8..0000000
--- a/meta/recipes-connectivity/connman/connman-gnome/connman-gnome.patch
+++ /dev/null
@@ -1,4162 +0,0 @@
-connman-gnome: Change the code to fit recent connman
-
-The recent connman changes from "device" based to "service" based.
-Therefore most of the interaction protocol between connman and
-connman-gnome has changed. This commit uses the new dbus interface
-to interact with connman. With this change, connman-gnome could
-do wired and wireless interface configurations with latest connman.
-
-Besides, some UI is re-designed to be more neat and friendly to
-end user.
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-
-diff --git a/applet/main.c b/applet/main.c
-index 2a9b36e..08d394c 100644
---- a/applet/main.c
-+++ b/applet/main.c
-@@ -98,279 +98,21 @@ static void settings_callback(GtkWidget *item, gpointer user_data)
- 		g_printerr("Couldn't execute command: %s\n", command);
- }
- 
--static void toggled_callback(GtkWidget *button, gpointer user_data)
--{
--	GtkWidget *entry = user_data;
--	gboolean mode;
--
--	mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
--
--	gtk_entry_set_visibility(GTK_ENTRY(entry), mode);
--}
--
--static void passphrase_dialog(const char *path, const char *name)
--{
--	GtkWidget *dialog;
--	GtkWidget *button;
--	GtkWidget *image;
--	GtkWidget *label;
--	GtkWidget *entry;
--	GtkWidget *table;
--	GtkWidget *vbox;
--
--	dialog = gtk_dialog_new();
--	gtk_window_set_title(GTK_WINDOW(dialog), _("Enter passphrase"));
--	gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
--	gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
--	gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE);
--	gtk_window_set_urgency_hint(GTK_WINDOW(dialog), TRUE);
--	gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
--
--	button = gtk_dialog_add_button(GTK_DIALOG(dialog),
--				GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT);
--	button = gtk_dialog_add_button(GTK_DIALOG(dialog),
--					GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
--	gtk_widget_grab_default(button);
--
--	table = gtk_table_new(5, 2, FALSE);
--	gtk_table_set_row_spacings(GTK_TABLE(table), 4);
--	gtk_table_set_col_spacings(GTK_TABLE(table), 20);
--	gtk_container_set_border_width(GTK_CONTAINER(table), 12);
--	gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), table);
--	image = gtk_image_new_from_icon_name(GTK_STOCK_DIALOG_AUTHENTICATION,
--							GTK_ICON_SIZE_DIALOG);
--	gtk_misc_set_alignment(GTK_MISC(image), 0.0, 0.0);
--	gtk_table_attach(GTK_TABLE(table), image, 0, 1, 0, 5,
--						GTK_SHRINK, GTK_FILL, 0, 0);
--	vbox = gtk_vbox_new(FALSE, 6);
--
--	label = gtk_label_new(_("Network requires input of a passphrase:"));
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
--	gtk_container_add(GTK_CONTAINER(vbox), label);
--	gtk_table_attach(GTK_TABLE(table), vbox, 1, 2, 0, 1,
--				GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);
--
--	entry = gtk_entry_new();
--	gtk_entry_set_max_length(GTK_ENTRY(entry), 120);
--	gtk_entry_set_width_chars(GTK_ENTRY(entry), 20);
--	gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
--	gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
--	gtk_container_add(GTK_CONTAINER(vbox), entry);
--
--	button = gtk_check_button_new_with_label(_("Show input"));
--	gtk_container_add(GTK_CONTAINER(vbox), button);
--
--	g_signal_connect(G_OBJECT(button), "toggled",
--				G_CALLBACK(toggled_callback), entry);
--
--	button = gtk_check_button_new_with_label(_("Remember network"));
--	gtk_container_add(GTK_CONTAINER(vbox), button);
--
--	gtk_widget_show_all(dialog);
--
--	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
--		const gchar *passphrase;
--		gboolean remember;
--
--		passphrase = gtk_entry_get_text(GTK_ENTRY(entry));
--		remember = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
--
--		connman_client_set_passphrase(client, path, passphrase);
--		connman_client_set_remember(client, path, remember);
--
--		status_prepare();
--		connman_client_connect(client, path);
--	}
--
--	gtk_widget_destroy(dialog);
--}
--
--static void activate_callback(GtkWidget *item, gpointer user_data)
--{
--	const gchar *path = user_data;
--	guint security;
--	gchar *passphrase;
--
--	security = connman_client_get_security(client, path);
--	if (security == CONNMAN_SECURITY_UNKNOWN)
--		return;
--
--	if (security == CONNMAN_SECURITY_NONE) {
--		status_prepare();
--		connman_client_connect(client, path);
--		return;
--	}
--
--	passphrase = connman_client_get_passphrase(client, path);
--	if (passphrase != NULL) {
--		g_free(passphrase);
--
--		status_prepare();
--		connman_client_connect(client, path);
--		return;
--	}
--
--	passphrase_dialog(path, NULL);
--}
--
--static void disconnect_callback(GtkWidget *item, gpointer user_data)
--{
--	connman_client_disconnect(client, NULL);
--}
--
--static GtkWidget *create_popupmenu(void)
--{
--	GtkWidget *menu;
--	GtkWidget *item;
--
--	menu = gtk_menu_new();
--
--	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL);
--	g_signal_connect(item, "activate", G_CALLBACK(settings_callback), NULL);
--	gtk_widget_show(item);
--	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
--
--	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL);
--	g_signal_connect(item, "activate", G_CALLBACK(about_callback), NULL);
--	gtk_widget_show(item);
--	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
--
--	return menu;
--}
--
--static GtkWidget *append_menuitem(GtkMenu *menu, const char *ssid,
--					guint security, guint strength)
--{
--	GtkWidget *item;
--	GtkWidget *hbox;
--	GtkWidget *label;
--	GtkWidget *image;
--	GtkWidget *progress;
--
--	item = gtk_check_menu_item_new();
--	gtk_check_menu_item_set_draw_as_radio(GTK_CHECK_MENU_ITEM(item), TRUE);
--
--	hbox = gtk_hbox_new(FALSE, 6);
--	gtk_container_add(GTK_CONTAINER(item), hbox);
--	gtk_widget_show(hbox);
--
--	label = gtk_label_new(NULL);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
--	gtk_label_set_text(GTK_LABEL(label), ssid);
--	gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
--	gtk_widget_show(label);
--
--	image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_AUTHENTICATION,
--							GTK_ICON_SIZE_MENU);
--	gtk_misc_set_alignment(GTK_MISC(image), 1.0, 0.5);
--	if (security != CONNMAN_SECURITY_NONE) {
--		gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
--		gtk_widget_show(image);
--	}
--
--	progress = gtk_progress_bar_new();
--	gtk_widget_set_size_request(progress, 100, -1);
--	gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress),
--						(double) strength / 100);
--	gtk_box_pack_end(GTK_BOX(hbox), progress, FALSE, TRUE, 0);
--	gtk_widget_show(progress);
--
--	gtk_widget_show(item);
--	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
--
--	return item;
--}
--
--static void enumerate_networks(GtkMenu *menu,
--				GtkTreeModel *model, GtkTreeIter *parent)
--{
--	GtkTreeIter iter;
--	gboolean cont;
--
--	cont = gtk_tree_model_iter_children(model, &iter, parent);
--
--	while (cont == TRUE) {
--		GtkWidget *item;
--		DBusGProxy *proxy;
--		guint strength, security;
--		gchar *name, *path;
--		gboolean inrange, connected;
--
--		gtk_tree_model_get(model, &iter,
--				CONNMAN_COLUMN_PROXY, &proxy,
--				CONNMAN_COLUMN_NAME, &name,
--				CONNMAN_COLUMN_INRANGE, &inrange,
--				CONNMAN_COLUMN_ENABLED, &connected,
--				CONNMAN_COLUMN_STRENGTH, &strength,
--				CONNMAN_COLUMN_SECURITY, &security, -1);
--
--		if (connected == TRUE || inrange == TRUE) {
--			item = append_menuitem(menu, name, security, strength);
--			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
--								connected);
--
--			path = g_strdup(dbus_g_proxy_get_path(proxy));
--			g_signal_connect(item, "activate",
--					G_CALLBACK(activate_callback), path);
--		}
--
--		g_free(name);
--
--		cont = gtk_tree_model_iter_next(model, &iter);
--	}
--}
--
- static gboolean menu_callback(GtkMenu *menu)
- {
--	GtkTreeModel *model;
--	GtkTreeIter parent;
- 	GtkWidget *item;
--	gboolean cont;
--
--	connman_client_propose_scan(client, NULL);
--
--	model = connman_client_get_device_network_model(client);
--
--	cont = gtk_tree_model_get_iter_first(model, &parent);
--
--	while (cont == TRUE) {
--		guint type;
--		gchar *name;
--
--		gtk_tree_model_get(model, &parent,
--					CONNMAN_COLUMN_TYPE, &type,
--					CONNMAN_COLUMN_NAME, &name, -1);
--
--		switch (type) {
--		case CONNMAN_TYPE_WIFI:
--		case CONNMAN_TYPE_WIMAX:
--			enumerate_networks(menu, model, &parent);
--			break;
--		default:
--			break;
--		}
--
--		g_free(name);
--
--		cont = gtk_tree_model_iter_next(model, &parent);
--	}
--
--	g_object_unref(model);
- 
- 	item = gtk_separator_menu_item_new();
- 	gtk_widget_show(item);
- 	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- 
--	item = gtk_menu_item_new_with_label(_("Disconnect Network"));
--	g_signal_connect(item, "activate",
--				G_CALLBACK(disconnect_callback), NULL);
-+	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL);
-+	g_signal_connect(item, "activate", G_CALLBACK(settings_callback), NULL);
- 	gtk_widget_show(item);
- 	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- 
--	item = gtk_menu_item_new_with_label(_("Join Other Network..."));
--	gtk_widget_set_sensitive(item, FALSE);
--	//g_signal_connect(item, "activate",
--	//			G_CALLBACK(join_callback), NULL);
-+	item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL);
-+	g_signal_connect(item, "activate", G_CALLBACK(about_callback), NULL);
- 	gtk_widget_show(item);
- 	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- 
-@@ -387,16 +129,17 @@ static void update_status(GtkTreeModel *model)
- 	cont = gtk_tree_model_get_iter_first(model, &iter);
- 
- 	while (cont == TRUE) {
--		gboolean enabled;
-+		gchar *state;
- 
- 		gtk_tree_model_get(model, &iter,
- 					CONNMAN_COLUMN_TYPE, &type,
- 					CONNMAN_COLUMN_STRENGTH, &strength,
--					CONNMAN_COLUMN_ENABLED, &enabled, -1);
-+					CONNMAN_COLUMN_STATE, &state, -1);
- 
- 		online = TRUE;
- 
--		if (enabled == TRUE)
-+		if ((type == CONNMAN_TYPE_ETHERNET && (g_str_equal(state, "idle") || g_str_equal(state, "online")))  ||
-+		    (type == CONNMAN_TYPE_WIFI && (g_str_equal(state, "ready") || g_str_equal(state, "online"))))
- 			break;
- 
- 		cont = gtk_tree_model_iter_next(model, &iter);
-@@ -453,7 +196,7 @@ int main(int argc, char *argv[])
- 
- 	g_set_application_name(_("Connection Manager"));
- 
--	status_init(menu_callback, create_popupmenu());
-+	status_init(menu_callback);
- 
- 	client = connman_client_new();
- 	model = connman_client_get_connection_model(client);
-diff --git a/applet/status.c b/applet/status.c
-index ef11bcc..13ec752 100644
---- a/applet/status.c
-+++ b/applet/status.c
-@@ -170,19 +170,6 @@ static void activate_callback(GObject *object, gpointer user_data)
- 			GTK_STATUS_ICON(object), 1, activate_time);
- }
- 
--static void popup_callback(GObject *object, guint button,
--				guint activate_time, gpointer user_data)
--{
--	GtkMenu *menu = user_data;
--
--	if (menu == NULL)
--		return;
--
--	gtk_menu_popup(menu, NULL, NULL,
--			gtk_status_icon_position_menu,
--			GTK_STATUS_ICON(object), button, activate_time);
--}
--
- static GtkIconTheme *icontheme;
- static IconAnimation *animation;
- static GdkPixbuf *pixbuf_notifier;
-@@ -190,7 +177,7 @@ static GdkPixbuf *pixbuf_none;
- static GdkPixbuf *pixbuf_wired;
- static GdkPixbuf *pixbuf_signal[5];
- 
--int status_init(StatusCallback activate, GtkWidget *popup)
-+int status_init(StatusCallback activate)
- {
- 	GdkScreen *screen;
- 
-@@ -219,9 +206,6 @@ int status_init(StatusCallback activate, GtkWidget *popup)
- 	g_signal_connect(statusicon, "activate",
- 				G_CALLBACK(activate_callback), activate);
- 
--	g_signal_connect(statusicon, "popup-menu",
--				G_CALLBACK(popup_callback), popup);
--
- 	return 0;
- }
- 
-@@ -292,8 +276,6 @@ void status_config(void)
- 
- static void set_ready(gint signal)
- {
--	int index;
--
- 	available = TRUE;
- 
- 	if (signal < 0) {
-@@ -302,12 +284,7 @@ static void set_ready(gint signal)
- 		return;
- 	}
- 
--	if (signal == 0)
--		index = 0;
--	else
--		index = 3;
--
--	gtk_status_icon_set_from_pixbuf(statusicon, pixbuf_signal[index]);
-+	gtk_status_icon_set_from_pixbuf(statusicon, pixbuf_signal[4]);
- 	gtk_status_icon_set_tooltip(statusicon, NULL);
- }
- 
-diff --git a/applet/status.h b/applet/status.h
-index 772a7b2..8a3c83c 100644
---- a/applet/status.h
-+++ b/applet/status.h
-@@ -21,7 +21,7 @@
- 
- typedef gboolean (* StatusCallback) (GtkMenu *menu);
- 
--int status_init(StatusCallback activate, GtkWidget *popup);
-+int status_init(StatusCallback activate);
- void status_cleanup(void);
- 
- void status_unavailable(void);
-diff --git a/common/Makefile.am b/common/Makefile.am
-index ff3a996..8d74a46 100644
---- a/common/Makefile.am
-+++ b/common/Makefile.am
-@@ -5,13 +5,6 @@ libcommon_a_SOURCES = connman-dbus.c connman-dbus.h \
- 				connman-client.h connman-client.c \
- 							instance.h instance.c
- 
--noinst_PROGRAMS = connman-demo test-client
--
--connman_demo_SOURCES = demo.c
--connman_demo_LDADD = libcommon.a @GTK_LIBS@ @DBUS_LIBS@
--
--test_client_LDADD = libcommon.a @GTK_LIBS@ @DBUS_LIBS@
--
- BUILT_SOURCES = marshal.h marshal.c \
- 			connman-dbus-glue.h \
- 				instance-glue.h
-diff --git a/common/connman-client.c b/common/connman-client.c
-index aad0a22..4f9cf64 100644
---- a/common/connman-client.c
-+++ b/common/connman-client.c
-@@ -98,13 +98,13 @@ static void connman_client_init(ConnmanClient *client)
- 
- 	priv->store = gtk_tree_store_new(_CONNMAN_NUM_COLUMNS, G_TYPE_OBJECT,
- 			G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT,
--			G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
--			G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING,
--			G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT,
--							G_TYPE_STRING);
-+			G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING,
-+			G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
-+			G_TYPE_STRING, G_TYPE_STRING,
-+			G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
- 
- 	g_object_set_data(G_OBJECT(priv->store),
--					"State", g_strdup("unavailable"));
-+			"State", g_strdup("unavailable"));
- 
- 	priv->dbus = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS,
- 				DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
-@@ -191,13 +191,23 @@ static gboolean device_filter(GtkTreeModel *model,
- {
- 	DBusGProxy *proxy;
- 	gboolean active;
-+	guint type;
- 
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy, -1);
-+	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy,
-+					CONNMAN_COLUMN_TYPE, &type,
-+					-1);
-+
-+	switch (type) {
-+	case CONNMAN_TYPE_LABEL_ETHERNET:
-+	case CONNMAN_TYPE_LABEL_WIFI:
-+	case CONNMAN_TYPE_SYSCONFIG:
-+		return TRUE;
-+	}
- 
- 	if (proxy == NULL)
- 		return FALSE;
- 
--	active = g_str_equal(CONNMAN_DEVICE_INTERFACE,
-+	active = g_str_equal(CONNMAN_SERVICE_INTERFACE,
- 					dbus_g_proxy_get_interface(proxy));
- 
- 	g_object_unref(proxy);
-@@ -231,10 +241,10 @@ static gboolean device_network_filter(GtkTreeModel *model,
- 	if (proxy == NULL)
- 		return FALSE;
- 
--	active = g_str_equal(CONNMAN_DEVICE_INTERFACE,
-+	active = g_str_equal(CONNMAN_SERVICE_INTERFACE,
- 					dbus_g_proxy_get_interface(proxy));
- 	if (active == FALSE)
--		active = g_str_equal(CONNMAN_NETWORK_INTERFACE,
-+		active = g_str_equal(CONNMAN_SERVICE_INTERFACE,
- 					dbus_g_proxy_get_interface(proxy));
- 
- 	g_object_unref(proxy);
-@@ -277,7 +287,7 @@ GtkTreeModel *connman_client_get_network_model(ConnmanClient *client,
- 		gtk_tree_model_get(GTK_TREE_MODEL(priv->store), &iter,
- 					CONNMAN_COLUMN_PROXY, &proxy, -1);
- 
--		if (g_str_equal(CONNMAN_DEVICE_INTERFACE,
-+		if (g_str_equal(CONNMAN_SERVICE_INTERFACE,
- 				dbus_g_proxy_get_interface(proxy)) == TRUE)
- 			found = g_str_has_prefix(dbus_g_proxy_get_path(proxy),
- 									device);
-@@ -314,7 +324,7 @@ static gboolean connection_filter(GtkTreeModel *model,
- 	if (proxy == NULL)
- 		return FALSE;
- 
--	active = g_str_equal(CONNMAN_CONNECTION_INTERFACE,
-+	active = g_str_equal(CONNMAN_SERVICE_INTERFACE,
- 					dbus_g_proxy_get_interface(proxy));
- 
- 	g_object_unref(proxy);
-@@ -337,28 +347,37 @@ GtkTreeModel *connman_client_get_connection_model(ConnmanClient *client)
- 	return model;
- }
- 
--void connman_client_set_policy(ConnmanClient *client, const gchar *device,
--							const gchar *policy)
-+gboolean connman_client_set_ipv4(ConnmanClient *client, const gchar *device,
-+			     struct ipv4_config *ipv4_config)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
- 	DBusGProxy *proxy;
- 	GValue value = { 0 };
-+	gboolean ret;
-+	GHashTable *ipv4 = g_hash_table_new(g_str_hash, g_str_equal);
-+
-+	g_hash_table_insert(ipv4, "Method",  (gpointer)ipv4_config->method);
-+	g_hash_table_insert(ipv4, "Address", (gpointer)ipv4_config->address);
-+	g_hash_table_insert(ipv4, "Netmask", (gpointer)ipv4_config->netmask);
-+	g_hash_table_insert(ipv4, "Gateway", (gpointer)ipv4_config->gateway);
- 
- 	DBG("client %p", client);
- 
- 	if (device == NULL)
--		return;
-+		return FALSE;
- 
- 	proxy = connman_dbus_get_proxy(priv->store, device);
- 	if (proxy == NULL)
--		return;
-+		return FALSE;
- 
--	g_value_init(&value, G_TYPE_STRING);
--	g_value_set_string(&value, policy);
-+	g_value_init(&value, DBUS_TYPE_G_STRING_STRING_HASHTABLE);
-+	g_value_set_boxed(&value, ipv4);
- 
--	connman_set_property(proxy, "Policy", &value, NULL);
-+	ret = connman_set_property(proxy, "IPv4.Configuration", &value, NULL);
- 
- 	g_object_unref(proxy);
-+
-+	return ret;
- }
- 
- void connman_client_set_powered(ConnmanClient *client, const gchar *device,
-@@ -385,98 +404,128 @@ void connman_client_set_powered(ConnmanClient *client, const gchar *device,
- 	g_object_unref(proxy);
- }
- 
--static gboolean device_scan(GtkTreeModel *model, GtkTreePath *path,
--					GtkTreeIter *iter, gpointer user_data)
-+void connman_client_request_scan(ConnmanClient *client, char *scantype,
-+				connman_request_scan_reply callback, gpointer userdata)
- {
--	DBusGProxy *proxy;
--	gboolean enabled;
-+	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
- 
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy,
--					CONNMAN_COLUMN_ENABLED, &enabled, -1);
-+	DBG("client %p", client);
- 
--	if (proxy == NULL)
--		return FALSE;
-+	connman_request_scan_async(priv->manager, scantype, callback, userdata);
-+}
- 
--	if (g_str_equal(dbus_g_proxy_get_interface(proxy),
--					CONNMAN_DEVICE_INTERFACE) == FALSE)
--		return FALSE;
-+gboolean connman_client_get_offline_status(ConnmanClient *client)
-+{
-+	GHashTable *hash;
-+	GValue *value;
-+	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
-+	gboolean ret;
- 
--	if (enabled == FALSE)
--		return FALSE;
-+	DBG("client %p", client);
- 
--	connman_propose_scan(proxy, NULL);
-+	ret = connman_get_properties(priv->manager, &hash, NULL);
- 
--	g_object_unref(proxy);
-+	if (ret == FALSE)
-+		goto done;
-+
-+	value = g_hash_table_lookup(hash, "OfflineMode");
-+	ret = value ? g_value_get_boolean(value) : FALSE;
-+
-+done:
-+	return ret;
- 
--	return FALSE;
- }
- 
--void connman_client_propose_scan(ConnmanClient *client, const gchar *device)
-+void connman_client_set_offlinemode(ConnmanClient *client, gboolean status)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
--	DBusGProxy *proxy;
-+	GValue value = { 0 };
- 
- 	DBG("client %p", client);
- 
--	if (device == NULL) {
--		gtk_tree_model_foreach(GTK_TREE_MODEL(priv->store),
--							device_scan, NULL);
--		return;
--	}
--
--	proxy = connman_dbus_get_proxy(priv->store, device);
--	if (proxy == NULL)
--		return;
--
--	connman_propose_scan(proxy, NULL);
-+	g_value_init(&value, G_TYPE_BOOLEAN);
-+	g_value_set_boolean(&value, status);
- 
--	g_object_unref(proxy);
-+	connman_set_property(priv->manager, "OfflineMode", &value, NULL);
- }
- 
- static gboolean network_disconnect(GtkTreeModel *model, GtkTreePath *path,
- 					GtkTreeIter *iter, gpointer user_data)
- {
- 	DBusGProxy *proxy;
--	gboolean enabled;
-+	char *name;
-+	guint type;
- 
- 	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy,
--					CONNMAN_COLUMN_ENABLED, &enabled, -1);
-+					CONNMAN_COLUMN_NAME, &name,
-+					CONNMAN_COLUMN_TYPE, &type,
-+					-1);
- 
- 	if (proxy == NULL)
--		return FALSE;
-+		return TRUE;
- 
- 	if (g_str_equal(dbus_g_proxy_get_interface(proxy),
--					CONNMAN_NETWORK_INTERFACE) == FALSE)
--		return FALSE;
-+					CONNMAN_SERVICE_INTERFACE) == FALSE)
-+		return TRUE;
- 
--	if (enabled == TRUE)
-+	if (type == CONNMAN_TYPE_WIFI)
- 		connman_disconnect(proxy, NULL);
- 
- 	g_object_unref(proxy);
- 
--	return enabled;
-+	return FALSE;
- }
- 
--void connman_client_connect(ConnmanClient *client, const gchar *network)
-+gboolean connman_client_connect(ConnmanClient *client, const gchar *network)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
- 	DBusGProxy *proxy;
-+	gboolean ret = FALSE;
- 
- 	DBG("client %p", client);
-+	DBG("network %s", network);
- 
- 	if (network == NULL)
--		return;
-+		goto done;
- 
- 	gtk_tree_model_foreach(GTK_TREE_MODEL(priv->store),
- 						network_disconnect, NULL);
- 
- 	proxy = connman_dbus_get_proxy(priv->store, network);
- 	if (proxy == NULL)
--		return;
-+		goto done;
- 
--	connman_connect(proxy, NULL);
-+	ret = connman_connect(proxy, NULL);
- 
- 	g_object_unref(proxy);
-+
-+done:
-+	return ret;
-+}
-+
-+void connman_client_connect_async(ConnmanClient *client, const gchar *network,
-+				  connman_connect_reply callback, gpointer userdata)
-+{
-+        ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
-+        DBusGProxy *proxy;
-+
-+        DBG("client %p", client);
-+        DBG("network %s", network);
-+
-+        if (network == NULL)
-+                goto done;
-+
-+        gtk_tree_model_foreach(GTK_TREE_MODEL(priv->store),
-+                                                network_disconnect, NULL);
-+
-+        proxy = connman_dbus_get_proxy(priv->store, network);
-+        if (proxy == NULL)
-+                goto done;
-+ 
-+	connman_connect_async(proxy, callback, userdata);
-+
-+done:
-+	return;
- }
- 
- static void connman_client_disconnect_all(ConnmanClient *client)
-@@ -487,32 +536,37 @@ static void connman_client_disconnect_all(ConnmanClient *client)
- 						network_disconnect, NULL);
- }
- 
--void connman_client_disconnect(ConnmanClient *client, const gchar *network)
-+gboolean connman_client_disconnect(ConnmanClient *client, const gchar *network)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
- 	DBusGProxy *proxy;
-+	gboolean ret = FALSE;
- 
- 	DBG("client %p", client);
- 
- 	if (network == NULL) {
-+		ret = TRUE;
- 		connman_client_disconnect_all(client);
--		return;
-+		goto done;
- 	}
- 
- 	proxy = connman_dbus_get_proxy(priv->store, network);
- 	if (proxy == NULL)
--		return;
-+		goto done;
- 
--	connman_disconnect(proxy, NULL);
-+	ret = connman_disconnect(proxy, NULL);
- 
- 	g_object_unref(proxy);
-+
-+done:
-+	return ret;
- }
- 
--guint connman_client_get_security(ConnmanClient *client, const gchar *network)
-+gchar *connman_client_get_security(ConnmanClient *client, const gchar *network)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
- 	GtkTreeIter iter;
--	guint security;
-+	gchar *security;
- 
- 	DBG("client %p", client);
- 
-@@ -548,41 +602,60 @@ gchar *connman_client_get_passphrase(ConnmanClient *client, const gchar *network
- 	return passphrase;
- }
- 
--void connman_client_set_passphrase(ConnmanClient *client, const gchar *network,
-+gboolean connman_client_set_passphrase(ConnmanClient *client, const gchar *network,
- 						const gchar *passphrase)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
- 	DBusGProxy *proxy;
- 	GValue value = { 0 };
-+	gboolean ret = FALSE;
- 
- 	DBG("client %p", client);
-+	DBG("network %p", network);
- 
- 	if (network == NULL)
--		return;
-+		goto done;
- 
- 	proxy = connman_dbus_get_proxy(priv->store, network);
- 	if (proxy == NULL)
--		return;
-+		goto done;
- 
- 	g_value_init(&value, G_TYPE_STRING);
- 	g_value_set_string(&value, passphrase);
- 
--	connman_set_property(proxy, "WiFi.Passphrase", &value, NULL);
-+	ret = connman_set_property(proxy, "Passphrase", &value, NULL);
- 
- 	g_value_unset(&value);
- 
- 	g_object_unref(proxy);
-+done:
-+	return ret;
- }
- 
--void connman_client_set_remember(ConnmanClient *client, const gchar *network,
--							gboolean remember)
-+void connman_client_set_callback(ConnmanClient *client,
-+			ConnmanClientCallback callback, gpointer user_data)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
--	DBusGProxy *proxy;
--	GValue value = { 0 };
-+	gchar *state;
- 
- 	DBG("client %p", client);
- 
-+	priv->callback = callback;
-+	priv->userdata = user_data;
-+
-+	g_object_set_data(G_OBJECT(priv->store), "callback", callback);
-+	g_object_set_data(G_OBJECT(priv->store), "userdata", user_data);
-+
-+	state = g_object_get_data(G_OBJECT(priv->store), "State");
-+	if (state != NULL && priv->callback != NULL)
-+		priv->callback(state, priv->userdata);
-+}
-+
-+void connman_client_remove(ConnmanClient *client, const gchar *network)
-+{
-+	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
-+	DBusGProxy *proxy;
-+
- 	if (network == NULL)
- 		return;
- 
-@@ -590,31 +663,46 @@ void connman_client_set_remember(ConnmanClient *client, const gchar *network,
- 	if (proxy == NULL)
- 		return;
- 
--	g_value_init(&value, G_TYPE_BOOLEAN);
--	g_value_set_boolean(&value, remember);
-+	connman_remove(proxy, NULL);
-+
-+	g_object_unref(proxy);
-+}
-+
-+void connman_client_enable_technology(ConnmanClient *client, const char *network,
-+				      const gchar *technology)
-+{
-+	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
-+	DBusGProxy *proxy;
-+	int ret;
- 
--	connman_set_property(proxy, "Remember", &value, NULL);
-+	if (network== NULL)
-+		return;
- 
--	g_value_unset(&value);
-+	proxy = connman_dbus_get_proxy(priv->store, network);
-+	if (proxy == NULL)
-+		return;
-+
-+	ret = connman_enable_technology(proxy, technology, NULL);
- 
- 	g_object_unref(proxy);
- }
- 
--void connman_client_set_callback(ConnmanClient *client,
--			ConnmanClientCallback callback, gpointer user_data)
-+void connman_client_disable_technology(ConnmanClient *client, const char *network,
-+				      const gchar *technology)
- {
- 	ConnmanClientPrivate *priv = CONNMAN_CLIENT_GET_PRIVATE(client);
--	gchar *state;
-+	DBusGProxy *proxy;
-+	int ret;
- 
--	DBG("client %p", client);
- 
--	priv->callback = callback;
--	priv->userdata = user_data;
-+	if (network == NULL)
-+		return;
- 
--	g_object_set_data(G_OBJECT(priv->store), "callback", callback);
--	g_object_set_data(G_OBJECT(priv->store), "userdata", user_data);
-+	proxy = connman_dbus_get_proxy(priv->store, network);
-+	if (proxy == NULL)
-+		return;
- 
--	state = g_object_get_data(G_OBJECT(priv->store), "State");
--	if (state != NULL && priv->callback != NULL)
--		priv->callback(state, priv->userdata);
-+	ret = connman_disable_technology(proxy, technology, NULL);
-+
-+	g_object_unref(proxy);
- }
-diff --git a/common/connman-client.h b/common/connman-client.h
-index f30dae4..00c328a 100644
---- a/common/connman-client.h
-+++ b/common/connman-client.h
-@@ -23,6 +23,7 @@
- #define __CONNMAN_CLIENT_H
- 
- #include <gtk/gtk.h>
-+#include "connman-dbus-glue.h"
- 
- G_BEGIN_DECLS
- 
-@@ -49,6 +50,13 @@ struct _ConnmanClientClass {
- 	GObjectClass parent_class;
- };
- 
-+struct ipv4_config {
-+	const gchar *method;
-+	const gchar *address;
-+	const gchar *netmask;
-+	const gchar *gateway;
-+};
-+
- GType connman_client_get_type(void);
- 
- ConnmanClient *connman_client_new(void);
-@@ -60,18 +68,20 @@ GtkTreeModel *connman_client_get_network_model(ConnmanClient *client,
- 							const gchar *device);
- GtkTreeModel *connman_client_get_connection_model(ConnmanClient *client);
- 
--void connman_client_set_policy(ConnmanClient *client, const gchar *device,
--							const gchar *policy);
- void connman_client_set_powered(ConnmanClient *client, const gchar *device,
- 							gboolean powered);
- void connman_client_propose_scan(ConnmanClient *client, const gchar *device);
- 
--void connman_client_connect(ConnmanClient *client, const gchar *network);
--void connman_client_disconnect(ConnmanClient *client, const gchar *network);
-+gboolean connman_client_connect(ConnmanClient *client, const gchar *network);
-+
-+void connman_client_connect_async(ConnmanClient *client, const gchar *network,
-+				  connman_connect_reply callback, gpointer userdata);
- 
--guint connman_client_get_security(ConnmanClient *client, const gchar *network);
-+gboolean connman_client_disconnect(ConnmanClient *client, const gchar *network);
-+
-+gchar *connman_client_get_security(ConnmanClient *client, const gchar *network);
- gchar *connman_client_get_passphrase(ConnmanClient *client, const gchar *network);
--void connman_client_set_passphrase(ConnmanClient *client, const gchar *network,
-+gboolean connman_client_set_passphrase(ConnmanClient *client, const gchar *network,
- 						const gchar *passphrase);
- void connman_client_set_remember(ConnmanClient *client, const gchar *network,
- 							gboolean remember);
-@@ -81,37 +91,63 @@ typedef void (* ConnmanClientCallback) (const char *status, void *user_data);
- void connman_client_set_callback(ConnmanClient *client,
- 			ConnmanClientCallback callback, gpointer user_data);
- 
-+gboolean connman_client_set_ipv4(ConnmanClient *client, const gchar *device,
-+			     struct ipv4_config *ipv4_config);
-+
-+gboolean connman_dbus_get_iter(GtkTreeStore *store, const gchar *path,
-+							GtkTreeIter *iter);
-+void connman_client_remove(ConnmanClient *client, const gchar *network);
-+
-+void connman_client_request_scan(ConnmanClient *client, char *scantype, 
-+				connman_request_scan_reply callback, gpointer userdata);
-+gboolean connman_client_get_offline_status(ConnmanClient *client);
-+void connman_client_set_offlinemode(ConnmanClient *client, gboolean status);
-+
-+void connman_client_enable_technology(ConnmanClient *client, const char *network,
-+				      const gchar *technology);
-+void connman_client_disable_technology(ConnmanClient *client, const char *network,
-+				      const gchar *technology);
- enum {
- 	CONNMAN_COLUMN_PROXY,		/* G_TYPE_OBJECT  */
-+	CONNMAN_COLUMN_STATE,		/* G_TYPE_STRING  */
- 	CONNMAN_COLUMN_NAME,		/* G_TYPE_STRING  */
--	CONNMAN_COLUMN_ICON,		/* G_TYPE_STRING  */
- 	CONNMAN_COLUMN_TYPE,		/* G_TYPE_UINT    */
--	CONNMAN_COLUMN_ENABLED,		/* G_TYPE_BOOLEAN */
--	CONNMAN_COLUMN_INRANGE,		/* G_TYPE_BOOLEAN */
--	CONNMAN_COLUMN_REMEMBER,	/* G_TYPE_BOOLEAN */
-+	CONNMAN_COLUMN_ICON,		/* G_TYPE_STRING  */
- 	CONNMAN_COLUMN_STRENGTH,	/* G_TYPE_UINT    */
--	CONNMAN_COLUMN_SECURITY,	/* G_TYPE_UINT    */
-+	CONNMAN_COLUMN_SECURITY,	/* G_TYPE_STRING  */
- 	CONNMAN_COLUMN_PASSPHRASE,	/* G_TYPE_STRING  */
--	CONNMAN_COLUMN_NETWORK,
--	CONNMAN_COLUMN_ADDRESS,
--	CONNMAN_COLUMN_POLICY,
--	CONNMAN_COLUMN_DEVICE,
--	_CONNMAN_NUM_COLUMNS
-+
-+	CONNMAN_COLUMN_METHOD,		/* G_TYPE_STRING */
-+	CONNMAN_COLUMN_ADDRESS,		/* G_TYPE_STRING */
-+	CONNMAN_COLUMN_NETMASK,		/* G_TYPE_STRING */
-+	CONNMAN_COLUMN_GATEWAY,		/* G_TYPE_STRING */
-+
-+	CONNMAN_COLUMN_ETHERNET_ENABLED,	/* G_TYPE_BOOLEAN */
-+	CONNMAN_COLUMN_WIFI_ENABLED,		/* G_TYPE_BOOLEAN */
-+
-+	CONNMAN_COLUMN_OFFLINEMODE,		/* G_TYPE_BOOLEAN */
-+
-+	_CONNMAN_NUM_COLUMNS,
-+
- };
- 
- enum {
- 	CONNMAN_TYPE_UNKNOWN,
-+
- 	CONNMAN_TYPE_ETHERNET,
- 	CONNMAN_TYPE_WIFI,
- 	CONNMAN_TYPE_WIMAX,
- 	CONNMAN_TYPE_BLUETOOTH,
-+
-+	CONNMAN_TYPE_LABEL_ETHERNET,
-+	CONNMAN_TYPE_LABEL_WIFI,
-+
-+	CONNMAN_TYPE_SYSCONFIG,
-+	_CONNMAN_NUM_TYPE,
- };
- 
- enum {
--	CONNMAN_POLICY_UNKNOWN,
--	CONNMAN_POLICY_IGNORE,
--	CONNMAN_POLICY_OFF,
--	CONNMAN_POLICY_AUTO,
-+	CONNMAN_POLICY_DHCP,
- 	CONNMAN_POLICY_MANUAL,
- };
- 
-diff --git a/common/connman-dbus.c b/common/connman-dbus.c
-index 9eba7ae..bf1778f 100644
---- a/common/connman-dbus.c
-+++ b/common/connman-dbus.c
-@@ -137,6 +137,27 @@ DBusGProxy *connman_dbus_get_proxy(GtkTreeStore *store, const gchar *path)
- 	return proxy;
- }
- 
-+static gboolean compare_type(GtkTreeStore *store, GtkTreeIter *iter,
-+						gconstpointer user_data)
-+{
-+	guint type_target = GPOINTER_TO_UINT(user_data);
-+	guint type;
-+	gboolean found = FALSE;
-+
-+	gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
-+					CONNMAN_COLUMN_TYPE, &type, -1);
-+
-+	if (type != CONNMAN_TYPE_UNKNOWN)
-+		found = (type == type_target);
-+
-+	return found;
-+}
-+
-+static gboolean get_iter_from_type(GtkTreeStore *store, GtkTreeIter *iter, guint type)
-+{
-+	return iter_search(store, iter, NULL, compare_type, GUINT_TO_POINTER(type));
-+}
-+
- gboolean connman_dbus_get_iter(GtkTreeStore *store, const gchar *path,
- 							GtkTreeIter *iter)
- {
-@@ -167,12 +188,7 @@ static void property_update(GtkTreeStore *store, const GValue *value,
- 
- 	DBG("store %p key %s", store, key);
- 
--	if (g_str_equal(key, "Connections") == TRUE)
--		iface = CONNMAN_CONNECTION_INTERFACE;
--	else if (g_str_equal(key, "Devices") == TRUE)
--		iface = CONNMAN_DEVICE_INTERFACE;
--	else
--		iface = CONNMAN_NETWORK_INTERFACE;
-+	iface = CONNMAN_SERVICE_INTERFACE;
- 
- 	old_list = g_object_get_data(G_OBJECT(store), key);
- 
-@@ -205,25 +221,12 @@ static void property_update(GtkTreeStore *store, const GValue *value,
- 	for (list = old_list; list; list = list->next) {
- 		gchar *path = list->data;
- 		GtkTreeIter iter;
--		gchar *device = NULL;
- 
- 		DBG("old path %s", path);
- 
--		if (get_iter_from_path(store, &iter, path) == TRUE) {
--			if (g_str_equal(key, "Connections") == TRUE)
--				gtk_tree_model_get(GTK_TREE_MODEL(store), &iter,
--					CONNMAN_COLUMN_DEVICE, &device, -1);
--
-+		if (get_iter_from_path(store, &iter, path) == TRUE)
- 			gtk_tree_store_remove(store, &iter);
--		}
- 
--		if (get_iter_from_path(store, &iter, device) == TRUE) {
--			gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_INRANGE, FALSE,
--					CONNMAN_COLUMN_ADDRESS, NULL, -1);
--		}
--
--		g_free(device);
- 		g_free(path);
- 	}
- 
-@@ -263,155 +266,115 @@ static const gchar *type2icon(guint type)
- 	return NULL;
- }
- 
--static guint get_policy(const GValue *value)
--{
--	const char *policy = value ? g_value_get_string(value) : NULL;
--
--	if (policy == NULL)
--		return CONNMAN_POLICY_UNKNOWN;
--	else if (g_str_equal(policy, "ignore") == TRUE)
--		return CONNMAN_POLICY_IGNORE;
--	else if (g_str_equal(policy, "off") == TRUE)
--		return CONNMAN_POLICY_OFF;
--	else if (g_str_equal(policy, "auto") == TRUE)
--		return CONNMAN_POLICY_AUTO;
--	else if (g_str_equal(policy, "manual") == TRUE)
--		return CONNMAN_POLICY_MANUAL;
--
--	return CONNMAN_POLICY_UNKNOWN;
--}
--
--static guint get_security(const GValue *value)
--{
--	const char *security = value ? g_value_get_string(value) : NULL;
--
--	if (security == NULL)
--		return CONNMAN_SECURITY_UNKNOWN;
--	else if (g_str_equal(security, "none") == TRUE)
--		return CONNMAN_SECURITY_NONE;
--	else if (g_str_equal(security, "wep") == TRUE)
--		return CONNMAN_SECURITY_WEP;
--	else if (g_str_equal(security, "wpa") == TRUE)
--		return CONNMAN_SECURITY_WPA;
--	else if (g_str_equal(security, "wpa2") == TRUE)
--		return CONNMAN_SECURITY_WPA2;
--
--	return CONNMAN_SECURITY_UNKNOWN;
--}
--
--static void network_changed(DBusGProxy *proxy, const char *property,
--					GValue *value, gpointer user_data)
-+static void enabled_technologies_changed(GtkTreeStore *store, GValue *value)
- {
--	GtkTreeStore *store = user_data;
--	const char *path = dbus_g_proxy_get_path(proxy);
- 	GtkTreeIter iter;
-+	gboolean ethernet_enabled_prev, ethernet_enabled = FALSE;
-+	gboolean wifi_enabled_prev, wifi_enabled = FALSE;
-+	gchar **tech = g_value_get_boxed (value);
-+	gint i;
-+	gboolean ret;
- 
--	DBG("store %p proxy %p property %s", store, proxy, property);
--
--	if (property == NULL || value == NULL)
-+	if (value == NULL)
- 		return;
- 
--	if (get_iter_from_path(store, &iter, path) == FALSE)
--		return;
-+	for (i = 0; i < g_strv_length (tech); i++)
-+	{
-+		if (g_str_equal("ethernet", *(tech + i)))
-+			ethernet_enabled = TRUE;
-+		else if (g_str_equal ("wifi", *(tech + i)))
-+			wifi_enabled = TRUE;
-+	}
- 
--	if (g_str_equal(property, "Connected") == TRUE) {
--		gboolean connected = g_value_get_boolean(value);
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_ENABLED, connected, -1);
--	} else if (g_str_equal(property, "Available") == TRUE) {
--		gboolean inrange = g_value_get_boolean(value);
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_INRANGE, inrange, -1);
--	} else if (g_str_equal(property, "Remember") == TRUE) {
--		gboolean remember = g_value_get_boolean(value);
-+	get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET);
-+	gtk_tree_model_get(GTK_TREE_MODEL(store), &iter,
-+			CONNMAN_COLUMN_ETHERNET_ENABLED, &ethernet_enabled_prev, -1);
-+	if (ethernet_enabled_prev != ethernet_enabled)
- 		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_REMEMBER, remember, -1);
--	} else if (g_str_equal(property, "Strength") == TRUE) {
--		guint strength = g_value_get_uchar(value);
-+				CONNMAN_COLUMN_ETHERNET_ENABLED, ethernet_enabled, -1);
-+
-+	ret = get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_WIFI);
-+	gtk_tree_model_get(GTK_TREE_MODEL(store), &iter,
-+			CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled_prev, -1);
-+	if (wifi_enabled_prev != wifi_enabled)
- 		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_STRENGTH, strength, -1);
--	}
-+				CONNMAN_COLUMN_WIFI_ENABLED, wifi_enabled, -1);
- }
- 
--static void network_properties(DBusGProxy *proxy, GHashTable *hash,
--					GError *error, gpointer user_data)
-+static void enabled_technologies_properties(GtkTreeStore *store, DBusGProxy *proxy, GValue *value)
- {
--	GtkTreeStore *store = user_data;
--	GValue *value;
--	const gchar *device, *name, *secret;
--	gboolean connected, inrange, remember;
--	guint strength, security;
--	GtkTreeIter iter, parent;
--
--	DBG("store %p proxy %p hash %p", store, proxy, hash);
--
--	if (error != NULL || hash == NULL)
--		goto done;
--
--	value = g_hash_table_lookup(hash, "Device");
--	device = value ? g_value_get_boxed(value) : NULL;
--
--	value = g_hash_table_lookup(hash, "Name");
--	name = value ? g_value_get_string(value) : NULL;
--
--	value = g_hash_table_lookup(hash, "Connected");
--	connected = value ? g_value_get_boolean(value) : FALSE;
--
--	value = g_hash_table_lookup(hash, "Available");
--	inrange = value ? g_value_get_boolean(value) : FALSE;
-+	GtkTreeIter iter;
-+	gboolean ethernet_enabled = FALSE;
-+	gboolean wifi_enabled = FALSE;
-+	gchar **tech = g_value_get_boxed (value);
-+	gint i;
-+
-+	for (i = 0; i < g_strv_length (tech); i++)
-+	{
-+		if (g_str_equal("ethernet", *(tech + i)))
-+			ethernet_enabled = TRUE;
-+		else if (g_str_equal ("wifi", *(tech + i)))
-+			wifi_enabled = TRUE;
-+	}
- 
--	value = g_hash_table_lookup(hash, "Remember");
--	remember = value ? g_value_get_boolean(value) : FALSE;
-+	if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_ETHERNET) == FALSE)
-+		gtk_tree_store_append(store, &iter, NULL);
- 
--	value = g_hash_table_lookup(hash, "Strength");
--	strength = value ? g_value_get_uchar(value) : 0;
-+	gtk_tree_store_set(store, &iter,
-+			CONNMAN_COLUMN_PROXY, proxy,
-+			CONNMAN_COLUMN_ETHERNET_ENABLED, ethernet_enabled,
-+			CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_ETHERNET,
-+			-1);
- 
--	value = g_hash_table_lookup(hash, "WiFi.Security");
--	security = get_security(value);
-+	if (get_iter_from_type(store, &iter, CONNMAN_TYPE_LABEL_WIFI) == FALSE)
-+		gtk_tree_store_append(store, &iter, NULL);
- 
--	value = g_hash_table_lookup(hash, "WiFi.Passphrase");
--	secret = value ? g_value_get_string(value) : NULL;
-+	gtk_tree_store_set(store, &iter,
-+			CONNMAN_COLUMN_PROXY, proxy,
-+			CONNMAN_COLUMN_WIFI_ENABLED, wifi_enabled,
-+			CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_LABEL_WIFI,
-+			-1);
-+}
- 
--	DBG("name %s strength %d", name, strength);
-+static void offline_mode_changed(GtkTreeStore *store, GValue *value)
-+{
-+	GtkTreeIter iter;
-+	gboolean offline_mode = g_value_get_boolean(value);
- 
--	if (get_iter_from_path(store, &parent, device) == FALSE)
--		return;
-+	get_iter_from_type(store, &iter, CONNMAN_TYPE_SYSCONFIG);
-+	gtk_tree_store_set(store, &iter,
-+			CONNMAN_COLUMN_OFFLINEMODE, offline_mode,
-+			-1);
-+}
- 
--	if (get_iter_from_proxy(store, &iter, proxy) == FALSE) {
--		gtk_tree_store_insert_with_values(store, &iter, &parent, -1,
--					CONNMAN_COLUMN_PROXY, proxy,
--					CONNMAN_COLUMN_NAME, name,
--					CONNMAN_COLUMN_ENABLED, connected,
--					CONNMAN_COLUMN_INRANGE, inrange,
--					CONNMAN_COLUMN_REMEMBER, remember,
--					CONNMAN_COLUMN_STRENGTH, strength,
--					CONNMAN_COLUMN_SECURITY, security,
--					CONNMAN_COLUMN_PASSPHRASE, secret, -1);
-+static void offline_mode_properties(GtkTreeStore *store, DBusGProxy *proxy, GValue *value)
-+{
-+	GtkTreeIter iter;
-+	gboolean offline_mode = g_value_get_boolean(value);
- 
--		dbus_g_proxy_add_signal(proxy, "PropertyChanged",
--				G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
--		dbus_g_proxy_connect_signal(proxy, "PropertyChanged",
--				G_CALLBACK(network_changed), store, NULL);
--	} else
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_NAME, name,
--					CONNMAN_COLUMN_ENABLED, connected,
--					CONNMAN_COLUMN_INRANGE, inrange,
--					CONNMAN_COLUMN_REMEMBER, remember,
--					CONNMAN_COLUMN_STRENGTH, strength,
--					CONNMAN_COLUMN_SECURITY, security,
--					CONNMAN_COLUMN_PASSPHRASE, secret, -1);
-+	if (get_iter_from_type(store, &iter, CONNMAN_TYPE_SYSCONFIG) == FALSE)
-+		gtk_tree_store_insert(store, &iter, NULL, 0);
- 
--done:
--	g_object_unref(proxy);
-+	gtk_tree_store_set(store, &iter,
-+			CONNMAN_COLUMN_PROXY, proxy,
-+			CONNMAN_COLUMN_TYPE, CONNMAN_TYPE_SYSCONFIG,
-+			CONNMAN_COLUMN_OFFLINEMODE, offline_mode,
-+			-1);
- }
- 
--static void device_changed(DBusGProxy *proxy, const char *property,
-+static void service_changed(DBusGProxy *proxy, const char *property,
- 					GValue *value, gpointer user_data)
- {
- 	GtkTreeStore *store = user_data;
- 	const char *path = dbus_g_proxy_get_path(proxy);
- 	GtkTreeIter iter;
-+	GHashTable *ipv4;
-+	const char *method, *addr, *netmask, *gateway;
-+	GValue *ipv4_method, *ipv4_address, *ipv4_netmask, *ipv4_gateway;
-+
-+	const char *state, *icon, *name, *security, *passphrase;
-+	guint strength, type;
-+
- 
- 	DBG("store %p proxy %p property %s", store, proxy, property);
- 
-@@ -421,165 +384,167 @@ static void device_changed(DBusGProxy *proxy, const char *property,
- 	if (get_iter_from_path(store, &iter, path) == FALSE)
- 		return;
- 
--	if (g_str_equal(property, "Policy") == TRUE) {
--		guint policy = get_policy(value);
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_POLICY, policy, -1);
--	} else if (g_str_equal(property, "Powered") == TRUE) {
--		gboolean powered = g_value_get_boolean(value);
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_ENABLED, powered, -1);
--	} else if (g_str_equal(property, "Networks") == TRUE)
--		property_update(store, value, path, network_properties);
--}
--
--static void device_properties(DBusGProxy *proxy, GHashTable *hash,
--					GError *error, gpointer user_data)
--{
--	GtkTreeStore *store = user_data;
--	const char *path = dbus_g_proxy_get_path(proxy);
--	GValue *value;
--	const gchar *name, *icon;
--	guint type, policy;
--	gboolean powered;
--	GtkTreeIter iter;
--
--	DBG("store %p proxy %p hash %p", store, proxy, hash);
-+	if (g_str_equal(property, "IPv4") == TRUE) {
- 
--	if (error != NULL || hash == NULL)
--		goto done;
--
--	value = g_hash_table_lookup(hash, "Name");
--	name = value ? g_value_get_string(value) : NULL;
--
--	value = g_hash_table_lookup(hash, "Type");
--	type = get_type(value);
--	icon = type2icon(type);
-+		ipv4 = g_value_get_boxed (value);
-+		if (!ipv4)
-+			return;
- 
--	value = g_hash_table_lookup(hash, "Policy");
--	policy = get_policy(value);
-+		ipv4_method = g_hash_table_lookup (ipv4, "Method");
-+		method = ipv4_method ? g_value_get_string(ipv4_method) : NULL;
- 
--	value = g_hash_table_lookup(hash, "Powered");
--	powered = value ? g_value_get_boolean(value) : FALSE;
-+		ipv4_address = g_hash_table_lookup (ipv4, "Address");
-+		addr = ipv4_address ? g_value_get_string(ipv4_address) : NULL;
- 
--	DBG("name %s type %d icon %s", name, type, icon);
-+		ipv4_netmask = g_hash_table_lookup (ipv4, "Netmask");
-+		netmask = ipv4_netmask ? g_value_get_string(ipv4_netmask) : NULL;
- 
--	if (get_iter_from_proxy(store, &iter, proxy) == FALSE) {
--		gtk_tree_store_insert_with_values(store, &iter, NULL, -1,
--					CONNMAN_COLUMN_PROXY, proxy,
--					CONNMAN_COLUMN_NAME, name,
--					CONNMAN_COLUMN_ICON, icon,
--					CONNMAN_COLUMN_TYPE, type,
--					CONNMAN_COLUMN_ENABLED, powered,
--					CONNMAN_COLUMN_POLICY, policy, -1);
-+		ipv4_gateway = g_hash_table_lookup (ipv4, "Gateway");
-+		gateway = ipv4_gateway ? g_value_get_string(ipv4_gateway) : NULL;
- 
--		dbus_g_proxy_add_signal(proxy, "PropertyChanged",
--				G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
--		dbus_g_proxy_connect_signal(proxy, "PropertyChanged",
--				G_CALLBACK(device_changed), store, NULL);
--	} else
-+		gtk_tree_store_set(store, &iter,
-+					CONNMAN_COLUMN_METHOD, method,
-+					CONNMAN_COLUMN_ADDRESS, addr,
-+					CONNMAN_COLUMN_NETMASK, netmask,
-+					CONNMAN_COLUMN_GATEWAY, gateway,
-+					-1);
-+
-+	} else if (g_str_equal(property, "State") == TRUE) {
-+		state = value ? g_value_get_string(value) : NULL;
-+		gtk_tree_store_set(store, &iter,
-+					CONNMAN_COLUMN_STATE, state,
-+					-1);
-+	} else if (g_str_equal(property, "Name") == TRUE) {
-+		name = value ? g_value_get_string(value) : NULL;
- 		gtk_tree_store_set(store, &iter,
- 					CONNMAN_COLUMN_NAME, name,
--					CONNMAN_COLUMN_ICON, icon,
-+					-1);
-+	} else if (g_str_equal(property, "Type") == TRUE) {
-+		type = get_type(value);
-+		icon = type2icon(type);
-+		gtk_tree_store_set(store, &iter,
- 					CONNMAN_COLUMN_TYPE, type,
--					CONNMAN_COLUMN_ENABLED, powered,
--					CONNMAN_COLUMN_POLICY, policy, -1);
--
--	value = g_hash_table_lookup(hash, "Networks");
--	if (value != NULL)
--		property_update(store, value, path, network_properties);
--
--done:
--	g_object_unref(proxy);
--}
--
--static void connection_changed(DBusGProxy *proxy, const char *property,
--					GValue *value, gpointer user_data)
--{
--	GtkTreeStore *store = user_data;
--	const char *path = dbus_g_proxy_get_path(proxy);
--	GtkTreeIter iter;
--
--	DBG("store %p proxy %p property %s", store, proxy, property);
--
--	if (property == NULL || value == NULL)
--		return;
--
--	if (get_iter_from_path(store, &iter, path) == FALSE)
--		return;
--
--	if (g_str_equal(property, "Default") == TRUE) {
--		gboolean enabled = g_value_get_boolean(value);
-+					CONNMAN_COLUMN_ICON, icon,
-+					-1);
-+	} else if (g_str_equal(property, "Security") == TRUE) {
-+		security = value ? g_value_get_string(value) : NULL;
-+		gtk_tree_store_set(store, &iter,
-+					CONNMAN_COLUMN_SECURITY, security,
-+					-1);
-+	} else if (g_str_equal(property, "PassPhrase") == TRUE) {
-+		passphrase = value ? g_value_get_string(value) : NULL;
- 		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_ENABLED, enabled, -1);
-+					CONNMAN_COLUMN_PASSPHRASE, passphrase,
-+					-1);
- 	} else if (g_str_equal(property, "Strength") == TRUE) {
--		guint strength = g_value_get_uchar(value);
-+		strength = value ? g_value_get_uchar(value) : 0;
- 		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_STRENGTH, strength, -1);
-+					CONNMAN_COLUMN_STRENGTH, strength,
-+					-1);
- 	}
- }
- 
--static void connection_properties(DBusGProxy *proxy, GHashTable *hash,
-+static void service_properties(DBusGProxy *proxy, GHashTable *hash,
- 					GError *error, gpointer user_data)
- {
- 	GtkTreeStore *store = user_data;
--	GValue *value;
--	guint type, strength;
--	gboolean enabled;
--	const char *device, *address;
-+
-+	const char *state, *icon, *name, *security, *passphrase;
-+	guint strength, type;
-+
-+	GHashTable *ipv4;
-+	GValue *ipv4_method, *ipv4_address, *ipv4_netmask, *ipv4_gateway;
-+	const char *method, *addr, *netmask, *gateway;
-+
- 	GtkTreeIter iter;
- 
-+	GValue *value;
-+
- 	DBG("store %p proxy %p hash %p", store, proxy, hash);
- 
- 	if (error != NULL || hash == NULL)
- 		goto done;
- 
-+	value = g_hash_table_lookup(hash, "State");
-+	state = value ? g_value_get_string(value) : NULL;
-+
-+	value = g_hash_table_lookup(hash, "Name");
-+	name = value ? g_value_get_string(value) : NULL;
-+
- 	value = g_hash_table_lookup(hash, "Type");
- 	type = get_type(value);
-+	icon = type2icon(type);
-+
-+	value = g_hash_table_lookup(hash, "Security");
-+	security = value ? g_value_get_string(value) : NULL;
-+
-+	value = g_hash_table_lookup(hash, "PassPhrase");
-+	passphrase = value ? g_value_get_string(value) : NULL;
- 
- 	value = g_hash_table_lookup(hash, "Strength");
- 	strength = value ? g_value_get_uchar(value) : 0;
- 
--	value = g_hash_table_lookup(hash, "Default");
--	enabled = value ? g_value_get_boolean(value) : FALSE;
-+	value = g_hash_table_lookup(hash, "IPv4.Configuration");
-+	ipv4 = g_value_get_boxed (value);
- 
--	value = g_hash_table_lookup(hash, "IPv4.Address");
--	address = value ? g_value_get_string(value) : NULL;
-+	if (!ipv4)
-+		goto done;
- 
--	DBG("type %d address %s", type, address);
-+	ipv4_method = g_hash_table_lookup (ipv4, "Method");
-+	method = ipv4_method ? g_value_get_string(ipv4_method) : NULL;
- 
--	if (get_iter_from_proxy(store, &iter, proxy) == FALSE) {
--		gtk_tree_store_insert_with_values(store, &iter, NULL, -1,
--					CONNMAN_COLUMN_PROXY, proxy,
--					CONNMAN_COLUMN_TYPE, type,
--					CONNMAN_COLUMN_ENABLED, enabled,
--					CONNMAN_COLUMN_STRENGTH, strength,
--					CONNMAN_COLUMN_ADDRESS, address, -1);
-+	ipv4_address = g_hash_table_lookup (ipv4, "Address");
-+	addr = ipv4_address ? g_value_get_string(ipv4_address) : NULL;
- 
--		dbus_g_proxy_add_signal(proxy, "PropertyChanged",
--				G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
--		dbus_g_proxy_connect_signal(proxy, "PropertyChanged",
--				G_CALLBACK(connection_changed), store, NULL);
--	} else
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_TYPE, type,
--					CONNMAN_COLUMN_ENABLED, enabled,
--					CONNMAN_COLUMN_STRENGTH, strength, -1);
-+	ipv4_netmask = g_hash_table_lookup (ipv4, "Netmask");
-+	netmask = ipv4_netmask ? g_value_get_string(ipv4_netmask) : NULL;
- 
--	value = g_hash_table_lookup(hash, "Device");
--	device = value ? g_value_get_boxed(value) : NULL;
-+	ipv4_gateway = g_hash_table_lookup (ipv4, "Gateway");
-+	gateway = ipv4_gateway ? g_value_get_string(ipv4_gateway) : NULL;
- 
--	DBG("device %s", device);
-+	DBG("name %s type %d icon %s state %s", name, type, icon, state);
- 
--	gtk_tree_store_set(store, &iter, CONNMAN_COLUMN_DEVICE, device, -1);
-+	if (get_iter_from_proxy(store, &iter, proxy) == FALSE) {
-+		GtkTreeIter label_iter;
-+		guint label_type;
- 
--	if (get_iter_from_path(store, &iter, device) == TRUE) {
--		gtk_tree_store_set(store, &iter,
--					CONNMAN_COLUMN_DEVICE, device,
--					CONNMAN_COLUMN_INRANGE, TRUE,
--					CONNMAN_COLUMN_ADDRESS, address, -1);
-+		switch (type) {
-+		case CONNMAN_TYPE_ETHERNET:
-+			label_type = CONNMAN_TYPE_LABEL_ETHERNET;
-+			break;
-+		case CONNMAN_TYPE_WIFI:
-+			label_type = CONNMAN_TYPE_LABEL_WIFI;
-+			break;
-+		default:
-+			label_type = CONNMAN_TYPE_UNKNOWN;
-+			break;
-+		}
-+
-+		get_iter_from_type(store, &label_iter, label_type);
-+
-+		gtk_tree_store_insert_after(store, &iter, NULL, &label_iter);
-+
-+		dbus_g_proxy_add_signal(proxy, "PropertyChanged",
-+				G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID);
-+		dbus_g_proxy_connect_signal(proxy, "PropertyChanged",
-+				G_CALLBACK(service_changed), store, NULL);
- 	}
- 
-+	gtk_tree_store_set(store, &iter,
-+				CONNMAN_COLUMN_PROXY, proxy,
-+				CONNMAN_COLUMN_NAME, name,
-+				CONNMAN_COLUMN_ICON, icon,
-+				CONNMAN_COLUMN_TYPE, type,
-+				CONNMAN_COLUMN_STATE, state,
-+				CONNMAN_COLUMN_SECURITY, security,
-+				CONNMAN_COLUMN_PASSPHRASE, passphrase,
-+				CONNMAN_COLUMN_STRENGTH, strength,
-+				CONNMAN_COLUMN_METHOD, method,
-+				CONNMAN_COLUMN_ADDRESS, addr,
-+				CONNMAN_COLUMN_NETMASK, netmask,
-+				CONNMAN_COLUMN_GATEWAY, gateway,
-+				-1);
-+
- done:
- 	g_object_unref(proxy);
- }
-@@ -594,25 +559,12 @@ static void manager_changed(DBusGProxy *proxy, const char *property,
- 	if (property == NULL || value == NULL)
- 		return;
- 
--	if (g_str_equal(property, "State") == TRUE) {
--		ConnmanClientCallback callback;
--		gpointer userdata;
--		gchar *state;
--
--		state = g_object_get_data(G_OBJECT(store), "State");
--		g_free(state);
--
--		state = g_value_dup_string(value);
--		g_object_set_data(G_OBJECT(store), "State", state);
--
--		callback = g_object_get_data(G_OBJECT(store), "callback");
--		userdata = g_object_get_data(G_OBJECT(store), "userdata");
--		if (callback)
--			callback(state, userdata);
--	} else if (g_str_equal(property, "Connections") == TRUE) {
--		property_update(store, value, property, connection_properties);
--	} else if (g_str_equal(property, "Devices") == TRUE) {
--		property_update(store, value, property, device_properties);
-+	if (g_str_equal(property, "Services") == TRUE) {
-+		property_update(store, value, property, service_properties);
-+	} else if (g_str_equal(property, "EnabledTechnologies") == TRUE) {
-+		enabled_technologies_changed(store, value);
-+	} else if (g_str_equal(property, "OfflineMode") == TRUE) {
-+		offline_mode_changed(store, value);
- 	}
- }
- 
-@@ -620,31 +572,24 @@ static void manager_properties(DBusGProxy *proxy, GHashTable *hash,
- 					GError *error, gpointer user_data)
- {
- 	GtkTreeStore *store = user_data;
--	ConnmanClientCallback callback;
- 	GValue *value;
--	gchar *state;
- 
- 	DBG("store %p proxy %p hash %p", store, proxy, hash);
- 
- 	if (error != NULL || hash == NULL)
- 		return;
- 
--	value = g_hash_table_lookup(hash, "State");
--	state = value ? g_value_dup_string(value) : NULL;
--	g_object_set_data(G_OBJECT(store), "State", state);
--
--	callback = g_object_get_data(G_OBJECT(store), "callback");
--	if (callback)
--		callback(state, NULL);
-+	value = g_hash_table_lookup(hash, "Services");
-+	if (value != NULL)
-+		property_update(store, value, "Services", service_properties);
- 
--	value = g_hash_table_lookup(hash, "Devices");
-+	value = g_hash_table_lookup(hash, "EnabledTechnologies");
- 	if (value != NULL)
--		property_update(store, value, "Devices", device_properties);
-+		enabled_technologies_properties(store, proxy, value);
- 
--	value = g_hash_table_lookup(hash, "Connections");
-+	value = g_hash_table_lookup(hash, "OfflineMode");
- 	if (value != NULL)
--		property_update(store, value,
--					"Connections", connection_properties);
-+		offline_mode_properties(store, proxy, value);
- }
- 
- DBusGProxy *connman_dbus_create_manager(DBusGConnection *conn,
-diff --git a/common/connman-dbus.h b/common/connman-dbus.h
-index a9fa51c..dc07650 100644
---- a/common/connman-dbus.h
-+++ b/common/connman-dbus.h
-@@ -31,7 +31,7 @@
- #define CONNMAN_MANAGER_PATH		"/"
- 
- #define CONNMAN_PROFILE_INTERFACE	CONNMAN_SERVICE ".Profile"
--#define CONNMAN_DEVICE_INTERFACE	CONNMAN_SERVICE ".Device"
-+#define CONNMAN_SERVICE_INTERFACE	CONNMAN_SERVICE ".Service"
- #define CONNMAN_NETWORK_INTERFACE	CONNMAN_SERVICE ".Network"
- #define CONNMAN_CONNECTION_INTERFACE	CONNMAN_SERVICE ".Connection"
- 
-diff --git a/common/connman-dbus.xml b/common/connman-dbus.xml
-index 9fefd55..e20cb3b 100644
---- a/common/connman-dbus.xml
-+++ b/common/connman-dbus.xml
-@@ -15,5 +15,16 @@
-     </method>
-     <method name="Disconnect">
-     </method>
-+    <method name="Remove">
-+    </method>
-+    <method name="RequestScan">
-+      <arg type="s"/>
-+    </method>
-+    <method name="EnableTechnology">
-+      <arg type="s"/>
-+    </method>
-+    <method name="DisableTechnology">
-+      <arg type="s"/>
-+    </method>
-   </interface>
- </node>
-diff --git a/common/demo.c b/common/demo.c
-deleted file mode 100644
-index 5e3924f..0000000
---- a/common/demo.c
-+++ /dev/null
-@@ -1,465 +0,0 @@
--/*
-- *
-- *  Connection Manager
-- *
-- *  Copyright (C) 2008  Intel Corporation. All rights reserved.
-- *
-- *  This program is free software; you can redistribute it and/or modify
-- *  it under the terms of the GNU General Public License version 2 as
-- *  published by the Free Software Foundation.
-- *
-- *  This program is distributed in the hope that it will be useful,
-- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- *  GNU General Public License for more details.
-- *
-- *  You should have received a copy of the GNU General Public License
-- *  along with this program; if not, write to the Free Software
-- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-- *
-- */
--
--#ifdef HAVE_CONFIG_H
--#include <config.h>
--#endif
--
--#include <dbus/dbus-glib.h>
--#include <gtk/gtk.h>
--
--#include "connman-client.h"
--
--static gboolean option_fullscreen = FALSE;
--static ConnmanClient *client;
--
--static GtkWidget *tree_networks = NULL;
--static GtkWidget *button_enabled = NULL;
--static GtkWidget *button_refresh = NULL;
--static GtkWidget *button_connect = NULL;
--static GtkWidget *label_status = NULL;
--static GtkTreeSelection *selection = NULL;
--
--static void status_callback(const char *status, void *user_data)
--{
--	gchar *markup;
--
--	if (label_status == NULL)
--		return;
--
--	markup = g_strdup_printf("System is %s", status);
--	gtk_label_set_markup(GTK_LABEL(label_status), markup);
--	g_free(markup);
--}
--
--static GtkWidget *create_label(const gchar *str)
--{
--	GtkWidget *label;
--	gchar *tmp;
--
--	label = gtk_label_new(NULL);
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
--
--	tmp = g_strdup_printf("<b>%s</b>", str);
--	gtk_label_set_markup(GTK_LABEL(label), tmp);
--	g_free(tmp);
--
--	return label;
--}
--
--static void changed_callback(GtkComboBox *combo, gpointer user_data)
--{
--	GtkTreeModel *model = gtk_combo_box_get_model(combo);
--	GtkTreeIter iter;
--	DBusGProxy *proxy;
--	gchar *path;
--	gboolean enabled;
--
--	if (gtk_combo_box_get_active_iter(combo, &iter) == FALSE)
--		return;
--
--	path = g_object_get_data(G_OBJECT(button_enabled), "device");
--	g_free(path);
--
--	gtk_tree_model_get(model, &iter, CONNMAN_COLUMN_PROXY, &proxy,
--					CONNMAN_COLUMN_ENABLED, &enabled, -1);
--
--	path = g_strdup(dbus_g_proxy_get_path(proxy));
--	g_object_set_data(G_OBJECT(button_enabled), "device", path);
--
--	g_object_unref(proxy);
--
--	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button_enabled),
--								enabled);
--
--	gtk_widget_set_sensitive(button_refresh, enabled);
--
--	model = connman_client_get_network_model(client, path);
--	gtk_tree_view_set_model(GTK_TREE_VIEW(tree_networks), model);
--	g_object_unref(model);
--}
--
--static void toggled_callback(GtkToggleButton *button, gpointer user_data)
--{
--	gchar *path;
--	gboolean active;
--
--	path = g_object_get_data(G_OBJECT(button), "device");
--	if (path == NULL)
--		return;
--
--	active = gtk_toggle_button_get_active(button);
--
--	connman_client_set_powered(client, path, active);
--
--	gtk_widget_set_sensitive(button_refresh, active);
--}
--
--static void refresh_callback(GtkButton *button, gpointer user_data)
--{
--	gchar *path;
--
--	path = g_object_get_data(G_OBJECT(button_enabled), "device");
--	if (path == NULL)
--		return;
--
--	connman_client_propose_scan(client, path);
--}
--
--static void connect_callback(GtkButton *button, gpointer user_data)
--{
--	GtkTreeModel *model;
--	GtkTreeIter iter;
--	DBusGProxy *proxy;
--	const gchar *path;
--	gboolean enabled;
--
--	if (gtk_tree_selection_get_selected(selection, &model, &iter) == FALSE)
--		return;
--
--	gtk_tree_model_get(model, &iter, CONNMAN_COLUMN_PROXY, &proxy,
--					CONNMAN_COLUMN_ENABLED, &enabled, -1);
--
--	path = dbus_g_proxy_get_path(proxy);
--
--	if (enabled == FALSE)
--		connman_client_connect(client, path);
--	else
--		connman_client_disconnect(client, path);
--
--	g_object_unref(proxy);
--
--	if (enabled == FALSE)
--		g_object_set(button_connect,
--				"label", GTK_STOCK_DISCONNECT, NULL);
--	else
--		g_object_set(button_connect,
--				"label", GTK_STOCK_CONNECT, NULL);
--}
--
--static GtkWidget *create_left(void)
--{
--	GtkWidget *mainbox;
--	GtkWidget *vbox;
--	GtkWidget *hbox;
--	GtkWidget *label;
--	GtkWidget *combo;
--	GtkWidget *button;
--	GtkTreeModel *model;
--	GtkCellRenderer *renderer;
--
--	mainbox = gtk_vbox_new(FALSE, 24);
--	gtk_container_set_border_width(GTK_CONTAINER(mainbox), 8);
--
--	vbox = gtk_vbox_new(FALSE, 6);
--	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
--
--	label = create_label("Device");
--	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
--
--	combo = gtk_combo_box_new();
--	gtk_box_pack_start(GTK_BOX(vbox), combo, FALSE, FALSE, 0);
--	g_signal_connect(G_OBJECT(combo), "changed",
--					G_CALLBACK(changed_callback), NULL);
--
--	gtk_cell_layout_clear(GTK_CELL_LAYOUT(combo));
--
--	renderer = gtk_cell_renderer_text_new();
--	gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
--	gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer,
--					"text", CONNMAN_COLUMN_NAME, NULL);
--
--	button = gtk_check_button_new_with_label("Enabled");
--	gtk_box_pack_end(GTK_BOX(vbox), button, FALSE, FALSE, 0);
--	g_signal_connect(G_OBJECT(button), "toggled",
--					G_CALLBACK(toggled_callback), NULL);
--
--	button_enabled = button;
--
--	vbox = gtk_vbox_new(FALSE, 6);
--	gtk_box_pack_start(GTK_BOX(mainbox), vbox, TRUE, TRUE, 0);
--
--	label = create_label("Status");
--	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
--
--	label = gtk_label_new(NULL);
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
--	gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
--
--	label_status = label;
--
--	vbox = gtk_vbox_new(FALSE, 6);
--	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
--
--	hbox = gtk_hbox_new(FALSE, 12);
--	gtk_box_set_homogeneous(GTK_BOX(hbox), TRUE);
--	gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
--
--	button = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
--	gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
--	gtk_widget_set_sensitive(button, FALSE);
--	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(refresh_callback), NULL);
--
--	button_refresh = button;
--
--	button = gtk_button_new_from_stock(GTK_STOCK_DISCONNECT);
--	gtk_box_pack_end(GTK_BOX(hbox), button, TRUE, TRUE, 0);
--	gtk_widget_set_sensitive(button, FALSE);
--	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(connect_callback), NULL);
--
--	button_connect = button;
--
--	model = connman_client_get_device_model(client);
--	gtk_combo_box_set_model(GTK_COMBO_BOX(combo), model);
--	g_object_unref(model);
--
--	gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
--
--	return mainbox;
--}
--
--static void select_callback(GtkTreeSelection *selection, gpointer user_data)
--{
--	GtkTreeModel *model;
--	GtkTreeIter iter;
--	gboolean selected, enabled;
--
--	selected = gtk_tree_selection_get_selected(selection, &model, &iter);
--
--	if (selected == TRUE) {
--		gtk_tree_model_get(model, &iter,
--					CONNMAN_COLUMN_ENABLED, &enabled, -1);
--
--		if (enabled == TRUE)
--			g_object_set(button_connect,
--					"label", GTK_STOCK_DISCONNECT, NULL);
--		else
--			g_object_set(button_connect,
--					"label", GTK_STOCK_CONNECT, NULL);
--	}
--
--	gtk_widget_set_sensitive(button_connect, selected);
--}
--
--static void status_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	gboolean enabled;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_ENABLED, &enabled, -1);
--
--	if (enabled == TRUE)
--		g_object_set(cell, "icon-name", GTK_STOCK_ABOUT, NULL);
--
--	g_object_set(cell, "visible", enabled, NULL);
--}
--
--static void security_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	guint security;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_SECURITY, &security, -1);
--
--	if (security == CONNMAN_SECURITY_NONE)
--		g_object_set(cell, "icon-name", NULL, NULL);
--	else
--		g_object_set(cell, "icon-name",
--					GTK_STOCK_DIALOG_AUTHENTICATION, NULL);
--}
--
--static GtkWidget *create_right(void)
--{
--	GtkWidget *mainbox;
--	GtkWidget *vbox;
--	GtkWidget *label;
--	GtkWidget *scrolled;
--	GtkWidget *tree;
--	GtkTreeViewColumn *column;
--	GtkCellRenderer *renderer;
--
--	mainbox = gtk_vbox_new(FALSE, 24);
--	gtk_container_set_border_width(GTK_CONTAINER(mainbox), 8);
--
--	vbox = gtk_vbox_new(FALSE, 6);
--	gtk_box_pack_start(GTK_BOX(mainbox), vbox, TRUE, TRUE, 0);
--
--	label = create_label("Networks");
--	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
--
--	scrolled = gtk_scrolled_window_new(NULL, NULL);
--	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
--				GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
--	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled),
--							GTK_SHADOW_OUT);
--	gtk_container_add(GTK_CONTAINER(vbox), scrolled);
--
--	tree = gtk_tree_view_new();
--	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
--	gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(tree), FALSE);
--	gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE);
--	gtk_container_add(GTK_CONTAINER(scrolled), tree);
--
--	gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), 0,
--				NULL, gtk_cell_renderer_pixbuf_new(),
--					status_to_icon, NULL, NULL);
--	column = gtk_tree_view_get_column(GTK_TREE_VIEW(tree), 0);
--	gtk_tree_view_column_set_min_width(column, 24);
--
--	column = gtk_tree_view_column_new();
--	gtk_tree_view_column_set_expand(GTK_TREE_VIEW_COLUMN(column), TRUE);
--	gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
--
--	renderer = gtk_cell_renderer_text_new();
--	gtk_tree_view_column_pack_start(column, renderer, TRUE);
--	gtk_tree_view_column_add_attribute(column, renderer,
--					"text", CONNMAN_COLUMN_NAME);
--
--	renderer = gtk_cell_renderer_pixbuf_new();
--	gtk_tree_view_column_pack_end(column, renderer, FALSE);
--	gtk_tree_view_column_set_cell_data_func(column, renderer,
--					security_to_icon, NULL, NULL);
--
--	tree_networks = tree;
--
--	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
--	gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
--	g_signal_connect(G_OBJECT(selection), "changed",
--				G_CALLBACK(select_callback), NULL);
--
--	return mainbox;
--}
--
--static gboolean delete_callback(GtkWidget *window, GdkEvent *event,
--							gpointer user_data)
--{
--	gtk_widget_destroy(window);
--
--	gtk_main_quit();
--
--	return FALSE;
--}
--
--static void close_callback(GtkWidget *button, gpointer user_data)
--{
--	GtkWidget *window = user_data;
--
--	gtk_widget_destroy(window);
--
--	gtk_main_quit();
--}
--
--static GtkWidget *create_window(void)
--{
--	GtkWidget *window;
--	GtkWidget *vbox;
--	GtkWidget *hbox;
--	GtkWidget *notebook;
--	GtkWidget *buttonbox;
--	GtkWidget *button;
--	GtkWidget *widget;
--
--	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
--	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
--	gtk_window_set_default_size(GTK_WINDOW(window), 580, 360);
--	g_signal_connect(G_OBJECT(window), "delete-event",
--					G_CALLBACK(delete_callback), NULL);
--
--	vbox = gtk_vbox_new(FALSE, 12);
--	gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
--	gtk_container_add(GTK_CONTAINER(window), vbox);
--
--	notebook = gtk_notebook_new();
--	gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
--	gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0);
--
--	buttonbox = gtk_hbutton_box_new();
--	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox), GTK_BUTTONBOX_END);
--	gtk_box_pack_start(GTK_BOX(vbox), buttonbox, FALSE, FALSE, 0);
--
--	button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
--	gtk_container_add(GTK_CONTAINER(buttonbox), button);
--	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(close_callback), window);
--
--	hbox = gtk_hbox_new(FALSE, 0);
--	gtk_container_set_border_width(GTK_CONTAINER(hbox), 8);
--
--	widget = create_right();
--	gtk_widget_set_size_request(widget, 280, -1);
--	gtk_box_pack_end(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
--
--	widget = create_left();
--	gtk_widget_set_size_request(widget, 260, -1);
--	gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
--
--	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox, NULL);
--
--	return window;
--}
--
--static GOptionEntry options[] = {
--	{ "fullscreen", 'f', 0, G_OPTION_ARG_NONE, &option_fullscreen,
--					"Start up in fullscreen mode" },
--	{ NULL },
--};
--
--int main(int argc, char *argv[])
--{
--	GError *error = NULL;
--	GtkWidget *window;
--
--	if (gtk_init_with_args(&argc, &argv, NULL,
--				options, NULL, &error) == FALSE) {
--		if (error != NULL) {
--			g_printerr("%s\n", error->message);
--			g_error_free(error);
--		} else
--			g_printerr("An unknown error occurred\n");
--
--		gtk_exit(1);
--	}
--
--	g_set_application_name("Connection Manager Demo");
--
--	gtk_window_set_default_icon_name("network-wireless");
--
--	client = connman_client_new();
--
--	window = create_window();
--
--	connman_client_set_callback(client, status_callback, NULL);
--
--	if (option_fullscreen == TRUE)
--		gtk_window_fullscreen(GTK_WINDOW(window));
--
--	gtk_widget_show_all(window);
--
--	gtk_main();
--
--	g_object_unref(client);
--
--	return 0;
--}
-diff --git a/common/test-client.c b/common/test-client.c
-deleted file mode 100644
-index a78823f..0000000
---- a/common/test-client.c
-+++ /dev/null
-@@ -1,227 +0,0 @@
--/*
-- *
-- *  Connection Manager
-- *
-- *  Copyright (C) 2008  Intel Corporation. All rights reserved.
-- *
-- *  This program is free software; you can redistribute it and/or modify
-- *  it under the terms of the GNU General Public License version 2 as
-- *  published by the Free Software Foundation.
-- *
-- *  This program is distributed in the hope that it will be useful,
-- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- *  GNU General Public License for more details.
-- *
-- *  You should have received a copy of the GNU General Public License
-- *  along with this program; if not, write to the Free Software
-- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-- *
-- */
--
--#ifdef HAVE_CONFIG_H
--#include <config.h>
--#endif
--
--#include <dbus/dbus-glib.h>
--#include <gtk/gtk.h>
--
--#include "connman-client.h"
--
--static ConnmanClient *client;
--
--static void proxy_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	DBusGProxy *proxy;
--	gchar *markup;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_PROXY, &proxy, -1);
--
--	markup = g_strdup_printf("<b>%s</b>\n"
--					"<span size=\"xx-small\">%s\n\n</span>",
--					dbus_g_proxy_get_interface(proxy),
--						dbus_g_proxy_get_path(proxy));
--	g_object_set(cell, "markup", markup, NULL);
--	g_free(markup);
--
--	g_object_unref(proxy);
--}
--
--static void name_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	gchar *name, *icon;
--	guint type;
--	gchar *markup;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_NAME, &name,
--					CONNMAN_COLUMN_ICON, &icon,
--					CONNMAN_COLUMN_TYPE, &type, -1);
--
--	markup = g_strdup_printf("Name: %s\nIcon: %s\nType: %d",
--							name, icon, type);
--	g_object_set(cell, "markup", markup, NULL);
--	g_free(markup);
--
--	g_free(icon);
--	g_free(name);
--}
--
--static void status_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	gboolean enabled, inrange, remember;
--	gchar *markup;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_ENABLED, &enabled,
--					CONNMAN_COLUMN_INRANGE, &inrange,
--					CONNMAN_COLUMN_REMEMBER, &remember, -1);
--
--	markup = g_strdup_printf("Enabled: %d\n"
--					"InRange: %d\nRemember: %d",
--						enabled, inrange, remember);
--	g_object_set(cell, "markup", markup, NULL);
--	g_free(markup);
--}
--
--static void network_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	guint strength, security;
--	gchar *secret;
--	gchar *markup;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_STRENGTH, &strength,
--					CONNMAN_COLUMN_SECURITY, &security,
--					CONNMAN_COLUMN_PASSPHRASE, &secret, -1);
--
--	markup = g_strdup_printf("Strength: %d\nSecurity: %d\nSecret: %s",
--						strength, security, secret);
--	g_object_set(cell, "markup", markup, NULL);
--	g_free(markup);
--
--	g_free(secret);
--}
--
--static GtkWidget *create_tree(void)
--{
--	GtkWidget *tree;
--	GtkTreeModel *model;
--	GtkTreeSelection *selection;
--
--	tree = gtk_tree_view_new();
--	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), TRUE);
--	gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE);
--
--	gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
--				"Proxy", gtk_cell_renderer_text_new(),
--					proxy_to_text, NULL, NULL);
--
--	gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
--				"Name", gtk_cell_renderer_text_new(),
--					name_to_text, NULL, NULL);
--
--	gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
--				"Status", gtk_cell_renderer_text_new(),
--					status_to_text, NULL, NULL);
--
--	gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(tree), -1,
--				"Network", gtk_cell_renderer_text_new(),
--					network_to_text, NULL, NULL);
--
--	model = connman_client_get_model(client);
--	gtk_tree_view_set_model(GTK_TREE_VIEW(tree), model);
--	g_object_unref(model);
--
--	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
--	gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
--
--	gtk_tree_view_expand_all(GTK_TREE_VIEW(tree));
--
--	return tree;
--}
--
--static gboolean delete_callback(GtkWidget *window, GdkEvent *event,
--							gpointer user_data)
--{
--	gtk_widget_destroy(window);
--
--	gtk_main_quit();
--
--	return FALSE;
--}
--
--static void close_callback(GtkWidget *button, gpointer user_data)
--{
--	GtkWidget *window = user_data;
--
--	gtk_widget_destroy(window);
--
--	gtk_main_quit();
--}
--
--static GtkWidget *create_window(void)
--{
--	GtkWidget *window;
--	GtkWidget *mainbox;
--	GtkWidget *tree;
--	GtkWidget *scrolled;
--	GtkWidget *buttonbox;
--	GtkWidget *button;
--	GtkTreeSelection *selection;
--
--	tree = create_tree();
--	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
--
--	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
--	gtk_window_set_title(GTK_WINDOW(window), "Client Test");
--	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
--	gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
--	g_signal_connect(G_OBJECT(window), "delete-event",
--					G_CALLBACK(delete_callback), NULL);
--
--	mainbox = gtk_vbox_new(FALSE, 12);
--	gtk_container_set_border_width(GTK_CONTAINER(mainbox), 12);
--	gtk_container_add(GTK_CONTAINER(window), mainbox);
--
--	scrolled = gtk_scrolled_window_new(NULL, NULL);
--	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
--				GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
--	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled),
--							GTK_SHADOW_OUT);
--	gtk_box_pack_start(GTK_BOX(mainbox), scrolled, TRUE, TRUE, 0);
--
--	buttonbox = gtk_hbutton_box_new();
--	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox),
--						GTK_BUTTONBOX_END);
--	gtk_box_pack_end(GTK_BOX(mainbox), buttonbox, FALSE, FALSE, 0);
--
--	button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
--	gtk_container_add(GTK_CONTAINER(buttonbox), button);
--	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(close_callback), window);
--
--	gtk_container_add(GTK_CONTAINER(scrolled), tree);
--
--	gtk_widget_show_all(window);
--
--	return window;
--}
--
--int main(int argc, char *argv[])
--{
--	gtk_init(&argc, &argv);
--
--	client = connman_client_new();
--
--	gtk_window_set_default_icon_name("network-wireless");
--
--	create_window();
--
--	gtk_main();
--
--	g_object_unref(client);
--
--	return 0;
--}
-diff --git a/properties/Makefile.am b/properties/Makefile.am
-index ad2fd35..3a47ccf 100644
---- a/properties/Makefile.am
-+++ b/properties/Makefile.am
-@@ -1,8 +1,7 @@
- 
- bin_PROGRAMS = connman-properties
- 
--connman_properties_SOURCES = main.c advanced.h advanced.c \
--						ethernet.c wifi.c
-+connman_properties_SOURCES = main.c advanced.h ethernet.c wifi.c
- 
- connman_properties_LDADD = $(top_builddir)/common/libcommon.a \
- 						@GTK_LIBS@ @DBUS_LIBS@
-diff --git a/properties/advanced.c b/properties/advanced.c
-deleted file mode 100644
-index 1eb1c3d..0000000
---- a/properties/advanced.c
-+++ /dev/null
-@@ -1,314 +0,0 @@
--/*
-- *
-- *  Connection Manager
-- *
-- *  Copyright (C) 2008  Intel Corporation. All rights reserved.
-- *
-- *  This program is free software; you can redistribute it and/or modify
-- *  it under the terms of the GNU General Public License version 2 as
-- *  published by the Free Software Foundation.
-- *
-- *  This program is distributed in the hope that it will be useful,
-- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- *  GNU General Public License for more details.
-- *
-- *  You should have received a copy of the GNU General Public License
-- *  along with this program; if not, write to the Free Software
-- *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-- *
-- */
--
--#ifdef HAVE_CONFIG_H
--#include <config.h>
--#endif
--
--#include <dbus/dbus-glib.h>
--#include <glib/gi18n.h>
--
--#include "connman-client.h"
--
--#include "advanced.h"
--
--gboolean separator_function(GtkTreeModel *model,
--					GtkTreeIter *iter, gpointer user_data)
--{
--	gchar *text;
--	gboolean result = FALSE;
--
--	gtk_tree_model_get(model, iter, 0, &text, -1);
--
--	if (text && *text == '\0')
--		result = TRUE;
--
--	g_free(text);
--
--	return result;
--}
--
--static void activate_callback(GtkWidget *button, gpointer user_data)
--{
--}
--
--static void changed_callback(GtkWidget *editable, gpointer user_data)
--{
--}
--
--static void add_network(GtkWidget *mainbox, struct config_data *data)
--{
--	GtkWidget *table;
--	GtkWidget *label;
--	GtkWidget *entry;
--	GtkWidget *combo;
--	GtkWidget *button;
--
--	table = gtk_table_new(3, 5, TRUE);
--	gtk_table_set_row_spacings(GTK_TABLE(table), 2);
--	gtk_table_set_col_spacings(GTK_TABLE(table), 8);
--	gtk_box_pack_start(GTK_BOX(mainbox), table, FALSE, FALSE, 0);
--
--	label = gtk_label_new(_("Network Name:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
--
--	combo = gtk_combo_box_entry_new_text();
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Guest");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Off");
--	gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
--					separator_function, NULL, NULL);
--	gtk_table_attach_defaults(GTK_TABLE(table), combo, 1, 3, 0, 1);
--	//data->network.name = combo;
--
--	label = gtk_label_new(_("Passphrase:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
--
--	entry = gtk_entry_new();
--	gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
--	gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 1, 2);
--	//data->network.passphrase = entry;
--
--	button = gtk_button_new_with_label(_("Activate"));
--	gtk_widget_set_sensitive(button, FALSE);
--	gtk_table_attach_defaults(GTK_TABLE(table), button, 1, 2, 2, 3);
--	//data->network.activate = button;
--
--	g_signal_connect(G_OBJECT(combo), "changed",
--				G_CALLBACK(changed_callback), data);
--
--	g_signal_connect(G_OBJECT(button), "clicked",
--				G_CALLBACK(activate_callback), data);
--}
--
--static void set_widgets(struct config_data *data, gboolean label,
--					gboolean value, gboolean entry)
--{
--	int i;
--
--	for (i = 0; i < 3; i++) {
--		if (label == TRUE)
--			gtk_widget_show(data->ipv4.label[i]);
--		else
--			gtk_widget_hide(data->ipv4.label[i]);
--
--		if (value == TRUE)
--			gtk_widget_show(data->ipv4.value[i]);
--		else
--			gtk_widget_hide(data->ipv4.value[i]);
--
--		if (entry == TRUE)
--			gtk_widget_show(data->ipv4.entry[i]);
--		else
--			gtk_widget_hide(data->ipv4.entry[i]);
--	}
--}
--
--static void config_callback(GtkWidget *widget, gpointer user_data)
--{
--	gint active;
--
--	active = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
--}
--
--static void add_config(GtkWidget *mainbox, struct config_data *data)
--{
--	GtkWidget *table;
--	GtkWidget *label;
--	GtkWidget *entry;
--	GtkWidget *combo;
--
--	table = gtk_table_new(5, 5, TRUE);
--	gtk_table_set_row_spacings(GTK_TABLE(table), 2);
--	gtk_table_set_col_spacings(GTK_TABLE(table), 8);
--	gtk_box_pack_start(GTK_BOX(mainbox), table, FALSE, FALSE, 0);
--
--	label = gtk_label_new(_("Configure IPv4:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
--
--	combo = gtk_combo_box_new_text();
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Using DHCP");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Manually");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Off");
--	gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
--					separator_function, NULL, NULL);
--	gtk_table_attach_defaults(GTK_TABLE(table), combo, 1, 3, 0, 1);
--	data->ipv4.config = combo;
--
--	label = gtk_label_new(_("IP Address:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_widget_set_no_show_all(label, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2);
--	data->ipv4.label[0] = label;
--
--	label = gtk_label_new(NULL);
--	gtk_label_set_selectable(GTK_LABEL(label), TRUE);
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
--	gtk_widget_set_no_show_all(label, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 3, 1, 2);
--	data->ipv4.value[0] = label;
--
--	entry = gtk_entry_new();
--	gtk_widget_set_no_show_all(entry, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 1, 2);
--	data->ipv4.entry[0] = entry;
--
--	label = gtk_label_new(_("Subnet Mask:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_widget_set_no_show_all(label, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3);
--	data->ipv4.label[1] = label;
--
--	label = gtk_label_new(NULL);
--	gtk_label_set_selectable(GTK_LABEL(label), TRUE);
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
--	gtk_widget_set_no_show_all(label, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 3, 2, 3);
--	data->ipv4.value[1] = label;
--
--	entry = gtk_entry_new();
--	gtk_widget_set_no_show_all(entry, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 2, 3);
--	data->ipv4.entry[1] = entry;
--
--	label = gtk_label_new(_("Router:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_widget_set_no_show_all(label, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4);
--	data->ipv4.label[2] = label;
--
--	label = gtk_label_new(NULL);
--	gtk_label_set_selectable(GTK_LABEL(label), TRUE);
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
--	gtk_widget_set_no_show_all(label, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 3, 3, 4);
--	data->ipv4.value[2] = label;
--
--	entry = gtk_entry_new();
--	gtk_widget_set_no_show_all(entry, TRUE);
--	gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 3, 3, 4);
--	data->ipv4.entry[2] = entry;
--
--	gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
--	set_widgets(data, TRUE, TRUE, FALSE);
--
--	g_signal_connect(G_OBJECT(combo), "changed",
--					G_CALLBACK(config_callback), data);
--}
--
--static void delete_callback(GtkWidget *window, GdkEvent *event,
--							gpointer user_data)
--{
--	gtk_widget_hide(window);
--}
--
--static void close_callback(GtkWidget *button, gpointer user_data)
--{
--	GtkWidget *window = user_data;
--
--	gtk_widget_hide(window);
--}
--
--void create_advanced_dialog(struct config_data *data, guint type)
--{
--	GtkWidget *dialog;
--	GtkWidget *vbox;
--	GtkWidget *notebook;
--	GtkWidget *buttonbox;
--	GtkWidget *button;
--	GtkWidget *widget;
--
--	dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
--	gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
--	gtk_window_set_transient_for(GTK_WINDOW(dialog),
--						GTK_WINDOW(data->window));
--	gtk_window_set_title(GTK_WINDOW(dialog), _("Advanced Settings"));
--	gtk_window_set_position(GTK_WINDOW(dialog),
--					GTK_WIN_POS_CENTER_ON_PARENT);
--	gtk_window_set_default_size(GTK_WINDOW(dialog), 460, 320);
--	g_signal_connect(G_OBJECT(dialog), "delete-event",
--					G_CALLBACK(delete_callback), NULL);
--
--	vbox = gtk_vbox_new(FALSE, 12);
--	gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
--	gtk_container_add(GTK_CONTAINER(dialog), vbox);
--
--	notebook = gtk_notebook_new();
--	gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0);
--
--	buttonbox = gtk_hbutton_box_new();
--	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox), GTK_BUTTONBOX_END);
--	gtk_box_set_spacing(GTK_BOX(buttonbox), 6);
--	gtk_box_pack_start(GTK_BOX(vbox), buttonbox, FALSE, FALSE, 0);
--
--	button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
--	gtk_container_add(GTK_CONTAINER(buttonbox), button);
--	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(close_callback), dialog);
--
--	button = gtk_button_new_from_stock(GTK_STOCK_OK);
--	gtk_container_add(GTK_CONTAINER(buttonbox), button);
--	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(close_callback), dialog);
--
--	if (type == CONNMAN_TYPE_WIFI) {
--		widget = gtk_vbox_new(FALSE, 24);
--		gtk_container_set_border_width(GTK_CONTAINER(widget), 24);
--		gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL);
--		gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook),
--							widget, _("Wireless"));
--		add_network(widget, data);
--	}
--
--	widget = gtk_vbox_new(FALSE, 24);
--	gtk_container_set_border_width(GTK_CONTAINER(widget), 24);
--	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL);
--	gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook),
--						widget, _("TCP/IP"));
--	add_config(widget, data);
--
--	widget = gtk_label_new(NULL);
--	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL);
--	gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook),
--						widget, _("DNS"));
--
--	if (type == CONNMAN_TYPE_ETHERNET) {
--		widget = gtk_label_new(NULL);
--		gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL);
--		gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook),
--							widget, _("Ethernet"));
--	}
--
--	data->dialog = dialog;
--}
-diff --git a/properties/advanced.h b/properties/advanced.h
-index f85f10d..42b439f 100644
---- a/properties/advanced.h
-+++ b/properties/advanced.h
-@@ -23,6 +23,7 @@ struct config_data {
- 	ConnmanClient *client;
- 
- 	GtkWidget *widget;
-+	GtkWidget *table;
- 	GtkWidget *title;
- 	GtkWidget *label;
- 	GtkWidget *button;
-@@ -45,15 +46,34 @@ struct config_data {
- 		GtkWidget *value[3];
- 		GtkWidget *entry[3];
- 	} ipv4;
--};
- 
--void create_advanced_dialog(struct config_data *data, guint type);
-+	struct ipv4_config ipv4_config;
-+
-+	struct {
-+		GtkWidget *name;
-+		GtkWidget *security;
-+		GtkWidget *strength;
-+		GtkWidget *passphrase;
-+		GtkWidget *connect_info;
-+		GtkWidget *connect;
-+		GtkWidget *disconnect;
-+	} wifi;
- 
--void add_ethernet_policy(GtkWidget *mainbox, struct config_data *data);
--void update_ethernet_policy(struct config_data *data, guint policy);
-+	GtkWidget *ethernet_button;
-+	GtkWidget *wifi_button;
- 
--void add_wifi_policy(GtkWidget *mainbox, struct config_data *data);
-+	GtkWidget *scan_button;
-+	GtkWidget *offline_button;
-+};
-+
-+void add_ethernet_policy(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data);
-+void update_ethernet_ipv4(struct config_data *data, guint policy);
-+
-+void add_wifi_policy(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data);
- void update_wifi_policy(struct config_data *data, guint policy);
- 
--gboolean separator_function(GtkTreeModel *model,
--					GtkTreeIter *iter, gpointer user_data);
-+void add_ethernet_switch_button(GtkWidget *mainbox, GtkTreeIter *iter,
-+				struct config_data *data);
-+
-+void add_wifi_switch_button(GtkWidget *mainbox, GtkTreeIter *iter,
-+				struct config_data *data);
-diff --git a/properties/ethernet.c b/properties/ethernet.c
-index d5c948d..d443ca1 100644
---- a/properties/ethernet.c
-+++ b/properties/ethernet.c
-@@ -23,6 +23,7 @@
- #include <config.h>
- #endif
- 
-+#include <dbus/dbus-glib.h>
- #include <glib/gi18n.h>
- #include <gtk/gtk.h>
- 
-@@ -30,93 +31,220 @@
- 
- #include "advanced.h"
- 
-+static gboolean separator_function(GtkTreeModel *model,
-+					GtkTreeIter *iter, gpointer user_data)
-+{
-+	gchar *text;
-+	gboolean result = FALSE;
-+
-+	gtk_tree_model_get(model, iter, 0, &text, -1);
-+
-+	if (text && *text == '\0')
-+		result = TRUE;
-+
-+	g_free(text);
-+
-+	return result;
-+}
-+
- static void changed_callback(GtkWidget *editable, gpointer user_data)
- {
- 	struct config_data *data = user_data;
- 	gint active;
- 
- 	active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->policy.config));
-+	update_ethernet_ipv4(data, active);
-+}
- 
--	switch (active) {
--	case 0:
--		connman_client_set_policy(data->client, data->device, "auto");
--		update_ethernet_policy(data, CONNMAN_POLICY_AUTO);
--		break;
--	case 1:
--		connman_client_set_policy(data->client, data->device, "ignore");
--		update_ethernet_policy(data, CONNMAN_POLICY_IGNORE);
--		break;
--	case 3:
--		connman_client_set_policy(data->client, data->device, "off");
--		update_ethernet_policy(data, CONNMAN_POLICY_OFF);
--		break;
--	}
-+static void apply_callback(GtkWidget *editable, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+	gint active;
-+
-+	active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->policy.config));
-+	data->ipv4_config.method = active ? "manual" : "dhcp";
-+	data->ipv4_config.address = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[0])) : NULL;
-+	data->ipv4_config.netmask = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[1])) : NULL;
-+	data->ipv4_config.gateway = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[2])) : NULL;
-+
-+	connman_client_set_ipv4(data->client, data->device, &data->ipv4_config);
-+}
-+
-+static void switch_callback(GtkWidget *editable, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+	const gchar *label = gtk_button_get_label(GTK_BUTTON(data->ethernet_button));
-+	if (g_str_equal(label, "Disable"))
-+		connman_client_disable_technology(data->client, data->device, "ethernet");
-+	else if (g_str_equal(label, "Enable"))
-+		connman_client_enable_technology(data->client, data->device, "ethernet");
- }
- 
--void add_ethernet_policy(GtkWidget *mainbox, struct config_data *data)
-+void add_ethernet_switch_button(GtkWidget *mainbox, GtkTreeIter *iter,
-+				struct config_data *data)
-+{
-+	GtkWidget *vbox;
-+	GtkWidget *table;
-+	GtkWidget *label;
-+	GtkWidget *buttonbox;
-+	GtkWidget *button;
-+	gboolean ethernet_enabled;
-+
-+	gtk_tree_model_get(data->model, iter,
-+			CONNMAN_COLUMN_ETHERNET_ENABLED, &ethernet_enabled,
-+			-1);
-+
-+	vbox = gtk_vbox_new(TRUE, 0);
-+	gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
-+	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
-+
-+	table = gtk_table_new(1, 1, TRUE);
-+	gtk_table_set_row_spacings(GTK_TABLE(table), 10);
-+	gtk_table_set_col_spacings(GTK_TABLE(table), 10);
-+	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
-+
-+	label = gtk_label_new(_("Enable/Disable Wired Networks."));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
-+
-+	buttonbox = gtk_hbutton_box_new();
-+	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox), GTK_BUTTONBOX_CENTER);
-+	gtk_box_pack_start(GTK_BOX(mainbox), buttonbox, FALSE, FALSE, 0);
-+
-+	button = gtk_button_new();
-+	data->ethernet_button = button;
-+
-+	if (ethernet_enabled)
-+		gtk_button_set_label(GTK_BUTTON(button), _("Disable"));
-+	else
-+		gtk_button_set_label(GTK_BUTTON(button), _("Enable"));
-+
-+	gtk_container_add(GTK_CONTAINER(buttonbox), button);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(switch_callback), data);
-+}
-+
-+void add_ethernet_policy(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data)
- {
- 	GtkWidget *vbox;
- 	GtkWidget *table;
- 	GtkWidget *label;
- 	GtkWidget *combo;
-+	GtkWidget *entry;
-+	GtkWidget *button;
-+
-+	struct ipv4_config ipv4_config = {
-+		.method  = NULL,
-+		.address = NULL,
-+		.netmask = NULL,
-+		.gateway = NULL,
-+	};
-+
-+	gtk_tree_model_get(data->model, iter,
-+			CONNMAN_COLUMN_METHOD, &ipv4_config.method,
-+			CONNMAN_COLUMN_ADDRESS, &ipv4_config.address,
-+			CONNMAN_COLUMN_NETMASK, &ipv4_config.netmask,
-+			CONNMAN_COLUMN_GATEWAY, &ipv4_config.gateway,
-+			-1);
- 
--	vbox = gtk_vbox_new(FALSE, 0);
-+	vbox = gtk_vbox_new(TRUE, 0);
- 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
- 	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
- 
--	table = gtk_table_new(2, 4, FALSE);
--	gtk_table_set_row_spacings(GTK_TABLE(table), 8);
--	gtk_table_set_col_spacings(GTK_TABLE(table), 8);
-+	table = gtk_table_new(5, 5, TRUE);
-+	gtk_table_set_row_spacings(GTK_TABLE(table), 10);
-+	gtk_table_set_col_spacings(GTK_TABLE(table), 10);
- 	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
- 
- 	label = gtk_label_new(_("Configuration:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 0, 1);
- 
- 	combo = gtk_combo_box_new_text();
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Automatically");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Ignore Interface");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Off");
-+	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "DHCP");
-+	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Manual");
- 	gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
--					separator_function, NULL, NULL);
--	gtk_table_attach_defaults(GTK_TABLE(table), combo, 1, 4, 0, 1);
-+			separator_function, NULL, NULL);
-+
-+	gtk_table_attach_defaults(GTK_TABLE(table), combo, 2, 4, 0, 1);
- 	data->policy.config = combo;
- 
--	label = gtk_label_new(NULL);
--	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
--	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 4, 1, 2);
--	gtk_widget_set_size_request(label, 180, -1);
--	data->policy.label = label;
-+	label = gtk_label_new(_("IP address:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 1, 2);
-+	data->ipv4.label[0] = label;
-+
-+	entry = gtk_entry_new();
-+	gtk_entry_set_max_length (GTK_ENTRY (entry), 15);
-+	if (ipv4_config.address)
-+		gtk_entry_set_text(GTK_ENTRY(entry), ipv4_config.address);
-+	gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 1, 2);
-+	data->ipv4.entry[0] = entry;
-+
-+	label = gtk_label_new(_("Netmask:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 2, 3);
-+	data->ipv4.label[1] = label;
-+
-+	entry = gtk_entry_new();
-+	gtk_entry_set_max_length (GTK_ENTRY (entry), 15);
-+	if (ipv4_config.netmask)
-+		gtk_entry_set_text(GTK_ENTRY(entry), ipv4_config.netmask);
-+	gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 2, 3);
-+	data->ipv4.entry[1] = entry;
-+
-+	label = gtk_label_new(_("Gateway:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 3, 4);
-+	data->ipv4.label[2] = label;
-+
-+	entry = gtk_entry_new();
-+	gtk_entry_set_max_length (GTK_ENTRY (entry), 15);
-+	if (ipv4_config.gateway)
-+		gtk_entry_set_text(GTK_ENTRY(entry), ipv4_config.gateway);
-+	gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 3, 4);
-+	data->ipv4.entry[2] = entry;
-+
-+	data->ipv4_config = ipv4_config;
-+
-+	button = gtk_button_new_with_label(_("Apply"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), button, 3, 4, 4, 5);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(apply_callback), data);
-+
-+	data->button = button;
-+
-+	if (g_str_equal(ipv4_config.method, "dhcp") == TRUE)
-+		update_ethernet_ipv4(data, CONNMAN_POLICY_DHCP);
-+	else
-+		update_ethernet_ipv4(data, CONNMAN_POLICY_MANUAL);
- 
- 	g_signal_connect(G_OBJECT(combo), "changed",
--				G_CALLBACK(changed_callback), data);
-+			G_CALLBACK(changed_callback), data);
- }
- 
--void update_ethernet_policy(struct config_data *data, guint policy)
-+void update_ethernet_ipv4(struct config_data *data, guint policy)
- {
- 	GtkWidget *combo = data->policy.config;
--	gchar *info = NULL;
-+	GtkWidget *entry[3];
-+	int i;
-+
-+	for (i = 0; i < 3; i++)
-+		entry[i] = data->ipv4.entry[i];
- 
- 	g_signal_handlers_block_by_func(G_OBJECT(combo),
--					G_CALLBACK(changed_callback), data);
-+			G_CALLBACK(changed_callback), data);
- 
- 	switch (policy) {
--	case CONNMAN_POLICY_OFF:
--		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 3);
-+	case CONNMAN_POLICY_DHCP:
-+		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
-+		for (i = 0; i < 3; i++) {
-+			gtk_entry_set_editable(GTK_ENTRY(entry[i]), 0);
-+			gtk_widget_set_sensitive(entry[i], 0);
-+			gtk_entry_set_text(GTK_ENTRY(entry[i]), _(""));
-+		}
- 		break;
--	case CONNMAN_POLICY_IGNORE:
-+	case CONNMAN_POLICY_MANUAL:
- 		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 1);
--		info = g_strdup_printf(_("Ignore the interface and don't "
--				"make any attempts for configuration."));
--		break;
--	case CONNMAN_POLICY_AUTO:
--		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
--		info = g_strdup_printf(_("Detect carrier and then "
--				"automatically configure the interface."));
-+		for (i = 0; i < 3; i++) {
-+			gtk_entry_set_editable(GTK_ENTRY(entry[i]), 1);
-+			gtk_widget_set_sensitive(entry[i], 1);
-+		}
- 		break;
- 	default:
- 		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), -1);
-@@ -124,9 +252,5 @@ void update_ethernet_policy(struct config_data *data, guint policy)
- 	}
- 
- 	g_signal_handlers_unblock_by_func(G_OBJECT(combo),
--					G_CALLBACK(changed_callback), data);
--
--	gtk_label_set_markup(GTK_LABEL(data->policy.label), info);
--
--	g_free(info);
-+			G_CALLBACK(changed_callback), data);
- }
-diff --git a/properties/main.c b/properties/main.c
-index 01439e6..6b389bc 100644
---- a/properties/main.c
-+++ b/properties/main.c
-@@ -32,103 +32,139 @@
- 
- static ConnmanClient *client;
- static GtkWidget *interface_notebook;
-+static struct config_data *current_data;
- 
--static void update_status(struct config_data *data,
--				guint type, gboolean inrange, guint policy,
--				const gchar *network, const gchar *address)
-+static void status_update(GtkTreeModel *model, GtkTreePath  *path,
-+		GtkTreeIter  *iter, gpointer user_data)
- {
--	const char *str;
--	gchar *markup, *info = NULL;
- 
--	switch (type) {
--	case CONNMAN_TYPE_ETHERNET:
--		if (inrange == TRUE) {
--			str = N_("Connected");
--			info = g_strdup_printf(_("%s is currently active "
--						"and has the IP address %s."),
--						N_("Ethernet"), address);
--		} else {
--			str = N_("Cable Unplugged");
--			info = g_strdup_printf(_("The cable for %s is "
--					"not plugged in."), N_("Ethernet"));
--		}
--		break;
-+	struct config_data *data = user_data;
-+	guint type;
-+	const char *name = NULL, *_name = NULL, *state = NULL;
-+	gboolean ethernet_enabled;
-+	gboolean wifi_enabled;
-+	gboolean offline_mode;
- 
--	case CONNMAN_TYPE_WIFI:
--		if (inrange == TRUE) {
--			str = N_("Connected");
--			info = g_strdup_printf(_("%s is currently active "
--						"and has the IP address %s."),
--						N_("Wireless"), address);
--		} else
--			str = N_("Not Connected");
--		break;
-+	gtk_tree_model_get(model, iter,
-+			CONNMAN_COLUMN_STATE, &state,
-+			CONNMAN_COLUMN_NAME, &name,
-+			CONNMAN_COLUMN_TYPE, &type,
-+			CONNMAN_COLUMN_ETHERNET_ENABLED, &ethernet_enabled, 
-+			CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled, 
-+			CONNMAN_COLUMN_OFFLINEMODE, &offline_mode, 
-+			-1);
-+
-+	if (type == CONNMAN_TYPE_WIFI) {
-+		if (data->wifi.name)
-+			_name = gtk_label_get_text(GTK_LABEL(data->wifi.name));
-+
-+		if (!(name && _name && g_str_equal(name, _name)))
-+			return;
- 
--	default:
--		if (inrange == TRUE)
--			str = N_("Connected");
-+		if (g_str_equal(state, "failure") == TRUE) {
-+			gtk_label_set_text(GTK_LABEL(data->wifi.connect_info),
-+					_("connection failed"));
-+			gtk_widget_show(data->wifi.connect_info);
-+			gtk_widget_show(data->wifi.connect);
-+			gtk_widget_hide(data->wifi.disconnect);
-+		} else if (g_str_equal(state, "idle") == TRUE) {
-+			gtk_widget_hide(data->wifi.connect_info);
-+			gtk_widget_show(data->wifi.connect);
-+			gtk_widget_hide(data->wifi.disconnect);
-+		} else {
-+			gtk_widget_hide(data->wifi.connect_info);
-+			gtk_widget_hide(data->wifi.connect);
-+			gtk_widget_show(data->wifi.disconnect);
-+		}
-+	} else if (type == CONNMAN_TYPE_LABEL_ETHERNET) {
-+		if (!data->ethernet_button)
-+			return;
-+		if (ethernet_enabled)
-+			gtk_button_set_label(GTK_BUTTON(data->ethernet_button), _("Disable"));
- 		else
--			str = N_("Not Connected");
--		break;
-+			gtk_button_set_label(GTK_BUTTON(data->ethernet_button), _("Enable"));
-+	} else if (type == CONNMAN_TYPE_LABEL_WIFI) {
-+		if (!data->wifi_button)
-+			return;
-+		if (wifi_enabled) {
-+			gtk_button_set_label(GTK_BUTTON(data->wifi_button), _("Disable"));
-+			gtk_widget_set_sensitive(data->scan_button, 1);
-+		} else {
-+			gtk_button_set_label(GTK_BUTTON(data->wifi_button), _("Enable"));
-+			gtk_widget_set_sensitive(data->scan_button, 0);
-+		}
-+	} else if (type == CONNMAN_TYPE_SYSCONFIG) {
-+		if (!data->offline_button)
-+			return;
-+		if (offline_mode)
-+			gtk_button_set_label(GTK_BUTTON(data->offline_button), _("OnlineMode"));
-+		else
-+			gtk_button_set_label(GTK_BUTTON(data->offline_button), _("OfflineMode"));
- 	}
-+}
- 
--	markup = g_strdup_printf("<b>%s</b>", str);
--	gtk_label_set_markup(GTK_LABEL(data->title), markup);
--	g_free(markup);
--
--	gtk_label_set_markup(GTK_LABEL(data->label), info);
--
--	g_free(info);
--
--	switch (type) {
--	case CONNMAN_TYPE_ETHERNET:
--		update_ethernet_policy(data, policy);
--		break;
--	case CONNMAN_TYPE_WIFI:
--		update_wifi_policy(data, policy);
--		break;
--	default:
--		break;
--	}
-+static void set_offline_callback(GtkWidget *button, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+	const gchar *label = gtk_button_get_label(GTK_BUTTON(data->offline_button));
-+	if (g_str_equal(label, "OnlineMode"))
-+		connman_client_set_offlinemode(client, 0);
-+	else if (g_str_equal(label, "OfflineMode"))
-+		connman_client_set_offlinemode(client, 1);
- }
- 
--static void update_config(struct config_data *data)
-+static void add_system_config(GtkWidget *mainbox, GtkTreeIter *iter,
-+		struct config_data *data)
- {
--	GtkTreeIter iter;
--	guint type;
--	gchar *network;
-+	GtkWidget *vbox;
-+	GtkWidget *table;
-+	GtkWidget *label;
-+	GtkWidget *buttonbox;
-+	GtkWidget *button;
-+	gboolean offline_mode;
- 
--	if (gtk_tree_model_get_iter_from_string(data->model,
--						&iter, data->index) == FALSE)
--		return;
-+	vbox = gtk_vbox_new(TRUE, 0);
-+	gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
-+	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
- 
--	gtk_tree_model_get(data->model, &iter,
--				CONNMAN_COLUMN_TYPE, &type,
--				CONNMAN_COLUMN_NAME, &network, -1);
-+	table = gtk_table_new(1, 1, TRUE);
-+	gtk_table_set_row_spacings(GTK_TABLE(table), 10);
-+	gtk_table_set_col_spacings(GTK_TABLE(table), 10);
-+	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
- 
--	g_free(network);
--}
-+	label = gtk_label_new(_("System Configuration"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
- 
--static void advanced_callback(GtkWidget *button, gpointer user_data)
--{
--	struct config_data *data = user_data;
-+	buttonbox = gtk_hbutton_box_new();
-+	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox), GTK_BUTTONBOX_CENTER);
-+	gtk_box_pack_start(GTK_BOX(mainbox), buttonbox, FALSE, FALSE, 0);
-+
-+	gtk_tree_model_get(data->model, iter,
-+			CONNMAN_COLUMN_OFFLINEMODE, &offline_mode,
-+			-1);
-+
-+	button = gtk_button_new();
-+	data->offline_button = button;
-+	if (offline_mode)
-+		gtk_button_set_label(GTK_BUTTON(button), _("OnlineMode"));
-+	else
-+		gtk_button_set_label(GTK_BUTTON(button), _("OfflineMode"));
- 
--	gtk_widget_show_all(data->dialog);
-+	gtk_container_add(GTK_CONTAINER(buttonbox), button);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(set_offline_callback), data);
- }
- 
- static struct config_data *create_config(GtkTreeModel *model,
--					GtkTreeIter *iter, gpointer user_data)
-+		GtkTreeIter *iter, gpointer user_data)
- {
- 	GtkWidget *mainbox;
- 	GtkWidget *label;
- 	GtkWidget *hbox;
--	GtkWidget *button;
- 	struct config_data *data;
- 	DBusGProxy *proxy;
--	guint type, policy;
--	gboolean inrange;
--	gchar *markup, *vendor = NULL, *product = NULL;
--	gchar *network = NULL, *address = NULL;
-+	guint type;
-+	char *state = NULL;
- 
- 	data = g_try_new0(struct config_data, 1);
- 	if (data == NULL)
-@@ -137,15 +173,10 @@ static struct config_data *create_config(GtkTreeModel *model,
- 	data->client = client;
- 
- 	gtk_tree_model_get(model, iter,
--				CONNMAN_COLUMN_PROXY, &proxy,
--				CONNMAN_COLUMN_TYPE, &type,
--				CONNMAN_COLUMN_INRANGE, &inrange,
--				CONNMAN_COLUMN_NETWORK, &network,
--				CONNMAN_COLUMN_ADDRESS, &address,
--				CONNMAN_COLUMN_POLICY, &policy, -1);
--
--	data->device = g_strdup(dbus_g_proxy_get_path(proxy));
--	g_object_unref(proxy);
-+			CONNMAN_COLUMN_PROXY, &proxy,
-+			CONNMAN_COLUMN_TYPE, &type,
-+			CONNMAN_COLUMN_STATE, &state,
-+			-1);
- 
- 	mainbox = gtk_vbox_new(FALSE, 6);
- 	data->widget = mainbox;
-@@ -163,12 +194,27 @@ static struct config_data *create_config(GtkTreeModel *model,
- 	gtk_box_pack_start(GTK_BOX(mainbox), label, FALSE, FALSE, 0);
- 	data->label = label;
- 
-+	data->window = user_data;
-+	data->model = model;
-+	data->index = gtk_tree_model_get_string_from_iter(model, iter);
-+	data->device = g_strdup(dbus_g_proxy_get_path(proxy));
-+	g_object_unref(proxy);
-+
- 	switch (type) {
- 	case CONNMAN_TYPE_ETHERNET:
--		add_ethernet_policy(mainbox, data);
-+		add_ethernet_policy(mainbox, iter, data);
- 		break;
- 	case CONNMAN_TYPE_WIFI:
--		add_wifi_policy(mainbox, data);
-+		add_wifi_policy(mainbox, iter, data);
-+		break;
-+	case CONNMAN_TYPE_LABEL_ETHERNET:
-+		add_ethernet_switch_button(mainbox, iter, data);
-+		break;
-+	case CONNMAN_TYPE_LABEL_WIFI:
-+		add_wifi_switch_button(mainbox, iter, data);
-+		break;
-+	case CONNMAN_TYPE_SYSCONFIG:
-+		add_system_config(mainbox, iter, data);
- 		break;
- 	default:
- 		break;
-@@ -183,34 +229,10 @@ static struct config_data *create_config(GtkTreeModel *model,
- 	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 1.0);
- 	gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
- 
--	markup = g_strdup_printf("%s\n<small>%s</small>",
--			vendor ? vendor : "", product ? product : "");
--	gtk_label_set_markup(GTK_LABEL(label), markup);
--	g_free(markup);
--
--	if (0) {
--		button = gtk_button_new_with_label(_("Advanced..."));
--		gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
--		g_signal_connect(G_OBJECT(button), "clicked",
--				G_CALLBACK(advanced_callback), data);
--		data->button = button;
--	}
--
--	data->window = user_data;
--	create_advanced_dialog(data, type);
--
--	update_status(data, type, inrange, policy, network, address);
--
--	g_free(network);
--	g_free(address);
--
--	data->model = model;
--	data->index = gtk_tree_model_get_string_from_iter(model, iter);
--
- 	gtk_widget_show_all(mainbox);
- 
--	g_free(product);
--	g_free(vendor);
-+	g_signal_connect(G_OBJECT(model), "row-changed",
-+			G_CALLBACK(status_update), data);
- 
- 	return data;
- }
-@@ -230,112 +252,108 @@ static void select_callback(GtkTreeSelection *selection, gpointer user_data)
- 		return;
- 	}
- 
--	if (data == NULL) {
--		data = create_config(model, &iter, user_data);
--		if (data == NULL)
--			return;
-+	if (current_data) {
-+		g_signal_handlers_disconnect_by_func(G_OBJECT(model),
-+				G_CALLBACK(status_update), current_data);
-+		g_free(current_data);
-+	}
-+	data = create_config(model, &iter, user_data);
-+	if (data == NULL)
-+		return;
- 
--		page = gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
--							data->widget, NULL);
--	} else {
--		update_config(data);
-+	current_data = data;
- 
--		page = gtk_notebook_page_num(GTK_NOTEBOOK(notebook),
--								data->widget);
--	}
-+	page = gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
-+				data->widget, NULL);
- 
- 	gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), page);
--
- 	gtk_widget_show(notebook);
- }
- 
--static void row_changed(GtkTreeModel *model, GtkTreePath  *path,
--				GtkTreeIter  *iter, gpointer user_data)
-+static void device_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
-+		GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
- {
- 	guint type;
--	gboolean powered, inrange;
-+	char *markup, *name, *state;
-+	const char *title;
- 
- 	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_TYPE, &type,
--					CONNMAN_COLUMN_ENABLED, &powered,
--					CONNMAN_COLUMN_INRANGE, &inrange, -1);
--}
--
--static void state_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	gboolean inrange;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_INRANGE, &inrange, -1);
--
--	if (inrange == TRUE)
--		g_object_set(cell, "icon-name", GTK_STOCK_YES, NULL);
--	else
--		g_object_set(cell, "icon-name", NULL, NULL);
--}
--
--static void type_to_text(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
--{
--	guint type;
--	gboolean powered, inrange;
--	gchar *markup;
--	const char *title, *info;
--
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_TYPE, &type,
--					CONNMAN_COLUMN_ENABLED, &powered,
--					CONNMAN_COLUMN_INRANGE, &inrange, -1);
-+			CONNMAN_COLUMN_NAME, &name,
-+			CONNMAN_COLUMN_STATE, &state,
-+			-1);
- 
- 	switch (type) {
- 	case CONNMAN_TYPE_ETHERNET:
- 		title = N_("Ethernet");
-+		markup = g_strdup_printf("  %s\n", title);
- 		break;
- 	case CONNMAN_TYPE_WIFI:
--		title = N_("Wireless");
-+		/* Show the AP name */
-+		title = N_(name);
-+		if (g_str_equal(state, "association") == TRUE)
-+			state = "associating...";
-+		else if (g_str_equal(state, "configuration") == TRUE)
-+			state = "configurating...";
-+		else if (g_str_equal(state, "ready") == TRUE ||
-+			 g_str_equal(state, "online") == TRUE)
-+			state = "connnected";
-+		else
-+			state = "";
-+		markup = g_strdup_printf("  %s\n  %s", title, state);
-+
- 		break;
- 	case CONNMAN_TYPE_WIMAX:
- 		title = N_("WiMAX");
-+		markup = g_strdup_printf("  %s\n", title);
- 		break;
- 	case CONNMAN_TYPE_BLUETOOTH:
- 		title = N_("Bluetooth");
-+		markup = g_strdup_printf("  %s\n", title);
-+		break;
-+	case CONNMAN_TYPE_LABEL_ETHERNET:
-+		title = N_("Wired Networks");
-+		markup = g_strdup_printf("<b>\n%s\n</b>", title);
-+		break;
-+	case CONNMAN_TYPE_LABEL_WIFI:
-+		title = N_("Wireless Networks");
-+		markup = g_strdup_printf("<b>\n%s\n</b>", title);
-+		break;
-+	case CONNMAN_TYPE_SYSCONFIG:
-+		title = N_("System Configuration");
-+		markup = g_strdup_printf("<b>\n%s\n</b>", title);
- 		break;
- 	default:
- 		title = N_("Unknown");
-+		markup = g_strdup_printf("  %s\n", title);
- 		break;
- 	}
- 
--	if (powered == TRUE) {
--		if (inrange == TRUE)
--			info = N_("Connected");
--		else
--			info = N_("Not Connected");
--	} else
--		info = N_("Disabled");
--
--	markup = g_strdup_printf("<b>%s</b>\n<small>%s</small>", title, info);
- 	g_object_set(cell, "markup", markup, NULL);
--	g_free(markup);
- }
- 
- static void type_to_icon(GtkTreeViewColumn *column, GtkCellRenderer *cell,
--			GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
-+		GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
- {
--	guint type;
-+	guint type, strength;
-+	char *name;
- 
--	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_TYPE, &type, -1);
-+	gtk_tree_model_get(model, iter, CONNMAN_COLUMN_TYPE, &type,
-+					CONNMAN_COLUMN_STRENGTH, &strength,
-+					-1);
- 
- 	switch (type) {
--	case CONNMAN_TYPE_ETHERNET:
-+	case CONNMAN_TYPE_WIFI:
-+		name = g_strdup_printf("connman-signal-0%d", (strength-1)/20+1);
-+		g_object_set(cell, "icon-name", name,
-+				"stock-size", 4, NULL);
-+		break;
-+	case CONNMAN_TYPE_LABEL_ETHERNET:
- 		g_object_set(cell, "icon-name", "network-wired",
--						"stock-size", 5, NULL);
-+				"stock-size", 4, NULL);
- 		break;
--	case CONNMAN_TYPE_WIFI:
--	case CONNMAN_TYPE_WIMAX:
-+	case CONNMAN_TYPE_LABEL_WIFI:
- 		g_object_set(cell, "icon-name", "network-wireless",
--						"stock-size", 5, NULL);
--		break;
--	case CONNMAN_TYPE_BLUETOOTH:
--		g_object_set(cell, "icon-name", "bluetooth",
--						"stock-size", 5, NULL);
-+				"stock-size", 4, NULL);
- 		break;
- 	default:
- 		g_object_set(cell, "icon-name", NULL, NULL);
-@@ -362,40 +380,34 @@ static GtkWidget *create_interfaces(GtkWidget *window)
- 
- 	scrolled = gtk_scrolled_window_new(NULL, NULL);
- 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
--				GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-+			GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- 	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled),
--							GTK_SHADOW_OUT);
-+			GTK_SHADOW_OUT);
- 	gtk_box_pack_start(GTK_BOX(hbox), scrolled, FALSE, TRUE, 0);
- 
- 	tree = gtk_tree_view_new();
- 	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
- 	gtk_tree_view_set_show_expanders(GTK_TREE_VIEW(tree), FALSE);
- 	gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree), TRUE);
--	gtk_widget_set_size_request(tree, 180, -1);
-+	gtk_widget_set_size_request(tree, 220, -1);
- 	gtk_container_add(GTK_CONTAINER(scrolled), tree);
- 
- 
- 	column = gtk_tree_view_column_new();
- 	gtk_tree_view_column_set_expand(column, TRUE);
- 	gtk_tree_view_column_set_spacing(column, 4);
-+	gtk_tree_view_column_set_alignment(column, 0);
- 	gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
- 
- 	renderer = gtk_cell_renderer_pixbuf_new();
--	gtk_cell_renderer_set_fixed_size(renderer, 20, 45);
- 	gtk_tree_view_column_pack_start(column, renderer, FALSE);
- 	gtk_tree_view_column_set_cell_data_func(column, renderer,
--						state_to_icon, NULL, NULL);
-+			type_to_icon, NULL, NULL);
- 
- 	renderer = gtk_cell_renderer_text_new();
--	gtk_tree_view_column_pack_start(column, renderer, TRUE);
--	gtk_tree_view_column_set_cell_data_func(column, renderer,
--						type_to_text, NULL, NULL);
--
--	renderer = gtk_cell_renderer_pixbuf_new();
--	gtk_tree_view_column_pack_end(column, renderer, FALSE);
-+	gtk_tree_view_column_pack_start(column, renderer, FALSE);
- 	gtk_tree_view_column_set_cell_data_func(column, renderer,
--						type_to_icon, NULL, NULL);
--
-+			device_to_text, NULL, NULL);
- 
- 	interface_notebook = gtk_notebook_new();
- 	gtk_notebook_set_show_tabs(GTK_NOTEBOOK(interface_notebook), FALSE);
-@@ -405,21 +417,19 @@ static GtkWidget *create_interfaces(GtkWidget *window)
- 
- 	model = connman_client_get_device_model(client);
- 	gtk_tree_view_set_model(GTK_TREE_VIEW(tree), model);
-+
- 	g_object_unref(model);
- 
- 	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
- 	gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
- 	g_signal_connect(G_OBJECT(selection), "changed",
--					G_CALLBACK(select_callback), window);
--
--	g_signal_connect(G_OBJECT(model), "row-changed",
--					G_CALLBACK(row_changed), selection);
-+			G_CALLBACK(select_callback), window);
- 
- 	return mainbox;
- }
- 
- static gboolean delete_callback(GtkWidget *window, GdkEvent *event,
--							gpointer user_data)
-+		gpointer user_data)
- {
- 	gtk_widget_destroy(window);
- 
-@@ -451,7 +461,7 @@ static GtkWidget *create_window(void)
- 	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
- 	gtk_window_set_default_size(GTK_WINDOW(window), 580, 380);
- 	g_signal_connect(G_OBJECT(window), "delete-event",
--					G_CALLBACK(delete_callback), NULL);
-+			G_CALLBACK(delete_callback), NULL);
- 
- 	vbox = gtk_vbox_new(FALSE, 12);
- 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 12);
-@@ -467,12 +477,12 @@ static GtkWidget *create_window(void)
- 	button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- 	gtk_container_add(GTK_CONTAINER(buttonbox), button);
- 	g_signal_connect(G_OBJECT(button), "clicked",
--					G_CALLBACK(close_callback), window);
-+			G_CALLBACK(close_callback), window);
- 
- 	widget = create_interfaces(window);
- 	gtk_notebook_prepend_page(GTK_NOTEBOOK(notebook), widget, NULL);
- 	gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook),
--						widget, _("Devices"));
-+			widget, _("Services"));
- 
- 	gtk_widget_show_all(window);
- 
-@@ -487,6 +497,8 @@ int main(int argc, char *argv[])
- 	bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
- 	textdomain(GETTEXT_PACKAGE);
- 
-+	current_data = NULL;
-+
- 	gtk_init(&argc, &argv);
- 
- 	gtk_window_set_default_icon_name("network-wireless");
-diff --git a/properties/wifi.c b/properties/wifi.c
-index 320dce4..42fe7d2 100644
---- a/properties/wifi.c
-+++ b/properties/wifi.c
-@@ -23,6 +23,7 @@
- #include <config.h>
- #endif
- 
-+#include <dbus/dbus-glib.h>
- #include <glib/gi18n.h>
- #include <gtk/gtk.h>
- 
-@@ -30,6 +31,24 @@
- 
- #include "advanced.h"
- 
-+static void update_wifi_ipv4(struct config_data *data, guint policy);
-+
-+static gboolean separator_function(GtkTreeModel *model,
-+					GtkTreeIter *iter, gpointer user_data)
-+{
-+	gchar *text;
-+	gboolean result = FALSE;
-+
-+	gtk_tree_model_get(model, iter, 0, &text, -1);
-+
-+	if (text && *text == '\0')
-+		result = TRUE;
-+
-+	g_free(text);
-+
-+	return result;
-+}
-+
- static void changed_callback(GtkWidget *editable, gpointer user_data)
- {
- 	struct config_data *data = user_data;
-@@ -37,98 +56,357 @@ static void changed_callback(GtkWidget *editable, gpointer user_data)
- 
- 	active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->policy.config));
- 
--	switch (active) {
--	case 0:
--		connman_client_set_policy(data->client, data->device, "auto");
--		update_wifi_policy(data, CONNMAN_POLICY_AUTO);
--		break;
--	case 1:
--		connman_client_set_policy(data->client, data->device, "manual");
--		update_wifi_policy(data, CONNMAN_POLICY_MANUAL);
--		break;
--	case 3:
--		connman_client_set_policy(data->client, data->device, "off");
--		update_wifi_policy(data, CONNMAN_POLICY_OFF);
--		break;
-+	update_wifi_ipv4(data, active);
-+}
-+
-+static void connect_reply_cb(DBusGProxy *proxy, GError *error,
-+				   gpointer user_data)
-+{
-+	if (error)
-+		g_error_free(error);
-+}
-+
-+static void connect_callback(GtkWidget *editable, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+
-+	gboolean ret;
-+	gint active;
-+
-+	if (data->wifi.passphrase) {
-+		char *passphrase;
-+		passphrase = (gchar *)gtk_entry_get_text(GTK_ENTRY(data->wifi.passphrase));
-+		ret = connman_client_set_passphrase(data->client, data->device,
-+				passphrase);
-+
-+		if (ret == FALSE) {
-+			return;
-+		}
- 	}
-+
-+	active = gtk_combo_box_get_active(GTK_COMBO_BOX(data->policy.config));
-+	data->ipv4_config.method = active ? "manual" : "dhcp";
-+	data->ipv4_config.address = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[0])) : NULL;
-+	data->ipv4_config.netmask = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[1])) : NULL;
-+	data->ipv4_config.gateway = active ? gtk_entry_get_text(GTK_ENTRY(data->ipv4.entry[2])) : NULL;
-+	ret = connman_client_set_ipv4(data->client, data->device, &data->ipv4_config);
-+	if (ret == FALSE) {
-+		return;
-+	}
-+
-+	connman_client_connect_async(data->client, data->device, connect_reply_cb, data);
- }
- 
--void add_wifi_policy(GtkWidget *mainbox, struct config_data *data)
-+static void disconnect_callback(GtkWidget *editable, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+
-+	connman_client_disconnect(data->client, data->device);
-+}
-+
-+static void switch_callback(GtkWidget *editable, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+	const gchar *label = gtk_button_get_label(GTK_BUTTON(data->wifi_button));
-+
-+	if (g_str_equal(label, "Disable"))
-+		connman_client_disable_technology(data->client, data->device, "wifi");
-+	else
-+		connman_client_enable_technology(data->client, data->device, "wifi");
-+}
-+
-+static void scan_reply_cb(DBusGProxy *proxy, GError *error,
-+				   gpointer user_data)
-+{
-+	GtkWidget *button = user_data;
-+	gtk_widget_set_sensitive(button, 1);
-+
-+	if (error)
-+		g_error_free(error);
-+}
-+
-+static void scan_callback(GtkWidget *button, gpointer user_data)
-+{
-+	struct config_data *data = user_data;
-+	gtk_widget_set_sensitive(button, 0);
-+	connman_client_request_scan(data->client, "", scan_reply_cb, button);
-+}
-+
-+void add_wifi_switch_button(GtkWidget *mainbox, GtkTreeIter *iter,
-+				struct config_data *data)
- {
- 	GtkWidget *vbox;
- 	GtkWidget *table;
- 	GtkWidget *label;
--	GtkWidget *combo;
-+	GtkWidget *buttonbox;
-+	GtkWidget *button;
-+	gboolean wifi_enabled;
- 
--	vbox = gtk_vbox_new(FALSE, 0);
-+	gtk_tree_model_get(data->model, iter,
-+			CONNMAN_COLUMN_WIFI_ENABLED, &wifi_enabled,
-+			-1);
-+
-+	vbox = gtk_vbox_new(TRUE, 0);
- 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
- 	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
- 
--	table = gtk_table_new(2, 4, FALSE);
--	gtk_table_set_row_spacings(GTK_TABLE(table), 8);
--	gtk_table_set_col_spacings(GTK_TABLE(table), 8);
-+	table = gtk_table_new(1, 1, TRUE);
-+	gtk_table_set_row_spacings(GTK_TABLE(table), 10);
-+	gtk_table_set_col_spacings(GTK_TABLE(table), 10);
- 	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
- 
--#if 0
--	label = gtk_label_new(_("Network Name:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
-+	label = gtk_label_new(_("Configure Wifi Networks."));
- 	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
- 
--	combo = gtk_combo_box_new_text();
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Guest");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Off");
--	gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
--					separator_function, NULL, NULL);
--	gtk_table_attach_defaults(GTK_TABLE(table), combo, 1, 4, 0, 1);
--	data->policy.config = combo;
--#endif
-+	buttonbox = gtk_hbutton_box_new();
-+	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttonbox), GTK_BUTTONBOX_CENTER);
-+	gtk_box_pack_start(GTK_BOX(mainbox), buttonbox, FALSE, FALSE, 0);
-+
-+	button = gtk_button_new();
-+	data->wifi_button = button;
-+
-+	if (wifi_enabled)
-+		gtk_button_set_label(GTK_BUTTON(button), _("Disable"));
-+	else
-+		gtk_button_set_label(GTK_BUTTON(button), _("Enable"));
-+
-+	gtk_container_add(GTK_CONTAINER(buttonbox), button);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(switch_callback), data);
-+
-+	button = gtk_button_new_with_label(_("Scan"));
-+	data->scan_button = button;
-+
-+	if (!wifi_enabled)
-+		gtk_widget_set_sensitive(button, 0);
-+
-+	gtk_container_add(GTK_CONTAINER(buttonbox), button);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(scan_callback), data);
-+}
-+
-+
-+static void wifi_ipconfig(GtkWidget *table, struct config_data *data, GtkTreeIter *iter)
-+{
-+	GtkWidget *entry;
-+	GtkWidget *label;
-+	GtkWidget *combo;
-+	DBusGProxy *proxy;
-+
-+	struct ipv4_config ipv4_config = {
-+		.method  = NULL,
-+		.address = NULL,
-+		.netmask = NULL,
-+		.gateway = NULL,
-+	};
-+
-+	gtk_tree_model_get(data->model, iter,
-+			CONNMAN_COLUMN_PROXY, &proxy,
-+			CONNMAN_COLUMN_METHOD, &ipv4_config.method,
-+			CONNMAN_COLUMN_ADDRESS, &ipv4_config.address,
-+			CONNMAN_COLUMN_NETMASK, &ipv4_config.netmask,
-+			CONNMAN_COLUMN_GATEWAY, &ipv4_config.gateway,
-+			-1);
- 
- 	label = gtk_label_new(_("Configuration:"));
--	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
--	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1);
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 3, 4);
-+	data->ipv4.label[0] = label;
- 
- 	combo = gtk_combo_box_new_text();
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Automatically");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Manually");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "");
--	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Off");
-+	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "DHCP");
-+	gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Manual");
- 	gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
--					separator_function, NULL, NULL);
--	gtk_table_attach_defaults(GTK_TABLE(table), combo, 1, 4, 0, 1);
-+			separator_function, NULL, NULL);
-+
-+	gtk_table_attach_defaults(GTK_TABLE(table), combo, 2, 4, 3, 4);
- 	data->policy.config = combo;
- 
--	label = gtk_label_new(NULL);
--	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
-+	label = gtk_label_new(_("IP address:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 4, 5);
-+	data->ipv4.label[0] = label;
-+
-+	entry = gtk_entry_new();
-+	gtk_entry_set_max_length (GTK_ENTRY (entry), 15);
-+	if (ipv4_config.address)
-+		gtk_entry_set_text(GTK_ENTRY(entry), ipv4_config.address);
-+	gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 4, 5);
-+	data->ipv4.entry[0] = entry;
-+
-+	label = gtk_label_new(_("Netmask:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 5, 6);
-+	data->ipv4.label[1] = label;
-+
-+	entry = gtk_entry_new();
-+	gtk_entry_set_max_length (GTK_ENTRY (entry), 15);
-+	if (ipv4_config.netmask)
-+		gtk_entry_set_text(GTK_ENTRY(entry), ipv4_config.netmask);
-+	gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 5, 6);
-+	data->ipv4.entry[1] = entry;
-+
-+	label = gtk_label_new(_("Gateway:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 6, 7);
-+	data->ipv4.label[2] = label;
-+
-+	entry = gtk_entry_new();
-+	gtk_entry_set_max_length (GTK_ENTRY (entry), 15);
-+	if (ipv4_config.gateway)
-+		gtk_entry_set_text(GTK_ENTRY(entry), ipv4_config.gateway);
-+	gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 6, 7);
-+	data->ipv4.entry[2] = entry;
-+
-+	data->ipv4_config = ipv4_config;
-+
-+	if (g_str_equal(ipv4_config.method, "dhcp") == TRUE)
-+		update_wifi_ipv4(data, CONNMAN_POLICY_DHCP);
-+	else
-+		update_wifi_ipv4(data, CONNMAN_POLICY_MANUAL);
-+
-+	g_signal_connect(G_OBJECT(combo), "changed",
-+			G_CALLBACK(changed_callback), data);
-+}
-+
-+static void toggled_callback(GtkWidget *button, gpointer user_data)
-+{
-+	GtkWidget *entry = user_data;
-+	gboolean mode;
-+
-+	mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
-+
-+	gtk_entry_set_visibility(GTK_ENTRY(entry), mode);
-+}
-+
-+void add_wifi_policy(GtkWidget *mainbox, GtkTreeIter *iter, struct config_data *data)
-+{
-+	GtkWidget *vbox;
-+	GtkWidget *table;
-+	GtkWidget *label;
-+	GtkWidget *entry;
-+	GtkWidget *button;
-+
-+	const char *name, *security, *icon, *state;
-+	guint strength;
-+
-+	gtk_tree_model_get(data->model, iter,
-+			CONNMAN_COLUMN_NAME, &name,
-+			CONNMAN_COLUMN_SECURITY, &security,
-+			CONNMAN_COLUMN_ICON, &icon,
-+			CONNMAN_COLUMN_STATE, &state,
-+			CONNMAN_COLUMN_STRENGTH, &strength,
-+			-1);
-+
-+	if (g_str_equal(state, "failure") == TRUE)
-+		connman_client_remove(data->client, data->device);
-+
-+	vbox = gtk_vbox_new(TRUE, 0);
-+	gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
-+	gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
-+
-+	table = gtk_table_new(10, 5, TRUE);
-+	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
-+	data->table = table;
-+
-+	label = gtk_label_new(_("Access Point:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 0, 1);
-+
-+	label = gtk_label_new(_(name));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 4, 0, 1);
- 	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
-+	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-+	data->wifi.name = label;
-+
-+	label = gtk_label_new(_("Security:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 1, 2);
-+
-+	label = gtk_label_new(_(security));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 4, 1, 2);
-+	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
-+	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-+	data->wifi.security = label;
-+
-+	label = gtk_label_new(_("Passphrase:"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 2, 3);
-+
-+	if (g_str_equal(security, "none") != TRUE &&
-+			g_str_equal(security, "unknown") != TRUE) {
-+		entry = gtk_entry_new();
-+		gtk_entry_set_max_length (GTK_ENTRY (entry), 64);
-+		gtk_table_attach_defaults(GTK_TABLE(table), entry, 2, 4, 2, 3);
-+		gtk_entry_set_visibility(GTK_ENTRY(entry), 0);
-+		data->wifi.passphrase = entry;
-+
-+		button = gtk_check_button_new_with_label(_("Show input"));
-+		gtk_table_attach_defaults(GTK_TABLE(table), button, 4, 5, 2, 3);
-+
-+		g_signal_connect(G_OBJECT(button), "toggled",
-+				G_CALLBACK(toggled_callback), entry);
-+
-+
-+	} else {
-+		label = gtk_label_new(_("none"));
-+		gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 4, 2, 3);
-+		gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
-+		gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-+		data->wifi.passphrase = NULL;
-+	}
-+
-+	label = gtk_label_new(_(""));
-+	gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 8, 9);
- 	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
--	gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 4, 1, 2);
--	gtk_widget_set_size_request(label, 180, -1);
--	data->policy.label = label;
-+	gtk_widget_hide(label);
-+	data->wifi.connect_info = label;
- 
--	g_signal_connect(G_OBJECT(combo), "changed",
--				G_CALLBACK(changed_callback), data);
-+	button = gtk_button_new_with_label(_("Connect"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), button, 3, 4, 8, 9);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(connect_callback), data);
-+	gtk_widget_set_no_show_all(button, TRUE);
-+	data->wifi.connect = button;
-+
-+	button = gtk_button_new_with_label(_("Disconnect"));
-+	gtk_table_attach_defaults(GTK_TABLE(table), button, 3, 4, 8, 9);
-+	g_signal_connect(G_OBJECT(button), "clicked",
-+			G_CALLBACK(disconnect_callback), data);
-+	data->wifi.disconnect = button;
-+	gtk_widget_set_no_show_all(button, TRUE);
-+
-+	if (g_str_equal(state, "failure") == TRUE
-+			|| g_str_equal(state, "idle") == TRUE) {
-+		gtk_widget_show(data->wifi.connect);
-+		gtk_widget_hide(data->wifi.disconnect);
-+	} else {
-+		gtk_widget_hide(data->wifi.connect);
-+		gtk_widget_show(data->wifi.disconnect);
-+	}
-+
-+	wifi_ipconfig(table, data, iter);
- }
- 
--void update_wifi_policy(struct config_data *data, guint policy)
-+void update_wifi_ipv4(struct config_data *data, guint policy)
- {
- 	GtkWidget *combo = data->policy.config;
--	gchar *info = NULL;
-+	GtkWidget *entry[3];
-+	int i;
-+
-+	for (i = 0; i < 3; i++)
-+		entry[i] = data->ipv4.entry[i];
- 
- 	g_signal_handlers_block_by_func(G_OBJECT(combo),
--					G_CALLBACK(changed_callback), data);
-+			G_CALLBACK(changed_callback), data);
- 
- 	switch (policy) {
--	case CONNMAN_POLICY_OFF:
--		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 3);
-+	case CONNMAN_POLICY_DHCP:
-+		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
-+		for (i = 0; i < 3; i++) {
-+			gtk_entry_set_editable(GTK_ENTRY(entry[i]), 0);
-+			gtk_widget_set_sensitive(entry[i], 0);
-+		}
- 		break;
- 	case CONNMAN_POLICY_MANUAL:
- 		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 1);
--		break;
--	case CONNMAN_POLICY_AUTO:
--		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
-+		for (i = 0; i < 3; i++) {
-+			gtk_entry_set_editable(GTK_ENTRY(entry[i]), 1);
-+			gtk_widget_set_sensitive(entry[i], 1);
-+		}
- 		break;
- 	default:
- 		gtk_combo_box_set_active(GTK_COMBO_BOX(combo), -1);
-@@ -136,9 +414,5 @@ void update_wifi_policy(struct config_data *data, guint policy)
- 	}
- 
- 	g_signal_handlers_unblock_by_func(G_OBJECT(combo),
--					G_CALLBACK(changed_callback), data);
--
--	gtk_label_set_markup(GTK_LABEL(data->policy.label), info);
--
--	g_free(info);
-+			G_CALLBACK(changed_callback), data);
- }
diff --git a/meta/recipes-connectivity/connman/connman-gnome/remove-connman-property-desktop-file.patch b/meta/recipes-connectivity/connman/connman-gnome/remove-connman-property-desktop-file.patch
deleted file mode 100644
index 2a8cff3..0000000
--- a/meta/recipes-connectivity/connman/connman-gnome/remove-connman-property-desktop-file.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -ruN connman-gnome-0.5-orig/po/POTFILES.in connman-gnome-0.5/po/POTFILES.in
---- connman-gnome-0.5-orig/po/POTFILES.in	2010-12-16 16:03:29.000000000 +0800
-+++ connman-gnome-0.5/po/POTFILES.in	2010-12-17 10:27:17.000000000 +0800
-@@ -4,4 +4,3 @@
- properties/advanced.c
- properties/ethernet.c
- properties/wifi.c
--properties/connman-properties.desktop.in
-diff -ruN connman-gnome-0.5-orig/properties/Makefile.am connman-gnome-0.5/properties/Makefile.am
---- connman-gnome-0.5-orig/properties/Makefile.am	2010-12-16 16:03:29.000000000 +0800
-+++ connman-gnome-0.5/properties/Makefile.am	2010-12-17 10:27:09.000000000 +0800
-@@ -17,16 +17,6 @@
- 
- INCLUDES = -I$(top_srcdir)/common
- 
--desktopdir = $(datadir)/applications
--
--desktop_in_files = connman-properties.desktop.in
--
--desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
--
- @INTLTOOL_DESKTOP_RULE@
- 
--CLEANFILES = $(desktop_DATA)
--
--EXTRA_DIST = $(desktop_in_files)
--
- MAINTAINERCLEANFILES = Makefile.in
-diff -ruN connman-gnome-0.5-orig/properties/connman-properties.desktop.in connman-gnome-0.5/properties/connman-properties.desktop.in
---- connman-gnome-0.5-orig/properties/connman-properties.desktop.in	2010-12-16 16:03:29.000000000 +0800
-+++ connman-gnome-0.5/properties/connman-properties.desktop.in	1970-01-01 08:00:00.000000000 +0800
-@@ -1,10 +0,0 @@
--[Desktop Entry]
--Encoding=UTF-8
--_Name=Connection Management
--_Comment=Configure connection management
--Icon=stock_internet
--Exec=connman-properties
--Terminal=false
--Type=Application
--Categories=Settings;
--OnlyShowIn=GNOME;
diff --git a/meta/recipes-connectivity/connman/connman-gnome/service_name_update.patch b/meta/recipes-connectivity/connman/connman-gnome/service_name_update.patch
deleted file mode 100644
index 942cfc8..0000000
--- a/meta/recipes-connectivity/connman/connman-gnome/service_name_update.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -ruN connman-gnome-0.5-orig/common/connman-dbus.h connman-gnome-0.5/common/connman-dbus.h
---- connman-gnome-0.5-orig/common/connman-dbus.h	2010-12-30 09:45:03.312043457 +0800
-+++ connman-gnome-0.5/common/connman-dbus.h	2010-12-30 09:45:33.978499439 +0800
-@@ -22,7 +22,7 @@
- #include <dbus/dbus-glib.h>
- #include <gtk/gtk.h>
- 
--#define CONNMAN_SERVICE			"org.moblin.connman"
-+#define CONNMAN_SERVICE			"net.connman"
- 
- #define CONNMAN_ERROR_INTERFACE		CONNMAN_SERVICE ".Error"
- #define CONNMAN_AGENT_INTERFACE		CONNMAN_SERVICE ".Agent"
-diff -ruN connman-gnome-0.5-orig/common/instance.c connman-gnome-0.5/common/instance.c
---- connman-gnome-0.5-orig/common/instance.c	2010-12-30 09:45:03.316085542 +0800
-+++ connman-gnome-0.5/common/instance.c	2010-12-30 09:46:01.654479049 +0800
-@@ -29,7 +29,7 @@
- 
- #include "instance.h"
- 
--#define CONNMAN_SERVICE    "org.moblin.connman"
-+#define CONNMAN_SERVICE    "net.connman"
- #define CONNMAN_INSTANCE   CONNMAN_SERVICE ".Instance"
- 
- static DBusGConnection *connection;
-diff -ruN connman-gnome-0.5-orig/common/instance.xml connman-gnome-0.5/common/instance.xml
---- connman-gnome-0.5-orig/common/instance.xml	2010-12-30 09:45:03.312043457 +0800
-+++ connman-gnome-0.5/common/instance.xml	2010-12-30 09:45:49.868372780 +0800
-@@ -1,7 +1,7 @@
- <?xml version="1.0" encoding="UTF-8" ?>
- 
- <node name="/">
--  <interface name="org.moblin.connman.Instance">
-+  <interface name="net.connman.Instance">
-     <method name="Present">
-     </method>
-   </interface>
diff --git a/meta/recipes-connectivity/connman/connman-gnome_0.5.bb b/meta/recipes-connectivity/connman/connman-gnome_0.5.bb
index 4fcdfaf..69b2d5b 100644
--- a/meta/recipes-connectivity/connman/connman-gnome_0.5.bb
+++ b/meta/recipes-connectivity/connman/connman-gnome_0.5.bb
@@ -6,17 +6,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
                     file://properties/main.c;beginline=1;endline=20;md5=50c77c81871308b033ab7a1504626afb \
                     file://common/connman-dbus.c;beginline=1;endline=20;md5=de6b485c0e717a0236402d220187717a"
 DEPENDS = "gtk+ dbus"
-PR = "r4"
+PR = "r5"
 
 RRECOMMENDS_${PN} = "python python-dbus connman connman-plugin-ethernet connman-plugin-loopback connman-plugin-udhcp connman-plugin-wifi connman-plugin-fake connman-plugin-bluetooth connman-plugin-dnsproxy"
 
-SRC_URI = "${KERNELORG_MIRROR}/linux/network/connman/connman-gnome-${PV}.tar.gz \
-           file://connman-gnome.patch \
-           file://remove-connman-property-desktop-file.patch \
-           file://service_name_update.patch \
-           file://applet_menu_popup_fix.patch"
-
-SRC_URI[md5sum] = "0e1c4c25d19cad9b08a216848a320716"
-SRC_URI[sha256sum] = "4d5fe481b444fc3e64fd9caa149dbcd76de166a25733f18fd93da01d2abf5d1c"
+SRCREV = "78d3c39db6f3f7977b466305110faa8ca5f74ec8"
+SRC_URI = "git://git.kernel.org/pub/scm/network/connman/connman-gnome.git;protocol=git"
+S = "${WORKDIR}/git"
 
 inherit autotools gtk-icon-cache
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 19/23] update-alternatives-dpkg: Fix SRC_URI Checksum
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (17 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 18/23] connman-gnome 0.5: build from git Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 20/23] jsib-glib: " Saul Wold
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../update-alternatives-dpkg_1.16.0.3.bb           |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/update-alternatives/update-alternatives-dpkg_1.16.0.3.bb b/meta/recipes-devtools/update-alternatives/update-alternatives-dpkg_1.16.0.3.bb
index 5443122..f293177 100644
--- a/meta/recipes-devtools/update-alternatives/update-alternatives-dpkg_1.16.0.3.bb
+++ b/meta/recipes-devtools/update-alternatives/update-alternatives-dpkg_1.16.0.3.bb
@@ -4,5 +4,5 @@ PR = "${INC_PR}.0"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI[md5sum] = "d1731d4147c1ea3b537a4d094519a6dc"
-SRC_URI[sha256sum] = "1ec1376471b04717a4497e5d7a27cd545248c92116898ce0c53ced8ea94267b5"
+SRC_URI[md5sum] = "0266b06ef9da8278cea008d21e17e5f6"
+SRC_URI[sha256sum] = "69669720020e67629d70aa5325e3c20c05cae7a9fc2d8abd442672c7b29e31d3"
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 20/23] jsib-glib: Fix SRC_URI Checksum
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (18 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 19/23] update-alternatives-dpkg: Fix SRC_URI Checksum Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 21/23] rxvt-unicode: Fix SRC_URI & LIC_FILES Checksum Saul Wold
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-gnome/json-glib/json-glib_0.12.4.bb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb b/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb
index 2b8bdf6..5bd9dcd 100644
--- a/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb
+++ b/meta/recipes-gnome/json-glib/json-glib_0.12.4.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 DEPENDS = "glib-2.0"
 
 SRC_URI[archive.md5sum] = "347e1714e4a2ce54298969d5ffec7dca"
-SRC_URI[archive.sha256sum] = "462cd611016ae189d5e3f258dc7741e6a2e8267404b4e3806aaf346d50f1df7e"  
+SRC_URI[archive.sha256sum] = "462cd611016ae189d5e3f258dc7741e6a2e8267404b4e3806aaf346d50f1df7e"
 
 PR = "r0"
 
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 21/23] rxvt-unicode: Fix SRC_URI & LIC_FILES Checksum
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (19 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 20/23] jsib-glib: " Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 22/23] alsa-tools: fix Checksums Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 23/23] libx11-diet: Fixed checksum and rebase patch Saul Wold
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../recipes-sato/rxvt-unicode/rxvt-unicode_9.11.bb |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.11.bb b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.11.bb
index 9657e21..db18169 100644
--- a/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.11.bb
+++ b/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.11.bb
@@ -7,12 +7,12 @@ output. It also supports mixing multiple fonts at the \
 same time, including Xft fonts."
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://src/main.C;beginline=1;endline=31;md5=633e23cdeb89fe980ded9a3af4f335c2"
+                    file://src/main.C;beginline=1;endline=31;md5=775485398a09fa7aee6f90464af88432"
 SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \
 	   file://xwc.patch \
 	   file://rxvt.desktop \
 	   file://rxvt.png"
-PR = "r0"
+PR = "r1"
 
 inherit autotools update-alternatives
 
@@ -61,5 +61,5 @@ do_install_append () {
 
 FILES_${PN} += "${datadir}/applications/rxvt.desktop ${datadir}/pixmaps/rxvt.png"
 
-SRC_URI[md5sum] = "a23aa40b31e843878b6f9c44768de430"
-SRC_URI[sha256sum] = "1c238f7e545b1a8da81239b826fb2a7d196c73effbcbd211db7a50995a0a067a"
+SRC_URI[md5sum] = "1bed5bfeed026e0bfafa0e9e4f62aa37"
+SRC_URI[sha256sum] = "0452c00066774ef6e32fcd0a1e6f09230392ea9f6f42e1c2ef7b91d6fcb82d85"
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 22/23] alsa-tools: fix Checksums
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (20 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 21/23] rxvt-unicode: Fix SRC_URI & LIC_FILES Checksum Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 23/23] libx11-diet: Fixed checksum and rebase patch Saul Wold
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb
index 4a65b91..4f71559 100644
--- a/meta/recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb
@@ -5,12 +5,15 @@ SECTION = "console/utils"
 LICENSE = "GPLv2"
 DEPENDS = "alsa-lib ncurses"
 
+PR = "r1"
+
 LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
 SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/alsa-tools-${PV}.tar.bz2"
 
-SRC_URI[md5sum] = "6b9d146af621dd712472b3ebb519c596"
-SRC_URI[sha256sum] = "2a05047363b20f16820f36198ed3b139d1c55f55464750ea11d350e00b09cb86"
+SRC_URI[md5sum] = "08fe93a12006093e590d7ecc02b119dd"
+SRC_URI[sha256sum] = "17d43de93ab2db98886d89a53e45341daa46a4ef6edd405db87f4b5a5dc64a05"
 
+EXTRA_OEFLAGS = "--host ${HOST_SYS}"
 
 inherit autotools
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [*RFC CONSOLIDATED PULL RFC* 23/23] libx11-diet: Fixed checksum and rebase patch
  2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
                   ` (21 preceding siblings ...)
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 22/23] alsa-tools: fix Checksums Saul Wold
@ 2011-06-13  6:54 ` Saul Wold
  22 siblings, 0 replies; 30+ messages in thread
From: Saul Wold @ 2011-06-13  6:54 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb  |   14 +++--
 .../xorg-lib/libx11/X18NCMSstubs.diff              |   62 +++++++++++--------
 2 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb b/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb
index fee44ae..a4929d2 100644
--- a/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb
+++ b/meta/recipes-graphics/xorg-lib/libx11-diet_1.3.bb
@@ -3,13 +3,15 @@ require libx11.inc
 DESCRIPTION += " Support for XCB, UDC, XCMS and XLOCALE is disabled in \
 this version."
 
-PR = "r1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=597df7e9217e89ccaeb749f48ce2aeb0"
 
-SRC_URI += "file://x11_disable_makekeys.patch;patch=1 \
-            file://include_fix.patch;patch=1 \
-            file://X18NCMSstubs.diff;patch=1 \
-            file://fix-disable-xlocale.diff;patch=1 \
-            file://fix-utf8-wrong-define.patch;patch=1"
+PR = "r2"
+
+SRC_URI += "file://x11_disable_makekeys.patch \
+            file://include_fix.patch \
+            file://X18NCMSstubs.diff \
+            file://fix-disable-xlocale.diff \
+            file://fix-utf8-wrong-define.patch"
 
 DEPENDS += "bigreqsproto xproto xextproto xtrans libxau xcmiscproto \
             libxdmcp xf86bigfontproto kbproto inputproto xproto-native"
diff --git a/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff b/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff
index 2e86a48..91ab180 100644
--- a/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff
+++ b/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.diff
@@ -1,8 +1,10 @@
 Upstream-Status: Pending
 
---- libX11-X11R7.0-1.0.0/src/imConv.c.orig	2006-03-08 09:46:03.000000000 +0100
-+++ libX11-X11R7.0-1.0.0/src/imConv.c	2006-03-08 10:50:10.000000000 +0100
-@@ -83,6 +83,7 @@
+Index: libX11-1.3/src/imConv.c
+===================================================================
+--- libX11-1.3.orig/src/imConv.c
++++ libX11-1.3/src/imConv.c
+@@ -83,6 +83,7 @@ static const struct SubstRec SubstTable[
   * from UCS char to specified charset char.
   * This converter is needed for _XimGetCharCode subroutine.
   */
@@ -10,7 +12,7 @@ Upstream-Status: Pending
  XPointer
  _XimGetLocaleCode (
      _Xconst char*	encoding_name)
-@@ -96,6 +97,7 @@
+@@ -96,6 +97,7 @@ _XimGetLocaleCode (
      }
      return cvt;
  }
@@ -18,15 +20,15 @@ Upstream-Status: Pending
  
  /*
   * Returns the locale dependent representation of a keysym.
-@@ -107,6 +109,7 @@
+@@ -106,6 +108,7 @@ _XimGetLocaleCode (
+  * terminating NUL byte. Return 0 if the keysym is not representable in the
   * locale
   */
- /*ARGSUSED*/
 +#ifdef XLOCALE
- int 
+ /*ARGSUSED*/
+ int
  _XimGetCharCode (
-     XPointer            ucs_conv,
-@@ -135,6 +138,7 @@
+@@ -135,6 +138,7 @@ _XimGetCharCode (
          buf[count]= '\0';
      return count;
  }
@@ -34,8 +36,10 @@ Upstream-Status: Pending
  
  #ifdef XKB
  static int lookup_string(
---- libX11-X11R7.0-1.0.0/src/X18NCMSstubs.c.orig	2006-03-08 08:43:19.000000000 +0100
-+++ libX11-X11R7.0-1.0.0/src/X18NCMSstubs.c	2006-03-08 11:41:28.000000000 +0100
+Index: libX11-1.3/src/X18NCMSstubs.c
+===================================================================
+--- /dev/null
++++ libX11-1.3/src/X18NCMSstubs.c
 @@ -0,0 +1,428 @@
 +/*
 + * X18NCMSstubs.c
@@ -465,9 +469,11 @@ Upstream-Status: Pending
 +}
 +
 +#endif
---- libX11-X11R7.0-1.0.0/src/Makefile.am.orig	2006-03-08 08:31:09.000000000 +0100
-+++ libX11-X11R7.0-1.0.0/src/Makefile.am	2006-03-08 09:36:23.000000000 +0100
-@@ -331,6 +331,8 @@
+Index: libX11-1.3/src/Makefile.am
+===================================================================
+--- libX11-1.3.orig/src/Makefile.am
++++ libX11-1.3/src/Makefile.am
+@@ -335,6 +335,8 @@ if THRSTUBS
  libX11_la_SOURCES+=UIThrStubs.c
  endif
  
@@ -476,7 +482,7 @@ Upstream-Status: Pending
  x11datadir = @X11_DATADIR@
  x11data_DATA = XKeysymDB XErrorDB
  
-@@ -338,7 +340,8 @@
+@@ -342,7 +344,8 @@ EXTRA_DIST = \
  	$(x11data_DATA) \
  	os2Stubs.c \
  	udcInf.c \
@@ -484,11 +490,13 @@ Upstream-Status: Pending
 +	UIThrStubs.c \
 +	X18NCMSstubs.c
  
- #
- # Figure out which sub-libraries to link into Xlib
---- libX11-X11R7.0-1.0.0/src/locking.c.orig	2006-03-08 11:05:56.000000000 +0100
-+++ libX11-X11R7.0-1.0.0/src/locking.c	2006-03-08 11:06:37.000000000 +0100
-@@ -55,7 +55,9 @@
+ if XCB
+ libX11_la_SOURCES += \
+Index: libX11-1.3/src/locking.c
+===================================================================
+--- libX11-1.3.orig/src/locking.c
++++ libX11-1.3/src/locking.c
+@@ -66,7 +66,9 @@ in this Software without prior written a
  #define NUM_FREE_CVLS 4
  
  /* in lcWrap.c */
@@ -498,7 +506,7 @@ Upstream-Status: Pending
  
  #ifdef WIN32
  static DWORD _X_TlsIndex = (DWORD)-1;
-@@ -625,9 +627,11 @@
+@@ -594,9 +596,11 @@ Status XInitThreads(void)
      _Xglobal_lock = &global_lock;
      xmutex_init(_Xglobal_lock->lock);
      xmutex_set_name(_Xglobal_lock->lock, "Xlib global");
@@ -510,10 +518,12 @@ Upstream-Status: Pending
      _XLockMutex_fn = _XLockMutex;
      _XUnlockMutex_fn = _XUnlockMutex;
      _XCreateMutex_fn = _XCreateMutex;
---- libX11-X11R7.0-1.0.0/configure.ac.orig	2006-03-08 10:03:57.000000000 +0100
-+++ libX11-X11R7.0-1.0.0/configure.ac	2006-03-08 10:06:01.000000000 +0100
-@@ -215,7 +215,14 @@
- esac
+Index: libX11-1.3/configure.ac
+===================================================================
+--- libX11-1.3.orig/configure.ac
++++ libX11-1.3/configure.ac
+@@ -289,7 +289,14 @@ else
+ fi
  AC_SUBST(KEYSYMDEF)
  
 -AM_CONDITIONAL(UDC, test xfalse = xtrue)
@@ -526,5 +536,5 @@ Upstream-Status: Pending
 +	AC_DEFINE(UDC,1,[Include support for UDC])
 +fi
  
- AC_ARG_ENABLE(xcms, 
+ AC_ARG_ENABLE(xcms,
                AC_HELP_STRING([--disable-xcms],
-- 
1.7.3.4




^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [*RFC CONSOLIDATED PULL RFC* 07/23] gconf-dbus: Update to 2.29.1 git
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 07/23] gconf-dbus: Update to 2.29.1 git Saul Wold
@ 2011-06-13  7:58   ` Koen Kooi
  0 siblings, 0 replies; 30+ messages in thread
From: Koen Kooi @ 2011-06-13  7:58 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 13 jun 2011, om 08:54 heeft Saul Wold het volgende geschreven:

> New version now uses git
> set --enable-defaults-service=no so that polkit is not pulled in
> 
> Signed-off-by: Saul Wold <sgw@linux.intel.com>
> ---
> .../gnome/{gconf-dbus_svn.bb => gconf-dbus_git.bb} |   12 +++++-------
> 1 files changed, 5 insertions(+), 7 deletions(-)
> rename meta/recipes-gnome/gnome/{gconf-dbus_svn.bb => gconf-dbus_git.bb} (76%)
> 
> diff --git a/meta/recipes-gnome/gnome/gconf-dbus_svn.bb b/meta/recipes-gnome/gnome/gconf-dbus_git.bb
> similarity index 76%
> rename from meta/recipes-gnome/gnome/gconf-dbus_svn.bb
> rename to meta/recipes-gnome/gnome/gconf-dbus_git.bb
> index 16a2ddb..2b6f9c3 100644
> --- a/meta/recipes-gnome/gnome/gconf-dbus_svn.bb
> +++ b/meta/recipes-gnome/gnome/gconf-dbus_git.bb
> @@ -8,19 +8,17 @@ PROVIDES = "gconf"
> RPROVIDES_${PN} = "gconf"
> RPROVIDES_${PN}-dev = "gconf-dev"
> 
> -SRCREV = "705"
> -PV = "2.16.0+svnr${SRCPV}"
> +SRCREV = "d096734a6c53954baa64e3ce8a62d11296b9eaab"
> +PV = "2.29.1+git${SRCPV}"

2.29 is an unstable version, do you really want to use that? ANd related to that, in this day and age is there still benefit in using a manpower challenged fork of a component that has been obsoleted upstream? AIUI gsettings is all the rage now.

regards,

Koen


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [*RFC CONSOLIDATED PULL RFC* 16/23] uclibc: remove PACKAGE_ARCH, fix compilation on i586
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 16/23] uclibc: remove PACKAGE_ARCH, fix compilation on i586 Saul Wold
@ 2011-06-13  8:34   ` Phil Blundell
  0 siblings, 0 replies; 30+ messages in thread
From: Phil Blundell @ 2011-06-13  8:34 UTC (permalink / raw)
  To: Saul Wold; +Cc: openembedded-core

On Sun, 2011-06-12 at 23:54 -0700, Saul Wold wrote:
> From: Phil Blundell <pb@pbcl.net>
> 
> There is no good reason for uclibc to be machine specific.  Remove local
> assignment to PACKAGE_ARCH so that it gets the default target
> architecture and bump PR for that change.

I just noticed that I forgot to update the subject line when I split
this patch into three.  This part no longer has anything to do with i586
compile fixes; it should just be "uclibc: remove PACKAGE_ARCH".

p.





^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native
  2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native Saul Wold
@ 2011-06-14 12:53   ` Phil Blundell
  2011-06-14 12:54     ` Koen Kooi
  2011-06-14 13:01     ` Phil Blundell
  0 siblings, 2 replies; 30+ messages in thread
From: Phil Blundell @ 2011-06-14 12:53 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Sun, 2011-06-12 at 23:54 -0700, Saul Wold wrote:
> -inherit autotools
> +inherit autotools perlnative

This broke the tree for me.  Now I get:

NOTE: Out of date cache found, rebuilding...
ERROR: Could not inherit file
classes/perlnative.bbclass###########################################
| ETA:  00:00:03
ERROR: Command execution failed: Exited with 1

Am I meant to have perlnative.bbclass somewhere?  It isn't in
meta/classes.

p.





^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native
  2011-06-14 12:53   ` Phil Blundell
@ 2011-06-14 12:54     ` Koen Kooi
  2011-06-14 13:01     ` Phil Blundell
  1 sibling, 0 replies; 30+ messages in thread
From: Koen Kooi @ 2011-06-14 12:54 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer


Op 14 jun 2011, om 14:53 heeft Phil Blundell het volgende geschreven:

> On Sun, 2011-06-12 at 23:54 -0700, Saul Wold wrote:
>> -inherit autotools
>> +inherit autotools perlnative
> 
> This broke the tree for me.  Now I get:
> 
> NOTE: Out of date cache found, rebuilding...
> ERROR: Could not inherit file
> classes/perlnative.bbclass###########################################
> | ETA:  00:00:03
> ERROR: Command execution failed: Exited with 1
> 
> Am I meant to have perlnative.bbclass somewhere?  It isn't in
> meta/classes.

Same error here



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native
  2011-06-14 12:53   ` Phil Blundell
  2011-06-14 12:54     ` Koen Kooi
@ 2011-06-14 13:01     ` Phil Blundell
  2011-06-14 13:40       ` Richard Purdie
  1 sibling, 1 reply; 30+ messages in thread
From: Phil Blundell @ 2011-06-14 13:01 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 2011-06-14 at 13:53 +0100, Phil Blundell wrote:
> On Sun, 2011-06-12 at 23:54 -0700, Saul Wold wrote:
> > -inherit autotools
> > +inherit autotools perlnative
> 
> This broke the tree for me.  Now I get:
> 
> NOTE: Out of date cache found, rebuilding...
> ERROR: Could not inherit file
> classes/perlnative.bbclass###########################################
> | ETA:  00:00:03
> ERROR: Command execution failed: Exited with 1

BTW, Scott, this is also a new addition to my list of unsatisfactory
bitbake error messages.  It would be more helpful if bitbake: (a)
printed the name of the recipe causing the problem, rather than leaving
me to grep the tree/guess, and (b) continued rather than immediately
bailing out.  Also, aesthetically, it'd be nice if it didn't print the
error on top of the status bar although I guess that is a minor issue in
the larger scheme of things.

However, on the positive side, at least there is no python
stacktrace :-)

p.





^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native
  2011-06-14 13:01     ` Phil Blundell
@ 2011-06-14 13:40       ` Richard Purdie
  0 siblings, 0 replies; 30+ messages in thread
From: Richard Purdie @ 2011-06-14 13:40 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Tue, 2011-06-14 at 14:01 +0100, Phil Blundell wrote:
> On Tue, 2011-06-14 at 13:53 +0100, Phil Blundell wrote:
> > On Sun, 2011-06-12 at 23:54 -0700, Saul Wold wrote:
> > > -inherit autotools
> > > +inherit autotools perlnative
> > 
> > This broke the tree for me.  Now I get:
> > 
> > NOTE: Out of date cache found, rebuilding...
> > ERROR: Could not inherit file
> > classes/perlnative.bbclass###########################################
> > | ETA:  00:00:03
> > ERROR: Command execution failed: Exited with 1
> 
> BTW, Scott, this is also a new addition to my list of unsatisfactory
> bitbake error messages.  It would be more helpful if bitbake: (a)
> printed the name of the recipe causing the problem, rather than leaving
> me to grep the tree/guess, and (b) continued rather than immediately
> bailing out.  Also, aesthetically, it'd be nice if it didn't print the
> error on top of the status bar although I guess that is a minor issue in
> the larger scheme of things.
> 
> However, on the positive side, at least there is no python
> stacktrace :-)

I've fixed this.

Unintentionally, a merge was made to poky but not to OE-Core for a
series of patches. I suspect somehow I did make the merge but not the
push and then lost the changes thinking it was just testing changes when
I came back to them.

So I'm sorry about the screw up there, totally my fault and unintended
and it should be fixed now.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2011-06-14 13:44 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-13  6:54 [*RFC CONSOLIDATED PULL RFC* 00/23] 13-June-2011 Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 01/23] ghostscript: update SRC_URI Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 02/23] busybox: backport distro-features handling from oe master Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 03/23] git: restore the dependency on perl-native Saul Wold
2011-06-14 12:53   ` Phil Blundell
2011-06-14 12:54     ` Koen Kooi
2011-06-14 13:01     ` Phil Blundell
2011-06-14 13:40       ` Richard Purdie
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 04/23] uclibc: fix compile error on i586 Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 05/23] import recipe_sanity.bbclass from oe master Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 06/23] json-glib: Fix up SRC_URI Checksums Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 07/23] gconf-dbus: Update to 2.29.1 git Saul Wold
2011-06-13  7:58   ` Koen Kooi
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 08/23] linux-yocto: rename recipes to explicitly indicate version Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 09/23] perl-native: fix download url Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 10/23] clutter-box2d_git: Switch SRC_URI to git.gnome.org Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 11/23] util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 12/23] uclibc.inc: libsegfault is only RPROVIDED by uclibc Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 13/23] gettext_0.18.1.1.bb: Fix build on uclibc Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 14/23] uclibc: Cleanup the machine dependent config files Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 15/23] uclibc: remove redundant python code Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 16/23] uclibc: remove PACKAGE_ARCH, fix compilation on i586 Saul Wold
2011-06-13  8:34   ` Phil Blundell
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 17/23] qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 18/23] connman-gnome 0.5: build from git Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 19/23] update-alternatives-dpkg: Fix SRC_URI Checksum Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 20/23] jsib-glib: " Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 21/23] rxvt-unicode: Fix SRC_URI & LIC_FILES Checksum Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 22/23] alsa-tools: fix Checksums Saul Wold
2011-06-13  6:54 ` [*RFC CONSOLIDATED PULL RFC* 23/23] libx11-diet: Fixed checksum and rebase patch Saul Wold

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.