[LEDE-DEV] [PATCH] openvpn: update to 2.4.5

2018-03-02 Thread Magnus Kroken
Signed-off-by: Magnus Kroken 
---
Runtime tested on powerpc/mpc85xx, with mbed TLS.

 package/network/services/openvpn/Makefile  |  6 +++---
 ...100-mbedtls-disable-runtime-version-check.patch |  2 +-
 .../210-build_always_use_internal_lz4.patch| 24 ++
 ...edtls_dont_use_deprecated_sha256_function.patch | 11 --
 4 files changed, 19 insertions(+), 24 deletions(-)
 delete mode 100644 
package/network/services/openvpn/patches/300-mbedtls_dont_use_deprecated_sha256_function.patch

diff --git a/package/network/services/openvpn/Makefile 
b/package/network/services/openvpn/Makefile
index ec48e734ff..bab426ac58 100644
--- a/package/network/services/openvpn/Makefile
+++ b/package/network/services/openvpn/Makefile
@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openvpn
 
-PKG_VERSION:=2.4.4
-PKG_RELEASE:=2
+PKG_VERSION:=2.4.5
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=\
https://build.openvpn.net/downloads/releases/ \
https://swupdate.openvpn.net/community/releases/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=96cd1b8fe1e8cb2920f07c3fd3985faea756e16fdeebd11d3e146d5bd2b04a80
+PKG_HASH:=43c0a363a332350f620d1cd93bb431e082bedbc93d4fb872f758650d53c1d29e
 
 
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Felix Fietkau 
diff --git 
a/package/network/services/openvpn/patches/100-mbedtls-disable-runtime-version-check.patch
 
b/package/network/services/openvpn/patches/100-mbedtls-disable-runtime-version-check.patch
index 8209bca4f7..5608fa4430 100644
--- 
a/package/network/services/openvpn/patches/100-mbedtls-disable-runtime-version-check.patch
+++ 
b/package/network/services/openvpn/patches/100-mbedtls-disable-runtime-version-check.patch
@@ -1,6 +1,6 @@
 --- a/src/openvpn/ssl_mbedtls.c
 +++ b/src/openvpn/ssl_mbedtls.c
