cmd1.bbclass: Ensure ncurses is built and used for menuconfig tasks
PATCH 1/1 cmd1.bbclass: Ensure ncurses is built and used for menuconfig tasks
Currently, the task just exits if something goes wrong. This adds the ncurses-native dependency. It also adds a small delay before closing the window so any messages displayed there can be seen.
Trying to get the kernel build system to correctly find and link with our copy of ncurses is some kind of nightmare. I ended up having to add it to HOST_LOADLIBES globally for this task which is rather nasty but I couldn't find any other way.
[YOCTO #2513]
---
meta/classes/cml1.bbclass +7 -1
@@ -9,9 +9,15 @@ addtask configure after do_unpack do_patch before do_compile inherit terminal +OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES" +HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}" +HOSTLDFLAGS = "${BUILD_LDFLAGS}" +HOST_LOADLIBES = "-lncurses" + python do_menuconfig() { - oe_terminal("make menuconfig", '${PN} Configuration', d) + oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d) } +do_menuconfig[depends] += "ncurses-native:do_populate_sysroot" do_menuconfig[nostamp] = "1" addtask menuconfig after do_configure
Quoted 19 lines · Richard Purdie
Currently, the task just exits if something goes wrong. This adds the ncurses-native dependency. It also adds a small delay before closing the window so any messages displayed there can be seen.
Trying to get the kernel build system to correctly find and link with our copy of ncurses is some kind of nightmare. I ended up having to add it to
HOST_LOADLIBESglobally for this task which is rather nasty but I couldn't find any other way.[YOCTO #2513]
Signed-off-by Richard Purdie <[email protected]>---
meta/classes/cml1.bbclass +0
-0@@ -9,9 +9,15 @@ addtask configure after do_unpack do_patch before do_compile
meta/classes/cml1.bbclass addtask configure after do_unpack do_patch before do_compile · line 18
Quoted 10 lines
meta/classes/cml1.bbclass +6
-1inherit terminal +OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES" +HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}" +HOSTLDFLAGS = "${BUILD_LDFLAGS}" +HOST_LOADLIBES = "-lncurses" + python do_menuconfig() { - oe_terminal("make menuconfig", '${PN} Configuration', d) + oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d)
Perhaps only sleeping if menuconfig returns non-zero? This would avoid the unnecessary lag after a successful menuconfig session.
Signature · 3 lines
Darren Hart Intel Open Source Technology Center Yocto Project - Linux Kernel
Quoted 8 lines · Richard Purdie
Currently, the task just exits if something goes wrong. This adds the ncurses-native dependency. It also adds a small delay before closing the window so any messages displayed there can be seen.
Trying to get the kernel build system to correctly find and link with our copy of ncurses is some kind of nightmare. I ended up having to add it to
HOST_LOADLIBESglobally for this task which is rather nasty but I couldn't find any other way.
Agreed, and my much more limited knowledge of the options can't come up with something different either.
Is there an option to move those flags to the kernel class, so they'd only be set when it is in play ? That would at least isolate the data a bit more. Alternatively there's the less palatable kernel specific do_menuconfig option (ech).
Otherwise, no concerns or big comments from me.
Bruce
Quoted 30 lines
[YOCTO #2513]
Signed-off-by Richard Purdie<[email protected]>---
meta/classes/cml1.bbclass +7
-1@@ -9,9 +9,15 @@ addtask configure after do_unpack do_patch before do_compile inherit terminal +OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS HOST_LOADLIBES" +HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}" +HOSTLDFLAGS = "${BUILD_LDFLAGS}" +HOST_LOADLIBES = "-lncurses" + python do_menuconfig() { - oe_terminal("make menuconfig", '${PN} Configuration', d) + oe_terminal("${SHELL} -c \"make menuconfig; echo 'Pausing for 5 seconds'; sleep 5\"", '${PN} Configuration', d) } +do_menuconfig[depends] += "ncurses-native:do_populate_sysroot" do_menuconfig[nostamp] = "1" addtask menuconfig after do_configure