<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot/package/ncurses, branch 2017.02</title>
<subtitle>OpenPOWER buildroot sources</subtitle>
<id>https://git.raptorcs.com/git/buildroot/atom?h=2017.02</id>
<link rel='self' href='https://git.raptorcs.com/git/buildroot/atom?h=2017.02'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/'/>
<updated>2017-02-26T16:00:12+00:00</updated>
<entry>
<title>ncurses: remove BR2_PACKAGE_NCURSES_TARGET_{FORM, MENU, PANEL} options</title>
<updated>2017-02-26T16:00:12+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2017-02-23T18:08:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=0c5946acc24a36f9dff079edd054d948c69434f6'/>
<id>urn:sha1:0c5946acc24a36f9dff079edd054d948c69434f6</id>
<content type='text'>
The ncurses sub-options BR2_PACKAGE_NCURSES_TARGET_{FORM,MENU,PANEL}
are currently very badly broken: they only control whether the
libform, libmenu and libpanel libraries are installed in
$(TARGET_DIR), but do absolutely nothing about their installation in
$(STAGING_DIR).

This means that when one of those options is disabled, the
corresponding library is indeed not installed in the target, but is
available in staging. It can therefore be detected by the configure
script of another package and used... even though the library will not
be in the target, causing a runtime failure.

Internally, ncurses.mk uses the "make install" logic of ncurses for
the staging installation, but uses a completely hand-written logic for
the target installation, which is the reason for this
desynchronization between what's installed in staging and target.

When BR2_PACKAGE_NCURSES_WCHAR=y, this also causes some build
failures. Indeed, when BR2_PACKAGE_NCURSES_WCHAR=y, Buildroot creates
some symbolic links lib&lt;foo&gt;.so -&gt; lib&lt;foo&gt;w.so in staging and target,
but only for the lib&lt;foo&gt; that have been enabled by
BR2_PACKAGE_NCURSES_TARGET_{FORM,MENU,PANEL}. Due to this, a package
that for example needed the libmenu library but forgot to select
BR2_PACKAGE_NCURSES_TARGET_MENU was:

 - Building fine with BR2_PACKAGE_NCURSES_WCHAR disabled (because
   libmenu.so exists in staging), but would fail to run at runtime
   because libmenu.so is not in the target.

 - Fail to build with BR2_PACKAGE_NCURSES_WCHAR=y because only
   libmenuw.so exists, and not the libmenu.so symbolic link.

Since those libraries are small (43K for libform, 21K for libmenu and
8.2K for libpanel), this commit takes the very simple approach of
removing those options, and installing the libraries
unconditionally. It therefore uses the "make install" logic for both
the staging *and* target installation.

In detail, this commit:

 - Removes the NCURSES_PROGS variable, not needed since
   --without-progs already allows to disable the build and
   installation of programs.

 - Removes the NCURSES_LIBS-y variable, and replaces it with a single
   unconditional assignement to NCURSES_LIBS, only used to create the
   lib&lt;foo&gt;w.so -&gt; lib&lt;foo&gt;.so symbolic links when wchar support is
   enabled.

 - Removes NCURSES_INSTALL_TARGET_CMDS and the functions it was
   calling: NCURSES_INSTALL_TARGET_LIBS and
   NCURSES_INSTALL_TARGET_PROGS.

 - Adds a NCURSES_TARGET_SYMLINK_RESET hook to create the reset -&gt;
   tset symbolic link, as was done before.

 - Adds a NCURSES_TARGET_CLEANUP_TERMINFO to cleanup the terminfo
   files in the target, so that we stay in the same situation in terms
   of installed terminfo files.

 - Removes the BR2_PACKAGE_NCURSES_TARGET_{FORM,MENU,PANEL} options
   from the Config.in files: both their definition and usage.

 - Simplifies all the symlink dance for lib&lt;foo&gt; -&gt; lib&lt;foo&gt;w, because
   as Yann E. Morin suggested, this dance is only needed in staging, not
   in the target. Once binaries have been built, they refer to the
   SONAME of the library, which is the lib&lt;foo&gt;w variant (for shared
   linking). For static linking and .pc files, it's obvious that we
   don't care about them on the target. Therefore the
   NCURSES_LINK_LIBS_STATIC, NCURSES_LINK_LIBS_SHARED and
   NCURSES_LINK_PC functions no longer take any argument: they always
   apply to STAGING_DIR only. NCURSES_LINK_TARGET_LIBS is removed.

