A package outside the openwrt repository called AirSane-openwrt lets routers export USB scanners as AirScan devices, so they become network scanners --- A very good use of the USB port on routers!
It does, however, pull in dbus as a dependency, indirectly through avahi (see avahi package def here), which makes it quite heavy. I am trying to modify the package so that it uses a nodbus
variant of libavahi.
The Avahi package in OpenWrt makes available an avahi daemon which is of the nodbus
variant. However, it does not provide such a variant for the libavahi. So when AirSane defines libavahi as a dependency, dbus gets pulled.
My remeady is to define a variant of libavahi in the Makefile of AirSane itself, which does not depend on dbus, and then get AirSane-openwrt to depend on that. So in the Makefile for AirSane, I added this:
define Package/libavahi-nobus-client
$(call Package/avahi/Default)
# FIXME: use `PROVIDES` to indicate alternative libavahi-client
SECTION:=libs
CATEGORY:=Libraries
VARIANT:=nodbus
DEPENDS:=+avahi-nodbus-daemon
TITLE+= (libavahi-client library without dbus dependency)
endef
define Package/libavahi-nobus-client/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-client.so.* $(1)/usr/lib/
endef
The full change is available at:
BUT, it doesn't work. In the build output, I get:
touch /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/.built
rm -rf /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/.pkgdir/libavahi-nobus-client.installed /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/.pkgdir/libavahi-nobus-client
mkdir -p /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/.pkgdir/libavahi-nobus-client
install -d -m0755 /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/.pkgdir/libavahi-nobus-client/usr/lib
cp -fpR /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/ipkg-install/usr/lib/libavahi-client.so.* /builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/.pkgdir/libavahi-nobus-client/usr/lib/
cp: cannot stat '/builder/build_dir/target-arm_cortex-a9_musl_eabi/airsaned-0.4.3/ipkg-install/usr/lib/libavahi-client.so.*': No such file or directory
I could do with any suggestions to fix this issue, or even an alternative approach.