-@@ -1336,7 +1336,7 @@ const char *
+@@ -1394,7 +1394,7 @@ const char *
  get_ssl_library_version(void)
  {
  static char mbedtls_version[30];
diff --git 
a/package/network/services/openvpn/patches/210-build_always_use_internal_lz4.patch
 
b/package/network/services/openvpn/patches/210-build_always_use_internal_lz4.patch
index d49e0bf9ec..b3eb7c742a 100644
--- 
a/package/network/services/openvpn/patches/210-build_always_use_internal_lz4.patch
+++ 
b/package/network/services/openvpn/patches/210-build_always_use_internal_lz4.patch
@@ -1,15 +1,17 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1068,62 +1068,15 @@ dnl
+@@ -1077,68 +1077,15 @@ dnl
  AC_ARG_VAR([LZ4_CFLAGS], [C compiler flags for lz4])
  AC_ARG_VAR([LZ4_LIBS], [linker flags for lz4])
  if test "$enable_lz4" = "yes" && test "$enable_comp_stub" = "no"; then
 -if test -z "${LZ4_CFLAGS}" -a -z "${LZ4_LIBS}"; then
 -  # if the user did not explicitly specify flags, try to autodetect
 -  PKG_CHECK_MODULES([LZ4],
--[liblz4 >= 1.7.1],
+-[liblz4 >= 1.7.1 liblz4 < 100],
 -[have_lz4="yes"],
--[] # If this fails, we will do another test next
+-[LZ4_LIBS="-llz4"] # If this fails, we will do 
another test next.
+-   # We also add set LZ4_LIBS 
otherwise the
+-   # linker will not know about the 
lz4 library
 -  )
 -fi
 
@@ -47,20 +49,24 @@
 -  fi
 -fi
 -
--# if LZ4_LIBS is set, we assume it will work, otherwise test
--if test -z "${LZ4_LIBS}"; then
+-# Double check we have a few needed functions
+-if test "${have_lz4}" = "yes" ; then
 -  AC_CHECK_LIB([lz4],
--   [LZ4_compress],
--   [LZ4_LIBS="-llz4"],
+-   [LZ4_compress_default],
+-   [],
+-   [have_lz4="no"])
+-  AC_CHECK_LIB([lz4],
+-   [LZ4_decompress_safe],
+-   [],
 -   [have_lz4="no"])
 -fi
 -
 -if test "${have_lz4}" != "yes" ; then
--  AC_MSG_RESULT([ usuable LZ4 library or header not found, using 
version in src/compat/compat-lz4.*])
+-  AC_MSG_RESULT([ usable LZ4 library or header not found, using 
version in src/compat/compat-lz4.*])
 -  AC_DEFINE([NEED_COMPAT_LZ4], [1], [use copy of LZ4 source in compat/])
 -  LZ4_LIBS=""
 -fi
-+AC_MSG_RESULT([   usuable LZ4 library or header not found, using 
version in src/compat/compat-lz4.*])
++AC_MSG_RESULT([   usable LZ4 library or header not found, using 
version in src/compat/compat-lz4.*])
 +AC_DEFINE([NEED_COMPAT_LZ4], [1], [use copy of LZ4 source in compat/])
 +LZ4_LIBS=""
  OPTIONAL_LZ4_CFLAGS="${LZ4_CFLAGS}"
diff --git 
a/package/network/services/openvpn/patches/300-mbedtls_dont_use_deprecated_sha256_function.patch
 
b/package/network/services/openvpn/patches/300-mbedtls_dont_use_deprecated_sha256_function.patch
deleted file mode 100644

[LEDE-DEV] [PATCH] kernel: bump 4.9 to 4.9.85

2018-03-02 Thread Magnus Kroken
Signed-off-by: Magnus Kroken 
---
Runtime tested on powerpc/mpc85xx.

 include/kernel-version.mk  |  4 +--
 .../patches-4.9/432-spi-rb4xx-spi-driver.patch |  2 +-
 .../patches-4.9/433-spi-rb4xx-cpld-driver.patch|  2 +-
 .../patches-4.9/435-spi-vsc7385_driver.patch   |  2 +-
 .../patches-4.9/950-0031-Add-dwc_otg-driver.patch  |  2 +-
 ...configuration-and-device-tree-differences.patch |  2 +-
 .../backport-4.9/011-kbuild-export-SUBARCH.patch   |  2 +-
 .../090-net-generalize-napi_complete_done.patch|  4 +--
 .../generic/hack-4.9/202-reduce_module_size.patch  |  2 +-
 .../generic/hack-4.9/207-disable-modorder.patch|  4 +--
 .../linux/generic/hack-4.9/220-gc_sections.patch   |  4 +--
 .../pending-4.9/201-extra_optimization.patch   |  2 +-
 .../pending-4.9/812-pci-dwc-fix-enumeration.patch  |  2 --
 .../pending-4.9/890-uart_optional_sysrq.patch  |  2 +-
 ...0074-ipq806x-usb-Control-USB-master-reset.patch |  4 +--
 ...ipq4019-Add-IPQ4019-USB-HS-SS-PHY-drivers.patch |  2 +-
 ...gister-qca-ipq4019-dwc3-in-dwc3-of-simple.patch |  2 +-
 ...ssc-add-support-for-Lantiq-SSC-SPI-contro.patch |  2 +-
 .../patches-4.9/702-pci-support-layerscape.patch   |  2 +-
 .../patches-4.9/817-usb-support-layerscape.patch   |  4 +--
 ...0042-SPI-ralink-add-Ralink-SoC-spi-driver.patch |  2 +-
 .../patches-4.9/0043-spi-add-mt7621-support.patch  |  2 +-
 ...rm64-sunxi-always-enable-reset-controller.patch | 39 --
 ...g-Remove-the-use-of-rational-computations.patch |  2 +-
 .../0007-clk-sunxi-ng-Add-A64-clocks.patch |  2 +-
 25 files changed, 29 insertions(+), 70 deletions(-)
 delete mode 100644 
target/linux/sunxi/patches-4.9/0001-arm64-sunxi-always-enable-reset-controller.patch

diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 4e23f0de1d..7c15207bf5 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -4,12 +4,12 @@ LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-4.4 = .112
-LINUX_VERSION-4.9 = .82
+LINUX_VERSION-4.9 = .85
 LINUX_VERSION-4.14 = .23
 
 LINUX_KERNEL_HASH-3.18.71 = 
5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-4.4.112 = 
544b42cbeed022896115c76a18fc97b4507d5b41d7ac0ce1dce9afd6ffd11ecd
-LINUX_KERNEL_HASH-4.9.82 = 
4b710b2701daafeb8e4db4c06f0ed3e62a6d20d6213a4927769c89ae42a9b180
+LINUX_KERNEL_HASH-4.9.85 = 
80fe13eee45bd0d5aee6193281dc85dad14500e27d238dc45ebcbcc77cd965c1
 LINUX_KERNEL_HASH-4.14.23 = 
9a97ba2baaed9aa7711524ae3b9179579efb902d76a814a916aefe5712ca
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1
diff --git a/target/linux/ar71xx/patches-4.9/432-spi-rb4xx-spi-driver.patch 
b/target/linux/ar71xx/patches-4.9/432-spi-rb4xx-spi-driver.patch
index e896d0bdf4..5428d3d1c2 100644
--- a/target/linux/ar71xx/patches-4.9/432-spi-rb4xx-spi-driver.patch
+++ b/target/linux/ar71xx/patches-4.9/432-spi-rb4xx-spi-driver.patch
@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -533,6 +533,12 @@ config SPI_QUP
+@@ -534,6 +534,12 @@ config SPI_QUP
  This driver can also be built as a module.  If so, the module
  will be called spi_qup.
  
diff --git a/target/linux/ar71xx/patches-4.9/433-spi-rb4xx-cpld-driver.patch 
b/target/linux/ar71xx/patches-4.9/433-spi-rb4xx-cpld-driver.patch
index c44acab32e..b1cd6a545b 100644
--- a/target/linux/ar71xx/patches-4.9/433-spi-rb4xx-cpld-driver.patch
+++ b/target/linux/ar71xx/patches-4.9/433-spi-rb4xx-cpld-driver.patch
@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -761,6 +761,13 @@ config SPI_TLE62X0
+@@ -762,6 +762,13 @@ config SPI_TLE62X0
  sysfs interface, with each line presented as a kind of GPIO
  exposing both switch control and diagnostic feedback.
  
diff --git a/target/linux/ar71xx/patches-4.9/435-spi-vsc7385_driver.patch 
b/target/linux/ar71xx/patches-4.9/435-spi-vsc7385_driver.patch
index f9f1f7a1e5..fe6acde70a 100644
--- a/target/linux/ar71xx/patches-4.9/435-spi-vsc7385_driver.patch
+++ b/target/linux/ar71xx/patches-4.9/435-spi-vsc7385_driver.patch
@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -768,6 +768,11 @@ config SPI_RB4XX_CPLD
+@@ -769,6 +769,11 @@ config SPI_RB4XX_CPLD
  SPI driver for the Xilinx CPLD chip present on the
  MikroTik RB4xx boards.
  
diff --git 
a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch 
b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
index 8569e4a83d..ae90bea77f 100644
--- a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
@@ -4629,7 +4629,7 @@ Signed-off-by: Noralf Trønnes 
 +module_exit(fsg_cleanup);
 --- a/drivers/usb/host/Kconfig
 +++ b/drivers/usb/host/Kconfig
-@@ -762,6 +762,19 @@ config USB_HWA_HCD
+@@ -754,6 +754,19 @@ config USB_HWA_HCD
  

Re: [LEDE-DEV] [PATCH] kernel: bump 4.4 to 4.4.119

2018-03-02 Thread Rosen Penev
On Thu, Mar 1, 2018 at 11:31 PM, Stijn Segers  wrote:
> This bumps the 4.4. kernel in master to 4.4.119.
> Includes more Meltdown & Spectre mitigation.
>
> * Refresh patches.
> * Refresh x86/config for RETPOLINE.
> * Deleted 8049-PCI-layerscape-Add-fsl-ls2085a-pcie-compatible-ID.patch 
> (accepted upstream)
> * Deleted 8050-PCI-layerscape-Fix-MSG-TLP-drop-setting.patch (accepted 
> upstream)
> * Deleted 650-pppoe_header_pad.patch (does not apply anymore (code was 
> replaced)).
>
> Bumps from 4.4.112 to 4.4.115 were handled by Kevin Darbyshire-Bryant.
>
> Compile-tested on: ar71xx & oxnas.
>
Tested-by: Rosen Penev 
> Signed-off-by: Stijn Segers 
> ---
>  include/kernel-version.mk  |  4 +-
>  .../004-register_gpio_driver_earlier.patch |  5 +-
>  .../patches-4.4/910-unaligned_access_hacks.patch   | 14 ++--
>  ...d-set-initial-ECC-params-based-on-info-fr.patch |  2 +-
>  5-03-mtd-nand-spi-nor-assign-MTD-of_node.patch |  2 +-
>  ...4-mtd-nand-convert-to-nand_set_flash_node.patch |  4 +-
>  ...nd-drop-unnecessary-partition-parser-data.patch | 12 ++--
>  .../pending-4.4/001-mtdsplit_backport.patch|  2 +-
>  .../051-0005-ovl-proper-cleanup-of-workdir.patch   |  2 +-
>  .../pending-4.4/201-extra_optimization.patch   |  2 +-
>  .../pending-4.4/202-reduce_module_size.patch   |  2 +-
>  .../generic/pending-4.4/204-module_strip.patch | 19 ++---
>  .../generic/pending-4.4/208-disable-modorder.patch |  4 +-
>  .../generic/pending-4.4/221-module_exports.patch   |  2 +-
>  ...bi-auto-create-ubiblock-device-for-rootfs.patch |  4 +-
>  ...-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch |  4 +-
>  ...610-netfilter_match_bypass_default_checks.patch | 14 ++--
>  .../generic/pending-4.4/650-pppoe_header_pad.patch | 20 --
>  .../666-Add-support-for-MAP-E-FMRs-mesh-mode.patch | 40 +--
>  ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 10 +--
>  .../generic/pending-4.4/834-ledtrig-libata.patch   |  8 +--
>  .../pending-4.4/901-debloat_sock_diag.patch|  2 +-
>  .../generic/pending-4.4/902-debloat_proc.patch |  2 +-
>  .../generic/pending-4.4/995-mangle_bootargs.patch  |  2 +-
>  ...mtd-backport-v4.7-0day-patches-from-Boris.patch | 81 
> ++
>  ...0074-mtd-nand-import-nand_hw_control_init.patch |  6 +-
>  .../linux/oxnas/patches-4.4/800-oxnas-ehci.patch   |  2 +-
>  .../linux/oxnas/patches-4.4/999-libata-hacks.patch |  4 +-
>  28 files changed, 128 insertions(+), 147 deletions(-)
>  delete mode 100644 
> target/linux/generic/pending-4.4/650-pppoe_header_pad.patch
>
> diff --git a/include/kernel-version.mk b/include/kernel-version.mk
> index 293100ecf8..0f90e80cdd 100644
> --- a/include/kernel-version.mk
> +++ b/include/kernel-version.mk
> @@ -3,12 +3,12 @@
>  LINUX_RELEASE?=1
>
>  LINUX_VERSION-3.18 = .71
> -LINUX_VERSION-4.4 = .112
> +LINUX_VERSION-4.4 = .119
>  LINUX_VERSION-4.9 = .82
>  LINUX_VERSION-4.14 = .20
>
>  LINUX_KERNEL_HASH-3.18.71 = 
> 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
> -LINUX_KERNEL_HASH-4.4.112 = 
> 544b42cbeed022896115c76a18fc97b4507d5b41d7ac0ce1dce9afd6ffd11ecd
> +LINUX_KERNEL_HASH-4.4.119 = 
> 4f1f9b7b6b2ee93597239d89bb3b6b60c71ebd8c91d706fadd36f515c68443e6
>  LINUX_KERNEL_HASH-4.9.82 = 
> 4b710b2701daafeb8e4db4c06f0ed3e62a6d20d6213a4927769c89ae42a9b180
>  LINUX_KERNEL_HASH-4.14.20 = 
> 4ab7f42aa6af9c1e3b00cba6b1fa305a87407666aaa2fae555f7fbdaafb6d292
>
> diff --git 
> a/target/linux/ar71xx/patches-4.4/004-register_gpio_driver_earlier.patch 
> b/target/linux/ar71xx/patches-4.4/004-register_gpio_driver_earlier.patch
> index 0c07cb18c7..639e82c245 100644
> --- a/target/linux/ar71xx/patches-4.4/004-register_gpio_driver_earlier.patch
> +++ b/target/linux/ar71xx/patches-4.4/004-register_gpio_driver_earlier.patch
> @@ -3,7 +3,7 @@ from mach files succeed.
>
>  --- a/drivers/gpio/gpio-ath79.c
>  +++ b/drivers/gpio/gpio-ath79.c
> -@@ -202,4 +202,8 @@ static struct platform_driver ath79_gpio
> +@@ -202,7 +202,11 @@ static struct platform_driver ath79_gpio
> .probe = ath79_gpio_probe,
>   };
>
> @@ -13,3 +13,6 @@ from mach files succeed.
>  +  return platform_driver_register(_gpio_driver);
>  +}
>  +postcore_initcall(ath79_gpio_init);
> +
> + MODULE_DESCRIPTION("Atheros AR71XX/AR724X/AR913X GPIO API support");
> + MODULE_LICENSE("GPL v2");
> diff --git a/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch 
> b/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
> index a8d8c15c3b..72d964df63 100644
> --- a/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
> +++ b/target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
> @@ -310,7 +310,7 @@
> if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
>  --- a/net/ipv6/ip6_tunnel.c
>  +++ b/net/ipv6/ip6_tunnel.c
> -@@ -1410,7 +1410,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
> +@@ -1307,7 +1307,7 @@ 