It is worth mentioning that adding Config.in.legacy support is *NOT*
necessary. Indeed:

 - If they were disabled before this patch, having them in
   Config.in.legacy would not trigger the legacy warning.

 - If they were enabled before this patch, then the behavior is
   unchanged: all libraries are now unconditionally installed. So
   there is no point in warning the user.

We double-checked the installed size of a filesystem containing just
ncurses before and after this patch, and the only folder that has its
size changed is /usr/lib, growing from 852 KB to 932 KB in the wchar
enabled case. That's a 80 KB system size increase.

This commit fixes the sngrep build failure and potentially numerous
runtime issues with ncurses.

Fixes:

  http://autobuild.buildroot.net/results/7b5db21a6c568e6c6c8fe2b5d5a2f5ca24df510c/

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ncurses: use $(HOST_MAKE_ENV) when calling $(MAKE)</title>
<updated>2016-10-22T13:19:24+00:00</updated>
<author>
<name>Gustavo Zacarias</name>
<email>gustavo.zacarias@free-electrons.com</email>
</author>
<published>2016-10-17T16:05:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=a7bb73d0fb9c30e84f973234c4bccacf4bea6b26'/>
<id>urn:sha1:a7bb73d0fb9c30e84f973234c4bccacf4bea6b26</id>
<content type='text'>
Signed-off-by: Gustavo Zacarias &lt;gustavo.zacarias@free-electrons.com&gt;
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ncurses: use $(TARGET_MAKE_ENV) when calling $(MAKE)</title>
<updated>2016-10-15T12:17:00+00:00</updated>
<author>
<name>Gustavo Zacarias</name>
<email>gustavo.zacarias@free-electrons.com</email>
</author>
<published>2016-10-13T22:13:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=99212c73ace9365fbf71396dec717d65852ca12d'/>
<id>urn:sha1:99212c73ace9365fbf71396dec717d65852ca12d</id>
<content type='text'>
Signed-off-by: Gustavo Zacarias &lt;gustavo.zacarias@free-electrons.com&gt;
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>package/ncurses: fix build on noMMU uclinux targets</title>
<updated>2016-08-21T20:20:57+00:00</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@free.fr</email>
</author>
<published>2016-08-21T13:38:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=c215ce5021334edfd7385a5218548959438463f6'/>
<id>urn:sha1:c215ce5021334edfd7385a5218548959438463f6</id>
<content type='text'>
The ncurses buildsystem does not recognise 'uclinux' as being a 'linux',
so it falls back to generic checks, especially when trying to decide
what macros to define. So it misses defining absolutely required macros
when doing widechar, which break the bui,d.

But 'uclinux' is just a 'linux' like any other in this respect.

We fix both aclocal.m4 and the generated ./configure script because
ncurses does not autoreconf correctly (see comment in 0001-*.patch).

