Consolidated package for the whole solution


I've got a problem do solve. I've been developing some complex solution that runs on an OpenWrt device for some time. There is one complex service written in C that requires some external libs, some smaller C/C++ written tool application and several bash scripts and config files. Currently the whole solution is spread over eight opkg packages and another three with external libs (libsjon, libmodbus, libmosquitto). It become too complex so I would like to consolidate it into one big opkg package having common configuration file, etc. My question is whether I am able to build a makefile that would contain all those components, or maybe there is better solution for that purpose? Another question - if I wanted to integrate such package in the device firmware can I do it in such a way, that I would be able to further upgrade it using opkg? Any ideas much appreciated.


Your desired result would be against best packaging practices, but if you want it nevertheless - you can do whatever your like.

As the question is vague, the answer cannot be more concrete.

Could you please elaborate?

would a "meta package" suffice ?

one that pulls all the rest of 'em ?

I belive that's what the luci package is.

1 Like

It's not complicated at all.
In the makefile of the core package, list the other 8 packages and 3 libraries as dependencies.
Job done :wink:

Would it be possible to constrain given versions of packages being part of this meta package? For example, we've got meta_package ver 1.0 which consists of "pack_x ver 3.2" and "pack_y ver 4.0".

Now, after some time we've got ver 3.5 and 4.3 versions of those two packages. My point is to have such a configuration that if I write opkg upgrade meta, it will not upgrade those two packages which have higher version number, unless I specify new meta package version say 1.2 which contains 3.5 and 4.3 versions of dependent packages.

I'm not sure whether I put my idea straight :slight_smile:

Before you do anything else you need to decide what are the current release versions of everything. It does not make any sense having such a mish-mash of versions...