All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1
@ 2016-06-23 20:40 OpenBMC Patches
  2016-06-23 20:40 ` [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems OpenBMC Patches
                   ` (11 more replies)
  0 siblings, 12 replies; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc



<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/openbmc/openbmc/397)
<!-- Reviewable:end -->


https://github.com/openbmc/openbmc/pull/397

Brad Bishop (1):
  Fix systemd packageconfig

Patrick Williams (10):
  meta-phosphor: Use obmc-phosphor-event for qemu systems
  meta-phosphor: use obmc-phosphor-user for qemu systems
  meta-phosphor: Remove unused systemd patch
  meta-phosphor: Make image-overlay an optional feature
  meta-phosphor: Ensure INITRAMFS_CTYPE defined
  obmc-phosphor-image: Improper use of DATETIME
  btbridged: Change how kernel-source depend is specified
  u-boot-fw-utils: Update to latest version.
  u-boot: Upgrade AST2400 machines to 2016.15 tree.
  u-boot: Remove unused 2013.07 packages.

 .../meta-ast2400/conf/machine/include/ast2400.inc  |    6 +-
 ...013.07%.bbappend => u-boot-fw-utils_%.bbappend} |    1 -
 ...{u-boot_2013.07%.bbappend => u-boot_%.bbappend} |    1 -
 .../meta-firestone/conf/machine/firestone.conf     |    2 +-
 .../meta-garrison/conf/machine/garrison.conf       |    2 +-
 .../meta-palmetto/conf/machine/palmetto.conf       |    2 +-
 .../meta-barreleye/conf/machine/barreleye.conf     |    2 +-
 .../recipes-bsp/u-boot/u-boot_2013.07%.bbappend    |    3 -
 meta-phosphor/classes/obmc-phosphor-image.bbclass  |   15 +-
 .../obmc-phosphor-image_types_uboot.bbclass        |    2 +
 .../recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb  |   55 -
 .../recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb  |    4 +-
 .../common/recipes-bsp/u-boot/u-boot_2013.07.bb    |   23 -
 .../common/recipes-bsp/u-boot/u-boot_2016.05.bb    |    4 +-
 .../images/core-image-minimal-initramfs.bbappend   |    1 +
 .../0100-systemd_networkd_dbus_setaddress.patch    | 1209 --------------------
 .../common/recipes-core/systemd/systemd_%.bbappend |    4 +-
 .../recipes-phosphor/host-ipmid/btbridged.bb       |    2 +-
 .../conf/machine/include/obmc-bsp-common.inc       |    2 +-
 meta-phosphor/conf/machine/include/sample.inc      |    4 +-
 20 files changed, 29 insertions(+), 1315 deletions(-)
 rename meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/{u-boot-fw-utils_2013.07%.bbappend => u-boot-fw-utils_%.bbappend} (90%)
 rename meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/{u-boot_2013.07%.bbappend => u-boot_%.bbappend} (71%)
 delete mode 100644 meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
 delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
 delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
 delete mode 100644 meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch

-- 
2.9.0

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

* [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:55   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 02/11] meta-phosphor: use obmc-phosphor-user " OpenBMC Patches
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 meta-phosphor/conf/machine/include/sample.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-phosphor/conf/machine/include/sample.inc b/meta-phosphor/conf/machine/include/sample.inc
index e66dc77..b499940 100644
--- a/meta-phosphor/conf/machine/include/sample.inc
+++ b/meta-phosphor/conf/machine/include/sample.inc
@@ -24,7 +24,7 @@ VIRTUAL-RUNTIME_obmc-phosphor-ipmi-parsers = " \
        "
 PREFERRED_PROVIDER_virtual/obmc-phosphor-host-ipmi-hw = "host-ipmi-hw-example"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-chassis-mgmt = "obmc-phosphor-chassisd"
-PREFERRED_PROVIDER_virtual/obmc-phosphor-event-mgmt = "obmc-phosphor-eventd"
+PREFERRED_PROVIDER_virtual/obmc-phosphor-event-mgmt = "obmc-phosphor-event"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-fan-mgmt = "obmc-phosphor-fand"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-flash-mgmt = "obmc-phosphor-flashd"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-policy-mgmt = "obmc-phosphor-policyd"
-- 
2.9.0

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

