diff mbox

[v3,1/1] package/network-manager: add patches to build with kernel headers 3.2

Message ID 1434969830-31251-1-git-send-email-vorel@jablocom.com
State Accepted
Headers show

Commit Message

Petr Vorel June 22, 2015, 10:43 a.m. UTC
From: Petr Vorel <petr.vorel@gmail.com>

+ lower kernel headers dependency

According to upstream [1], there is no known minimal kernel-version, nor
minimal required feature-set.

Experimentally tested, that 1.0.2 is works with 3.2 kernel headers, even
some features will be missing [2].

[1] https://mail.gnome.org/archives/networkmanager-list/2015-April/msg00039.html
[2] https://mail.gnome.org/archives/networkmanager-list/2015-April/msg00041.html

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
Changes v3:
 - Lower kernel headers dependency to 3.2
 - Preserved original author of
   0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
 - Added Signed-off-by inside both patches.
Changes v2: rewrited patch 0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
---
 ...anager-fix-build-with-Linux-3.2.0-headers.patch | 30 ++++++++++++++++++
 ...d-dhcp-fix-build-with-Linux-3.2.0-headers.patch | 37 ++++++++++++++++++++++
 package/network-manager/Config.in                  |  2 +-
 3 files changed, 68 insertions(+), 1 deletion(-)
 create mode 100644 package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
 create mode 100644 package/network-manager/0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch

Comments

Arnout Vandecappelle June 23, 2015, 7:58 a.m. UTC | #1
On 06/22/15 12:43, Petr Vorel wrote:
> From: Petr Vorel <petr.vorel@gmail.com>
> 
> + lower kernel headers dependency
> 
> According to upstream [1], there is no known minimal kernel-version, nor
> minimal required feature-set.
> 
> Experimentally tested, that 1.0.2 is works with 3.2 kernel headers, even
> some features will be missing [2].

 "works" as in run-time tested?

> 
> [1] https://mail.gnome.org/archives/networkmanager-list/2015-April/msg00039.html
> [2] https://mail.gnome.org/archives/networkmanager-list/2015-April/msg00041.html
> 
> Signed-off-by: Petr Vorel <petr.vorel@gmail.com>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 Some questions below though.

> ---
> Changes v3:
>  - Lower kernel headers dependency to 3.2
>  - Preserved original author of
>    0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
>  - Added Signed-off-by inside both patches.
> Changes v2: rewrited patch 0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
> ---
>  ...anager-fix-build-with-Linux-3.2.0-headers.patch | 30 ++++++++++++++++++
>  ...d-dhcp-fix-build-with-Linux-3.2.0-headers.patch | 37 ++++++++++++++++++++++
>  package/network-manager/Config.in                  |  2 +-
>  3 files changed, 68 insertions(+), 1 deletion(-)
>  create mode 100644 package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
>  create mode 100644 package/network-manager/0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
> 
> diff --git a/package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch b/package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
> new file mode 100644
> index 0000000..49c1996
> --- /dev/null
> +++ b/package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
> @@ -0,0 +1,30 @@
> +From 22b99e3bbb2ca33963e839f12ab95314ab8d9ba9 Mon Sep 17 00:00:00 2001
> +From: Lubomir Rintel <lkundrak@v3.sk>
> +Date: Fri, 15 May 2015 16:37:20 +0200
> +Subject: [PATCH] ppp-manager: fix build with Linux 3.2.0 headers
> +
> +Fixes build with Ubuntu 12.04.
> +
> +In file included from ppp-manager/nm-ppp-manager.c:42:0:
> +/usr/include/linux/if_ppp.h:103:16: error: field 'b' has incomplete type
> +/usr/include/linux/if_ppp.h:108:21: error: field 'b' has incomplete type
> +
> +Signed-off-by: Petr Vorel <petr.vorel@gmail.com>

 Upstream status?

> +---
> + src/ppp-manager/nm-ppp-manager.c | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
> +index e27c82b..d410ebf 100644
> +--- a/src/ppp-manager/nm-ppp-manager.c
> ++++ b/src/ppp-manager/nm-ppp-manager.c
> +@@ -39,6 +39,7 @@
> + #ifndef aligned_u64
> + #define aligned_u64 unsigned long long __attribute__((aligned(8)))
> + #endif
> ++#include <linux/if.h>
> + #include <linux/if_ppp.h>
> +
> + #include "NetworkManagerUtils.h"
> +--
> +2.1.4
[snip]
> diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
> index f6d8564..ae0eb70 100644
> --- a/package/network-manager/Config.in
> +++ b/package/network-manager/Config.in
> @@ -2,7 +2,7 @@ config BR2_PACKAGE_NETWORK_MANAGER
>  	bool "networkmanager"
>  	depends on BR2_USE_MMU # dbus
>  	depends on BR2_PACKAGE_HAS_UDEV
> -	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
> +	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2

 Basically it _may_ also work with lower kernel headers but hasn't been tested,
