Luci-compat and 18.06

I've added the luci-compat requirement to the luci app makefiles to be compatible with 19.07, however now these packages cannot be installed (without --force-depends) on 18.06 because the luci-compat is not available there.

I'd like to maintain the single binary for different OpenWrt versions. Is it possible to add luci-compat as a fake package to 18.06?

Actually, I've just tried including some of my luci packages with the 19.07.0-RC1 image builder and I keep getting errors like:

 * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-simple-adblock:
 *      luci-compat

@jow, are you sure we need luci-compat on 19.07?

Yes, absolutely sure.

Why 19.07.0rc1 image builder cannot include the Luci apps requiring luci-compat then? How can I fix that?

you can install the packages with the "--no-deps" opkg option on 18.06

I am not sure. I just gave the x86/64 ImageBuilder a quick test run here, using PACKAGES="luci luci-app-statistics" and it went through successfully. Which ImageBuilder did you use exactly? Maybe you tried it before the package repos were fully populated? Can delete it and unpack it again? Does it work then?

Mvebu. Downloaded and unpacked a few hours ago, like a day after 19.07.0rc1 was announced.

Another problem I'm facing with 18.06.5 and 19.07.0 is that I cannot include full-fledged wget, because -wget-nossl leads to an error in image builder.

The IB from https://downloads.openwrt.org/releases/19.07.0-rc1/targets/mvebu/cortexa9/openwrt-imagebuilder-19.07.0-rc1-mvebu-cortexa9.Linux-x86_64.tar.xz works for me as well.

$ make image PACKAGES="luci luci-app-statistics"
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'proper-umask'... ok.
Checking 'gcc'... ok.
Checking 'working-gcc'... ok.
Checking 'g++'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... ok.
Checking 'perl-thread-queue'... ok.
Checking 'tar'... ok.
Checking 'find'... ok.
Checking 'bash'... ok.
Checking 'patch'... ok.
Checking 'diff'... ok.
Checking 'cp'... ok.
Checking 'seq'... ok.
Checking 'awk'... ok.
Checking 'grep'... ok.
Checking 'getopt'... ok.
Checking 'stat'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'wget'... ok.
Checking 'perl'... ok.
Checking 'python'... ok.
Checking 'git'... ok.
Checking 'file'... ok.
Checking 'ldconfig-stub'... ok.
Building images for mvebu - Linksys WRT1200AC (Caiman)
Packages: luci luci-app-statistics base-files busybox dnsmasq dropbear firewall fstools ip6tables iptables iwinfo kernel kmod-gpio-button-hotplug kmod-ipt-offload kmod-mwlwifi libc libgcc logd mtd mwlwifi-firmware-88w8864 netifd odhcp6c odhcpd-ipv6only opkg ppp ppp-mod-pppoe swconfig uboot-envtools uci uclient-fetch urandom-seed urngd wpad-basic

Package list missing or not up-to-date, generating it.

Building package index...
[...]
Configuring libnl-tiny.
Configuring libubox20170601.
Configuring libuci20130104.
Configuring libubus20170705.
Configuring libiwinfo20181126.
Configuring iwinfo.
Configuring liblua5.1.5.
Configuring lua.
Configuring luci-lib-nixio.
Configuring luci-lib-ip.
Configuring libjson-c2.
Configuring libblobmsg-json.
Configuring rpcd.
Configuring libubus-lua.
Configuring luci-lib-jsonc.
Configuring liblucihttp0.
Configuring liblucihttp-lua.
Configuring rpcd-mod-file.
Configuring rpcd-mod-luci.
Configuring cgi-io.
Configuring luci-base.
Configuring luci-compat.
[...]

Quick question: Are luci apps supposed to depend on luci-compat or are they supposed to be changed such that luci-compat is not necessary. Just based on the name, I am not sure what we are supposed to do?

Ideally they're supposed to be changed, but the transitional period will last for a while.

1 Like

Ah, any pointer how to change things?

I'll provide documentation for this as soon as possible. In a nutshell the transition requires replacing custom controller actions with ubus plugins (which can be written in Ash, Lua, C, ...) and Lua based CBI maps with JavaScript ones largely mimicking the old syntax.

2 Likes

Thank you very much.

OK, this is embarrassing, I was running 18.06.5 IB instead of the 19.07.0, hence the luci-compat errors. Sorry for stealing your time to confirm about 19.07.0.

Question about possibility of creating a fake luci-compat package for 18.06 still stands -- can you please create it so that similar codebase for luci apps can be kept for 18.06 and 19.07?

Yep, I already added it a few hours back. It should trickle down into the binary repos within the next few days.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.