Re: [LEDE-DEV] [PATCH] metadata: compile dependencies only when the package is selected

2018-03-02 Thread Yousong Zhou
On 2 March 2018 at 17:19, Felix Fietkau  wrote:
> On 2018-03-02 10:07, Yousong Zhou wrote:
>> On 1 March 2018 at 17:36, Felix Fietkau  wrote:
>>> To give you a better example, I just took another look at our packages
>>> and found one that would directly be affected by your change:
>>>
>>> Take a look at libs/elektra/Makefile in packages.git
>>> It has various plugins with their own dependencies.
>>> One depends on boost, one on python, one on openssl, etc.
>>> No PKG_BUILD_DEPENDS or PKG_CONFIG_DEPENDS.
>>>
>>> Let's run the same scenario as above:
>>> - do a clean build with just libelektra-core selected
>>> - select libelektra-boost and run make again
>>>
>>> Now there's two possibilities. Either the build fails on the first round
>>> already, because the package was expecting to be built with boost, which
>>> isn't available.
>>> Or, the build fails on the second round because the first one had built
>>> elektra without the boost plugins and there's nothing that triggers a
>>> rebuild.
>>
>> I see.  I can fix the 2nd case by letting STAMP_CONFIGURED depend on
>> selection state of subpackages.  It's indeed pain if packagers need to
>> guess whether they should put each CONFIG_PACKAGE_xx symbol into
>> PKG_CONFIG_DEPENDS.
> That will not work in all cases. For some packages, using
> STAMP_CONFIGURED might not be enough (it might cache previous values).
> Different packages need different ways of dealing with this, which is a
> strong reason to not use this patch and keep the behavior opt-in (either
> via the existing conditional depend syntax, or by adding some new
> syntactic sugar).
>

