ncurses: get the post staging installation hook called properly
PATCH 1/3 ncurses: get the post staging installation hook called properly
There was a typo in the name of the variable to register the hook, which prevent the hook from actually being called.
--- package/ncurses/ncurses.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/ncurses/ncurses.mk +1 -1
@@ -57,7 +57,7 @@ define NCURSES_PATCH_NCURSES_CONFIG $(STAGING_DIR)/usr/bin/ncurses5-config endef -NCURSES_POST_STAGING_INSTALL_HOOKS += NCURSES_PATCH_NCURSES_CONFIG +NCURSES_POST_INSTALL_STAGING_HOOKS += NCURSES_PATCH_NCURSES_CONFIG ifeq ($(BR2_HAVE_DEVFILES),y) define NCURSES_INSTALL_TARGET_DEVFILES
Signature · 1 line
1.7.9.5
PATCH 2/3 ncurses: bump to 5.9
Bumping to 5.9 has two nice side-effects:
* It builds fine on noMMU architectures such as Blackfin, which will fix build failures like
http://autobuild.buildroot.org/results/cf3e6a95c82b60d63da041293db576a8f21f9136/build-end.log.
* It installs a pkg-config file, which will allow gpsd to find ncurses properly, without the need to use ncurses5-config, which means we can get rid of one of our gpsd patches. Thanks to Mike Frysinger for pointing the new --enable-pc-files option.
After this bump, I build tested a large number of the ncurses reverse dependencies we have in Buildroot, and they all built fine.
--- .../ncurses-01-fixup-pkg-config-handling.patch | 89 ++++++++++++++++++++ package/ncurses/ncurses.mk | 5 +- 2 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 package/ncurses/ncurses-01-fixup-pkg-config-handling.patch
package/ncurses/ncurses-01-fixup-pkg-config-handling.patch new file +89 -0
@@ -0,0 +1,89 @@ +Change handling of PKG_CONFIG_LIBDIR + +When PKG_CONFIG_LIBDIR was unset in the environment, the configure +script was deducing the PKG_CONFIG_LIBDIR from the location of the +pkg-config binary, which doesn't make a lot of sense, and isn't done +by other autotools based packages. + +Also, the configure script was checking that the directory really +exists. This forced to create the directory *and* provide an absolute +path in PKG_CONFIG_LIBDIR, which didn't play well with the fact that +at installation time, PKG_CONFIG_LIBDIR is suffixed to DESTDIR, which +means that we got two times the staging directory location. + +This patch fixes both of those issues. Also, since ncurses uses a fork +of autoconf 2.13, we can't simply use _AUTORECONF=YES, so we also fix +the configure script in this patch. + +Signed-off-by: Thomas Petazzoni <[email protected]> + +Index: b/configure +=================================================================== +--- a/configure ++++ b/configure +@@ -3623,27 +3623,20 @@ + + # Leave this as something that can be overridden in the environment. + if test -z "$PKG_CONFIG_LIBDIR" ; then +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig ++ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig" + fi ++ + PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then + +-# Check whether --enable-pc-files or --disable-pc-files was given. +-if test "${enable_pc_files+set}" = set; then +- enableval="$enable_pc_files" +- enable_pc_files=$enableval +-else +- enable_pc_files=no +-fi; +- echo "$as_me:3638: result: $enable_pc_files" >&5 +-echo "${ECHO_T}$enable_pc_files" >&6 ++ # Check whether --enable-pc-files or --disable-pc-files was given. ++ if test "${enable_pc_files+set}" = set; then ++ enableval="$enable_pc_files" ++ enable_pc_files=$enableval + else +- echo "$as_me:3641: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5 +-echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;} +- enable_pc_files=no +- fi ++ enable_pc_files=no ++ fi; ++ echo "$as_me:3638: result: $enable_pc_files" >&5 ++ echo "${ECHO_T}$enable_pc_files" >&6 + fi + + echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5 +Index: b/configure.in +=================================================================== +--- a/configure.in ++++ b/configure.in +@@ -174,20 +174,14 @@ + + # Leave this as something that can be overridden in the environment. + if test -z "$PKG_CONFIG_LIBDIR" ; then +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig ++ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig" + fi + PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then +- AC_ARG_ENABLE(pc-files, ++ AC_ARG_ENABLE(pc-files, + [ --enable-pc-files generate and install .pc files for pkg-config], + [enable_pc_files=$enableval], + [enable_pc_files=no]) +- AC_MSG_RESULT($enable_pc_files) +- else +- AC_MSG_RESULT(no) +- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) +- enable_pc_files=no +- fi ++ AC_MSG_RESULT($enable_pc_files) + fi + AC_SUBST(PKG_CONFIG_LIBDIR) +
package/ncurses/ncurses.mk +3 -2
@@ -23,7 +23,7 @@ # USA # TARGETS -NCURSES_VERSION = 5.7 +NCURSES_VERSION = 5.9 NCURSES_SITE = $(BR2_GNU_MIRROR)/ncurses NCURSES_INSTALL_STAGING = YES NCURSES_DEPENDENCIES = host-ncurses
@@ -41,7 +41,8 @@ NCURSES_CONF_OPT = \ --enable-echo \ --enable-const \ --enable-overwrite \ - --enable-broken_linker + --enable-broken_linker \ + --enable-pc-files ifneq ($(BR2_ENABLE_DEBUG),y) NCURSES_CONF_OPT += --without-debug
Signature · 1 line
1.7.9.5
Gustavo Zacarias
NAKPATCH 2/3 ncurses: bump to 5.9
Quoted 11 lines · Thomas Petazzoni
Bumping to 5.9 has two nice side-effects:
* It builds fine on noMMU architectures such as Blackfin, which will fix build failures like
http://autobuild.buildroot.org/results/cf3e6a95c82b60d63da041293db576a8f21f9136/build-end.log.* It installs a pkg-config file, which will allow gpsd to find ncurses properly, without the need to use ncurses5-config, which means we can get rid of one of our gpsd patches. Thanks to Mike Frysinger for pointing the new --enable-pc-files option.
Quoted 4 lines
After this bump, I build tested a large number of the ncurses reverse dependencies we have in Buildroot, and they all built fine.
Signed-off-by Thomas Petazzoni <[email protected]>
Nack.
The version bump to 5.8 and 5.9 had issues in the past and still has. It may compile just fine but it segfaults miserably in a target, chroot or qemu image.
Simple test, i586 target with external toolchain, build less and see. Regards.
PATCH 2/3 ncurses: bump to 5.9
Le Thu, 26 Jul 2012 16:15:15 -0300,
Gustavo Zacarias <[email protected]> a ?crit :
Quoted 11 lines
Quoted 4 lines
After this bump, I build tested a large number of the ncurses reverse dependencies we have in Buildroot, and they all built fine.
Signed-off-by Thomas Petazzoni <[email protected]>Nack.
The version bump to 5.8 and 5.9 had issues in the past and still has. It may compile just fine but it segfaults miserably in a target, chroot or qemu image.
Simple test, i586 target with external toolchain, build less and see. Regards.
Yes, I just did some runtime testing, and also faced segfaults. Now that you say it, I also remember what you said.
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/3 ncurses: bump to 5.9
In reply to Gustavo ZacariasLe Thu, 26 Jul 2012 16:15:15 -0300,
Gustavo Zacarias <[email protected]> a ?crit :
Quoted 5 lines
Nack.
The version bump to 5.8 and 5.9 had issues in the past and still has. It may compile just fine but it segfaults miserably in a target, chroot or qemu image.
Simple test, i586 target with external toolchain, build less and see.
There must something odd: both Yocto and PTXdist are using ncurses 5.9, so I presume it works for them. So it's not as simple as "cross-compilation breaks ncurses 5.9", it's something more subtle than that.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/3 ncurses: bump to 5.9
Quoted 9 lines · Thomas Petazzoni
Le Thu, 26 Jul 2012 16:15:15 -0300,
Gustavo Zacarias <[email protected]> a ?crit :Quoted 5 lines
Nack.
The version bump to 5.8 and 5.9 had issues in the past and still has. It may compile just fine but it segfaults miserably in a target, chroot or qemu image.
Simple test, i586 target with external toolchain, build less and see.
Quoted 6 lines
There must something odd: both Yocto and PTXdist are using ncurses 5.9, so I presume it works for them. So it's not as simple as "cross-compilation breaks ncurses 5.9", it's something more subtle than that.
Thomas
Yes, i agree it's pretty much some little thing.
I did some tests in the past and it doesn't seem to be configure options related (didn't try everything around, just what would be more obvious to cause such a failure).
Yet OpenWRT, which is BR's closest relative, still uses 5.7, maybe they didn't care about bumping it or hit the same issue.
I'll give it another shot later today.
Regards.
PATCH 2/3 ncurses: bump to 5.9
Le Fri, 27 Jul 2012 07:21:39 -0300,
Gustavo Zacarias <[email protected]> a ?crit :
Quoted 6 lines
Yes, i agree it's pretty much some little thing.
I did some tests in the past and it doesn't seem to be configure options related (didn't try everything around, just what would be more obvious to cause such a failure).
Yet OpenWRT, which is BR's closest relative, still uses 5.7, maybe they didn't care about bumping it or hit the same issue.
I indeed just talked to Florian Fainelli on IRC (he is an OpenWRT developer), and he remembers hearing issues about ncurses 5.9, and those issues being the reason to stick to 5.7 for now.
But still, PTXdist and OE have it. So it should work somehow. And they don't seem to have bizarre patches.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/3 ncurses: bump to 5.9
Quoted 2 lines · Thomas Petazzoni
But still, PTXdist and OE have it. So it should work somehow. And they don't seem to have bizarre patches.
Does the segfault issue also occur on arm or powerpc? Neither PTXdist
nor OE is a big i386 user, so maybe they just didn't notice the problem.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 2/3 ncurses: bump to 5.9
Quoted 9 lines · Arnout Vandecappelle
Quoted 2 lines · Thomas Petazzoni
But still, PTXdist and OE have it. So it should work somehow. And they don't seem to have bizarre patches.
Does the segfault issue also occur on arm or powerpc? Neither PTXdist
nor OE is a big i386 user, so maybe they just didn't notice the problem.Regards,
Arnout
Gentoo has 5.9 as stable for all major architectures, i'm pretty sure it works so it's something we're doing different/wrong. Regards.
PATCH 2/3 ncurses: bump to 5.9
In reply to Arnout VandecappelleLe Fri, 27 Jul 2012 13:23:45 +0200,
Arnout Vandecappelle <[email protected]> a ?crit :
Quoted 2 lines
Does the segfault issue also occur on arm or powerpc? Neither PTXdist
nor OE is a big i386 user, so maybe they just didn't notice the problem.
Yesterday, I tried on ARM Cortex-A8 within the Qemu VExpress emulation (using Linaro toolchain), and it segfaulted. I haven't tried on real hardware though, so could always be a Qemu problem, or a toolchain problem.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/3 ncurses: bump to 5.9
Quoted 6 lines · Thomas Petazzoni
Le Fri, 27 Jul 2012 13:23:45 +0200,
Arnout Vandecappelle <[email protected]> a ?crit :Quoted 2 lines
Does the segfault issue also occur on arm or powerpc? Neither PTXdist
nor OE is a big i386 user, so maybe they just didn't notice the problem.
Quoted 6 lines
Yesterday, I tried on ARM Cortex-A8 within the Qemu VExpress emulation (using Linaro toolchain), and it segfaulted. I haven't tried on real hardware though, so could always be a Qemu problem, or a toolchain problem.
Thomas
I've tried on real hardware (arm, powerpc) and it's the same issue. I'll do some tests on a chroot (i586 or x86_64) to try track it down since it fails too, at least for i586.
Regards.
PATCH 3/3 gpsd: remove patch to handle ncurses5-config custom location
In reply to Thomas PetazzoniNow that ncurses has been bumped to 5.9, it installs .pc files for pkg-config, which allows gpsd to find it properly without the need to specify a custom location for ncurses5-config.
Since gpsd now uses pkg-config to find the ncurses library, we also add host-pkg-config in the dependencies.
--- .../gpsd/gpsd-02-sconstruct-disable-rpath.patch | 17 ++++++++ .../gpsd-02-sconstruct-ncurses-config-path.patch | 44 -------------------- .../gpsd/gpsd-03-sconstruct-disable-rpath.patch | 17 -------- package/gpsd/gpsd.mk | 3 +- 4 files changed, 18 insertions(+), 63 deletions(-) create mode 100644 package/gpsd/gpsd-02-sconstruct-disable-rpath.patch delete mode 100644 package/gpsd/gpsd-02-sconstruct-ncurses-config-path.patch delete mode 100644 package/gpsd/gpsd-03-sconstruct-disable-rpath.patch
package/gpsd/gpsd-02-sconstruct-disable-rpath.patch new file +17 -0
@@ -0,0 +1,17 @@ +Disable addition of RPATH to the generated libraries + +Signed-off-by: Thomas Petazzoni <[email protected]> + +Index: b/SConstruct +=================================================================== +--- a/SConstruct ++++ b/SConstruct +@@ -273,8 +273,6 @@ + env.Prepend(LIBPATH=[installdir('libdir')]) + else: + env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir')]) +-if env["shared"]: +- env.Prepend(RPATH=[installdir('libdir')]) + + # Give deheader a way to set compiler flags + if 'MORECFLAGS' in os.environ:
package/gpsd/gpsd-02-sconstruct-ncurses-config-path.patch deleted +0 -44
44 lines not on this page · raw message
package/gpsd/gpsd-03-sconstruct-disable-rpath.patch deleted +0 -17
@@ -1,17 +0,0 @@ -Disable addition of RPATH to the generated libraries - -Signed-off-by: Thomas Petazzoni <[email protected]> - -Index: b/SConstruct -=================================================================== ---- a/SConstruct -+++ b/SConstruct -@@ -273,8 +273,6 @@ - env.Prepend(LIBPATH=[installdir('libdir')]) - else: - env.Prepend(LIBPATH=[env["sysroot"] + installdir('libdir')]) --if env["shared"]: -- env.Prepend(RPATH=[installdir('libdir')]) - - # Give deheader a way to set compiler flags - if 'MORECFLAGS' in os.environ:
package/gpsd/gpsd.mk +1 -2
@@ -9,7 +9,7 @@ GPSD_LICENSE = BSD-3c GPSD_LICENSE_FILES = COPYING GPSD_INSTALL_STAGING = YES -GPSD_DEPENDENCIES = host-scons +GPSD_DEPENDENCIES = host-scons host-pkg-config GPSD_LDFLAGS = $(TARGET_LDFLAGS)
@@ -25,7 +25,6 @@ GPSD_SCONS_OPTS = \ ifeq ($(BR2_PACKAGE_NCURSES),y) GPSD_DEPENDENCIES += ncurses - GPSD_SCONS_OPTS += ncurses_config=$(STAGING_DIR)/usr/bin/ncurses5-config else GPSD_SCONS_OPTS += ncurses=no endif
Signature · 1 line
1.7.9.5