summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2011-03-17 21:41:22 +0100
committerKoen Kooi <koen@dominion.thruhere.net>2011-03-17 21:41:22 +0100
commitc58cc7d3796dcee6e93885c835ed04cb566abeb2 (patch)
tree3eea4d4ef6a4ef79e0f4e025d7012c1a5cc38835 /meta-oe/recipes-support
parenteec6ab97f712e06eb52c9f7c99e19ffab3ce9d74 (diff)
downloadmeta-openembedded-c58cc7d3796dcee6e93885c835ed04cb566abeb2.tar.gz
move layer into meta-oe in preparation for future splits
As per TSC decision Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'meta-oe/recipes-support')
-rw-r--r--meta-oe/recipes-support/atk/atk.inc11
-rw-r--r--meta-oe/recipes-support/atk/atk_1.30.0.bb20
-rw-r--r--meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch68
-rw-r--r--meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch11
-rw-r--r--meta-oe/recipes-support/cups/cups14.inc84
-rw-r--r--meta-oe/recipes-support/cups/cups_1.4.6.bb17
-rw-r--r--meta-oe/recipes-support/fftw/benchfft_3.1.bb20
-rw-r--r--meta-oe/recipes-support/fftw/fftw.inc23
-rw-r--r--meta-oe/recipes-support/fftw/fftw_3.1.2.bb8
-rw-r--r--meta-oe/recipes-support/fftw/fftw_3.2.2.bb8
-rw-r--r--meta-oe/recipes-support/fftw/fftwf_3.1.2.bb7
-rw-r--r--meta-oe/recipes-support/fftw/fftwf_3.2.2.bb8
-rw-r--r--meta-oe/recipes-support/fftw/fftwl_3.1.2.bb8
-rw-r--r--meta-oe/recipes-support/fftw/fftwl_3.2.2.bb8
-rw-r--r--meta-oe/recipes-support/gsl/gsl.inc10
-rw-r--r--meta-oe/recipes-support/gsl/gsl_1.12.bb6
-rw-r--r--meta-oe/recipes-support/guile/files/configure-fix.patch10
-rw-r--r--meta-oe/recipes-support/guile/files/cpp-linemarkers.patch8
-rw-r--r--meta-oe/recipes-support/guile/guile-1.8.7/18.diff1743
-rw-r--r--meta-oe/recipes-support/guile/guile-native.inc12
-rw-r--r--meta-oe/recipes-support/guile/guile-native_1.8.7.bb8
-rw-r--r--meta-oe/recipes-support/guile/guile.inc46
-rw-r--r--meta-oe/recipes-support/guile/guile_1.8.7.bb12
-rw-r--r--meta-oe/recipes-support/htop/htop/remove-proc-test.patch13
-rw-r--r--meta-oe/recipes-support/htop/htop_0.9.bb19
-rw-r--r--meta-oe/recipes-support/libgcrypt/libgcrypt.inc33
-rw-r--r--meta-oe/recipes-support/libgcrypt/libgcrypt/add-pkgconfig-support.patch49
-rw-r--r--meta-oe/recipes-support/libgcrypt/libgcrypt_1.4.6.bb3
-rw-r--r--meta-oe/recipes-support/libgpg-error/libgpg-error-1.8/pkgconfig.patch53
-rw-r--r--meta-oe/recipes-support/libgpg-error/libgpg-error_1.8.bb26
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat_0.1.3.bbappend4
-rw-r--r--meta-oe/recipes-support/mysql/files/autofoo.patch319
-rw-r--r--meta-oe/recipes-support/mysql/files/configure-ps-cache-check.patch27
-rw-r--r--meta-oe/recipes-support/mysql/files/fix_host_path.patch37
-rw-r--r--meta-oe/recipes-support/mysql/files/my.cnf21
-rw-r--r--meta-oe/recipes-support/mysql/files/mysqld.sh24
-rw-r--r--meta-oe/recipes-support/mysql/mysql5-native_5.1.40.bb28
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/Makefile.am.patch19
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/configure-ps-cache-check.patch27
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/configure.in.patch54
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/fix-abi-check-gcc45.patch77
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/fix_host_path.patch37
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/misc.m4.patch13
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/my.cnf21
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/mysqld.sh24
-rw-r--r--meta-oe/recipes-support/mysql/mysql5/plug.in.patch40
-rw-r--r--meta-oe/recipes-support/mysql/mysql5_5.1.40.bb6
-rw-r--r--meta-oe/recipes-support/mysql/mysql5_5.1.40.inc172
-rw-r--r--meta-oe/recipes-support/ntp/files/hipox/ntp.conf13
-rwxr-xr-xmeta-oe/recipes-support/ntp/files/hipox/ntpd62
-rwxr-xr-xmeta-oe/recipes-support/ntp/files/ntp31
-rw-r--r--meta-oe/recipes-support/ntp/files/ntp-4.2.4_p6-nano.patch17
-rw-r--r--meta-oe/recipes-support/ntp/files/ntp.conf13
-rwxr-xr-xmeta-oe/recipes-support/ntp/files/ntpd62
-rwxr-xr-xmeta-oe/recipes-support/ntp/files/ntpdate49
-rw-r--r--meta-oe/recipes-support/ntp/files/tickadj.c.patch32
-rw-r--r--meta-oe/recipes-support/ntp/ntp-ssl_4.2.6p3.bb11
-rw-r--r--meta-oe/recipes-support/ntp/ntp.inc33
-rw-r--r--meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb46
-rw-r--r--meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch12
-rw-r--r--meta-oe/recipes-support/postgresql/postgresql-8.4.4/remove.autoconf.version.check.patch15
-rw-r--r--meta-oe/recipes-support/postgresql/postgresql.inc66
-rw-r--r--meta-oe/recipes-support/postgresql/postgresql_8.4.4.bb11
-rw-r--r--meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch32
-rw-r--r--meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch20
-rw-r--r--meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc12
-rw-r--r--meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb60
67 files changed, 3899 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/atk/atk.inc b/meta-oe/recipes-support/atk/atk.inc
new file mode 100644
index 000000000..a508012cf
--- /dev/null
+++ b/meta-oe/recipes-support/atk/atk.inc
@@ -0,0 +1,11 @@
1DESCRIPTION = "An accessibility toolkit for GNOME."
2SECTION = "x11/libs"
3PRIORITY = "optional"
4LICENSE = "LGPL"
5
6DEPENDS = "glib-2.0 gtk-doc-native"
7
8inherit autotools pkgconfig
9
10EXTRA_OECONF = "--disable-glibtest"
11
diff --git a/meta-oe/recipes-support/atk/atk_1.30.0.bb b/meta-oe/recipes-support/atk/atk_1.30.0.bb
new file mode 100644
index 000000000..cc8f57381
--- /dev/null
+++ b/meta-oe/recipes-support/atk/atk_1.30.0.bb
@@ -0,0 +1,20 @@
1DESCRIPTION = "An accessibility toolkit for GNOME."
2SECTION = "x11/libs"
3PRIORITY = "optional"
4LICENSE = "LGPLv2 & LGPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
6 file://atk/atkutil.c;endline=20;md5=db21b0bdbef9da4dc6eb122debc9f9bc \
7 file://atk/atk.h;endline=20;md5=c58238d688c24387376d6c69d06248a7
8PR = "r1"
9
10inherit gnome
11
12SRC_URI[archive.md5sum] = "548d413775819fef425410739041cac3"
13SRC_URI[archive.sha256sum] = "92b9b1213cafc68fe9c3806273b968c26423237d7b1f631dd83dc5270b8c268c"
14
15DEPENDS = "glib-2.0 gtk-doc-native"
16
17EXTRA_OECONF += "--disable-glibtest"
18
19BBCLASSEXTEND = "native"
20
diff --git a/meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch b/meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch
new file mode 100644
index 000000000..7b544ca0e
--- /dev/null
+++ b/meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch
@@ -0,0 +1,68 @@
1From 90069586167b930befce7303aea57078f04b4ed8 Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Sun, 30 Jan 2011 16:37:27 +0100
4Subject: [PATCH] don't try to run generated binaries
5
6Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
7---
8 ppdc/Makefile | 30 +++++++++++++++---------------
9 1 files changed, 15 insertions(+), 15 deletions(-)
10
11diff --git a/ppdc/Makefile b/ppdc/Makefile
12index 0288d47..fc87f1b 100644
13--- a/ppdc/Makefile
14+++ b/ppdc/Makefile
15@@ -243,8 +243,8 @@ genstrings: genstrings.o libcupsppdc.a ../cups/libcups.a \
16 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
17 libcupsppdc.a ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) \
18 $(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
19- echo Generating localization strings...
20- ./genstrings >sample.c
21+# echo Generating localization strings...
22+# ./genstrings >sample.c
23
24
25 #
26@@ -261,9 +261,9 @@ ppdc-static: ppdc.o libcupsppdc.a ../cups/libcups.a foo.drv foo-fr.po
27 $(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
28 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
29 $(COMMONLIBS) $(LIBZ)
30- echo Testing PPD compiler...
31- ./ppdc-static -l en,fr -I ../data foo.drv
32- ./ppdc-static -l en,fr -z -I ../data foo.drv
33+# echo Testing PPD compiler...
34+# ./ppdc-static -l en,fr -I ../data foo.drv
35+# ./ppdc-static -l en,fr -z -I ../data foo.drv
36
37
38 #
39@@ -290,16 +290,16 @@ ppdi-static: ppdc-static ppdi.o libcupsppdc.a ../cups/libcups.a
40 ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
41 $(COMMONLIBS) $(LIBZ)
42 echo Testing PPD importer...
43- $(RM) -r ppd ppd2 sample-import.drv
44- ./ppdc-static -I ../data sample.drv
45- ./ppdi-static -I ../data -o sample-import.drv ppd/*
46- ./ppdc-static -I ../data -d ppd2 sample-import.drv
47- if diff -r ppd ppd2 >/dev/null; then \
48- echo PPD import OK; \
49- else \
50- echo PPD import FAILED; \
51- exit 1; \
52- fi
53+# $(RM) -r ppd ppd2 sample-import.drv
54+# ./ppdc-static -I ../data sample.drv
55+# ./ppdi-static -I ../data -o sample-import.drv ppd/*
56+# ./ppdc-static -I ../data -d ppd2 sample-import.drv
57+# if diff -r ppd ppd2 >/dev/null; then \
58+# echo PPD import OK; \
59+# else \
60+# echo PPD import FAILED; \
61+# exit 1; \
62+# fi
63
64
65 #
66--
671.6.6.1
68
diff --git a/meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch b/meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch
new file mode 100644
index 000000000..21ff0e535
--- /dev/null
+++ b/meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch
@@ -0,0 +1,11 @@
1--- a/init/cups.sh.in.orig 2008-10-04 16:50:46.000000000 -0300
2+++ b/init/cups.sh.in 2008-10-04 16:51:39.000000000 -0300
3@@ -68,7 +68,7 @@
4 ECHO_ERROR=:
5 ;;
6
7- Linux*)
8+ DISABLELinux*)
9 IS_ON=/bin/true
10 if test -f /etc/init.d/functions; then
11 . /etc/init.d/functions
diff --git a/meta-oe/recipes-support/cups/cups14.inc b/meta-oe/recipes-support/cups/cups14.inc
new file mode 100644
index 000000000..430d3ab5b
--- /dev/null
+++ b/meta-oe/recipes-support/cups/cups14.inc
@@ -0,0 +1,84 @@
1DESCRIPTION = "An Internet printing system for Unix."
2SECTION = "console/utils"
3LICENSE = "GPLv2 LGPLv2"
4DEPENDS = "gnutls libpng jpeg dbus dbus-glib zlib"
5PROVIDES = "cups14"
6
7SRC_URI = "ftp://ftp.easysw.com/pub/cups/${PV}/cups-${PV}-source.tar.bz2"
8
9LEAD_SONAME = "libcupsdriver.so"
10
11inherit autotools binconfig
12
13EXTRA_OECONF = " \
14 --enable-gnutls \
15 --enable-dbus \
16 --enable-browsing \
17 --disable-openssl \
18 --disable-tiff \
19 --without-php \
20 --without-perl \
21 --without-python \
22 --without-java \
23 "
24
25
26do_configure() {
27 gnu-configize
28 libtoolize --force
29 DSOFLAGS="${LDFLAGS}" oe_runconf
30}
31
32do_compile () {
33 sed -i s:STRIP:NOSTRIP: Makedefs
34 sed -i s:serial:: backend/Makefile
35
36 echo "all:" > man/Makefile
37 echo "libs:" >> man/Makefile
38 echo "install:" >> man/Makefile
39 echo "install-data:" >> man/Makefile
40 echo "install-exec:" >> man/Makefile
41 echo "install-headers:" >> man/Makefile
42 echo "install-libs:" >> man/Makefile
43
44 oe_runmake "SSLLIBS=-lgnutls -L${STAGING_LIBDIR}" \
45 "LIBPNG=-lpng -lm -L${STAGING_LIBDIR}" \
46 "LIBJPEG=-ljpeg -L${STAGING_LIBDIR}" \
47 "LIBZ=-lz -L${STAGING_LIBDIR}" \
48 "-I."
49}
50
51fakeroot do_install () {
52 oe_runmake "DSTROOT=${D}" install
53
54 # This directory gets installed with perms 511, which makes packaging fail
55 chmod 0711 "${D}/${localstatedir}/run/cups/certs"
56}
57
58python do_package_append() {
59 # Change permissions back the way they were, they probably had a reason...
60 workdir = bb.data.getVar('WORKDIR', d, 1)
61 os.system('chmod 0511 %s/install/cups/var/run/cups/certs' % workdir)
62}
63
64PACKAGES =+ "${PN}-lib ${PN}-libimage"
65
66FILES_${PN}-lib = "${libdir}/libcups.so.*"
67
68FILES_${PN}-libimage = "${libdir}/libcupsimage.so.*"
69
70FILES_${PN}-dbg += "${libdir}/cups/backend/.debug \
71 ${libdir}/cups/cgi-bin/.debug \
72 ${libdir}/cups/filter/.debug \
73 ${libdir}/cups/monitor/.debug \
74 ${libdir}/cups/notifier/.debug \
75 ${libdir}/cups/daemon/.debug \
76 "
77
78#package the html for the webgui inside the main packages (~1MB uncompressed)
79
80FILES_${PN} += "${datadir}/doc/cups/images \
81 ${datadir}/doc/cups/*html \
82 ${datadir}/doc/cups/*.css \
83 ${datadir}/icons/ \
84 "
diff --git a/meta-oe/recipes-support/cups/cups_1.4.6.bb b/meta-oe/recipes-support/cups/cups_1.4.6.bb
new file mode 100644
index 000000000..783ecf6b3
--- /dev/null
+++ b/meta-oe/recipes-support/cups/cups_1.4.6.bb
@@ -0,0 +1,17 @@
1require cups14.inc
2
3DEPENDS += "virtual/libusb0"
4
5LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=956e7600195e6139f12de8c2a5bbefa9"
6
7SRC_URI += " \
8 file://use_echo_only_in_init.patch \
9 file://0001-don-t-try-to-run-generated-binaries.patch \
10 "
11
12SRC_URI[md5sum] = "de8fb5a29c36554925c0c6a6e2c0dae1"
13SRC_URI[sha256sum] = "f08711702a77b52c7150f96fe1f45482f6151cb95ef601268c528607fe6ad514"
14
15EXTRA_OECONF += " --disable-gssapi --enable-debug --disable-relro --enable-libusb"
16
17CONFFILES_${PN} += "${sysconfdir}/cups/cupsd.conf"
diff --git a/meta-oe/recipes-support/fftw/benchfft_3.1.bb b/meta-oe/recipes-support/fftw/benchfft_3.1.bb
new file mode 100644
index 000000000..efa76cdce
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/benchfft_3.1.bb
@@ -0,0 +1,20 @@
1DESCRIPTION = "FFTW benchmarks"
2SECTION = "libs"
3PRIORITY = "optional"
4LICENSE = "GPLv2"
5
6# single precision fftw is called fftwf
7DEPENDS = "fftwf"
8
9SRC_URI = "http://www.fftw.org/benchfft/benchfft-${PV}.tar.gz"
10
11EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared"
12
13inherit autotools pkgconfig
14
15do_compile_prepend() {
16 sed -i -e 's:all-recursive:$(RECURSIVE_TARGETS):g' ${S}/Makefile
17}
18
19SRC_URI[md5sum] = "9356e5e9dcb3f1481977009720a2ccf8"
20SRC_URI[sha256sum] = "1b4a5b5e48ad5e61a21586b7b59d5c0a88691a981e73e2c6dc5868197461791b"
diff --git a/meta-oe/recipes-support/fftw/fftw.inc b/meta-oe/recipes-support/fftw/fftw.inc
new file mode 100644
index 000000000..40608b61d
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftw.inc
@@ -0,0 +1,23 @@
1DESCRIPTION = "FFTW"
2SECTION = "libs"
3PRIORITY = "optional"
4LICENSE = "GPL"
5RPROVIDES_${PN} += "libfftw3"
6
7PR = "r3"
8
9SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
10
11S = "${WORKDIR}/fftw-${PV}"
12
13inherit autotools pkgconfig
14
15do_configure_prepend() {
16 echo 'AM_PROG_AS' >> ${S}/configure.ac
17}
18
19PACKAGES =+ "lib${PN}"
20
21FILES_lib${PN} = "${libdir}/lib*.so.*"
22
23# rename binary in /bin and use u-a tpo choose between different precision implementations?
diff --git a/meta-oe/recipes-support/fftw/fftw_3.1.2.bb b/meta-oe/recipes-support/fftw/fftw_3.1.2.bb
new file mode 100644
index 000000000..da8133785
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftw_3.1.2.bb
@@ -0,0 +1,8 @@
1require fftw.inc
2
3EXTRA_OECONF = "--disable-fortran --enable-shared"
4
5
6
7SRC_URI[md5sum] = "08f2e21c9fd02f4be2bd53a62592afa4"
8SRC_URI[sha256sum] = "e1b92e97fe27efcbd150212d0d287ac907bd2fef0af32e16284fef5d1c1c26bf"
diff --git a/meta-oe/recipes-support/fftw/fftw_3.2.2.bb b/meta-oe/recipes-support/fftw/fftw_3.2.2.bb
new file mode 100644
index 000000000..090e00409
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftw_3.2.2.bb
@@ -0,0 +1,8 @@
1require fftw.inc
2
3SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
4
5EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
6
7SRC_URI[md5sum] = "b616e5c91218cc778b5aa735fefb61ae"
8SRC_URI[sha256sum] = "6aa7ae65ee49eb99004f15899f9bb77f54759122f1a350041e81e096157d768f"
diff --git a/meta-oe/recipes-support/fftw/fftwf_3.1.2.bb b/meta-oe/recipes-support/fftw/fftwf_3.1.2.bb
new file mode 100644
index 000000000..a4f246652
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftwf_3.1.2.bb
@@ -0,0 +1,7 @@
1require fftw.inc
2
3EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared"
4
5
6SRC_URI[md5sum] = "08f2e21c9fd02f4be2bd53a62592afa4"
7SRC_URI[sha256sum] = "e1b92e97fe27efcbd150212d0d287ac907bd2fef0af32e16284fef5d1c1c26bf"
diff --git a/meta-oe/recipes-support/fftw/fftwf_3.2.2.bb b/meta-oe/recipes-support/fftw/fftwf_3.2.2.bb
new file mode 100644
index 000000000..ac0bb6cd8
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftwf_3.2.2.bb
@@ -0,0 +1,8 @@
1require fftw.inc
2
3SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
4
5EXTRA_OECONF = "--disable-fortran --enable-single --enable-shared --enable-threads"
6
7SRC_URI[md5sum] = "b616e5c91218cc778b5aa735fefb61ae"
8SRC_URI[sha256sum] = "6aa7ae65ee49eb99004f15899f9bb77f54759122f1a350041e81e096157d768f"
diff --git a/meta-oe/recipes-support/fftw/fftwl_3.1.2.bb b/meta-oe/recipes-support/fftw/fftwl_3.1.2.bb
new file mode 100644
index 000000000..69256fb9f
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftwl_3.1.2.bb
@@ -0,0 +1,8 @@
1require fftw.inc
2
3EXTRA_OECONF = "--disable-fortran --enable-long-double --enable-shared"
4
5
6
7SRC_URI[md5sum] = "08f2e21c9fd02f4be2bd53a62592afa4"
8SRC_URI[sha256sum] = "e1b92e97fe27efcbd150212d0d287ac907bd2fef0af32e16284fef5d1c1c26bf"
diff --git a/meta-oe/recipes-support/fftw/fftwl_3.2.2.bb b/meta-oe/recipes-support/fftw/fftwl_3.2.2.bb
new file mode 100644
index 000000000..ff2cb2aaa
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftwl_3.2.2.bb
@@ -0,0 +1,8 @@
1require fftw.inc
2
3SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
4
5EXTRA_OECONF = "--disable-fortran --enable-long-double --enable-shared --enable-threads"
6
7SRC_URI[md5sum] = "b616e5c91218cc778b5aa735fefb61ae"
8SRC_URI[sha256sum] = "6aa7ae65ee49eb99004f15899f9bb77f54759122f1a350041e81e096157d768f"
diff --git a/meta-oe/recipes-support/gsl/gsl.inc b/meta-oe/recipes-support/gsl/gsl.inc
new file mode 100644
index 000000000..10bacc523
--- /dev/null
+++ b/meta-oe/recipes-support/gsl/gsl.inc
@@ -0,0 +1,10 @@
1DESCRIPTION = "GNU Scientific Library"
2HOMEPAGE = "http://www.gnu.org/software/gsl/"
3SECTION = "libs"
4PRIORITY = "optional"
5LICENSE = "GPL"
6PR = "r1"
7
8inherit autotools pkgconfig binconfig
9
10LEAD_SONAME = "libgsl.so"
diff --git a/meta-oe/recipes-support/gsl/gsl_1.12.bb b/meta-oe/recipes-support/gsl/gsl_1.12.bb
new file mode 100644
index 000000000..8fdbbc11e
--- /dev/null
+++ b/meta-oe/recipes-support/gsl/gsl_1.12.bb
@@ -0,0 +1,6 @@
1include gsl.inc
2
3SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
4
5SRC_URI[md5sum] = "3ec101903c8157756fa1352161bd4c39"
6SRC_URI[sha256sum] = "22019188d24c769acafc250ddc247105eb9cab099529b627078cbd8012c7b7b9"
diff --git a/meta-oe/recipes-support/guile/files/configure-fix.patch b/meta-oe/recipes-support/guile/files/configure-fix.patch
new file mode 100644
index 000000000..c59798d9e
--- /dev/null
+++ b/meta-oe/recipes-support/guile/files/configure-fix.patch
@@ -0,0 +1,10 @@
1--- /tmp/configure.in 2008-06-04 12:33:55.451086283 +0200
2+++ guile-1.8.5/configure.in 2008-06-04 12:34:03.974994278 +0200
3@@ -38,7 +38,6 @@
4 ]),
5 [bug-guile@gnu.org])
6 AC_CONFIG_AUX_DIR([build-aux])
7-AC_CONFIG_MACRO_DIR([m4])
8 AC_CONFIG_SRCDIR(GUILE-VERSION)
9
10 AM_INIT_AUTOMAKE([gnu no-define check-news])
diff --git a/meta-oe/recipes-support/guile/files/cpp-linemarkers.patch b/meta-oe/recipes-support/guile/files/cpp-linemarkers.patch
new file mode 100644
index 000000000..3e48932a3
--- /dev/null
+++ b/meta-oe/recipes-support/guile/files/cpp-linemarkers.patch
@@ -0,0 +1,8 @@
1--- guile.orig/libguile/guile-snarf-docs.in 2009-07-03 18:19:00.000000000 -0400
2+++ guile/libguile/guile-snarf-docs.in 2009-11-19 12:55:32.487266268 -0500
3@@ -23,4 +23,4 @@
4 ## Let the user override the preprocessor autoconf found.
5 test -n "${CPP+set}" || CPP="@CPP@"
6
7-${CPP} -DSCM_MAGIC_SNARF_DOCS "$@"
8+${CPP} -P -DSCM_MAGIC_SNARF_DOCS "$@"
diff --git a/meta-oe/recipes-support/guile/guile-1.8.7/18.diff b/meta-oe/recipes-support/guile/guile-1.8.7/18.diff
new file mode 100644
index 000000000..9c9eefb09
--- /dev/null
+++ b/meta-oe/recipes-support/guile/guile-1.8.7/18.diff
@@ -0,0 +1,1743 @@
1diff --git a/LICENSE b/LICENSE
2index 213e34a..dda451e 100644
3--- a/LICENSE
4+++ b/LICENSE
5@@ -1,2 +1,2 @@
6 Guile is covered under the terms of the GNU Lesser General Public
7-License, version 2.1. See COPYING.LESSER.
8+License, version 2.1 or later. See COPYING.LESSER.
9diff --git a/NEWS b/NEWS
10index 0dcc411..564484f 100644
11--- a/NEWS
12+++ b/NEWS
13@@ -5,6 +5,19 @@ See the end for copying conditions.
14 Please send Guile bug reports to bug-guile@gnu.org.
15
16
17+Changes in 1.8.8 (since 1.8.7)
18+
19+* Bugs fixed
20+
21+** Fix possible buffer overruns when parsing numbers
22+** Avoid clash with system setjmp/longjmp on IA64
23+** Don't dynamically link an extension that is already registered
24+** Fix `wrong type arg' exceptions with IPv6 addresses
25+** Fix typos in `(srfi srfi-19)'
26+** Have `(srfi srfi-35)' provide named struct vtables
27+** Fix some Interix build problems
28+
29+
30 Changes in 1.8.7 (since 1.8.6)
31
32 * Bugs fixed
33diff --git a/THANKS b/THANKS
34index 47d3cfa..48a105a 100644
35--- a/THANKS
36+++ b/THANKS
37@@ -50,6 +50,7 @@ For fixes or providing information which led to a fix:
38 Roland Haeder
39 Sven Hartrumpf
40 Eric Hanchrow
41+ Judy Hawkins
42 Sam Hocevar
43 Patrick Horgan
44 Ales Hvezda
45@@ -64,12 +65,15 @@ For fixes or providing information which led to a fix:
46 Matthias Köppe
47 Matt Kraai
48 Daniel Kraft
49+ Jay Krell
50 Jeff Long
51 Marco Maggi
52 Gregory Marton
53+ Kjetil S. Matheussen
54 Antoine Mathys
55 Dan McMahill
56 Roger Mc Murtrie
57+ Scott McPeak
58 Tim Mooney
59 Han-Wen Nienhuys
60 Jan Nieuwenhuizen
61diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi
62index 9aeb08a..f6393db 100644
63--- a/doc/ref/api-modules.texi
64+++ b/doc/ref/api-modules.texi
65@@ -758,7 +758,7 @@ Record definition with @code{define-record-type} (@pxref{SRFI-9}).
66 Read hash extension @code{#,()} (@pxref{SRFI-10}).
67
68 @item (srfi srfi-11)
69-Multiple-value handling with @code{let-values} and @code{let-values*}
70+Multiple-value handling with @code{let-values} and @code{let*-values}
71 (@pxref{SRFI-11}).
72
73 @item (srfi srfi-13)
74diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
75index 7c17b36..3d9cde4 100644
76--- a/doc/ref/guile.texi
77+++ b/doc/ref/guile.texi
78@@ -13,8 +13,8 @@ This reference manual documents Guile, GNU's Ubiquitous Intelligent
79 Language for Extensions. This is edition @value{MANUAL-EDITION}
80 corresponding to Guile @value{VERSION}.
81
82-Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005 Free
83-Software Foundation.
84+Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
85+2007, 2008, 2009, 2010 Free Software Foundation.
86
87 Permission is granted to copy, distribute and/or modify this document
88 under the terms of the GNU Free Documentation License, Version 1.2 or
89diff --git a/doc/ref/posix.texi b/doc/ref/posix.texi
90index 1cb273a..0a7e342 100644
91--- a/doc/ref/posix.texi
92+++ b/doc/ref/posix.texi
93@@ -2310,8 +2310,8 @@ Convert a network address from an integer to a printable string.
94
95 @lisp
96 (inet-ntop AF_INET 2130706433) @result{} "127.0.0.1"
97-(inet-ntop AF_INET6 (- (expt 2 128) 1)) @result{}
98-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
99+(inet-ntop AF_INET6 (- (expt 2 128) 1))
100+ @result{} "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"
101 @end lisp
102 @end deffn
103
104@@ -2882,8 +2882,8 @@ same as @code{make-socket-address} would take to make such an object
105 (@pxref{Network Socket Address}). The return value is unspecified.
106
107 @example
108-(connect sock AF_INET INADDR_LOCALHOST 23)
109-(connect sock (make-socket-address AF_INET INADDR_LOCALHOST 23))
110+(connect sock AF_INET INADDR_LOOPBACK 23)
111+(connect sock (make-socket-address AF_INET INADDR_LOOPBACK 23))
112 @end example
113 @end deffn
114
115diff --git a/ice-9/debugging/ice-9-debugger-extensions.scm b/ice-9/debugging/ice-9-debugger-extensions.scm
116index a8b8c97..fe04fc0 100644
117--- a/ice-9/debugging/ice-9-debugger-extensions.scm
118+++ b/ice-9/debugging/ice-9-debugger-extensions.scm
119@@ -39,7 +39,8 @@
120 (else
121 (define-module (ice-9 debugger))))
122
123-(use-modules (ice-9 debugging steps))
124+(use-modules (ice-9 debugging steps)
125+ (ice-9 debugging trace))
126
127 (define (assert-continuable state)
128 ;; Check that debugger is in a state where `continuing' makes sense.
129diff --git a/libguile/__scm.h b/libguile/__scm.h
130index b198f9d..e75f1a9 100644
131--- a/libguile/__scm.h
132+++ b/libguile/__scm.h
133@@ -3,7 +3,7 @@
134 #ifndef SCM___SCM_H
135 #define SCM___SCM_H
136
137-/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2003, 2006, 2007, 2008 Free Software Foundation, Inc.
138+/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2003, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
139 *
140 * This library is free software; you can redistribute it and/or
141 * modify it under the terms of the GNU Lesser General Public
142@@ -359,11 +359,9 @@
143 #define SCM_T_INT32_MIN SCM_I_TYPE_MIN(scm_t_int32,SCM_T_UINT32_MAX)
144 #define SCM_T_INT32_MAX SCM_I_TYPE_MAX(scm_t_int32,SCM_T_UINT32_MAX)
145
146-#if SCM_HAVE_T_INT64
147 #define SCM_T_UINT64_MAX SCM_I_UTYPE_MAX(scm_t_uint64)
148 #define SCM_T_INT64_MIN SCM_I_TYPE_MIN(scm_t_int64,SCM_T_UINT64_MAX)
149 #define SCM_T_INT64_MAX SCM_I_TYPE_MAX(scm_t_int64,SCM_T_UINT64_MAX)
150-#endif
151
152 #if SCM_SIZEOF_LONG_LONG
153 #define SCM_I_ULLONG_MAX SCM_I_UTYPE_MAX(unsigned long long)
154@@ -409,19 +407,28 @@
155 typedef struct {
156 ucontext_t ctx;
157 int fresh;
158- } jmp_buf;
159-# define setjmp(JB) \
160+ } scm_i_jmp_buf;
161+# define SCM_I_SETJMP(JB) \
162 ( (JB).fresh = 1, \
163 getcontext (&((JB).ctx)), \
164 ((JB).fresh ? ((JB).fresh = 0, 0) : 1) )
165-# define longjmp(JB,VAL) scm_ia64_longjmp (&(JB), VAL)
166- void scm_ia64_longjmp (jmp_buf *, int);
167+# define SCM_I_LONGJMP(JB,VAL) scm_ia64_longjmp (&(JB), VAL)
168+ void scm_ia64_longjmp (scm_i_jmp_buf *, int);
169 # else /* ndef __ia64__ */
170 # include <setjmp.h>
171 # endif /* ndef __ia64__ */
172 # endif /* ndef _CRAY1 */
173 #endif /* ndef vms */
174
175+/* For any platform where SCM_I_SETJMP hasn't been defined in some
176+ special way above, map SCM_I_SETJMP, SCM_I_LONGJMP and
177+ scm_i_jmp_buf to setjmp, longjmp and jmp_buf. */
178+#ifndef SCM_I_SETJMP
179+#define scm_i_jmp_buf jmp_buf
180+#define SCM_I_SETJMP setjmp
181+#define SCM_I_LONGJMP longjmp
182+#endif
183+
184 /* James Clark came up with this neat one instruction fix for
185 * continuations on the SPARC. It flushes the register windows so
186 * that all the state of the process is contained in the stack.
187diff --git a/libguile/continuations.c b/libguile/continuations.c
188index 69d2569..84a7fed 100644
189--- a/libguile/continuations.c
190+++ b/libguile/continuations.c
191@@ -127,7 +127,7 @@ scm_make_continuation (int *first)
192 continuation->offset = continuation->stack - src;
193 memcpy (continuation->stack, src, sizeof (SCM_STACKITEM) * stack_size);
194
195- *first = !setjmp (continuation->jmpbuf);
196+ *first = !SCM_I_SETJMP (continuation->jmpbuf);
197 if (*first)
198 {
199 #ifdef __ia64__
200@@ -224,12 +224,12 @@ copy_stack_and_call (scm_t_contregs *continuation, SCM val,
201 scm_i_set_last_debug_frame (continuation->dframe);
202
203 continuation->throw_value = val;
204- longjmp (continuation->jmpbuf, 1);
205+ SCM_I_LONGJMP (continuation->jmpbuf, 1);
206 }
207
208 #ifdef __ia64__
209 void
210-scm_ia64_longjmp (jmp_buf *JB, int VAL)
211+scm_ia64_longjmp (scm_i_jmp_buf *JB, int VAL)
212 {
213 scm_i_thread *t = SCM_I_CURRENT_THREAD;
214
215diff --git a/libguile/continuations.h b/libguile/continuations.h
216index f6fb96a..c61ab2d 100644
217--- a/libguile/continuations.h
218+++ b/libguile/continuations.h
219@@ -43,7 +43,7 @@ SCM_API scm_t_bits scm_tc16_continuation;
220 typedef struct
221 {
222 SCM throw_value;
223- jmp_buf jmpbuf;
224+ scm_i_jmp_buf jmpbuf;
225 SCM dynenv;
226 #ifdef __ia64__
227 void *backing_store;
228diff --git a/libguile/extensions.c b/libguile/extensions.c
229index 1090b8b..29cb58c 100644
230--- a/libguile/extensions.c
231+++ b/libguile/extensions.c
232@@ -76,6 +76,7 @@ load_extension (SCM lib, SCM init)
233 {
234 extension_t *ext;
235 char *clib, *cinit;
236+ int found = 0;
237
238 scm_dynwind_begin (0);
239
240@@ -89,10 +90,14 @@ load_extension (SCM lib, SCM init)
241 && !strcmp (ext->init, cinit))
242 {
243 ext->func (ext->data);
244+ found = 1;
245 break;
246 }
247
248 scm_dynwind_end ();
249+
250+ if (found)
251+ return;
252 }
253
254 /* Dynamically link the library. */
255diff --git a/libguile/filesys.c b/libguile/filesys.c
256index 70dfe15..c8acb13 100644
257--- a/libguile/filesys.c
258+++ b/libguile/filesys.c
259@@ -23,6 +23,9 @@
260 #ifdef __hpux
261 #define _POSIX_C_SOURCE 199506L /* for readdir_r */
262 #endif
263+#if defined(__INTERIX) && !defined(_REENTRANT)
264+# define _REENTRANT /* ask Interix for readdir_r prototype */
265+#endif
266
267 #ifdef HAVE_CONFIG_H
268 # include <config.h>
269diff --git a/libguile/gen-scmconfig.c b/libguile/gen-scmconfig.c
270index 85ebfae..e5de31d 100644
271--- a/libguile/gen-scmconfig.c
272+++ b/libguile/gen-scmconfig.c
273@@ -315,28 +315,10 @@ main (int argc, char *argv[])
274 return 1;
275
276 pf ("\n");
277- pf ("/* 64-bit integer -- if available SCM_HAVE_T_INT64 will be 1 and\n"
278- " scm_t_int64 will be a suitable type, otherwise SCM_HAVE_T_INT64\n"
279- " will be 0. */\n");
280- if (SCM_I_GSC_T_INT64)
281- {
282- pf ("#define SCM_HAVE_T_INT64 1 /* 0 or 1 */\n");
283- pf ("typedef %s scm_t_int64;\n", SCM_I_GSC_T_INT64);
284- }
285- else
286- pf ("#define SCM_HAVE_T_INT64 0 /* 0 or 1 */\n");
287-
288- pf ("\n");
289- pf ("/* 64-bit unsigned integer -- if available SCM_HAVE_T_UINT64 will\n"
290- " be 1 and scm_t_uint64 will be a suitable type, otherwise\n"
291- " SCM_HAVE_T_UINT64 will be 0. */\n");
292- if (SCM_I_GSC_T_UINT64)
293- {
294- pf ("#define SCM_HAVE_T_UINT64 1 /* 0 or 1 */\n");
295- pf ("typedef %s scm_t_uint64;\n", SCM_I_GSC_T_UINT64);
296- }
297- else
298- pf ("#define SCM_HAVE_T_UINT64 0 /* 0 or 1 */\n");
299+ pf ("#define SCM_HAVE_T_INT64 1 /* 0 or 1 */\n");
300+ pf ("typedef %s scm_t_int64;\n", SCM_I_GSC_T_INT64);
301+ pf ("#define SCM_HAVE_T_UINT64 1 /* 0 or 1 */\n");
302+ pf ("typedef %s scm_t_uint64;\n", SCM_I_GSC_T_UINT64);
303
304 pf ("\n");
305 pf ("/* scm_t_ptrdiff_t and size, always defined -- defined to long if\n"
306diff --git a/libguile/hashtab.c b/libguile/hashtab.c
307index ea7fc69..1f1569c 100644
308--- a/libguile/hashtab.c
309+++ b/libguile/hashtab.c
310@@ -1,4 +1,4 @@
311-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2003, 2004, 2006, 2008 Free Software Foundation, Inc.
312+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2003, 2004, 2006, 2008, 2010 Free Software Foundation, Inc.
313 *
314 * This library is free software; you can redistribute it and/or
315 * modify it under the terms of the GNU Lesser General Public
316@@ -911,74 +911,6 @@ SCM_DEFINE (scm_hashx_remove_x, "hashx-remove!", 4, 0, 0,
317
318 /* Hash table iterators */
319
320-static const char s_scm_hash_fold[];
321-
322-SCM
323-scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table)
324-{
325- long i, n;
326- SCM buckets, result = init;
327-
328- if (SCM_HASHTABLE_P (table))
329- buckets = SCM_HASHTABLE_VECTOR (table);
330- else
331- buckets = table;
332-
333- n = SCM_SIMPLE_VECTOR_LENGTH (buckets);
334- for (i = 0; i < n; ++i)
335- {
336- SCM ls = SCM_SIMPLE_VECTOR_REF (buckets, i), handle;
337- while (!scm_is_null (ls))
338- {
339- if (!scm_is_pair (ls))
340- scm_wrong_type_arg (s_scm_hash_fold, SCM_ARG3, buckets);
341- handle = SCM_CAR (ls);
342- if (!scm_is_pair (handle))
343- scm_wrong_type_arg (s_scm_hash_fold, SCM_ARG3, buckets);
344- result = fn (closure, SCM_CAR (handle), SCM_CDR (handle), result);
345- ls = SCM_CDR (ls);
346- }
347- }
348-
349- return result;
350-}
351-
352-/* The following redundant code is here in order to be able to support
353- hash-for-each-handle. An alternative would have been to replace
354- this code and scm_internal_hash_fold above with a single
355- scm_internal_hash_fold_handles, but we don't want to promote such
356- an API. */
357-
358-static const char s_scm_hash_for_each[];
359-
360-void
361-scm_internal_hash_for_each_handle (SCM (*fn) (), void *closure, SCM table)
362-{
363- long i, n;
364- SCM buckets;
365-
366- if (SCM_HASHTABLE_P (table))
367- buckets = SCM_HASHTABLE_VECTOR (table);
368- else
369- buckets = table;
370-
371- n = SCM_SIMPLE_VECTOR_LENGTH (buckets);
372- for (i = 0; i < n; ++i)
373- {
374- SCM ls = SCM_SIMPLE_VECTOR_REF (buckets, i), handle;
375- while (!scm_is_null (ls))
376- {
377- if (!scm_is_pair (ls))
378- scm_wrong_type_arg (s_scm_hash_for_each, SCM_ARG3, buckets);
379- handle = SCM_CAR (ls);
380- if (!scm_is_pair (handle))
381- scm_wrong_type_arg (s_scm_hash_for_each, SCM_ARG3, buckets);
382- fn (closure, handle);
383- ls = SCM_CDR (ls);
384- }
385- }
386-}
387-
388 SCM_DEFINE (scm_hash_fold, "hash-fold", 3, 0, 0,
389 (SCM proc, SCM init, SCM table),
390 "An iterator over hash-table elements.\n"
391@@ -1067,6 +999,72 @@ SCM_DEFINE (scm_hash_map_to_list, "hash-map->list", 2, 0, 0,
392
393
394
395+SCM
396+scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table)
397+{
398+ long i, n;
399+ SCM buckets, result = init;
400+
401+ if (SCM_HASHTABLE_P (table))
402+ buckets = SCM_HASHTABLE_VECTOR (table);
403+ else
404+ buckets = table;
405+
406+ n = SCM_SIMPLE_VECTOR_LENGTH (buckets);
407+ for (i = 0; i < n; ++i)
408+ {
409+ SCM ls = SCM_SIMPLE_VECTOR_REF (buckets, i), handle;
410+ while (!scm_is_null (ls))
411+ {
412+ if (!scm_is_pair (ls))
413+ scm_wrong_type_arg (s_scm_hash_fold, SCM_ARG3, buckets);
414+ handle = SCM_CAR (ls);
415+ if (!scm_is_pair (handle))
416+ scm_wrong_type_arg (s_scm_hash_fold, SCM_ARG3, buckets);
417+ result = fn (closure, SCM_CAR (handle), SCM_CDR (handle), result);
418+ ls = SCM_CDR (ls);
419+ }
420+ }
421+
422+ return result;
423+}
424+
425+/* The following redundant code is here in order to be able to support
426+ hash-for-each-handle. An alternative would have been to replace
427+ this code and scm_internal_hash_fold above with a single
428+ scm_internal_hash_fold_handles, but we don't want to promote such
429+ an API. */
430+
431+void
432+scm_internal_hash_for_each_handle (SCM (*fn) (), void *closure, SCM table)
433+{
434+ long i, n;
435+ SCM buckets;
436+
437+ if (SCM_HASHTABLE_P (table))
438+ buckets = SCM_HASHTABLE_VECTOR (table);
439+ else
440+ buckets = table;
441+
442+ n = SCM_SIMPLE_VECTOR_LENGTH (buckets);
443+ for (i = 0; i < n; ++i)
444+ {
445+ SCM ls = SCM_SIMPLE_VECTOR_REF (buckets, i), handle;
446+ while (!scm_is_null (ls))
447+ {
448+ if (!scm_is_pair (ls))
449+ scm_wrong_type_arg (s_scm_hash_for_each, SCM_ARG3, buckets);
450+ handle = SCM_CAR (ls);
451+ if (!scm_is_pair (handle))
452+ scm_wrong_type_arg (s_scm_hash_for_each, SCM_ARG3, buckets);
453+ fn (closure, handle);
454+ ls = SCM_CDR (ls);
455+ }
456+ }
457+}
458+
459+
460+
461
462 void
463 scm_hashtab_prehistory ()
464diff --git a/libguile/iselect.h b/libguile/iselect.h
465index 5a4b30d..b23a641 100644
466--- a/libguile/iselect.h
467+++ b/libguile/iselect.h
468@@ -38,7 +38,12 @@
469 #ifdef FD_SET
470
471 #define SELECT_TYPE fd_set
472+#if defined(__INTERIX) && FD_SETSIZE == 4096
473+/* Interix defines FD_SETSIZE 4096 but select rejects that. */
474+#define SELECT_SET_SIZE 1024
475+#else
476 #define SELECT_SET_SIZE FD_SETSIZE
477+#endif
478
479 #else /* no FD_SET */
480
481diff --git a/libguile/numbers.c b/libguile/numbers.c
482index 2e1635f..4f5ab31 100644
483--- a/libguile/numbers.c
484+++ b/libguile/numbers.c
485@@ -1,4 +1,4 @@
486-/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
487+/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
488 *
489 * Portions Copyright 1990, 1991, 1992, 1993 by AT&T Bell Laboratories
490 * and Bellcore. See scm_divide.
491@@ -620,7 +620,14 @@ guile_ieee_init (void)
492 #elif HAVE_DINFINITY
493 /* OSF */
494 extern unsigned int DINFINITY[2];
495- guile_Inf = (*((double *) (DINFINITY)));
496+ union
497+ {
498+ double d;
499+ int i[2];
500+ } alias;
501+ alias.i[0] = DINFINITY[0];
502+ alias.i[1] = DINFINITY[1];
503+ guile_Inf = alias.d;
504 #else
505 double tmp = 1e+10;
506 guile_Inf = tmp;
507@@ -651,7 +658,14 @@ guile_ieee_init (void)
508 {
509 /* OSF */
510 extern unsigned int DQNAN[2];
511- guile_NaN = (*((double *)(DQNAN)));
512+ union
513+ {
514+ double d;
515+ int i[2];
516+ } alias;
517+ alias.i[0] = DQNAN[0];
518+ alias.i[1] = DQNAN[1];
519+ guile_NaN = alias.d;
520 }
521 #else
522 guile_NaN = guile_Inf / guile_Inf;
523@@ -2663,17 +2677,26 @@ mem2decimal_from_point (SCM result, const char* mem, size_t len,
524 case 'l': case 'L':
525 case 's': case 'S':
526 idx++;
527+ if (idx == len)
528+ return SCM_BOOL_F;
529+
530 start = idx;
531 c = mem[idx];
532 if (c == '-')
533 {
534 idx++;
535+ if (idx == len)
536+ return SCM_BOOL_F;
537+
538 sign = -1;
539 c = mem[idx];
540 }
541 else if (c == '+')
542 {
543 idx++;
544+ if (idx == len)
545+ return SCM_BOOL_F;
546+
547 sign = 1;
548 c = mem[idx];
549 }
550@@ -2789,8 +2812,10 @@ mem2ureal (const char* mem, size_t len, unsigned int *p_idx,
551 SCM divisor;
552
553 idx++;
554+ if (idx == len)
555+ return SCM_BOOL_F;
556
557- divisor = mem2uinteger (mem, len, &idx, radix, &x);
558+ divisor = mem2uinteger (mem, len, &idx, radix, &x);
559 if (scm_is_false (divisor))
560 return SCM_BOOL_F;
561
562@@ -2911,11 +2936,15 @@ mem2complex (const char* mem, size_t len, unsigned int idx,
563 if (c == '+')
564 {
565 idx++;
566+ if (idx == len)
567+ return SCM_BOOL_F;
568 sign = 1;
569 }
570 else if (c == '-')
571 {
572 idx++;
573+ if (idx == len)
574+ return SCM_BOOL_F;
575 sign = -1;
576 }
577 else
578@@ -5869,8 +5898,6 @@ scm_i_range_error (SCM bad_val, SCM min, SCM max)
579 #define SCM_FROM_TYPE_PROTO(arg) scm_from_uint32 (arg)
580 #include "libguile/conv-uinteger.i.c"
581
582-#if SCM_HAVE_T_INT64
583-
584 #define TYPE scm_t_int64
585 #define TYPE_MIN SCM_T_INT64_MIN
586 #define TYPE_MAX SCM_T_INT64_MAX
587@@ -5887,8 +5914,6 @@ scm_i_range_error (SCM bad_val, SCM min, SCM max)
588 #define SCM_FROM_TYPE_PROTO(arg) scm_from_uint64 (arg)
589 #include "libguile/conv-uinteger.i.c"
590
591-#endif
592-
593 void
594 scm_to_mpz (SCM val, mpz_t rop)
595 {
596diff --git a/libguile/numbers.h b/libguile/numbers.h
597index 2c2fdcf..35263a4 100644
598--- a/libguile/numbers.h
599+++ b/libguile/numbers.h
600@@ -3,7 +3,7 @@
601 #ifndef SCM_NUMBERS_H
602 #define SCM_NUMBERS_H
603
604-/* Copyright (C) 1995,1996,1998,2000,2001,2002,2003,2004,2005, 2006 Free Software Foundation, Inc.
605+/* Copyright (C) 1995,1996,1998,2000,2001,2002,2003,2004,2005, 2006, 2010 Free Software Foundation, Inc.
606 *
607 * This library is free software; you can redistribute it and/or
608 * modify it under the terms of the GNU Lesser General Public
609@@ -321,16 +321,12 @@ SCM_API SCM scm_from_int32 (scm_t_int32 x);
610 SCM_API scm_t_uint32 scm_to_uint32 (SCM x);
611 SCM_API SCM scm_from_uint32 (scm_t_uint32 x);
612
613-#if SCM_HAVE_T_INT64
614-
615 SCM_API scm_t_int64 scm_to_int64 (SCM x);
616 SCM_API SCM scm_from_int64 (scm_t_int64 x);
617
618 SCM_API scm_t_uint64 scm_to_uint64 (SCM x);
619 SCM_API SCM scm_from_uint64 (scm_t_uint64 x);
620
621-#endif
622-
623 SCM_API void scm_to_mpz (SCM x, mpz_t rop);
624 SCM_API SCM scm_from_mpz (mpz_t rop);
625
626diff --git a/libguile/random.c b/libguile/random.c
627index 8d2ff03..693ed4a 100644
628--- a/libguile/random.c
629+++ b/libguile/random.c
630@@ -1,4 +1,4 @@
631-/* Copyright (C) 1999,2000,2001, 2003, 2005, 2006 Free Software Foundation, Inc.
632+/* Copyright (C) 1999,2000,2001, 2003, 2005, 2006, 2010 Free Software Foundation, Inc.
633 * This library is free software; you can redistribute it and/or
634 * modify it under the terms of the GNU Lesser General Public
635 * License as published by the Free Software Foundation; either
636@@ -75,8 +75,6 @@ scm_t_rng scm_the_rng;
637 #define M_PI 3.14159265359
638 #endif
639
640-#if SCM_HAVE_T_UINT64
641-
642 unsigned long
643 scm_i_uniform32 (scm_t_i_rstate *state)
644 {
645@@ -87,38 +85,6 @@ scm_i_uniform32 (scm_t_i_rstate *state)
646 return w;
647 }
648
649-#else
650-
651-/* ww This is a portable version of the same RNG without 64 bit
652- * * aa arithmetic.
653- * ----
654- * xx It is only intended to provide identical behaviour on
655- * xx platforms without 8 byte longs or long longs until
656- * xx someone has implemented the routine in assembler code.
657- * xxcc
658- * ----
659- * ccww
660- */
661-
662-#define L(x) ((x) & 0xffff)
663-#define H(x) ((x) >> 16)
664-
665-unsigned long
666-scm_i_uniform32 (scm_t_i_rstate *state)
667-{
668- scm_t_uint32 x1 = L (A) * L (state->w);
669- scm_t_uint32 x2 = L (A) * H (state->w);
670- scm_t_uint32 x3 = H (A) * L (state->w);
671- scm_t_uint32 w = L (x1) + L (state->c);
672- scm_t_uint32 m = H (x1) + L (x2) + L (x3) + H (state->c) + H (w);
673- scm_t_uint32 x4 = H (A) * H (state->w);
674- state->w = w = (L (m) << 16) + L (w);
675- state->c = H (x2) + H (x3) + x4 + H (m);
676- return w;
677-}
678-
679-#endif
680-
681 void
682 scm_i_init_rstate (scm_t_i_rstate *state, const char *seed, int n)
683 {
684@@ -212,21 +178,49 @@ scm_c_exp1 (scm_t_rstate *state)
685
686 unsigned char scm_masktab[256];
687
688-unsigned long
689-scm_c_random (scm_t_rstate *state, unsigned long m)
690+static inline scm_t_uint32
691+scm_i_mask32 (scm_t_uint32 m)
692 {
693- unsigned int r, mask;
694- mask = (m < 0x100
695+ return (m < 0x100
696 ? scm_masktab[m]
697 : (m < 0x10000
698 ? scm_masktab[m >> 8] << 8 | 0xff
699 : (m < 0x1000000
700 ? scm_masktab[m >> 16] << 16 | 0xffff
701 : scm_masktab[m >> 24] << 24 | 0xffffff)));
702+}
703+
704+static scm_t_uint32
705+scm_c_random32 (scm_t_rstate *state, scm_t_uint32 m)
706+{
707+ scm_t_uint32 r, mask = scm_i_mask32 (m);
708 while ((r = scm_the_rng.random_bits (state) & mask) >= m);
709 return r;
710 }
711
712+/* Returns 32 random bits. */
713+unsigned long
714+scm_c_random (scm_t_rstate *state, unsigned long m)
715+{
716+ return scm_c_random32 (state, (scm_t_uint32)m);
717+}
718+
719+scm_t_uint64
720+scm_c_random64 (scm_t_rstate *state, scm_t_uint64 m)
721+{
722+ scm_t_uint64 r;
723+ scm_t_uint32 mask;
724+
725+ if (m <= SCM_T_UINT32_MAX)
726+ return scm_c_random32 (state, (scm_t_uint32) m);
727+
728+ mask = scm_i_mask32 (m >> 32);
729+ while ((r = ((scm_t_uint64) (scm_the_rng.random_bits (state) & mask) << 32)
730+ | scm_the_rng.random_bits (state)) >= m)
731+ ;
732+ return r;
733+}
734+
735 /*
736 SCM scm_c_random_bignum (scm_t_rstate *state, SCM m)
737
738@@ -247,24 +241,24 @@ scm_c_random_bignum (scm_t_rstate *state, SCM m)
739 {
740 SCM result = scm_i_mkbig ();
741 const size_t m_bits = mpz_sizeinbase (SCM_I_BIG_MPZ (m), 2);
742- /* how many bits would only partially fill the last unsigned long? */
743- const size_t end_bits = m_bits % (sizeof (unsigned long) * SCM_CHAR_BIT);
744- unsigned long *random_chunks = NULL;
745- const unsigned long num_full_chunks =
746- m_bits / (sizeof (unsigned long) * SCM_CHAR_BIT);
747- const unsigned long num_chunks = num_full_chunks + ((end_bits) ? 1 : 0);
748+ /* how many bits would only partially fill the last u32? */
749+ const size_t end_bits = m_bits % (sizeof (scm_t_uint32) * SCM_CHAR_BIT);
750+ scm_t_uint32 *random_chunks = NULL;
751+ const scm_t_uint32 num_full_chunks =
752+ m_bits / (sizeof (scm_t_uint32) * SCM_CHAR_BIT);
753+ const scm_t_uint32 num_chunks = num_full_chunks + ((end_bits) ? 1 : 0);
754
755 /* we know the result will be this big */
756 mpz_realloc2 (SCM_I_BIG_MPZ (result), m_bits);
757
758 random_chunks =
759- (unsigned long *) scm_gc_calloc (num_chunks * sizeof (unsigned long),
760+ (scm_t_uint32 *) scm_gc_calloc (num_chunks * sizeof (scm_t_uint32),
761 "random bignum chunks");
762
763 do
764 {
765- unsigned long *current_chunk = random_chunks + (num_chunks - 1);
766- unsigned long chunks_left = num_chunks;
767+ scm_t_uint32 *current_chunk = random_chunks + (num_chunks - 1);
768+ scm_t_uint32 chunks_left = num_chunks;
769
770 mpz_set_ui (SCM_I_BIG_MPZ (result), 0);
771
772@@ -273,23 +267,23 @@ scm_c_random_bignum (scm_t_rstate *state, SCM m)
773 /* generate a mask with ones in the end_bits position, i.e. if
774 end_bits is 3, then we'd have a mask of ...0000000111 */
775 const unsigned long rndbits = scm_the_rng.random_bits (state);
776- int rshift = (sizeof (unsigned long) * SCM_CHAR_BIT) - end_bits;
777- unsigned long mask = ((unsigned long) ULONG_MAX) >> rshift;
778- unsigned long highest_bits = rndbits & mask;
779+ int rshift = (sizeof (scm_t_uint32) * SCM_CHAR_BIT) - end_bits;
780+ scm_t_uint32 mask = 0xffffffff >> rshift;
781+ scm_t_uint32 highest_bits = ((scm_t_uint32) rndbits) & mask;
782 *current_chunk-- = highest_bits;
783 chunks_left--;
784 }
785
786 while (chunks_left)
787 {
788- /* now fill in the remaining unsigned long sized chunks */
789+ /* now fill in the remaining scm_t_uint32 sized chunks */
790 *current_chunk-- = scm_the_rng.random_bits (state);
791 chunks_left--;
792 }
793 mpz_import (SCM_I_BIG_MPZ (result),
794 num_chunks,
795 -1,
796- sizeof (unsigned long),
797+ sizeof (scm_t_uint32),
798 0,
799 0,
800 random_chunks);
801@@ -297,7 +291,7 @@ scm_c_random_bignum (scm_t_rstate *state, SCM m)
802 all bits in order not to get a distorted distribution) */
803 } while (mpz_cmp (SCM_I_BIG_MPZ (result), SCM_I_BIG_MPZ (m)) >= 0);
804 scm_gc_free (random_chunks,
805- num_chunks * sizeof (unsigned long),
806+ num_chunks * sizeof (scm_t_uint32),
807 "random bignum chunks");
808 return scm_i_normbig (result);
809 }
810@@ -348,9 +342,17 @@ SCM_DEFINE (scm_random, "random", 1, 1, 0,
811 SCM_VALIDATE_RSTATE (2, state);
812 if (SCM_I_INUMP (n))
813 {
814- unsigned long m = SCM_I_INUM (n);
815- SCM_ASSERT_RANGE (1, n, m > 0);
816- return scm_from_ulong (scm_c_random (SCM_RSTATE (state), m));
817+ unsigned long m = (unsigned long) SCM_I_INUM (n);
818+ SCM_ASSERT_RANGE (1, n, SCM_I_INUM (n) > 0);
819+#if SCM_SIZEOF_UNSIGNED_LONG <= 4
820+ return scm_from_uint32 (scm_c_random (SCM_RSTATE (state),
821+ (scm_t_uint32) m));
822+#elif SCM_SIZEOF_UNSIGNED_LONG <= 8
823+ return scm_from_uint64 (scm_c_random64 (SCM_RSTATE (state),
824+ (scm_t_uint64) m));
825+#else
826+#error "Cannot deal with this platform's unsigned long size"
827+#endif
828 }
829 SCM_VALIDATE_NIM (1, n);
830 if (SCM_REALP (n))
831diff --git a/libguile/random.h b/libguile/random.h
832index 6ec43ff..0690b59 100644
833--- a/libguile/random.h
834+++ b/libguile/random.h
835@@ -3,7 +3,7 @@
836 #ifndef SCM_RANDOM_H
837 #define SCM_RANDOM_H
838
839-/* Copyright (C) 1999,2000,2001, 2006 Free Software Foundation, Inc.
840+/* Copyright (C) 1999,2000,2001, 2006, 2010 Free Software Foundation, Inc.
841 *
842 * This library is free software; you can redistribute it and/or
843 * modify it under the terms of the GNU Lesser General Public
844@@ -45,6 +45,7 @@ typedef struct scm_t_rstate {
845
846 typedef struct scm_t_rng {
847 size_t rstate_size; /* size of random state */
848+ /* Though this returns an unsigned long, it's only 32 bits of randomness. */
849 unsigned long (*random_bits) (scm_t_rstate *state); /* gives 32 random bits */
850 void (*init_rstate) (scm_t_rstate *state, const char *seed, int n);
851 scm_t_rstate *(*copy_rstate) (scm_t_rstate *state);
852@@ -62,6 +63,7 @@ typedef struct scm_t_i_rstate {
853 unsigned long c;
854 } scm_t_i_rstate;
855
856+/* Though this returns an unsigned long, it's only 32 bits of randomness. */
857 SCM_API unsigned long scm_i_uniform32 (scm_t_i_rstate *);
858 SCM_API void scm_i_init_rstate (scm_t_i_rstate *, const char *seed, int n);
859 SCM_API scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *);
860@@ -76,7 +78,10 @@ SCM_API scm_t_rstate *scm_c_default_rstate (void);
861 SCM_API double scm_c_uniform01 (scm_t_rstate *);
862 SCM_API double scm_c_normal01 (scm_t_rstate *);
863 SCM_API double scm_c_exp1 (scm_t_rstate *);
864+/* Though this returns an unsigned long, it's only 32 bits of randomness. */
865 SCM_API unsigned long scm_c_random (scm_t_rstate *, unsigned long m);
866+/* This one returns 64 bits of randomness. */
867+SCM_API scm_t_uint64 scm_c_random64 (scm_t_rstate *state, scm_t_uint64 m);
868 SCM_API SCM scm_c_random_bignum (scm_t_rstate *, SCM m);
869
870
871diff --git a/libguile/socket.c b/libguile/socket.c
872index f34b6d4..cb954f4 100644
873--- a/libguile/socket.c
874+++ b/libguile/socket.c
875@@ -347,7 +347,7 @@ scm_to_ipv6 (scm_t_uint8 dst[16], SCM src)
876 scm_remember_upto_here_1 (src);
877 }
878 else
879- scm_wrong_type_arg (NULL, 0, src);
880+ scm_wrong_type_arg_msg ("scm_to_ipv6", 0, src, "integer");
881 }
882
883 #ifdef HAVE_INET_PTON
884@@ -397,8 +397,8 @@ SCM_DEFINE (scm_inet_ntop, "inet-ntop", 2, 0, 0,
885 "@var{family} can be @code{AF_INET} or @code{AF_INET6}. E.g.,\n\n"
886 "@lisp\n"
887 "(inet-ntop AF_INET 2130706433) @result{} \"127.0.0.1\"\n"
888- "(inet-ntop AF_INET6 (- (expt 2 128) 1)) @result{}\n"
889- "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff\n"
890+ "(inet-ntop AF_INET6 (- (expt 2 128) 1))\n"
891+ " @result{} \"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff\"\n"
892 "@end lisp")
893 #define FUNC_NAME s_scm_inet_ntop
894 {
895@@ -1167,7 +1167,8 @@ scm_to_sockaddr (SCM address, size_t *address_size)
896 {
897 struct sockaddr_in6 c_inet6;
898
899- scm_to_ipv6 (c_inet6.sin6_addr.s6_addr, address);
900+ scm_to_ipv6 (c_inet6.sin6_addr.s6_addr,
901+ SCM_SIMPLE_VECTOR_REF (address, 1));
902 c_inet6.sin6_port =
903 htons (scm_to_ushort (SCM_SIMPLE_VECTOR_REF (address, 2)));
904 c_inet6.sin6_flowinfo =
905diff --git a/libguile/srfi-4.c b/libguile/srfi-4.c
906index b0e052a..f2a9d7f 100644
907--- a/libguile/srfi-4.c
908+++ b/libguile/srfi-4.c
909@@ -1,6 +1,6 @@
910 /* srfi-4.c --- Uniform numeric vector datatypes.
911 *
912- * Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
913+ * Copyright (C) 2001, 2004, 2006, 2010 Free Software Foundation, Inc.
914 *
915 * This library is free software; you can redistribute it and/or
916 * modify it under the terms of the GNU Lesser General Public
917@@ -84,11 +84,7 @@ static const int uvec_sizes[12] = {
918 1, 1,
919 2, 2,
920 4, 4,
921-#if SCM_HAVE_T_INT64
922 8, 8,
923-#else
924- sizeof (SCM), sizeof (SCM),
925-#endif
926 sizeof(float), sizeof(double),
927 2*sizeof(float), 2*sizeof(double)
928 };
929@@ -127,10 +123,8 @@ uvec_print (SCM uvec, SCM port, scm_print_state *pstate)
930 scm_t_int16 *s16;
931 scm_t_uint32 *u32;
932 scm_t_int32 *s32;
933-#if SCM_HAVE_T_INT64
934 scm_t_uint64 *u64;
935 scm_t_int64 *s64;
936-#endif
937 float *f32;
938 double *f64;
939 SCM *fake_64;
940@@ -148,13 +142,8 @@ uvec_print (SCM uvec, SCM port, scm_print_state *pstate)
941 case SCM_UVEC_S16: np.s16 = (scm_t_int16 *) uptr; break;
942 case SCM_UVEC_U32: np.u32 = (scm_t_uint32 *) uptr; break;
943 case SCM_UVEC_S32: np.s32 = (scm_t_int32 *) uptr; break;
944-#if SCM_HAVE_T_INT64
945 case SCM_UVEC_U64: np.u64 = (scm_t_uint64 *) uptr; break;
946 case SCM_UVEC_S64: np.s64 = (scm_t_int64 *) uptr; break;
947-#else
948- case SCM_UVEC_U64:
949- case SCM_UVEC_S64: np.fake_64 = (SCM *) uptr; break;
950-#endif
951 case SCM_UVEC_F32: np.f32 = (float *) uptr; break;
952 case SCM_UVEC_F64: np.f64 = (double *) uptr; break;
953 case SCM_UVEC_C32: np.f32 = (float *) uptr; break;
954@@ -179,14 +168,8 @@ uvec_print (SCM uvec, SCM port, scm_print_state *pstate)
955 case SCM_UVEC_S16: scm_intprint (*np.s16, 10, port); np.s16++; break;
956 case SCM_UVEC_U32: scm_uintprint (*np.u32, 10, port); np.u32++; break;
957 case SCM_UVEC_S32: scm_intprint (*np.s32, 10, port); np.s32++; break;
958-#if SCM_HAVE_T_INT64
959 case SCM_UVEC_U64: scm_uintprint (*np.u64, 10, port); np.u64++; break;
960 case SCM_UVEC_S64: scm_intprint (*np.s64, 10, port); np.s64++; break;
961-#else
962- case SCM_UVEC_U64:
963- case SCM_UVEC_S64: scm_iprin1 (*np.fake_64, port, pstate);
964- np.fake_64++; break;
965-#endif
966 case SCM_UVEC_F32: scm_i_print_double (*np.f32, port); np.f32++; break;
967 case SCM_UVEC_F64: scm_i_print_double (*np.f64, port); np.f64++; break;
968 case SCM_UVEC_C32:
969@@ -222,20 +205,6 @@ uvec_equalp (SCM a, SCM b)
970 result = SCM_BOOL_F;
971 else if (SCM_UVEC_LENGTH (a) != SCM_UVEC_LENGTH (b))
972 result = SCM_BOOL_F;
973-#if SCM_HAVE_T_INT64 == 0
974- else if (SCM_UVEC_TYPE (a) == SCM_UVEC_U64
975- || SCM_UVEC_TYPE (a) == SCM_UVEC_S64)
976- {
977- SCM *aptr = (SCM *)SCM_UVEC_BASE (a), *bptr = (SCM *)SCM_UVEC_BASE (b);
978- size_t len = SCM_UVEC_LENGTH (a), i;
979- for (i = 0; i < len; i++)
980- if (scm_is_false (scm_num_eq_p (*aptr++, *bptr++)))
981- {
982- result = SCM_BOOL_F;
983- break;
984- }
985- }
986-#endif
987 else if (memcmp (SCM_UVEC_BASE (a), SCM_UVEC_BASE (b),
988 SCM_UVEC_LENGTH (a) * uvec_sizes[SCM_UVEC_TYPE(a)]) != 0)
989 result = SCM_BOOL_F;
990@@ -244,24 +213,6 @@ uvec_equalp (SCM a, SCM b)
991 return result;
992 }
993
994-/* Mark hook. Only used when U64 and S64 are implemented as SCMs. */
995-
996-#if SCM_HAVE_T_INT64 == 0
997-static SCM
998-uvec_mark (SCM uvec)
999-{
1000- if (SCM_UVEC_TYPE (uvec) == SCM_UVEC_U64
1001- || SCM_UVEC_TYPE (uvec) == SCM_UVEC_S64)
1002- {
1003- SCM *ptr = (SCM *)SCM_UVEC_BASE (uvec);
1004- size_t len = SCM_UVEC_LENGTH (uvec), i;
1005- for (i = 0; i < len; i++)
1006- scm_gc_mark (*ptr++);
1007- }
1008- return SCM_BOOL_F;
1009-}
1010-#endif
1011-
1012 /* Smob free hook for uniform numeric vectors. */
1013 static size_t
1014 uvec_free (SCM uvec)
1015@@ -318,15 +269,6 @@ alloc_uvec (int type, size_t len)
1016 if (len > SCM_I_SIZE_MAX / uvec_sizes[type])
1017 scm_out_of_range (NULL, scm_from_size_t (len));
1018 base = scm_gc_malloc (len * uvec_sizes[type], uvec_names[type]);
1019-#if SCM_HAVE_T_INT64 == 0
1020- if (type == SCM_UVEC_U64 || type == SCM_UVEC_S64)
1021- {
1022- SCM *ptr = (SCM *)base;
1023- size_t i;
1024- for (i = 0; i < len; i++)
1025- *ptr++ = SCM_UNSPECIFIED;
1026- }
1027-#endif
1028 return take_uvec (type, base, len);
1029 }
1030
1031@@ -349,17 +291,10 @@ uvec_fast_ref (int type, const void *base, size_t c_idx)
1032 return scm_from_uint32 (((scm_t_uint32*)base)[c_idx]);
1033 else if (type == SCM_UVEC_S32)
1034 return scm_from_int32 (((scm_t_int32*)base)[c_idx]);
1035-#if SCM_HAVE_T_INT64
1036 else if (type == SCM_UVEC_U64)
1037 return scm_from_uint64 (((scm_t_uint64*)base)[c_idx]);
1038 else if (type == SCM_UVEC_S64)
1039 return scm_from_int64 (((scm_t_int64*)base)[c_idx]);
1040-#else
1041- else if (type == SCM_UVEC_U64)
1042- return ((SCM *)base)[c_idx];
1043- else if (type == SCM_UVEC_S64)
1044- return ((SCM *)base)[c_idx];
1045-#endif
1046 else if (type == SCM_UVEC_F32)
1047 return scm_from_double (((float*)base)[c_idx]);
1048 else if (type == SCM_UVEC_F64)
1049@@ -374,22 +309,6 @@ uvec_fast_ref (int type, const void *base, size_t c_idx)
1050 return SCM_BOOL_F;
1051 }
1052
1053-#if SCM_HAVE_T_INT64 == 0
1054-static SCM scm_uint64_min, scm_uint64_max;
1055-static SCM scm_int64_min, scm_int64_max;
1056-
1057-static void
1058-assert_exact_integer_range (SCM val, SCM min, SCM max)
1059-{
1060- if (!scm_is_integer (val)
1061- || scm_is_false (scm_exact_p (val)))
1062- scm_wrong_type_arg_msg (NULL, 0, val, "exact integer");
1063- if (scm_is_true (scm_less_p (val, min))
1064- || scm_is_true (scm_gr_p (val, max)))
1065- scm_out_of_range (NULL, val);
1066-}
1067-#endif
1068-
1069 static SCM_C_INLINE_KEYWORD void
1070 uvec_fast_set_x (int type, void *base, size_t c_idx, SCM val)
1071 {
1072@@ -405,23 +324,10 @@ uvec_fast_set_x (int type, void *base, size_t c_idx, SCM val)
1073 (((scm_t_uint32*)base)[c_idx]) = scm_to_uint32 (val);
1074 else if (type == SCM_UVEC_S32)
1075 (((scm_t_int32*)base)[c_idx]) = scm_to_int32 (val);
1076-#if SCM_HAVE_T_INT64
1077 else if (type == SCM_UVEC_U64)
1078 (((scm_t_uint64*)base)[c_idx]) = scm_to_uint64 (val);
1079 else if (type == SCM_UVEC_S64)
1080 (((scm_t_int64*)base)[c_idx]) = scm_to_int64 (val);
1081-#else
1082- else if (type == SCM_UVEC_U64)
1083- {
1084- assert_exact_integer_range (val, scm_uint64_min, scm_uint64_max);
1085- ((SCM *)base)[c_idx] = val;
1086- }
1087- else if (type == SCM_UVEC_S64)
1088- {
1089- assert_exact_integer_range (val, scm_int64_min, scm_int64_max);
1090- ((SCM *)base)[c_idx] = val;
1091- }
1092-#endif
1093 else if (type == SCM_UVEC_F32)
1094 (((float*)base)[c_idx]) = scm_to_double (val);
1095 else if (type == SCM_UVEC_F64)
1096@@ -1027,16 +933,12 @@ SCM_DEFINE (scm_uniform_vector_write, "uniform-vector-write", 1, 3, 0,
1097
1098 #define TYPE SCM_UVEC_U64
1099 #define TAG u64
1100-#if SCM_HAVE_T_UINT64
1101 #define CTYPE scm_t_uint64
1102-#endif
1103 #include "libguile/srfi-4.i.c"
1104
1105 #define TYPE SCM_UVEC_S64
1106 #define TAG s64
1107-#if SCM_HAVE_T_INT64
1108 #define CTYPE scm_t_int64
1109-#endif
1110 #include "libguile/srfi-4.i.c"
1111
1112 #define TYPE SCM_UVEC_F32
1113@@ -1094,23 +996,9 @@ scm_init_srfi_4 (void)
1114 {
1115 scm_tc16_uvec = scm_make_smob_type ("uvec", 0);
1116 scm_set_smob_equalp (scm_tc16_uvec, uvec_equalp);
1117-#if SCM_HAVE_T_INT64 == 0
1118- scm_set_smob_mark (scm_tc16_uvec, uvec_mark);
1119-#endif
1120 scm_set_smob_free (scm_tc16_uvec, uvec_free);
1121 scm_set_smob_print (scm_tc16_uvec, uvec_print);
1122
1123-#if SCM_HAVE_T_INT64 == 0
1124- scm_uint64_min =
1125- scm_permanent_object (scm_from_int (0));
1126- scm_uint64_max =
1127- scm_permanent_object (scm_c_read_string ("18446744073709551615"));
1128- scm_int64_min =
1129- scm_permanent_object (scm_c_read_string ("-9223372036854775808"));
1130- scm_int64_max =
1131- scm_permanent_object (scm_c_read_string ("9223372036854775807"));
1132-#endif
1133-
1134 #include "libguile/srfi-4.x"
1135
1136 }
1137diff --git a/libguile/srfi-4.h b/libguile/srfi-4.h
1138index 7abbac8..2348c5a 100644
1139--- a/libguile/srfi-4.h
1140+++ b/libguile/srfi-4.h
1141@@ -2,7 +2,7 @@
1142 #define SCM_SRFI_4_H
1143 /* srfi-4.c --- Homogeneous numeric vector datatypes.
1144 *
1145- * Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
1146+ * Copyright (C) 2001, 2004, 2006, 2010 Free Software Foundation, Inc.
1147 *
1148 * This library is free software; you can redistribute it and/or
1149 * modify it under the terms of the GNU Lesser General Public
1150@@ -186,7 +186,6 @@ SCM_API SCM scm_u64vector_to_list (SCM uvec);
1151 SCM_API SCM scm_list_to_u64vector (SCM l);
1152 SCM_API SCM scm_any_to_u64vector (SCM obj);
1153
1154-#if SCM_HAVE_T_UINT64
1155 SCM_API SCM scm_take_u64vector (scm_t_uint64 *data, size_t n);
1156 SCM_API const scm_t_uint64 *scm_array_handle_u64_elements (scm_t_array_handle *h);
1157 SCM_API scm_t_uint64 *scm_array_handle_u64_writable_elements (scm_t_array_handle *h);
1158@@ -198,7 +197,6 @@ SCM_API scm_t_uint64 *scm_u64vector_writable_elements (SCM uvec,
1159 scm_t_array_handle *h,
1160 size_t *lenp,
1161 ssize_t *incp);
1162-#endif
1163
1164 SCM_API SCM scm_s64vector_p (SCM obj);
1165 SCM_API SCM scm_make_s64vector (SCM n, SCM fill);
1166@@ -210,7 +208,6 @@ SCM_API SCM scm_s64vector_to_list (SCM uvec);
1167 SCM_API SCM scm_list_to_s64vector (SCM l);
1168 SCM_API SCM scm_any_to_s64vector (SCM obj);
1169
1170-#if SCM_HAVE_T_INT64
1171 SCM_API SCM scm_take_s64vector (scm_t_int64 *data, size_t n);
1172 SCM_API const scm_t_int64 *scm_array_handle_s64_elements (scm_t_array_handle *h);
1173 SCM_API scm_t_int64 *scm_array_handle_s64_writable_elements (scm_t_array_handle *h);
1174@@ -221,7 +218,6 @@ SCM_API scm_t_int64 *scm_s64vector_writable_elements (SCM uvec,
1175 scm_t_array_handle *h,
1176 size_t *lenp,
1177 ssize_t *incp);
1178-#endif
1179
1180 SCM_API SCM scm_f32vector_p (SCM obj);
1181 SCM_API SCM scm_make_f32vector (SCM n, SCM fill);
1182diff --git a/libguile/threads.c b/libguile/threads.c
1183index 95a905c..f2bb556 100644
1184--- a/libguile/threads.c
1185+++ b/libguile/threads.c
1186@@ -276,7 +276,7 @@ unblock_from_queue (SCM queue)
1187 var 't'
1188 // save registers.
1189 SCM_FLUSH_REGISTER_WINDOWS; // sparc only
1190- setjmp (t->regs); // here's most of the magic
1191+ SCM_I_SETJMP (t->regs); // here's most of the magic
1192
1193 ... and returns.
1194
1195@@ -330,7 +330,7 @@ unblock_from_queue (SCM queue)
1196 t->top = SCM_STACK_PTR (&t);
1197 // save registers.
1198 SCM_FLUSH_REGISTER_WINDOWS;
1199- setjmp (t->regs);
1200+ SCM_I_SETJMP (t->regs);
1201 res = func(data);
1202 scm_enter_guile (t);
1203
1204@@ -388,7 +388,7 @@ suspend (void)
1205 t->top = SCM_STACK_PTR (&t);
1206 /* save registers. */
1207 SCM_FLUSH_REGISTER_WINDOWS;
1208- setjmp (t->regs);
1209+ SCM_I_SETJMP (t->regs);
1210 return t;
1211 }
1212
1213diff --git a/libguile/threads.h b/libguile/threads.h
1214index 2b0e067..e22d9bd 100644
1215--- a/libguile/threads.h
1216+++ b/libguile/threads.h
1217@@ -107,7 +107,7 @@ typedef struct scm_i_thread {
1218 /* For keeping track of the stack and registers. */
1219 SCM_STACKITEM *base;
1220 SCM_STACKITEM *top;
1221- jmp_buf regs;
1222+ scm_i_jmp_buf regs;
1223 #ifdef __ia64__
1224 void *register_backing_store_base;
1225 scm_t_contregs *pending_rbs_continuation;
1226diff --git a/libguile/throw.c b/libguile/throw.c
1227index 92c5a1a..fcfde47 100644
1228--- a/libguile/throw.c
1229+++ b/libguile/throw.c
1230@@ -53,7 +53,7 @@ static scm_t_bits tc16_jmpbuffer;
1231 #define DEACTIVATEJB(x) \
1232 (SCM_SET_CELL_WORD_0 ((x), (SCM_CELL_WORD_0 (x) & ~(1L << 16L))))
1233
1234-#define JBJMPBUF(OBJ) ((jmp_buf *) SCM_CELL_WORD_1 (OBJ))
1235+#define JBJMPBUF(OBJ) ((scm_i_jmp_buf *) SCM_CELL_WORD_1 (OBJ))
1236 #define SETJBJMPBUF(x, v) (SCM_SET_CELL_WORD_1 ((x), (scm_t_bits) (v)))
1237 #define SCM_JBDFRAME(x) ((scm_t_debug_frame *) SCM_CELL_WORD_2 (x))
1238 #define SCM_SETJBDFRAME(x, v) (SCM_SET_CELL_WORD_2 ((x), (scm_t_bits) (v)))
1239@@ -75,7 +75,7 @@ make_jmpbuf (void)
1240 {
1241 SCM answer;
1242 SCM_NEWSMOB2 (answer, tc16_jmpbuffer, 0, 0);
1243- SETJBJMPBUF(answer, (jmp_buf *)0);
1244+ SETJBJMPBUF(answer, (scm_i_jmp_buf *)0);
1245 DEACTIVATEJB(answer);
1246 return answer;
1247 }
1248@@ -85,7 +85,7 @@ make_jmpbuf (void)
1249
1250 struct jmp_buf_and_retval /* use only on the stack, in scm_catch */
1251 {
1252- jmp_buf buf; /* must be first */
1253+ scm_i_jmp_buf buf; /* must be first */
1254 SCM throw_tag;
1255 SCM retval;
1256 };
1257@@ -179,7 +179,7 @@ scm_c_catch (SCM tag,
1258 pre_unwind.lazy_catch_p = 0;
1259 SCM_SETJBPREUNWIND(jmpbuf, &pre_unwind);
1260
1261- if (setjmp (jbr.buf))
1262+ if (SCM_I_SETJMP (jbr.buf))
1263 {
1264 SCM throw_tag;
1265 SCM throw_args;
1266@@ -821,7 +821,7 @@ scm_ithrow (SCM key, SCM args, int noreturn SCM_UNUSED)
1267 jbr->throw_tag = key;
1268 jbr->retval = args;
1269 scm_i_set_last_debug_frame (SCM_JBDFRAME (jmpbuf));
1270- longjmp (*JBJMPBUF (jmpbuf), 1);
1271+ SCM_I_LONGJMP (*JBJMPBUF (jmpbuf), 1);
1272 }
1273
1274 /* Otherwise, it's some random piece of junk. */
1275diff --git a/libguile/vectors.c b/libguile/vectors.c
1276index eeb8569..074655c 100644
1277--- a/libguile/vectors.c
1278+++ b/libguile/vectors.c
1279@@ -1,4 +1,4 @@
1280-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2006, 2008 Free Software Foundation, Inc.
1281+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2006, 2008, 2010 Free Software Foundation, Inc.
1282 *
1283 * This library is free software; you can redistribute it and/or
1284 * modify it under the terms of the GNU Lesser General Public
1285@@ -465,7 +465,9 @@ SCM_DEFINE (scm_vector_move_left_x, "vector-move-left!", 5, 0, 0,
1286
1287 i = scm_to_unsigned_integer (start1, 0, len1);
1288 e = scm_to_unsigned_integer (end1, i, len1);
1289- j = scm_to_unsigned_integer (start2, 0, len2 - (i-e));
1290+ SCM_ASSERT_RANGE (SCM_ARG3, end1, (e-i) < len2);
1291+ j = scm_to_unsigned_integer (start2, 0, len2);
1292+ SCM_ASSERT_RANGE (SCM_ARG5, start2, j <= len2 - (e - i));
1293
1294 i *= inc1;
1295 e *= inc1;
1296@@ -503,7 +505,11 @@ SCM_DEFINE (scm_vector_move_right_x, "vector-move-right!", 5, 0, 0,
1297
1298 i = scm_to_unsigned_integer (start1, 0, len1);
1299 e = scm_to_unsigned_integer (end1, i, len1);
1300- j = scm_to_unsigned_integer (start2, 0, len2 - (i-e));
1301+ SCM_ASSERT_RANGE (SCM_ARG3, end1, (e-i) < len2);
1302+ j = scm_to_unsigned_integer (start2, 0, len2);
1303+ SCM_ASSERT_RANGE (SCM_ARG5, start2, j <= len2 - (e - i));
1304+
1305+ j += (e - i);
1306
1307 i *= inc1;
1308 e *= inc1;
1309diff --git a/scripts/snarf-check-and-output-texi b/scripts/snarf-check-and-output-texi
1310index ea33e17..8cd42e8 100755
1311--- a/scripts/snarf-check-and-output-texi
1312+++ b/scripts/snarf-check-and-output-texi
1313@@ -267,6 +267,17 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
1314 (set! *file* file)
1315 (set! *line* line))
1316
1317+ ;; newer gccs like to throw around more location markers into the
1318+ ;; preprocessed source; these (hash . hash) bits are what they translate to
1319+ ;; in snarfy terms.
1320+ (('location ('string . file) ('int . line) ('hash . 'hash))
1321+ (set! *file* file)
1322+ (set! *line* line))
1323+
1324+ (('location ('hash . 'hash) ('string . file) ('int . line) ('hash . 'hash))
1325+ (set! *file* file)
1326+ (set! *line* line))
1327+
1328 (('arglist rest ...)
1329 (set! *args* (do-arglist rest)))
1330
1331diff --git a/srfi/srfi-19.scm b/srfi/srfi-19.scm
1332index ffce990..482ec4e 100644
1333--- a/srfi/srfi-19.scm
1334+++ b/srfi/srfi-19.scm
1335@@ -1,6 +1,6 @@
1336 ;;; srfi-19.scm --- Time/Date Library
1337
1338-;; Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
1339+;; Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
1340 ;;
1341 ;; This library is free software; you can redistribute it and/or
1342 ;; modify it under the terms of the GNU Lesser General Public
1343@@ -41,7 +41,8 @@
1344 (define-module (srfi srfi-19)
1345 :use-module (srfi srfi-6)
1346 :use-module (srfi srfi-8)
1347- :use-module (srfi srfi-9))
1348+ :use-module (srfi srfi-9)
1349+ :autoload (ice-9 rdelim) (read-line))
1350
1351 (begin-deprecated
1352 ;; Prevent `export' from re-exporting core bindings. This behaviour
1353@@ -339,7 +340,7 @@
1354 (set-tm:hour result (date-hour date))
1355 ;; FIXME: SRFI day ranges from 0-31. (not compatible with set-tm:mday).
1356 (set-tm:mday result (date-day date))
1357- (set-tm:month result (- (date-month date) 1))
1358+ (set-tm:mon result (- (date-month date) 1))
1359 ;; FIXME: need to signal error on range violation.
1360 (set-tm:year result (+ 1900 (date-year date)))
1361 (set-tm:isdst result -1)
1362@@ -528,33 +529,38 @@
1363 ;; -- these depend on time-monotonic having the same definition as time-tai!
1364 (define (time-monotonic->time-utc time-in)
1365 (if (not (eq? (time-type time-in) time-monotonic))
1366- (priv:time-error caller 'incompatible-time-types time-in))
1367+ (priv:time-error 'time-monotonic->time-utc
1368+ 'incompatible-time-types time-in))
1369 (let ((ntime (copy-time time-in)))
1370 (set-time-type! ntime time-tai)
1371 (priv:time-tai->time-utc! ntime ntime 'time-monotonic->time-utc)))
1372
1373 (define (time-monotonic->time-utc! time-in)
1374 (if (not (eq? (time-type time-in) time-monotonic))
1375- (priv:time-error caller 'incompatible-time-types time-in))
1376+ (priv:time-error 'time-monotonic->time-utc!
1377+ 'incompatible-time-types time-in))
1378 (set-time-type! time-in time-tai)
1379- (priv:time-tai->time-utc! ntime ntime 'time-monotonic->time-utc))
1380+ (priv:time-tai->time-utc! time-in time-in 'time-monotonic->time-utc))
1381
1382 (define (time-monotonic->time-tai time-in)
1383 (if (not (eq? (time-type time-in) time-monotonic))
1384- (priv:time-error caller 'incompatible-time-types time-in))
1385+ (priv:time-error 'time-monotonic->time-tai
1386+ 'incompatible-time-types time-in))
1387 (let ((ntime (copy-time time-in)))
1388 (set-time-type! ntime time-tai)
1389 ntime))
1390
1391 (define (time-monotonic->time-tai! time-in)
1392 (if (not (eq? (time-type time-in) time-monotonic))
1393- (priv:time-error caller 'incompatible-time-types time-in))
1394+ (priv:time-error 'time-monotonic->time-tai!
1395+ 'incompatible-time-types time-in))
1396 (set-time-type! time-in time-tai)
1397 time-in)
1398
1399 (define (time-utc->time-monotonic time-in)
1400 (if (not (eq? (time-type time-in) time-utc))
1401- (priv:time-error caller 'incompatible-time-types time-in))
1402+ (priv:time-error 'time-utc->time-monotonic
1403+ 'incompatible-time-types time-in))
1404 (let ((ntime (priv:time-utc->time-tai! time-in (make-time-unnormalized #f #f #f)
1405 'time-utc->time-monotonic)))
1406 (set-time-type! ntime time-monotonic)
1407@@ -562,7 +568,8 @@
1408
1409 (define (time-utc->time-monotonic! time-in)
1410 (if (not (eq? (time-type time-in) time-utc))
1411- (priv:time-error caller 'incompatible-time-types time-in))
1412+ (priv:time-error 'time-utc->time-monotonic!
1413+ 'incompatible-time-types time-in))
1414 (let ((ntime (priv:time-utc->time-tai! time-in time-in
1415 'time-utc->time-monotonic!)))
1416 (set-time-type! ntime time-monotonic)
1417@@ -570,14 +577,16 @@
1418
1419 (define (time-tai->time-monotonic time-in)
1420 (if (not (eq? (time-type time-in) time-tai))
1421- (priv:time-error caller 'incompatible-time-types time-in))
1422+ (priv:time-error 'time-tai->time-monotonic
1423+ 'incompatible-time-types time-in))
1424 (let ((ntime (copy-time time-in)))
1425 (set-time-type! ntime time-monotonic)
1426 ntime))
1427
1428 (define (time-tai->time-monotonic! time-in)
1429 (if (not (eq? (time-type time-in) time-tai))
1430- (priv:time-error caller 'incompatible-time-types time-in))
1431+ (priv:time-error 'time-tai->time-monotonic!
1432+ 'incompatible-time-types time-in))
1433 (set-time-type! time-in time-monotonic)
1434 time-in)
1435
1436@@ -780,7 +789,7 @@
1437 (define (priv:year-day day month year)
1438 (let ((days-pr (assoc month priv:month-assoc)))
1439 (if (not days-pr)
1440- (priv:error 'date-year-day 'invalid-month-specification month))
1441+ (priv:time-error 'date-year-day 'invalid-month-specification month))
1442 (if (and (priv:leap-year? year) (> month 2))
1443 (+ day (cdr days-pr) 1)
1444 (+ day (cdr days-pr)))))
1445@@ -1263,7 +1272,7 @@
1446 ((#\8) 8)
1447 ((#\9) 9)
1448 (else (priv:time-error 'bad-date-template-string
1449- (list "Non-integer character" ch i)))))
1450+ (list "Non-integer character" ch)))))
1451
1452 ;; read an integer upto n characters long on port; upto -> #f is any length
1453 (define (priv:integer-reader upto port)
1454diff --git a/srfi/srfi-35.scm b/srfi/srfi-35.scm
1455index 2035466..ee20a10 100644
1456--- a/srfi/srfi-35.scm
1457+++ b/srfi/srfi-35.scm
1458@@ -57,6 +57,19 @@
1459 (number->string (object-address ct)
1460 16))))))
1461
1462+(define (%make-condition-type layout id parent all-fields)
1463+ (let ((struct (make-struct %condition-type-vtable 0
1464+ (make-struct-layout layout) ;; layout
1465+ print-condition ;; printer
1466+ id parent all-fields)))
1467+
1468+ ;; Hack to associate STRUCT with a name, providing a better name for
1469+ ;; GOOPS classes as returned by `class-of' et al.
1470+ (set-struct-vtable-name! struct (cond ((symbol? id) id)
1471+ ((string? id) (string->symbol id))
1472+ (else (string->symbol ""))))
1473+ struct))
1474+
1475 (define (condition-type? obj)
1476 "Return true if OBJ is a condition type."
1477 (and (struct? obj)
1478@@ -104,10 +117,8 @@ supertypes."
1479 field-names parent-fields)))
1480 (let* ((all-fields (append parent-fields field-names))
1481 (layout (struct-layout-for-condition all-fields)))
1482- (make-struct %condition-type-vtable 0
1483- (make-struct-layout layout) ;; layout
1484- print-condition ;; printer
1485- id parent all-fields))
1486+ (%make-condition-type layout
1487+ id parent all-fields))
1488 (error "invalid condition type field names"
1489 field-names)))
1490 (error "parent is not a condition type" parent))
1491@@ -126,13 +137,10 @@ supertypes."
1492 (let* ((all-fields (append-map condition-type-all-fields
1493 parents))
1494 (layout (struct-layout-for-condition all-fields)))
1495- (make-struct %condition-type-vtable 0
1496- (make-struct-layout layout) ;; layout
1497- print-condition ;; printer
1498- id
1499- parents ;; list of parents!
1500- all-fields
1501- all-fields)))))
1502+ (%make-condition-type layout
1503+ id
1504+ parents ;; list of parents!
1505+ all-fields)))))
1506
1507
1508 ;;;
1509diff --git a/test-suite/standalone/Makefile.am b/test-suite/standalone/Makefile.am
1510index e7cfd82..058ce93 100644
1511--- a/test-suite/standalone/Makefile.am
1512+++ b/test-suite/standalone/Makefile.am
1513@@ -28,7 +28,9 @@ check_SCRIPTS =
1514 BUILT_SOURCES =
1515 EXTRA_DIST =
1516
1517-TESTS_ENVIRONMENT = "${top_builddir}/pre-inst-guile-env"
1518+TESTS_ENVIRONMENT = \
1519+ builddir="$(builddir)" \
1520+ "${top_builddir}/pre-inst-guile-env"
1521
1522 test_cflags = \
1523 -I$(top_srcdir)/test-suite/standalone \
1524diff --git a/test-suite/standalone/test-asmobs b/test-suite/standalone/test-asmobs
1525index 2ea75d9..9689ab9 100755
1526--- a/test-suite/standalone/test-asmobs
1527+++ b/test-suite/standalone/test-asmobs
1528@@ -2,7 +2,8 @@
1529 exec guile -q -s "$0" "$@"
1530 !#
1531
1532-(load-extension "libtest-asmobs" "libtest_asmobs_init")
1533+(load-extension (string-append (getenv "builddir") "/libtest-asmobs")
1534+ "libtest_asmobs_init")
1535
1536 (define (test x v)
1537 (if v
1538diff --git a/test-suite/standalone/test-conversion.c b/test-suite/standalone/test-conversion.c
1539index 41f99d3..caa835d 100644
1540--- a/test-suite/standalone/test-conversion.c
1541+++ b/test-suite/standalone/test-conversion.c
1542@@ -1,4 +1,4 @@
1543-/* Copyright (C) 1999,2000,2001,2003,2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
1544+/* Copyright (C) 1999,2000,2001,2003,2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
1545 *
1546 * This library is free software; you can redistribute it and/or
1547 * modify it under the terms of the GNU Lesser General Public
1548@@ -702,10 +702,8 @@ DEFSTST (scm_to_int16)
1549 DEFUTST (scm_to_uint16)
1550 DEFSTST (scm_to_int32)
1551 DEFUTST (scm_to_uint32)
1552-#ifdef SCM_HAVE_T_INT64
1553 DEFSTST (scm_to_int64)
1554 DEFUTST (scm_to_uint64)
1555-#endif
1556
1557 #define TEST_8S(v,f,r,re,te) test_8s (v, tst_##f, #f, r, re, te)
1558 #define TEST_8U(v,f,r,re,te) test_8u (v, tst_##f, #f, r, re, te)
1559@@ -745,11 +743,9 @@ test_int_sizes ()
1560 TEST_7S (scm_from_int32, SCM_T_INT32_MAX+1LL, "-2147483648");
1561 TEST_7U (scm_from_uint32, SCM_T_UINT32_MAX, "4294967295");
1562
1563-#if SCM_HAVE_T_INT64
1564 TEST_7S (scm_from_int64, SCM_T_INT64_MIN, "-9223372036854775808");
1565 TEST_7S (scm_from_int64, SCM_T_INT64_MAX, "9223372036854775807");
1566 TEST_7U (scm_from_uint64, SCM_T_UINT64_MAX, "18446744073709551615");
1567-#endif
1568
1569 TEST_8S ("91", scm_to_schar, 91, 0, 0);
1570 TEST_8U ("91", scm_to_uchar, 91, 0, 0);
1571@@ -794,7 +790,6 @@ test_int_sizes ()
1572 TEST_8U ("-1", scm_to_uint32, 0, 1, 0);
1573 TEST_8U ("#f", scm_to_uint32, 0, 0, 1);
1574
1575-#if SCM_HAVE_T_INT64
1576 TEST_8S ("-9223372036854775808", scm_to_int64, SCM_T_INT64_MIN, 0, 0);
1577 TEST_8S ("9223372036854775807", scm_to_int64, SCM_T_INT64_MAX, 0, 0);
1578 TEST_8S ("9223372036854775808", scm_to_int64, 0, 1, 0);
1579@@ -803,7 +798,6 @@ test_int_sizes ()
1580 TEST_8U ("18446744073709551616", scm_to_uint64, 0, 1, 0);
1581 TEST_8U ("-1", scm_to_uint64, 0, 1, 0);
1582 TEST_8U ("#f", scm_to_uint64, 0, 0, 1);
1583-#endif
1584
1585 }
1586
1587diff --git a/test-suite/tests/goops.test b/test-suite/tests/goops.test
1588index fa53fd2..fb2535a 100644
1589--- a/test-suite/tests/goops.test
1590+++ b/test-suite/tests/goops.test
1591@@ -140,7 +140,12 @@
1592 (eq? (class-of "foo") <string>))
1593
1594 (pass-if "port"
1595- (is-a? (%make-void-port "w") <port>)))
1596+ (is-a? (%make-void-port "w") <port>))
1597+
1598+ (pass-if "struct vtable"
1599+ ;; Previously, `class-of' would fail for nameless structs, i.e., structs
1600+ ;; for which `struct-vtable-name' is #f.
1601+ (is-a? (class-of (make-vtable-vtable "prprpr" 0)) <class>)))
1602
1603
1604 (with-test-prefix "defining classes"
1605diff --git a/test-suite/tests/socket.test b/test-suite/tests/socket.test
1606index 4bfc415..e73f585 100644
1607--- a/test-suite/tests/socket.test
1608+++ b/test-suite/tests/socket.test
1609@@ -1,6 +1,6 @@
1610 ;;;; socket.test --- test socket functions -*- scheme -*-
1611 ;;;;
1612-;;;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
1613+;;;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
1614 ;;;;
1615 ;;;; This library is free software; you can redistribute it and/or
1616 ;;;; modify it under the terms of the GNU Lesser General Public
1617@@ -174,13 +174,28 @@
1618 ;;; AF_UNIX sockets and `make-socket-address'
1619 ;;;
1620
1621+(define %tmpdir
1622+ ;; Honor `$TMPDIR', which tmpnam(3) doesn't do.
1623+ (or (getenv "TMPDIR") "/tmp"))
1624+
1625+(define %curdir
1626+ ;; Remember the current working directory.
1627+ (getcwd))
1628+
1629+;; Temporarily cd to %TMPDIR. The goal is to work around path name
1630+;; limitations, which can lead to exceptions like:
1631+;;
1632+;; (misc-error "scm_to_sockaddr"
1633+;; "unix address path too long: ~A"
1634+;; ("/tmp/nix-build-fb7bph4ifh0vr3ihigm702dzffdnapfj-guile-coverage-1.9.5.drv-0/guile-test-socket-1258553296-77619")
1635+;; #f)
1636+(chdir %tmpdir)
1637+
1638 (define (temp-file-path)
1639- ;; Return a temporary file path that honors `$TMPDIR', which `tmpnam'
1640- ;; doesn't do.
1641- (let ((dir (or (getenv "TMPDIR") "/tmp")))
1642- (string-append dir "/guile-test-socket-"
1643- (number->string (current-time)) "-"
1644- (number->string (random 100000)))))
1645+ ;; Return a temporary file name, assuming the current directory is %TMPDIR.
1646+ (string-append "guile-test-socket-"
1647+ (number->string (current-time)) "-"
1648+ (number->string (random 100000))))
1649
1650
1651 (if (defined? 'AF_UNIX)
1652@@ -320,3 +335,91 @@
1653
1654 #t)))
1655
1656+
1657+(if (defined? 'AF_INET6)
1658+ (with-test-prefix "AF_INET6/SOCK_STREAM"
1659+
1660+ ;; testing `bind', `listen' and `connect' on stream-oriented sockets
1661+
1662+ (let ((server-socket (socket AF_INET6 SOCK_STREAM 0))
1663+ (server-bound? #f)
1664+ (server-listening? #f)
1665+ (server-pid #f)
1666+ (ipv6-addr 1) ; ::1
1667+ (server-port 8889)
1668+ (client-port 9998))
1669+
1670+ (pass-if "bind"
1671+ (catch 'system-error
1672+ (lambda ()
1673+ (bind server-socket AF_INET6 ipv6-addr server-port)
1674+ (set! server-bound? #t)
1675+ #t)
1676+ (lambda args
1677+ (let ((errno (system-error-errno args)))
1678+ (cond ((= errno EADDRINUSE) (throw 'unresolved))
1679+ (else (apply throw args)))))))
1680+
1681+ (pass-if "bind/sockaddr"
1682+ (let* ((sock (socket AF_INET6 SOCK_STREAM 0))
1683+ (sockaddr (make-socket-address AF_INET6 ipv6-addr client-port)))
1684+ (catch 'system-error
1685+ (lambda ()
1686+ (bind sock sockaddr)
1687+ #t)
1688+ (lambda args
1689+ (let ((errno (system-error-errno args)))
1690+ (cond ((= errno EADDRINUSE) (throw 'unresolved))
1691+ (else (apply throw args))))))))
1692+
1693+ (pass-if "listen"
1694+ (if (not server-bound?)
1695+ (throw 'unresolved)
1696+ (begin
1697+ (listen server-socket 123)
1698+ (set! server-listening? #t)
1699+ #t)))
1700+
1701+ (if server-listening?
1702+ (let ((pid (primitive-fork)))
1703+ ;; Spawn a server process.
1704+ (case pid
1705+ ((-1) (throw 'unresolved))
1706+ ((0) ;; the kid: serve two connections and exit
1707+ (let serve ((conn
1708+ (false-if-exception (accept server-socket)))
1709+ (count 1))
1710+ (if (not conn)
1711+ (exit 1)
1712+ (if (> count 0)
1713+ (serve (false-if-exception (accept server-socket))
1714+ (- count 1)))))
1715+ (exit 0))
1716+ (else ;; the parent
1717+ (set! server-pid pid)
1718+ #t))))
1719+
1720+ (pass-if "connect"
1721+ (if (not server-pid)
1722+ (throw 'unresolved)
1723+ (let ((s (socket AF_INET6 SOCK_STREAM 0)))
1724+ (connect s AF_INET6 ipv6-addr server-port)
1725+ #t)))
1726+
1727+ (pass-if "connect/sockaddr"
1728+ (if (not server-pid)
1729+ (throw 'unresolved)
1730+ (let ((s (socket AF_INET6 SOCK_STREAM 0)))
1731+ (connect s (make-socket-address AF_INET6 ipv6-addr server-port))
1732+ #t)))
1733+
1734+ (pass-if "accept"
1735+ (if (not server-pid)
1736+ (throw 'unresolved)
1737+ (let ((status (cdr (waitpid server-pid))))
1738+ (eq? 0 (status:exit-val status)))))
1739+
1740+ #t)))
1741+
1742+;; Switch back to the previous directory.
1743+(false-if-exception (chdir %curdir))
diff --git a/meta-oe/recipes-support/guile/guile-native.inc b/meta-oe/recipes-support/guile/guile-native.inc
new file mode 100644
index 000000000..831e08813
--- /dev/null
+++ b/meta-oe/recipes-support/guile/guile-native.inc
@@ -0,0 +1,12 @@
1SECTION = "unknown"
2LICENSE = "GPL"
3DEPENDS = "gettext-native gmp-native"
4
5inherit autotools native
6
7S="${WORKDIR}/guile-${PV}"
8
9do_configure_append() {
10 find ${S} -name Makefile | xargs sed -i s:'-Werror':'':g
11}
12
diff --git a/meta-oe/recipes-support/guile/guile-native_1.8.7.bb b/meta-oe/recipes-support/guile/guile-native_1.8.7.bb
new file mode 100644
index 000000000..aa4fbb039
--- /dev/null
+++ b/meta-oe/recipes-support/guile/guile-native_1.8.7.bb
@@ -0,0 +1,8 @@
1require guile-native.inc
2SRC_URI = "http://ftp.gnu.org/pub/gnu/guile/guile-${PV}.tar.gz \
3 file://configure-fix.patch \
4 file://cpp-linemarkers.patch \
5 "
6
7SRC_URI[md5sum] = "991b5b3efcbbc3f7507d05bc42f80a5e"
8SRC_URI[sha256sum] = "bfee6339d91955a637e7f541d96f5b1d53271b42bb4a37b8867d186a6c66f0b3"
diff --git a/meta-oe/recipes-support/guile/guile.inc b/meta-oe/recipes-support/guile/guile.inc
new file mode 100644
index 000000000..f01596590
--- /dev/null
+++ b/meta-oe/recipes-support/guile/guile.inc
@@ -0,0 +1,46 @@
1DESCRIPTION = "Guile is an interpreter for the Scheme programming language, \
2packaged as a library which can be incorporated into your programs."
3HOMEPAGE = "http://www.gnu.org/software/guile/guile.html"
4SECTION = "devel/scheme"
5DEPENDS = "guile-native gmp libtool"
6LICENSE = "GPL"
7PACKAGES =+ "${PN}-el"
8FILES_${PN}-el = "${datadir}/emacs"
9DESCRIPTION_${PN}-el = "Emacs lisp files for Guile"
10
11inherit autotools
12
13acpaths = "-I ${S}/guile-config"
14
15EXTRA_OECONF = " \
16 --without-threads \
17 --without-included-ltdl \
18 "
19
20do_compile() {
21 for i in $(find ${S} -name "Makefile") ; do
22 sed -i -e s:-Werror::g $i
23 done
24
25 (cd libguile; oe_runmake CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" LDFLAGS="${BUILD_LDFLAGS}" guile_filter_doc_snarfage)
26 oe_runmake preinstguile="`which guile`"
27
28 sed -i -e s:${STAGING_DIR_TARGET}::g \
29 -e s:/${TARGET_SYS}::g \
30 -e s:-L/usr/lib::g \
31 -e s:-isystem/usr/include::g \
32 -e s:,/usr/lib:,\$\{libdir\}:g \
33 guile-1.8.pc
34}
35
36SYSROOT_PREPROCESS_FUNCS = "guile_cross_config"
37
38guile_cross_config() {
39 # Create guile-config returning target values instead of native values
40 install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
41 echo '#!'`which guile`$' \\\n-e main -s\n!#\n(define %guile-build-info '\'\( >guile-config.cross
42 sed -n $'s:-isystem[^ ]* ::;s:-Wl,-rpath-link,[^ ]* ::;s:^[ \t]*{[ \t]*": (:;s:",[ \t]*": . ":;s:" *}, *\\\\:"):;/^ (/p' <libguile/libpath.h >>guile-config.cross
43 echo '))' >>guile-config.cross
44 cat guile-config/guile-config >>guile-config.cross
45 install guile-config.cross ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/guile-config
46}
diff --git a/meta-oe/recipes-support/guile/guile_1.8.7.bb b/meta-oe/recipes-support/guile/guile_1.8.7.bb
new file mode 100644
index 000000000..8b3a80d91
--- /dev/null
+++ b/meta-oe/recipes-support/guile/guile_1.8.7.bb
@@ -0,0 +1,12 @@
1require guile.inc
2
3PR = "r1"
4
5SRC_URI = "http://ftp.gnu.org/pub/gnu/guile/guile-${PV}.tar.gz \
6 file://configure-fix.patch \
7 file://18.diff \
8 "
9
10
11SRC_URI[md5sum] = "991b5b3efcbbc3f7507d05bc42f80a5e"
12SRC_URI[sha256sum] = "bfee6339d91955a637e7f541d96f5b1d53271b42bb4a37b8867d186a6c66f0b3"
diff --git a/meta-oe/recipes-support/htop/htop/remove-proc-test.patch b/meta-oe/recipes-support/htop/htop/remove-proc-test.patch
new file mode 100644
index 000000000..3185fdd1f
--- /dev/null
+++ b/meta-oe/recipes-support/htop/htop/remove-proc-test.patch
@@ -0,0 +1,13 @@
1--- htop-0.6.6/configure.ac 2007-05-21 13:06:15.000000000 -0500
2+++ htop-0.6.6-cross/configure.ac 2007-11-16 14:12:16.000000000 -0600
3@@ -58,8 +58,8 @@
4 fi,
5 AC_DEFINE(PROCDIR, "/proc", [Path of proc filesystem]))
6
7-AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
8-AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
9+#AC_CHECK_FILE($PROCDIR/stat,,AC_MSG_ERROR(Cannot find /proc/stat. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
10+#AC_CHECK_FILE($PROCDIR/meminfo,,AC_MSG_ERROR(Cannot find /proc/meminfo. Make sure you have a Linux-compatible /proc filesystem mounted. See the file README for help.))
11
12 AC_CONFIG_FILES([Makefile])
13 AC_OUTPUT
diff --git a/meta-oe/recipes-support/htop/htop_0.9.bb b/meta-oe/recipes-support/htop/htop_0.9.bb
new file mode 100644
index 000000000..eb207aabe
--- /dev/null
+++ b/meta-oe/recipes-support/htop/htop_0.9.bb
@@ -0,0 +1,19 @@
1DESCRIPTION = "htop process monitor"
2HOMEPAGE = "http://htop.sf.net"
3SECTION = "console/utils"
4PRIORITY = "optional"
5LICENSE = "GPLv2"
6
7LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
8
9DEPENDS = "ncurses"
10RDEPENDS_${PN} = "ncurses-terminfo"
11
12SRC_URI = "${SOURCEFORGE_MIRROR}/htop/htop-${PV}.tar.gz \
13 file://remove-proc-test.patch"
14
15inherit autotools
16
17SRC_URI[md5sum] = "7c5507f35f363f3f40183a2ba3c561f8"
18SRC_URI[sha256sum] = "4de65c38e1886bccd30ed692b30eb9bf195240680781bfe1eaf5faf84ee6fbfd"
19
diff --git a/meta-oe/recipes-support/libgcrypt/libgcrypt.inc b/meta-oe/recipes-support/libgcrypt/libgcrypt.inc
new file mode 100644
index 000000000..da882dcc7
--- /dev/null
+++ b/meta-oe/recipes-support/libgcrypt/libgcrypt.inc
@@ -0,0 +1,33 @@
1DESCRIPTION = "A general purpose cryptographic library based on the code from GnuPG"
2HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/"
3BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
4SECTION = "libs"
5PRIORITY = "optional"
6
7BBCLASSEXTEND = "native"
8
9# helper program gcryptrnd and getrandom are under GPL, rest LGPL
10LICENSE = "GPLv2+ & LGPLv2.1+"
11LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
12 file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff"
13
14DEPENDS = "libgpg-error"
15
16SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \
17 file://add-pkgconfig-support.patch"
18
19inherit autotools binconfig pkgconfig
20
21EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities"
22
23# libgcrypt.pc is added locally and thus installed here
24do_install_append() {
25 install -d ${D}/${libdir}/pkgconfig
26 install -m 0644 ${S}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/
27}
28
29ARM_INSTRUCTION_SET = "arm"
30
31# move libgcrypt-config into -dev package
32FILES_${PN} = "${libdir}/lib*.so.*"
33FILES_${PN}-dev += "${bindir} ${libdir}/pkgconfig/*.pc"
diff --git a/meta-oe/recipes-support/libgcrypt/libgcrypt/add-pkgconfig-support.patch b/meta-oe/recipes-support/libgcrypt/libgcrypt/add-pkgconfig-support.patch
new file mode 100644
index 000000000..24a59787a
--- /dev/null
+++ b/meta-oe/recipes-support/libgcrypt/libgcrypt/add-pkgconfig-support.patch
@@ -0,0 +1,49 @@
1Index: libgcrypt-1.2.4/configure.ac
2===================================================================
3--- libgcrypt-1.2.4.orig/configure.ac 2008-03-19 22:14:50.000000000 +0000
4+++ libgcrypt-1.2.4/configure.ac 2008-03-19 22:14:58.000000000 +0000
5@@ -807,6 +807,7 @@
6 doc/Makefile
7 src/Makefile
8 src/gcrypt.h
9+src/libgcrypt.pc
10 src/libgcrypt-config
11 tests/Makefile
12 w32-dll/Makefile
13Index: libgcrypt-1.2.4/src/libgcrypt.pc.in
14===================================================================
15--- /dev/null 1970-01-01 00:00:00.000000000 +0000
16+++ libgcrypt-1.2.4/src/libgcrypt.pc.in 2008-03-19 22:14:58.000000000 +0000
17@@ -0,0 +1,32 @@
18+# Process this file with autoconf to produce a pkg-config metadata file.
19+# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
20+# Author: Simon Josefsson
21+#
22+# This file is free software; as a special exception the author gives
23+# unlimited permission to copy and/or distribute it, with or without
24+# modifications, as long as this notice is preserved.
25+#
26+# This file is distributed in the hope that it will be useful, but
27+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
28+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
29+
30+prefix=@prefix@
31+exec_prefix=@exec_prefix@
32+libdir=@libdir@
33+includedir=@includedir@
34+
35+# API info
36+api_version=@LIBGCRYPT_CONFIG_API_VERSION@
37+
38+# Misc information.
39+symmetric_ciphers=@LIBGCRYPT_CIPHERS@
40+asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@
41+digests=@LIBGCRYPT_DIGESTS@
42+
43+Name: libgcrypt
44+Description: GNU crypto library
45+URL: http://www.gnupg.org
46+Version: @VERSION@
47+Libs: -L${libdir} -lgcrypt
48+Libs.private: -L${libdir} -lgpg-error
49+Cflags: -I${includedir}
diff --git a/meta-oe/recipes-support/libgcrypt/libgcrypt_1.4.6.bb b/meta-oe/recipes-support/libgcrypt/libgcrypt_1.4.6.bb
new file mode 100644
index 000000000..a59243791
--- /dev/null
+++ b/meta-oe/recipes-support/libgcrypt/libgcrypt_1.4.6.bb
@@ -0,0 +1,3 @@
1require libgcrypt.inc
2
3PR = "r0"
diff --git a/meta-oe/recipes-support/libgpg-error/libgpg-error-1.8/pkgconfig.patch b/meta-oe/recipes-support/libgpg-error/libgpg-error-1.8/pkgconfig.patch
new file mode 100644
index 000000000..49e47d874
--- /dev/null
+++ b/meta-oe/recipes-support/libgpg-error/libgpg-error-1.8/pkgconfig.patch
@@ -0,0 +1,53 @@
1
2#
3# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
4#
5
6Index: libgpg-error-1.8/configure.ac
7===================================================================
8--- libgpg-error-1.8.orig/configure.ac 2010-05-06 06:01:08.000000000 -0700
9+++ libgpg-error-1.8/configure.ac 2010-07-21 02:20:20.923261305 -0700
10@@ -140,6 +140,7 @@
11 AC_SUBST(GPG_ERROR_CONFIG_CFLAGS)
12 AC_SUBST(GPG_ERROR_CONFIG_ISUBDIRAFTER)
13 AC_CONFIG_FILES([src/gpg-error-config], [chmod +x src/gpg-error-config])
14+AC_CONFIG_FILES([src/gpg-error.pc])
15
16
17 # Special defines for certain platforms
18Index: libgpg-error-1.8/src/Makefile.am
19===================================================================
20--- libgpg-error-1.8.orig/src/Makefile.am 2010-04-14 02:16:44.000000000 -0700
21+++ libgpg-error-1.8/src/Makefile.am 2010-07-21 02:22:36.655012496 -0700
22@@ -37,13 +37,15 @@
23 bin_SCRIPTS = gpg-error-config
24 m4datadir = $(datadir)/aclocal
25 m4data_DATA = gpg-error.m4
26+pkgconfigdir = $(libdir)/pkgconfig
27+pkgconfig_DATA = gpg-error.pc
28
29 EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \
30 mkerrnos.awk errnos.in README \
31 mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \
32 mkheader.awk gpg-error.h.in mkw32errmap.c w32-add.h w32ce-add.h \
33 err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 \
34- gpg-error.def.in versioninfo.rc.in
35+ gpg-error.def.in versioninfo.rc.in gpg-error.pc.in
36
37 BUILT_SOURCES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \
38 err-sources-sym.h err-codes-sym.h errnos-sym.h gpg-error.h \
39Index: libgpg-error-1.8/src/gpg-error.pc.in
40===================================================================
41--- /dev/null 1970-01-01 00:00:00.000000000 +0000
42+++ libgpg-error-1.8/src/gpg-error.pc.in 2010-07-21 02:20:20.923261305 -0700
43@@ -0,0 +1,10 @@
44+prefix=@prefix@
45+exec_prefix=@exec_prefix@
46+libdir=@libdir@
47+includedir=@includedir@
48+
49+Name: gpg-error
50+Description: a library that defines common error values for all GnuPG components
51+Version: @VERSION@
52+Libs: -L{libdir} -lgpg-error
53+Cflags: -I${includedir}
diff --git a/meta-oe/recipes-support/libgpg-error/libgpg-error_1.8.bb b/meta-oe/recipes-support/libgpg-error/libgpg-error_1.8.bb
new file mode 100644
index 000000000..5f6b72cd5
--- /dev/null
+++ b/meta-oe/recipes-support/libgpg-error/libgpg-error_1.8.bb
@@ -0,0 +1,26 @@
1DESCRIPTION = "a small library that defines common error values for all GnuPG components"
2HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
3BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
4
5BBCLASSEXTEND = "native"
6
7LICENSE = "GPLv2+ & LGPLv2.1+"
8LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
9 file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
10 file://src/gpg-error.h;endline=23;md5=83c16c8f5cea85affa1ff270a6f4fcff \
11 file://src/init.c;endline=20;md5=b69742f2a8827d494c6f6a4b1768416c"
12
13
14SECTION = "libs"
15LICENSE = "GPLv2+ & LGPLv2.1+"
16DEPENDS = "gettext"
17PR = "r0"
18
19SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.bz2 \
20 file://pkgconfig.patch;"
21
22# move libgpg-error-config into -dev package
23FILES_${PN} = "${libdir}/lib*.so.*"
24FILES_${PN}-dev += "${bindir}/*"
25
26inherit autotools binconfig pkgconfig
diff --git a/meta-oe/recipes-support/libusb/libusb-compat_0.1.3.bbappend b/meta-oe/recipes-support/libusb/libusb-compat_0.1.3.bbappend
new file mode 100644
index 000000000..7de23617d
--- /dev/null
+++ b/meta-oe/recipes-support/libusb/libusb-compat_0.1.3.bbappend
@@ -0,0 +1,4 @@
1PROVIDES += "virtual/libusb0"
2
3inherit lib_package
4
diff --git a/meta-oe/recipes-support/mysql/files/autofoo.patch b/meta-oe/recipes-support/mysql/files/autofoo.patch
new file mode 100644
index 000000000..669393a23
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/files/autofoo.patch
@@ -0,0 +1,319 @@
1diff -aurp mysql-4.1.22.old/acinclude.m4 mysql-4.1.22/acinclude.m4
2--- mysql-4.1.22.old/acinclude.m4 2008-09-18 13:00:13.000000000 -0500
3+++ mysql-4.1.22/acinclude.m4 2008-09-18 12:58:41.000000000 -0500
4@@ -1,5 +1,88 @@
5 # Local macros for automake & autoconf
6
7+AH_TEMPLATE([SPRINTF_RETURNS_INT], [sprintf returns an int])
8+AH_TEMPLATE([SPRINTF_RETURNS_PTR], [sprintf returns a char *])
9+AH_TEMPLATE([SPRINTF_RETURNS_GARBAGE], [sprintf returns something unknown to us])
10+
11+AC_DEFUN([MYSQL_SPRINTF_RET], [
12+ AC_CACHE_CHECK([return type of sprintf],
13+ [mysql_cv_func_sprintf_ret], [
14+ old_CFLAGS="$CFLAGS"
15+ CFLAGS="$CFLAGS -Werror"
16+ AC_COMPILE_IFELSE([
17+#include <stdio.h>
18+int sprintf(char *str, const char *format, ...);
19+ ], [mysql_cv_func_sprintf_ret=int],
20+ AC_COMPILE_IFELSE([
21+#include <stdio.h>
22+char * sprintf(char *str, const char *format, ...);
23+ ], [mysql_cv_func_sprintf_ret=ptr],
24+ [mysql_cv_func_sprintf_ret=unknown])
25+ )
26+ CFLAGS="$old_CFLAGS"
27+ ])
28+ if test x"$mysql_cv_func_sprintf_ret" = "xint"; then
29+ AC_DEFINE([SPRINTF_RETURNS_INT], [1])
30+ elif test x"$mysql_cv_func_sprintf_ret" = "xptr"; then
31+ AC_DEFINE([SPRINTF_RETURNS_PTR], [1])
32+ else
33+ AC_DEFINE([SPRINTF_RETURNS_GARBAGE], [1])
34+ fi
35+])
36+
37+# _MYSQL_FUNC_ATOMIC_ADD
38+# ----------------------
39+# Check for Linux specific atomic_add function
40+AC_DEFUN([_MYSQL_FUNC_ATOMIC_ADD],
41+[AC_CACHE_CHECK([for atomic_add], [mysql_cv_func_atomic_add],
42+[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <asm/atomic.h>]],
43+ [
44+int main()
45+{
46+ atomic_t v;
47+
48+ atomic_set(&v, 23);
49+ atomic_add(5, &v);
50+ return atomic_read(&v) == 28 ? 0 : -1;
51+}
52+ ])],
53+ [mysql_cv_func_atomic_add=yes],
54+ [mysql_cv_func_atomic_add=no])])
55+ if test x"$mysql_func_atomic_add" = "xyes"; then
56+ AC_DEFINE([HAVE_ATOMIC_ADD], [1])
57+ fi[]dnl
58+])# _MYSQL_FUNC_ATOMIC_ADD
59+
60+# _MYSQL_FUNC_ATOMIC_SUB
61+# ----------------------
62+# Check for Linux specific atomic_sub function
63+AC_DEFUN([_MYSQL_FUNC_ATOMIC_SUB],
64+[AC_CACHE_CHECK([for atomic_sub], [mysql_cv_func_atomic_sub],
65+[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <asm/atomic.h>]],
66+ [
67+int main()
68+{
69+ atomic_t v;
70+
71+ atomic_set(&v, 23);
72+ atomic_sub(5, &v);
73+ return atomic_read(&v) == 18 ? 0 : -1;
74+}
75+ ])],
76+ [mysql_cv_func_atomic_sub=yes],
77+ [mysql_cv_func_atomic_sub=no])])
78+ if test x"$mysql_func_atomic_sub" = "xyes"; then
79+ AC_DEFINE([HAVE_ATOMIC_SUB], [1])
80+ fi[]dnl
81+])# _MYSQL_FUNC_ATOMIC_SUB
82+
83+# MYSQL_FUNCS_ATOMIC
84+# ------------------
85+# Check for Linux specific atomic add and sub functions
86+AC_DEFUN([MYSQL_FUNCS_ATOMIC], [
87+ AC_REQUIRE([_MYSQL_FUNC_ATOMIC_ADD])dnl
88+ AC_REQUIRE([_MYSQL_FUNC_ATOMIC_SUB])dnl
89+])# MYSQL_FUNCS_ATOMIC
90
91 AC_DEFUN([MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY], [
92 AC_CACHE_CHECK([HIST_ENTRY is declared in readline/readline.h], mysql_cv_hist_entry_declared,
93@@ -344,7 +427,7 @@ dnl ------------------------------------
94 AC_DEFUN([MYSQL_CHECK_ULONG],
95 [AC_MSG_CHECKING(for type ulong)
96 AC_CACHE_VAL(ac_cv_ulong,
97-[AC_TRY_RUN([#include <stdio.h>
98+[AC_TRY_LINK([#include <stdio.h>
99 #include <sys/types.h>
100 main()
101 {
102@@ -362,7 +445,7 @@ fi
103 AC_DEFUN([MYSQL_CHECK_UCHAR],
104 [AC_MSG_CHECKING(for type uchar)
105 AC_CACHE_VAL(ac_cv_uchar,
106-[AC_TRY_RUN([#include <stdio.h>
107+[AC_TRY_LINK([#include <stdio.h>
108 #include <sys/types.h>
109 main()
110 {
111@@ -380,7 +463,7 @@ fi
112 AC_DEFUN([MYSQL_CHECK_UINT],
113 [AC_MSG_CHECKING(for type uint)
114 AC_CACHE_VAL(ac_cv_uint,
115-[AC_TRY_RUN([#include <stdio.h>
116+[AC_TRY_LINK([#include <stdio.h>
117 #include <sys/types.h>
118 main()
119 {
120@@ -399,7 +482,7 @@ fi
121 AC_DEFUN([MYSQL_CHECK_IN_ADDR_T],
122 [AC_MSG_CHECKING(for type in_addr_t)
123 AC_CACHE_VAL(ac_cv_in_addr_t,
124-[AC_TRY_RUN([#include <stdio.h>
125+[AC_TRY_LINK([#include <stdio.h>
126 #include <sys/types.h>
127 #include <sys/socket.h>
128 #include <netinet/in.h>
129@@ -460,7 +543,7 @@ fi
130 AC_DEFUN([MYSQL_CHECK_FP_EXCEPT],
131 [AC_MSG_CHECKING(for type fp_except)
132 AC_CACHE_VAL(ac_cv_fp_except,
133-[AC_TRY_RUN([#include <stdio.h>
134+[AC_TRY_LINK([#include <stdio.h>
135 #include <sys/types.h>
136 #include <ieeefp.h>
137 main()
138diff -aurp mysql-4.1.22.old/configure.in mysql-4.1.22/configure.in
139--- mysql-4.1.22.old/configure.in 2008-09-18 13:00:14.000000000 -0500
140+++ mysql-4.1.22/configure.in 2008-09-18 12:54:00.000000000 -0500
141@@ -236,8 +236,6 @@ then
142 else
143 AC_PATH_PROG(AS, as, as)
144 fi
145-# Still need ranlib for readline; local static use only so no libtool.
146-AC_PROG_RANLIB
147 # We use libtool
148 #AC_LIBTOOL_WIN32_DLL
149 AC_PROG_LIBTOOL
150@@ -258,44 +256,7 @@ AC_PROG_YACC
151 AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
152 AC_CHECK_PROG(DVIS, tex, manual.dvi)
153
154-AC_MSG_CHECKING("return type of sprintf")
155-
156-#check the return type of sprintf
157-case $SYSTEM_TYPE in
158- *netware*)
159- AC_DEFINE(SPRINTF_RETURNS_INT, [1]) AC_MSG_RESULT("int")
160- ;;
161- *)
162-AC_TRY_RUN([
163- int main()
164- {
165- char* s = "hello";
166- char buf[6];
167- if((int)sprintf(buf, s) == strlen(s))
168- return 0;
169-
170- return -1;
171- }
172- ],
173- [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
174- AC_MSG_RESULT("int")],
175- [AC_TRY_RUN([
176- int main()
177- {
178- char* s = "hello";
179- char buf[6];
180- if((char*)sprintf(buf,s) == buf + strlen(s))
181- return 0;
182- return -1;
183- } ],
184- [AC_DEFINE(SPRINTF_RETURNS_PTR, [1], [Broken sprintf])
185- AC_MSG_RESULT("ptr")],
186- [AC_DEFINE(SPRINTF_RETURNS_GARBAGE, [1], [Broken sprintf])
187- AC_MSG_RESULT("garbage")])
188- ])
189- ;;
190-esac
191-
192+MYSQL_SPRINTF_RET
193
194 # option, cache_name, variable,
195 # code to execute if yes, code to exectute if fail
196@@ -878,47 +839,7 @@ struct request_info *req;
197 AC_SUBST(WRAPLIBS)
198
199 if test "$TARGET_LINUX" = "true"; then
200- AC_MSG_CHECKING([for atomic operations])
201-
202- AC_LANG_SAVE
203- AC_LANG_CPLUSPLUS
204-
205- atom_ops=
206- AC_TRY_RUN([
207-#include <asm/atomic.h>
208-int main()
209-{
210- atomic_t v;
211-
212- atomic_set(&v, 23);
213- atomic_add(5, &v);
214- return atomic_read(&v) == 28 ? 0 : -1;
215-}
216- ],
217- [AC_DEFINE([HAVE_ATOMIC_ADD], [1],
218- [atomic_add() from <asm/atomic.h> (Linux only)])
219- atom_ops="${atom_ops}atomic_add "],
220- )
221- AC_TRY_RUN([
222-#include <asm/atomic.h>
223-int main()
224-{
225- atomic_t v;
226-
227- atomic_set(&v, 23);
228- atomic_sub(5, &v);
229- return atomic_read(&v) == 18 ? 0 : -1;
230-}
231- ],
232- [AC_DEFINE([HAVE_ATOMIC_SUB], [1],
233- [atomic_sub() from <asm/atomic.h> (Linux only)])
234- atom_ops="${atom_ops}atomic_sub "],
235- )
236-
237- if test -z "$atom_ops"; then atom_ops="no"; fi
238- AC_MSG_RESULT($atom_ops)
239-
240- AC_LANG_RESTORE
241+ MYSQL_FUNC_ATOMIC
242
243 AC_ARG_WITH(pstack,
244 [ --with-pstack Use the pstack backtrace library],
245@@ -971,13 +892,13 @@ fi
246 # Later in this script LIBS will be augmented with a threads library.
247 NON_THREADED_LIBS="$LIBS"
248
249-AC_MSG_CHECKING([for int8])
250+AC_CACHE_CHECK([for int8], [mysql_cv_type_int8], [
251 case $SYSTEM_TYPE in
252 *netware)
253 AC_MSG_RESULT([no])
254 ;;
255 *)
256-AC_TRY_RUN([
257+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
258 #ifdef HAVE_STDLIB_H
259 #include <stdlib.h>
260 #endif
261@@ -988,22 +909,21 @@ AC_TRY_RUN([
262
263 #ifdef HAVE_SYS_TYPES_H
264 #include <sys/types.h>
265-#endif
266-
267+#endif]], [
268 int main()
269 {
270 int8 i;
271 return 0;
272-}
273-],
274-[AC_DEFINE([HAVE_INT_8_16_32], [1],
275- [whether int8, int16 and int32 types exist])
276-AC_MSG_RESULT([yes])],
277-[AC_MSG_RESULT([no])]
278-)
279+}])], [mysql_cv_type_int8=yes], [mysql_cv_type_int8=no])
280 ;;
281 esac
282
283+if test x"$mysql_cv_type_int8" = "xyes"; then
284+ AC_DEFINE([HAVE_INT_8_16_32], [1],
285+ [whether int8, int16 and int32 types exist])
286+fi
287+])
288+
289 #
290 # Some system specific hacks
291 #
292@@ -1814,7 +1734,7 @@ then
293 AC_MSG_ERROR("MySQL needs a long long type.")
294 fi
295 # off_t is not a builtin type
296-MYSQL_CHECK_SIZEOF(off_t, 4)
297+AC_CHECK_SIZEOF(off_t, 4)
298 if test "$ac_cv_sizeof_off_t" -eq 0
299 then
300 AC_MSG_ERROR("MySQL needs a off_t type.")
301diff -aurp mysql-4.1.22.old/innobase/configure.in mysql-4.1.22/innobase/configure.in
302--- mysql-4.1.22.old/innobase/configure.in 2008-09-18 13:00:14.000000000 -0500
303+++ mysql-4.1.22/innobase/configure.in 2008-09-18 12:55:39.000000000 -0500
304@@ -3,6 +3,7 @@ AC_INIT
305 AC_CANONICAL_SYSTEM
306 AM_MAINTAINER_MODE
307 AM_CONFIG_HEADER(ib_config.h)
308+AC_CONFIG_AUX_DIR([..])
309 AM_INIT_AUTOMAKE(ib, 0.90)
310
311 # This is need before AC_PROG_CC
312@@ -32,7 +33,6 @@ CFLAGS="$CFLAGS "
313 CXXFLAGS="$CXXFLAGS "
314
315 AC_PROG_CC
316-AC_PROG_RANLIB
317 AC_PROG_INSTALL
318 AC_PROG_LIBTOOL
319 AC_CHECK_HEADERS(aio.h sched.h)
diff --git a/meta-oe/recipes-support/mysql/files/configure-ps-cache-check.patch b/meta-oe/recipes-support/mysql/files/configure-ps-cache-check.patch
new file mode 100644
index 000000000..3b5b3fd06
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/files/configure-ps-cache-check.patch
@@ -0,0 +1,27 @@
1Index: mysql-4.1.22/configure.in
2===================================================================
3--- mysql-4.1.22.orig/configure.in 2009-01-28 16:33:28.000000000 +0000
4+++ mysql-4.1.22/configure.in 2009-01-28 16:43:26.000000000 +0000
5@@ -471,8 +471,8 @@
6
7 # Lock for PS
8 AC_PATH_PROG(PS, ps, ps)
9-AC_MSG_CHECKING("how to check if pid exists")
10-PS=$ac_cv_path_PS
11+AC_CACHE_CHECK([how to check if pid exists], [ac_cv_FIND_PROC],
12+[
13 # Linux style
14 if $PS p $$ 2> /dev/null | grep $0 > /dev/null
15 then
16@@ -511,8 +511,9 @@
17 AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
18 esac
19 fi
20-AC_SUBST(FIND_PROC)
21-AC_MSG_RESULT("$FIND_PROC")
22+ac_cv_FIND_PROC="$FIND_PROC"
23+])
24+AC_SUBST([FIND_PROC], [$ac_cv_FIND_PROC])
25
26 # Check if a pid is valid
27 AC_PATH_PROG(KILL, kill, kill)
diff --git a/meta-oe/recipes-support/mysql/files/fix_host_path.patch b/meta-oe/recipes-support/mysql/files/fix_host_path.patch
new file mode 100644
index 000000000..4f69cd519
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/files/fix_host_path.patch
@@ -0,0 +1,37 @@
1--- mysql-4.1.22/configure.in.old 2008-09-18 20:11:15.000000000 -0500
2+++ mysql-4.1.22/configure.in 2008-09-18 20:12:28.000000000 -0500
3@@ -456,9 +456,9 @@ else
4 fi
5 fi
6
7-AC_SUBST(HOSTNAME)
8-AC_SUBST(PERL)
9-AC_SUBST(PERL5)
10+AC_SUBST(HOSTNAME,/bin/hostname)
11+AC_SUBST(PERL,$(bindir)/perl)
12+AC_SUBST(PERL5,$(bindir)/perl)
13
14 # for build ndb docs
15
16@@ -516,16 +516,17 @@ AC_MSG_RESULT("$FIND_PROC")
17
18 # Check if a pid is valid
19 AC_PATH_PROG(KILL, kill, kill)
20+AC_SUBST(KILL,/bin/kill)
21 AC_MSG_CHECKING("for kill switches")
22-if $ac_cv_path_KILL -0 $$
23+if $KILL -0 $$
24 then
25- CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
26+ CHECK_PID="$KILL -0 \$\$PID > /dev/null 2> /dev/null"
27 elif kill -s 0 $$
28 then
29- CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
30+ CHECK_PID="$KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
31 else
32 AC_MSG_WARN([kill -0 to check for pid seems to fail])
33- CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
34+ CHECK_PID="$KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
35 fi
36 AC_SUBST(CHECK_PID)
37 AC_MSG_RESULT("$CHECK_PID")
diff --git a/meta-oe/recipes-support/mysql/files/my.cnf b/meta-oe/recipes-support/mysql/files/my.cnf
new file mode 100644
index 000000000..85560ebf5
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/files/my.cnf
@@ -0,0 +1,21 @@
1[client]
2#password = password
3port = 3306
4socket = /tmp/mysql.sock
5
6[mysqld_safe]
7err-log = /var/log/mysql.err
8
9[mysqld]
10user = mysql
11port = 3306
12socket = /tmp/mysql.sock
13pid-file = /var/lib/mysql/mysqld.pid
14log-error = /var/log/mysqld.err
15basedir = /usr
16datadir = /var/mysql
17skip-locking
18skip-innodb
19skip-networking
20bind-address = localhost
21
diff --git a/meta-oe/recipes-support/mysql/files/mysqld.sh b/meta-oe/recipes-support/mysql/files/mysqld.sh
new file mode 100644
index 000000000..479ebdb25
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/files/mysqld.sh
@@ -0,0 +1,24 @@
1# MySQL init script
2
3. /etc/default/rcS
4
5case "$1" in
6 start)
7 /usr/bin/mysqld_safe &
8 ;;
9 stop)
10 if test -f /var/lib/mysql/mysqld.pid ; then
11 PID=`cat /var/lib/mysql/mysqld.pid`
12 kill $PID
13 fi
14 ;;
15 restart)
16 $0 stop
17 $0 start
18 ;;
19 *)
20 echo "Usage: /etc/init.d/mysqld {start|stop|restart}"
21 ;;
22esac
23
24exit 0
diff --git a/meta-oe/recipes-support/mysql/mysql5-native_5.1.40.bb b/meta-oe/recipes-support/mysql/mysql5-native_5.1.40.bb
new file mode 100644
index 000000000..800178330
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5-native_5.1.40.bb
@@ -0,0 +1,28 @@
1require mysql5_${PV}.inc
2inherit native
3PR ="r2"
4
5SRC_URI = "http://downloads.mysql.com/archives/mysql-5.1/mysql-${PV}.tar.gz \
6 file://fix-abi-check-gcc45.patch"
7
8RDEPENDS_${PN} = ""
9PACKAGES = ""
10DEPENDS = "ncurses-native"
11EXTRA_OEMAKE = ""
12EXTRA_OECONF = " --with-embedded-server "
13
14do_install() {
15 oe_runmake 'DESTDIR=${D}' install
16 mv -f ${D}${libdir}/mysql/* ${D}${libdir}
17 rmdir ${D}${libdir}/mysql
18
19 install -d ${D}${bindir}
20 install -m 0755 sql/gen_lex_hash ${D}${bindir}/
21}
22
23NATIVE_INSTALL_WORKS = "1"
24
25PSTAGING_DISABLED = "1"
26
27SRC_URI[md5sum] = "32e7373c16271606007374396e6742ad"
28SRC_URI[sha256sum] = "2b0737b84e7b42c9e54c9658d23bfaee1189cd5955f26b10bdb862761d0f0432"
diff --git a/meta-oe/recipes-support/mysql/mysql5/Makefile.am.patch b/meta-oe/recipes-support/mysql/mysql5/Makefile.am.patch
new file mode 100644
index 000000000..33fd17acd
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/Makefile.am.patch
@@ -0,0 +1,19 @@
1Index: mysql-5.1.40/sql/Makefile.am
2===================================================================
3--- mysql-5.1.40.orig/sql/Makefile.am
4+++ mysql-5.1.40/sql/Makefile.am
5@@ -174,10 +174,10 @@ link_sources:
6 # This generates lex_hash.h
7 # NOTE Built sources should depend on their sources not the tool
8 # this avoid the rebuild of the built files in a source dist
9-lex_hash.h: gen_lex_hash.cc lex.h
10- $(MAKE) $(AM_MAKEFLAGS) gen_lex_hash$(EXEEXT)
11- ./gen_lex_hash$(EXEEXT) > $@-t
12- $(MV) $@-t $@
13+GEN_LEX_HASH = ./gen_lex_hash$(EXEEXT)
14+
15+lex_hash.h: gen_lex_hash$(EXEEXT)
16+ $(GEN_LEX_HASH) > $@
17
18 # For testing of udf_example.so
19 udf_example_la_SOURCES= udf_example.c
diff --git a/meta-oe/recipes-support/mysql/mysql5/configure-ps-cache-check.patch b/meta-oe/recipes-support/mysql/mysql5/configure-ps-cache-check.patch
new file mode 100644
index 000000000..3b5b3fd06
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/configure-ps-cache-check.patch
@@ -0,0 +1,27 @@
1Index: mysql-4.1.22/configure.in
2===================================================================
3--- mysql-4.1.22.orig/configure.in 2009-01-28 16:33:28.000000000 +0000
4+++ mysql-4.1.22/configure.in 2009-01-28 16:43:26.000000000 +0000
5@@ -471,8 +471,8 @@
6
7 # Lock for PS
8 AC_PATH_PROG(PS, ps, ps)
9-AC_MSG_CHECKING("how to check if pid exists")
10-PS=$ac_cv_path_PS
11+AC_CACHE_CHECK([how to check if pid exists], [ac_cv_FIND_PROC],
12+[
13 # Linux style
14 if $PS p $$ 2> /dev/null | grep $0 > /dev/null
15 then
16@@ -511,8 +511,9 @@
17 AC_MSG_ERROR([Could not find the right ps switches. Which OS is this ?. See the Installation chapter in the Reference Manual.])
18 esac
19 fi
20-AC_SUBST(FIND_PROC)
21-AC_MSG_RESULT("$FIND_PROC")
22+ac_cv_FIND_PROC="$FIND_PROC"
23+])
24+AC_SUBST([FIND_PROC], [$ac_cv_FIND_PROC])
25
26 # Check if a pid is valid
27 AC_PATH_PROG(KILL, kill, kill)
diff --git a/meta-oe/recipes-support/mysql/mysql5/configure.in.patch b/meta-oe/recipes-support/mysql/mysql5/configure.in.patch
new file mode 100644
index 000000000..3edc5f3c2
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/configure.in.patch
@@ -0,0 +1,54 @@
1Index: mysql-5.1.40/configure.in
2===================================================================
3--- mysql-5.1.40.orig/configure.in
4+++ mysql-5.1.40/configure.in
5@@ -226,8 +226,6 @@ else
6 AC_PATH_PROG(AS, as, as)
7 fi
8
9-# Still need ranlib for readline; local static use only so no libtool.
10-AC_PROG_RANLIB
11 # We use libtool
12 #AC_LIBTOOL_WIN32_DLL
13 AC_PROG_LIBTOOL
14@@ -255,39 +253,7 @@ AC_CHECK_PROGS(YACC, ['bison -y -p MYSQL
15 AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
16 AC_CHECK_PROG(DVIS, tex, manual.dvi)
17
18-#check the return type of sprintf
19-AC_MSG_CHECKING("return type of sprintf")
20-AC_TRY_RUN([
21- int main()
22- {
23- char* s = "hello";
24- char buf[6];
25- if((int)sprintf(buf, s) == strlen(s))
26- return 0;
27-
28- return -1;
29- }
30- ],
31- [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
32- AC_MSG_RESULT("int")],
33- [AC_TRY_RUN([
34- int main()
35- {
36- char* s = "hello";
37- char buf[6];
38- if((char*)sprintf(buf,s) == buf + strlen(s))
39- return 0;
40- return -1;
41- } ],
42- [AC_DEFINE(SPRINTF_RETURNS_PTR, [1], [Broken sprintf])
43- AC_MSG_RESULT("ptr")],
44- [AC_DEFINE(SPRINTF_RETURNS_GARBAGE, [1], [Broken sprintf])
45- AC_MSG_RESULT("garbage")]
46- )],
47- # Cross compile, assume POSIX
48- [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf])
49- AC_MSG_RESULT("int (we assume)")]
50-)
51+MYSQL_SPRINTF_RET
52
53 AC_PATH_PROG(uname_prog, uname, no)
54
diff --git a/meta-oe/recipes-support/mysql/mysql5/fix-abi-check-gcc45.patch b/meta-oe/recipes-support/mysql/mysql5/fix-abi-check-gcc45.patch
new file mode 100644
index 000000000..58812c1f1
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/fix-abi-check-gcc45.patch
@@ -0,0 +1,77 @@
1From: Date: July 20 2010 7:44pm
2Subject: bzr commit into mysql-5.1-bugteam branch (davi:3493) Bug#52514
3List-Archive: http://lists.mysql.com/commits/113968
4X-Bug: 52514
5MIME-Version: 1.0
6Content-Type: multipart/mixed; boundary="===============9147207462624717749=="
7
8--===============9147207462624717749==
9MIME-Version: 1.0
10Content-Type: text/plain; charset="us-ascii"
11Content-Transfer-Encoding: 7bit
12Content-Disposition: inline
13
14# At a local mysql-5.1-bugteam repository of davi
15
16 3493 Davi Arnaut 2010-07-20
17 Bug#52514: mysql 5.1 do_abi_check does not compile w/ gcc4.5
18 due to GCC preprocessor change
19
20 The problem is that newer GCC versions treats missing headers
21 as fatal errors. The solution is to use a guard macro to prevent
22 the inclusion of system headers when checking the ABI with the
23 C Preprocessor.
24
25 Reference: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15638
26 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44836
27 @ Makefile.am
28 Define guard macro.
29 @ configure.in
30 Remove workaround.
31 @ include/mysql.h
32 Guard the header inclusion.
33 @ include/mysql.h.pp
34 Header is not included anymore.
35
36 modified:
37 Makefile.am
38 configure.in
39 include/mysql.h
40 include/mysql.h.pp
41=== modified file 'Makefile.am'
42Index: mysql-5.1.40/Makefile.am
43===================================================================
44--- mysql-5.1.40.orig/Makefile.am 2009-10-07 01:46:13.000000000 +0800
45+++ mysql-5.1.40/Makefile.am 2010-08-17 20:07:24.843148001 +0800
46@@ -312,7 +312,7 @@
47 do_abi_check:
48 set -ex; \
49 for file in $(abi_headers); do \
50- @CC@ -E -nostdinc -dI \
51+ @CC@ -E -nostdinc -dI -DMYSQL_ABI_CHECK \
52 -I$(top_srcdir)/include \
53 -I$(top_srcdir)/include/mysql \
54 -I$(top_srcdir)/sql \
55Index: mysql-5.1.40/include/mysql.h
56===================================================================
57--- mysql-5.1.40.orig/include/mysql.h 2009-10-07 01:46:50.000000000 +0800
58+++ mysql-5.1.40/include/mysql.h 2010-08-17 20:07:24.843148001 +0800
59@@ -44,7 +44,9 @@
60 #endif
61
62 #ifndef _global_h /* If not standard header */
63+#ifndef MYSQL_ABI_CHECK
64 #include <sys/types.h>
65+#endif
66 #ifdef __LCC__
67 #include <winsock2.h> /* For windows */
68 #endif
69Index: mysql-5.1.40/include/mysql.h.pp
70===================================================================
71--- mysql-5.1.40.orig/include/mysql.h.pp 2009-10-07 01:46:50.000000000 +0800
72+++ mysql-5.1.40/include/mysql.h.pp 2010-08-17 20:07:24.843148001 +0800
73@@ -1,4 +1,3 @@
74-#include <sys/types.h>
75 typedef char my_bool;
76 typedef int my_socket;
77 #include "mysql_version.h"
diff --git a/meta-oe/recipes-support/mysql/mysql5/fix_host_path.patch b/meta-oe/recipes-support/mysql/mysql5/fix_host_path.patch
new file mode 100644
index 000000000..4f69cd519
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/fix_host_path.patch
@@ -0,0 +1,37 @@
1--- mysql-4.1.22/configure.in.old 2008-09-18 20:11:15.000000000 -0500
2+++ mysql-4.1.22/configure.in 2008-09-18 20:12:28.000000000 -0500
3@@ -456,9 +456,9 @@ else
4 fi
5 fi
6
7-AC_SUBST(HOSTNAME)
8-AC_SUBST(PERL)
9-AC_SUBST(PERL5)
10+AC_SUBST(HOSTNAME,/bin/hostname)
11+AC_SUBST(PERL,$(bindir)/perl)
12+AC_SUBST(PERL5,$(bindir)/perl)
13
14 # for build ndb docs
15
16@@ -516,16 +516,17 @@ AC_MSG_RESULT("$FIND_PROC")
17
18 # Check if a pid is valid
19 AC_PATH_PROG(KILL, kill, kill)
20+AC_SUBST(KILL,/bin/kill)
21 AC_MSG_CHECKING("for kill switches")
22-if $ac_cv_path_KILL -0 $$
23+if $KILL -0 $$
24 then
25- CHECK_PID="$ac_cv_path_KILL -0 \$\$PID > /dev/null 2> /dev/null"
26+ CHECK_PID="$KILL -0 \$\$PID > /dev/null 2> /dev/null"
27 elif kill -s 0 $$
28 then
29- CHECK_PID="$ac_cv_path_KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
30+ CHECK_PID="$KILL -s 0 \$\$PID > /dev/null 2> /dev/null"
31 else
32 AC_MSG_WARN([kill -0 to check for pid seems to fail])
33- CHECK_PID="$ac_cv_path_KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
34+ CHECK_PID="$KILL -s SIGCONT \$\$PID > /dev/null 2> /dev/null"
35 fi
36 AC_SUBST(CHECK_PID)
37 AC_MSG_RESULT("$CHECK_PID")
diff --git a/meta-oe/recipes-support/mysql/mysql5/misc.m4.patch b/meta-oe/recipes-support/mysql/mysql5/misc.m4.patch
new file mode 100644
index 000000000..7b0acff21
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/misc.m4.patch
@@ -0,0 +1,13 @@
1Index: mysql-5.1.40/config/ac-macros/misc.m4
2===================================================================
3--- mysql-5.1.40.orig/config/ac-macros/misc.m4
4+++ mysql-5.1.40/config/ac-macros/misc.m4
5@@ -476,7 +476,7 @@ AC_DEFUN([MYSQL_STACK_DIRECTION],
6 {
7 exit (find_stack_direction() < 0);
8 }], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
9- ac_cv_c_stack_direction=)])
10+ ac_cv_c_stack_direction=0)])
11 AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
12 ])dnl
13
diff --git a/meta-oe/recipes-support/mysql/mysql5/my.cnf b/meta-oe/recipes-support/mysql/mysql5/my.cnf
new file mode 100644
index 000000000..7f557e425
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/my.cnf
@@ -0,0 +1,21 @@
1[client]
2#password = password
3port = 3306
4socket = /tmp/mysql.sock
5
6[mysqld_safe]
7err-log = /var/log/mysql.err
8
9[mysqld]
10user = mysql
11port = 3306
12socket = /tmp/mysql.sock
13pid-file = /var/lib/mysql/mysqld.pid
14log-error = /var/log/mysqld.err
15basedir = /usr
16datadir = /var/mysql
17skip-locking
18loose-skip-innodb
19skip-networking
20bind-address = localhost
21
diff --git a/meta-oe/recipes-support/mysql/mysql5/mysqld.sh b/meta-oe/recipes-support/mysql/mysql5/mysqld.sh
new file mode 100644
index 000000000..479ebdb25
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/mysqld.sh
@@ -0,0 +1,24 @@
1# MySQL init script
2
3. /etc/default/rcS
4
5case "$1" in
6 start)
7 /usr/bin/mysqld_safe &
8 ;;
9 stop)
10 if test -f /var/lib/mysql/mysqld.pid ; then
11 PID=`cat /var/lib/mysql/mysqld.pid`
12 kill $PID
13 fi
14 ;;
15 restart)
16 $0 stop
17 $0 start
18 ;;
19 *)
20 echo "Usage: /etc/init.d/mysqld {start|stop|restart}"
21 ;;
22esac
23
24exit 0
diff --git a/meta-oe/recipes-support/mysql/mysql5/plug.in.patch b/meta-oe/recipes-support/mysql/mysql5/plug.in.patch
new file mode 100644
index 000000000..70c39fa7a
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5/plug.in.patch
@@ -0,0 +1,40 @@
1Index: mysql-5.1.40/storage/innodb_plugin/plug.in
2===================================================================
3--- mysql-5.1.40.orig/storage/innodb_plugin/plug.in
4+++ mysql-5.1.40/storage/innodb_plugin/plug.in
5@@ -63,35 +63,6 @@ MYSQL_PLUGIN_ACTIONS(innodb_plugin, [
6 ;;
7 esac
8 AC_SUBST(INNODB_DYNAMIC_CFLAGS)
9- AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
10- AC_TRY_RUN(
11- [
12- #include <pthread.h>
13- #include <string.h>
14-
15- int main(int argc, char** argv) {
16- pthread_t x1;
17- pthread_t x2;
18- pthread_t x3;
19-
20- memset(&x1, 0x0, sizeof(x1));
21- memset(&x2, 0x0, sizeof(x2));
22- memset(&x3, 0x0, sizeof(x3));
23-
24- __sync_bool_compare_and_swap(&x1, x2, x3);
25-
26- return(0);
27- }
28- ],
29- [
30- AC_DEFINE([HAVE_ATOMIC_PTHREAD_T], [1],
31- [pthread_t can be used by GCC atomic builtins])
32- AC_MSG_RESULT(yes)
33- ],
34- [
35- AC_MSG_RESULT(no)
36- ]
37- )
38
39 # Try using solaris atomics on SunOS if GCC atomics are not available
40 AC_CHECK_DECLS(
diff --git a/meta-oe/recipes-support/mysql/mysql5_5.1.40.bb b/meta-oe/recipes-support/mysql/mysql5_5.1.40.bb
new file mode 100644
index 000000000..5229312dc
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5_5.1.40.bb
@@ -0,0 +1,6 @@
1require ${PN}_${PV}.inc
2
3DEPENDS += mysql5-native
4
5SRC_URI[md5sum] = "32e7373c16271606007374396e6742ad"
6SRC_URI[sha256sum] = "2b0737b84e7b42c9e54c9658d23bfaee1189cd5955f26b10bdb862761d0f0432"
diff --git a/meta-oe/recipes-support/mysql/mysql5_5.1.40.inc b/meta-oe/recipes-support/mysql/mysql5_5.1.40.inc
new file mode 100644
index 000000000..348f4e38d
--- /dev/null
+++ b/meta-oe/recipes-support/mysql/mysql5_5.1.40.inc
@@ -0,0 +1,172 @@
1DESCRIPTION = "The MySQL Open Source Database System"
2HOMEPAGE = "http://www.mysql.com/"
3SECTION = "libs"
4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=477ab0a4c8ca64b482b3f2a365d0fdfa"
6
7DEPENDS = "ncurses"
8PR = "r5"
9
10SRC_URI = "http://downloads.mysql.com/archives/mysql-5.1/mysql-${PV}.tar.gz \
11 file://configure.in.patch \
12 file://plug.in.patch \
13 file://misc.m4.patch \
14 file://Makefile.am.patch \
15 file://fix_host_path.patch \
16 file://configure-ps-cache-check.patch \
17 file://fix-abi-check-gcc45.patch \
18 file://my.cnf \
19 file://mysqld.sh"
20
21S = "${WORKDIR}/mysql-${PV}"
22
23BINCONFIG_GLOB = "mysql_config"
24
25inherit autotools binconfig update-rc.d
26
27INITSCRIPT_PACKAGES = "${PN}-server"
28INITSCRIPT_NAME = "mysqld"
29INITSCRIPT_PARAMS = "start 45 S . stop 45 0 6 1 ."
30
31export ac_cv_path_PS=/bin/ps
32export ac_cv_FIND_PROC="/bin/ps p \$\$PID | grep -v grep | grep mysqld > /dev/null"
33PARALLEL_MAKE = " "
34EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
35EXTRA_OECONF = " --with-atomic-ops=up --with-embedded-server --prefix=/usr --sysconfdir=/etc/mysql --localstatedir=/var/mysql --disable-dependency-tracking --without-raid --without-debug --with-low-memory --without-query-cache --without-man --without-docs --without-innodb "
36
37do_configure_append() {
38 sed -i /comp_err/d ${S}/sql/share/Makefile
39}
40
41SYSROOT_PREPROCESS_FUNCS += "mysql5_sysroot_preprocess"
42
43# We need to append this so it runs *after* binconfig's preprocess function
44mysql5_sysroot_preprocess () {
45 sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${SYSROOT_DESTDIR}${bindir_crossscripts}/mysql_config
46 sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${SYSROOT_DESTDIR}${bindir_crossscripts}/mysql_config
47}
48
49do_install() {
50 oe_runmake 'DESTDIR=${D}' install
51 mv -f ${D}${libdir}/mysql/* ${D}${libdir}
52 rmdir ${D}${libdir}/mysql
53
54 install -d ${D}/etc/init.d
55 install -m 0644 ${WORKDIR}/my.cnf ${D}/etc/
56 install -m 0755 ${WORKDIR}/mysqld.sh ${D}/etc/init.d/mysqld
57}
58
59pkg_postinst_mysql5-server () {
60 if [ "x$D" != "x" ]; then
61 exit 1
62 fi
63
64 grep mysql /etc/passwd || adduser --disabled-password --home=/var/mysql --ingroup nogroup mysql
65
66 #Install the database
67 test -d /usr/bin || mkdir -p /usr/bin
68 test -e /usr/bin/hostname || ln -s /bin/hostname /usr/bin/hostname
69 mkdir /var/lib/mysql
70 chown mysql.nogroup /var/lib/mysql
71
72 mysql_install_db
73
74}
75
76pkg_postrm_mysql5-server () {
77 grep mysql /etc/passwd && deluser mysql
78}
79
80PACKAGES = "${PN}-dbg ${PN} \
81libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-dbg \
82libmysqlclient libmysqlclient-dev libmysqlclient-dbg \
83${PN}-client ${PN}-server ${PN}-leftovers"
84CONFFILES_${PN}-server += "${sysconfdir}/my.cnf"
85
86FILES_${PN} = " "
87RDEPENDS_${PN} = "${PN}-client ${PN}-server"
88ALLOW_EMPTY_${PN} = "1"
89
90FILES_libmysqlclient = "${libdir}/libmysqlclient.so.*"
91FILES_libmysqlclient-dev = " \
92${includedir}/mysql/ \
93${libdir}/lib* \
94${libdir}/plugin/* \
95${sysconfdir}/aclocal \
96${bindir}/mysql_config"
97FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \
98/usr/mysql-test/lib/My/SafeProcess/.debug/my_safe_process"
99
100FILES_libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*"
101FILES_libmysqlclient-r-dev = "${libdir}/libmysqlclient_r.*"
102FILES_libmysqlclient-r-dbg = "${libdir}/plugin/.debuglibmysqlclient_r.so.*"
103
104FILES_${PN}-client = "\
105${bindir}/myisam_ftdump \
106${bindir}/mysql \
107${bindir}/mysql_client_test \
108${bindir}/mysql_client_test_embedded \
109${bindir}/mysql_find_rows \
110${bindir}/mysql_fix_extensions \
111${bindir}/mysql_waitpid \
112${bindir}/mysqlaccess \
113${bindir}/mysqladmin \
114${bindir}/mysqlbug \
115${bindir}/mysqlcheck \
116${bindir}/mysqldump \
117${bindir}/mysqldumpslow \
118${bindir}/mysqlimport \
119${bindir}/mysqlshow \
120${bindir}/mysqlslap \
121${bindir}/mysqltest_embedded \
122${libexecdir}/mysqlmanager"
123
124FILES_${PN}-server = "\
125${bindir}/comp_err \
126${bindir}/isamchk \
127${bindir}/isamlog \
128${bindir}/msql2mysql \
129${bindir}/my_print_defaults \
130${bindir}/myisamchk \
131${bindir}/myisamlog \
132${bindir}/myisampack \
133${bindir}/mysql_convert_table_format \
134${bindir}/mysql_fix_privilege_tables \
135${bindir}/mysql_install_db \
136${bindir}/mysql_secure_installation \
137${bindir}/mysql_setpermission \
138${bindir}/mysql_tzinfo_to_sql \
139${bindir}/mysql_upgrade \
140${bindir}/mysql_zap \
141${bindir}/mysqlbinlog \
142${bindir}/mysqld_multi \
143${bindir}/mysqld_safe \
144${bindir}/mysqlhotcopy \
145${bindir}/mysqltest \
146${bindir}/ndb_delete_all \
147${bindir}/ndb_desc \
148${bindir}/ndb_drop_index \
149${bindir}/ndb_drop_table \
150${bindir}/ndb_mgm \
151${bindir}/ndb_restore \
152${bindir}/ndb_select_all \
153${bindir}/ndb_select_count \
154${bindir}/ndb_show_tables \
155${bindir}/ndb_waiter \
156${bindir}/pack_isam \
157${bindir}/perror \
158${bindir}/replace \
159${bindir}/resolve_stack_dump \
160${bindir}/resolveip \
161${libexecdir}/mysqld \
162${sbindir}/mysqld \
163${sbindir}/ndb_cpcd \
164${sbindir}/ndbd \
165${sbindir}/ndb_mgmd \
166${datadir}/mysql/ \
167${localstatedir}/mysql/ \
168${sysconfdir}/init.d \
169${sysconfdir}/my.cnf"
170
171DESCRIPTION_${PN}-leftovers = "unpackaged and probably unneeded files for ${PN}"
172FILES_${PN}-leftovers = "/"
diff --git a/meta-oe/recipes-support/ntp/files/hipox/ntp.conf b/meta-oe/recipes-support/ntp/files/hipox/ntp.conf
new file mode 100644
index 000000000..57e585c17
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/hipox/ntp.conf
@@ -0,0 +1,13 @@
1# This is the most basic ntp configuration file
2# The driftfile must remain in a place specific to this
3# machine - it records the machine specific clock error
4driftfile /etc/ntp.drift
5# This obtains a random server which will be close
6# (in IP terms) to the machine. Add other servers
7# as required, or change this.
8#server pool.ntp.org
9# Using local hardware clock as fallback
10server 127.127.1.0
11fudge 127.127.1.0 stratum 14
12# Defining a default security setting
13restrict default nomodify nopeer
diff --git a/meta-oe/recipes-support/ntp/files/hipox/ntpd b/meta-oe/recipes-support/ntp/files/hipox/ntpd
new file mode 100755
index 000000000..7d2cd34cd
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/hipox/ntpd
@@ -0,0 +1,62 @@
1#! /bin/sh
2#
3# ntpd init.d script for ntpdc from ntp.isc.org
4test -x /usr/bin/ntpd -a -r /etc/ntp.conf || exit 0
5# rcS contains TICKADJ
6test -r /etc/default/rcS && . /etc/default/rcS
7
8# Functions to do individual actions
9settick(){
10 # If TICKADJ is set we *must* adjust it before we start, because the
11 # driftfile relies on the correct setting
12 test -n "$TICKADJ" -a -x /usr/bin/tickadj && {
13 echo -n "Setting tick to $TICKADJ: "
14 /usr/bin/tickadj "$TICKADJ"
15 echo "done"
16 }
17}
18startdaemon(){
19 # The -g option allows ntpd to step the time to correct it just
20 # once. The daemon will exit if the clock drifts too much after
21 # this. If ntpd seems to disappear after a while assume TICKADJ
22 # above is set to a totally incorrect value.
23 echo -n "Starting ntpd: "
24 start-stop-daemon --start -x /usr/bin/ntpd -- -p /var/run/ntp.pid "$@"
25 echo "done"
26}
27stopdaemon(){
28 echo -n "Stopping ntpd: "
29 start-stop-daemon --stop -p /var/run/ntp.pid
30 echo "done"
31}
32
33case "$1" in
34 start)
35 settick
36 startdaemon -g -x
37 ;;
38 stop)
39 stopdaemon
40 ;;
41 force-reload)
42 stopdaemon
43 settick
44 startdaemon -g -x
45 ;;
46 restart)
47 # Don't reset the tick here
48 stopdaemon
49 startdaemon -g -x
50 ;;
51 reload)
52 # Must do this by hand, but don't do -g
53 stopdaemon
54 startdaemon -x
55 ;;
56 *)
57 echo "Usage: ntpd { start | stop | restart | reload }" >&2
58 exit 1
59 ;;
60esac
61
62exit 0
diff --git a/meta-oe/recipes-support/ntp/files/ntp b/meta-oe/recipes-support/ntp/files/ntp
new file mode 100755
index 000000000..e91a52869
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/ntp
@@ -0,0 +1,31 @@
1#! /bin/sh
2
3FLAGS="defaults 23"
4
5test -f /usr/bin/ntpd || exit 0
6
7case "$1" in
8 start)
9 echo -n "Starting NTP server: ntpd"
10 start-stop-daemon --start --quiet --exec /usr/bin/ntpd
11 echo "."
12 ;;
13 stop)
14 echo -n "Stopping NTP server: ntpd"
15 start-stop-daemon --stop --quiet --exec /usr/bin/ntpd
16 echo "."
17 ;;
18 restart|force-reload)
19 echo -n "Restarting NTP server: ntpd... "
20 start-stop-daemon --stop --quiet --exec /usr/bin/ntpd
21 sleep 2
22 start-stop-daemon --start --quiet --exec /usr/bin/ntpd
23 echo "done."
24 ;;
25 *)
26 echo "Usage: /etc/init.d/ntp {start|stop|restart|force-reload}"
27 exit 1
28 ;;
29esac
30
31exit 0
diff --git a/meta-oe/recipes-support/ntp/files/ntp-4.2.4_p6-nano.patch b/meta-oe/recipes-support/ntp/files/ntp-4.2.4_p6-nano.patch
new file mode 100644
index 000000000..cb1e2f734
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/ntp-4.2.4_p6-nano.patch
@@ -0,0 +1,17 @@
1--- a/include/ntp_syscall.h.orig 2009-05-19 16:44:55.048156467 -0400
2+++ b/include/ntp_syscall.h 2009-05-19 16:46:19.293323686 -0400
3@@ -14,6 +14,14 @@
4 # include <sys/timex.h>
5 #endif
6
7+#if defined(ADJ_NANO) && !defined(MOD_NANO)
8+#define MOD_NANO ADJ_NANO
9+#endif
10+
11+#if defined(ADJ_TAI) && !defined(MOD_TAI)
12+#define MOD_TAI ADJ_TAI
13+#endif
14+
15 #ifndef NTP_SYSCALLS_LIBC
16 #ifdef NTP_SYSCALLS_STD
17 # define ntp_adjtime(t) syscall(SYS_ntp_adjtime, (t))
diff --git a/meta-oe/recipes-support/ntp/files/ntp.conf b/meta-oe/recipes-support/ntp/files/ntp.conf
new file mode 100644
index 000000000..02a44b0d0
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/ntp.conf
@@ -0,0 +1,13 @@
1# This is the most basic ntp configuration file
2# The driftfile must remain in a place specific to this
3# machine - it records the machine specific clock error
4driftfile /etc/ntp.drift
5# This obtains a random server which will be close
6# (in IP terms) to the machine. Add other servers
7# as required, or change this.
8server pool.ntp.org
9# Using local hardware clock as fallback
10server 127.127.1.0
11fudge 127.127.1.0 stratum 14
12# Defining a default security setting
13restrict default nomodify nopeer
diff --git a/meta-oe/recipes-support/ntp/files/ntpd b/meta-oe/recipes-support/ntp/files/ntpd
new file mode 100755
index 000000000..ae50f135d
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/ntpd
@@ -0,0 +1,62 @@
1#! /bin/sh
2#
3# ntpd init.d script for ntpdc from ntp.isc.org
4test -x /usr/bin/ntpd -a -r /etc/ntp.conf || exit 0
5# rcS contains TICKADJ
6test -r /etc/default/rcS && . /etc/default/rcS
7
8# Functions to do individual actions
9settick(){
10 # If TICKADJ is set we *must* adjust it before we start, because the
11 # driftfile relies on the correct setting
12 test -n "$TICKADJ" -a -x /usr/bin/tickadj && {
13 echo -n "Setting tick to $TICKADJ: "
14 /usr/bin/tickadj "$TICKADJ"
15 echo "done"
16 }
17}
18startdaemon(){
19 # The -g option allows ntpd to step the time to correct it just
20 # once. The daemon will exit if the clock drifts too much after
21 # this. If ntpd seems to disappear after a while assume TICKADJ
22 # above is set to a totally incorrect value.
23 echo -n "Starting ntpd: "
24 start-stop-daemon --start -x /usr/bin/ntpd -- -p /var/run/ntp.pid "$@"
25 echo "done"
26}
27stopdaemon(){
28 echo -n "Stopping ntpd: "
29 start-stop-daemon --stop -p /var/run/ntp.pid
30 echo "done"
31}
32
33case "$1" in
34 start)
35 settick
36 startdaemon -g
37 ;;
38 stop)
39 stopdaemon
40 ;;
41 force-reload)
42 stopdaemon
43 settick
44 startdaemon -g
45 ;;
46 restart)
47 # Don't reset the tick here
48 stopdaemon
49 startdaemon -g
50 ;;
51 reload)
52 # Must do this by hand, but don't do -g
53 stopdaemon
54 startdaemon
55 ;;
56 *)
57 echo "Usage: ntpd { start | stop | restart | reload }" >&2
58 exit 1
59 ;;
60esac
61
62exit 0
diff --git a/meta-oe/recipes-support/ntp/files/ntpdate b/meta-oe/recipes-support/ntp/files/ntpdate
new file mode 100755
index 000000000..784b029ad
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/ntpdate
@@ -0,0 +1,49 @@
1#!/bin/sh
2
3PATH=/sbin:/bin:/usr/bin
4
5test -x /usr/bin/ntpdate || exit 0
6
7if test -f /etc/default/ntpdate ; then
8. /etc/default/ntpdate
9else
10NTPSERVERS="pool.ntp.org"
11fi
12
13test -n "$NTPSERVERS" || exit 0
14
15# This is a heuristic: The idea is that if a static interface is brought
16# up, that is a major event, and we can put in some extra effort to fix
17# the system time. Feel free to change this, especially if you regularly
18# bring up new network interfaces.
19if [ "$METHOD" = static ]; then
20 OPTS="-b"
21fi
22
23if [ "$METHOD" = loopback ]; then
24 exit 0
25fi
26
27(
28
29LOCKFILE=/var/lock/ntpdate
30
31# Avoid running more than one at a time
32if [ -x /usr/bin/lockfile-create ]; then
33 lockfile-create $LOCKFILE
34 lockfile-touch $LOCKFILE &
35 LOCKTOUCHPID="$!"
36fi
37
38if /usr/bin/ntpdate -s $OPTS $NTPSERVERS 2>/dev/null; then
39 if [ "$UPDATE_HWCLOCK" = "yes" ]; then
40 hwclock --systohc || :
41 fi
42fi
43
44if [ -x /usr/bin/lockfile-create ] ; then
45 kill $LOCKTOUCHPID
46 lockfile-remove $LOCKFILE
47fi
48
49) &
diff --git a/meta-oe/recipes-support/ntp/files/tickadj.c.patch b/meta-oe/recipes-support/ntp/files/tickadj.c.patch
new file mode 100644
index 000000000..9ef9de9e1
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/files/tickadj.c.patch
@@ -0,0 +1,32 @@
1Index: ntp-4.2.2p3-r0/ntp-4.2.2p3/util/tickadj.c
2===================================================================
3--- ntp-4.2.2p3/util/tickadj.c 2004-02-25 06:58:33.000000000 +0100
4+++ ntp-4.2.2p3/util/tickadj.c 2007-07-07 01:00:54.000000000 +0200
5@@ -21,7 +21,8 @@
6 # include <unistd.h>
7 #endif /* HAVE_UNISTD_H */
8
9-#ifdef HAVE___ADJTIMEX /* Linux */
10+/* proper handling here has been moved to upstream ntp bugzilla */
11+#ifdef linux
12
13 #include <sys/timex.h>
14 struct timex txc;
15@@ -91,7 +92,7 @@
16 }
17
18 if (!errflg) {
19- if (__adjtimex(&txc) < 0)
20+ if (adjtimex(&txc) < 0)
21 perror("adjtimex");
22 else if (!quiet)
23 printf("tick = %ld\ntick_adj = %d\n",
24@@ -146,7 +147,7 @@
25 #endif
26 }
27
28- if (__adjtimex(&txc) < 0)
29+ if (adjtimex(&txc) < 0)
30 {
31 perror("adjtimex");
32 }
diff --git a/meta-oe/recipes-support/ntp/ntp-ssl_4.2.6p3.bb b/meta-oe/recipes-support/ntp/ntp-ssl_4.2.6p3.bb
new file mode 100644
index 000000000..a15899079
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/ntp-ssl_4.2.6p3.bb
@@ -0,0 +1,11 @@
1require ntp_${PV}.bb
2DEPENDS = "openssl"
3
4S = "${WORKDIR}/ntp-${PV}"
5
6EXTRA_OECONF = "--with-openssl-libdir=${STAGING_LIBDIR} \
7 --with-openssl-incdir=${STAGING_INCDIR}/openssl"
8
9
10SRC_URI[md5sum] = "98e16c7aa4ecd4c004b51bff18962e95"
11SRC_URI[sha256sum] = "9f4a5271a285d390c9225e3ea28f70049ea377d30fc6de4659007cfff278671a"
diff --git a/meta-oe/recipes-support/ntp/ntp.inc b/meta-oe/recipes-support/ntp/ntp.inc
new file mode 100644
index 000000000..c72e40e79
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/ntp.inc
@@ -0,0 +1,33 @@
1DESCRIPTION = "The Network Time Protocol (NTP) is used to \
2synchronize the time of a computer client or server to \
3another server or reference time source, such as a radio \
4or satellite receiver or modem."
5HOMEPAGE = "http://ntp.isc.org/bin/view/Main/WebHome"
6SECTION = "console/network"
7PRIORITY = "optional"
8LICENSE = "ntp"
9LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fea4b50c33b18c2194b4b1c9ca512670"
10RSUGGESTS_${PN} = "iana-etc"
11
12SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \
13 file://ipv6only-workaround.patch \
14 file://ntpd \
15 file://ntp.conf \
16 file://ntpdate"
17
18inherit autotools update-rc.d
19
20INITSCRIPT_NAME = "ntpd"
21# No dependencies, so just go in at the standard level (20)
22INITSCRIPT_PARAMS = "defaults"
23
24# The ac_cv_header_readline_history is to stop ntpdc depending on either
25# readline or curses
26EXTRA_OECONF = "--without-openssl --without-crypto ac_cv_header_readline_history_h=no"
27CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
28
29PACKAGES += "ntpdate ${PN}-bin ${PN}-tickadj ${PN}-utils"
30# NOTE: you don't need ntpdate, use "ntpdc -q -g -x"
31
32# This should use rc.update
33FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate"
diff --git a/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb b/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb
new file mode 100644
index 000000000..f64f6f6d9
--- /dev/null
+++ b/meta-oe/recipes-support/ntp/ntp_4.2.6p3.bb
@@ -0,0 +1,46 @@
1require ntp.inc
2
3PR = "r1"
4
5SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \
6 file://tickadj.c.patch \
7 file://ntp-4.2.4_p6-nano.patch \
8 file://ntpd \
9 file://ntp.conf \
10 file://ntpdate"
11
12SRC_URI[md5sum] = "59876a9009b098ff59767ee45a88ebd2"
13SRC_URI[sha256sum] = "6e84d4ddfa14b911c3ed88463af10867e1fa9b287e7b34d8a02e78be85a7c40e"
14
15EXTRA_OECONF += " --with-net-snmp-config=no --without-ntpsnmpd"
16
17do_install_append() {
18 install -d ${D}/${sysconfdir}/init.d
19 install -m 644 ${WORKDIR}/ntp.conf ${D}/${sysconfdir}
20 install -m 755 ${WORKDIR}/ntpd ${D}/${sysconfdir}/init.d
21 install -d ${D}/${sysconfdir}/network/if-up.d
22 install -m 755 ${WORKDIR}/ntpdate ${D}/${sysconfdir}/network/if-up.d
23}
24
25FILES_${PN}-bin = "${bindir}/ntp-wait ${bindir}/ntpdc ${bindir}/ntpq ${bindir}/ntptime ${bindir}/ntptrace"
26FILES_${PN} = "${bindir}/ntpd ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd"
27FILES_${PN}-tickadj = "${bindir}/tickadj"
28FILES_ntp-utils = "${bindir}/*"
29FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/network/if-up.d/ntpdate"
30
31# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms
32# with wonky clocks (e.g. OpenSlug)
33RDEPENDS_${PN} = "${PN}-tickadj"
34
35pkg_postinst_ntpdate() {
36if test "x$D" != "x"; then
37 exit 1
38else
39 if ! grep -q -s ntpdate /var/spool/cron/root; then
40 echo "adding crontab"
41 test -d /var/spool/cron || mkdir -p /var/spool/cron
42 echo "30 * * * * /usr/bin/ntpdate -b -s -u pool.ntp.org" >> /var/spool/cron/root
43 fi
44fi
45}
46
diff --git a/meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch b/meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch
new file mode 100644
index 000000000..c0f28f425
--- /dev/null
+++ b/meta-oe/recipes-support/postgresql/files/no-ecpg-test.patch
@@ -0,0 +1,12 @@
1diff --git a/src/interfaces/ecpg/Makefile b/src/interfaces/ecpg/Makefile
2index dcd578f..1428423 100644
3--- a/src/interfaces/ecpg/Makefile
4+++ b/src/interfaces/ecpg/Makefile
5@@ -8,7 +8,6 @@ all install installdirs uninstall dep depend distprep:
6 $(MAKE) -C ecpglib $@
7 $(MAKE) -C compatlib $@
8 $(MAKE) -C preproc $@
9- $(MAKE) -C test $@
10
11 clean distclean maintainer-clean:
12 -$(MAKE) -C include $@
diff --git a/meta-oe/recipes-support/postgresql/postgresql-8.4.4/remove.autoconf.version.check.patch b/meta-oe/recipes-support/postgresql/postgresql-8.4.4/remove.autoconf.version.check.patch
new file mode 100644
index 000000000..d027061d8
--- /dev/null
+++ b/meta-oe/recipes-support/postgresql/postgresql-8.4.4/remove.autoconf.version.check.patch
@@ -0,0 +1,15 @@
1Index: postgresql-8.4.4/configure.in
2===================================================================
3--- postgresql-8.4.4.orig/configure.in
4+++ postgresql-8.4.4/configure.in
5@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch un
6
7 AC_INIT([PostgreSQL], [8.4.4], [pgsql-bugs@postgresql.org])
8
9-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.61], [], [m4_fatal([Autoconf version 2.61 is required.
10-Untested combinations of 'autoconf' and PostgreSQL versions are not
11-recommended. You can remove the check from 'configure.in' but it is then
12-your responsibility whether the result works or not.])])
13 AC_COPYRIGHT([Copyright (c) 1996-2009, PostgreSQL Global Development Group])
14 AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
15 AC_CONFIG_AUX_DIR(config)
diff --git a/meta-oe/recipes-support/postgresql/postgresql.inc b/meta-oe/recipes-support/postgresql/postgresql.inc
new file mode 100644
index 000000000..edad3bcc5
--- /dev/null
+++ b/meta-oe/recipes-support/postgresql/postgresql.inc
@@ -0,0 +1,66 @@
1DESCRIPTION = "PostgreSQL is a powerful, open source relational database system."
2HOMEPAGE = "http://www.postgresql.com"
3LICENSE = "BSD"
4
5DEPENDS = "zlib readline tzcode-native"
6
7ARM_INSTRUCTION_SET = "arm"
8
9#WARNING: this recipe assumes you have the timezone compiler present in /usr/sbin/zic
10
11SRC_URI = "ftp://ftp-archives.postgresql.org/pub/source/v${PV}/${P}.tar.bz2"
12
13LEAD_SONAME = "libpq.so"
14
15# LDFLAGS for shared libraries
16export LDFLAGS_SL = "${LDFLAGS}"
17
18inherit autotools pkgconfig
19
20do_compile_append() {
21 cp /usr/sbin/zic ${S}/src/timezone/
22}
23
24PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
25 libecpg-compat-dbg libecpg-compat \
26 libecpg-dbg libecpg libecpg-dev \
27 libpq-dbg libpq libpq-dev \
28 libpgtypes-dbg libpgtypes "
29
30FILES_${PN}-client = "${bindir}/clusterdb \
31 ${bindir}/createdb \
32 ${bindir}/createlang \
33 ${bindir}/createuser \
34 ${bindir}/dropdb \
35 ${bindir}/droplang \
36 ${bindir}/dropuser \
37 ${bindir}/pg_dump \
38 ${bindir}/pg_dumpall \
39 ${bindir}/pg_restore \
40 ${bindir}/psql \
41 ${bindir}/reindexdb \
42 ${bindir}/vacuumdb \
43 ${bindir}/vacuumlo \
44 ${datadir}/${PN}/psqlrc.sample"
45
46FILES_${PN}-doc += "${prefix}/doc/"
47FILES_${PN}-timezone = "${datadir}/${PN}/timezone"
48FILES_${PN}-server-dev = "${includedir}/${PN}/server"
49
50FILES_libecpg = "${libdir}/libecpg*.so.*"
51FILES_libecpg-dbg = "${libdir}/.debug/libecpg*"
52FILES_libecpg-dev = "${libdir}/libecpg*.a ${libdir}/libecpg*.so \
53 ${libdir}/libpgtypes*.a ${libdir}/libpgtypes*.so \
54 ${includedir}/ecpg*.h ${includedir}/${PN}/ecpg*.h \
55 ${includedir}/pgtypes*.h ${includedir}/${PN}/informix \
56 ${includedir}/sql3types.h ${includedir}/sqlca.h"
57
58FILES_libpq = "${libdir}/libpq*.so.*"
59FILES_libpq-dbg = "${libdir}/.debug/libpq* ${libdir}/${PN}/pgxs/src/test/regress/.debug/*"
60FILES_libpq-dev = "${libdir}/libpq*.a ${libdir}/libpq*.so ${libdir}/libpgport.a \
61 ${includedir}"
62
63FILES_libecpg-compat = "${libdir}/libecpg_compat*.so.*"
64FILES_libecpg-compat-dbg = "${libdir}/.debug/libecpg_compat*"
65FILES_libpgtypes = "${libdir}/libpgtypes*.so.*"
66FILES_libpgtypes-dbg = "${libdir}/.debug/libpgtypes*"
diff --git a/meta-oe/recipes-support/postgresql/postgresql_8.4.4.bb b/meta-oe/recipes-support/postgresql/postgresql_8.4.4.bb
new file mode 100644
index 000000000..d0f507849
--- /dev/null
+++ b/meta-oe/recipes-support/postgresql/postgresql_8.4.4.bb
@@ -0,0 +1,11 @@
1require postgresql.inc
2
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=29b81b066680be9ffd98cb9d2afb9de6"
4
5DEFAULT_PREFERENCE = "-1"
6
7SRC_URI = "ftp://ftp.postgresql.org/pub/source/v${PV}/${P}.tar.bz2 \
8 file://remove.autoconf.version.check.patch"
9
10SRC_URI[md5sum] = "4bf2448ad965bca3940df648c02194df"
11SRC_URI[sha256sum] = "e66b398d565f7fb16d8ae58ae72881dcd3dbb1b88f532bbe1c2d1284812be37e"
diff --git a/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
new file mode 100644
index 000000000..914422f1d
--- /dev/null
+++ b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
@@ -0,0 +1,32 @@
1diff -urN sqlite-2.8.17.orig/main.mk sqlite-2.8.17/main.mk
2--- sqlite-2.8.17.orig/main.mk 2005-04-23 22:43:23.000000000 +0000
3+++ sqlite-2.8.17/main.mk 2009-04-02 20:10:36.000000000 +0000
4@@ -139,7 +139,7 @@
5 # This is the default Makefile target. The objects listed here
6 # are what get build when you type just "make" with no arguments.
7 #
8-all: sqlite.h config.h libsqlite.a sqlite$(EXE)
9+all: sqlite.h config.h libsqlite.so sqlite$(EXE)
10
11 # Generate the file "last_change" which contains the date of change
12 # of the most recently modified source code file
13@@ -148,13 +148,12 @@
14 cat $(SRC) | grep '$$Id: ' | sort +4 | tail -1 \
15 | awk '{print $$5,$$6}' >last_change
16
17-libsqlite.a: $(LIBOBJ)
18- $(AR) libsqlite.a $(LIBOBJ)
19- $(RANLIB) libsqlite.a
20-
21-sqlite$(EXE): $(TOP)/src/shell.c libsqlite.a sqlite.h
22- $(TCCX) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
23- libsqlite.a $(LIBREADLINE) $(THREADLIB)
24+libsqlite.so: $(LIBOBJ)
25+ $(CC) $(LDFLAGS) -shared -o libsqlite.so -Wl,-soname,libsqlite.so.0 $(LIBOBJ)
26+
27+sqlite$(EXE): $(TOP)/src/shell.c libsqlite.so sqlite.h
28+ $(TCCX) $(LDFLAGS) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
29+ -lsqlite $(LIBREADLINE) $(THREADLIB)
30
31 sqlite_analyzer$(EXE): $(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC) \
32 $(TOP)/tool/spaceanal.tcl
diff --git a/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
new file mode 100644
index 000000000..b84b6486e
--- /dev/null
+++ b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
@@ -0,0 +1,20 @@
1diff -bur sqlite-2.8.17~orig/main.mk sqlite-2.8.17/main.mk
2--- sqlite-2.8.17~orig/main.mk 2006-02-13 04:09:33.000000000 -0600
3+++ sqlite-2.8.17/main.mk 2006-02-13 04:15:42.000000000 -0600
4@@ -58,7 +58,7 @@
5 expr.o func.o hash.o insert.o \
6 main.o opcodes.o os.o pager.o parse.o pragma.o printf.o random.o \
7 select.o table.o tokenize.o trigger.o update.o util.o \
8- vacuum.o vdbe.o vdbeaux.o where.o tclsqlite.o
9+ vacuum.o vdbe.o vdbeaux.o where.o
10
11 # All of the source code files.
12 #
13@@ -91,7 +91,6 @@
14 $(TOP)/src/sqlite.h.in \
15 $(TOP)/src/sqliteInt.h \
16 $(TOP)/src/table.c \
17- $(TOP)/src/tclsqlite.c \
18 $(TOP)/src/tokenize.c \
19 $(TOP)/src/trigger.c \
20 $(TOP)/src/update.c \
diff --git a/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc
new file mode 100644
index 000000000..6bc742eec
--- /dev/null
+++ b/meta-oe/recipes-support/sqlite/sqlite-2.8.17/sqlite.pc
@@ -0,0 +1,12 @@
1# Package Information for pkg-config
2
3prefix=/usr
4exec_prefix=${prefix}
5libdir=${exec_prefix}/lib
6includedir=${prefix}/include
7
8Name: SQLite
9Description: SQL database engine
10Version: 2.8.17
11Libs: -L${libdir} -lsqlite
12Cflags: -I${includedir}
diff --git a/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb b/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb
new file mode 100644
index 000000000..75678f629
--- /dev/null
+++ b/meta-oe/recipes-support/sqlite/sqlite_2.8.17.bb
@@ -0,0 +1,60 @@
1DESCRIPTION = "An Embeddable SQL Database Engine"
2HOMEPAGE = "http://www.sqlite.org/"
3SECTION = "libs"
4PRIORITY = "optional"
5DEPENDS = "readline ncurses"
6LICENSE = "PD"
7LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=10;md5=e98469a8efa024a38ad5b2e4b92f4a96"
8
9PR = "r7"
10
11SRC_URI = "http://www.hwaci.com/sw/sqlite/sqlite-${PV}.tar.gz \
12 file://mainmk_build_dynamic.patch \
13 file://mainmk_no_tcl.patch \
14 file://sqlite.pc"
15
16SOURCES = "attach.o auth.o btree.o btree_rb.o build.o copy.o date.o delete.o \
17 expr.o func.o hash.o insert.o main.o opcodes.o os.o pager.o \
18 parse.o pragma.o printf.o random.o select.o table.o tokenize.o \
19 trigger.o update.o util.o vacuum.o vdbe.o vdbeaux.o where.o"
20
21inherit autotools pkgconfig
22
23do_configure() {
24 echo "main.mk is patched, no need to configure"
25 # make pkgconfig.bbclass pick this up
26 mv ${WORKDIR}/sqlite.pc ${S}
27}
28
29do_compile() {
30 oe_runmake -f Makefile.linux-gcc \
31 TOP="${S}" \
32 BCC="${BUILD_CC}" \
33 TCC="${CC}" \
34 OPTS="-fPIC -D'INTPTR_TYPE=int'" \
35 TCL_FLAGS= LIBTCL= \
36 READLINE_FLAGS="-DHAVE_READLINE=1 -I${STAGING_INCDIR}" \
37 LIBREADLINE="-L. -L${STAGING_LIBDIR} -lreadline -lncurses"
38}
39
40do_install() {
41 install -d ${D}${libdir} ${D}${bindir}
42 install sqlite ${D}${bindir}
43 install -m 0755 libsqlite.so ${D}${libdir}/libsqlite.so.0.8.6
44 ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so
45 ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so.0
46 ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so.0.8
47 install -d ${D}${includedir}
48 install -m 0644 sqlite.h ${D}${includedir}/sqlite.h
49 install -d ${D}${libdir}/pkgconfig
50 install -m 0644 ${S}/sqlite.pc ${D}${libdir}/pkgconfig/sqlite.pc
51}
52
53PACKAGES += "${PN}-bin"
54FILES_${PN}-bin = "${bindir}/*"
55FILES_${PN} = "${libdir}/*.so.*"
56
57SRC_URI[md5sum] = "838dbac20b56d2c4292e98848505a05b"
58SRC_URI[sha256sum] = "3f35ebfb67867fb5b583a03e480f900206af637efe7179b32294a6a0cf806f37"
59
60BBCLASSEXTEND = "native"