Well, I thought for autotools we the autoreconf fixup can workaround
this, but it seems maybe the situation is just not that simple ;)

>> As for PKG_BUILD_DEPENDS, if any error happens it's not "random"
>> right?  Can we be more strict here by requiring packagers to put
>> correct values for this symbol?
> I don't know of any case where we need to add PKG_BUILD_DEPENDS, it
> could only serve as a workaround for breakage caused by your patch. But
> I don't think we should go that route.
>
> - Felix

Got it.  At least the current behaviour provides a consistent
configure environment for each package.  That's a good feature to
have.

Thanks,
yousong

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH] metadata: compile dependencies only when the package is selected

2018-03-02 Thread Yousong Zhou
On 1 March 2018 at 17:36, Felix Fietkau  wrote:
> On 2018-03-01 03:48, Yousong Zhou wrote:
>> On 28 February 2018 at 18:58, Felix Fietkau  wrote:
>>> On 2018-02-28 11:48, Yousong Zhou wrote:
 On 28 February 2018 at 16:13, Felix Fietkau  wrote:
> On 2018-02-28 06:07, Yousong Zhou wrote:
>> This is intended to reduce build time for situations like the following
>> where python and python-six and their dependencies could still be built
>> as long as any subpackage within the srcpackage was selected regardless
>> of the selection state of openvswitch-python
>>
>> define Package/openvswitch-python
>>   ...
>>   DEPENDS:=+python +python-six
>> endef
>>
>> Previously we work around this by specifying the dependency as
>> +PACKAGE_openvswitch-python:python, which is unintuitive
>>
>> Signed-off-by: Yousong Zhou 
> The current behavior is intentional. The idea is that many packages
> currently do not use PKG_CONFIG_DEPENDS properly, or specify enable or
> disable of extra library support via configure arguments.
>
> This means that if the dependency depends on the package selection, we
> will get a lot of random package build failures depending on the build
> order.
>

 Hi Felix, can you describe a concrete example where failure can
 happen?  PKG_CONFIG_DEPENDS and the change here seems orthogonal to
 each other.