* [PATCH openbmc v5 02/11] meta-phosphor: use obmc-phosphor-user for qemu systems
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
  2016-06-23 20:40 ` [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:55   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 03/11] meta-phosphor: Remove unused systemd patch OpenBMC Patches
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 meta-phosphor/conf/machine/include/sample.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-phosphor/conf/machine/include/sample.inc b/meta-phosphor/conf/machine/include/sample.inc
index b499940..e4d70d1 100644
--- a/meta-phosphor/conf/machine/include/sample.inc
+++ b/meta-phosphor/conf/machine/include/sample.inc
@@ -30,4 +30,4 @@ PREFERRED_PROVIDER_virtual/obmc-phosphor-flash-mgmt = "obmc-phosphor-flashd"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-policy-mgmt = "obmc-phosphor-policyd"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-sensor-mgmt = "obmc-phosphor-sensord"
 PREFERRED_PROVIDER_virtual/obmc-phosphor-system-mgmt = "obmc-phosphor-sysd"
-PREFERRED_PROVIDER_virtual/obmc-phosphor-user-mgmt = "obmc-phosphor-userd"
+PREFERRED_PROVIDER_virtual/obmc-phosphor-user-mgmt = "obmc-phosphor-user"
-- 
2.9.0

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

* [PATCH openbmc v5 03/11] meta-phosphor: Remove unused systemd patch
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
  2016-06-23 20:40 ` [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems OpenBMC Patches
  2016-06-23 20:40 ` [PATCH openbmc v5 02/11] meta-phosphor: use obmc-phosphor-user " OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:55   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 04/11] meta-phosphor: Make image-overlay an optional feature OpenBMC Patches
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 .../0100-systemd_networkd_dbus_setaddress.patch    | 1209 --------------------
 .../common/recipes-core/systemd/systemd_%.bbappend |    1 -
 2 files changed, 1210 deletions(-)
 delete mode 100644 meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch

diff --git a/meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch b/meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch
deleted file mode 100644
index e105ddd..0000000
--- a/meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch
+++ /dev/null
@@ -1,1209 +0,0 @@
-From 4bdb01553409269f992cd3ae76f06aeebf498ade Mon Sep 17 00:00:00 2001
-From: Hariharasubramanian R <hramasub@in.ibm.com>
-Date: Thu, 4 Feb 2016 09:52:48 -0600
-Subject: [PATCH] Sprint 5 : DBus API for network address configuration
-
----
- src/network/networkd-link-bus.c           | 375 +++++++++++++++++++
- src/network/networkd-network-bus.c        | 601 ++++++++++++++++++++++++++++++
- src/network/networkd-network.c            | 108 ++++++
- src/network/org.freedesktop.network1.conf |  20 +
- 4 files changed, 1104 insertions(+)
-
-diff --git a/src/network/networkd-link-bus.c b/src/network/networkd-link-bus.c
-index 1a1524d..5af57e1 100644
---- a/src/network/networkd-link-bus.c
-+++ b/src/network/networkd-link-bus.c
-@@ -25,15 +25,69 @@
- #include "networkd.h"
- #include "networkd-link.h"
- 
-+#define SYSTEMD_NETWORKD_DBUS 1
-+#define SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK 1
-+
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+/*
-+#include "hostname-util.h"
-+#include "network-internal.h"
-+#include "networkd-link.h"
-+#include "bus-util.h"
-+*/
-+#include <stdio.h>
-+#include <linux/filter.h>
-+#include <netinet/if_ether.h>
-+
-+#include <linux/sockios.h>
-+#include <sys/socket.h>
-+#include <net/if.h>
-+#include <sys/types.h>
-+#include <sys/wait.h>
-+
-+#if 0
-+#include "util.h" /* bus/util.h */
-+#include "sparse-endian.h" /* bus/util.h */
-+#endif
-+
-+#include "sd-network.h"
-+#include "sd-netlink.h"
-+#include "socket-util.h"
-+#include "ether-addr-util.h"
-+#include "netlink-internal.h"
-+/*
-+#include "local-addresses.h"
-+*/
-+#endif
-+
- static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_operational_state, link_operstate, LinkOperationalState);
- static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_administrative_state, link_state, LinkState);
- 
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
-+static int method_set_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
-+#endif
-+
-+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
-+static int link_arp_network_bind_raw_socket(int index, union sockaddr_union *link);
-+static int link_arp_network_send_raw_socket(int fd, const union sockaddr_union *link, const struct ether_arp *arp);
-+#elif defined (SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK)
-+static int link_if_updown(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, int cmd);
-+static int link_if_setaddr(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, const char* ea);
-+#endif
-+
- const sd_bus_vtable link_vtable[] = {
-         SD_BUS_VTABLE_START(0),
- 
-         SD_BUS_PROPERTY("OperationalState", "s", property_get_operational_state, offsetof(Link, operstate), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
-         SD_BUS_PROPERTY("AdministrativeState", "s", property_get_administrative_state, offsetof(Link, state), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
- 
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+	    /* device name */
-+    	SD_BUS_METHOD("GetAddress", "s", "s", method_get_address, SD_BUS_VTABLE_UNPRIVILEGED),
-+	    /* device name, mac addr */
-+    	SD_BUS_METHOD("SetAddress", "ss", "s", method_set_address, SD_BUS_VTABLE_UNPRIVILEGED),
-+#endif
-         SD_BUS_VTABLE_END
- };
- 
-@@ -136,3 +190,324 @@ int link_send_changed(Link *link, const char *property, ...) {
-                         "org.freedesktop.network1.Link",
-                         l);
- }
-+
-+static int method_set_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
-+{
-+    _cleanup_netlink_unref_ sd_netlink                  *rtnl   = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message  *req    = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message  *reply  = NULL;
-+    _cleanup_bus_message_unref_ sd_bus_message          *resp   = NULL;
-+    Manager                                             *mgr    = userdata;
-+
-+    struct udev*        udev               = NULL;
-+    struct udev_device* udev_eth           = NULL;
-+    const char*         device             = NULL;
-+    const char*         ea                  = NULL;
-+    char                devpath [32]       = "/sys/class/net/"; 
-+
-+    int                 r;
-+    int                 pid=0;
-+    unsigned char       ifindex;
-+
-+#if defined(SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
-+        bool                have_mac;
-+        struct ether_addr   e;
-+        struct ether_addr*  ep = NULL;
-+        union sockaddr_union link;
-+        uint8_t             seed[8];
-+        uint8_t             i=0;
-+
-+        struct ifreq        dev;
-+        int                 sock;
-+#endif
-+
-+
-+    assert(m);
-+    assert(mgr);
-+
-+    r = sd_bus_message_read (m, "ss", &device, &ea);
-+    if (r < 0)
-+        return r;
-+
-+/*
-+    if (isempty (device))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
-+
-+    if (isempty (ea))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid MAC Address.");
-+*/
-+
-+    udev = udev_new();
-+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
-+    if (!udev_eth)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
-+
-+    ifindex = udev_device_get_ifindex(udev_eth);
-+
-+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
-+    r = link_arp_network_bind_raw_socket(ifindex, &link);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unable to bind ARP Raw socket.");
-+#elif defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IOCTL)
-+    sock = socket (AF_INET, SOCK_DGRAM, 0);
-+    if (sock < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unable to bind socket.");
-+
-+    strcpy (dev.ifr_name, device);
-+    if (ioctl(sock, SIOCGIFHWADDR, &dev) < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unable to bind socket.");
-+#elif defined (SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK)
-+    r = link_if_updown (rtnl, &req, &reply, ifindex, 0); /* i/f down */
-+    if (r < 0)
-+        /*return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error shutting down interface");*/
-+        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error shutting down interface");
-+
-+    r = link_if_setaddr(rtnl, &req, &reply, ifindex, ea);
-+    if (r < 0)
-+        /*return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error setting MAC addr on interface");*/
-+        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error setting MAC addr on interface");
-+
-+    r = link_if_updown (rtnl, &req, &reply, ifindex, 1); /* i/f up */
-+    if (r < 0)
-+        /*return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error starting up interface");*/
-+        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error starting up interface");
-+
-+    /* Set U-Boot environment variable.*/
-+    pid = fork (); 
-+    if (!pid)
-+    {
-+        char* argv [] = {"/sbin/fw_setenv", "ethaddr", ea, NULL};
-+        execv (argv[0], argv);
-+        exit (1);
-+    }
-+    else
-+    {
-+        int childerror = 0;
-+
-+        waitpid (pid, &childerror, 0);
-+        if (childerror)        
-+        {
-+            sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error setting u-boot env");
-+        }
-+    }
-+#endif
-+
-+    r = sd_bus_message_new_method_return(m, &resp);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
-+
-+    r = sd_bus_message_append(resp, "s", ea);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+    r = sd_bus_send(mgr->bus, resp, NULL);
-+
-+    /*return sd_bus_reply_method_return(m, "s", "Setting IFLA address ...");*/
-+    return sd_bus_reply_method_return(m, "s", ea);
-+
-+}
-+
-+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
-+{
-+    _cleanup_netlink_unref_ sd_netlink                  *rtnl   = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message  *req    = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message  *reply  = NULL;
-+    _cleanup_bus_message_unref_ sd_bus_message          *resp   = NULL;
-+    Manager                                             *mgr    = userdata;
-+
-+    struct udev*        udev               = NULL;
-+    struct udev_device* udev_eth           = NULL;
-+    const char*         device             = NULL;
-+    char                devpath [32]       = "/sys/class/net/"; 
-+
-+    int                 r;
-+    unsigned char       ifindex;
-+    bool                have_mac;
-+    struct ether_addr   e;
-+    char                ea[ETHER_ADDR_TO_STRING_MAX];
-+
-+    assert(m);
-+    assert(mgr);
-+
-+    r = sd_bus_message_read (m, "s", &device);
-+    if (r < 0)
-+        return r;
-+
-+    if (isempty (device))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
-+
-+    udev = udev_new();
-+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
-+    if (!udev_eth)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
-+
-+    ifindex = udev_device_get_ifindex(udev_eth);
-+
-+    r = sd_netlink_open(&rtnl);
-+    if (r < 0)
-+            return log_error_errno(r, "Failed to connect to netlink:"); /* fixme */
-+
-+    r = sd_rtnl_message_new_link(rtnl, &req, RTM_GETLINK, ifindex);
-+    if (r < 0)
-+            return r;
-+
-+    r = sd_netlink_call(rtnl, req, 0, &reply); /* fixme */
-+    if (r < 0)
-+            return r;
-+
-+    have_mac = sd_netlink_message_read_ether_addr(reply, IFLA_ADDRESS, &e) >= 0;
-+    if (!have_mac)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error reading IFLA address");
-+
-+    ether_addr_to_string(&e, ea);
-+
-+    r = sd_bus_message_new_method_return(m, &resp);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
-+
-+    r = sd_bus_message_append(resp, "s", ea);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+    r = sd_bus_send(mgr->bus, resp, NULL);
-+
-+    /*return sd_bus_reply_method_return(m, "s", "Getting IFLA address ...");*/
-+    return sd_bus_reply_method_return(m, "s", ea);
-+}
-+
-+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
-+/*----------------------------------------------------------------------------*/
-+/* ARP helper routines copied from ipv4ll-network.c                           */
-+/*----------------------------------------------------------------------------*/
-+static int link_arp_network_bind_raw_socket(int ifindex, union sockaddr_union *link) {
-+
-+        static const struct sock_filter filter[] = {
-+                BPF_STMT(BPF_LD + BPF_W + BPF_LEN, 0),                                         /* A <- packet length */
-+                BPF_JUMP(BPF_JMP + BPF_JGE + BPF_K, sizeof(struct ether_arp), 1, 0),           /* packet >= arp packet ? */
-+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
-+                BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(struct ether_arp, ea_hdr.ar_hrd)), /* A <- header */
-+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ARPHRD_ETHER, 1, 0),                       /* header == ethernet ? */
-+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
-+                BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(struct ether_arp, ea_hdr.ar_pro)), /* A <- protocol */
-+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ETHERTYPE_IP, 1, 0),                       /* protocol == IP ? */
-+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
-+                BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(struct ether_arp, ea_hdr.ar_op)),  /* A <- operation */
-+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ARPOP_REQUEST, 0, 1),                      /* protocol == request ? */
-+                BPF_STMT(BPF_RET + BPF_K, 65535),                                              /* return all */
-+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ARPOP_REPLY, 0, 1),                        /* protocol == reply ? */
-+                BPF_STMT(BPF_RET + BPF_K, 65535),                                              /* return all */
-+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
-+        };
-+        struct sock_fprog fprog = {
-+                .len = ELEMENTSOF(filter),
-+                .filter = (struct sock_filter*) filter
-+        };
-+        _cleanup_close_ int s = -1;
-+        int r;
-+
-+        assert(ifindex > 0);
-+        assert(link);
-+
-+        s = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0);
-+        if (s < 0)
-+                return -errno;
-+
-+        r = setsockopt(s, SOL_SOCKET, SO_ATTACH_FILTER, &fprog, sizeof(fprog));
-+        if (r < 0)
-+                return -errno;
-+
-+        link->ll.sll_family = AF_PACKET;
-+        link->ll.sll_protocol = htons(ETH_P_ARP);
-+        link->ll.sll_ifindex = ifindex;
-+        link->ll.sll_halen = ETH_ALEN;
-+        memset(link->ll.sll_addr, 0xff, ETH_ALEN);
-+
-+        r = bind(s, &link->sa, sizeof(link->ll));
-+        if (r < 0)
-+                return -errno;
-+
-+        r = s;
-+        s = -1;
-+
-+        return r;
-+}
-+static int arp_network_send_raw_socket(int fd, const union sockaddr_union *link,
-+                                        const struct ether_arp *arp) {
-+        int r;
-+
-+        assert(arp);
-+        assert(link);
-+        assert(fd >= 0);
-+
-+        r = sendto(fd, arp, sizeof(struct ether_arp), 0, &link->sa, sizeof(link->ll));
-+        if (r < 0)
-+                return -errno;
-+
-+        return 0;
-+}
-+#endif
-+
-+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK)
-+/* */
-+/* Bring interface up/down */
-+int link_if_updown(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, int cmd)
-+{
-+    int r=0;
-+    struct ifinfomsg *ifi;
-+
-+    r = message_new(rtnl, req, RTM_NEWLINK);
-+    if (r < 0)
-+            return r;
-+
-+    (*req)->hdr->nlmsg_len = NLMSG_LENGTH(sizeof (struct ifinfomsg));
-+    (*req)->hdr->nlmsg_flags = NLM_F_REQUEST;
-+    (*req)->hdr->nlmsg_type = RTM_NEWLINK;
-+
-+    ifi = NLMSG_DATA((*req)->hdr);
-+
-+    ifi->ifi_family = AF_UNSPEC;
-+    ifi->ifi_change |= IFF_UP;
-+    ifi->ifi_index = index;
-+
-+    /* when IFF_UP flag is set i/f will be active, otherwise i/f is shut down */
-+    if (cmd)
-+        ifi->ifi_flags |= IFF_UP;
-+
-+    return sd_netlink_call(rtnl, *req, 0, rep);
-+}
-+
-+/* Set interface MAC address */
-+int link_if_setaddr(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, const char* ea)
-+{
-+    int r=0;
-+    int i=0;
-+
-+    struct ifinfomsg *ifi;
-+    struct ether_addr   e;
-+    struct ether_addr*  ep;
-+
-+    r = message_new(rtnl, req, RTM_NEWLINK);
-+    if (r < 0)
-+            return r;
-+
-+    (*req)->hdr->nlmsg_len = NLMSG_LENGTH(sizeof (struct ifinfomsg));
-+    (*req)->hdr->nlmsg_flags = NLM_F_REQUEST;
-+    (*req)->hdr->nlmsg_type = RTM_NEWLINK;
-+
-+    ifi = NLMSG_DATA((*req)->hdr);
-+
-+    ifi->ifi_family = AF_UNSPEC;
-+    ifi->ifi_index = ifindex;
-+
-+    ep = ether_aton (ea);
-+    if (!ep)
-+        return -1;
-+
-+    for (i=0; i<6; i++)
-+        e.ether_addr_octet[i] = ep->ether_addr_octet[i];
-+
-+    r = sd_netlink_message_append_ether_addr(*req, IFLA_ADDRESS, &e);
-+
-+    return sd_netlink_call(rtnl, *req, 0, rep);
-+}
-+#endif
-diff --git a/src/network/networkd-network-bus.c b/src/network/networkd-network-bus.c
-index 5717a15..0a4cdd6 100644
---- a/src/network/networkd-network-bus.c
-+++ b/src/network/networkd-network-bus.c
-@@ -19,10 +19,39 @@
-   along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
- 
-+#define SYSTEMD_NETWORKD_DBUS 1
-+
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <errno.h>
-+#include <string.h>
-+#include <netinet/ether.h>
-+#include <linux/if.h>
-+#endif
-+
- #include "strv.h"
- 
- #include "networkd.h"
- 
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+#include "hostname-util.h"
-+#include "network-internal.h"
-+#include "networkd-link.h"
-+#include "bus-util.h"
-+
-+#include "sd-network.h"
-+#include "sd-netlink.h"
-+#include "local-addresses.h"
-+#endif
-+
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+int network_address_added_handler (sd_netlink* rtnl, sd_netlink_message* m, void* userdata);
-+int network_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message, void *userdata, Address* address); /* fixme */
-+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error); /* fixme */
-+int network_save_static (int cmd, const char* device, const char* ipaddr, int prefixlen, const char* gwaddr);
-+#endif
-+
- static int property_get_ether_addrs(
-                 sd_bus *bus,
-                 const char *path,
-@@ -56,6 +85,11 @@ static int property_get_ether_addrs(
-         return sd_bus_message_close_container(reply);
- }
- 
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+static int method_add_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
-+static int method_del_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
-+#endif
-+
- const sd_bus_vtable network_vtable[] = {
-         SD_BUS_VTABLE_START(0),
- 
-@@ -67,6 +101,13 @@ const sd_bus_vtable network_vtable[] = {
-         SD_BUS_PROPERTY("MatchType", "as", NULL, offsetof(Network, match_type), SD_BUS_VTABLE_PROPERTY_CONST),
-         SD_BUS_PROPERTY("MatchName", "as", NULL, offsetof(Network, match_name), SD_BUS_VTABLE_PROPERTY_CONST),
- 
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+	    /* device, IP, netmask, family, flags, scope, gateway */
-+    	SD_BUS_METHOD("AddAddress", "sssyyys", "x", method_add_address, SD_BUS_VTABLE_UNPRIVILEGED),
-+    	SD_BUS_METHOD("DelAddress", "sssyyys", "x", method_del_address, SD_BUS_VTABLE_UNPRIVILEGED),
-+	    /* (family, prefixlen, flags, scope, IP)+ gateway */
-+    	SD_BUS_METHOD("GetAddress", "s", "a(iyyus)s", method_get_address, SD_BUS_VTABLE_UNPRIVILEGED),
-+#endif
-         SD_BUS_VTABLE_END
- };
- 
-@@ -152,3 +193,563 @@ int network_object_find(sd_bus *bus, const char *path, const char *interface, vo
- 
-         return 1;
- }
-+
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+
-+static int method_add_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
-+{
-+    _cleanup_bus_message_unref_ sd_bus_message*         resp    = NULL;
-+    _cleanup_netlink_unref_ sd_netlink*                 rtnl    = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message* req     = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message* reply   = NULL;
-+    _cleanup_address_free_ Address *addr                        = NULL;
-+    _cleanup_route_free_ Route *rt                              = NULL;
-+    Manager *mgr                                                = userdata;
-+    Link*               link               = NULL;
-+    struct udev*        udev               = NULL;
-+    struct udev_device* udev_eth           = NULL;
-+
-+    const char*         device             = NULL;
-+    const char*         ipaddr             = NULL;
-+    const char*         netmask            = NULL;
-+    const char*         gateway            = NULL;
-+    char                devpath [32]       = "/sys/class/net/"; 
-+
-+    unsigned char       family;
-+    unsigned char       prefixlen;
-+    unsigned char       flags;
-+    unsigned char       scope;
-+    unsigned char       ifindex;
-+
-+    struct in_addr      nm;
-+    struct in_addr      ip;
-+    struct in_addr      gw;
-+    int r;
-+
-+    assert(m);
-+    assert(mgr);
-+
-+    r = sd_bus_message_read (m, "sssyyys", &device, &ipaddr, &netmask, &family, &flags, &scope, &gateway);
-+    if (r < 0)
-+        return r;
-+
-+    if (isempty (device))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
-+
-+    if (isempty (ipaddr))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Address.");
-+
-+    if (isempty (netmask))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Netmask.");
-+
-+    assert(family == AF_INET || family == AF_INET6);
-+
-+    udev = udev_new();
-+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
-+    if (!udev_eth)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
-+
-+    ifindex = udev_device_get_ifindex(udev_eth);
-+
-+    inet_aton (netmask, &nm);
-+    inet_aton (ipaddr, &ip);
-+    if (!isempty (gateway)) inet_aton (gateway, &gw);
-+
-+    prefixlen = in_addr_netmask_to_prefixlen(&nm);
-+    assert(prefixlen > 0);
-+
-+#if 0
-+    r = network_save_static (1, device, ipaddr, prefixlen, gateway); /* persist config - add */
-+    if (r)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, strerror(r));
-+#endif
-+
-+    r = address_new_dynamic(&addr);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating new address");
-+
-+    r = sd_netlink_open(&rtnl);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_IO_ERROR, "Failed to connect to netlink");
-+
-+    link = new0(Link, 1);
-+    if (!link)
-+            return -ENOMEM;
-+
-+    link->network = new0(Network, 1);
-+    if (!link->network)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Could not alloc memory for Network");
-+
-+    link->n_ref                 = 1;
-+    link->manager               = mgr;
-+    link->manager->rtnl         = rtnl;
-+    link->state                 = LINK_STATE_PENDING;
-+    link->rtnl_extended_attrs   = true;
-+    link->ifindex               = ifindex;
-+    link->ifname                = strdup(device); /*FIXME:*/
-+    if (!link->ifname)
-+            return -ENOMEM;
-+
-+    addr->family                = family;
-+    addr->in_addr.in.s_addr     = ip.s_addr;
-+    addr->prefixlen             = prefixlen;
-+    addr->broadcast.s_addr      = ip.s_addr | ~nm.s_addr;
-+
-+    LIST_PREPEND(addresses, link->network->static_addresses, addr);
-+
-+    if (!isempty (gateway))
-+    {
-+        r = route_new_dynamic(&rt, RTPROT_STATIC);
-+        if (r < 0)
-+            return r;
-+
-+        rt->protocol        = RTPROT_STATIC;
-+        rt->network         = link->network;
-+        rt->family          = family;
-+        rt->scope           = RT_SCOPE_LINK;            /* FIXME: */
-+        rt->dst_prefixlen   = prefixlen;                /* FIXME: AF_INET assumed */
-+/*
-+        rt->dst_addr.in     = gw;
-+        rt->in_addr.in      = ip.s_addr & nm.s_addr;
-+*/
-+        rt->dst_addr.in.s_addr      = ip.s_addr & nm.s_addr;
-+        rt->in_addr.in              = gw;
-+
-+        LIST_PREPEND(routes, link->network->static_routes, rt);
-+    }
-+
-+    /* send an nlmsg (RTM_NEWADDR) and append address to link address list */
-+    r = address_update (addr, link, network_address_added_handler);
-+    if (r < 0)
-+        return r;
-+
-+    r = sd_bus_message_new_method_return(m, &resp);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
-+
-+    r = sd_bus_message_append(resp, "x", 0);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+    /*r = sd_bus_send(mgr->bus, resp, NULL);*/
-+    r = sd_bus_send(NULL, resp, NULL);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error sending reply messgage");
-+
-+
-+    return sd_bus_reply_method_return(m, "s", "Adding IP address...");
-+}
-+
-+static int method_del_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
-+{
-+    _cleanup_bus_message_unref_ sd_bus_message*         resp    = NULL;
-+    _cleanup_netlink_unref_ sd_netlink*                 rtnl    = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message* req     = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message* reply   = NULL;
-+    _cleanup_address_free_ Address *addr                        = NULL;
-+    _cleanup_route_free_ Route *rt                              = NULL;
-+    Manager *mgr                                                = userdata;
-+    Link*               link               = NULL;
-+    struct udev*        udev               = NULL;
-+    struct udev_device* udev_eth           = NULL;
-+
-+    const char*         device             = NULL;
-+    const char*         ipaddr             = NULL;
-+    const char*         netmask            = NULL;
-+    const char*         gateway            = NULL;
-+    char                devpath [32]       = "/sys/class/net/"; 
-+
-+    unsigned char       family;
-+    unsigned char       prefixlen;
-+    unsigned char       flags;
-+    unsigned char       scope;
-+    unsigned char       ifindex;
-+
-+    struct in_addr      nm;
-+    struct in_addr      ip;
-+    struct in_addr      gw;
-+    int r;
-+
-+    assert(m);
-+    assert(mgr);
-+
-+    r = sd_bus_message_read (m, "sssyyys", &device, &ipaddr, &netmask, &family, &flags, &scope, &gateway);
-+    if (r < 0)
-+        return r;
-+
-+    if (isempty (device))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
-+
-+    if (isempty (ipaddr))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Address.");
-+
-+    if (isempty (netmask))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Netmask.");
-+
-+    assert(family == AF_INET || family == AF_INET6);
-+
-+    udev = udev_new();
-+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
-+    if (!udev_eth)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
-+
-+    ifindex = udev_device_get_ifindex(udev_eth);
-+
-+    inet_aton (netmask, &nm);
-+    inet_aton (ipaddr, &ip);
-+    if (!isempty (gateway)) inet_aton (gateway, &gw);
-+
-+    prefixlen = in_addr_netmask_to_prefixlen(&nm);
-+    assert(prefixlen > 0);
-+
-+    r = address_new_dynamic(&addr);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating new address");
-+
-+    r = sd_netlink_open(&rtnl);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_IO_ERROR, "Failed to connect to netlink");
-+
-+    link = new0(Link, 1);
-+    if (!link)
-+            return -ENOMEM;
-+
-+    link->network = new0(Network, 1);
-+    if (!link->network)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Could not alloc memory for Network");
-+
-+    link->n_ref                 = 1;
-+    link->manager               = mgr;
-+    link->manager->rtnl         = rtnl;
-+    link->state                 = LINK_STATE_PENDING;
-+    link->rtnl_extended_attrs   = true;
-+    link->ifindex               = ifindex;
-+    link->ifname                = strdup(device);
-+    if (!link->ifname)
-+            return -ENOMEM;
-+
-+    addr->family                = family;
-+    addr->in_addr.in.s_addr     = ip.s_addr;
-+    addr->prefixlen             = prefixlen;
-+    addr->broadcast.s_addr      = ip.s_addr | ~nm.s_addr;
-+
-+    if (!isempty (gateway))
-+    {
-+        r = route_new_dynamic(&rt, RTPROT_STATIC);
-+        if (r < 0)
-+            return r;
-+
-+        rt->network         = link->network;
-+        rt->family          = family;
-+        rt->scope           = RT_SCOPE_LINK;            /* FIXME: */
-+        rt->dst_prefixlen   = 32;                       /* FIXME: AF_INET assumed */
-+        rt->dst_addr.in     = gw;
-+
-+        /*LIST_PREPEND(routes, link->network->static_routes, rt);*/
-+        /* Drop the Gateway */
-+        route_drop (rt, link, link_route_drop_handler);
-+    }
-+
-+    /* send an nlmsg to delete address from address list */
-+    r = address_drop(addr, link, link_address_drop_handler);
-+    if (r < 0)
-+        return r;
-+
-+    r = sd_bus_message_new_method_return(m, &resp);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
-+
-+    r = sd_bus_message_append(resp, "x", 0);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+    /*r = sd_bus_send(mgr->bus, resp, NULL);*/
-+    r = sd_bus_send(NULL, resp, NULL);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error sending reply messgage");
-+
-+#if 0
-+    r = network_save_static (0, device, ipaddr, prefixlen, gateway); /* persist config - del */
-+    if (r)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, strerror(r));
-+#endif
-+
-+    return sd_bus_reply_method_return(m, "s", "Deleted IP address...");
-+}
-+
-+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
-+{
-+    _cleanup_netlink_unref_ sd_netlink  *rtnl   = NULL;
-+    _cleanup_address_free_ Address      *addr   = NULL;
-+    _cleanup_route_free_ Route          *rt     = NULL;
-+    Manager                             *mgr    = userdata;
-+    struct udev*        udev               = NULL;
-+    struct udev_device* udev_eth           = NULL;
-+    const char*         device             = NULL;
-+    char                devpath [32]       = "/sys/class/net/"; 
-+    unsigned char       ifindex;
-+    int                 r;
-+
-+    sd_netlink_message* maddr;
-+
-+    _cleanup_netlink_message_unref_ sd_netlink_message  *req    = NULL;
-+    _cleanup_netlink_message_unref_ sd_netlink_message  *reply    = NULL;
-+    _cleanup_bus_message_unref_ sd_bus_message  *resp   = NULL;
-+    _cleanup_address_free_ Address              *address = NULL;
-+    _cleanup_free_ struct local_address         *local   = NULL;
-+    _cleanup_free_ char                         *ipr     = NULL;
-+    _cleanup_free_ char                         *gwr     = NULL;
-+    int                 n;
-+    int                 i;
-+
-+    assert(m);
-+    assert(mgr);
-+
-+    r = sd_bus_message_read (m, "s", &device);
-+    if (r < 0)
-+        return r;
-+
-+    if (isempty (device))
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
-+
-+    udev = udev_new();
-+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
-+    if (!udev_eth)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
-+
-+    ifindex = udev_device_get_ifindex(udev_eth);
-+
-+    r = sd_netlink_open(&rtnl);
-+    if (r < 0)
-+            return log_error_errno(r, "Failed to connect to netlink:"); /* fixme */
-+
-+    r = sd_rtnl_message_new_addr(rtnl, &req, RTM_GETADDR, 0, 0);
-+    if (r < 0)
-+            return r;
-+
-+    r = sd_netlink_message_request_dump(req, true);
-+    if (r < 0)
-+            return r;
-+
-+    r = sd_netlink_call(rtnl, req, 0, &reply); /* fixme */
-+    if (r < 0)
-+            return r;
-+
-+    r = sd_bus_message_new_method_return(m, &resp);
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
-+
-+    r = sd_bus_message_open_container(resp, 'a', "(iyyus)"); /*family,prefixlen,scope,flags,addr*/
-+    if (r < 0)
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error opening a container for reply message");
-+
-+    for (maddr = reply; maddr; maddr = sd_netlink_message_next(maddr)) {
-+            int k;
-+
-+            r = address_new_dynamic(&address);
-+            if (r < 0)
-+                    return r;
-+
-+            k = network_rtnl_process_address(rtnl, maddr, mgr, address);
-+            if (k) {
-+                r = in_addr_to_string(address->family, &address->in_addr, &ipr); /* fixme */
-+                if (r < 0)
-+                        return r;
-+
-+                r = sd_bus_message_append (resp, "(iyyus)",
-+                                                    address->family,
-+                                                    address->prefixlen,
-+                                                    address->scope,
-+                                                    address->flags, 
-+                                                    ipr);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+#if 0
-+                r = sd_bus_message_open_container(resp, 'r', "iyyus");
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error opening struct in reply messgage");
-+
-+                r = sd_bus_message_append(resp, "i", address->family);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+                r = sd_bus_message_append(resp, "y", address->prefixlen);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+                r = sd_bus_message_append(resp, "y", address->scope);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+                r = sd_bus_message_append(resp, "u", address->flags);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+                r = in_addr_to_string(address->family, &address->in_addr, &ipr); /* fixme */
-+                if (r < 0)
-+                        return r;
-+
-+                r = sd_bus_message_append(resp, "s", ipr);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+                r = sd_bus_message_close_container(resp);
-+                if (r < 0)
-+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error closing struct in reply messgage");
-+#endif
-+            }
-+    }
-+
-+    r = sd_bus_message_close_container(resp);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error closing reply container");
-+
-+    n = local_gateways(rtnl, ifindex, AF_UNSPEC, &local);
-+    if (n < 0)
-+            return n;
-+
-+    for (i = 0; i < n; i++) {
-+
-+            r = in_addr_to_string(local[i].family, &local[i].address, &gwr);
-+            if (r < 0)
-+                    return r;
-+    }
-+
-+    r = sd_bus_message_append(resp, "s", gwr);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
-+
-+    /*r = sd_bus_send(mgr->bus, resp, NULL);*/
-+    r = sd_bus_send(NULL, resp, NULL);
-+    if (r < 0)
-+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error sending reply messgage");
-+
-+    return sd_bus_reply_method_return(m, "s", "Getting IP configuration...");
-+}
-+
-+
-+int network_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message, void *userdata, Address* address) {
-+        Manager*        m       = (Manager*) userdata; /* fixme */
-+        uint16_t        type;
-+        unsigned char   flags;
-+        char            buf[INET6_ADDRSTRLEN]; 
-+        int             ifindex;
-+        int             r; 
-+        sd_bus_error err    = SD_BUS_ERROR_NULL; /* fixme */
-+        sd_bus_error* error = &err;             /* fixme */
-+
-+        assert(rtnl);
-+        assert(message);
-+        assert(m);
-+        assert(address);
-+
-+        if (sd_netlink_message_is_error(message)) {
-+                r = sd_netlink_message_get_errno(message);
-+                if (r < 0)
-+                        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: failed to receive address: ");
-+
-+                return 0;
-+        }
-+
-+        r = sd_netlink_message_get_type(message, &type);
-+        if (r < 0) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: could not get message type: ");
-+                return 0;
-+        } else if (type != RTM_NEWADDR && type != RTM_DELADDR) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received unexpected message type when processing address");
-+                return 0;
-+        }
-+
-+        r = sd_rtnl_message_addr_get_ifindex(message, &ifindex);
-+        if (r < 0) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: could not get ifindex from address: %m");
-+                return 0;
-+        } else if (ifindex <= 0) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address message with invalid ifindex: %d", ifindex);
-+                return 0;
-+        } 
-+
-+        r = sd_rtnl_message_addr_get_family(message, &address->family); /* int : i*/
-+        if (r < 0 || !IN_SET(address->family, AF_INET, AF_INET6)) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid family, ignoring.");
-+                return 0;
-+        }
-+
-+        r = sd_rtnl_message_addr_get_prefixlen(message, &address->prefixlen); /* uchar : byte : y */
-+        if (r < 0) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid prefixlen, ignoring: ");
-+                return 0;
-+        }
-+
-+        r = sd_rtnl_message_addr_get_scope(message, &address->scope); /* uchar : byte : y*/
-+        if (r < 0) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid scope, ignoring: ");
-+                return 0;
-+        }
-+
-+        r = sd_rtnl_message_addr_get_flags(message, &flags); /* uint32 : u*/
-+        if (r < 0) {
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid flags, ignoring: ");
-+                return 0;
-+        }
-+        address->flags = flags;
-+
-+        switch (address->family) {
-+        case AF_INET:
-+                r = sd_netlink_message_read_in_addr(message, IFA_LOCAL, &address->in_addr.in); /* ulong : uint64 : t */
-+                if (r < 0) {
-+                        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address without valid address, ignoring: ");
-+                        return 0;
-+                }
-+
-+                break;
-+
-+        case AF_INET6:
-+                r = sd_netlink_message_read_in6_addr(message, IFA_ADDRESS, &address->in_addr.in6); /* ulong : uint64 : t */
-+                if (r < 0) {
-+                        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address without valid address, ignoring: ");
-+                        return 0;
-+                }
-+
-+                break;
-+
-+        default:
-+                assert_not_reached("invalid address family");
-+        }
-+
-+        if (!inet_ntop(address->family, &address->in_addr, buf, INET6_ADDRSTRLEN)) { /* string : s */
-+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not print address");
-+                return 0;
-+        }
-+
-+        return 1;
-+}
-+
-+int network_save_static (int cmd, const char* device, const char* ipaddr, int prefixlen, const char* gwaddr)
-+{
-+#define NETWORKD_CONFIG_FILE_NAME_LEN_MAX 64
-+    char    ncfn [NETWORKD_CONFIG_FILE_NAME_LEN_MAX];
-+    FILE*   ncfp = NULL;
-+    int     r=0;
-+
-+    /* /usr/lib/systemd/network/10-bmc-ethx-192.168.255.255.32.network */
-+    snprintf (ncfn, NETWORKD_CONFIG_FILE_NAME_LEN_MAX, "/usr/lib/systemd/network/10-bmc-%s-%s.%d.network", device, ipaddr, prefixlen);
-+
-+    if (cmd) /* add */
-+    {
-+        ncfp = fopen (ncfn, "w+");
-+        if (!ncfp) {
-+            r = errno;
-+        }
-+
-+        fprintf (ncfp, "[Match]\nName=%s\n\n[Network]\nAddress=%s/%d\nGateway=%s\n", device, ipaddr, prefixlen, gwaddr);
-+        fclose (ncfp);
-+    }
-+    else /* del */
-+    {
-+        r = remove (ncfn); 
-+    }
-+
-+    return r;
-+}
-+#endif
-diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
-index 6587ea9..f773936 100644
---- a/src/network/networkd-network.c
-+++ b/src/network/networkd-network.c
-@@ -20,6 +20,9 @@
- ***/
- 
- #include <ctype.h>
-+#include <sys/socket.h>
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
- #include <net/if.h>
- 
- #include "conf-files.h"
-@@ -32,6 +35,15 @@
- #include "network-internal.h"
- #include "dns-domain.h"
- 
-+#define SYSTEMD_NETWORKD_DBUS 1
-+
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+int network_address_added_handler (sd_netlink* rtnl, sd_netlink_message* m, void* userdata);
-+int network_set_gateway (Link* link);
-+static int route_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata);
-+int network_save_static (int cmd, const char* device, const char* ipaddr, int prefixlen, const char* gwaddr);
-+#endif
-+
- static int network_load_one(Manager *manager, const char *filename) {
-         _cleanup_network_free_ Network *network = NULL;
-         _cleanup_fclose_ FILE *file = NULL;
-@@ -850,3 +862,99 @@ int config_parse_hostname(const char *unit,
- 
-         return 0;
- }
-+
-+#ifdef SYSTEMD_NETWORKD_DBUS
-+int network_address_added_handler (sd_netlink* rtnl, sd_netlink_message* m, void* userdata)
-+{
-+        _cleanup_link_unref_ Link *link = userdata;
-+        int r;
-+
-+        assert(link);
-+
-+        r = sd_netlink_message_get_errno(m);
-+        if (r < 0 && r != -EEXIST) {
-+                log_debug("Error in set IP address!");
-+                link_enter_failed(link);
-+                return r;
-+        } else if (r >= 0)
-+                link_rtnl_process_address(rtnl, m, link->manager);
-+
-+	network_set_gateway (link);
-+
-+	return 0;
-+}
-+
-+/* link_enter_set_routes */
-+int network_set_gateway (Link* link)
-+{
-+        _cleanup_address_free_ Address* addr = NULL;
-+        const char*                     device = NULL;
-+        const char*                     ipaddr = NULL;
-+        const char*                     gwaddr = NULL;
-+        Route*                          rt;
-+        unsigned char                   prefixlen;
-+        int                             r=0;
-+
-+        assert(link);
-+        assert(link->network);
-+        assert(link->state == LINK_STATE_SETTING_ADDRESSES);
-+
-+        link->state = LINK_STATE_SETTING_ROUTES;
-+
-+        LIST_FOREACH(routes, rt, link->network->static_routes) {
-+                gwaddr = inet_ntoa (rt->dst_addr.in);
-+                r = route_configure(rt, link, &route_handler);
-+                if (r < 0) {
-+                        log_debug ("Could not set Gateway!");
-+                        link_enter_failed(link);
-+                        return r;
-+                }
-+
-+                link->link_messages ++;
-+        }
-+
-+        if (link->link_messages == 0) {
-+                link->static_configured = true;
-+
-+                /*link_enter_configured (link);*/
-+                log_link_info(link, "Configured");
-+                link->state = LINK_STATE_CONFIGURED;
-+                link_save(link);
-+        } 
-+        else
-+        { 
-+                log_debug("Setting Gateway");
-+        } 
-+
-+        LIST_FOREACH(addresses, addr, link->network->static_addresses) {
-+            device = strdup (link->ifname);
-+            ipaddr = inet_ntoa (addr->in_addr.in);
-+            prefixlen = addr->prefixlen;
-+#if 1
-+            r = network_save_static (1, device, ipaddr, prefixlen, gwaddr); /* persist config - add */
-+            if (r)
-+            {
-+                log_debug(strerror(r));
-+            }
-+#endif
-+        }
-+
-+        return r;
-+}
-+
-+static int route_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
-+        _cleanup_link_unref_ Link *link = userdata;
-+        int r;
-+
-+        assert(link);
-+
-+        r = sd_netlink_message_get_errno(m);
-+        if (r < 0 && r != -EEXIST) {
-+                log_debug ("Could not set route! ");
-+                link_enter_failed(link);
-+        }
-+
-+        return 1;
-+}
-+
-+#endif
-diff --git a/src/network/org.freedesktop.network1.conf b/src/network/org.freedesktop.network1.conf
-index 52dad33..3db7a90 100644
---- a/src/network/org.freedesktop.network1.conf
-+++ b/src/network/org.freedesktop.network1.conf
-@@ -36,6 +36,26 @@
-                        send_interface="org.freedesktop.DBus.Properties"
-                        send_member="GetAll"/>
- 
-+                <allow send_destination="org.freedesktop.network1"
-+                       send_interface="org.freedesktop.network1.Network"
-+                       send_member="AddAddress"/>
-+
-+                <allow send_destination="org.freedesktop.network1"
-+                       send_interface="org.freedesktop.network1.Network"
-+                       send_member="DelAddress"/>
-+
-+                <allow send_destination="org.freedesktop.network1"
-+                       send_interface="org.freedesktop.network1.Network"
-+                       send_member="GetAddress"/>
-+
-+                <allow send_destination="org.freedesktop.network1"
-+                       send_interface="org.freedesktop.network1.Link"
-+                       send_member="GetAddress"/>
-+
-+                <allow send_destination="org.freedesktop.network1"
-+                       send_interface="org.freedesktop.network1.Link"
-+                       send_member="SetAddress"/>
-+
-                 <allow receive_sender="org.freedesktop.network1"/>
-         </policy>
- 
--- 
-1.8.2.2
-
diff --git a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
index 222be49..8b3b25d 100644
--- a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
+++ b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
@@ -1,7 +1,6 @@
 PACKAGECONFIG += "networkd"
 FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
 SRC_URI += "file://default.network"
-SRC_URI += "file://0100-systemd_networkd_dbus_setaddress.patch"
 
 FILES_${PN} += "${libdir}/systemd/network/default.network"
 
-- 
2.9.0

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

* [PATCH openbmc v5 04/11] meta-phosphor: Make image-overlay an optional feature
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (2 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 03/11] meta-phosphor: Remove unused systemd patch OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:53   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined OpenBMC Patches
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Previously, obmc-bsp-common.inc added "overlay" to the IMAGE_FSTYPES
but this only has meaning if the 'image-overlay' class is used.  The
obmc-phosphor-image class explicitly includes 'image-overlay' when
appropriate but no other images (ie. ones that come with yocto) do.

Changed obmc-bsp-common to instead enable an obmc-phosphor-image feature
by setting OBMC_PHOSPHOR_IMAGE_OVERLAY=1. Then in obmc-phosphor-image we
add "overlay" to the IMAGE_FSTYPES only when the feature is enabled.

This will fix both non-phosphor images on hardware platforms and all images
on simulation platforms.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 meta-phosphor/classes/obmc-phosphor-image.bbclass      | 15 +++++++++------
 meta-phosphor/conf/machine/include/obmc-bsp-common.inc |  2 +-
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/meta-phosphor/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
index d3960c7..b2925c2 100644
--- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
@@ -48,9 +48,12 @@ CORE_IMAGE_EXTRA_INSTALL_append = " bash \
 
 OBMC_IMAGE_EXTRA_INSTALL ?= ""
 
-def build_overlay(d):
-        if bb.utils.contains("IMAGE_FSTYPES", "overlay", "overlay", "0", d) != "0":
-                return "image-overlay"
-        return ""
-
-inherit ${@build_overlay(d)}
+def image_overlay_enabled(d, fstype):
+        if d.getVar('OBMC_PHOSPHOR_IMAGE_OVERLAY', True) != "1":
+            return ""
+        if fstype:
+            return "overlay"
+        return "image-overlay"
+
+IMAGE_FSTYPES += "${@image_overlay_enabled(d, True)}"
+inherit ${@image_overlay_enabled(d, False)}
diff --git a/meta-phosphor/conf/machine/include/obmc-bsp-common.inc b/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
index 8d1fd7e..2b6a163 100644
--- a/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
+++ b/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
@@ -13,7 +13,7 @@ UBOOT_SUFFIX ?= "bin"
 
 MACHINEOVERRIDES =. "openbmc:"
 
-IMAGE_FSTYPES += "overlay"
+OBMC_PHOSPHOR_IMAGE_OVERLAY= "1"
 IMAGE_FSTYPES += "cpio.${INITRAMFS_CTYPE}.u-boot"
 OBMC_IMAGE_EXTRA_INSTALL_append = " u-boot-fw-utils"
 
-- 
2.9.0

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

* [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (3 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 04/11] meta-phosphor: Make image-overlay an optional feature OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:53   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 06/11] obmc-phosphor-image: Improper use of DATETIME OpenBMC Patches
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

The hardware platforms use obmc-bsp-common.inc, which defines
INITRAMFS_CTYPE, but the simulation (qemu) platforms do not.
core-image-minimal-initramfs.bbappend currrently uses INITRAMFS_CTYPE
so we need to make sure it is defined.  Default there to 'lzma' if not
already defined.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 .../common/recipes-core/images/core-image-minimal-initramfs.bbappend     | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend b/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend
index 90a1c3f..5710d22 100644
--- a/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend
+++ b/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend
@@ -1,3 +1,4 @@
 PACKAGE_INSTALL_remove = "initramfs-live-boot initramfs-live-install initramfs-live-install-efi"
 PACKAGE_INSTALL += "obmc-phosphor-initfs"
+INITRAMFS_CTYPE ?= "lzma"
 INITRAMFS_FSTYPES = "cpio.${INITRAMFS_CTYPE}"
-- 
2.9.0

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

* [PATCH openbmc v5 06/11] obmc-phosphor-image: Improper use of DATETIME
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (4 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:52   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 07/11] btbridged: Change how kernel-source depend is specified OpenBMC Patches
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

The use of the DATETIME variable has issues with the sstate cache
because of the variable changing values, and therefore the checksum
used for sstate calculation also changing.

Other existing recipes add DATETIME to the 'vardepsexclude' list.
This case is glossed over very rapidly in section 21.3.2 "Checksums"
of the Mega Manual.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
index adb86e0..c44139e 100644
--- a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
@@ -14,6 +14,7 @@ INITRD_IMAGE_LOADADDRESS ?= "${INITRD_IMAGE_ENTRYPOINT}"
 INITRD_LINK_NAME = "${INITRD_IMAGE}-${MACHINE}${INITRAMFS_FSTYPE}"
 
 FLASH_IMAGE_NAME ?= "flash-${MACHINE}-${DATETIME}"
+FLASH_IMAGE_NAME[vardepsexclude] = "DATETIME"
 FLASH_IMAGE_LINK ?= "flash-${MACHINE}"
 
 FLASH_UBOOT_OFFSET ?= "0"
@@ -95,3 +96,4 @@ do_generate_flash() {
        tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.all.tar -C ${ddir} image-bmc
        tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.tar -C ${ddir} image-u-boot image-kernel image-initramfs image-rofs image-rwfs
 }
+do_generate_flash[vardepsexclude] = "DATETIME"
-- 
2.9.0

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

* [PATCH openbmc v5 07/11] btbridged: Change how kernel-source depend is specified
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (5 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 06/11] obmc-phosphor-image: Improper use of DATETIME OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:51   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 08/11] Fix systemd packageconfig OpenBMC Patches
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

As of Yocto commit 46cdaf1 we are suppose to use:
   do_configure[depends] += "virtual/kernel:do_shared_workdir"
Instead of:
    DEPENDS += "virtual/kernel"

Without this, the kernel source is not unpacked if you compile with
the sstate cache and so btbridged fails to find the bt-host header.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb b/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb
index a1a32d9..f3a7003 100644
--- a/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb
+++ b/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb
@@ -15,4 +15,4 @@ SRCREV="39b3700766d851009258544aa0f75365f024c597"
 
 # This is how linux-libc-headers says to include custom uapi headers
 EXTRA_OEMAKE_append = "CFLAGS=-I${STAGING_KERNEL_DIR}/include/uapi"
-DEPENDS += "virtual/kernel"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
-- 
2.9.0

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

* [PATCH openbmc v5 08/11] Fix systemd packageconfig
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (6 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 07/11] btbridged: Change how kernel-source depend is specified OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:52   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version OpenBMC Patches
                   ` (3 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Brad Bishop

From: Brad Bishop <bradleyb@fuzziesquirrel.com>

PACKAGECONFIG is typically set with '??=' in the base recipe.  In our
systemd append it was being set with += which overrides the weak
default (??=) so none of the default configure options were used.  This
patch corrects that and then removes all the default options we don't
need.

Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
---
 meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
index 8b3b25d..9ad6a40 100644
--- a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
+++ b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
@@ -1,4 +1,5 @@
-PACKAGECONFIG += "networkd"
+PACKAGECONFIG_append = " networkd"
+PACKAGECONFIG_remove = "machined hibernate ldconfig binfmt backlight quotacheck localed kdbus ima smack polkit"
 FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
 SRC_URI += "file://default.network"
 
-- 
2.9.0

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

* [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version.
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (7 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 08/11] Fix systemd packageconfig OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:40   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree OpenBMC Patches
                   ` (2 subsequent siblings)
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
index bfbdcf6..a514cf2 100644
--- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
+++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
 # SRCREV = "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c"
-SRCREV="4b44678c11ac82c7c797bb115e276181752ad54d"
+SRCREV="44f1262bdf39ad93032d39f17a298165372be82e"
 
 PV = "v2013.07+git${SRCPV}"
 
-- 
2.9.0

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

* [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree.
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (8 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:50   ` Joel Stanley
  2016-06-23 20:40 ` [PATCH openbmc v5 11/11] u-boot: Remove unused 2013.07 packages OpenBMC Patches
  2016-06-23 20:57 ` [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 Patrick Williams
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Move 2016.15 tree to point at the latest openbmc commit and point
all AST2400 machines to it.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 .../meta-ast2400/conf/machine/include/ast2400.inc            |  6 +++---
 .../recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend            | 12 ++++++++++++
 .../recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend     | 10 ----------
 .../meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend        |  3 +++
 .../meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend |  1 -
 .../meta-ibm/meta-firestone/conf/machine/firestone.conf      |  2 +-
 .../meta-ibm/meta-garrison/conf/machine/garrison.conf        |  2 +-
 .../meta-ibm/meta-palmetto/conf/machine/palmetto.conf        |  2 +-
 .../meta-barreleye/conf/machine/barreleye.conf               |  2 +-
 .../common/recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb     |  4 ++--
 meta-phosphor/common/recipes-bsp/u-boot/u-boot_2016.05.bb    |  4 ++--
 11 files changed, 26 insertions(+), 22 deletions(-)
 create mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend
 create mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend

diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc
index 8510a03..d67959a 100644
--- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc
+++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc
@@ -4,10 +4,10 @@
 
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-obmc"
 PREFERRED_VERSION_linux-obmc ?= "4.4+git%"
-PREFERRED_VERSION_u-boot ?= "v2013.07+git%"
-PREFERRED_VERSION_u-boot-fw-utils ?= "v2013.07+git%"
+PREFERRED_VERSION_u-boot ?= "v2016.05+git%"
+PREFERRED_VERSION_u-boot-fw-utils ?= "v2016.05+git%"
 
-UBOOT_MACHINE ?= "palmetto_config"
+UBOOT_MACHINE ?= "ast_g4_config"
 UBOOT_ENTRYPOINT ?= "0x40001000"
 UBOOT_LOADADDRESS ?= "0x40001000"
 
diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend
new file mode 100644
index 0000000..070f389
--- /dev/null
+++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend
@@ -0,0 +1,12 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://fw_env.config"
+
+do_install_append() {
+    if [ -e ${WORKDIR}/fw_env.config ] ; then
+        install -d ${D}${sysconfdir}
+        install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
+    fi
+}
+
+BBCLASSEXTEND += "native"
diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
index 4020696..77fcfef 100644
--- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
+++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
@@ -1,13 +1,3 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
-SRC_URI += "file://fw_env.config"
 SRC_URI += "file://config.patch"
-
-do_install_append() {
-    if [ -e ${WORKDIR}/fw_env.config ] ; then
-        install -d ${D}${sysconfdir}
-        install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
-    fi
-}
-
-BBCLASSEXTEND += "native"
diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend
new file mode 100644
index 0000000..ef6a709
--- /dev/null
+++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://fw_env.config"
diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
index 42a4704..77fcfef 100644
--- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
+++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
@@ -1,4 +1,3 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
-SRC_URI += "file://fw_env.config"
 SRC_URI += "file://config.patch"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
index 42f2d29..fa0d35e 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
@@ -5,7 +5,7 @@ require conf/machine/include/ast2400.inc
 require conf/machine/include/obmc-bsp-common.inc
 require conf/machine/include/ibm.inc
 
-UBOOT_MACHINE_firestone = "palmetto_config"
+UBOOT_MACHINE_firestone = "ast_g4_config"
 UBOOT_ENTRYPOINT = "0x40008000"
 UBOOT_LOADADDRESS = "0x40008000"
 
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf
index 4fd03fd..820a513 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf
@@ -5,7 +5,7 @@ require conf/machine/include/ast2400.inc
 require conf/machine/include/obmc-bsp-common.inc
 require conf/machine/include/ibm.inc
 
-UBOOT_MACHINE_garrison = "palmetto_config"
+UBOOT_MACHINE_garrison = "ast_g4_config"
 UBOOT_ENTRYPOINT = "0x40008000"
 UBOOT_LOADADDRESS = "0x40008000"
 
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-palmetto/conf/machine/palmetto.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-palmetto/conf/machine/palmetto.conf
index f6256a7..e69a9af 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-palmetto/conf/machine/palmetto.conf
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-palmetto/conf/machine/palmetto.conf
@@ -5,7 +5,7 @@ require conf/machine/include/ast2400.inc
 require conf/machine/include/obmc-bsp-common.inc
 require conf/machine/include/ibm.inc
 
-UBOOT_MACHINE_palmetto = "palmetto_config"
+UBOOT_MACHINE_palmetto = "ast_g4_config"
 UBOOT_ENTRYPOINT = "0x40008000"
 UBOOT_LOADADDRESS = "0x40008000"
 
diff --git a/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/conf/machine/barreleye.conf b/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/conf/machine/barreleye.conf
index f9d31f1..d861f74 100644
--- a/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/conf/machine/barreleye.conf
+++ b/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/conf/machine/barreleye.conf
@@ -5,7 +5,7 @@ require conf/machine/include/ast2400.inc
 require conf/machine/include/obmc-bsp-common.inc
 require conf/machine/include/rackspace.inc
 
-UBOOT_MACHINE_barreleye = "palmetto_config"
+UBOOT_MACHINE_barreleye = "ast_g4_config"
 UBOOT_ENTRYPOINT = "0x40008000"
 UBOOT_LOADADDRESS = "0x40008000"
 
diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb
index 80d90fa..c240236 100644
--- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb
+++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb
@@ -4,8 +4,8 @@ LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
 SECTION = "bootloader"
 DEPENDS = "mtd-utils"
 
-SRCREV = "47441cc36bb8e919a066837e4d7c5a8a1c475da4"
-UBRANCH = "v2016.05-ast2500"
+SRCREV = "3f04d9fef7bbfec3a536337e7fc1b3492d20e331"
+UBRANCH = "v2016.05-aspeed-openbmc"
 SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
 
 PV = "v2016.05+git${SRCPV}"
diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2016.05.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2016.05.bb
index f1d6318..bb97e8b 100644
--- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2016.05.bb
+++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2016.05.bb
@@ -3,8 +3,8 @@ require recipes-bsp/u-boot/u-boot.inc
 LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
 DEPENDS += "dtc-native"
 
-SRCREV = "47441cc36bb8e919a066837e4d7c5a8a1c475da4"
-UBRANCH = "v2016.05-ast2500"
+SRCREV = "3f04d9fef7bbfec3a536337e7fc1b3492d20e331"
+UBRANCH = "v2016.05-aspeed-openbmc"
 SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
 
 PV = "v2016.05+git${SRCPV}"
-- 
2.9.0

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

* [PATCH openbmc v5 11/11] u-boot: Remove unused 2013.07 packages.
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (9 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree OpenBMC Patches
@ 2016-06-23 20:40 ` OpenBMC Patches
  2016-06-24  2:51   ` Joel Stanley
  2016-06-23 20:57 ` [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 Patrick Williams
  11 siblings, 1 reply; 29+ messages in thread
From: OpenBMC Patches @ 2016-06-23 20:40 UTC (permalink / raw)
  To: openbmc; +Cc: Patrick Williams

From: Patrick Williams <patrick@stwcx.xyz>

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
---
 .../u-boot/u-boot-fw-utils_2013.07%.bbappend       |  3 --
 .../recipes-bsp/u-boot/u-boot_2013.07%.bbappend    |  3 --
 .../recipes-bsp/u-boot/u-boot_2013.07%.bbappend    |  3 --
 .../recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb  | 55 ----------------------
 .../common/recipes-bsp/u-boot/u-boot_2013.07.bb    | 23 ---------
 5 files changed, 87 deletions(-)
 delete mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
 delete mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
 delete mode 100644 meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
 delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
 delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb

diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
deleted file mode 100644
index 77fcfef..0000000
--- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://config.patch"
diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
deleted file mode 100644
index 77fcfef..0000000
--- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "file://config.patch"
diff --git a/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend b/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
deleted file mode 100644
index 1eeec2e..0000000
--- a/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
-FILESEXTRAPATHS_append := "${THISDIR}/files:"
-
-SRC_URI += "file://u-boot-barreleye.patch"
diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
deleted file mode 100644
index a514cf2..0000000
--- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-#require recipes-bsp/u-boot/u-boot.inc
-
-SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
-SECTION = "bootloader"
-DEPENDS = "mtd-utils"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
-                    file://README;beginline=1;endline=22;md5=78b195c11cb6ef63e6985140db7d7bab"
-
-# This revision corresponds to the tag "v2013.07"
-# We use the revision in order to avoid having to fetch it from the
-# repo during parse
-# SRCREV = "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c"
-SRCREV="44f1262bdf39ad93032d39f17a298165372be82e"
-
-PV = "v2013.07+git${SRCPV}"
-
-UBRANCH = "v2013.07-aspeed-openbmc"
-SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
-S = "${WORKDIR}/git"
-
-#INSANE_SKIP_${PN} = "already-stripped"
-#EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
-#EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
-EXTRA_OEMAKE = 'HOSTCC="${CC}" CC="${CC}" HOSTSTRIP="true"'
-
-inherit uboot-config
-
-do_compile () {
-	oe_runmake ${UBOOT_MACHINE}
-	oe_runmake env
-}
-
-do_install () {
-	install -d ${D}${base_sbindir}
-	install -d ${D}${sysconfdir}
-	install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv
-	ln -sf fw_printenv ${D}${base_sbindir}/fw_setenv
-	install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config
-}
-
-#do_install_class-cross () {
-#	install -d ${D}${bindir_cross}
-#	install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv
-#	install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
-#}
-
-#SYSROOT_PREPROCESS_FUNCS_class-cross = "uboot_fw_utils_cross"
-#uboot_fw_utils_cross() {
-#	sysroot_stage_dir ${D}${bindir_cross} ${SYSROOT_DESTDIR}${bindir_cross}
-#}
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-#BBCLASSEXTEND = "cross native"
diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
deleted file mode 100644
index f2434ad..0000000
--- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require recipes-bsp/u-boot/u-boot.inc
-
-# To build u-boot for your machine, provide the following lines in your machine
-# config, replacing the assignments as appropriate for your machine.
-# UBOOT_MACHINE = "omap3_beagle_config"
-# UBOOT_ENTRYPOINT = "0x80008000"
-# UBOOT_LOADADDRESS = "0x80008000"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
-                    file://README;beginline=1;endline=22;md5=78b195c11cb6ef63e6985140db7d7bab"
-
-# We use the revision in order to avoid having to fetch it from the repo during parse
-SRCREV = "44f1262bdf39ad93032d39f17a298165372be82e"
-
-PV = "v2013.07+git${SRCPV}"
-
-UBRANCH = "v2013.07-aspeed-openbmc"
-SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
-
-S = "${WORKDIR}/git"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-- 
2.9.0

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

* Re: [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1
  2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
                   ` (10 preceding siblings ...)
  2016-06-23 20:40 ` [PATCH openbmc v5 11/11] u-boot: Remove unused 2013.07 packages OpenBMC Patches
@ 2016-06-23 20:57 ` Patrick Williams
  11 siblings, 0 replies; 29+ messages in thread
From: Patrick Williams @ 2016-06-23 20:57 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: openbmc

[-- Attachment #1: Type: text/plain, Size: 3457 bytes --]

These two pull requests are both ready for a complete review.  We have
Yocto 2.1 working now on hardware and qemu.

https://github.com/openbmc/openbmc/pull/397
https://github.com/openbmc/openbmc/pull/396

On Thu, Jun 23, 2016 at 03:40:22PM -0500, OpenBMC Patches wrote:
> 
> 
> <!-- Reviewable:start -->
> This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/openbmc/openbmc/397)
> <!-- Reviewable:end -->
> 
> 
> https://github.com/openbmc/openbmc/pull/397
> 
> Brad Bishop (1):
>   Fix systemd packageconfig
> 
> Patrick Williams (10):
>   meta-phosphor: Use obmc-phosphor-event for qemu systems
>   meta-phosphor: use obmc-phosphor-user for qemu systems
>   meta-phosphor: Remove unused systemd patch
>   meta-phosphor: Make image-overlay an optional feature
>   meta-phosphor: Ensure INITRAMFS_CTYPE defined
>   obmc-phosphor-image: Improper use of DATETIME
>   btbridged: Change how kernel-source depend is specified
>   u-boot-fw-utils: Update to latest version.
>   u-boot: Upgrade AST2400 machines to 2016.15 tree.
>   u-boot: Remove unused 2013.07 packages.
> 
>  .../meta-ast2400/conf/machine/include/ast2400.inc  |    6 +-
>  ...013.07%.bbappend => u-boot-fw-utils_%.bbappend} |    1 -
>  ...{u-boot_2013.07%.bbappend => u-boot_%.bbappend} |    1 -
>  .../meta-firestone/conf/machine/firestone.conf     |    2 +-
>  .../meta-garrison/conf/machine/garrison.conf       |    2 +-
>  .../meta-palmetto/conf/machine/palmetto.conf       |    2 +-
>  .../meta-barreleye/conf/machine/barreleye.conf     |    2 +-
>  .../recipes-bsp/u-boot/u-boot_2013.07%.bbappend    |    3 -
>  meta-phosphor/classes/obmc-phosphor-image.bbclass  |   15 +-
>  .../obmc-phosphor-image_types_uboot.bbclass        |    2 +
>  .../recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb  |   55 -
>  .../recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb  |    4 +-
>  .../common/recipes-bsp/u-boot/u-boot_2013.07.bb    |   23 -
>  .../common/recipes-bsp/u-boot/u-boot_2016.05.bb    |    4 +-
>  .../images/core-image-minimal-initramfs.bbappend   |    1 +
>  .../0100-systemd_networkd_dbus_setaddress.patch    | 1209 --------------------
>  .../common/recipes-core/systemd/systemd_%.bbappend |    4 +-
>  .../recipes-phosphor/host-ipmid/btbridged.bb       |    2 +-
>  .../conf/machine/include/obmc-bsp-common.inc       |    2 +-
>  meta-phosphor/conf/machine/include/sample.inc      |    4 +-
>  20 files changed, 29 insertions(+), 1315 deletions(-)
>  rename meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/{u-boot-fw-utils_2013.07%.bbappend => u-boot-fw-utils_%.bbappend} (90%)
>  rename meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/{u-boot_2013.07%.bbappend => u-boot_%.bbappend} (71%)
>  delete mode 100644 meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
>  delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
>  delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
>  delete mode 100644 meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch
> 
> -- 
> 2.9.0
> 
> 
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

-- 
Patrick Williams

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version.
  2016-06-23 20:40 ` [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version OpenBMC Patches
@ 2016-06-24  2:40   ` Joel Stanley
  2016-06-24  2:42     ` Joel Stanley
  0 siblings, 1 reply; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:40 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> ---
>  meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> index bfbdcf6..a514cf2 100644
> --- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> +++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb

Can we delete this recipe now we're using 2016.05?

> @@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
>  # We use the revision in order to avoid having to fetch it from the
>  # repo during parse
>  # SRCREV = "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c"
> -SRCREV="4b44678c11ac82c7c797bb115e276181752ad54d"
> +SRCREV="44f1262bdf39ad93032d39f17a298165372be82e"
>
>  PV = "v2013.07+git${SRCPV}"
>
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version.
  2016-06-24  2:40   ` Joel Stanley
@ 2016-06-24  2:42     ` Joel Stanley
  2016-06-24 20:06       ` Patrick Williams
  0 siblings, 1 reply; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:42 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 12:10 PM, Joel Stanley <joel@jms.id.au> wrote:
>> diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
>> index bfbdcf6..a514cf2 100644
>> --- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
>> +++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
>
> Can we delete this recipe now we're using 2016.05?

Yes, you delete the file in the final commit. Perhaps you can drop
this commit from the series then?

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

* Re: [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree.
  2016-06-23 20:40 ` [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree OpenBMC Patches
@ 2016-06-24  2:50   ` Joel Stanley
  2016-06-24 20:09     ` Patrick Williams
  0 siblings, 1 reply; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:50 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> Move 2016.15 tree to point at the latest openbmc commit and point
> all AST2400 machines to it.
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
> ---
>  .../meta-ast2400/conf/machine/include/ast2400.inc            |  6 +++---
>  .../recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend            | 12 ++++++++++++
>  .../recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend     | 10 ----------
>  .../meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend        |  3 +++
>  .../meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend |  1 -
>  .../meta-ibm/meta-firestone/conf/machine/firestone.conf      |  2 +-
>  .../meta-ibm/meta-garrison/conf/machine/garrison.conf        |  2 +-
>  .../meta-ibm/meta-palmetto/conf/machine/palmetto.conf        |  2 +-
>  .../meta-barreleye/conf/machine/barreleye.conf               |  2 +-
>  .../common/recipes-bsp/u-boot/u-boot-fw-utils_2016.05.bb     |  4 ++--
>  meta-phosphor/common/recipes-bsp/u-boot/u-boot_2016.05.bb    |  4 ++--
>  11 files changed, 26 insertions(+), 22 deletions(-)
>  create mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_%.bbappend
>  create mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_%.bbappend
>
> diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc
> index 8510a03..d67959a 100644
> --- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc
> +++ b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/conf/machine/include/ast2400.inc
> @@ -4,10 +4,10 @@
>
>  PREFERRED_PROVIDER_virtual/kernel ?= "linux-obmc"
>  PREFERRED_VERSION_linux-obmc ?= "4.4+git%"
> -PREFERRED_VERSION_u-boot ?= "v2013.07+git%"
> -PREFERRED_VERSION_u-boot-fw-utils ?= "v2013.07+git%"
> +PREFERRED_VERSION_u-boot ?= "v2016.05+git%"
> +PREFERRED_VERSION_u-boot-fw-utils ?= "v2016.05+git%"

Should this be the branch name? The branch is called v2016.05-aspeed-openbmc.

> -UBOOT_MACHINE ?= "palmetto_config"
> +UBOOT_MACHINE ?= "ast_g4_config"

As I mentioned in my status update, I didn't do the best job of naming
the defconfigs. ast_g4_config is for ast2400 systems that use NC-SI,
which means it's no good for firestone or the facebook machines.

Do you want me to rename the config ast_g4_ncsi_config? Or leave it
for now, and we can clean it up once the u-boot tree is in order.

I would lean towards leaving it for now as once u-boot is cleaned up
to use the Kconfig system, we can have the yocto machines select the
option they require.

>  UBOOT_ENTRYPOINT ?= "0x40001000"
>  UBOOT_LOADADDRESS ?= "0x40001000"


> diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
> index 42f2d29..fa0d35e 100644
> --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
> +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
> @@ -5,7 +5,7 @@ require conf/machine/include/ast2400.inc
>  require conf/machine/include/obmc-bsp-common.inc
>  require conf/machine/include/ibm.inc
>
> -UBOOT_MACHINE_firestone = "palmetto_config"
> +UBOOT_MACHINE_firestone = "ast_g4_config"

As above; firestone uses a dedicated phy instead of NC-SI. Machines
won't have network if they update to this.

I can add add a new system to u-boot, or I can send a patch that hacks
at the machine.

>  UBOOT_ENTRYPOINT = "0x40008000"
>  UBOOT_LOADADDRESS = "0x40008000"
>

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

* Re: [PATCH openbmc v5 11/11] u-boot: Remove unused 2013.07 packages.
  2016-06-23 20:40 ` [PATCH openbmc v5 11/11] u-boot: Remove unused 2013.07 packages OpenBMC Patches
@ 2016-06-24  2:51   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:51 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Yay!

Reviewed-by: Joel Stanley <joel@jms.id.au>

> ---
>  .../u-boot/u-boot-fw-utils_2013.07%.bbappend       |  3 --
>  .../recipes-bsp/u-boot/u-boot_2013.07%.bbappend    |  3 --
>  .../recipes-bsp/u-boot/u-boot_2013.07%.bbappend    |  3 --
>  .../recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb  | 55 ----------------------
>  .../common/recipes-bsp/u-boot/u-boot_2013.07.bb    | 23 ---------
>  5 files changed, 87 deletions(-)
>  delete mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
>  delete mode 100644 meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
>  delete mode 100644 meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
>  delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
>  delete mode 100644 meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
>
> diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
> deleted file mode 100644
> index 77fcfef..0000000
> --- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot-fw-utils_2013.07%.bbappend
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
> -
> -SRC_URI += "file://config.patch"
> diff --git a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend b/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
> deleted file mode 100644
> index 77fcfef..0000000
> --- a/meta-openbmc-bsp/meta-aspeed/meta-ast2400/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
> -
> -SRC_URI += "file://config.patch"
> diff --git a/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend b/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
> deleted file mode 100644
> index 1eeec2e..0000000
> --- a/meta-openbmc-machines/meta-openpower/meta-rackspace/meta-barreleye/recipes-bsp/u-boot/u-boot_2013.07%.bbappend
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -FILESEXTRAPATHS_append := "${THISDIR}/files:"
> -
> -SRC_URI += "file://u-boot-barreleye.patch"
> diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> deleted file mode 100644
> index a514cf2..0000000
> --- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -#require recipes-bsp/u-boot/u-boot.inc
> -
> -SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
> -SECTION = "bootloader"
> -DEPENDS = "mtd-utils"
> -
> -LICENSE = "GPLv2+"
> -LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
> -                    file://README;beginline=1;endline=22;md5=78b195c11cb6ef63e6985140db7d7bab"
> -
> -# This revision corresponds to the tag "v2013.07"
> -# We use the revision in order to avoid having to fetch it from the
> -# repo during parse
> -# SRCREV = "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c"
> -SRCREV="44f1262bdf39ad93032d39f17a298165372be82e"
> -
> -PV = "v2013.07+git${SRCPV}"
> -
> -UBRANCH = "v2013.07-aspeed-openbmc"
> -SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
> -S = "${WORKDIR}/git"
> -
> -#INSANE_SKIP_${PN} = "already-stripped"
> -#EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
> -#EXTRA_OEMAKE_class-cross = 'ARCH=${TARGET_ARCH} CC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
> -EXTRA_OEMAKE = 'HOSTCC="${CC}" CC="${CC}" HOSTSTRIP="true"'
> -
> -inherit uboot-config
> -
> -do_compile () {
> -       oe_runmake ${UBOOT_MACHINE}
> -       oe_runmake env
> -}
> -
> -do_install () {
> -       install -d ${D}${base_sbindir}
> -       install -d ${D}${sysconfdir}
> -       install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv
> -       ln -sf fw_printenv ${D}${base_sbindir}/fw_setenv
> -       install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config
> -}
> -
> -#do_install_class-cross () {
> -#      install -d ${D}${bindir_cross}
> -#      install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv
> -#      install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
> -#}
> -
> -#SYSROOT_PREPROCESS_FUNCS_class-cross = "uboot_fw_utils_cross"
> -#uboot_fw_utils_cross() {
> -#      sysroot_stage_dir ${D}${bindir_cross} ${SYSROOT_DESTDIR}${bindir_cross}
> -#}
> -
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> -#BBCLASSEXTEND = "cross native"
> diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
> deleted file mode 100644
> index f2434ad..0000000
> --- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot_2013.07.bb
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -require recipes-bsp/u-boot/u-boot.inc
> -
> -# To build u-boot for your machine, provide the following lines in your machine
> -# config, replacing the assignments as appropriate for your machine.
> -# UBOOT_MACHINE = "omap3_beagle_config"
> -# UBOOT_ENTRYPOINT = "0x80008000"
> -# UBOOT_LOADADDRESS = "0x80008000"
> -
> -LICENSE = "GPLv2+"
> -LIC_FILES_CHKSUM = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb \
> -                    file://README;beginline=1;endline=22;md5=78b195c11cb6ef63e6985140db7d7bab"
> -
> -# We use the revision in order to avoid having to fetch it from the repo during parse
> -SRCREV = "44f1262bdf39ad93032d39f17a298165372be82e"
> -
> -PV = "v2013.07+git${SRCPV}"
> -
> -UBRANCH = "v2013.07-aspeed-openbmc"
> -SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
> -
> -S = "${WORKDIR}/git"
> -
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 07/11] btbridged: Change how kernel-source depend is specified
  2016-06-23 20:40 ` [PATCH openbmc v5 07/11] btbridged: Change how kernel-source depend is specified OpenBMC Patches
@ 2016-06-24  2:51   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:51 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> As of Yocto commit 46cdaf1 we are suppose to use:
>    do_configure[depends] += "virtual/kernel:do_shared_workdir"
> Instead of:
>     DEPENDS += "virtual/kernel"
>
> Without this, the kernel source is not unpacked if you compile with
> the sstate cache and so btbridged fails to find the bt-host header.
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>

> ---
>  meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb b/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb
> index a1a32d9..f3a7003 100644
> --- a/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb
> +++ b/meta-phosphor/common/recipes-phosphor/host-ipmid/btbridged.bb
> @@ -15,4 +15,4 @@ SRCREV="39b3700766d851009258544aa0f75365f024c597"
>
>  # This is how linux-libc-headers says to include custom uapi headers
>  EXTRA_OEMAKE_append = "CFLAGS=-I${STAGING_KERNEL_DIR}/include/uapi"
> -DEPENDS += "virtual/kernel"
> +do_configure[depends] += "virtual/kernel:do_shared_workdir"
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 08/11] Fix systemd packageconfig
  2016-06-23 20:40 ` [PATCH openbmc v5 08/11] Fix systemd packageconfig OpenBMC Patches
@ 2016-06-24  2:52   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:52 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Brad Bishop

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Brad Bishop <bradleyb@fuzziesquirrel.com>
>
> PACKAGECONFIG is typically set with '??=' in the base recipe.  In our
> systemd append it was being set with += which overrides the weak
> default (??=) so none of the default configure options were used.  This
> patch corrects that and then removes all the default options we don't
> need.
>
> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>

Acked-by: Joel Stanley <joel@jms.id.au>

> ---
>  meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
> index 8b3b25d..9ad6a40 100644
> --- a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
> +++ b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
> @@ -1,4 +1,5 @@
> -PACKAGECONFIG += "networkd"
> +PACKAGECONFIG_append = " networkd"
> +PACKAGECONFIG_remove = "machined hibernate ldconfig binfmt backlight quotacheck localed kdbus ima smack polkit"
>  FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
>  SRC_URI += "file://default.network"
>
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 06/11] obmc-phosphor-image: Improper use of DATETIME
  2016-06-23 20:40 ` [PATCH openbmc v5 06/11] obmc-phosphor-image: Improper use of DATETIME OpenBMC Patches
@ 2016-06-24  2:52   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:52 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> The use of the DATETIME variable has issues with the sstate cache
> because of the variable changing values, and therefore the checksum
> used for sstate calculation also changing.
>
> Other existing recipes add DATETIME to the 'vardepsexclude' list.
> This case is glossed over very rapidly in section 21.3.2 "Checksums"
> of the Mega Manual.
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>

> ---
>  meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
> index adb86e0..c44139e 100644
> --- a/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
> +++ b/meta-phosphor/classes/obmc-phosphor-image_types_uboot.bbclass
> @@ -14,6 +14,7 @@ INITRD_IMAGE_LOADADDRESS ?= "${INITRD_IMAGE_ENTRYPOINT}"
>  INITRD_LINK_NAME = "${INITRD_IMAGE}-${MACHINE}${INITRAMFS_FSTYPE}"
>
>  FLASH_IMAGE_NAME ?= "flash-${MACHINE}-${DATETIME}"
> +FLASH_IMAGE_NAME[vardepsexclude] = "DATETIME"
>  FLASH_IMAGE_LINK ?= "flash-${MACHINE}"
>
>  FLASH_UBOOT_OFFSET ?= "0"
> @@ -95,3 +96,4 @@ do_generate_flash() {
>         tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.all.tar -C ${ddir} image-bmc
>         tar -h -cvf ${ddir}/${MACHINE}-${DATETIME}.tar -C ${ddir} image-u-boot image-kernel image-initramfs image-rofs image-rwfs
>  }
> +do_generate_flash[vardepsexclude] = "DATETIME"
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined
  2016-06-23 20:40 ` [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined OpenBMC Patches
@ 2016-06-24  2:53   ` Joel Stanley
  2016-06-24 20:16     ` Patrick Williams
  0 siblings, 1 reply; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:53 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> The hardware platforms use obmc-bsp-common.inc, which defines
> INITRAMFS_CTYPE, but the simulation (qemu) platforms do not.
> core-image-minimal-initramfs.bbappend currrently uses INITRAMFS_CTYPE
> so we need to make sure it is defined.  Default there to 'lzma' if not
> already defined.
>

Should it default to none if it's not defined? How do we make sure the
kernel has decompression for this type enabled?

> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>


> ---
>  .../common/recipes-core/images/core-image-minimal-initramfs.bbappend     | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend b/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend
> index 90a1c3f..5710d22 100644
> --- a/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend
> +++ b/meta-phosphor/common/recipes-core/images/core-image-minimal-initramfs.bbappend
> @@ -1,3 +1,4 @@
>  PACKAGE_INSTALL_remove = "initramfs-live-boot initramfs-live-install initramfs-live-install-efi"
>  PACKAGE_INSTALL += "obmc-phosphor-initfs"
> +INITRAMFS_CTYPE ?= "lzma"
>  INITRAMFS_FSTYPES = "cpio.${INITRAMFS_CTYPE}"
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 04/11] meta-phosphor: Make image-overlay an optional feature
  2016-06-23 20:40 ` [PATCH openbmc v5 04/11] meta-phosphor: Make image-overlay an optional feature OpenBMC Patches
@ 2016-06-24  2:53   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:53 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> Previously, obmc-bsp-common.inc added "overlay" to the IMAGE_FSTYPES
> but this only has meaning if the 'image-overlay' class is used.  The
> obmc-phosphor-image class explicitly includes 'image-overlay' when
> appropriate but no other images (ie. ones that come with yocto) do.
>
> Changed obmc-bsp-common to instead enable an obmc-phosphor-image feature
> by setting OBMC_PHOSPHOR_IMAGE_OVERLAY=1. Then in obmc-phosphor-image we
> add "overlay" to the IMAGE_FSTYPES only when the feature is enabled.
>
> This will fix both non-phosphor images on hardware platforms and all images
> on simulation platforms.
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>

> ---
>  meta-phosphor/classes/obmc-phosphor-image.bbclass      | 15 +++++++++------
>  meta-phosphor/conf/machine/include/obmc-bsp-common.inc |  2 +-
>  2 files changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/meta-phosphor/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
> index d3960c7..b2925c2 100644
> --- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
> +++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
> @@ -48,9 +48,12 @@ CORE_IMAGE_EXTRA_INSTALL_append = " bash \
>
>  OBMC_IMAGE_EXTRA_INSTALL ?= ""
>
> -def build_overlay(d):
> -        if bb.utils.contains("IMAGE_FSTYPES", "overlay", "overlay", "0", d) != "0":
> -                return "image-overlay"
> -        return ""
> -
> -inherit ${@build_overlay(d)}
> +def image_overlay_enabled(d, fstype):
> +        if d.getVar('OBMC_PHOSPHOR_IMAGE_OVERLAY', True) != "1":
> +            return ""
> +        if fstype:
> +            return "overlay"
> +        return "image-overlay"
> +
> +IMAGE_FSTYPES += "${@image_overlay_enabled(d, True)}"
> +inherit ${@image_overlay_enabled(d, False)}
> diff --git a/meta-phosphor/conf/machine/include/obmc-bsp-common.inc b/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
> index 8d1fd7e..2b6a163 100644
> --- a/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
> +++ b/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
> @@ -13,7 +13,7 @@ UBOOT_SUFFIX ?= "bin"
>
>  MACHINEOVERRIDES =. "openbmc:"
>
> -IMAGE_FSTYPES += "overlay"
> +OBMC_PHOSPHOR_IMAGE_OVERLAY= "1"
>  IMAGE_FSTYPES += "cpio.${INITRAMFS_CTYPE}.u-boot"
>  OBMC_IMAGE_EXTRA_INSTALL_append = " u-boot-fw-utils"
>
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 03/11] meta-phosphor: Remove unused systemd patch
  2016-06-23 20:40 ` [PATCH openbmc v5 03/11] meta-phosphor: Remove unused systemd patch OpenBMC Patches
@ 2016-06-24  2:55   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:55 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>

Nice. We should open issues for all of our non-upstream patches so we
can have people upstream or remove them.

> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>


> ---
>  .../0100-systemd_networkd_dbus_setaddress.patch    | 1209 --------------------
>  .../common/recipes-core/systemd/systemd_%.bbappend |    1 -
>  2 files changed, 1210 deletions(-)
>  delete mode 100644 meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch
>
> diff --git a/meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch b/meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch
> deleted file mode 100644
> index e105ddd..0000000
> --- a/meta-phosphor/common/recipes-core/systemd/systemd/0100-systemd_networkd_dbus_setaddress.patch
> +++ /dev/null
> @@ -1,1209 +0,0 @@
> -From 4bdb01553409269f992cd3ae76f06aeebf498ade Mon Sep 17 00:00:00 2001
> -From: Hariharasubramanian R <hramasub@in.ibm.com>
> -Date: Thu, 4 Feb 2016 09:52:48 -0600
> -Subject: [PATCH] Sprint 5 : DBus API for network address configuration
> -
> ----
> - src/network/networkd-link-bus.c           | 375 +++++++++++++++++++
> - src/network/networkd-network-bus.c        | 601 ++++++++++++++++++++++++++++++
> - src/network/networkd-network.c            | 108 ++++++
> - src/network/org.freedesktop.network1.conf |  20 +
> - 4 files changed, 1104 insertions(+)
> -
> -diff --git a/src/network/networkd-link-bus.c b/src/network/networkd-link-bus.c
> -index 1a1524d..5af57e1 100644
> ---- a/src/network/networkd-link-bus.c
> -+++ b/src/network/networkd-link-bus.c
> -@@ -25,15 +25,69 @@
> - #include "networkd.h"
> - #include "networkd-link.h"
> -
> -+#define SYSTEMD_NETWORKD_DBUS 1
> -+#define SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK 1
> -+
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+/*
> -+#include "hostname-util.h"
> -+#include "network-internal.h"
> -+#include "networkd-link.h"
> -+#include "bus-util.h"
> -+*/
> -+#include <stdio.h>
> -+#include <linux/filter.h>
> -+#include <netinet/if_ether.h>
> -+
> -+#include <linux/sockios.h>
> -+#include <sys/socket.h>
> -+#include <net/if.h>
> -+#include <sys/types.h>
> -+#include <sys/wait.h>
> -+
> -+#if 0
> -+#include "util.h" /* bus/util.h */
> -+#include "sparse-endian.h" /* bus/util.h */
> -+#endif
> -+
> -+#include "sd-network.h"
> -+#include "sd-netlink.h"
> -+#include "socket-util.h"
> -+#include "ether-addr-util.h"
> -+#include "netlink-internal.h"
> -+/*
> -+#include "local-addresses.h"
> -+*/
> -+#endif
> -+
> - static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_operational_state, link_operstate, LinkOperationalState);
> - static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_administrative_state, link_state, LinkState);
> -
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
> -+static int method_set_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
> -+#endif
> -+
> -+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
> -+static int link_arp_network_bind_raw_socket(int index, union sockaddr_union *link);
> -+static int link_arp_network_send_raw_socket(int fd, const union sockaddr_union *link, const struct ether_arp *arp);
> -+#elif defined (SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK)
> -+static int link_if_updown(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, int cmd);
> -+static int link_if_setaddr(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, const char* ea);
> -+#endif
> -+
> - const sd_bus_vtable link_vtable[] = {
> -         SD_BUS_VTABLE_START(0),
> -
> -         SD_BUS_PROPERTY("OperationalState", "s", property_get_operational_state, offsetof(Link, operstate), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
> -         SD_BUS_PROPERTY("AdministrativeState", "s", property_get_administrative_state, offsetof(Link, state), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
> -
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+          /* device name */
> -+      SD_BUS_METHOD("GetAddress", "s", "s", method_get_address, SD_BUS_VTABLE_UNPRIVILEGED),
> -+          /* device name, mac addr */
> -+      SD_BUS_METHOD("SetAddress", "ss", "s", method_set_address, SD_BUS_VTABLE_UNPRIVILEGED),
> -+#endif
> -         SD_BUS_VTABLE_END
> - };
> -
> -@@ -136,3 +190,324 @@ int link_send_changed(Link *link, const char *property, ...) {
> -                         "org.freedesktop.network1.Link",
> -                         l);
> - }
> -+
> -+static int method_set_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
> -+{
> -+    _cleanup_netlink_unref_ sd_netlink                  *rtnl   = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message  *req    = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message  *reply  = NULL;
> -+    _cleanup_bus_message_unref_ sd_bus_message          *resp   = NULL;
> -+    Manager                                             *mgr    = userdata;
> -+
> -+    struct udev*        udev               = NULL;
> -+    struct udev_device* udev_eth           = NULL;
> -+    const char*         device             = NULL;
> -+    const char*         ea                  = NULL;
> -+    char                devpath [32]       = "/sys/class/net/";
> -+
> -+    int                 r;
> -+    int                 pid=0;
> -+    unsigned char       ifindex;
> -+
> -+#if defined(SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
> -+        bool                have_mac;
> -+        struct ether_addr   e;
> -+        struct ether_addr*  ep = NULL;
> -+        union sockaddr_union link;
> -+        uint8_t             seed[8];
> -+        uint8_t             i=0;
> -+
> -+        struct ifreq        dev;
> -+        int                 sock;
> -+#endif
> -+
> -+
> -+    assert(m);
> -+    assert(mgr);
> -+
> -+    r = sd_bus_message_read (m, "ss", &device, &ea);
> -+    if (r < 0)
> -+        return r;
> -+
> -+/*
> -+    if (isempty (device))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
> -+
> -+    if (isempty (ea))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid MAC Address.");
> -+*/
> -+
> -+    udev = udev_new();
> -+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
> -+    if (!udev_eth)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
> -+
> -+    ifindex = udev_device_get_ifindex(udev_eth);
> -+
> -+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
> -+    r = link_arp_network_bind_raw_socket(ifindex, &link);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unable to bind ARP Raw socket.");
> -+#elif defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IOCTL)
> -+    sock = socket (AF_INET, SOCK_DGRAM, 0);
> -+    if (sock < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unable to bind socket.");
> -+
> -+    strcpy (dev.ifr_name, device);
> -+    if (ioctl(sock, SIOCGIFHWADDR, &dev) < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unable to bind socket.");
> -+#elif defined (SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK)
> -+    r = link_if_updown (rtnl, &req, &reply, ifindex, 0); /* i/f down */
> -+    if (r < 0)
> -+        /*return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error shutting down interface");*/
> -+        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error shutting down interface");
> -+
> -+    r = link_if_setaddr(rtnl, &req, &reply, ifindex, ea);
> -+    if (r < 0)
> -+        /*return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error setting MAC addr on interface");*/
> -+        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error setting MAC addr on interface");
> -+
> -+    r = link_if_updown (rtnl, &req, &reply, ifindex, 1); /* i/f up */
> -+    if (r < 0)
> -+        /*return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error starting up interface");*/
> -+        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error starting up interface");
> -+
> -+    /* Set U-Boot environment variable.*/
> -+    pid = fork ();
> -+    if (!pid)
> -+    {
> -+        char* argv [] = {"/sbin/fw_setenv", "ethaddr", ea, NULL};
> -+        execv (argv[0], argv);
> -+        exit (1);
> -+    }
> -+    else
> -+    {
> -+        int childerror = 0;
> -+
> -+        waitpid (pid, &childerror, 0);
> -+        if (childerror)
> -+        {
> -+            sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error setting u-boot env");
> -+        }
> -+    }
> -+#endif
> -+
> -+    r = sd_bus_message_new_method_return(m, &resp);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
> -+
> -+    r = sd_bus_message_append(resp, "s", ea);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+    r = sd_bus_send(mgr->bus, resp, NULL);
> -+
> -+    /*return sd_bus_reply_method_return(m, "s", "Setting IFLA address ...");*/
> -+    return sd_bus_reply_method_return(m, "s", ea);
> -+
> -+}
> -+
> -+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
> -+{
> -+    _cleanup_netlink_unref_ sd_netlink                  *rtnl   = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message  *req    = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message  *reply  = NULL;
> -+    _cleanup_bus_message_unref_ sd_bus_message          *resp   = NULL;
> -+    Manager                                             *mgr    = userdata;
> -+
> -+    struct udev*        udev               = NULL;
> -+    struct udev_device* udev_eth           = NULL;
> -+    const char*         device             = NULL;
> -+    char                devpath [32]       = "/sys/class/net/";
> -+
> -+    int                 r;
> -+    unsigned char       ifindex;
> -+    bool                have_mac;
> -+    struct ether_addr   e;
> -+    char                ea[ETHER_ADDR_TO_STRING_MAX];
> -+
> -+    assert(m);
> -+    assert(mgr);
> -+
> -+    r = sd_bus_message_read (m, "s", &device);
> -+    if (r < 0)
> -+        return r;
> -+
> -+    if (isempty (device))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
> -+
> -+    udev = udev_new();
> -+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
> -+    if (!udev_eth)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
> -+
> -+    ifindex = udev_device_get_ifindex(udev_eth);
> -+
> -+    r = sd_netlink_open(&rtnl);
> -+    if (r < 0)
> -+            return log_error_errno(r, "Failed to connect to netlink:"); /* fixme */
> -+
> -+    r = sd_rtnl_message_new_link(rtnl, &req, RTM_GETLINK, ifindex);
> -+    if (r < 0)
> -+            return r;
> -+
> -+    r = sd_netlink_call(rtnl, req, 0, &reply); /* fixme */
> -+    if (r < 0)
> -+            return r;
> -+
> -+    have_mac = sd_netlink_message_read_ether_addr(reply, IFLA_ADDRESS, &e) >= 0;
> -+    if (!have_mac)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error reading IFLA address");
> -+
> -+    ether_addr_to_string(&e, ea);
> -+
> -+    r = sd_bus_message_new_method_return(m, &resp);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
> -+
> -+    r = sd_bus_message_append(resp, "s", ea);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+    r = sd_bus_send(mgr->bus, resp, NULL);
> -+
> -+    /*return sd_bus_reply_method_return(m, "s", "Getting IFLA address ...");*/
> -+    return sd_bus_reply_method_return(m, "s", ea);
> -+}
> -+
> -+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_IPV4LL)
> -+/*----------------------------------------------------------------------------*/
> -+/* ARP helper routines copied from ipv4ll-network.c                           */
> -+/*----------------------------------------------------------------------------*/
> -+static int link_arp_network_bind_raw_socket(int ifindex, union sockaddr_union *link) {
> -+
> -+        static const struct sock_filter filter[] = {
> -+                BPF_STMT(BPF_LD + BPF_W + BPF_LEN, 0),                                         /* A <- packet length */
> -+                BPF_JUMP(BPF_JMP + BPF_JGE + BPF_K, sizeof(struct ether_arp), 1, 0),           /* packet >= arp packet ? */
> -+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
> -+                BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(struct ether_arp, ea_hdr.ar_hrd)), /* A <- header */
> -+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ARPHRD_ETHER, 1, 0),                       /* header == ethernet ? */
> -+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
> -+                BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(struct ether_arp, ea_hdr.ar_pro)), /* A <- protocol */
> -+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ETHERTYPE_IP, 1, 0),                       /* protocol == IP ? */
> -+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
> -+                BPF_STMT(BPF_LD + BPF_H + BPF_ABS, offsetof(struct ether_arp, ea_hdr.ar_op)),  /* A <- operation */
> -+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ARPOP_REQUEST, 0, 1),                      /* protocol == request ? */
> -+                BPF_STMT(BPF_RET + BPF_K, 65535),                                              /* return all */
> -+                BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, ARPOP_REPLY, 0, 1),                        /* protocol == reply ? */
> -+                BPF_STMT(BPF_RET + BPF_K, 65535),                                              /* return all */
> -+                BPF_STMT(BPF_RET + BPF_K, 0),                                                  /* ignore */
> -+        };
> -+        struct sock_fprog fprog = {
> -+                .len = ELEMENTSOF(filter),
> -+                .filter = (struct sock_filter*) filter
> -+        };
> -+        _cleanup_close_ int s = -1;
> -+        int r;
> -+
> -+        assert(ifindex > 0);
> -+        assert(link);
> -+
> -+        s = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0);
> -+        if (s < 0)
> -+                return -errno;
> -+
> -+        r = setsockopt(s, SOL_SOCKET, SO_ATTACH_FILTER, &fprog, sizeof(fprog));
> -+        if (r < 0)
> -+                return -errno;
> -+
> -+        link->ll.sll_family = AF_PACKET;
> -+        link->ll.sll_protocol = htons(ETH_P_ARP);
> -+        link->ll.sll_ifindex = ifindex;
> -+        link->ll.sll_halen = ETH_ALEN;
> -+        memset(link->ll.sll_addr, 0xff, ETH_ALEN);
> -+
> -+        r = bind(s, &link->sa, sizeof(link->ll));
> -+        if (r < 0)
> -+                return -errno;
> -+
> -+        r = s;
> -+        s = -1;
> -+
> -+        return r;
> -+}
> -+static int arp_network_send_raw_socket(int fd, const union sockaddr_union *link,
> -+                                        const struct ether_arp *arp) {
> -+        int r;
> -+
> -+        assert(arp);
> -+        assert(link);
> -+        assert(fd >= 0);
> -+
> -+        r = sendto(fd, arp, sizeof(struct ether_arp), 0, &link->sa, sizeof(link->ll));
> -+        if (r < 0)
> -+                return -errno;
> -+
> -+        return 0;
> -+}
> -+#endif
> -+
> -+#if defined (SYSTEMD_NETWORKD_DBUS_SETMAC_NETLINK)
> -+/* */
> -+/* Bring interface up/down */
> -+int link_if_updown(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, int cmd)
> -+{
> -+    int r=0;
> -+    struct ifinfomsg *ifi;
> -+
> -+    r = message_new(rtnl, req, RTM_NEWLINK);
> -+    if (r < 0)
> -+            return r;
> -+
> -+    (*req)->hdr->nlmsg_len = NLMSG_LENGTH(sizeof (struct ifinfomsg));
> -+    (*req)->hdr->nlmsg_flags = NLM_F_REQUEST;
> -+    (*req)->hdr->nlmsg_type = RTM_NEWLINK;
> -+
> -+    ifi = NLMSG_DATA((*req)->hdr);
> -+
> -+    ifi->ifi_family = AF_UNSPEC;
> -+    ifi->ifi_change |= IFF_UP;
> -+    ifi->ifi_index = index;
> -+
> -+    /* when IFF_UP flag is set i/f will be active, otherwise i/f is shut down */
> -+    if (cmd)
> -+        ifi->ifi_flags |= IFF_UP;
> -+
> -+    return sd_netlink_call(rtnl, *req, 0, rep);
> -+}
> -+
> -+/* Set interface MAC address */
> -+int link_if_setaddr(sd_netlink* rtnl, sd_netlink_message** req, sd_netlink_message** rep, int ifindex, const char* ea)
> -+{
> -+    int r=0;
> -+    int i=0;
> -+
> -+    struct ifinfomsg *ifi;
> -+    struct ether_addr   e;
> -+    struct ether_addr*  ep;
> -+
> -+    r = message_new(rtnl, req, RTM_NEWLINK);
> -+    if (r < 0)
> -+            return r;
> -+
> -+    (*req)->hdr->nlmsg_len = NLMSG_LENGTH(sizeof (struct ifinfomsg));
> -+    (*req)->hdr->nlmsg_flags = NLM_F_REQUEST;
> -+    (*req)->hdr->nlmsg_type = RTM_NEWLINK;
> -+
> -+    ifi = NLMSG_DATA((*req)->hdr);
> -+
> -+    ifi->ifi_family = AF_UNSPEC;
> -+    ifi->ifi_index = ifindex;
> -+
> -+    ep = ether_aton (ea);
> -+    if (!ep)
> -+        return -1;
> -+
> -+    for (i=0; i<6; i++)
> -+        e.ether_addr_octet[i] = ep->ether_addr_octet[i];
> -+
> -+    r = sd_netlink_message_append_ether_addr(*req, IFLA_ADDRESS, &e);
> -+
> -+    return sd_netlink_call(rtnl, *req, 0, rep);
> -+}
> -+#endif
> -diff --git a/src/network/networkd-network-bus.c b/src/network/networkd-network-bus.c
> -index 5717a15..0a4cdd6 100644
> ---- a/src/network/networkd-network-bus.c
> -+++ b/src/network/networkd-network-bus.c
> -@@ -19,10 +19,39 @@
> -   along with systemd; If not, see <http://www.gnu.org/licenses/>.
> - ***/
> -
> -+#define SYSTEMD_NETWORKD_DBUS 1
> -+
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+#include <stdio.h>
> -+#include <stdlib.h>
> -+#include <errno.h>
> -+#include <string.h>
> -+#include <netinet/ether.h>
> -+#include <linux/if.h>
> -+#endif
> -+
> - #include "strv.h"
> -
> - #include "networkd.h"
> -
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+#include "hostname-util.h"
> -+#include "network-internal.h"
> -+#include "networkd-link.h"
> -+#include "bus-util.h"
> -+
> -+#include "sd-network.h"
> -+#include "sd-netlink.h"
> -+#include "local-addresses.h"
> -+#endif
> -+
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+int network_address_added_handler (sd_netlink* rtnl, sd_netlink_message* m, void* userdata);
> -+int network_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message, void *userdata, Address* address); /* fixme */
> -+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error); /* fixme */
> -+int network_save_static (int cmd, const char* device, const char* ipaddr, int prefixlen, const char* gwaddr);
> -+#endif
> -+
> - static int property_get_ether_addrs(
> -                 sd_bus *bus,
> -                 const char *path,
> -@@ -56,6 +85,11 @@ static int property_get_ether_addrs(
> -         return sd_bus_message_close_container(reply);
> - }
> -
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+static int method_add_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
> -+static int method_del_address (sd_bus_message *m, void* userdata, sd_bus_error *error);
> -+#endif
> -+
> - const sd_bus_vtable network_vtable[] = {
> -         SD_BUS_VTABLE_START(0),
> -
> -@@ -67,6 +101,13 @@ const sd_bus_vtable network_vtable[] = {
> -         SD_BUS_PROPERTY("MatchType", "as", NULL, offsetof(Network, match_type), SD_BUS_VTABLE_PROPERTY_CONST),
> -         SD_BUS_PROPERTY("MatchName", "as", NULL, offsetof(Network, match_name), SD_BUS_VTABLE_PROPERTY_CONST),
> -
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+          /* device, IP, netmask, family, flags, scope, gateway */
> -+      SD_BUS_METHOD("AddAddress", "sssyyys", "x", method_add_address, SD_BUS_VTABLE_UNPRIVILEGED),
> -+      SD_BUS_METHOD("DelAddress", "sssyyys", "x", method_del_address, SD_BUS_VTABLE_UNPRIVILEGED),
> -+          /* (family, prefixlen, flags, scope, IP)+ gateway */
> -+      SD_BUS_METHOD("GetAddress", "s", "a(iyyus)s", method_get_address, SD_BUS_VTABLE_UNPRIVILEGED),
> -+#endif
> -         SD_BUS_VTABLE_END
> - };
> -
> -@@ -152,3 +193,563 @@ int network_object_find(sd_bus *bus, const char *path, const char *interface, vo
> -
> -         return 1;
> - }
> -+
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+
> -+static int method_add_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
> -+{
> -+    _cleanup_bus_message_unref_ sd_bus_message*         resp    = NULL;
> -+    _cleanup_netlink_unref_ sd_netlink*                 rtnl    = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message* req     = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message* reply   = NULL;
> -+    _cleanup_address_free_ Address *addr                        = NULL;
> -+    _cleanup_route_free_ Route *rt                              = NULL;
> -+    Manager *mgr                                                = userdata;
> -+    Link*               link               = NULL;
> -+    struct udev*        udev               = NULL;
> -+    struct udev_device* udev_eth           = NULL;
> -+
> -+    const char*         device             = NULL;
> -+    const char*         ipaddr             = NULL;
> -+    const char*         netmask            = NULL;
> -+    const char*         gateway            = NULL;
> -+    char                devpath [32]       = "/sys/class/net/";
> -+
> -+    unsigned char       family;
> -+    unsigned char       prefixlen;
> -+    unsigned char       flags;
> -+    unsigned char       scope;
> -+    unsigned char       ifindex;
> -+
> -+    struct in_addr      nm;
> -+    struct in_addr      ip;
> -+    struct in_addr      gw;
> -+    int r;
> -+
> -+    assert(m);
> -+    assert(mgr);
> -+
> -+    r = sd_bus_message_read (m, "sssyyys", &device, &ipaddr, &netmask, &family, &flags, &scope, &gateway);
> -+    if (r < 0)
> -+        return r;
> -+
> -+    if (isempty (device))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
> -+
> -+    if (isempty (ipaddr))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Address.");
> -+
> -+    if (isempty (netmask))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Netmask.");
> -+
> -+    assert(family == AF_INET || family == AF_INET6);
> -+
> -+    udev = udev_new();
> -+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
> -+    if (!udev_eth)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
> -+
> -+    ifindex = udev_device_get_ifindex(udev_eth);
> -+
> -+    inet_aton (netmask, &nm);
> -+    inet_aton (ipaddr, &ip);
> -+    if (!isempty (gateway)) inet_aton (gateway, &gw);
> -+
> -+    prefixlen = in_addr_netmask_to_prefixlen(&nm);
> -+    assert(prefixlen > 0);
> -+
> -+#if 0
> -+    r = network_save_static (1, device, ipaddr, prefixlen, gateway); /* persist config - add */
> -+    if (r)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, strerror(r));
> -+#endif
> -+
> -+    r = address_new_dynamic(&addr);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating new address");
> -+
> -+    r = sd_netlink_open(&rtnl);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_IO_ERROR, "Failed to connect to netlink");
> -+
> -+    link = new0(Link, 1);
> -+    if (!link)
> -+            return -ENOMEM;
> -+
> -+    link->network = new0(Network, 1);
> -+    if (!link->network)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Could not alloc memory for Network");
> -+
> -+    link->n_ref                 = 1;
> -+    link->manager               = mgr;
> -+    link->manager->rtnl         = rtnl;
> -+    link->state                 = LINK_STATE_PENDING;
> -+    link->rtnl_extended_attrs   = true;
> -+    link->ifindex               = ifindex;
> -+    link->ifname                = strdup(device); /*FIXME:*/
> -+    if (!link->ifname)
> -+            return -ENOMEM;
> -+
> -+    addr->family                = family;
> -+    addr->in_addr.in.s_addr     = ip.s_addr;
> -+    addr->prefixlen             = prefixlen;
> -+    addr->broadcast.s_addr      = ip.s_addr | ~nm.s_addr;
> -+
> -+    LIST_PREPEND(addresses, link->network->static_addresses, addr);
> -+
> -+    if (!isempty (gateway))
> -+    {
> -+        r = route_new_dynamic(&rt, RTPROT_STATIC);
> -+        if (r < 0)
> -+            return r;
> -+
> -+        rt->protocol        = RTPROT_STATIC;
> -+        rt->network         = link->network;
> -+        rt->family          = family;
> -+        rt->scope           = RT_SCOPE_LINK;            /* FIXME: */
> -+        rt->dst_prefixlen   = prefixlen;                /* FIXME: AF_INET assumed */
> -+/*
> -+        rt->dst_addr.in     = gw;
> -+        rt->in_addr.in      = ip.s_addr & nm.s_addr;
> -+*/
> -+        rt->dst_addr.in.s_addr      = ip.s_addr & nm.s_addr;
> -+        rt->in_addr.in              = gw;
> -+
> -+        LIST_PREPEND(routes, link->network->static_routes, rt);
> -+    }
> -+
> -+    /* send an nlmsg (RTM_NEWADDR) and append address to link address list */
> -+    r = address_update (addr, link, network_address_added_handler);
> -+    if (r < 0)
> -+        return r;
> -+
> -+    r = sd_bus_message_new_method_return(m, &resp);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
> -+
> -+    r = sd_bus_message_append(resp, "x", 0);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+    /*r = sd_bus_send(mgr->bus, resp, NULL);*/
> -+    r = sd_bus_send(NULL, resp, NULL);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error sending reply messgage");
> -+
> -+
> -+    return sd_bus_reply_method_return(m, "s", "Adding IP address...");
> -+}
> -+
> -+static int method_del_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
> -+{
> -+    _cleanup_bus_message_unref_ sd_bus_message*         resp    = NULL;
> -+    _cleanup_netlink_unref_ sd_netlink*                 rtnl    = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message* req     = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message* reply   = NULL;
> -+    _cleanup_address_free_ Address *addr                        = NULL;
> -+    _cleanup_route_free_ Route *rt                              = NULL;
> -+    Manager *mgr                                                = userdata;
> -+    Link*               link               = NULL;
> -+    struct udev*        udev               = NULL;
> -+    struct udev_device* udev_eth           = NULL;
> -+
> -+    const char*         device             = NULL;
> -+    const char*         ipaddr             = NULL;
> -+    const char*         netmask            = NULL;
> -+    const char*         gateway            = NULL;
> -+    char                devpath [32]       = "/sys/class/net/";
> -+
> -+    unsigned char       family;
> -+    unsigned char       prefixlen;
> -+    unsigned char       flags;
> -+    unsigned char       scope;
> -+    unsigned char       ifindex;
> -+
> -+    struct in_addr      nm;
> -+    struct in_addr      ip;
> -+    struct in_addr      gw;
> -+    int r;
> -+
> -+    assert(m);
> -+    assert(mgr);
> -+
> -+    r = sd_bus_message_read (m, "sssyyys", &device, &ipaddr, &netmask, &family, &flags, &scope, &gateway);
> -+    if (r < 0)
> -+        return r;
> -+
> -+    if (isempty (device))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
> -+
> -+    if (isempty (ipaddr))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Address.");
> -+
> -+    if (isempty (netmask))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid IP Netmask.");
> -+
> -+    assert(family == AF_INET || family == AF_INET6);
> -+
> -+    udev = udev_new();
> -+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
> -+    if (!udev_eth)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
> -+
> -+    ifindex = udev_device_get_ifindex(udev_eth);
> -+
> -+    inet_aton (netmask, &nm);
> -+    inet_aton (ipaddr, &ip);
> -+    if (!isempty (gateway)) inet_aton (gateway, &gw);
> -+
> -+    prefixlen = in_addr_netmask_to_prefixlen(&nm);
> -+    assert(prefixlen > 0);
> -+
> -+    r = address_new_dynamic(&addr);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating new address");
> -+
> -+    r = sd_netlink_open(&rtnl);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_IO_ERROR, "Failed to connect to netlink");
> -+
> -+    link = new0(Link, 1);
> -+    if (!link)
> -+            return -ENOMEM;
> -+
> -+    link->network = new0(Network, 1);
> -+    if (!link->network)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Could not alloc memory for Network");
> -+
> -+    link->n_ref                 = 1;
> -+    link->manager               = mgr;
> -+    link->manager->rtnl         = rtnl;
> -+    link->state                 = LINK_STATE_PENDING;
> -+    link->rtnl_extended_attrs   = true;
> -+    link->ifindex               = ifindex;
> -+    link->ifname                = strdup(device);
> -+    if (!link->ifname)
> -+            return -ENOMEM;
> -+
> -+    addr->family                = family;
> -+    addr->in_addr.in.s_addr     = ip.s_addr;
> -+    addr->prefixlen             = prefixlen;
> -+    addr->broadcast.s_addr      = ip.s_addr | ~nm.s_addr;
> -+
> -+    if (!isempty (gateway))
> -+    {
> -+        r = route_new_dynamic(&rt, RTPROT_STATIC);
> -+        if (r < 0)
> -+            return r;
> -+
> -+        rt->network         = link->network;
> -+        rt->family          = family;
> -+        rt->scope           = RT_SCOPE_LINK;            /* FIXME: */
> -+        rt->dst_prefixlen   = 32;                       /* FIXME: AF_INET assumed */
> -+        rt->dst_addr.in     = gw;
> -+
> -+        /*LIST_PREPEND(routes, link->network->static_routes, rt);*/
> -+        /* Drop the Gateway */
> -+        route_drop (rt, link, link_route_drop_handler);
> -+    }
> -+
> -+    /* send an nlmsg to delete address from address list */
> -+    r = address_drop(addr, link, link_address_drop_handler);
> -+    if (r < 0)
> -+        return r;
> -+
> -+    r = sd_bus_message_new_method_return(m, &resp);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
> -+
> -+    r = sd_bus_message_append(resp, "x", 0);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+    /*r = sd_bus_send(mgr->bus, resp, NULL);*/
> -+    r = sd_bus_send(NULL, resp, NULL);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error sending reply messgage");
> -+
> -+#if 0
> -+    r = network_save_static (0, device, ipaddr, prefixlen, gateway); /* persist config - del */
> -+    if (r)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, strerror(r));
> -+#endif
> -+
> -+    return sd_bus_reply_method_return(m, "s", "Deleted IP address...");
> -+}
> -+
> -+static int method_get_address (sd_bus_message *m, void* userdata, sd_bus_error *error)
> -+{
> -+    _cleanup_netlink_unref_ sd_netlink  *rtnl   = NULL;
> -+    _cleanup_address_free_ Address      *addr   = NULL;
> -+    _cleanup_route_free_ Route          *rt     = NULL;
> -+    Manager                             *mgr    = userdata;
> -+    struct udev*        udev               = NULL;
> -+    struct udev_device* udev_eth           = NULL;
> -+    const char*         device             = NULL;
> -+    char                devpath [32]       = "/sys/class/net/";
> -+    unsigned char       ifindex;
> -+    int                 r;
> -+
> -+    sd_netlink_message* maddr;
> -+
> -+    _cleanup_netlink_message_unref_ sd_netlink_message  *req    = NULL;
> -+    _cleanup_netlink_message_unref_ sd_netlink_message  *reply    = NULL;
> -+    _cleanup_bus_message_unref_ sd_bus_message  *resp   = NULL;
> -+    _cleanup_address_free_ Address              *address = NULL;
> -+    _cleanup_free_ struct local_address         *local   = NULL;
> -+    _cleanup_free_ char                         *ipr     = NULL;
> -+    _cleanup_free_ char                         *gwr     = NULL;
> -+    int                 n;
> -+    int                 i;
> -+
> -+    assert(m);
> -+    assert(mgr);
> -+
> -+    r = sd_bus_message_read (m, "s", &device);
> -+    if (r < 0)
> -+        return r;
> -+
> -+    if (isempty (device))
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid Device Name.");
> -+
> -+    udev = udev_new();
> -+    udev_eth = udev_device_new_from_syspath(udev, strcat (devpath, device));
> -+    if (!udev_eth)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not find udev device");
> -+
> -+    ifindex = udev_device_get_ifindex(udev_eth);
> -+
> -+    r = sd_netlink_open(&rtnl);
> -+    if (r < 0)
> -+            return log_error_errno(r, "Failed to connect to netlink:"); /* fixme */
> -+
> -+    r = sd_rtnl_message_new_addr(rtnl, &req, RTM_GETADDR, 0, 0);
> -+    if (r < 0)
> -+            return r;
> -+
> -+    r = sd_netlink_message_request_dump(req, true);
> -+    if (r < 0)
> -+            return r;
> -+
> -+    r = sd_netlink_call(rtnl, req, 0, &reply); /* fixme */
> -+    if (r < 0)
> -+            return r;
> -+
> -+    r = sd_bus_message_new_method_return(m, &resp);
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error allocating reply messgage");
> -+
> -+    r = sd_bus_message_open_container(resp, 'a', "(iyyus)"); /*family,prefixlen,scope,flags,addr*/
> -+    if (r < 0)
> -+        return sd_bus_error_setf(error, SD_BUS_ERROR_NO_MEMORY, "Error opening a container for reply message");
> -+
> -+    for (maddr = reply; maddr; maddr = sd_netlink_message_next(maddr)) {
> -+            int k;
> -+
> -+            r = address_new_dynamic(&address);
> -+            if (r < 0)
> -+                    return r;
> -+
> -+            k = network_rtnl_process_address(rtnl, maddr, mgr, address);
> -+            if (k) {
> -+                r = in_addr_to_string(address->family, &address->in_addr, &ipr); /* fixme */
> -+                if (r < 0)
> -+                        return r;
> -+
> -+                r = sd_bus_message_append (resp, "(iyyus)",
> -+                                                    address->family,
> -+                                                    address->prefixlen,
> -+                                                    address->scope,
> -+                                                    address->flags,
> -+                                                    ipr);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+#if 0
> -+                r = sd_bus_message_open_container(resp, 'r', "iyyus");
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error opening struct in reply messgage");
> -+
> -+                r = sd_bus_message_append(resp, "i", address->family);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+                r = sd_bus_message_append(resp, "y", address->prefixlen);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+                r = sd_bus_message_append(resp, "y", address->scope);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+                r = sd_bus_message_append(resp, "u", address->flags);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+                r = in_addr_to_string(address->family, &address->in_addr, &ipr); /* fixme */
> -+                if (r < 0)
> -+                        return r;
> -+
> -+                r = sd_bus_message_append(resp, "s", ipr);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+                r = sd_bus_message_close_container(resp);
> -+                if (r < 0)
> -+                        return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error closing struct in reply messgage");
> -+#endif
> -+            }
> -+    }
> -+
> -+    r = sd_bus_message_close_container(resp);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error closing reply container");
> -+
> -+    n = local_gateways(rtnl, ifindex, AF_UNSPEC, &local);
> -+    if (n < 0)
> -+            return n;
> -+
> -+    for (i = 0; i < n; i++) {
> -+
> -+            r = in_addr_to_string(local[i].family, &local[i].address, &gwr);
> -+            if (r < 0)
> -+                    return r;
> -+    }
> -+
> -+    r = sd_bus_message_append(resp, "s", gwr);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error appending to reply messgage");
> -+
> -+    /*r = sd_bus_send(mgr->bus, resp, NULL);*/
> -+    r = sd_bus_send(NULL, resp, NULL);
> -+    if (r < 0)
> -+            return sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Error sending reply messgage");
> -+
> -+    return sd_bus_reply_method_return(m, "s", "Getting IP configuration...");
> -+}
> -+
> -+
> -+int network_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message, void *userdata, Address* address) {
> -+        Manager*        m       = (Manager*) userdata; /* fixme */
> -+        uint16_t        type;
> -+        unsigned char   flags;
> -+        char            buf[INET6_ADDRSTRLEN];
> -+        int             ifindex;
> -+        int             r;
> -+        sd_bus_error err    = SD_BUS_ERROR_NULL; /* fixme */
> -+        sd_bus_error* error = &err;             /* fixme */
> -+
> -+        assert(rtnl);
> -+        assert(message);
> -+        assert(m);
> -+        assert(address);
> -+
> -+        if (sd_netlink_message_is_error(message)) {
> -+                r = sd_netlink_message_get_errno(message);
> -+                if (r < 0)
> -+                        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: failed to receive address: ");
> -+
> -+                return 0;
> -+        }
> -+
> -+        r = sd_netlink_message_get_type(message, &type);
> -+        if (r < 0) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: could not get message type: ");
> -+                return 0;
> -+        } else if (type != RTM_NEWADDR && type != RTM_DELADDR) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received unexpected message type when processing address");
> -+                return 0;
> -+        }
> -+
> -+        r = sd_rtnl_message_addr_get_ifindex(message, &ifindex);
> -+        if (r < 0) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: could not get ifindex from address: %m");
> -+                return 0;
> -+        } else if (ifindex <= 0) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address message with invalid ifindex: %d", ifindex);
> -+                return 0;
> -+        }
> -+
> -+        r = sd_rtnl_message_addr_get_family(message, &address->family); /* int : i*/
> -+        if (r < 0 || !IN_SET(address->family, AF_INET, AF_INET6)) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid family, ignoring.");
> -+                return 0;
> -+        }
> -+
> -+        r = sd_rtnl_message_addr_get_prefixlen(message, &address->prefixlen); /* uchar : byte : y */
> -+        if (r < 0) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid prefixlen, ignoring: ");
> -+                return 0;
> -+        }
> -+
> -+        r = sd_rtnl_message_addr_get_scope(message, &address->scope); /* uchar : byte : y*/
> -+        if (r < 0) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid scope, ignoring: ");
> -+                return 0;
> -+        }
> -+
> -+        r = sd_rtnl_message_addr_get_flags(message, &flags); /* uint32 : u*/
> -+        if (r < 0) {
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address with invalid flags, ignoring: ");
> -+                return 0;
> -+        }
> -+        address->flags = flags;
> -+
> -+        switch (address->family) {
> -+        case AF_INET:
> -+                r = sd_netlink_message_read_in_addr(message, IFA_LOCAL, &address->in_addr.in); /* ulong : uint64 : t */
> -+                if (r < 0) {
> -+                        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address without valid address, ignoring: ");
> -+                        return 0;
> -+                }
> -+
> -+                break;
> -+
> -+        case AF_INET6:
> -+                r = sd_netlink_message_read_in6_addr(message, IFA_ADDRESS, &address->in_addr.in6); /* ulong : uint64 : t */
> -+                if (r < 0) {
> -+                        sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "rtnl: received address without valid address, ignoring: ");
> -+                        return 0;
> -+                }
> -+
> -+                break;
> -+
> -+        default:
> -+                assert_not_reached("invalid address family");
> -+        }
> -+
> -+        if (!inet_ntop(address->family, &address->in_addr, buf, INET6_ADDRSTRLEN)) { /* string : s */
> -+                sd_bus_error_setf(error, SD_BUS_ERROR_FAILED, "Could not print address");
> -+                return 0;
> -+        }
> -+
> -+        return 1;
> -+}
> -+
> -+int network_save_static (int cmd, const char* device, const char* ipaddr, int prefixlen, const char* gwaddr)
> -+{
> -+#define NETWORKD_CONFIG_FILE_NAME_LEN_MAX 64
> -+    char    ncfn [NETWORKD_CONFIG_FILE_NAME_LEN_MAX];
> -+    FILE*   ncfp = NULL;
> -+    int     r=0;
> -+
> -+    /* /usr/lib/systemd/network/10-bmc-ethx-192.168.255.255.32.network */
> -+    snprintf (ncfn, NETWORKD_CONFIG_FILE_NAME_LEN_MAX, "/usr/lib/systemd/network/10-bmc-%s-%s.%d.network", device, ipaddr, prefixlen);
> -+
> -+    if (cmd) /* add */
> -+    {
> -+        ncfp = fopen (ncfn, "w+");
> -+        if (!ncfp) {
> -+            r = errno;
> -+        }
> -+
> -+        fprintf (ncfp, "[Match]\nName=%s\n\n[Network]\nAddress=%s/%d\nGateway=%s\n", device, ipaddr, prefixlen, gwaddr);
> -+        fclose (ncfp);
> -+    }
> -+    else /* del */
> -+    {
> -+        r = remove (ncfn);
> -+    }
> -+
> -+    return r;
> -+}
> -+#endif
> -diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
> -index 6587ea9..f773936 100644
> ---- a/src/network/networkd-network.c
> -+++ b/src/network/networkd-network.c
> -@@ -20,6 +20,9 @@
> - ***/
> -
> - #include <ctype.h>
> -+#include <sys/socket.h>
> -+#include <netinet/in.h>
> -+#include <arpa/inet.h>
> - #include <net/if.h>
> -
> - #include "conf-files.h"
> -@@ -32,6 +35,15 @@
> - #include "network-internal.h"
> - #include "dns-domain.h"
> -
> -+#define SYSTEMD_NETWORKD_DBUS 1
> -+
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+int network_address_added_handler (sd_netlink* rtnl, sd_netlink_message* m, void* userdata);
> -+int network_set_gateway (Link* link);
> -+static int route_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata);
> -+int network_save_static (int cmd, const char* device, const char* ipaddr, int prefixlen, const char* gwaddr);
> -+#endif
> -+
> - static int network_load_one(Manager *manager, const char *filename) {
> -         _cleanup_network_free_ Network *network = NULL;
> -         _cleanup_fclose_ FILE *file = NULL;
> -@@ -850,3 +862,99 @@ int config_parse_hostname(const char *unit,
> -
> -         return 0;
> - }
> -+
> -+#ifdef SYSTEMD_NETWORKD_DBUS
> -+int network_address_added_handler (sd_netlink* rtnl, sd_netlink_message* m, void* userdata)
> -+{
> -+        _cleanup_link_unref_ Link *link = userdata;
> -+        int r;
> -+
> -+        assert(link);
> -+
> -+        r = sd_netlink_message_get_errno(m);
> -+        if (r < 0 && r != -EEXIST) {
> -+                log_debug("Error in set IP address!");
> -+                link_enter_failed(link);
> -+                return r;
> -+        } else if (r >= 0)
> -+                link_rtnl_process_address(rtnl, m, link->manager);
> -+
> -+      network_set_gateway (link);
> -+
> -+      return 0;
> -+}
> -+
> -+/* link_enter_set_routes */
> -+int network_set_gateway (Link* link)
> -+{
> -+        _cleanup_address_free_ Address* addr = NULL;
> -+        const char*                     device = NULL;
> -+        const char*                     ipaddr = NULL;
> -+        const char*                     gwaddr = NULL;
> -+        Route*                          rt;
> -+        unsigned char                   prefixlen;
> -+        int                             r=0;
> -+
> -+        assert(link);
> -+        assert(link->network);
> -+        assert(link->state == LINK_STATE_SETTING_ADDRESSES);
> -+
> -+        link->state = LINK_STATE_SETTING_ROUTES;
> -+
> -+        LIST_FOREACH(routes, rt, link->network->static_routes) {
> -+                gwaddr = inet_ntoa (rt->dst_addr.in);
> -+                r = route_configure(rt, link, &route_handler);
> -+                if (r < 0) {
> -+                        log_debug ("Could not set Gateway!");
> -+                        link_enter_failed(link);
> -+                        return r;
> -+                }
> -+
> -+                link->link_messages ++;
> -+        }
> -+
> -+        if (link->link_messages == 0) {
> -+                link->static_configured = true;
> -+
> -+                /*link_enter_configured (link);*/
> -+                log_link_info(link, "Configured");
> -+                link->state = LINK_STATE_CONFIGURED;
> -+                link_save(link);
> -+        }
> -+        else
> -+        {
> -+                log_debug("Setting Gateway");
> -+        }
> -+
> -+        LIST_FOREACH(addresses, addr, link->network->static_addresses) {
> -+            device = strdup (link->ifname);
> -+            ipaddr = inet_ntoa (addr->in_addr.in);
> -+            prefixlen = addr->prefixlen;
> -+#if 1
> -+            r = network_save_static (1, device, ipaddr, prefixlen, gwaddr); /* persist config - add */
> -+            if (r)
> -+            {
> -+                log_debug(strerror(r));
> -+            }
> -+#endif
> -+        }
> -+
> -+        return r;
> -+}
> -+
> -+static int route_handler(sd_netlink *rtnl, sd_netlink_message *m, void *userdata) {
> -+        _cleanup_link_unref_ Link *link = userdata;
> -+        int r;
> -+
> -+        assert(link);
> -+
> -+        r = sd_netlink_message_get_errno(m);
> -+        if (r < 0 && r != -EEXIST) {
> -+                log_debug ("Could not set route! ");
> -+                link_enter_failed(link);
> -+        }
> -+
> -+        return 1;
> -+}
> -+
> -+#endif
> -diff --git a/src/network/org.freedesktop.network1.conf b/src/network/org.freedesktop.network1.conf
> -index 52dad33..3db7a90 100644
> ---- a/src/network/org.freedesktop.network1.conf
> -+++ b/src/network/org.freedesktop.network1.conf
> -@@ -36,6 +36,26 @@
> -                        send_interface="org.freedesktop.DBus.Properties"
> -                        send_member="GetAll"/>
> -
> -+                <allow send_destination="org.freedesktop.network1"
> -+                       send_interface="org.freedesktop.network1.Network"
> -+                       send_member="AddAddress"/>
> -+
> -+                <allow send_destination="org.freedesktop.network1"
> -+                       send_interface="org.freedesktop.network1.Network"
> -+                       send_member="DelAddress"/>
> -+
> -+                <allow send_destination="org.freedesktop.network1"
> -+                       send_interface="org.freedesktop.network1.Network"
> -+                       send_member="GetAddress"/>
> -+
> -+                <allow send_destination="org.freedesktop.network1"
> -+                       send_interface="org.freedesktop.network1.Link"
> -+                       send_member="GetAddress"/>
> -+
> -+                <allow send_destination="org.freedesktop.network1"
> -+                       send_interface="org.freedesktop.network1.Link"
> -+                       send_member="SetAddress"/>
> -+
> -                 <allow receive_sender="org.freedesktop.network1"/>
> -         </policy>
> -
> ---
> -1.8.2.2
> -
> diff --git a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
> index 222be49..8b3b25d 100644
> --- a/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
> +++ b/meta-phosphor/common/recipes-core/systemd/systemd_%.bbappend
> @@ -1,7 +1,6 @@
>  PACKAGECONFIG += "networkd"
>  FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
>  SRC_URI += "file://default.network"
> -SRC_URI += "file://0100-systemd_networkd_dbus_setaddress.patch"
>
>  FILES_${PN} += "${libdir}/systemd/network/default.network"
>
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 02/11] meta-phosphor: use obmc-phosphor-user for qemu systems
  2016-06-23 20:40 ` [PATCH openbmc v5 02/11] meta-phosphor: use obmc-phosphor-user " OpenBMC Patches
@ 2016-06-24  2:55   ` Joel Stanley
  0 siblings, 0 replies; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:55 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>
> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>

> ---
>  meta-phosphor/conf/machine/include/sample.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta-phosphor/conf/machine/include/sample.inc b/meta-phosphor/conf/machine/include/sample.inc
> index b499940..e4d70d1 100644
> --- a/meta-phosphor/conf/machine/include/sample.inc
> +++ b/meta-phosphor/conf/machine/include/sample.inc
> @@ -30,4 +30,4 @@ PREFERRED_PROVIDER_virtual/obmc-phosphor-flash-mgmt = "obmc-phosphor-flashd"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-policy-mgmt = "obmc-phosphor-policyd"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-sensor-mgmt = "obmc-phosphor-sensord"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-system-mgmt = "obmc-phosphor-sysd"
> -PREFERRED_PROVIDER_virtual/obmc-phosphor-user-mgmt = "obmc-phosphor-userd"
> +PREFERRED_PROVIDER_virtual/obmc-phosphor-user-mgmt = "obmc-phosphor-user"
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems
  2016-06-23 20:40 ` [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems OpenBMC Patches
@ 2016-06-24  2:55   ` Joel Stanley
  2016-06-24 20:21     ` Patrick Williams
  0 siblings, 1 reply; 29+ messages in thread
From: Joel Stanley @ 2016-06-24  2:55 UTC (permalink / raw)
  To: OpenBMC Patches; +Cc: OpenBMC Maillist, Patrick Williams

On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
<openbmc-patches@stwcx.xyz> wrote:
> From: Patrick Williams <patrick@stwcx.xyz>
>

Perhaps a small description of why we're making this change.

> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

Acked-by: Joel Stanley <joel@jms.id.au>

> ---
>  meta-phosphor/conf/machine/include/sample.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta-phosphor/conf/machine/include/sample.inc b/meta-phosphor/conf/machine/include/sample.inc
> index e66dc77..b499940 100644
> --- a/meta-phosphor/conf/machine/include/sample.inc
> +++ b/meta-phosphor/conf/machine/include/sample.inc
> @@ -24,7 +24,7 @@ VIRTUAL-RUNTIME_obmc-phosphor-ipmi-parsers = " \
>         "
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-host-ipmi-hw = "host-ipmi-hw-example"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-chassis-mgmt = "obmc-phosphor-chassisd"
> -PREFERRED_PROVIDER_virtual/obmc-phosphor-event-mgmt = "obmc-phosphor-eventd"
> +PREFERRED_PROVIDER_virtual/obmc-phosphor-event-mgmt = "obmc-phosphor-event"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-fan-mgmt = "obmc-phosphor-fand"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-flash-mgmt = "obmc-phosphor-flashd"
>  PREFERRED_PROVIDER_virtual/obmc-phosphor-policy-mgmt = "obmc-phosphor-policyd"
> --
> 2.9.0
>
>
> _______________________________________________
> openbmc mailing list
> openbmc@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/openbmc

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

* Re: [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version.
  2016-06-24  2:42     ` Joel Stanley
@ 2016-06-24 20:06       ` Patrick Williams
  0 siblings, 0 replies; 29+ messages in thread
From: Patrick Williams @ 2016-06-24 20:06 UTC (permalink / raw)
  To: Joel Stanley; +Cc: OpenBMC Patches, OpenBMC Maillist

[-- Attachment #1: Type: text/plain, Size: 740 bytes --]

On Fri, Jun 24, 2016 at 12:12:08PM +0930, Joel Stanley wrote:
> On Fri, Jun 24, 2016 at 12:10 PM, Joel Stanley <joel@jms.id.au> wrote:
> >> diff --git a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> >> index bfbdcf6..a514cf2 100644
> >> --- a/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> >> +++ b/meta-phosphor/common/recipes-bsp/u-boot/u-boot-fw-utils_2013.07.bb
> >
> > Can we delete this recipe now we're using 2016.05?
> 
> Yes, you delete the file in the final commit. Perhaps you can drop
> this commit from the series then?

Will delete.  I guess it is just noise at this point.

-- 
Patrick Williams

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree.
  2016-06-24  2:50   ` Joel Stanley
@ 2016-06-24 20:09     ` Patrick Williams
  0 siblings, 0 replies; 29+ messages in thread
From: Patrick Williams @ 2016-06-24 20:09 UTC (permalink / raw)
  To: Joel Stanley; +Cc: OpenBMC Patches, OpenBMC Maillist

[-- Attachment #1: Type: text/plain, Size: 2966 bytes --]

On Fri, Jun 24, 2016 at 12:20:50PM +0930, Joel Stanley wrote:
> On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
> <openbmc-patches@stwcx.xyz> wrote:
> > From: Patrick Williams <patrick@stwcx.xyz>
> > @@ -4,10 +4,10 @@
> >
> >  PREFERRED_PROVIDER_virtual/kernel ?= "linux-obmc"
> >  PREFERRED_VERSION_linux-obmc ?= "4.4+git%"
> > -PREFERRED_VERSION_u-boot ?= "v2013.07+git%"
> > -PREFERRED_VERSION_u-boot-fw-utils ?= "v2013.07+git%"
> > +PREFERRED_VERSION_u-boot ?= "v2016.05+git%"
> > +PREFERRED_VERSION_u-boot-fw-utils ?= "v2016.05+git%"
> 
> Should this be the branch name? The branch is called v2016.05-aspeed-openbmc.
> 

No.  Package level is the right thing here.  We have our override of the
global u-boot package and in there is where we specify the branch.  This
is a buildroot pointer to get to that package.

> > -UBOOT_MACHINE ?= "palmetto_config"
> > +UBOOT_MACHINE ?= "ast_g4_config"
> 
> As I mentioned in my status update, I didn't do the best job of naming
> the defconfigs. ast_g4_config is for ast2400 systems that use NC-SI,
> which means it's no good for firestone or the facebook machines.
> 
> Do you want me to rename the config ast_g4_ncsi_config? Or leave it
> for now, and we can clean it up once the u-boot tree is in order.
> 
> I would lean towards leaving it for now as once u-boot is cleaned up
> to use the Kconfig system, we can have the yocto machines select the
> option they require.
> 
> >  UBOOT_ENTRYPOINT ?= "0x40001000"
> >  UBOOT_LOADADDRESS ?= "0x40001000"
> 
> 
> > diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
> > index 42f2d29..fa0d35e 100644
> > --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
> > +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
> > @@ -5,7 +5,7 @@ require conf/machine/include/ast2400.inc
> >  require conf/machine/include/obmc-bsp-common.inc
> >  require conf/machine/include/ibm.inc
> >
> > -UBOOT_MACHINE_firestone = "palmetto_config"
> > +UBOOT_MACHINE_firestone = "ast_g4_config"
> 
> As above; firestone uses a dedicated phy instead of NC-SI. Machines
> won't have network if they update to this.
> 
> I can add add a new system to u-boot, or I can send a patch that hacks
> at the machine.
> 

Lets do one config with the dedicated and one without.  I don't care on
the name.

Is there going to be trouble with NC-SI if we use a different NC-SI
chip?  Witherspoon has a different chip than Garrison, but I don't know
what u-boot cares at that level.

If it is all just "ncsi" and "no-ncsi" lets name them that way.
Otherwise, we probably should continue to use something like "palmetto"
as that is the reference board that has that specific NC-SI chip class.

-- 
Patrick Williams

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined
  2016-06-24  2:53   ` Joel Stanley
