Image with hardware support from master branch, but software from v19.07.3?

Hey, I'm trying to build an image using the master branch because it has support for my hardware (TP-Link RE200v3), but I want everything else to be like 19.07.3 in the hopes that it'd provide greater stability, and the ability to install new packages for more than 24h.

Is this even possible? I was trying to clone master and then changing feeds.conf.default, but I keep getting a missing dependency message on either ./scripts/feeds update -a or ./scripts/feeds update -a saying that package X is dependent on Y 'which does not exist'. I'm using -a and default configuration, so I don't even understand how that can happen.

What am I doing wrong here? Am I fundamentally misunderstanding something about how the build system works?

an example error (only 2-3 dependencies 'don't exist' but it seems like a dozen packages are dependent on them) :

WARNING: Makefile 'package/feeds/packages/collectd/Makefile' has a dependency on 'libiptc', which does not exist

That's not possible the way you are trying to do it. Basically, you should backport the commit that added support for your hardware to the 19.07 branch. Furthermore, there are no guarantees that this will work well, since it might also depend on stuff like newer WiFi drivers in the master branch, forcing you to backport those commits as well.

1 Like

The only reasonable answer to this is a firm 'no' - but, the source is at your fingertips, the sky (and your abilities) is the limit.

However, there is no inherent compatibility between branches, neither binary nor on the source level (for size and sanity reasons backwards compatibility is kept to a minimum and forwards compatibility doesn't exist). Branches are by definition only tested in their natural habitat, among themselves, don't expect any stability once you mix them around.

That's actually what I tried first. I cloned and switched to tags/v19.07.3 and tried adding the changes from this:

As I proceeded to make the changes, I noticed that the directory structure for target/linux/ramips/mt76x8/ is different, so I'm not sure that it's just a simple copy-paste. The 01_leds for example is in target/linux/ramips/base-files/etc/board.d/01_leds in v19.07.3 instead of target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds as in master. Also, the master version has . /lib/functions/ at the top, so I'm unclear on whether that's going to cause problems.