>>> Let's take the openvswitch package as an example. If you modify it to
>>> remove the PKG_CONFIG_DEPENDS and PKG_BUILD_DEPENDS, theoretically the
>>> following scenario could happen:
>>>
>>> You make a clean build with openvswitch-python and python itself not
>>> selected. Since python doesn't get built, openvswitch detects that
>>> python is not available and can't build its language binding.
>>> Now you decide that you want python support after all, so you select
>>> openvswitch-python and run make again.
>>> It won't rebuild anything in openvswitch, since no stampfiles are
>>> affected, it will just try to package openvswitch-python.
>>> This will now fail, because the openvswitch-python package bindings
>>> could not be built the first time around.
>>
>> Current openvswitch does not have this issue as it explicitly selects
>> "+python" for openvswitch-python.  That put aside, even if the said
>> situation happened where openvswitch-python does not depends on or
>> select python, it's a flaw in the packaging process that will affect
>> later usage when e.g. installing it with openvswitch-python as users
>> will expect the dependency should already be in place.
> I think you might be missing the point here. I'm not saying that
> openvswitch is affected now. I'm saying it would be affected if it
> wasn't using PKG_CONFIG_DEPENDS/PKG_BUILD_DEPENDS. That's why this patch
> and the use of PKG_CONFIG_DEPENDS is not orthogonal:
>
> If you remove PKG_CONFIG_DEPENDS and PKG_BUILD_DEPENDS from it, here's
> the sequence that would lead to a build error:
>
> - Make a clean build with just openvswitch selected (NOT
> openvswitch-python or python itself).
> - After the build is done, select openvswitch-python and run make again.
>
> After the first round, openvswitch will have been built without python
> present.
> On the second round, it won't be rebuilt, so the python plugins will be
> missing.
>
> These config changes right now only work because PKG_CONFIG_DEPENDS is
> set properly.
>
>>> There are several other packages that have support for plugins that
>>> depend on various libraries. If the maintainers of those packages are
>>> not careful about either handling reconfiguration, or specifying
>>> everything as build dependencies, you can get spurious rebuild bugs like
>>> this.
>>
>> If you meat situations like "+CONFIG_openvpn_use_mbedtls:libmbedtls
>> +CONFIG_openvpn_use_openssl:libopenssl" where packagers were expected
>> to add these two "CONFIG_openvpn_use_xx" symbols to
>> PKG_CONFIG_DEPENDS.
>>
>> The suggested change here won't worse the situation: as long as
>> openvpn got selected, these libmbedtls and libopenssl would still have
>> their chance to be built.  Whether re-configure should happen depends
>> solely on PKG_CONFIG_DEPENDS.  It should still work as before even in
>> the situation where users switched from use_mbedtls to use_openssl in
>> which case libopenssl will be rebuilt and  it won't intervene with
>> configure and use of the new lib.  That's why I think the change is
>> orthogonal to the reconfigure issue.  Please correct me if I am wrong
>> or missing something.
> openvpn is a bad example, because it uses build variants, where you have
> separate builds (and build dirs) for openssl and for mbedtls.
>
> To give you a better example, I just took another look at our packages
> and found one that would directly be affected by your change:
>
> Take a look at libs/elektra/Makefile in 

