-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
switch back to standard ncurses #1880
Conversation
What exactly is the problem with curses get stuff from outside the build system? |
@vpeter4 I couldn't track it down (due no idea how to debug) So there are still depends to the outside of the builddir (btw I have no better explanation). For example we tried to compile https://github.com/escalade/LibreELEC.tv/tree/le82/ MC/htop (without current patch) at Ubuntu that never worked, it worked well at Arch (this is what @escalade build from). Also the rather frequently need of |
I think I understand the problem :) |
Did some tests but at the end I broke something - need to rebuild. But from what I see is that ncurses needs to be configured with --with-termlib. This builds two libs: libncurses.a and libtinfo.a. The second one is looked by some configure scripts. If there is no libtinfo then libncurses includes it's functionality (could also be symbolic link from libncurses to libtinfo). Then htop patch can be removed, without -I...ncurses and with PKG_CONFIGURE_OPTS_TARGET="--disable-unicode" in package.mk. Continue investigation... Update: |
doesn't build for me (tried different things too) |
You need to rebuild ncurses to get libtinfo library. But seems with this ncurses change some packages needs export LIBS="$LIBS -ltinfo" (connman, bluez and maybe others). Not sure if this is correct approach. Regarding ncurses and libtinfo here is some discussion (very old one but seems still appropriate): https://bugs.launchpad.net/ubuntu/+source/ncurses/+bug/259139 |
@vpeter4 adding |
Why would you need libtinfo? The bugreport you are linking to is with regards to a third party library being linked to libtinfo. That's not needed in a distribution like LibreELEC where everything is compiled. I don't use --with-termlib in my build and Arch does not use this option either. It's not the default and probably for a reason. Options like that should not be used without purpose. As you can see other packages will actually need modification to compile against ncurses if you are using this option (-ltinfo). |
I don't need libtinfo. But configure script for example htop fails without (I think). Also this lib is present on Ubuntu 16.04.3 LTS. But I'm just exploring options. Seems no changes is needed anyway. |
But I think ncurses could be build without --disable-overwrite. Then headers will be installed in usr/include and not in ncurses subfolder. Which means no need to set -I.../ncurses in package.mk. |
That's because it's package specifies -lterminfo in CFLAGS. I can compile htop without any patches just fine both with netbsd-curses and ncurses (needs --disable-unicode). The option --disable-overwrite is already included. Where do you see -I../ncurses? |
Ncurses is build with --disable-overwrite. This installs all it's headers in subfolder SYSROOT_PREFIX/usr/include/ncurses. And because of this some packages needs CFLAGS -I$SYSROOT_PREFIX/usr/include/ncurses. This is what cvh mentioned. |
Yes sorry, it should be excluded, my original commit had this (excluded). Makes absolutely no sense to use a separate include dir when packages expect the opposite. |
@escalade I had the expectation that the "old" ncurses had worked properly (as there were not those workarounds), I try without |
They used this option in the old package and as a consequence had to modify other packages to find the correct include path. It wouldn't be a bad idea to go through every option used in this package to see if it's actually needed. I believe lots of them are the default already, so IMO no need to specify them. |
@vpeter4 I squashed some of the commits and added the rm of the The only concern is about htop, it still needs the patch and still much more then what @escalade has needed. |
For htop: remove the patch and use this function
|
I think mc package doesn't need pre_configure_target function anymore. |
@vpeter4 the cflags are both builds so I guess we go with removing the |
Seems it builds fine here for Generic. Other projects will follow. |
No problems building RPi/RPi2/Generic along with various PVR addons. |
squashed commits, updated dates and removed WIP |
What is the point of readline-001-shlib_libs.patch for readline? Because variable SHLIB_LIBS is used only for shared library (which we don't build). |
Iirc it didn't build without, maybe you could build it without patch (I need to redo whole build)? |
It builds fine here without patch. But I only changes readline package - everything else was old. Will do clean build over night without this patch and see. |
@vpeter4 I guess this problem was fixed with the removal of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All good at my side @12:23, Saturday, 19 August 2017 (CEST) :)
Thanks @CvH |
This changes the build system to use standard ncurses instead of netbsd-curses.
Motivation for this step back is the lack of support for netbsd-curses in real world and the resulting problems due this.
Afaik beside LE/OE and Sabotage Linux nobody is using this Mod of the curses implementation for netbsd.
So better stick with the Linux default to avoid useless time wasting due this.
Currently I have not squashed any commits (will do before rm WIP).
It looks like there is currently still a problem that curses get stuff from outside the build system (same problem for netbsd-curses). I have no idea how to fix this or even debug it (help welcome).
Beside that it build for me, but as seen in the past this may differ from system to system.