I'd like to install kmod, it's only 35Kb bigger. opkg install fails as it tries to replace ubox's files. OK, but I can't build it with imagebuilder:
% make image PROFILE=miwifi-mini PACKAGES="-ubox kmod
...
Collected errors:
* check_data_file_clashes: Package ubox wants to install file /srv/moo-x_share/sergio/projects/all/outerface/openwrt/imagebuilder/openwrt-imagebuilder-19.07.1-ramips-mt7620.Linux-x86_64/build_dir/target-mipsel_24kc_musl/root-ramips/sbin/insmod
But that file is already provided by package * kmod
* check_data_file_clashes: Package ubox wants to install file /srv/moo-x_share/sergio/projects/all/outerface/openwrt/imagebuilder/openwrt-imagebuilder-19.07.1-ramips-mt7620.Linux-x86_64/build_dir/target-mipsel_24kc_musl/root-ramips/sbin/lsmod
But that file is already provided by package * kmod
* check_data_file_clashes: Package ubox wants to install file /srv/moo-x_share/sergio/projects/all/outerface/openwrt/imagebuilder/openwrt-imagebuilder-19.07.1-ramips-mt7620.Linux-x86_64/build_dir/target-mipsel_24kc_musl/root-ramips/sbin/modinfo
But that file is already provided by package * kmod
* check_data_file_clashes: Package ubox wants to install file /srv/moo-x_share/sergio/projects/all/outerface/openwrt/imagebuilder/openwrt-imagebuilder-19.07.1-ramips-mt7620.Linux-x86_64/build_dir/target-mipsel_24kc_musl/root-ramips/sbin/modprobe
But that file is already provided by package * kmod
* check_data_file_clashes: Package ubox wants to install file /srv/moo-x_share/sergio/projects/all/outerface/openwrt/imagebuilder/openwrt-imagebuilder-19.07.1-ramips-mt7620.Linux-x86_64/build_dir/target-mipsel_24kc_musl/root-ramips/sbin/rmmod
But that file is already provided by package * kmod
* opkg_install_cmd: Cannot install package base-files.
First of all I want to see module parameters with modinfo, also I want to be able to say modprobe -r and rmmod -f. What is the problem to replace ubox with kmod?
Because at least one other very important package, named procd, depends on ubox.
On a running openwrt system you should be able to force install the package kmod without first removing ubox. You should try this...
I don't know if this is possible with the image builder.
Because the utilities in busybox conflict with the utilities of the same name in the kmod package as you have already noted in the original post.
So removing kmod in the busybox config builds busybox without the kmod tools and thus lets the kmod package and the busybox package be installed with no conflicts.
base-files depends on procd that depends on ubox, it's not clear howto removing kmod in the busybox config helps with this dependencies, anyway it's not that I want: kmod is already packaged I'd just like to install it, not rebuild the whole system.
I still have busybox installed. That's the whole point. It's just the kmod tools that are deselected in the busybox package configuration, so all other busybox utilities are there and the procd dependency is satisfied. The kmod piece is satisfied by kmod-tools.
You don't need to rebuild the system. Just build a new busybox package with the SDK.
So I just did exactly this for your platform miwifi-mini. It took all of ten minutes to download the SDK and build a new busybox ipk.
If you want, I can make the binary ipk available to you for download, but I recommend you compile it yourself so you know its provenance. [EDIT: link to it here on my github]
Are you sure you know what a package dependency actually is?
Do you understand that the conflicting programs are compiled into the available Busybox package?
So you understand to add the package you desire, that you have to provide a Busybox package not containing them, correct?
You do understand it's common that routers have space constraints?
If so, why are you calling it a workaround?
If you want this to be change to be OpenWrt-wide - as @juppin said, you should feel free to make the appropriate request; but I surmise what you're well aware of the development issue that would cause.
As I see ip and wget behave differently: both ip-tiny and ip-full provide ip (on which something else may depend), while wget updates /usr/bin/wget symlink.
Exact solutions that I see:
kmod and ubox should conflict each other and provide module-tools, procd, fstools and other should depend on module-tools
kmod and ubox should conflict each other and kmod should provide ubox.