right? Ideally, it would be nice to do a (build-)test with 2.6.34-ish. Or else,
you could add a comment saying that it could work with lower headers. The
minimal headers version was anyway only introduced to fix an autobuild failure.

 Regards,
 Arnout


>  	depends on BR2_TOOLCHAIN_USES_GLIBC # CLOCK_BOOTTIME, IPTOS_CLASS_*
>  	select BR2_PACKAGE_DHCPCD if !BR2_PACKAGE_DHCP_CLIENT
>  	select BR2_PACKAGE_DBUS
>
Petr Vorel June 24, 2015, 10:56 p.m. UTC | #2
Hi there,

> On 06/22/15 12:43, Petr Vorel wrote:
> > From: Petr Vorel <petr.vorel@gmail.com>

>  "works" as in run-time tested?
I've done some brief tests, I'll do more testing probably this week. Ok, I should have
wait and post the patch after more testing. Anyway I need to get it work even on lower
kernel than 3.2 (obviously some features will be missing, but NetworkManager cannot
crash). Upstream is willing to accept simple patches which fixes behaviour on older
kernels.

>  Upstream status?
Not sure if I understand your question. The patch was taken from upstream.

> > -	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
> > +	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2

>  Basically it _may_ also work with lower kernel headers but hasn't been tested,
> right? Ideally, it would be nice to do a (build-)test with 2.6.34-ish.
Why 2.6.34-ish? The minimum kernel version in toolchain/toolchain-common.in after
BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 is 2.6, which is unspecified.

> Or else, you could add a comment saying that it could work with lower headers. The
> minimal headers version was anyway only introduced to fix an autobuild failure.
Do you mean to keep BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 and mention in "help" lower
versions?

>  Regards,
>  Arnout

Kind regards,
Petr
Arnout Vandecappelle June 25, 2015, 11:17 p.m. UTC | #3
On 06/25/15 00:56, Petr Vorel wrote:
> Hi there,
> 
>> On 06/22/15 12:43, Petr Vorel wrote:
>>> From: Petr Vorel <petr.vorel@gmail.com>
> 
>>  "works" as in run-time tested?
> I've done some brief tests, I'll do more testing probably this week. Ok, I should have
> wait and post the patch after more testing. 

 No, it's a good idea to already post before that. But then it's also a good
idea to mention that you haven't done runtime testing :-)


> Anyway I need to get it work even on lower
> kernel than 3.2 (obviously some features will be missing, but NetworkManager cannot
> crash). Upstream is willing to accept simple patches which fixes behaviour on older
> kernels.

 Well, it's not strictly necessary to do that, just nice to have.

> 
>>  Upstream status?
> Not sure if I understand your question. The patch was taken from upstream.

 Sorry, my bad, the commit sha is indeed at the beginning of the patch.

> 
>>> -	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
>>> +	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
> 
>>  Basically it _may_ also work with lower kernel headers but hasn't been tested,
>> right? Ideally, it would be nice to do a (build-)test with 2.6.34-ish.
> Why 2.6.34-ish? The minimum kernel version in toolchain/toolchain-common.in after
> BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 is 2.6, which is unspecified.

 Indeed, we consider everything pre-3.0 as ancient. 2.6.34 is just a random
pre-3.0 version that I have seen in use recently.

> 
>> Or else, you could add a comment saying that it could work with lower headers. The
>> minimal headers version was anyway only introduced to fix an autobuild failure.
> Do you mean to keep BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 and mention in "help" lower
> versions?

 No, I mean: change it to 3.2 and mention in a comment that it might work on
lower versions. Like:

	# Tested with 3.2, but may even work with earlier versions
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2


 Regards,
 Arnout
Thomas Petazzoni June 30, 2015, 9:11 p.m. UTC | #4
Dear Petr Vorel,

On Mon, 22 Jun 2015 12:43:50 +0200, Petr Vorel wrote:
> From: Petr Vorel <petr.vorel@gmail.com>
> 
> + lower kernel headers dependency
> 
> According to upstream [1], there is no known minimal kernel-version, nor
> minimal required feature-set.
> 
> Experimentally tested, that 1.0.2 is works with 3.2 kernel headers, even
> some features will be missing [2].
> 
> [1] https://mail.gnome.org/archives/networkmanager-list/2015-April/msg00039.html
> [2] https://mail.gnome.org/archives/networkmanager-list/2015-April/msg00041.html
> 
> Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> ---
> Changes v3:
>  - Lower kernel headers dependency to 3.2
>  - Preserved original author of
>    0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
>  - Added Signed-off-by inside both patches.
> Changes v2: rewrited patch 0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
> ---
>  ...anager-fix-build-with-Linux-3.2.0-headers.patch | 30 ++++++++++++++++++
>  ...d-dhcp-fix-build-with-Linux-3.2.0-headers.patch | 37 ++++++++++++++++++++++
>  package/network-manager/Config.in                  |  2 +-
>  3 files changed, 68 insertions(+), 1 deletion(-)
>  create mode 100644 package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
>  create mode 100644 package/network-manager/0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch

Applied after adding a comment in Config.in saying that it may work with
older kernel headers than 3.2, as suggested by Arnout.

Of course, when upstream makes a new release with those patches
integrated, it would be good if you could send a new Buildroot patch to
use this new upstream release.

Thanks a lot!

Thomas
Petr Vorel July 1, 2015, 10:07 a.m. UTC | #5
Dear Thomas Petazzoni,

> Applied after adding a comment in Config.in saying that it may work with
> older kernel headers than 3.2, as suggested by Arnout.
Thanks.

> Of course, when upstream makes a new release with those patches
> integrated, it would be good if you could send a new Buildroot patch to
> use this new upstream release.
Sure, I will.

Kind regards,
Petr
diff mbox

Patch

diff --git a/package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch b/package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
new file mode 100644
index 0000000..49c1996
--- /dev/null
+++ b/package/network-manager/0001-ppp-manager-fix-build-with-Linux-3.2.0-headers.patch
@@ -0,0 +1,30 @@ 
+From 22b99e3bbb2ca33963e839f12ab95314ab8d9ba9 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Fri, 15 May 2015 16:37:20 +0200
+Subject: [PATCH] ppp-manager: fix build with Linux 3.2.0 headers
+
+Fixes build with Ubuntu 12.04.
+
+In file included from ppp-manager/nm-ppp-manager.c:42:0:
+/usr/include/linux/if_ppp.h:103:16: error: field 'b' has incomplete type
+/usr/include/linux/if_ppp.h:108:21: error: field 'b' has incomplete type
+
+Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
+---
+ src/ppp-manager/nm-ppp-manager.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
+index e27c82b..d410ebf 100644
+--- a/src/ppp-manager/nm-ppp-manager.c
++++ b/src/ppp-manager/nm-ppp-manager.c
+@@ -39,6 +39,7 @@
+ #ifndef aligned_u64
+ #define aligned_u64 unsigned long long __attribute__((aligned(8)))
+ #endif
++#include <linux/if.h>
+ #include <linux/if_ppp.h>
+
+ #include "NetworkManagerUtils.h"
+--
+2.1.4
diff --git a/package/network-manager/0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch b/package/network-manager/0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
new file mode 100644
index 0000000..01eefec
--- /dev/null
+++ b/package/network-manager/0002-systemd-dhcp-fix-build-with-Linux-3.2.0-headers.patch
@@ -0,0 +1,37 @@ 
+From 7f84150e9f6aa7e900d70178e0fc0acc6cfba651 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Fri, 15 May 2015 16:38:10 +0200
+Subject: [PATCH] systemd-dhcp: fix build with Linux 3.2.0 headers
+
+Fixes build on Ubuntu 12.04.
+
+systemd/src/libsystemd-network/dhcp-network.c: In function '_bind_raw_socket':
+systemd/src/libsystemd-network/dhcp-network.c:75:17: error: 'BPF_XOR' undeclared (first use in this function)
+systemd/src/libsystemd-network/dhcp-network.c:75:17: note: each undeclared identifier is reported only once for each function it appears in
+make[4]: *** [libsystemd_nm_la-dhcp-network.lo] Error 1
+
+(cherry picked from commit 3811a68389b9277533f2eee8372927ca6238653e)
+
+Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
+---
+ src/dhcp-manager/systemd-dhcp/nm-sd-adapt.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/dhcp-manager/systemd-dhcp/nm-sd-adapt.h b/src/dhcp-manager/systemd-dhcp/nm-sd-adapt.h
+index 6d500f4..f8856a1 100644
+--- a/src/dhcp-manager/systemd-dhcp/nm-sd-adapt.h
++++ b/src/dhcp-manager/systemd-dhcp/nm-sd-adapt.h
+@@ -38,6 +38,11 @@
+
+ #include "nm-logging.h"
+
++/* Missing in Linux 3.2.0, in Ubuntu 12.04 */
++#ifndef BPF_XOR
++#define BPF_XOR 0xa0
++#endif
++
+ static inline guint32
+ _slog_level_to_nm (int slevel)
+ {
+--
+2.1.4
diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
index f6d8564..ae0eb70 100644
--- a/package/network-manager/Config.in
+++ b/package/network-manager/Config.in
@@ -2,7 +2,7 @@  config BR2_PACKAGE_NETWORK_MANAGER
 	bool "networkmanager"
 	depends on BR2_USE_MMU # dbus
 	depends on BR2_PACKAGE_HAS_UDEV
-	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
 	depends on BR2_TOOLCHAIN_USES_GLIBC # CLOCK_BOOTTIME, IPTOS_CLASS_*
 	select BR2_PACKAGE_DHCPCD if !BR2_PACKAGE_DHCP_CLIENT
 	select BR2_PACKAGE_DBUS