On Fri, Oct 8, 2021 at 2:53 PM Nathan Hartman  wrote:
> On Thu, Oct 7, 2021 at 11:51 PM Tomasz CEDRO wrote:
> (..)
> > Can anyone point me to the official `kconfig-frontends` website and
> > source code repository?
> >
> > I can find 28 repositories on GitHub all seems to be outdated forks:
> > https://github.com/search?q=kconfig-frontends
> >
> > One of them is
> > https://github.com/NuttX/tools/tree/master/kconfig-frontends,
> > where I find:
> >
> > This is a snapshot of the kconfig-frontends version 4.11.0.1 tarball taken
> > from http://ymorin.is-a-geek.org/projects/kconfig-frontends.
> >
> > But that server does not respond.
> >
> > Another finding is https://github.com/espressif/kconfig-frontends but
> > that is explicitly a modified version so its a different tool with the
> > same name.
> >
> > I hope NuttX does not have a critical dependency on abandoned
> > unmaintained tool ?
>
>
> Kconfig-frontends is indeed a critical dependency. If you search the
> mailing list archives you'll see that I've talked about this before:
>
> In the past, before we joined the Apache Incubator, all the NuttX repos
> were together in one place and the Tools repo had Kconfig-frontends and
> other tools (including customized cross compilers etc).
>
> When we moved to the Incubator (which is the entry point toward becoming an
> Apache project), we were told that it's against policy to do a hostile fork
> of other projects; the Tools repo contains what are essentially forks of
> other projects, so it stayed at BitBucket while NuttX moved over to ASF.
>
> Now I contend that bringing in the Tools repo is not making a "hostile"
> fork, it's ensuring that tools critical to this project remain available,
> like Kconfig-frontends, which doesn't have to be "unmaintained" -- we can
> maintain it.
>
> Or if someone can propose a better tool.

Hello Nathan and thank you for this quick summary! Fully agree with you :-)

The goal is to make NuttX work "out of the box" on various platforms.
FreeBSD port seems excellent ground for this task, and usually is the
perfect ground for multiplatform verification chceck, this is why I
stick to BSD because it cares about long term maintenance and
compatibility :-)

It seems that Linux users are using Espressif's packages already if
not built by hand [1], so this may be current "upstream" of the
project,  also NuttX could use it as "upstream" not to multiply the
forks and don't add maintenance workload burden:

<quote>
boris-kolpackov commented 4 hours ago

> your repository seems the only last one well maintained and updated, that may 
> be the source origin for the FreeBSD's Port of kconfig-frontends.

FWIW, we maintain a "port" of upstream (i.e., linux) kconfig code with
patches (some backported from this project) to make it work on a wide
variety of platforms (including Windows):

https://github.com/build2-packaging/kconfig/tree/upstream-5.11-rc2

We also packaged the kconfig library (liblkc) and a number of
configurators (conf and qconf) and they build fine on FreeBSD with
byacc: https://queue.stage.build2.org/?builds=liblkc&cf=*freebsd*

</quote>

Alternatively NuttX can switch to `kconfiglib` but:
1. That probably would require some additional work and code base
changes that I understand may not be welcome. Any revolution
eventually eats up its own children.
2. Brings up hard dependency on Python that some people may not like (I heard).
3. Does not work on Windows + MSYS setup this is why Espressif
maintains this project in the first place.

Using Espressif's `kconfig-frontends` as "upstream" seems most
reasonable and backward compatible way :-)

Could anyone please verify if using mentioned "upstream" works well
and does not break anything on existing Linux and Windows setups?


ps/2: "Hostile Fork" is a bit bullshit statement, especially in a
situation when no formal upstream exist. Look at Nordic and Zephyr -
they maintain their own local fork of Zephyr for use with Nordic
chips, there are some stuff available only in that fork, and they will
not share it to the upstream [2] because they say that would be
"hostile fork" quoting exactly "nRF Connect SDK / NCS is a downstream
project and it would not be appropriate to include vendor downstream
details anywhere in the zephyrproject-rtos GitHub organization", what
if far from okay in my eyes because that just means someone does not
want to share back with the upstream (it is the BLE UART
implementation that would work on other chips as well and would be
highly demanded). Depending on the situation people will understand
"hostile fork" statement just to suit their benefit.

[1] https://github.com/espressif/kconfig-frontends/issues/4
[2] 
https://github.com/zephyrproject-rtos/zephyr/issues/35075#issuecomment-840643074

--
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info

Reply via email to