Re: [LEDE-DEV] [PATCH] metadata: compile dependencies only when the package is selected

2018-03-02 Thread Felix Fietkau
On 2018-03-02 10:07, Yousong Zhou wrote:
> On 1 March 2018 at 17:36, Felix Fietkau  wrote:
>> To give you a better example, I just took another look at our packages
>> and found one that would directly be affected by your change:
>>
>> Take a look at libs/elektra/Makefile in packages.git
>> It has various plugins with their own dependencies.
>> One depends on boost, one on python, one on openssl, etc.
>> No PKG_BUILD_DEPENDS or PKG_CONFIG_DEPENDS.
>>
>> Let's run the same scenario as above:
>> - do a clean build with just libelektra-core selected
>> - select libelektra-boost and run make again
>>
>> Now there's two possibilities. Either the build fails on the first round
>> already, because the package was expecting to be built with boost, which
>> isn't available.
>> Or, the build fails on the second round because the first one had built
>> elektra without the boost plugins and there's nothing that triggers a
>> rebuild.
> 
> I see.  I can fix the 2nd case by letting STAMP_CONFIGURED depend on
> selection state of subpackages.  It's indeed pain if packagers need to
> guess whether they should put each CONFIG_PACKAGE_xx symbol into
> PKG_CONFIG_DEPENDS.
That will not work in all cases. For some packages, using
STAMP_CONFIGURED might not be enough (it might cache previous values).
Different packages need different ways of dealing with this, which is a
strong reason to not use this patch and keep the behavior opt-in (either
via the existing conditional depend syntax, or by adding some new
syntactic sugar).