@ 2016-06-24 20:16     ` Patrick Williams
  0 siblings, 0 replies; 29+ messages in thread
From: Patrick Williams @ 2016-06-24 20:16 UTC (permalink / raw)
  To: Joel Stanley; +Cc: OpenBMC Patches, OpenBMC Maillist

[-- Attachment #1: Type: text/plain, Size: 1101 bytes --]

On Fri, Jun 24, 2016 at 12:23:15PM +0930, Joel Stanley wrote:
> On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
> <openbmc-patches@stwcx.xyz> wrote:
> > From: Patrick Williams <patrick@stwcx.xyz>
> >
> > The hardware platforms use obmc-bsp-common.inc, which defines
> > INITRAMFS_CTYPE, but the simulation (qemu) platforms do not.
> > core-image-minimal-initramfs.bbappend currrently uses INITRAMFS_CTYPE
> > so we need to make sure it is defined.  Default there to 'lzma' if not
> > already defined.
> >
> 
> Should it default to none if it's not defined? How do we make sure the
> kernel has decompression for this type enabled?
> 

I don't have a good answer on that.  There are a number of places in the
phosphor tree that is either using 'lzma' directly or something like
'cpio.${INITRAMFS_CTYPE}', so we seem to be assuming there is
compression support in the kernel.

Milton was mentioning we probably need some clean up of all these
variables due to some changes in Yocto 2.1, so I'd vote we leave as is
and figure out a better approach then.

-- 
Patrick Williams

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems
  2016-06-24  2:55   ` Joel Stanley
