Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 923437 Details for
Bug 1125426
Update to 1.4.0 release
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Update to 1.3.0 git 1fc3e17 2014-08-02
Update-to-1.3.0-git-1fc3e17-2014-08-02.patch (text/plain), 19.50 KB, created by
poma
on 2014-08-02 06:46:43 UTC
(
hide
)
Description:
Update to 1.3.0 git 1fc3e17 2014-08-02
Filename:
MIME Type:
Creator:
poma
Created:
2014-08-02 06:46:43 UTC
Size:
19.50 KB
patch
obsolete
> >Update to 1.3.0 git 1fc3e17 2014-08-02 > >--- > ModemManager.spec | 32 +- > Restored-functionality-for-the-Huawei-E1750.patch | 420 ++++++++++++++++++++++ > sources | 2 +- > 3 files changed, 442 insertions(+), 12 deletions(-) > create mode 100644 Restored-functionality-for-the-Huawei-E1750.patch > >diff --git a/ModemManager.spec b/ModemManager.spec >index 5a2719b..37e934f 100644 >--- a/ModemManager.spec >+++ b/ModemManager.spec >@@ -1,21 +1,27 @@ >- >+%global git_sha_short 1fc3e17 >+%global snapshot .git20140802 > %global glib2_version 2.32 > %global systemd_dir %{_prefix}/lib/systemd/system >- > %global _hardened_build 1 > > Summary: Mobile broadband modem management service > Name: ModemManager >-Version: 1.2.0 >-Release: 3%{?dist} >+Version: 1.3.0 >+Release: 1%{snapshot}%{?dist} > # >-# Source from http://freedesktop.org/software/ModemManager/ >+# Source from git://anongit.freedesktop.org/%{name}/%{name} >+# or http://cgit.freedesktop.org/%{name}/%{name}/snapshot/%{name}-%{git_sha_short}.tar.gz >+# Local snapshot: >+# tar xf %{name}-%{git_sha_short}.tar.gz >+# mv %{name}-%{git_sha_short} %{name}-%{version} >+# %{name}-%{version}/autogen.sh >+# tar cJf %{name}-%{version}%{snapshot}.tar.xz %{name}-%{version} > # >-Source: %{name}-%{version}.tar.xz >+Source: %{name}-%{version}%{snapshot}.tar.xz > License: GPLv2+ > Group: System Environment/Base > >-URL: https://wiki.gnome.org/Projects/NetworkManager >+URL: http://freedesktop.org/wiki/Software/%{name} > BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) > Requires: glib2 >= %{glib2_version} > BuildRequires: glib2-devel >= %{glib2_version} >@@ -27,8 +33,10 @@ BuildRequires: libqmi-devel >= 1.6 > BuildRequires: libmbim-devel >= 1.5 > BuildRequires: gobject-introspection-devel >= 0.10.3 > BuildRequires: vala-tools vala-devel >+BuildRequires: polkit-devel > > Patch0: buildsys-hates-openpty.patch >+Patch1: Restored-functionality-for-the-Huawei-E1750.patch > > %description > The ModemManager service manages WWAN modems and provides a consistent API for >@@ -78,11 +86,9 @@ Vala bindings for ModemManager > %prep > %setup -q > %patch0 -p1 -b .pty >+%patch1 -p1 -b .E1750 > > %build >- >-autoreconf -i --force >-intltoolize --force > %configure \ > --enable-more-warnings=error \ > --with-udev-base-dir=%{_prefix}/lib/udev \ >@@ -91,7 +97,6 @@ intltoolize --force > --with-mbim=yes \ > --with-newest-qmi-commands \ > --disable-static \ >- --with-polkit=no \ > --with-dist-version=%{version}-%{release} > > make %{?_smp_mflags} >@@ -140,6 +145,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : > %{_datadir}/icons/hicolor/22x22/apps/*.png > %{_mandir}/man8/* > %{_datadir}/locale/*/LC_MESSAGES/ModemManager.mo >+%{_datadir}/polkit-1/actions/*.policy > > %files devel > %{_includedir}/ModemManager/*.h >@@ -164,6 +170,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : > %{_datadir}/vala/vapi/libmm-glib.* > > %changelog >+* Sat Aug 02 2014 poma <poma@gmail.com> - 1.3.0-1.git20140802 >+- Update to a git commit 1fc3e17 >+ Restored functionality for the Huawei E1750 >+ > * Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 1.2.0-3 > - Rebuilt for gobject-introspection 1.41.4 > >diff --git a/Restored-functionality-for-the-Huawei-E1750.patch b/Restored-functionality-for-the-Huawei-E1750.patch >new file mode 100644 >index 0000000..ad50d13 >--- /dev/null >+++ b/Restored-functionality-for-the-Huawei-E1750.patch >@@ -0,0 +1,420 @@ >+ >+Restored functionality for the >+Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode) 12d1:1436 cdc_ether, >+Huawei Technologies Co., Ltd. E180v 12d1:140c qmi_wwan, >+actually Huawei E1750 FW Rev. 11.126.13.00.00 Qualcomm based mobile broadband modem >+by reverting commit ca0a567 >+"broadband-bearer-qmi: support IPv6 configuration and use static for IPv4" >+and updating 'mm-bearer-qmi.c' with commit 3ca267b >+"bearer: rename 'MMBearer' to 'MMBaseBearer'" >+ >+--- >+ src/mm-bearer-qmi.c | 306 +++++++++++++++++++--------------------------------- >+ 1 file changed, 111 insertions(+), 195 deletions(-) >+ >+diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c >+index c25b9f7..bf0f6fc 100644 >+--- a/src/mm-bearer-qmi.c >++++ b/src/mm-bearer-qmi.c >+@@ -31,7 +31,6 @@ >+ #include "mm-modem-helpers-qmi.h" >+ #include "mm-port-enums-types.h" >+ #include "mm-log.h" >+-#include "mm-modem-helpers.h" >+ >+ G_DEFINE_TYPE (MMBearerQmi, mm_bearer_qmi, MM_TYPE_BASE_BEARER); >+ >+@@ -83,14 +82,12 @@ typedef struct { >+ gboolean running_ipv4; >+ QmiClientWds *client_ipv4; >+ guint32 packet_data_handle_ipv4; >+- MMBearerIpConfig *ipv4_config; >+ GError *error_ipv4; >+ >+ gboolean ipv6; >+ gboolean running_ipv6; >+ QmiClientWds *client_ipv6; >+ guint32 packet_data_handle_ipv6; >+- MMBearerIpConfig *ipv6_config; >+ GError *error_ipv6; >+ } ConnectContext; >+ >+@@ -102,12 +99,14 @@ connect_context_complete_and_free (ConnectContext *ctx) >+ g_free (ctx->apn); >+ g_free (ctx->user); >+ g_free (ctx->password); >+- g_clear_error (&ctx->error_ipv4); >+- g_clear_error (&ctx->error_ipv6); >+- g_clear_object (&ctx->client_ipv4); >+- g_clear_object (&ctx->client_ipv6); >+- g_clear_object (&ctx->ipv4_config); >+- g_clear_object (&ctx->ipv6_config); >++ if (ctx->error_ipv4) >++ g_error_free (ctx->error_ipv4); >++ if (ctx->error_ipv6) >++ g_error_free (ctx->error_ipv6); >++ if (ctx->client_ipv4) >++ g_object_unref (ctx->client_ipv4); >++ if (ctx->client_ipv6) >++ g_object_unref (ctx->client_ipv6); >+ g_object_unref (ctx->data); >+ g_object_unref (ctx->qmi); >+ g_object_unref (ctx->cancellable); >+@@ -248,191 +247,51 @@ build_start_network_input (ConnectContext *ctx) >+ } >+ >+ static void >+-qmi_inet4_ntop (guint32 address, char *buf, const gsize buflen) >++print_address4 (gboolean success, const char *tag, guint32 address, GError *error) >+ { >+ struct in_addr a = { .s_addr = GUINT32_TO_BE (address) }; >++ char buf[INET_ADDRSTRLEN + 1]; >+ >+- g_assert (buflen >= INET_ADDRSTRLEN); >+- >+- /* We can ignore inet_ntop() return value if 'buf' is >+- * at least INET_ADDRSTRLEN in size. */ >+- memset (buf, 0, buflen); >+- g_assert (inet_ntop (AF_INET, &a, buf, buflen)); >+-} >+- >+-static MMBearerIpConfig * >+-get_ipv4_config (QmiMessageWdsGetCurrentSettingsOutput *output, guint32 mtu) >+-{ >+- MMBearerIpConfig *config; >+- char buf[INET_ADDRSTRLEN]; >+- char buf2[INET_ADDRSTRLEN]; >+- const gchar *dns[3] = { 0 }; >+- guint dns_idx = 0; >+- guint32 addr = 0; >+- GError *error = NULL; >+- guint32 prefix = 0; >+- >+- /* IPv4 subnet mask */ >+- if (!qmi_message_wds_get_current_settings_output_get_ipv4_gateway_subnet_mask (output, &addr, &error)) { >+- mm_dbg ("Failed to read IPv4 netmask (%s)", error->message); >+- g_clear_error (&error); >+- return NULL; >+- } >+- qmi_inet4_ntop (addr, buf, sizeof (buf)); >+- prefix = mm_netmask_to_cidr (buf); >+- >+- /* IPv4 address */ >+- if (!qmi_message_wds_get_current_settings_output_get_ipv4_address (output, &addr, &error)) { >+- mm_dbg ("IPv4 family but no IPv4 address (%s)", error->message); >+- g_clear_error (&error); >+- return NULL; >+- } >+- >+- mm_dbg ("QMI IPv4 Settings:"); >+- >+- config = mm_bearer_ip_config_new (); >+- mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_STATIC); >+- >+- /* IPv4 address */ >+- qmi_inet4_ntop (addr, buf, sizeof (buf)); >+- mm_bearer_ip_config_set_address (config, buf); >+- mm_bearer_ip_config_set_prefix (config, prefix); >+- mm_dbg (" Address: %s/%d", buf, prefix); >+- >+- /* IPv4 gateway address */ >+- if (qmi_message_wds_get_current_settings_output_get_ipv4_gateway_address (output, &addr, &error)) { >+- qmi_inet4_ntop (addr, buf, sizeof (buf)); >+- mm_bearer_ip_config_set_gateway (config, buf); >+- mm_dbg (" Gateway: %s", buf); >+- } else { >+- mm_dbg (" Gateway: failed (%s)", error->message); >+- g_clear_error (&error); >+- } >+- >+- /* IPv4 DNS #1 */ >+- if (qmi_message_wds_get_current_settings_output_get_primary_ipv4_dns_address (output, &addr, &error)) { >+- qmi_inet4_ntop (addr, buf, sizeof (buf)); >+- dns[dns_idx++] = buf; >+- mm_dbg (" DNS #1: %s", buf); >+- } else { >+- mm_dbg (" DNS #1: failed (%s)", error->message); >+- g_clear_error (&error); >+- } >+- >+- /* IPv6 DNS #2 */ >+- if (qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error)) { >+- qmi_inet4_ntop (addr, buf2, sizeof (buf2)); >+- dns[dns_idx++] = buf2; >+- mm_dbg (" DNS #2: %s", buf2); >+- } else { >+- mm_dbg (" DNS #2: failed (%s)", error->message); >+- g_clear_error (&error); >+- } >+- >+- if (dns_idx > 0) >+- mm_bearer_ip_config_set_dns (config, (const gchar **) &dns); >+- >+- if (mtu) { >+- mm_bearer_ip_config_set_mtu (config, mtu); >+- mm_dbg (" MTU: %d", mtu); >++ if (success) { >++ memset (buf, 0, sizeof (buf)); >++ if (inet_ntop (AF_INET, &a, buf, sizeof (buf) - 1)) >++ mm_dbg (" %s: %s", tag, buf); >++ else >++ mm_dbg (" %s: failed (address conversion error)", tag); >++ return; >+ } >+- >+- return config; >++ mm_dbg (" %s: failed (%s)", tag, error ? error->message : "unknown"); >+ } >+ >+ static void >+-qmi_inet6_ntop (GArray *array, char *buf, const gsize buflen) >++print_address6 (gboolean success, >++ const char *tag, >++ GArray *array, >++ guint32 prefix, >++ GError *error) >+ { >+ struct in6_addr a; >++ char buf[INET6_ADDRSTRLEN + 1]; >+ guint32 i; >+ >+- g_assert (array); >+- g_assert (array->len == 8); >+- g_assert (buflen >= INET6_ADDRSTRLEN); >+- >+- for (i = 0; i < array->len; i++) >+- a.s6_addr16[i] = GUINT16_TO_BE (g_array_index (array, guint16, i)); >+- >+- /* We can ignore inet_ntop() return value if 'buf' is >+- * at least INET6_ADDRSTRLEN in size. */ >+- memset (buf, 0, buflen); >+- g_assert (inet_ntop (AF_INET6, &a, buf, buflen)); >+-} >+- >+-static MMBearerIpConfig * >+-get_ipv6_config (QmiMessageWdsGetCurrentSettingsOutput *output, guint32 mtu) >+-{ >+- MMBearerIpConfig *config; >+- char buf[INET6_ADDRSTRLEN]; >+- char buf2[INET6_ADDRSTRLEN]; >+- const gchar *dns[3] = { 0 }; >+- guint dns_idx = 0; >+- GArray *array; >+- GError *error = NULL; >+- guint8 prefix = 0; >+- >+- /* If the message has an IPv6 address, create an IPv6 bearer config */ >+- if (!qmi_message_wds_get_current_settings_output_get_ipv6_address (output, &array, &prefix, &error)) { >+- mm_dbg ("IPv6 family but no IPv6 address (%s)", error->message); >+- g_clear_error (&error); >+- return NULL; >+- } >+- >+- mm_dbg ("QMI IPv6 Settings:"); >+- >+- config = mm_bearer_ip_config_new (); >+- mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_STATIC); >+- >+- /* IPv6 address */ >+- qmi_inet6_ntop (array, buf, sizeof (buf)); >+- g_array_unref (array); >+- >+- mm_bearer_ip_config_set_address (config, buf); >+- mm_bearer_ip_config_set_prefix (config, prefix); >+- mm_dbg (" Address: %s/%d", buf, prefix); >+- >+- /* IPv6 gateway address */ >+- if (qmi_message_wds_get_current_settings_output_get_ipv6_gateway_address (output, &array, &prefix, &error)) { >+- qmi_inet6_ntop (array, buf, sizeof (buf)); >+- mm_bearer_ip_config_set_gateway (config, buf); >+- mm_dbg (" Gateway: %s", buf); >+- g_array_unref (array); >+- } else { >+- mm_dbg (" Gateway: failed (%s)", error->message); >+- g_clear_error (&error); >+- } >+- >+- /* IPv6 DNS #1 */ >+- if (qmi_message_wds_get_current_settings_output_get_ipv6_primary_dns_address (output, &array, &error)) { >+- qmi_inet6_ntop (array, buf, sizeof (buf)); >+- dns[dns_idx++] = buf; >+- mm_dbg (" DNS #1: %s", buf); >+- g_array_unref (array); >+- } else { >+- mm_dbg (" DNS #1: failed (%s)", error->message); >+- g_clear_error (&error); >+- } >++ if (success) { >++ g_assert (array); >++ g_assert (array->len == 8); >+ >+- /* IPv6 DNS #2 */ >+- if (qmi_message_wds_get_current_settings_output_get_ipv6_secondary_dns_address (output, &array, &error)) { >+- qmi_inet6_ntop (array, buf2, sizeof (buf2)); >+- dns[dns_idx++] = buf2; >+- mm_dbg (" DNS #2: %s", buf2); >+- g_array_unref (array); >+- } else { >+- mm_dbg (" DNS #2: failed (%s)", error->message); >+- g_clear_error (&error); >+- } >++ memset (buf, 0, sizeof (buf)); >++ for (i = 0; i < array->len; i++) >++ a.s6_addr16[i] = GUINT16_TO_BE (g_array_index (array, guint16, i)); >+ >+- if (dns_idx > 0) >+- mm_bearer_ip_config_set_dns (config, (const gchar **) &dns); >++ if (inet_ntop (AF_INET6, &a, buf, sizeof (buf) - 1)) >++ mm_dbg (" %s: %s/%d", tag, buf, prefix); >++ else >++ mm_dbg (" %s: failed (address conversion error)", tag); >+ >+- if (mtu) { >+- mm_bearer_ip_config_set_mtu (config, mtu); >+- mm_dbg (" MTU: %d", mtu); >++ g_array_free (array, TRUE); >++ return; >+ } >+ >+- return config; >++ mm_dbg (" %s: failed (%s)", tag, error ? error->message : "unknown"); >+ } >+ >+ static void >+@@ -453,33 +312,73 @@ get_current_settings_ready (QmiClientWds *client, >+ mm_info ("error: couldn't get current settings: %s", error->message); >+ g_error_free (error); >+ } else { >+- QmiWdsIpFamily ip_family = QMI_WDS_IP_FAMILY_UNSPECIFIED; >+- guint32 mtu = 0; >++ gboolean success; >++ guint32 addr, mtu, i; >+ GArray *array; >++ guint8 prefix; >++ >++ /* If the message has an IPv4 address, print IPv4 settings */ >++ if (qmi_message_wds_get_current_settings_output_get_ipv4_address (output, &addr, &error)) { >++ mm_dbg ("QMI IPv4 Settings:"); >+ >+- if (!qmi_message_wds_get_current_settings_output_get_ip_family (output, &ip_family, &error)) { >+- mm_dbg (" IP Family: failed (%s); assuming IPv4", error->message); >++ /* IPv4 address */ >++ print_address4 (TRUE, "Address", addr, error); >++ g_clear_error (&error); >++ >++ /* IPv4 gateway address */ >++ success = qmi_message_wds_get_current_settings_output_get_ipv4_gateway_address (output, &addr, &error); >++ print_address4 (success, "Gateway", addr, error); >++ g_clear_error (&error); >++ >++ /* IPv4 subnet mask */ >++ success = qmi_message_wds_get_current_settings_output_get_ipv4_gateway_subnet_mask (output, &addr, &error); >++ print_address4 (success, "Netmask", addr, error); >+ g_clear_error (&error); >+- ip_family = QMI_WDS_IP_FAMILY_IPV4; >+- } >+- mm_dbg (" IP Family: %s", >+- (ip_family == QMI_WDS_IP_FAMILY_IPV4) ? "IPv4" : >+- (ip_family == QMI_WDS_IP_FAMILY_IPV6) ? "IPv6" : "unknown"); >+ >+- if (!qmi_message_wds_get_current_settings_output_get_mtu (output, &mtu, &error)) { >+- mm_dbg (" MTU: failed (%s)", error->message); >++ /* IPv4 DNS #1 */ >++ success = qmi_message_wds_get_current_settings_output_get_primary_ipv4_dns_address (output, &addr, &error); >++ print_address4 (success, " DNS #1", addr, error); >++ g_clear_error (&error); >++ >++ /* IPv4 DNS #2 */ >++ success = qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error); >++ print_address4 (success, " DNS #2", addr, error); >++ g_clear_error (&error); >++ } else { >++ /* no IPv4 configuration */ >+ g_clear_error (&error); >+ } >+ >+- if (ip_family == QMI_WDS_IP_FAMILY_IPV4) >+- ctx->ipv4_config = get_ipv4_config (output, mtu); >+- else if (ip_family == QMI_WDS_IP_FAMILY_IPV6) >+- ctx->ipv6_config = get_ipv6_config (output, mtu); >++ /* If the message has an IPv6 address, print IPv6 settings */ >++ if (qmi_message_wds_get_current_settings_output_get_ipv6_address (output, &array, &prefix, &error)) { >++ mm_dbg ("QMI IPv6 Settings:"); >++ >++ /* IPv6 address */ >++ print_address6 (TRUE, "Address", array, prefix, error); >++ g_clear_error (&error); >++ >++ /* IPv6 gateway address */ >++ success = qmi_message_wds_get_current_settings_output_get_ipv6_gateway_address (output, &array, &prefix, &error); >++ print_address6 (success, "Gateway", array, prefix, error); >++ g_clear_error (&error); >++ >++ /* IPv6 DNS #1 */ >++ success = qmi_message_wds_get_current_settings_output_get_ipv6_primary_dns_address (output, &array, &error); >++ print_address6 (success, " DNS #1", array, 0, error); >++ g_clear_error (&error); >++ >++ /* IPv6 DNS #2 */ >++ success = qmi_message_wds_get_current_settings_output_get_ipv6_secondary_dns_address (output, &array, &error); >++ print_address6 (success, " DNS #2", array, 0, error); >++ g_clear_error (&error); >++ } else { >++ /* no IPv6 configuration */ >++ g_clear_error (&error); >++ } >+ >+ /* Domain names */ >+ if (qmi_message_wds_get_current_settings_output_get_domain_name_list (output, &array, &error)) { >+ GString *s = g_string_sized_new (array ? (array->len * 20) : 1); >+- guint i; >+ >+ for (i = 0; array && (i < array->len); i++) { >+ if (s->len) >+@@ -492,6 +391,13 @@ get_current_settings_ready (QmiClientWds *client, >+ mm_dbg (" Domains: failed (%s)", error ? error->message : "unknown"); >+ g_clear_error (&error); >+ } >++ >++ if (qmi_message_wds_get_current_settings_output_get_mtu (output, &mtu, &error)) >++ mm_dbg (" MTU: %d", mtu); >++ else { >++ mm_dbg (" MTU: failed (%s)", error ? error->message : "unknown"); >++ g_clear_error (&error); >++ } >+ } >+ >+ if (output) >+@@ -822,6 +728,8 @@ connect_context_step (ConnectContext *ctx) >+ case CONNECT_STEP_LAST: >+ /* If one of IPv4 or IPv6 succeeds, we're connected */ >+ if (ctx->packet_data_handle_ipv4 || ctx->packet_data_handle_ipv6) { >++ MMBearerIpConfig *config; >++ >+ /* Port is connected; update the state */ >+ mm_port_set_connected (MM_PORT (ctx->data), TRUE); >+ >+@@ -843,11 +751,19 @@ connect_context_step (ConnectContext *ctx) >+ ctx->self->priv->client_ipv6 = g_object_ref (ctx->client_ipv6); >+ } >+ >++ /* Build IP config; always DHCP based */ >++ config = mm_bearer_ip_config_new (); >++ mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_DHCP); >++ >+ /* Set operation result */ >+ g_simple_async_result_set_op_res_gpointer ( >+ ctx->result, >+- mm_bearer_connect_result_new (ctx->data, ctx->ipv4_config, ctx->ipv6_config), >++ mm_bearer_connect_result_new ( >++ ctx->data, >++ ctx->packet_data_handle_ipv4 ? config : NULL, >++ ctx->packet_data_handle_ipv6 ? config : NULL), >+ (GDestroyNotify)mm_bearer_connect_result_unref); >++ g_object_unref (config); >+ } else { >+ GError *error; >+ >+-- >+2.0.4 >+ >diff --git a/sources b/sources >index 1637324..d130496 100644 >--- a/sources >+++ b/sources >@@ -1 +1 @@ >-6e70ab7c5f96aa6a4d5612c1d5ae5bb3 ModemManager-1.2.0.tar.xz >+a71a656bf78b5fce5b065f3768a1cfc0 ModemManager-1.3.0.git20140802.tar.xz >-- >2.0.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1125426
:
923028
|
923437
|
923787
|
924015
|
924016
|
929737