> As for PKG_BUILD_DEPENDS, if any error happens it's not "random"
> right?  Can we be more strict here by requiring packagers to put
> correct values for this symbol?
I don't know of any case where we need to add PKG_BUILD_DEPENDS, it
could only serve as a workaround for breakage caused by your patch. But
I don't think we should go that route.

- Felix

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [PATCH hauke/kernel-4.14-sunxi 0/4] add LEDE support for NanoPi NEO Plus2 board

2018-03-02 Thread Antony Antony
Hi Hauke,

I am glad to see you are testig "NanoPi Neo Plus2" support in OpenWRT.
Here is a patch instead of b7a1aa4df2a983, with Gigabit Ethernet support.

https://git.openwrt.org/?p=openwrt/staging/hauke.git;a=blob;f=target/linux/sunxi/patches-4.14/061-arm-dts-sun50i-support-for-nanopi-neo-plus2-board.patch;h=535c8b6d1f816480eb2938f54e520f7b4311b970;hb=b7a1aa4df2a9834bb7339712670abbe1a05dc01c

do not have emac node.

regards,
-antony

On Fri, Dec 29, 2017 at 01:53:46PM +0100, Hauke Mehrtens wrote:
> Hi antony,
> 
> On 12/28/2017 06:21 PM, Antony Antony wrote:
> > Hi Hauke,
> > 
> > This will add initial LEDE support for a new board, NanoPi NEO Plus2 board.
> > 
> > LEDE menu options, u-boot, and kernel DT files. The patches are against 
> > hauke/kernel-4.14-sunxi branch.
> 
> Ok this is my development branch, now I send the patches to the list.
> 
> > The patches are in upstream.
> > Kernel DT initial support is in 4.15 and Gigabit support is queued for 4.16.
> > u-boot support is #master, it will be in 2018.01
> 
> You split the patches in a strange way.
> I would suggest to have only two patches, one adding the changes needed
> for U-Boot and one for the kernel and image build. Your current split
> will have problems with git bisect when only your first patch is applied.
> 
> Otherwise these patches are looking good.
> 
> > regards,
> > -antony
> > 
> > Antony Antony (4):
> >   sunxi: add support for NanoPi NEO Plus2 board
> >   sunxi: add u-boot DT for NanoPi NEO Plus2 board
> >   sunxi: add DT node, dwmac ethernet for Nano Pi Neo Plus2
> >   sunxi: add kernel DT for NanoPi NEO Plus2 board
> > 
> >  package/boot/uboot-sunxi/Makefile  |   9 +
> >  .../210-add-sunxi50i-nanopi-neo-plus2.patch| 176 
> >  target/linux/sunxi/image/cortex-a53.mk |  10 +
> >  ...sun50i-support-for-nanopi-neo-plus2-board.patch | 229 
> > +
> >  ...-dts-sun50i-nanopi-neo-plus2-add-ethernet.patch |  46 +
> >  5 files changed, 470 insertions(+)
> >  create mode 100644 
> > package/boot/uboot-sunxi/patches/210-add-sunxi50i-nanopi-neo-plus2.patch
> >  create mode 100644 
> > target/linux/sunxi/patches-4.14/061-arm-dts-sun50i-support-for-nanopi-neo-plus2-board.patch
> >  create mode 100644 
> > target/linux/sunxi/patches-4.14/062-arm-dts-sun50i-nanopi-neo-plus2-add-ethernet.patch
> > 
>From 1edbee6871ac4858265ebce7160f6d24a7ec1b81 Mon Sep 17 00:00:00 2001
From: Antony Antony 
Date: Fri, 2 Mar 2018 11:05:52 +0100
Subject: [PATCH] sunxi: add kernel DT for NanoPi NEO Plus2 board