@ 2016-06-24 20:21     ` Patrick Williams
  0 siblings, 0 replies; 29+ messages in thread
From: Patrick Williams @ 2016-06-24 20:21 UTC (permalink / raw)
  To: Joel Stanley; +Cc: OpenBMC Patches, OpenBMC Maillist

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

On Fri, Jun 24, 2016 at 12:25:44PM +0930, Joel Stanley wrote:
> On Fri, Jun 24, 2016 at 6:10 AM, OpenBMC Patches
> <openbmc-patches@stwcx.xyz> wrote:
> > From: Patrick Williams <patrick@stwcx.xyz>
> >
> 
> Perhaps a small description of why we're making this change.
> 
Will do.

-- 
Patrick Williams

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

end of thread, other threads:[~2016-06-24 20:22 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-23 20:40 [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 OpenBMC Patches
2016-06-23 20:40 ` [PATCH openbmc v5 01/11] meta-phosphor: Use obmc-phosphor-event for qemu systems OpenBMC Patches
2016-06-24  2:55   ` Joel Stanley
2016-06-24 20:21     ` Patrick Williams
2016-06-23 20:40 ` [PATCH openbmc v5 02/11] meta-phosphor: use obmc-phosphor-user " OpenBMC Patches
2016-06-24  2:55   ` Joel Stanley
2016-06-23 20:40 ` [PATCH openbmc v5 03/11] meta-phosphor: Remove unused systemd patch OpenBMC Patches
2016-06-24  2:55   ` Joel Stanley
2016-06-23 20:40 ` [PATCH openbmc v5 04/11] meta-phosphor: Make image-overlay an optional feature OpenBMC Patches
2016-06-24  2:53   ` Joel Stanley
2016-06-23 20:40 ` [PATCH openbmc v5 05/11] meta-phosphor: Ensure INITRAMFS_CTYPE defined OpenBMC Patches
2016-06-24  2:53   ` Joel Stanley
2016-06-24 20:16     ` Patrick Williams
2016-06-23 20:40 ` [PATCH openbmc v5 06/11] obmc-phosphor-image: Improper use of DATETIME OpenBMC Patches
2016-06-24  2:52   ` Joel Stanley
2016-06-23 20:40 ` [PATCH openbmc v5 07/11] btbridged: Change how kernel-source depend is specified OpenBMC Patches
2016-06-24  2:51   ` Joel Stanley
2016-06-23 20:40 ` [PATCH openbmc v5 08/11] Fix systemd packageconfig OpenBMC Patches
2016-06-24  2:52   ` Joel Stanley
2016-06-23 20:40 ` [PATCH openbmc v5 09/11] u-boot-fw-utils: Update to latest version OpenBMC Patches
2016-06-24  2:40   ` Joel Stanley
2016-06-24  2:42     ` Joel Stanley
2016-06-24 20:06       ` Patrick Williams
2016-06-23 20:40 ` [PATCH openbmc v5 10/11] u-boot: Upgrade AST2400 machines to 2016.15 tree OpenBMC Patches
2016-06-24  2:50   ` Joel Stanley
2016-06-24 20:09     ` Patrick Williams
2016-06-23 20:40 ` [PATCH openbmc v5 11/11] u-boot: Remove unused 2013.07 packages OpenBMC Patches
2016-06-24  2:51   ` Joel Stanley
2016-06-23 20:57 ` [PATCH openbmc v5 00/11] Phosphor changes needed for Yocto 2.1 Patrick Williams

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.