Fixes:
    http://autobuild.buildroot.org/results/d5c/d5c787d34acbfc0c0c7bd8cc0e15b5bc2460d88a/
    http://autobuild.buildroot.org/results/fc4/fc4b41fb955c390913a879e0202760347ce29987/
    [...too many to list...]

Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Waldemar Brodkorb &lt;wbx@openadk.org&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ncurses: reinstall l/linux terminfo file</title>
<updated>2016-08-05T12:21:31+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-08-05T12:21:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=b0215a1a17f7c2ed11abfd02b47b6c7853260f40'/>
<id>urn:sha1:b0215a1a17f7c2ed11abfd02b47b6c7853260f40</id>
<content type='text'>
This file was installed prior to the refactoring done in commit
33ba5188351ece027455e460f6cba4245af49f3a ("ncurses: factorize terminfo
files installation").

Reported-by: Benoît Allard &lt;benoit.allard@greenbone.net&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ncurses: use foreach make loops instead of shell for loops</title>
<updated>2016-08-03T20:52:42+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-08-02T20:34:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=3ad7e33113735027f92ccb83575899e07fb2774f'/>
<id>urn:sha1:3ad7e33113735027f92ccb83575899e07fb2774f</id>
<content type='text'>
The main benefit of using make foreach loops is that they will abort
if one of the iteration of the loop fails. The current for loops will
continue, and only report a failure if the last iteration was a
failure, but will silently ignore other errors.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Reviewed-by: Matt Weber &lt;matthew.weber@rockwellcollins.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>ncurses: factorize terminfo files installation</title>
<updated>2016-08-03T20:52:24+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@free-electrons.com</email>
</author>
<published>2016-08-02T20:34:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=33ba5188351ece027455e460f6cba4245af49f3a'/>
<id>urn:sha1:33ba5188351ece027455e460f6cba4245af49f3a</id>
<content type='text'>
This long list of commands to copy the terminfo files from staging to
target is really silly and can be factorized using a
NCURSES_TERMINFO_FILES variable, which is then iterated through.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Reviewed-by: Matt Weber &lt;matthew.weber@rockwellcollins.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>ncurses: install PuTTY terminfo files</title>
<updated>2016-08-02T20:15:41+00:00</updated>
<author>
<name>David Glessner</name>
<email>david.glessner@rockwellcollins.com</email>
</author>
<published>2016-08-02T15:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=2ae057d0a8b43556bbc5e2e021c519f5d32e4e22'/>
<id>urn:sha1:2ae057d0a8b43556bbc5e2e021c519f5d32e4e22</id>
<content type='text'>
Signed-off-by: David Glessner &lt;david.glessner@rockwellcollins.com&gt;
Signed-off-by: Matt Weber &lt;matthew.weber@rockwellcollins.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ncurses: remove empty host dependencies definition</title>
<updated>2016-07-03T08:24:02+00:00</updated>
<author>
<name>Julien Floret</name>
<email>julien.floret@6wind.com</email>
</author>
<published>2016-07-02T22:21:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=cc2eb3679ed93accd004e81e0b5bea9eb19dabc3'/>
<id>urn:sha1:cc2eb3679ed93accd004e81e0b5bea9eb19dabc3</id>
<content type='text'>
Signed-off-by: Julien Floret &lt;julien.floret@6wind.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>ncurses: fix gcc 5 compile issue for real</title>
<updated>2015-07-26T16:46:33+00:00</updated>
<author>
<name>Mikhail Peselnik</name>
<email>bas@bmail.ru</email>
</author>
<published>2015-07-24T13:00:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=7b432660c2aaafe4061075f8be86a04b462bfd97'/>
<id>urn:sha1:7b432660c2aaafe4061075f8be86a04b462bfd97</id>
<content type='text'>
The previous patch didn't work in all cases. The new patch is taken from
upstream: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517

Fetch from: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff;f=ncurses/base/MKlib_gen.sh;h=b91398c740a266f10edbbce19f19c52b9709556f;hp=d8cc3c9751faa157d0c8cb8e16fbe4217703966b;hb=97bb4678dc03e753290b39bbff30ba2825df9517;hpb=762520a7930d7f698d542628d3c04bc201f7dac2

[Thomas:
  - removed Signed-off-by in the Buildroot commit from the ncurses
    author: the ncurses author never submitted this patch to
    Buildroot.
  - fixed the Author of the Buildroot commit, it was still "kyak"
  - added a description + Signed-off-by in the patch itself.]

Signed-off-by: Mikhail Peselnik &lt;bas@bmail.ru&gt;
Acked-by: Jaap Crezee &lt;jaap@jcz.nl&gt;
Tested-by: Jaap Crezee &lt;jaap@jcz.nl&gt;
Reviewed-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
</feed>