Linux Kernel upstream commits  d73413058, 27d7f9297

Signed-off-by: Antony Antony 

diff --git 
a/target/linux/sunxi/patches-4.14/061-arm-dts-sun50i-support-for-nanopi-neo-plus2-board.patch
 
b/target/linux/sunxi/patches-4.14/061-arm-dts-sun50i-support-for-nanopi-neo-plus2-board.patch
new file mode 100644
index 00..69b6955338
--- /dev/null
+++ 
b/target/linux/sunxi/patches-4.14/061-arm-dts-sun50i-support-for-nanopi-neo-plus2-board.patch
@@ -0,0 +1,247 @@
+From 54cc3330c2334a0cea8cafc105a29c5d67f9fd32 Mon Sep 17 00:00:00 2001
+From: Antony Antony 
+Date: Fri, 2 Mar 2018 10:50:48 +0100
+Subject: [PATCH] arm64: allwinner: h5: add NanoPi NEO Plus2 DT support
+
+Add initial DT for NanoPi NEO Plus2 by FriendlyARM
+- Allwinner quad core H5 Cortex A53 with an ARM Mali-450MP GPU
+- 1 GB DDR3 RAM
+- 8GB eMMC flash (Samsung KLM8G1WEPD-B031)
+- micro SD card slot
+- Gigabit Ethernet (external RTL8211E-VB-CG chip)
+- 802.11 b/g/n WiFi, Bluetooth 4.0 (Ampak AP6212A module)
+- 2x USB 2.0 host ports & 2x USB via headers
+
+Kernel 4.15 commit d7341305863b
+Kernel 4.16 commit 27d7f9297027
+
+Signed-off-by: Antony Antony 
+
+diff --git a/arch/arm64/boot/dts/allwinner/Makefile 
b/arch/arm64/boot/dts/allwinner/Makefile
+index ff35e18..16fa7b9 100644
+--- a/arch/arm64/boot/dts/allwinner/Makefile
 b/arch/arm64/boot/dts/allwinner/Makefile
+@@ -9,6 +9,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb
+ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb
++dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb
+
+ always:= $(dtb-y)
+ subdir-y  := $(dts-dirs)
+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts 
b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
+new file mode 100644
+index 000..01dace4
+--- /dev/null
 b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
+@@ -0,0 +1,210 @@
++/*
++ * Copyright (C) 2017 Antony Antony 
++ * Copyright (C) 2016 ARM Ltd.
++ *
++ * This file is dual-licensed: you can use it either under the terms
++ * of the GPL or the X11 license, at your option. Note that this dual
++ * licensing only applies to this file, and not this project as a
++ * whole.
++ *