- Status Unconfirmed
- Percent Complete
- Task Type Bug Report
- Category Base system
- Assigned To No-one
- Operating System All
- Severity Low
- Priority Very Low
- Reported Version openwrt-19.07
- Due in Version Undecided
-
Due Date
Undecided
- Private
FS#3441 - Menuconfig misbehaviour: wpad-mesh-wolfssl disappears depending on wpad-basic state
Premise:
I am on OpenWrt 19.07.4 and menuconfig is behaving weirdly in a case.
I was trying to document how to select wpad-mesh-wolfssl and deselect wpad-basic for LibreMesh compilation and found something that looks like a bug in some Config.in file used by menuconfig.
Original bug reported on LibreMesh issues list here:
https://github.com/libremesh/lime-web/issues/125
Getting there:
Selecting at the same time wpad-basic and wpad-mesh-wolfssl causes a clash of files installation in the compilation process. For this reason the deselection of wpad-basic has been suggested in LibreMesh compilation instructions.
wpad-mesh-wolfssl can be selected in menuconfig and wpad-basic deselected, until here everything ok.
Issue:
Then when closing and opening again menuconfig, wpad-mesh-wolfssl is not visible.
Screenshot: https://user-images.githubusercontent.com/1329018/98670652-4877ca80-2353-11eb-9d7f-96b5c5d718fd.png
But when wpad-basic (or something else) is selected, wpad-mesh-wolfssl appears and is actually selected (as it should be).
Screenshot: https://user-images.githubusercontent.com/1329018/98670749-7230f180-2353-11eb-9d44-2d6a9bcb3c78.png
The wpad-mesh-wolfssl package is categorized as being inside wpad-mesh-openssl, which makes no sense.
Screenshot: https://user-images.githubusercontent.com/1329018/98670837-9b518200-2353-11eb-8cf0-f490182b4ee2.png
And all of this happens even if the definitions of wpad-basic, wpad-mesh-openssl and wpad-mesh-wolfssl are substantially identical (extracted from https://github.com/openwrt/openwrt/blob/openwrt-19.07/package/network/services/hostapd/Makefile ):
wpad-basic
[identical part removed] VARIANT:=wpad-basic
wpad-mesh-openssl
[identical part removed] DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) PROVIDES+=wpa-supplicant-mesh wpad-mesh DEPENDS+=+libopenssl VARIANT:=wpad-mesh-openssl
wpad-mesh-wolfssl
[identical part removed] DEPENDS+=@PACKAGE_kmod-cfg80211 @(!TARGET_uml||BROKEN) PROVIDES+=wpa-supplicant-mesh wpad-mesh DEPENDS+=+libwolfssl VARIANT:=wpad-mesh-wolfssl
This looks like a bug in some of the Config.in files used by make menuconfig.
Just to support this, I exchanged the order in which wpad-mesh-openssl and wpad-mesh-wolfssl are defined in `tmp/.config-package.in` and now wpad-mesh-wolfssl and wpad-mesh-openssl are at the same hierarchical level. There’s clearly a bug around.
Thanks!
Additional scenario that makes this issue more annoying:
This means that every time I modify something in the menuconfig, I have to select again the wpad-mesh-wolfssl package.
In order to understand something I did a traceback, I report it here more as a note to myself:
menuconfig uses mconf
mconf represents the data from "tmp/.config-package.in"
here there's in wpad-mesh-wolfssl a line that does not have an equivalent in wpad-mesh-openssl
"tmp/.configure-package.in" gets generated by "scripts/package-metadata.pl config"
"scripts/package-metadata.pl config" takes the info from "tmp/.packageinfo"
here the wpad-mesh-wolfssl has wpad-mesh-openssl mentioned between the conflicts, but the opposite does not happen
"tmp/.packageinfo" gets generated by "include/scan.mk"
"include/scan.mk" gets invokated by "include/toplevel.mk" with (in case it was useful for easing the troubleshooting):
"include/scan.mk" merges many files from "tmp/info/", the interesting one is ".packageinfo-network_services_hostapd"
here the same aforementioned "Conflicts:" entry appears
the "tmp/info/.packageinfo-network_services_hostapd" is also generated by the scan.mk call
"include/scan.mk" calls make in plenty of directories, between which also "package/network/services/hostapd"
and this creates the Conflicts list from the $CONFLICTS variable set inside "package/network/services/hostapd/Makefile" so that after a few hours of looking into the issue turns out that the issue was in the most logical place.
The lists
gets populated as the things get defined across the Makefile, so that at the moment of defining wpad-mesh-openssl, these variables do not contain any wpad-mesh-*. At this point, wpad-mesh-openssl gets added there.
For this reason, when wpad-mesh-wolfssl gets defined these lists already contain wpad-mesh-openssl.
This means that each package has a non-complete conflicting packages list depending on when it gets defined inside the Makefile.
And when running the menuconfig thereÅ› also a funny message stating: