Author: krejzi
Date: Sat Apr 27 11:03:55 2013
New Revision: 2640

Log:
New patches.

Added:
   trunk/NetworkManager/NetworkManager-0.9.8.0-upstream_fixes-1.patch
   trunk/httpd/httpd-2.4.4-blfs_layout-1.patch
   trunk/mysql/mysql-5.6.11-embedded_library_shared-1.patch

Added: trunk/NetworkManager/NetworkManager-0.9.8.0-upstream_fixes-1.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/NetworkManager/NetworkManager-0.9.8.0-upstream_fixes-1.patch  Sat Apr 
27 11:03:55 2013        (r2640)
@@ -0,0 +1,696 @@
+Submitted By:            Armin K. <krejzi at email dot com>
+Date:                    2013-04-27
+Initial Package Version: 0.9.8.0
+Upstream Status:         Fixed Upstream
+Origin:                  Upstream
+Description:             Varius fixes from upstream git repository.
+
+--- a/cli/src/devices.c        2013-02-20 21:56:15.000000000 +0100
++++ b/cli/src/devices.c        2013-04-27 13:18:27.262354256 +0200
+@@ -909,7 +909,7 @@
+                       /* available-connections */
+                       avail_cons = nm_device_get_available_connections 
(device);
+                       ac_paths_str = g_string_new (NULL);
+-                      if (avail_cons->len) {
++                      if (avail_cons && avail_cons->len) {
+                               ac_arr = g_new (char *, avail_cons->len + 1);
+                               ac_arr[avail_cons->len] = NULL;
+                       }
+--- a/libnm-glib/nm-device.c   2013-02-20 21:56:15.000000000 +0100
++++ b/libnm-glib/nm-device.c   2013-04-27 13:21:07.658452029 +0200
+@@ -1364,39 +1364,33 @@
+       return unescaped;
+ }
+ 
+-static void
+-_device_update_description (NMDevice *device)
++static char *
++_get_udev_property (NMDevice *device,
++                    const char *enc_prop,  /* ID_XXX_ENC */
++                    const char *db_prop)   /* ID_XXX_FROM_DATABASE */
+ {
+-      NMDevicePrivate *priv;
++      NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device);
+       const char *subsys[3] = { "net", "tty", NULL };
+       GUdevDevice *udev_device = NULL, *tmpdev, *olddev;
+       const char *ifname;
+       guint32 count = 0;
+-      const char *vendor, *model;
+-
+-      g_return_if_fail (NM_IS_DEVICE (device));
+-      priv = NM_DEVICE_GET_PRIVATE (device);
++      char *enc_value = NULL, *db_value = NULL;
+ 
+       if (!priv->client) {
+               priv->client = g_udev_client_new (subsys);
+               if (!priv->client)
+-                      return;
++                      return NULL;
+       }
+ 
+       ifname = nm_device_get_iface (device);
+       if (!ifname)
+-              return;
++              return NULL;
+ 
+       udev_device = g_udev_client_query_by_subsystem_and_name (priv->client, 
"net", ifname);
+       if (!udev_device)
+               udev_device = g_udev_client_query_by_subsystem_and_name 
(priv->client, "tty", ifname);
+       if (!udev_device)
+-              return;
+-
+-      g_free (priv->product);
+-      priv->product = NULL;
+-      g_free (priv->vendor);
+-      priv->vendor = NULL;
++              return NULL;
+ 
+       /* Walk up the chain of the device and its parents a few steps to grab
+        * vendor and device ID information off it.
+@@ -1406,12 +1400,11 @@
+        * as g_udev_device_get_parent() returns a ref-ed object.
+        */
+       tmpdev = g_object_ref (udev_device);
+-      while ((count++ < 3) && tmpdev && (!priv->vendor || !priv->product)) {
+-              if (!priv->vendor)
+-                      priv->vendor = get_decoded_property (tmpdev, 
"ID_VENDOR_ENC");
+-
+-              if (!priv->product)
+-                      priv->product = get_decoded_property (tmpdev, 
"ID_MODEL_ENC");
++      while ((count++ < 3) && tmpdev && !enc_value) {
++              if (!enc_value)
++                      enc_value = get_decoded_property (tmpdev, enc_prop);
++              if (!db_value)
++                      db_value = g_strdup (g_udev_device_get_property 
(tmpdev, db_prop));
+ 
+               olddev = tmpdev;
+               tmpdev = g_udev_device_get_parent (tmpdev);
+@@ -1424,42 +1417,18 @@
+       if (tmpdev)
+               g_object_unref (tmpdev);
+ 
+-      /* If we didn't get strings directly from the device, try database 
strings */
++      /* Balance the initial g_udev_client_query_by_subsystem_and_name() */
++      g_object_unref (udev_device);
+ 
+-      /* Again, ref the original device as we need to unref it every iteration
+-       * since g_udev_device_get_parent() returns a refed object.
++      /* Prefer the the encoded value which comes directly from the device
++       * over the hwdata database value.
+        */
+-      tmpdev = g_object_ref (udev_device);
+-      count = 0;
+-      while ((count++ < 3) && tmpdev && (!priv->vendor || !priv->product)) {
+-              if (!priv->vendor) {
+-                      vendor = g_udev_device_get_property (tmpdev, 
"ID_VENDOR_FROM_DATABASE");
+-                      if (vendor)
+-                              priv->vendor = g_strdup (vendor);
+-              }
+-
+-              if (!priv->product) {
+-                      model = g_udev_device_get_property (tmpdev, 
"ID_MODEL_FROM_DATABASE");
+-                      if (model)
+-                              priv->product = g_strdup (model);
+-              }
+-
+-              olddev = tmpdev;
+-              tmpdev = g_udev_device_get_parent (tmpdev);
+-              g_object_unref (olddev);
++      if (enc_value) {
++              g_free (db_value);
++              return enc_value;
+       }
+ 
+-      /* Unref the last device if we found what we needed before running out
+-       * of parents.
+-       */
+-      if (tmpdev)
+-              g_object_unref (tmpdev);
+-
+-      /* Balance the initial g_udev_client_query_by_subsystem_and_name() */
+-      g_object_unref (udev_device);
+-
+-      _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_VENDOR);
+-      _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_PRODUCT);
++      return db_value;
+ }
+ 
+ /**
+@@ -1479,8 +1448,10 @@
+       g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
+ 
+       priv = NM_DEVICE_GET_PRIVATE (device);
+-      if (!priv->product)
+-              _device_update_description (device);
++      if (!priv->product) {
++              priv->product = _get_udev_property (device, "ID_MODEL_ENC", 
"ID_PRODUCT_FROM_DATABASE");
++              _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_PRODUCT);
++      }
+       return priv->product;
+ }
+ 
+@@ -1501,8 +1472,10 @@
+       g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
+ 
+       priv = NM_DEVICE_GET_PRIVATE (device);
+-      if (!priv->vendor)
+-              _device_update_description (device);
++      if (!priv->vendor) {
++              priv->vendor = _get_udev_property (device, "ID_VENDOR_ENC", 
"ID_VENDOR_FROM_DATABASE");
++              _nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_VENDOR);
++      }
+       return priv->vendor;
+ }
+ 
+--- a/libnm-glib/nm-object.c   2013-02-20 18:21:48.000000000 +0100
++++ b/libnm-glib/nm-object.c   2013-04-27 13:21:51.322529548 +0200
+@@ -1399,6 +1399,7 @@
+ 
+       if (!priv->property_interfaces && !priv->pseudo_properties) {
+               g_simple_async_result_complete_in_idle (simple);
++              g_object_unref (simple);
+               return;
+       }
+ 
+--- a/libnm-glib/nm-remote-connection.c        2013-02-20 21:56:15.000000000 
+0100
++++ b/libnm-glib/nm-remote-connection.c        2013-04-27 13:21:30.238837272 
+0200
+@@ -428,6 +428,7 @@
+       }
+ 
+       g_simple_async_result_complete (init_data->result);
++      g_object_unref (init_data->result);
+       g_slice_free (NMRemoteConnectionInitData, init_data);
+ }
+ 
+--- a/libnm-util/crypto.c      2013-02-20 21:01:55.000000000 +0100
++++ b/libnm-util/crypto.c      2013-04-27 13:20:24.984388188 +0200
+@@ -238,19 +238,25 @@
+                            _("Could not decode private key."));
+               goto parse_error;
+       }
++      g_string_free (str, TRUE);
+ 
+       if (lines)
+               g_strfreev (lines);
+ 
+       bindata = g_byte_array_sized_new (tmp_len);
+       g_byte_array_append (bindata, tmp, tmp_len);
++      g_free (tmp);
++
+       *out_iv = iv;
+       *out_cipher = cipher;
+       return bindata;
+ 
+ parse_error:
++      g_free (tmp);
+       g_free (cipher);
+       g_free (iv);
++      if (str)
++              g_string_free (str, TRUE);
+       if (lines)
+               g_strfreev (lines);
+       return NULL;
+--- a/libnm-util/nm-setting-8021x.c    2013-02-20 21:56:15.000000000 +0100
++++ b/libnm-util/nm-setting-8021x.c    2013-04-27 13:19:51.223807844 +0200
+@@ -538,29 +538,23 @@
+       data = crypto_load_and_verify_certificate (cert_path, &format, error);
+       if (data) {
+               /* wpa_supplicant can only use raw x509 CA certs */
+-              switch (format) {
+-              case NM_CRYPTO_FILE_FORMAT_X509:
++              if (format == NM_CRYPTO_FILE_FORMAT_X509) {
+                       if (out_format)
+                               *out_format = NM_SETTING_802_1X_CK_FORMAT_X509;
+-                      break;
+-              default:
+-                      g_byte_array_free (data, TRUE);
+-                      data = NULL;
+-                      g_set_error (error,
+-                                   NM_SETTING_802_1X_ERROR,
+-                                   NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
+-                                   NM_SETTING_802_1X_CA_CERT);
+-                      break;
+-              }
+ 
+-              if (data) {
+                       if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB)
+-                              priv->ca_cert = data;
++                              priv->ca_cert = g_byte_array_ref (data);
+                       else if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH)
+                               priv->ca_cert = path_to_scheme_value 
(cert_path);
+                       else
+                               g_assert_not_reached ();
++              } else {
++                      g_set_error (error,
++                                   NM_SETTING_802_1X_ERROR,
++                                   NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
++                                   NM_SETTING_802_1X_CA_CERT);
+               }
++              g_byte_array_unref (data);
+       }
+ 
+       return priv->ca_cert != NULL;
+@@ -818,19 +812,20 @@
+ 
+       data = crypto_load_and_verify_certificate (cert_path, &format, error);
+       if (data) {
+-              /* wpa_supplicant can only use raw x509 CA certs */
++              gboolean valid = FALSE;
++
+               switch (format) {
+               case NM_CRYPTO_FILE_FORMAT_X509:
+                       if (out_format)
+                               *out_format = NM_SETTING_802_1X_CK_FORMAT_X509;
++                      valid = TRUE;
+                       break;
+               case NM_CRYPTO_FILE_FORMAT_PKCS12:
+                       if (out_format)
+                               *out_format = 
NM_SETTING_802_1X_CK_FORMAT_PKCS12;
++                      valid = TRUE;
+                       break;
+               default:
+-                      g_byte_array_free (data, TRUE);
+-                      data = NULL;
+                       g_set_error (error,
+                                    NM_SETTING_802_1X_ERROR,
+                                    NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
+@@ -838,14 +833,15 @@
+                       break;
+               }
+ 
+-              if (data) {
++              if (valid) {
+                       if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB)
+-                              priv->client_cert = data;
++                              priv->client_cert = g_byte_array_ref (data);
+                       else if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH)
+                               priv->client_cert = path_to_scheme_value 
(cert_path);
+                       else
+                               g_assert_not_reached ();
+               }
++              g_byte_array_unref (data);
+       }
+ 
+       return priv->client_cert != NULL;
+@@ -1078,29 +1074,23 @@
+       data = crypto_load_and_verify_certificate (cert_path, &format, error);
+       if (data) {
+               /* wpa_supplicant can only use raw x509 CA certs */
+-              switch (format) {
+-              case NM_CRYPTO_FILE_FORMAT_X509:
++              if (format == NM_CRYPTO_FILE_FORMAT_X509) {
+                       if (out_format)
+                               *out_format = NM_SETTING_802_1X_CK_FORMAT_X509;
+-                      break;
+-              default:
+-                      g_byte_array_free (data, TRUE);
+-                      data = NULL;
+-                      g_set_error (error,
+-                                   NM_SETTING_802_1X_ERROR,
+-                                   NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
+-                                   NM_SETTING_802_1X_PHASE2_CA_CERT);
+-                      break;
+-              }
+ 
+-              if (data) {
+                       if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB)
+-                              priv->phase2_ca_cert = data;
++                              priv->phase2_ca_cert = g_byte_array_ref (data);
+                       else if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH)
+                               priv->phase2_ca_cert = path_to_scheme_value 
(cert_path);
+                       else
+                               g_assert_not_reached ();
++              } else {
++                      g_set_error (error,
++                                   NM_SETTING_802_1X_ERROR,
++                                   NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
++                                   NM_SETTING_802_1X_PHASE2_CA_CERT);
+               }
++              g_byte_array_unref (data);
+       }
+ 
+       return priv->phase2_ca_cert != NULL;
+@@ -1362,19 +1352,21 @@
+ 
+       data = crypto_load_and_verify_certificate (cert_path, &format, error);
+       if (data) {
++              gboolean valid = FALSE;
++
+               /* wpa_supplicant can only use raw x509 CA certs */
+               switch (format) {
+               case NM_CRYPTO_FILE_FORMAT_X509:
+                       if (out_format)
+                               *out_format = NM_SETTING_802_1X_CK_FORMAT_X509;
++                      valid = TRUE;
+                       break;
+               case NM_CRYPTO_FILE_FORMAT_PKCS12:
+                       if (out_format)
+                               *out_format = 
NM_SETTING_802_1X_CK_FORMAT_PKCS12;
++                      valid = TRUE;
+                       break;
+               default:
+-                      g_byte_array_free (data, TRUE);
+-                      data = NULL;
+                       g_set_error (error,
+                                    NM_SETTING_802_1X_ERROR,
+                                    NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
+@@ -1382,14 +1374,15 @@
+                       break;
+               }
+ 
+-              if (data) {
++              if (valid) {
+                       if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB)
+-                              priv->phase2_client_cert = data;
++                              priv->phase2_client_cert = g_byte_array_ref 
(data);
+                       else if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH)
+                               priv->phase2_client_cert = path_to_scheme_value 
(cert_path);
+                       else
+                               g_assert_not_reached ();
+               }
++              g_byte_array_unref (data);
+       }
+ 
+       return priv->phase2_client_cert != NULL;
+--- a/libnm-util/nm-setting-ip4-config.c       2013-02-20 21:56:15.000000000 
+0100
++++ b/libnm-util/nm-setting-ip4-config.c       2013-04-27 13:21:40.442344407 
+0200
+@@ -818,6 +818,8 @@
+       NMSettingIP4ConfigPrivate *priv = NM_SETTING_IP4_CONFIG_GET_PRIVATE 
(self);
+ 
+       g_free (priv->method);
++      g_free (priv->dhcp_hostname);
++      g_free (priv->dhcp_client_id);
+ 
+       g_array_free (priv->dns, TRUE);
+ 
+--- a/libnm-util/nm-setting-ip6-config.c       2013-02-20 21:56:15.000000000 
+0100
++++ b/libnm-util/nm-setting-ip6-config.c       2013-04-27 13:21:40.442344407 
+0200
+@@ -744,6 +744,8 @@
+       NMSettingIP6ConfigPrivate *priv = NM_SETTING_IP6_CONFIG_GET_PRIVATE 
(object);
+ 
+       g_free (priv->method);
++      g_free (priv->dhcp_hostname);
++
+       g_slist_free (priv->dns);
+ 
+       nm_utils_slist_free (priv->dns_search, g_free);
+--- a/libnm-util/nm-setting-pppoe.c    2013-02-20 21:56:15.000000000 +0100
++++ b/libnm-util/nm-setting-pppoe.c    2013-04-27 13:20:14.787546471 +0200
+@@ -258,6 +258,18 @@
+ }
+ 
+ static void
++finalize (GObject *object)
++{
++      NMSettingPPPOEPrivate *priv = NM_SETTING_PPPOE_GET_PRIVATE (object);
++
++      g_free (priv->username);
++      g_free (priv->password);
++      g_free (priv->service);
++
++      G_OBJECT_CLASS (nm_setting_pppoe_parent_class)->finalize (object);
++}
++
++static void
+ nm_setting_pppoe_class_init (NMSettingPPPOEClass *setting_class)
+ {
+       GObjectClass *object_class = G_OBJECT_CLASS (setting_class);
+@@ -268,6 +280,7 @@
+       /* virtual methods */
+       object_class->set_property = set_property;
+       object_class->get_property = get_property;
++      object_class->finalize     = finalize;
+       parent_class->verify       = verify;
+       parent_class->need_secrets = need_secrets;
+ 
+--- a/libnm-util/nm-setting-vlan.c     2013-02-20 21:56:15.000000000 +0100
++++ b/libnm-util/nm-setting-vlan.c     2013-04-27 13:23:56.631315885 +0200
+@@ -407,8 +407,8 @@
+       list = get_map (setting, map);
+       g_return_if_fail (idx < g_slist_length (list));
+ 
+-      item = g_slist_nth_data (list, idx);
+-      priority_map_free ((PriorityMap *) item);
++      item = g_slist_nth (list, idx);
++      priority_map_free ((PriorityMap *) (item->data));
+       set_map (setting, map, g_slist_delete_link (list, item));
+ }
+ 
+--- a/libnm-util/nm-setting-wired.c    2013-02-20 21:56:15.000000000 +0100
++++ b/libnm-util/nm-setting-wired.c    2013-04-27 13:19:42.193652234 +0200
+@@ -537,6 +537,11 @@
+ 
+       nm_utils_slist_free (priv->mac_address_blacklist, g_free);
+ 
++      if (priv->s390_subchannels) {
++              g_ptr_array_foreach (priv->s390_subchannels, (GFunc) g_free, 
NULL);
++              g_ptr_array_free (priv->s390_subchannels, TRUE);
++      }
++
+       G_OBJECT_CLASS (nm_setting_wired_parent_class)->finalize (object);
+ }
+ 
+--- a/src/dns-manager/nm-dns-manager.c 2013-02-20 21:56:16.000000000 +0100
++++ b/src/dns-manager/nm-dns-manager.c 2013-04-27 13:22:19.423006855 +0200
+@@ -561,7 +561,6 @@
+                       nm_ip6_config_hash (NM_IP6_CONFIG (iter->data), sum, 
TRUE);
+       }
+ 
+-      memset (buffer, 0, sizeof (buffer));
+       g_checksum_get_digest (sum, buffer, &len);
+       g_checksum_free (sum);
+ }
+--- a/src/ip6-manager/nm-ip6-manager.c 2013-02-20 21:56:16.000000000 +0100
++++ b/src/ip6-manager/nm-ip6-manager.c 2013-04-27 13:18:57.319543075 +0200
+@@ -455,7 +455,7 @@
+ 
+               nm_ip6_manager_cancel_addrconf (manager, ifindex);
+               g_signal_emit (manager, signals[ADDRCONF_COMPLETE], 0,
+-                             ifindex, device->dhcp_opts, FALSE);
++                             ifindex, IP6_DHCP_OPT_NONE, FALSE);
+       }
+ 
+       return FALSE;
+--- a/src/nm-device.c  2013-02-20 21:56:16.000000000 +0100
++++ b/src/nm-device.c  2013-04-27 13:24:10.141543160 +0200
+@@ -4526,8 +4526,7 @@
+               g_value_set_uint (value, priv->state);
+               break;
+       case PROP_STATE_REASON:
+-              g_value_set_boxed (value,
+-                      dbus_g_type_specialized_construct 
(DBUS_G_TYPE_UINT_STRUCT));
++              g_value_take_boxed (value, dbus_g_type_specialized_construct 
(DBUS_G_TYPE_UINT_STRUCT));
+               dbus_g_type_struct_set (value,
+                                       0, priv->state,
+                                       1, priv->state_reason,
+@@ -5525,6 +5524,7 @@
+                       g_hash_table_insert (NM_DEVICE_GET_PRIVATE 
(self)->available_connections,
+                                                    g_object_ref (connection),
+                                                    GUINT_TO_POINTER (1));
++                      return TRUE;
+               }
+       }
+       return FALSE;
+--- a/src/nm-device-ethernet.c 2013-02-20 21:56:16.000000000 +0100
++++ b/src/nm-device-ethernet.c 2013-04-27 13:22:49.270179194 +0200
+@@ -439,7 +439,7 @@
+       errno = 0;
+       ret = ioctl (fd, SIOCETHTOOL, &req);
+       if ((ret < 0) || !nm_ethernet_address_is_valid ((struct ether_addr *) 
epaddr->data)) {
+-              nm_log_err (LOGD_HW | LOGD_ETHER, "(%s): unable to read 
permanent MAC address (error %d)",
++              nm_log_dbg (LOGD_HW | LOGD_ETHER, "(%s): unable to read 
permanent MAC address (error %d)",
+                           nm_device_get_iface (dev), errno);
+               /* Fall back to current address */
+               memcpy (epaddr->data, priv->hw_addr, ETH_ALEN);
+--- a/src/nm-device-wifi.c     2013-02-20 21:56:16.000000000 +0100
++++ b/src/nm-device-wifi.c     2013-04-27 13:23:34.177604322 +0200
+@@ -1125,11 +1125,11 @@
+ 
+       s_wifi = nm_connection_get_setting_wireless (connection);
+ 
+-      /* Ad-Hoc connections are always available because they may be started
+-       * at any time.
++      /* Ad-Hoc and AP connections are always available because they may be
++       * started at any time.
+        */
+       mode = nm_setting_wireless_get_mode (s_wifi);
+-      if (g_strcmp0 (mode, "adhoc") == 0)
++      if (g_strcmp0 (mode, "adhoc") == 0 || g_strcmp0 (mode, "ap") == 0)
+               return TRUE;
+ 
+       /* Hidden SSIDs obviously don't always appear in the scan list either */
+@@ -2887,7 +2887,7 @@
+       errno = 0;
+       ret = ioctl (fd, SIOCETHTOOL, &req);
+       if ((ret < 0) || !nm_ethernet_address_is_valid ((struct ether_addr *) 
epaddr->data)) {
+-              nm_log_err (LOGD_HW | LOGD_ETHER, "(%s): unable to read 
permanent MAC address (error %d)",
++              nm_log_dbg (LOGD_HW | LOGD_ETHER, "(%s): unable to read 
permanent MAC address (error %d)",
+                           nm_device_get_iface (dev), errno);
+               /* Fall back to current address */
+               memcpy (epaddr->data, &priv->hw_addr, ETH_ALEN);
+--- a/src/nm-manager.c 2013-02-20 21:56:16.000000000 +0100
++++ b/src/nm-manager.c 2013-04-27 13:21:20.178665743 +0200
+@@ -215,6 +215,7 @@
+ #endif
+ 
+       NMDBusManager *dbus_mgr;
++      guint          dbus_connection_changed_id;
+       NMUdevManager *udev_mgr;
+       NMBluezManager *bluez_mgr;
+ 
+@@ -4245,6 +4246,7 @@
+               g_assert (dbus_connection);
+               dbus_connection_remove_filter (dbus_connection, prop_filter, 
manager);
+       }
++      g_signal_handler_disconnect (priv->dbus_mgr, 
priv->dbus_connection_changed_id);
+       g_object_unref (priv->dbus_mgr);
+ 
+       if (priv->bluez_mgr)
+@@ -4492,6 +4494,26 @@
+ }
+ 
+ static void
++dbus_connection_changed_cb (NMDBusManager *dbus_mgr,
++                            DBusGConnection *connection,
++                            gpointer user_data)
++{
++      NMManager *self = NM_MANAGER (user_data);
++      DBusConnection *dbus_connection;
++
++      if (connection) {
++              dbus_connection = dbus_g_connection_get_connection (connection);
++              g_assert (dbus_connection);
++
++              /* Register property filter on new connection; there's no 
reason this
++               * should fail except out-of-memory or program error; if it 
does fail
++               * then there's no Manager property access control, which is 
bad.
++               */
++              g_assert (dbus_connection_add_filter (dbus_connection, 
prop_filter, self, NULL));
++      }
++}
++
++static void
+ nm_manager_init (NMManager *manager)
+ {
+       NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
+@@ -4533,6 +4555,10 @@
+       priv->state = NM_STATE_DISCONNECTED;
+ 
+       priv->dbus_mgr = nm_dbus_manager_get ();
++      priv->dbus_connection_changed_id = g_signal_connect (priv->dbus_mgr,
++                                                           
NM_DBUS_MANAGER_DBUS_CONNECTION_CHANGED,
++                                                           G_CALLBACK 
(dbus_connection_changed_cb),
++                                                           manager);
+ 
+       priv->modem_manager = nm_modem_manager_get ();
+       priv->modem_added_id = g_signal_connect (priv->modem_manager, 
"modem-added",
+--- a/src/settings/plugins/keyfile/reader.c    2013-02-20 21:56:16.000000000 
+0100
++++ b/src/settings/plugins/keyfile/reader.c    2013-04-27 13:23:46.174473155 
+0200
+@@ -1157,15 +1157,23 @@
+ 
+       /* Make sure that we have the base device type setting even if
+        * the keyfile didn't include it, which can happen when the base
+-       * device type setting is all default values (like ethernet).
++       * device type setting is all default values (like ethernet where
++       * the MAC address isn't given, or VLAN when the VLAN ID is zero).
+        */
+       s_con = nm_connection_get_setting_connection (connection);
+       if (s_con) {
+               ctype = nm_setting_connection_get_connection_type (s_con);
+               setting = nm_connection_get_setting_by_name (connection, ctype);
+-              if (ctype) {
+-                      if (!setting && !strcmp (ctype, 
NM_SETTING_WIRED_SETTING_NAME))
+-                              nm_connection_add_setting (connection, 
nm_setting_wired_new ());
++              if (ctype && !setting) {
++                      NMSetting *base_setting;
++                      GType base_setting_type;
++
++                      base_setting_type = nm_connection_lookup_setting_type 
(ctype);
++                      if (base_setting_type != G_TYPE_INVALID) {
++                              base_setting = (NMSetting *) g_object_new 
(base_setting_type, NULL);
++                              g_assert (base_setting);
++                              nm_connection_add_setting (connection, 
base_setting);
++                      }
+               }
+       }
+ 
+--- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am  2013-02-20 
21:56:16.000000000 +0100
++++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am  2013-04-27 
13:23:46.174473155 +0200
+@@ -16,7 +16,8 @@
+       Test_Wired_TLS_Path_Missing \
+       Test_InfiniBand_Connection \
+       Test_Bridge_Main \
+-      Test_Bridge_Component
++      Test_Bridge_Component \
++      Test_Missing_Vlan_Setting
+ 
+ CERTS = \
+       test-ca-cert.pem \
+--- a/src/settings/plugins/keyfile/tests/keyfiles/Test_Missing_Vlan_Setting    
1970-01-01 01:00:00.000000000 +0100
++++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Missing_Vlan_Setting    
2013-04-27 13:23:46.177806544 +0200
+@@ -0,0 +1,11 @@
++# Settings with all default values are not written, including
++# VLAN settings with a VLAN ID of 0, which is the default value.
++
++[connection]
++id=Test Missing Vlan Setting
++uuid=4e80a56d-c99f-4aad-a6dd-b449bc398c57
++type=vlan
++autoconnect=true
++
++[802-3-ethernet]
++mac-address=00:11:22:33:44:55
+--- a/src/settings/plugins/keyfile/tests/test-keyfile.c        2013-02-20 
21:56:16.000000000 +0100
++++ b/src/settings/plugins/keyfile/tests/test-keyfile.c        2013-04-27 
13:23:46.177806544 +0200
+@@ -1193,11 +1193,8 @@
+               TEST_STRING_SSID_FILE,
+               NM_SETTING_WIRELESS_SETTING_NAME,
+               NM_SETTING_WIRELESS_SSID);
+-      ASSERT (memcmp (array->data, expected_ssid, sizeof (expected_ssid)) == 
0,
+-              "connection-verify-wireless", "failed to verify %s: unexpected 
%s / %s key value",
+-              TEST_STRING_SSID_FILE,
+-              NM_SETTING_WIRELESS_SETTING_NAME,
+-              NM_SETTING_WIRELESS_SSID);
++      g_assert_cmpint (array->len, ==, strlen (expected_ssid));
++      g_assert (memcmp (array->data, expected_ssid, array->len) == 0);
+ 
+       g_object_unref (connection);
+ }
+@@ -3078,6 +3075,28 @@
+       g_object_unref (connection);
+ }
+ 
++static void
++test_read_missing_vlan_setting (void)
++{
++      NMConnection *connection;
++      NMSettingVlan *s_vlan;
++      GError *error = NULL;
++      gboolean success;
++
++      connection = nm_keyfile_plugin_connection_from_file 
(TEST_KEYFILES_DIR"/Test_Missing_Vlan_Setting", &error);
++      g_assert_no_error (error);
++      g_assert (connection);
++      success = nm_connection_verify (connection, &error);
++      g_assert_no_error (error);
++      g_assert (success);
++
++      /* Ensure the VLAN setting exists */
++      s_vlan = nm_connection_get_setting_vlan (connection);
++      g_assert (s_vlan);
++      g_assert_cmpint (nm_setting_vlan_get_id (s_vlan), ==, 0);
++
++      g_object_unref (connection);
++}
+ 
+ int main (int argc, char **argv)
+ {
+@@ -3135,6 +3154,8 @@
+       test_read_bridge_component ();
+       test_write_bridge_component ();
+ 
++      test_read_missing_vlan_setting ();
++
+       base = g_path_get_basename (argv[0]);
+       fprintf (stdout, "%s: SUCCESS\n", base);
+       g_free (base);

Added: trunk/httpd/httpd-2.4.4-blfs_layout-1.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/httpd/httpd-2.4.4-blfs_layout-1.patch Sat Apr 27 11:03:55 2013        
(r2640)
@@ -0,0 +1,290 @@
+Submitted By:            Armin K. <krejzi at email dot com>
+Date:                    2013-04-17
+Initial Package Version: 2.4.4
+Upstream Status:         Not applicable
+Origin:                  Self
+Description:             Patches the build system to install stuff into BLFS
+                         specific paths, and adjusts proper permissions
+                         on installed files and directories.
+
+diff -Naur a/config.layout b/config.layout
+--- a/config.layout    2012-04-17 16:01:41.000000000 +0200
++++ b/config.layout    2013-04-17 18:05:34.731598732 +0200
+@@ -9,6 +9,30 @@
+ ##    (This may become a configurable parameter at some point.)
+ ##
+ 
++<Layout BLFS>
++    prefix:
++    exec_prefix:     ${prefix}/usr
++    bindir:          ${exec_prefix}/bin
++    sbindir:         ${exec_prefix}/sbin
++    libdir:          ${exec_prefix}/lib
++    libexecdir:      ${exec_prefix}/lib/httpd/modules
++    mandir:          ${exec_prefix}/share/man
++    sysconfdir:      ${prefix}/etc/httpd
++    datadir:         ${exec_prefix}/share/httpd
++    iconsdir:        ${datadir}/icons
++    htdocsdir:       ${prefix}/srv/www
++    manualdir:       ${datadir}/manual
++    cgidir:          ${exec_prefix}/lib/httpd/cgi-bin
++    includedir:      ${exec_prefix}/include/httpd
++    localstatedir:   ${prefix}/var/lock/httpd
++    runtimedir:      ${prefix}/var/run/httpd
++    logfiledir:      ${prefix}/var/log/httpd
++    proxycachedir:   ${prefix}/var/cache/httpd/proxy
++    infodir:         ${exec_prefix}/share/info
++    installbuilddir: ${datadir}/build
++    errordir:        ${datadir}/error
++</Layout>
++
+ #   Classical Apache path layout.
+ <Layout Apache>
+     prefix:        /usr/local/apache2
+diff -Naur a/configure b/configure
+--- a/configure        2013-02-18 21:28:23.000000000 +0100
++++ b/configure        2013-04-17 18:04:12.603612701 +0200
+@@ -32270,17 +32270,17 @@
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+-#define HTTPD_ROOT "${ap_prefix}"
++#define HTTPD_ROOT "/etc/httpd"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+-#define SERVER_CONFIG_FILE "${rel_sysconfdir}/${progname}.conf"
++#define SERVER_CONFIG_FILE "${progname}.conf"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+-#define AP_TYPES_CONFIG_FILE "${rel_sysconfdir}/mime.types"
++#define AP_TYPES_CONFIG_FILE "mime.types"
+ _ACEOF
+ 
+ 
+diff -Naur a/configure.in b/configure.in
+--- a/configure.in     2013-01-09 17:39:05.000000000 +0100
++++ b/configure.in     2013-04-17 18:04:12.603612701 +0200
+@@ -818,11 +818,11 @@
+ echo $MODLIST | $AWK -f $srcdir/build/build-modules-c.awk > modules.c
+ 
+ APR_EXPAND_VAR(ap_prefix, $prefix)
+-AC_DEFINE_UNQUOTED(HTTPD_ROOT, "${ap_prefix}",
++AC_DEFINE_UNQUOTED(HTTPD_ROOT, "/etc/httpd",
+       [Root directory of the Apache install area])
+-AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
++AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${progname}.conf",
+       [Location of the config file, relative to the Apache root directory])
+-AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
++AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "mime.types",
+       [Location of the MIME types config file, relative to the Apache root 
directory])
+ 
+ perlbin=`$ac_aux_dir/PrintPath perl`
+diff -Naur a/docs/conf/httpd.conf.in b/docs/conf/httpd.conf.in
+--- a/docs/conf/httpd.conf.in  2012-11-08 04:05:38.000000000 +0100
++++ b/docs/conf/httpd.conf.in  2013-04-17 18:04:12.606946089 +0200
+@@ -28,7 +28,7 @@
+ # same ServerRoot for multiple httpd daemons, you will need to change at
+ # least PidFile.
+ #
+-ServerRoot "@@ServerRoot@@"
++#ServerRoot "@@ServerRoot@@"
+ 
+ #
+ # Mutex: Allows you to set the mutex mechanism and mutex file directory
+@@ -74,8 +74,8 @@
+ # It is usually good practice to create a dedicated user and group for
+ # running httpd, as with most system services.
+ #
+-User daemon
+-Group daemon
++User apache
++Group apache
+ 
+ </IfModule>
+ 
+@@ -96,7 +96,7 @@
+ # e-mailed.  This address appears on some server-generated pages, such
+ # as error documents.  e.g. [email protected]
+ #
+-ServerAdmin [email protected]
++ServerAdmin admin@localhost
+ 
+ #
+ # ServerName gives the name and port that the server uses to identify itself.
+@@ -105,7 +105,7 @@
+ #
+ # If your host doesn't have a registered DNS name, enter its IP address here.
+ #
+-#ServerName www.example.com:@@Port@@
++#ServerName localhost:@@Port@@
+ 
+ #
+ # Deny access to the entirety of your server's filesystem. You must
+@@ -181,7 +181,7 @@
+ # logged here.  If you *do* define an error logfile for a <VirtualHost>
+ # container, that host's errors will be logged there and not here.
+ #
+-ErrorLog "@rel_logfiledir@/error_log"
++ErrorLog "@rel_logfiledir@/error.log"
+ 
+ #
+ # LogLevel: Control the number of messages logged to the error_log.
+@@ -210,13 +210,13 @@
+     # define per-<VirtualHost> access logfiles, transactions will be
+     # logged therein and *not* in this file.
+     #
+-    CustomLog "@rel_logfiledir@/access_log" common
++    CustomLog "@rel_logfiledir@/access.log" common
+ 
+     #
+     # If you prefer a logfile with access, agent, and referer information
+     # (Combined Logfile Format) you can use the following directive.
+     #
+-    #CustomLog "@rel_logfiledir@/access_log" combined
++    #CustomLog "@rel_logfiledir@/access.log" combined
+ </IfModule>
+ 
+ <IfModule alias_module>
+diff -Naur a/include/ap_config_layout.h.in b/include/ap_config_layout.h.in
+--- a/include/ap_config_layout.h.in    2006-07-11 22:55:32.000000000 +0200
++++ b/include/ap_config_layout.h.in    2013-04-17 18:04:12.606946089 +0200
+@@ -60,5 +60,6 @@
+ #define DEFAULT_REL_LOGFILEDIR "@rel_logfiledir@"
+ #define DEFAULT_EXP_PROXYCACHEDIR "@exp_proxycachedir@"
+ #define DEFAULT_REL_PROXYCACHEDIR "@rel_proxycachedir@"
++#define DEFAULT_PIDLOG "/var/run/httpd/httpd.pid"
+ 
+ #endif /* AP_CONFIG_LAYOUT_H */
+diff -Naur a/include/httpd.h b/include/httpd.h
+--- a/include/httpd.h  2013-01-28 14:09:39.000000000 +0100
++++ b/include/httpd.h  2013-04-17 18:04:12.606946089 +0200
+@@ -109,7 +109,7 @@
+ #define DOCUMENT_LOCATION  HTTPD_ROOT "/docs"
+ #else
+ /* Set default for non OS/2 file system */
+-#define DOCUMENT_LOCATION  HTTPD_ROOT "/htdocs"
++#define DOCUMENT_LOCATION  "/srv/www"
+ #endif
+ #endif /* DOCUMENT_LOCATION */
+ 
+diff -Naur a/Makefile.in b/Makefile.in
+--- a/Makefile.in      2012-12-17 12:50:41.000000000 +0100
++++ b/Makefile.in      2013-04-17 18:04:12.606946089 +0200
+@@ -91,9 +91,9 @@
+           done ; \
+       done ; \
+       if test -f "$(builddir)/envvars-std"; then \
+-          cp -p envvars-std $(DESTDIR)$(sbindir); \
+-          if test ! -f $(DESTDIR)$(sbindir)/envvars; then \
+-              cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \
++          install -o root -g root -m644 envvars-std 
$(DESTDIR)$(installbuilddir); \
++          if test ! -f $(DESTDIR)$(sysconfdir)/envvars; then \
++              install -o root -g root -m644 envvars-std 
$(DESTDIR)$(sysconfdir)/envvars ; \
+           fi ; \
+       fi
+ 
+@@ -145,7 +145,7 @@
+           if test -d $(htdocs-srcdir) && test "x$(RSYNC)" != "x" && test -x 
$(RSYNC) ; then \
+               $(RSYNC) --exclude .svn -rlpt --numeric-ids $(htdocs-srcdir)/ 
$(DESTDIR)$(htdocsdir)/; \
+           else \
+-              test -d $(htdocs-srcdir) && (cd $(htdocs-srcdir) && cp -rp * 
$(DESTDIR)$(htdocsdir)) ; \
++              test -d $(htdocs-srcdir) && (cd $(htdocs-srcdir) && cp -rp * 
$(DESTDIR)$(htdocsdir) && chown -R root:root $(DESTDIR)$(htdocsdir)) ; \
+               cd $(DESTDIR)$(htdocsdir) && find . -name ".svn" -type d -print 
| xargs rm -rf 2>/dev/null || true; \
+           fi; \
+       fi
+@@ -156,7 +156,7 @@
+         else \
+           echo Installing error documents ; \
+           $(MKINSTALLDIRS) $(DESTDIR)$(errordir) ; \
+-          cd $(top_srcdir)/docs/error && cp -rp * $(DESTDIR)$(errordir) ; \
++          cd $(top_srcdir)/docs/error && cp -rp * $(DESTDIR)$(errordir) && 
chown -R root:root $(DESTDIR)$(errordir); \
+           test "x$(errordir)" != "x" && cd $(DESTDIR)$(errordir) && find . 
-name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
+       fi
+ 
+@@ -166,7 +166,7 @@
+         else \
+           echo Installing icons ; \
+           $(MKINSTALLDIRS) $(DESTDIR)$(iconsdir) ; \
+-          cd $(top_srcdir)/docs/icons && cp -rp * $(DESTDIR)$(iconsdir) ; \
++          cd $(top_srcdir)/docs/icons && cp -rp * $(DESTDIR)$(iconsdir) && 
chown -R root:root $(DESTDIR)$(iconsdir); \
+           test "x$(iconsdir)" != "x" && cd $(DESTDIR)$(iconsdir) && find . 
-name ".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
+       fi
+ 
+@@ -176,7 +176,7 @@
+       else \
+          echo Installing CGIs ; \
+          $(MKINSTALLDIRS) $(DESTDIR)$(cgidir) ; \
+-         cd $(top_srcdir)/docs/cgi-examples && cp -rp * $(DESTDIR)$(cgidir) ; 
\
++         cd $(top_srcdir)/docs/cgi-examples && cp -rp * $(DESTDIR)$(cgidir) 
&& chown -R root:root $(DESTDIR)$(cgidir); \
+          test "x$(cgidir)" != "x" && cd $(DESTDIR)$(cgidir) && find . -name 
".svn" -type d -print | xargs rm -rf 2>/dev/null || true; \
+       fi
+ 
+@@ -229,12 +229,12 @@
+       @test -d $(DESTDIR)$(mandir)/man1 || $(MKINSTALLDIRS) 
$(DESTDIR)$(mandir)/man1
+       @test -d $(DESTDIR)$(mandir)/man8 || $(MKINSTALLDIRS) 
$(DESTDIR)$(mandir)/man8
+       @test -d $(DESTDIR)$(manualdir)   || $(MKINSTALLDIRS) 
$(DESTDIR)$(manualdir)
+-      @cp -p $(top_srcdir)/docs/man/*.1 $(DESTDIR)$(mandir)/man1
+-      @cp -p $(top_srcdir)/docs/man/*.8 $(DESTDIR)$(mandir)/man8
++      @install -o root -g root -m644 $(top_srcdir)/docs/man/*.1 
$(DESTDIR)$(mandir)/man1
++      @install -o root -g root -m644 $(top_srcdir)/docs/man/*.8 
$(DESTDIR)$(mandir)/man8
+       @if test "x$(RSYNC)" != "x" && test -x $(RSYNC) ; then \
+         $(RSYNC) --exclude .svn -rlpt --numeric-ids 
$(top_srcdir)/docs/manual/ $(DESTDIR)$(manualdir)/; \
+       else \
+-        cd $(top_srcdir)/docs/manual && cp -rp * $(DESTDIR)$(manualdir); \
++        cd $(top_srcdir)/docs/manual && cp -rp * $(DESTDIR)$(manualdir) && 
chown -R root:root $(DESTDIR)$(manualdir); \
+         cd $(DESTDIR)$(manualdir) && find . -name ".svn" -type d -print | 
xargs rm -rf 2>/dev/null || true; \
+       fi
+ 
+diff -Naur a/support/apachectl.in b/support/apachectl.in
+--- a/support/apachectl.in     2012-02-01 04:47:28.000000000 +0100
++++ b/support/apachectl.in     2013-04-17 18:04:12.606946089 +0200
+@@ -45,8 +45,8 @@
+ HTTPD='@exp_sbindir@/@progname@'
+ #
+ # pick up any necessary environment variables
+-if test -f @exp_sbindir@/envvars; then
+-  . @exp_sbindir@/envvars
++if test -f @exp_sysconfdir@/envvars; then
++  . @exp_sysconfdir@/envvars
+ fi
+ #
+ # a command that outputs a formatted text version of the HTML at the
+diff -Naur a/support/Makefile.in b/support/Makefile.in
+--- a/support/Makefile.in      2012-12-11 11:37:25.000000000 +0100
++++ b/support/Makefile.in      2013-04-17 18:04:12.610279475 +0200
+@@ -16,23 +16,23 @@
+       @test -d $(DESTDIR)$(bindir) || $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+       @test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+       @test -d $(DESTDIR)$(libexecdir) || $(MKINSTALLDIRS) 
$(DESTDIR)$(libexecdir)
+-      @cp -p $(top_builddir)/server/httpd.exp $(DESTDIR)$(libexecdir)
++      @test -d $(DESTDIR)$(sysconfdir) || $(MKINSTALLDIRS) 
$(DESTDIR)$(sysconfdir)
++      @test -d $(DESTDIR)$(installbuilddir) || $(MKINSTALLDIRS) 
$(DESTDIR)$(installbuilddir)
++      @install -o root -g root -m644 $(top_builddir)/server/httpd.exp 
$(DESTDIR)$(libexecdir)
+       @for i in apxs dbmmanage; do \
+           if test -f "$(builddir)/$$i"; then \
+-              cp -p $$i $(DESTDIR)$(bindir); \
+-              chmod 755 $(DESTDIR)$(bindir)/$$i; \
++              install -o root -g root -m755 $$i $(DESTDIR)$(bindir); \
+           fi ; \
+       done
+       @for i in apachectl; do \
+           if test -f "$(builddir)/$$i"; then \
+-              cp -p $$i $(DESTDIR)$(sbindir); \
+-              chmod 755 $(DESTDIR)$(sbindir)/$$i; \
++              install -o root -g root -m755 $$i $(DESTDIR)$(sbindir); \
+           fi ; \
+       done
+       @if test -f "$(builddir)/envvars-std"; then \
+-          cp -p envvars-std $(DESTDIR)$(sbindir); \
+-          if test ! -f $(DESTDIR)$(sbindir)/envvars; then \
+-              cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \
++          install -o root -g root -m644 envvars-std 
$(DESTDIR)$(installbuilddir); \
++          if test ! -f $(DESTDIR)$(sysconfdir)/envvars; then \
++              install -o root -g root -m644 envvars-std 
$(DESTDIR)$(sysconfdir)/envvars ; \
+           fi ; \
+       fi
+ 

Added: trunk/mysql/mysql-5.6.11-embedded_library_shared-1.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/mysql/mysql-5.6.11-embedded_library_shared-1.patch    Sat Apr 27 
11:03:55 2013        (r2640)
@@ -0,0 +1,48 @@
+Submitted By: Ragnar Thomsen (rthomsen at linuxfromscratch dot org)
+Date: 2012-03-21
+Initial Package Version: 5.5.17
+Origin: Gentoo Git
+Description: Fixes mysql to build a shared version of the embedded server 
library (libmysqld.so) used by amarok2
+
+--- a/cmake/libutils.cmake     2013-04-05 14:27:18.000000000 +0200
++++ b/cmake/libutils.cmake     2013-04-27 13:38:52.806295199 +0200
+@@ -269,6 +269,16 @@
+     MYSQL_INSTALL_TARGETS(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP})
+   ENDIF()
+   SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_INTERFACE_LIBRARIES "")
++
++  IF(ARG_SHARED AND LINK_FLAG_NO_UNDEFINED)
++    # Do not allow undefined symbols in shared libraries
++    GET_TARGET_PROPERTY(TARGET_LINK_FLAGS ${TARGET} LINK_FLAGS)
++    IF(NOT TARGET_LINK_FLAGS)
++      SET(TARGET_LINK_FLAGS)
++    ENDIF()
++    SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS 
++      "${TARGET_LINK_FLAGS} ${LINK_FLAG_NO_UNDEFINED}")
++  ENDIF() 
+ ENDMACRO()
+ 
+ FUNCTION(GET_DEPENDEND_OS_LIBS target result)
+--- a/libmysqld/CMakeLists.txt 2013-04-05 14:27:18.000000000 +0200
++++ b/libmysqld/CMakeLists.txt 2013-04-27 13:38:52.806295199 +0200
+@@ -125,7 +125,17 @@
+   ${CMAKE_STATIC_LIBRARY_PREFIX}mysqld-debug)
+ ENDIF()
+ 
+-IF(MSVC AND NOT DISABLE_SHARED)
+-  MERGE_LIBRARIES(libmysqld SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS}
+-  COMPONENT Embedded)
++IF(NOT DISABLE_SHARED)
++  MERGE_LIBRARIES(libmysqld SHARED mysqlserver EXPORTS 
${CLIENT_API_FUNCTIONS})
++  IF(UNIX)
++    # Name the shared library, handle versioning (provides same api as client 
library
++    # hence the same version)
++    SET_TARGET_PROPERTIES(libmysqld PROPERTIES 
++      OUTPUT_NAME mysqld 
++      VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0" 
++      SOVERSION "${SHARED_LIB_MAJOR_VERSION}")
++    # Clean direct output flags, as 2 targets have the same base name 
(libmysqld)
++    SET_TARGET_PROPERTIES(libmysqld PROPERTIES CLEAN_DIRECT_OUTPUT 1)
++    SET_TARGET_PROPERTIES(mysqlserver PROPERTIES CLEAN_DIRECT_OUTPUT 1)
++  ENDIF()
+ ENDIF()
-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to