gpsd: fix build issues
The first patch gpsd-01-sconstruct-python-2.5-compat.patch is aimed at fixing Python 2.5 compatibility issues such as: http://autobuild.buildroot.org/results/844a7f8698567688eba094f64dd2bf5157efd994/build-end.log The second patch gpsd-02-sconstruct-ncurses-config-path.patch implements a proper mechanism to specify the path to ncurse5-config. It obsoletes the previous gpsd-fix-acs_map-compile-errors patch, and solves build problems such as: http://autobuild.buildroot.org/results/92ae3d53e8aa68d8b1a2eccad68c98f577cb6437/build-end.log Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Simon Dawson <spdawson@gmail.com>
This commit is contained in:
parent
23c9aeccde
commit
f52727e22d
79
package/gpsd/gpsd-01-sconstruct-python-2.5-compat.patch
Normal file
79
package/gpsd/gpsd-01-sconstruct-python-2.5-compat.patch
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
Remove all the with ... as foo constructs
|
||||||
|
|
||||||
|
Those constructs have been introduced in Python 2.6, and some of our
|
||||||
|
autobuilders still use Python 2.5, so replace them with constructs
|
||||||
|
that are compatible with Python 2.5.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
Index: b/SConstruct
|
||||||
|
===================================================================
|
||||||
|
--- a/SConstruct
|
||||||
|
+++ b/SConstruct
|
||||||
|
@@ -366,8 +366,8 @@
|
||||||
|
|
||||||
|
def CheckXsltproc(context):
|
||||||
|
context.Message('Checking that xsltproc can make man pages... ')
|
||||||
|
- with open("xmltest.xml", "w") as ofp:
|
||||||
|
- ofp.write('''
|
||||||
|
+ ofp = open("xmltest.xml", "w")
|
||||||
|
+ ofp.write('''
|
||||||
|
<refentry id="foo.1">
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>foo</refentrytitle>
|
||||||
|
@@ -380,6 +380,7 @@
|
||||||
|
</refnamediv>
|
||||||
|
</refentry>
|
||||||
|
''')
|
||||||
|
+ ofp.close()
|
||||||
|
probe = "xsltproc --nonet --noout '%s' xmltest.xml" % (docbook_man_uri,)
|
||||||
|
ret = context.TryAction(probe)[0]
|
||||||
|
os.remove("xmltest.xml")
|
||||||
|
@@ -1042,8 +1043,9 @@
|
||||||
|
# build timebase.h
|
||||||
|
def timebase_h(target, source, env):
|
||||||
|
from leapsecond import make_leapsecond_include
|
||||||
|
- with open(target[0].abspath, 'w') as f:
|
||||||
|
- f.write(make_leapsecond_include(source[0].abspath))
|
||||||
|
+ f = open(target[0].abspath, 'w')
|
||||||
|
+ f.write(make_leapsecond_include(source[0].abspath))
|
||||||
|
+ f.close()
|
||||||
|
env.Command(target="timebase.h", source="leapseconds.cache",
|
||||||
|
action=timebase_h)
|
||||||
|
|
||||||
|
@@ -1116,15 +1118,17 @@
|
||||||
|
('@DEVMAIL@', devmail),
|
||||||
|
('@LIBGPSVERSION@', libgps_version),
|
||||||
|
)
|
||||||
|
- with open(str(source[0])) as sfp:
|
||||||
|
- content = sfp.read()
|
||||||
|
+ sfp = open(str(source[0]))
|
||||||
|
+ content = sfp.read()
|
||||||
|
+ sfp.close()
|
||||||
|
for (s, t) in substmap:
|
||||||
|
content = content.replace(s, t)
|
||||||
|
m = re.search("@[A-Z]+@", content)
|
||||||
|
if m and m.group(0) not in map(lambda x: x[0], substmap):
|
||||||
|
print >>sys.stderr, "Unknown subst token %s in %s." % (m.group(0), sfp.name)
|
||||||
|
- with open(str(target[0]), "w") as tfp:
|
||||||
|
- tfp.write(content)
|
||||||
|
+ tfp = open(str(target[0]), "w")
|
||||||
|
+ tfp.write(content)
|
||||||
|
+ tfp.close()
|
||||||
|
|
||||||
|
templated = glob.glob("*.in") + glob.glob("*/*.in") + glob.glob("*/*/*.in")
|
||||||
|
|
||||||
|
@@ -1560,9 +1564,10 @@
|
||||||
|
def validation_list(target, source, env):
|
||||||
|
for page in glob.glob("www/*.html"):
|
||||||
|
if not '-head' in page:
|
||||||
|
- with open(page) as fp:
|
||||||
|
- if "Valid HTML" in fp.read():
|
||||||
|
- print os.path.join(website, os.path.basename(page))
|
||||||
|
+ fp = open(page)
|
||||||
|
+ if "Valid HTML" in fp.read():
|
||||||
|
+ print os.path.join(website, os.path.basename(page))
|
||||||
|
+ fp.close()
|
||||||
|
Utility("validation-list", [www], validation_list)
|
||||||
|
|
||||||
|
# How to update the website
|
44
package/gpsd/gpsd-02-sconstruct-ncurses-config-path.patch
Normal file
44
package/gpsd/gpsd-02-sconstruct-ncurses-config-path.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
Add option to specify the path to ncurses5-config
|
||||||
|
|
||||||
|
By default, gpsd's SConstruct looks in the PATH to find
|
||||||
|
ncurses5-config, which means that it finds our HOST_DIR
|
||||||
|
ncurses5-config. We add an option that allows to specify a custom path
|
||||||
|
to the ncurses5-config script.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
Index: b/SConstruct
|
||||||
|
===================================================================
|
||||||
|
--- a/SConstruct
|
||||||
|
+++ b/SConstruct
|
||||||
|
@@ -172,6 +172,7 @@
|
||||||
|
("fixed_stop_bits", 0, "fixed serial port stop bits"),
|
||||||
|
("target", "", "cross-development target"),
|
||||||
|
("sysroot", "", "cross-development system root"),
|
||||||
|
+ ("ncurses_config", "", "ncurses5-config path"),
|
||||||
|
)
|
||||||
|
for (name, default, help) in nonboolopts:
|
||||||
|
opts.Add(name, help, default)
|
||||||
|
@@ -447,6 +448,11 @@
|
||||||
|
else:
|
||||||
|
pkg_config = lambda pkg: ['!%s --cflags --libs --static %s' %(env['PKG_CONFIG'], pkg, )]
|
||||||
|
|
||||||
|
+if env['ncurses_config']:
|
||||||
|
+ ncurses_config = env['ncurses_config']
|
||||||
|
+else:
|
||||||
|
+ ncurses_config = "ncurses5-config"
|
||||||
|
+
|
||||||
|
# The actual distinction here is whether the platform has ncurses in the
|
||||||
|
# base system or not. If it does, pkg-config is not likely to tell us
|
||||||
|
# anything useful. FreeBSD does, Linux doesn't. Most likely other BSDs
|
||||||
|
@@ -455,8 +461,8 @@
|
||||||
|
if env['ncurses']:
|
||||||
|
if config.CheckPKG('ncurses'):
|
||||||
|
ncurseslibs = pkg_config('ncurses')
|
||||||
|
- elif config.CheckExecutable('ncurses5-config --version', 'ncurses5-config'):
|
||||||
|
- ncurseslibs = ['!ncurses5-config --libs --cflags']
|
||||||
|
+ elif config.CheckExecutable('%s --version' % ncurses_config, 'ncurses5-config'):
|
||||||
|
+ ncurseslibs = ['!%s --libs --cflags' % ncurses_config]
|
||||||
|
elif sys.platform.startswith('freebsd'):
|
||||||
|
ncurseslibs= [ '-lncurses' ]
|
||||||
|
elif sys.platform.startswith('openbsd'):
|
|
@ -1,29 +0,0 @@
|
||||||
Hack gpsd to prevent undefined references to acs_map from ncurses.
|
|
||||||
|
|
||||||
Signed-off-by: Simon Dawson <spdawson@gmail.com>
|
|
||||||
diff -Nurp a/gpsmon.c b/gpsmon.c
|
|
||||||
--- a/gpsmon.c 2012-05-18 09:45:37.000000000 +0100
|
|
||||||
+++ b/gpsmon.c 2012-06-07 12:41:31.257807969 +0100
|
|
||||||
@@ -24,6 +24,9 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif /* S_SPLINT_S */
|
|
||||||
|
|
||||||
+/* Ugly hack to prevent undefined reference to acs_map */
|
|
||||||
+unsigned long acs_map[128];
|
|
||||||
+
|
|
||||||
#include "gpsd_config.h"
|
|
||||||
#ifdef HAVE_BLUEZ
|
|
||||||
#include <bluetooth/bluetooth.h>
|
|
||||||
diff -Nurp a/monitor_nmea.c b/monitor_nmea.c
|
|
||||||
--- a/monitor_nmea.c 2011-11-22 08:49:33.000000000 +0000
|
|
||||||
+++ b/monitor_nmea.c 2012-06-07 12:41:37.081807709 +0100
|
|
||||||
@@ -15,6 +15,9 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif /* S_SPLINT_S */
|
|
||||||
|
|
||||||
+/* Ugly hack to prevent undefined reference to acs_map */
|
|
||||||
+unsigned long acs_map[128];
|
|
||||||
+
|
|
||||||
#include "gpsd.h"
|
|
||||||
#include "gpsmon.h"
|
|
||||||
#include "gpsdclient.h"
|
|
|
@ -23,6 +23,7 @@ GPSD_SCONS_OPTS = \
|
||||||
|
|
||||||
ifeq ($(BR2_PACKAGE_NCURSES),y)
|
ifeq ($(BR2_PACKAGE_NCURSES),y)
|
||||||
GPSD_DEPENDENCIES += ncurses
|
GPSD_DEPENDENCIES += ncurses
|
||||||
|
GPSD_SCONS_OPTS += ncurses_config=$(STAGING_DIR)/usr/bin/ncurses5-config
|
||||||
else
|
else
|
||||||
GPSD_SCONS_OPTS += ncurses=no
|
GPSD_SCONS_OPTS += ncurses=no
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user