summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/boost/.mtn2git_empty0
-rw-r--r--packages/boost/boost-jam-native_3.1.9.bb35
-rw-r--r--packages/boost/boost_1.32.0.bb139
-rw-r--r--packages/boost/files/.mtn2git_empty0
-rw-r--r--packages/boost/files/linux-uclibc.patch10
-rw-r--r--packages/boost/files/unit_test_log10f.patch20
-rw-r--r--packages/devio/devio-native_r2.bb7
-rw-r--r--packages/devio/devio_r2.bb25
-rw-r--r--packages/libusb/libusb-0.1.10a/.mtn2git_empty0
-rw-r--r--packages/libusb/libusb-0.1.10a/debian-changes.patch407
-rw-r--r--packages/libusb/libusb_0.1.10a.bb5
-rwxr-xr-x[-rw-r--r--]packages/maemo/gconf-osso/gconf-daemon-dbus-oe.sh0
-rw-r--r--packages/maemo/nokia770-init/.mtn2git_empty0
-rw-r--r--packages/maemo/nokia770-init/fixup-770.sh17
-rw-r--r--packages/maemo/nokia770-init_1.0.bb38
-rw-r--r--packages/maemo/osso-core-config_200515.1.bb8
-rw-r--r--packages/maemo/osso-esd_0.5.bb2
-rw-r--r--packages/meta/openslug-packages.bb4
-rw-r--r--packages/minicom/minicom-2.1/configure.patch18
-rw-r--r--packages/monotone/.mtn2git_empty0
-rw-r--r--packages/monotone/files/.mtn2git_empty0
-rw-r--r--packages/monotone/files/cryptopp-endianness.patch24
-rw-r--r--packages/monotone/files/txt2c-cross.patch15
-rw-r--r--packages/monotone/monotone_0.19.bb38
-rw-r--r--packages/monotone/monotone_0.20.bb37
-rw-r--r--packages/openslug-init/openslug-init-0.10/reflash560
-rw-r--r--packages/openslug-init/openslug-init_0.10.bb2
-rw-r--r--packages/sane-backends/.mtn2git_empty0
-rw-r--r--packages/sane-backends/sane-backends-1.0.15/.mtn2git_empty0
-rw-r--r--packages/sane-backends/sane-backends-1.0.15/Makefile.in.patch11
-rw-r--r--packages/sane-backends/sane-backends-1.0.15/sane-plustek.patch52
-rw-r--r--packages/sane-backends/sane-backends_1.0.15.bb14
-rw-r--r--packages/sharp-binary-only/sharp-aticore-oss_1.0.1.bb3
33 files changed, 1255 insertions, 236 deletions
diff --git a/packages/boost/.mtn2git_empty b/packages/boost/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/boost/.mtn2git_empty
diff --git a/packages/boost/boost-jam-native_3.1.9.bb b/packages/boost/boost-jam-native_3.1.9.bb
new file mode 100644
index 0000000000..e13d160a37
--- /dev/null
+++ b/packages/boost/boost-jam-native_3.1.9.bb
@@ -0,0 +1,35 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+DESCRIPTION = "Make system for boost (native)"
+HOMEPAGE = "http://www.boost.org/"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "Boost Software License"
+
+SRC_URI = "http://download.sourceforge.net/boost/boost-jam-${PV}.tgz"
+
+inherit native
+
+S = "${WORKDIR}/boost-jam-${PV}"
+
+do_compile() {
+ set -ex
+ rm -rf bin.*
+ ./build.sh gcc
+}
+
+# This is too terrible - the build script doesn't give any good
+# way I can see to find out where the binaries are placed, so
+# rely on only one bin.foo directory being created.
+do_stage() {
+ set -ex
+ install -c -m 755 bin.*/jam ${bindir}
+ install -c -m 755 bin.*/mkjambase ${bindir}
+ install -c -m 755 bin.*/yyacc ${bindir}
+ rm -f ${bindir}/bjam
+ ln ${bindir}/jam ${bindir}/bjam
+}
diff --git a/packages/boost/boost_1.32.0.bb b/packages/boost/boost_1.32.0.bb
new file mode 100644
index 0000000000..2dd2a0da28
--- /dev/null
+++ b/packages/boost/boost_1.32.0.bb
@@ -0,0 +1,139 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+DESCRIPTION = "Free peer-reviewed portable C++ source libraries"
+HOMEPAGE = "http://www.boost.org/"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "Boost Software License"
+PR = "r1"
+
+# need debian package naming for the libs
+inherit debian
+
+DEPENDS += "boost-jam-native"
+
+BOOST_VER = "${@"_".join(bb.data.getVar("PV",d,1).split("."))}"
+BOOST_MAJ = "${@"_".join(bb.data.getVar("PV",d,1).split(".")[0:2])}"
+BOOST_P = "boost_${BOOST_VER}"
+SRC_URI = "http://download.sourceforge.net/boost/${BOOST_P}.tar.bz2 \
+ file://unit_test_log10f.patch;patch=1 \
+ file://linux-uclibc.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/${BOOST_P}"
+
+# Make a package for each library, plus -dev and -python
+PACKAGES =
+
+PACKAGES += boost-date-time
+FILES_boost-date-time = "${libdir}/libboost_date_time.so.${PV}"
+
+PACKAGES += boost-filesystem
+FILES_boost-filesystem = "${libdir}/libboost_filesystem.so.${PV}"
+
+PACKAGES += boost-prg-exec-monitor
+FILES_boost-prg-exec-monitor = "${libdir}/libboost_prg_exec_monitor.so.${PV}"
+
+PACKAGES += boost-program-options
+FILES_boost-program-options = "${libdir}/libboost_program_options.so.${PV}"
+
+PACKAGES += boost-regex
+FILES_boost-regex = "${libdir}/libboost_regex.so.${PV}"
+
+PACKAGES += boost-signals
+FILES_boost-signals = "${libdir}/libboost_signals.so.${PV}"
+
+PACKAGES += boost-test-exec-monitor
+FILES_boost-test-exec-monitor = "${libdir}/libboost_test_exec_monitor.so.${PV}"
+
+PACKAGES += boost-thread-mt
+FILES_boost-thread-mt = "${libdir}/libboost_thread-mt.so.${PV}"
+
+PACKAGES += boost-unit-test-framework
+FILES_boost-unit-test-framework = "${libdir}/libboost_unit_test_framework.so.${PV}"
+
+# Python - remove this and set:
+#PYTHON_ROOT = "/dev/null"
+# to remove the python build
+DEPENDS += "python"
+PYTHON_ROOT = "${STAGING_DIR}/${HOST_SYS}"
+PYTHON_VERSION = "2.4"
+
+PACKAGES += boost-python
+FILES_boost-python = "${libdir}/libboost_python.so.${PV}"
+
+# -dev last to pick up the remaining stuff
+PACKAGES += "${PN}-dev"
+FILES_${PN}-dev = "${includedir} ${libdir}/libboost_*.so ${libdir}/libboost_*.a"
+
+# Oh yippee, a new build system, it's sooo cooool I could eat my own
+# foot. inlining=on lets the compiler choose, I think. At least this
+# stuff is documented...
+# NOTE: if you leave <debug-symbols>on then in a debug build the build sys
+# objcopy will be invoked, and that won't work. Building debug apparently
+# requires hacking gcc-tools.jam
+#
+# Sometimes I wake up screaming. Famous figures are gathered in the nightmare,
+# Steve Bourne, Larry Wall, the whole of the ANSI C committee. They're just
+# standing there, waiting, but the truely terrifying thing is what they carry
+# in their hands. At first sight each seems to bear the same thing, but it is
+# not so for the forms in their grasp are ever so slightly different one from
+# the other. Each is twisted in some grotesque way from the other to make each
+# an unspeakable perversion impossible to perceive without the onset of madness.
+# True insanity awaits anyone who perceives all of these horrors together.
+#
+# Quotation marks, there might be an easier way to do this, but I can't find
+# it. The problem is that the user.hpp configuration file must receive a
+# pre-processor macro defined as the appropriate string - complete with "'s
+# around it. (<> is a possibility here but the danger to that is that the
+# failure case interprets the < and > as shell redirections, creating
+# random files in the source tree.)
+#
+#bjam: '-DBOOST_PLATFORM_CONFIG=\"config\"'
+#do_compile: '-sGCC=... '"'-DBOOST_PLATFORM_CONFIG=\"config\"'"
+SQD = '"'
+EQD = '\"'
+#boost.bb: "... '-sGCC=... '${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}config${EQD}'${SQD} ..."
+BJAM_CONF = "${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}boost/config/platform/${TARGET_OS}.hpp${EQD}'${SQD}"
+
+BJAM_TOOLS = "-sTOOLS=gcc \
+ '-sGCC=${CC} '${BJAM_CONF} \
+ '-sGXX=${CXX} '${BJAM_CONF} \
+ -sBUILD='release <optimization>space <inlining>on <debug-symbols>off' \
+ '-sPYTHON_VERSION=${PYTHON_VERSION}' \
+ --layout=system \
+ "
+
+BJAM_OPTS = '${BJAM_TOOLS} \
+ --builddir=${S}/${TARGET_SYS} \
+ --with-python-root=${PYTHON_ROOT} \
+ ${BJAM_EXTRA}'
+
+
+do_compile() {
+ set -ex
+ bjam ${BJAM_OPTS} --prefix=${prefix} \
+ --exec-prefix=${exec_prefix} \
+ --libdir=${libdir} \
+ --includedir=${includedir}
+}
+
+do_stage() {
+ set -ex
+ bjam ${BJAM_OPTS} \
+ --libdir=${STAGING_LIBDIR} \
+ --includedir=${STAGING_INCDIR} \
+ install
+}
+
+do_install() {
+ set -ex
+ bjam ${BJAM_OPTS} \
+ --libdir=${D}${libdir} \
+ --includedir=${D}${includedir} \
+ install
+}
diff --git a/packages/boost/files/.mtn2git_empty b/packages/boost/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/boost/files/.mtn2git_empty
diff --git a/packages/boost/files/linux-uclibc.patch b/packages/boost/files/linux-uclibc.patch
new file mode 100644
index 0000000000..79f14dea88
--- /dev/null
+++ b/packages/boost/files/linux-uclibc.patch
@@ -0,0 +1,10 @@
+--- /dev/null 1969-12-31 16:00:00.000000000 -0800
++++ boost_1_32_0/boost/config/platform/linux-uclibc.hpp 2005-07-05 14:51:56.237294460 -0700
+@@ -0,0 +1,7 @@
++// Modifications required to support uClibC libc implementation.
++// Default to Linux...
++#include "linux.hpp"
++
++// Override anything uClibC doesn't support.
++// At present (0.9.27) the nl_types.h header exists but is not implemented
++#undef BOOST_HAS_NL_TYPES_H
diff --git a/packages/boost/files/unit_test_log10f.patch b/packages/boost/files/unit_test_log10f.patch
new file mode 100644
index 0000000000..b235e12446
--- /dev/null
+++ b/packages/boost/files/unit_test_log10f.patch
@@ -0,0 +1,20 @@
+--- boost_1_32_0/libs/test/src/unit_test_result.cpp.orig 2005-07-05 11:00:53.887594850 -0700
++++ boost_1_32_0/libs/test/src/unit_test_result.cpp 2005-07-05 11:01:20.683533034 -0700
+@@ -144,7 +144,7 @@
+ unit_test_counter num_passed, unit_test_counter num_failed )
+ {
+ unit_test_counter total_test_cases = num_passed + num_failed;
+- std::size_t width = static_cast<std::size_t>( std::log10( (float)(std::max)( num_passed, num_failed ) ) ) + 1;
++ std::size_t width = static_cast<std::size_t>( std::log10( (double)(std::max)( num_passed, num_failed ) ) ) + 1;
+
+ where_to << std::setw( indent ) << "" << std::setw( width ) << num_passed
+ << " test " << ps_name( num_passed != 1, "case" ) << " out of " << total_test_cases << " passed\n"
+@@ -158,7 +158,7 @@
+ {
+ unit_test_counter total_assertions = num_passed + num_failed;
+ std::size_t width = total_assertions > 0
+- ? static_cast<std::size_t>( std::log10( (float)(std::max)( num_passed, num_failed ) ) ) + 1
++ ? static_cast<std::size_t>( std::log10( (double)(std::max)( num_passed, num_failed ) ) ) + 1
+ : 1;
+
+ where_to << std::setw( indent ) << "" << std::setw( width ) << num_passed
diff --git a/packages/devio/devio-native_r2.bb b/packages/devio/devio-native_r2.bb
new file mode 100644
index 0000000000..6f4e9b7f7e
--- /dev/null
+++ b/packages/devio/devio-native_r2.bb
@@ -0,0 +1,7 @@
+# This package builds the devio program for the build architecture
+include devio_${PV}.bb
+
+# Set the installation dir back to the default
+sbindir = "${exec_prefix}/sbin"
+
+inherit native
diff --git a/packages/devio/devio_r2.bb b/packages/devio/devio_r2.bb
new file mode 100644
index 0000000000..4dc70b2311
--- /dev/null
+++ b/packages/devio/devio_r2.bb
@@ -0,0 +1,25 @@
+# This package builds the devio program
+PR = "r0"
+DESCRIPTION = "devio - block devio io"
+HOMEPAGE = "http://devio.sourceforge.net/"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "base"
+LICENSE = "MIT"
+
+SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/devio;method=pserver;module=devio;tag=${PV}"
+# This accesses the head version, anonymous pserver access is
+# only updated once per day (and it is necessary to change
+# 'jbowler' to the name of a developer with ssh access.)
+#SRC_URI = "cvs://jbowler@cvs.sourceforge.net/cvsroot/devio;method=ext;rsh=ssh;tag=HEAD;module=devio"
+
+# The source will end up in the subdirectory 'devio' - no release name
+S = "${WORKDIR}/devio"
+
+# Just the one package at present
+PACKAGES = "${PN}"
+
+# Set the install dir to /sbin, not /usr/sbin, because devio is used
+# during bootstrap (we want it to be posible to mount /usr separately)
+sbindir = "/sbin"
+
+inherit autotools
diff --git a/packages/libusb/libusb-0.1.10a/.mtn2git_empty b/packages/libusb/libusb-0.1.10a/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libusb/libusb-0.1.10a/.mtn2git_empty
diff --git a/packages/libusb/libusb-0.1.10a/debian-changes.patch b/packages/libusb/libusb-0.1.10a/debian-changes.patch
new file mode 100644
index 0000000000..6f79bc7950
--- /dev/null
+++ b/packages/libusb/libusb-0.1.10a/debian-changes.patch
@@ -0,0 +1,407 @@
+diff -urN libusb_0.1.10a.orig/bsd.c libusb-0.1.10a/bsd.c
+--- libusb_0.1.10a.orig/bsd.c 2004-02-18 08:34:52.000000000 +0100
++++ libusb-0.1.10a/bsd.c 2005-06-30 19:40:00.000000000 +0200
+@@ -25,6 +25,10 @@
+ * for both read and write.
+ */
+
++#if defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
++#define __FreeBSD_kernel__ __FreeBSD__
++#endif
++
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
+@@ -142,7 +146,7 @@
+ USB_ERROR(-ENOMEM);
+ dev->impl_info = info;
+
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ snprintf(ctlpath, PATH_MAX, "%s", dev->device->filename);
+ #else
+ snprintf(ctlpath, PATH_MAX, "%s.00", dev->device->filename);
+@@ -255,7 +259,7 @@
+ ep = UE_GET_ADDR(ep);
+
+ if (info->ep_fd[ep] < 0) {
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ snprintf(buf, sizeof(buf) - 1, "%s.%d", dev->device->filename, ep);
+ #else
+ snprintf(buf, sizeof(buf) - 1, "%s.%02d", dev->device->filename, ep);
+@@ -286,7 +290,7 @@
+ fd = ensure_ep_open(dev, ep, O_WRONLY);
+ if (fd < 0) {
+ if (usb_debug >= 2) {
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ fprintf (stderr, "usb_bulk_write: got negative open file descriptor for endpoint %d\n", UE_GET_ADDR(ep));
+ #else
+ fprintf (stderr, "usb_bulk_write: got negative open file descriptor for endpoint %02d\n", UE_GET_ADDR(ep));
+@@ -302,7 +306,7 @@
+
+ ret = write(fd, bytes, size);
+ if (ret < 0)
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ USB_ERROR_STR(-errno, "error writing to bulk endpoint %s.%d: %s",
+ dev->device->filename, UE_GET_ADDR(ep), strerror(errno));
+ #else
+@@ -324,7 +328,7 @@
+ fd = ensure_ep_open(dev, ep, O_RDONLY);
+ if (fd < 0) {
+ if (usb_debug >= 2) {
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ fprintf (stderr, "usb_bulk_read: got negative open file descriptor for endpoint %d\n", UE_GET_ADDR(ep));
+ #else
+ fprintf (stderr, "usb_bulk_read: got negative open file descriptor for endpoint %02d\n", UE_GET_ADDR(ep));
+@@ -343,7 +347,7 @@
+
+ ret = read(fd, bytes, size);
+ if (ret < 0)
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ USB_ERROR_STR(-errno, "error reading from bulk endpoint %s.%d: %s",
+ dev->device->filename, UE_GET_ADDR(ep), strerror(errno));
+ #else
+@@ -365,7 +369,7 @@
+ fd = ensure_ep_open(dev, ep, O_WRONLY);
+ if (fd < 0) {
+ if (usb_debug >= 2) {
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ fprintf (stderr, "usb_interrupt_write: got negative open file descriptor for endpoint %d\n", UE_GET_ADDR(ep));
+ #else
+ fprintf (stderr, "usb_interrupt_write: got negative open file descriptor for endpoint %02d\n", UE_GET_ADDR(ep));
+@@ -382,7 +386,7 @@
+ do {
+ ret = write(fd, bytes+sent, size-sent);
+ if (ret < 0)
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ USB_ERROR_STR(-errno, "error writing to interrupt endpoint %s.%d: %s",
+ dev->device->filename, UE_GET_ADDR(ep), strerror(errno));
+ #else
+@@ -407,7 +411,7 @@
+ fd = ensure_ep_open(dev, ep, O_RDONLY);
+ if (fd < 0) {
+ if (usb_debug >= 2) {
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ fprintf (stderr, "usb_interrupt_read: got negative open file descriptor for endpoint %d\n", UE_GET_ADDR(ep));
+ #else
+ fprintf (stderr, "usb_interrupt_read: got negative open file descriptor for endpoint %02d\n", UE_GET_ADDR(ep));
+@@ -427,7 +431,7 @@
+ do {
+ ret = read(fd, bytes+retrieved, size-retrieved);
+ if (ret < 0)
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ USB_ERROR_STR(-errno, "error reading from interrupt endpoint %s.%d: %s",
+ dev->device->filename, UE_GET_ADDR(ep), strerror(errno));
+ #else
+@@ -543,7 +547,7 @@
+ /* best not to play with things we don't understand */
+ continue;
+
+-#if __FreeBSD__
++#ifdef __FreeBSD_kernel__
+ snprintf(buf, sizeof(buf) - 1, "/dev/%s", di.udi_devnames[0]);
+ #else
+ snprintf(buf, sizeof(buf) - 1, "/dev/%s.00", di.udi_devnames[0]);
+diff -urN libusb_0.1.10a.orig/linux.c libusb-0.1.10a/linux.c
+--- libusb_0.1.10a.orig/linux.c 2005-02-11 03:16:10.000000000 +0100
++++ libusb-0.1.10a/linux.c 2005-06-30 19:40:00.000000000 +0200
+@@ -156,6 +156,8 @@
+ return ret;
+ }
+
++#define URB_USERCONTEXT_COOKIE ((void *)0x1)
++
+ /* Reading and writing are the same except for the endpoint */
+ static int usb_urb_transfer(usb_dev_handle *dev, int ep, int urbtype,
+ char *bytes, int size, int timeout)
+@@ -163,14 +165,16 @@
+ struct usb_urb urb;
+ unsigned int bytesdone = 0, requested;
+ struct timeval tv, tv_ref, tv_now;
+- void *context;
++ struct usb_urb *context;
+ int ret, waiting;
+
+ /*
+- * FIXME: The use of the URB interface is incorrect here if there are
+- * multiple callers at the same time. We assume we're the only caller
+- * and if we get completions from another caller, this code will fail
+- * in interesting ways.
++ * HACK: The use of urb.usercontext is a hack to get threaded applications
++ * sort of working again. Threaded support is still not recommended, but
++ * this should allow applications to work in the common cases. Basically,
++ * if we get the completion for an URB we're not waiting for, then we update
++ * the usercontext pointer to 1 for the other threads URB and it will see
++ * the change after it wakes up from the the timeout. Ugly, but it works.
+ */
+
+ /*
+@@ -198,10 +202,10 @@
+ urb.flags = 0;
+ urb.buffer = bytes + bytesdone;
+ urb.buffer_length = requested;
+- urb.usercontext = (void *)ep;
+ urb.signr = 0;
+ urb.actual_length = 0;
+ urb.number_of_packets = 0; /* don't do isochronous yet */
++ urb.usercontext = NULL;
+
+ ret = ioctl(dev->fd, IOCTL_USB_SUBMITURB, &urb);
+ if (ret < 0) {
+@@ -212,18 +216,28 @@
+ FD_ZERO(&writefds);
+ FD_SET(dev->fd, &writefds);
+
++restart:
+ waiting = 1;
+- while (((ret = ioctl(dev->fd, IOCTL_USB_REAPURBNDELAY, &context)) == -1) && waiting) {
++ context = NULL;
++ while (!urb.usercontext && ((ret = ioctl(dev->fd, IOCTL_USB_REAPURBNDELAY, &context)) == -1) && waiting) {
+ tv.tv_sec = 0;
+ tv.tv_usec = 1000; // 1 msec
+ select(dev->fd + 1, NULL, &writefds, NULL, &tv); //sub second wait
+
+- /* compare with actual time, as the select timeout is not that precise */
+- gettimeofday(&tv_now, NULL);
++ if (timeout) {
++ /* compare with actual time, as the select timeout is not that precise */
++ gettimeofday(&tv_now, NULL);
++
++ if ((tv_now.tv_sec > tv_ref.tv_sec) ||
++ ((tv_now.tv_sec == tv_ref.tv_sec) && (tv_now.tv_usec >= tv_ref.tv_usec)))
++ waiting = 0;
++ }
++ }
+
+- if ((tv_now.tv_sec > tv_ref.tv_sec) ||
+- ((tv_now.tv_sec == tv_ref.tv_sec) && (tv_now.tv_usec >= tv_ref.tv_usec)))
+- waiting = 0;
++ if (context && context != &urb) {
++ context->usercontext = URB_USERCONTEXT_COOKIE;
++ /* We need to restart since we got a successful URB, but not ours */
++ goto restart;
+ }
+
+ /*
+@@ -231,14 +245,14 @@
+ * something happened during the reaping and we should return that
+ * error now
+ */
+- if (ret < 0 && errno != EAGAIN)
++ if (ret < 0 && !urb.usercontext && errno != EAGAIN)
+ USB_ERROR_STR(-errno, "error reaping URB: %s", strerror(errno));
+
+ bytesdone += urb.actual_length;
+- } while (ret == 0 && bytesdone < size && urb.actual_length == requested);
++ } while ((ret == 0 || urb.usercontext) && bytesdone < size && urb.actual_length == requested);
+
+ /* If the URB didn't complete in success or error, then let's unlink it */
+- if (ret < 0) {
++ if (ret < 0 && !urb.usercontext) {
+ int rc;
+
+ if (!waiting)
+diff -urN libusb_0.1.10a.orig/usb.h.in libusb-0.1.10a/usb.h.in
+--- libusb_0.1.10a.orig/usb.h.in 2004-08-03 20:20:38.000000000 +0200
++++ libusb-0.1.10a/usb.h.in 2005-06-30 19:40:00.000000000 +0200
+@@ -13,8 +13,9 @@
+
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <limits.h>
+-
++#include <sys/param.h>
+ #include <dirent.h>
+
+ /*
+@@ -63,40 +64,40 @@
+
+ /* All standard descriptors have these 2 fields in common */
+ struct usb_descriptor_header {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+-};
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++} __attribute__ ((packed));
+
+ /* String descriptor */
+ struct usb_string_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t wData[1];
+-};
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t wData[1];
++} __attribute__ ((packed));
+
+ /* HID descriptor */
+ struct usb_hid_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t bcdHID;
+- u_int8_t bCountryCode;
+- u_int8_t bNumDescriptors;
+- /* u_int8_t bReportDescriptorType; */
+- /* u_int16_t wDescriptorLength; */
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t bcdHID;
++ uint8_t bCountryCode;
++ uint8_t bNumDescriptors;
++ /* uint8_t bReportDescriptorType; */
++ /* uint16_t wDescriptorLength; */
+ /* ... */
+-};
++} __attribute__ ((packed));
+
+ /* Endpoint descriptor */
+ #define USB_MAXENDPOINTS 32
+ struct usb_endpoint_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int8_t bEndpointAddress;
+- u_int8_t bmAttributes;
+- u_int16_t wMaxPacketSize;
+- u_int8_t bInterval;
+- u_int8_t bRefresh;
+- u_int8_t bSynchAddress;
++ uint8_t bLength __attribute__ ((packed));
++ uint8_t bDescriptorType __attribute__ ((packed));
++ uint8_t bEndpointAddress __attribute__ ((packed));
++ uint8_t bmAttributes __attribute__ ((packed));
++ uint16_t wMaxPacketSize __attribute__ ((packed));
++ uint8_t bInterval __attribute__ ((packed));
++ uint8_t bRefresh __attribute__ ((packed));
++ uint8_t bSynchAddress __attribute__ ((packed));
+
+ unsigned char *extra; /* Extra descriptors */
+ int extralen;
+@@ -114,15 +115,15 @@
+ /* Interface descriptor */
+ #define USB_MAXINTERFACES 32
+ struct usb_interface_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int8_t bInterfaceNumber;
+- u_int8_t bAlternateSetting;
+- u_int8_t bNumEndpoints;
+- u_int8_t bInterfaceClass;
+- u_int8_t bInterfaceSubClass;
+- u_int8_t bInterfaceProtocol;
+- u_int8_t iInterface;
++ uint8_t bLength __attribute__ ((packed));;
++ uint8_t bDescriptorType __attribute__ ((packed));;
++ uint8_t bInterfaceNumber __attribute__ ((packed));;
++ uint8_t bAlternateSetting __attribute__ ((packed));;
++ uint8_t bNumEndpoints __attribute__ ((packed));;
++ uint8_t bInterfaceClass __attribute__ ((packed));;
++ uint8_t bInterfaceSubClass __attribute__ ((packed));;
++ uint8_t bInterfaceProtocol __attribute__ ((packed));;
++ uint8_t iInterface __attribute__ ((packed));;
+
+ struct usb_endpoint_descriptor *endpoint;
+
+@@ -140,14 +141,14 @@
+ /* Configuration descriptor information.. */
+ #define USB_MAXCONFIG 8
+ struct usb_config_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t wTotalLength;
+- u_int8_t bNumInterfaces;
+- u_int8_t bConfigurationValue;
+- u_int8_t iConfiguration;
+- u_int8_t bmAttributes;
+- u_int8_t MaxPower;
++ uint8_t bLength __attribute__ ((packed));
++ uint8_t bDescriptorType __attribute__ ((packed));
++ uint16_t wTotalLength __attribute__ ((packed));
++ uint8_t bNumInterfaces __attribute__ ((packed));
++ uint8_t bConfigurationValue __attribute__ ((packed));
++ uint8_t iConfiguration __attribute__ ((packed));
++ uint8_t bmAttributes __attribute__ ((packed));
++ uint8_t MaxPower __attribute__ ((packed));
+
+ struct usb_interface *interface;
+
+@@ -157,29 +158,29 @@
+
+ /* Device descriptor */
+ struct usb_device_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t bcdUSB;
+- u_int8_t bDeviceClass;
+- u_int8_t bDeviceSubClass;
+- u_int8_t bDeviceProtocol;
+- u_int8_t bMaxPacketSize0;
+- u_int16_t idVendor;
+- u_int16_t idProduct;
+- u_int16_t bcdDevice;
+- u_int8_t iManufacturer;
+- u_int8_t iProduct;
+- u_int8_t iSerialNumber;
+- u_int8_t bNumConfigurations;
+-};
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t bcdUSB;
++ uint8_t bDeviceClass;
++ uint8_t bDeviceSubClass;
++ uint8_t bDeviceProtocol;
++ uint8_t bMaxPacketSize0;
++ uint16_t idVendor;
++ uint16_t idProduct;
++ uint16_t bcdDevice;
++ uint8_t iManufacturer;
++ uint8_t iProduct;
++ uint8_t iSerialNumber;
++ uint8_t bNumConfigurations;
++} __attribute__ ((packed));
+
+ struct usb_ctrl_setup {
+- u_int8_t bRequestType;
+- u_int8_t bRequest;
+- u_int16_t wValue;
+- u_int16_t wIndex;
+- u_int16_t wLength;
+-};
++ uint8_t bRequestType;
++ uint8_t bRequest;
++ uint16_t wValue;
++ uint16_t wIndex;
++ uint16_t wLength;
++} __attribute__ ((packed));
+
+ /*
+ * Standard requests
+@@ -249,7 +250,7 @@
+
+ void *dev; /* Darwin support */
+
+- u_int8_t devnum;
++ uint8_t devnum;
+
+ unsigned char num_children;
+ struct usb_device **children;
+@@ -261,7 +262,7 @@
+ char dirname[PATH_MAX + 1];
+
+ struct usb_device *devices;
+- u_int32_t location;
++ uint32_t location;
+
+ struct usb_device *root_dev;
+ };
diff --git a/packages/libusb/libusb_0.1.10a.bb b/packages/libusb/libusb_0.1.10a.bb
index abab4c467d..134e90b379 100644
--- a/packages/libusb/libusb_0.1.10a.bb
+++ b/packages/libusb/libusb_0.1.10a.bb
@@ -2,9 +2,10 @@ DESCRIPTION = "libusb is a library to provide userspace \
access to USB devices."
SECTION = "libs"
LICENSE = "LGPL"
-PR = "r1"
+PR = "r2"
-SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-${PV}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-${PV}.tar.gz \
+ file://debian-changes.patch;patch=1"
inherit autotools pkgconfig
diff --git a/packages/maemo/gconf-osso/gconf-daemon-dbus-oe.sh b/packages/maemo/gconf-osso/gconf-daemon-dbus-oe.sh
index 90dfdb7eb0..90dfdb7eb0 100644..100755
--- a/packages/maemo/gconf-osso/gconf-daemon-dbus-oe.sh
+++ b/packages/maemo/gconf-osso/gconf-daemon-dbus-oe.sh
diff --git a/packages/maemo/nokia770-init/.mtn2git_empty b/packages/maemo/nokia770-init/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/maemo/nokia770-init/.mtn2git_empty
diff --git a/packages/maemo/nokia770-init/fixup-770.sh b/packages/maemo/nokia770-init/fixup-770.sh
new file mode 100644
index 0000000000..02c18d4108
--- /dev/null
+++ b/packages/maemo/nokia770-init/fixup-770.sh
@@ -0,0 +1,17 @@
+#! /bin/sh
+case "$1" in
+ start)
+ echo -n "Unmounting virtual fs from initrd"
+ umount /mnt/initfs/sys
+ umount /mnt/initfs/proc
+ ;;
+ stop)
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
+ \ No newline at end of file
diff --git a/packages/maemo/nokia770-init_1.0.bb b/packages/maemo/nokia770-init_1.0.bb
new file mode 100644
index 0000000000..1cef924598
--- /dev/null
+++ b/packages/maemo/nokia770-init_1.0.bb
@@ -0,0 +1,38 @@
+LICENSE = "GPL"
+MAINTAINER = "Florian Boor <florian@kernelconcepts.de"
+PR = "r1"
+
+DEPENDS = "base-passwd hotplug-dbus"
+
+SRC_URI = "file://fixup-770.sh"
+
+FILES_${PN} = "${sysconfdir} ${libdir}"
+
+inherit update-rc.d
+
+
+INITSCRIPT_NAME = "fixup-770.sh"
+INITSCRIPT_PARAMS = "defaults 01"
+
+
+do_install () {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${S}/fixup-770.sh ${D}/${sysconfdir}/init.d/fixup-770.sh
+
+ install -d ${D}/lib/firmware
+}
+
+pkg_postinst () {
+#!/bin/sh
+
+# can't do adduser stuff offline
+if [ "x$D" != "x" ]; then
+ exit 1
+fi
+
+# set up some links to firmware and modules in initrd
+ ln -sf /mnt/initfs/lib/firmware/* /lib/firmware/
+
+ rm -rf /lib/modules
+ ln -s /mnt/initfs/lib/modules /lib/modules
+}
diff --git a/packages/maemo/osso-core-config_200515.1.bb b/packages/maemo/osso-core-config_200515.1.bb
index e82e5f092d..42281314ac 100644
--- a/packages/maemo/osso-core-config_200515.1.bb
+++ b/packages/maemo/osso-core-config_200515.1.bb
@@ -1,6 +1,6 @@
LICENSE = "unknown"
MAINTAINER = "Florian Boor <florian@kernelconcepts.de"
-PR = "r5"
+PR = "r6"
DEPENDS = "base-passwd osso-af-startup"
RDEPENDS = "base-passwd osso-af-startup"
@@ -40,10 +40,4 @@ mkdir -p $MAEMOHOME/MyDocs || true
adduser --system --home "$MAEMOHOME" --no-create-home --disabled-password --ingroup "$MAEMOUSER" "$MAEMOUSER"
chown -R "$MAEMOUSER"."$MAEMOUSER" "$MAEMOHOME" 2>/dev/null
chgrp "$MAEMOUSER" "$MAEMOHOME" 2>/dev/null
-# set up some links to firmware and modules in initrd
-
-mkdir -p /lib/firmware
-ln -sf /mnt/initfs/lib/firmware/* /lib/firmware/
-rm -rf /lib/modules
-ln -s /mnt/initfs/lib/modules /lib/modules
}
diff --git a/packages/maemo/osso-esd_0.5.bb b/packages/maemo/osso-esd_0.5.bb
index e2710c4a0b..ac8f7284ef 100644
--- a/packages/maemo/osso-esd_0.5.bb
+++ b/packages/maemo/osso-esd_0.5.bb
@@ -2,7 +2,7 @@ PR = "r0"
LICENSE = "GPL"
MAINTAINER = "Florian Boor <florian@kernelconcepts.de>"
PROVIDES = "esd"
-RPROVIDES = "esd"
+RPROVIDES_${PN} = "esd"
DEPENDS = "audiofile osso-dsp-headers"
diff --git a/packages/meta/openslug-packages.bb b/packages/meta/openslug-packages.bb
index bccabb8184..fe766bca8e 100644
--- a/packages/meta/openslug-packages.bb
+++ b/packages/meta/openslug-packages.bb
@@ -49,6 +49,7 @@ OPENSLUG_PACKAGES = "\
dnsmasq \
expat \
ftpd-topfield \
+ gphoto2 \
less libusb \
miau microcom mt-daapd mysql \
nail \
@@ -60,11 +61,12 @@ OPENSLUG_PACKAGES = "\
thttpd \
db4 \
openldap \
- ntp \
openntpd \
+ ntp \
reiserfsprogs reiser4progs \
python \
samba \
+ sane-backends \
wget \
unionfs-modules unionfs-utils \
"
diff --git a/packages/minicom/minicom-2.1/configure.patch b/packages/minicom/minicom-2.1/configure.patch
index 2e1e1eac11..4db47fb3d8 100644
--- a/packages/minicom/minicom-2.1/configure.patch
+++ b/packages/minicom/minicom-2.1/configure.patch
@@ -1,5 +1,19 @@
---- minicom-2.1/configure.in.old 2004-09-12 12:48:55.000000000 +0100
-+++ minicom-2.1/configure.in 2004-09-12 12:49:05.000000000 +0100
+Index: minicom-2.1/configure.in
+===================================================================
+--- minicom-2.1.orig/configure.in 2003-04-29 21:08:25.000000000 +0000
++++ minicom-2.1/configure.in 2005-07-04 19:03:32.000000000 +0000
+@@ -231,9 +231,9 @@
+ AC_HEADER_STAT
+ AC_HEADER_TIME
+
+-AM_SYS_POSIX_TERMIOS
++AC_SYS_POSIX_TERMIOS
+ AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
+-if test $am_cv_sys_posix_termios = yes; then
++if test $ac_cv_sys_posix_termios = yes; then
+ AC_DEFINE(POSIX_TERMIOS)
+ fi
+
@@ -253,7 +253,7 @@
dnl Checks for library functions.
diff --git a/packages/monotone/.mtn2git_empty b/packages/monotone/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/monotone/.mtn2git_empty
diff --git a/packages/monotone/files/.mtn2git_empty b/packages/monotone/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/monotone/files/.mtn2git_empty
diff --git a/packages/monotone/files/cryptopp-endianness.patch b/packages/monotone/files/cryptopp-endianness.patch
new file mode 100644
index 0000000000..7abfa7cda1
--- /dev/null
+++ b/packages/monotone/files/cryptopp-endianness.patch
@@ -0,0 +1,24 @@
+--- intel-0.19/cryptopp/config.h.orig 2005-07-05 22:35:21.352503986 -0700
++++ intel-0.19/cryptopp/config.h 2005-07-05 22:35:24.303056731 -0700
+@@ -5,6 +5,13 @@
+
+ // ***************** Important Settings ********************
+
++#if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && defined(__BIG_ENDIAN)
++# if __BYTE_ORDER == __LITTLE_ENDIAN
++# define IS_LITTLE_ENDIAN
++# elif __BYTE_ORDER == __BIG_ENDIAN
++# define IS_BIG_ENDIAN
++# endif
++#else
+ // define this if running on a big-endian CPU
+ #if !defined(IS_LITTLE_ENDIAN) && (defined(__BIG_ENDIAN__) || defined(__sparc) || defined(__sparc__) || defined(__hppa__) || defined(__mips__) || (defined(__MWERKS__) && !defined(__INTEL__)))
+ # define IS_BIG_ENDIAN
+@@ -15,6 +22,7 @@
+ #ifndef IS_BIG_ENDIAN
+ # define IS_LITTLE_ENDIAN
+ #endif
++#endif /* Linux endiannes macros not defined */
+
+ // define this if you want to disable all OS-dependent features,
+ // such as sockets and OS-provided random number generators
diff --git a/packages/monotone/files/txt2c-cross.patch b/packages/monotone/files/txt2c-cross.patch
new file mode 100644
index 0000000000..a50b8135fc
--- /dev/null
+++ b/packages/monotone/files/txt2c-cross.patch
@@ -0,0 +1,15 @@
+# txt2c runs (only) on the build system. This is a fairly horrible
+# hack to make it compile with the build system compiler, not the
+# target compiler.
+
+--- monotone-0.19/Makefile.am.orig 2005-07-04 23:39:44.420722558 -0700
++++ monotone-0.19/Makefile.am 2005-07-04 23:36:50.267121331 -0700
+@@ -356,7 +356,7 @@
+ CLEANFILES = $(BUILT_SOURCES_CLEAN) $(EPS_FIGURES)
+
+ txt2c: txt2c.cc Makefile
+- $(CXX) -Wall -o $@ $<
++ $(BUILD_CXX) -Wall -o $@ $<
+ chmod 0755 $@$(EXEEXT)
+
+ apidocs:
diff --git a/packages/monotone/monotone_0.19.bb b/packages/monotone/monotone_0.19.bb
new file mode 100644
index 0000000000..3faad29b41
--- /dev/null
+++ b/packages/monotone/monotone_0.19.bb
@@ -0,0 +1,38 @@
+# This package builds the devio program
+DESCRIPTION = "monotone - an SCM"
+HOMEPAGE = "http://www.venge.net/"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "MIT"
+SUBV = "1"
+PR = "r1"
+
+SRC_URI = "http://www.venge.net/monotone/downloads/monotone_${PV}-${SUBV}.tar.gz \
+ file://txt2c-cross.patch;patch=1 \
+ file://cryptopp-endianness.patch;patch=1"
+DEPENDS += "boost"
+# Following may be required, not proved yet...
+#TARGET_CFLAGS += "-fno-strict-aliasing"
+
+PACKAGES = "${PN} ${PN}-doc ${PN}-testsuite"
+tsd = "/home/monotone"
+FILES_${PN}-testsuite = "${tsd}/testsuite ${tsd}/tests"
+
+# no cross compile support - it tries to run the test program even with
+# --enable_ipv6=yes
+EXTRA_OECONF = "--disable-ipv6 \
+ --disable-dependency-tracking \
+ --disable-rpath \
+ --disable-nls \
+ --with-gnu-ld \
+ "
+
+inherit autotools
+
+# This makes the testsuite as a package
+do_install_append() {
+ install -d ${D}${tsd}
+ install -c -m 755 testsuite ${D}${tsd}/testsuite
+ cp -a tests ${D}${tsd}/tests
+}
diff --git a/packages/monotone/monotone_0.20.bb b/packages/monotone/monotone_0.20.bb
new file mode 100644
index 0000000000..dc7abc72b4
--- /dev/null
+++ b/packages/monotone/monotone_0.20.bb
@@ -0,0 +1,37 @@
+# This package builds the devio program
+DESCRIPTION = "monotone - an SCM"
+HOMEPAGE = "http://www.venge.net/"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "MIT"
+PR = "r0"
+
+SRC_URI = "http://venge.net/monotone/downloads/monotone-${PV}.tar.gz \
+ file://txt2c-cross.patch;patch=1 \
+ file://cryptopp-endianness.patch;patch=1"
+DEPENDS += "boost"
+# Following may be required, not proved yet...
+#TARGET_CFLAGS += "-fno-strict-aliasing"
+
+PACKAGES = "${PN} ${PN}-doc ${PN}-testsuite"
+tsd = "/home/monotone"
+FILES_${PN}-testsuite = "${tsd}/testsuite ${tsd}/tests"
+
+# no cross compile support - it tries to run the test program even with
+# --enable_ipv6=yes
+EXTRA_OECONF = "--disable-ipv6 \
+ --disable-dependency-tracking \
+ --disable-rpath \
+ --disable-nls \
+ --with-gnu-ld \
+ "
+
+inherit autotools
+
+# This makes the testsuite as a package
+do_install_append() {
+ install -d ${D}${tsd}
+ install -c -m 755 testsuite ${D}${tsd}/testsuite
+ cp -a tests ${D}${tsd}/tests
+}
diff --git a/packages/openslug-init/openslug-init-0.10/reflash b/packages/openslug-init/openslug-init-0.10/reflash
index dc6ef0bbd8..504e78f694 100644
--- a/packages/openslug-init/openslug-init-0.10/reflash
+++ b/packages/openslug-init/openslug-init-0.10/reflash
@@ -11,52 +11,13 @@
# /etc/default/functions contains useful utility functions
. /etc/default/functions
#
-# CHECKING THE ENVIRONMENT
-# ------------------------
-# basic setup. This could be parameterised to use different partitions!
-ffspart=Flashdisk
-kpart=Kernel
-#
-ffsdev="$(mtblockdev $ffspart)"
-test -n "$ffsdev" -a -b "$ffsdev" || {
- echo "reflash: $ffspart($ffsdev): cannot find $ffspart mtd partition." >&2
- echo " check /proc/mtd, either the partition does not exist or there is no" >&2
- echo " corresponding block device." >&2
- exit 1
-}
-ffssize="$(devio "<<$ffsdev" 'pr$')"
-#
-kdev="$(mtblockdev $kpart)"
-test -n "$kdev" -a -b "$kdev" || {
- echo "reflash: $kpart($kdev): cannot find $kpart mtd partition." >&2
- echo " check /proc/mtd, either the partition does not exist or there is no" >&2
- echo " corresponding block device." >&2
- exit 1
-}
-ksize="$(devio "<<$kdev" 'pr$')"
-#
-# find the device number of the flash partition then make sure it isn't
-# mounted anywhere.
-ffsno="$(devio "<<$ffsdev" prd)"
-test -n "$ffsno" -a "$ffsno" -ge 0 || {
- echo "reflash: $ffsdev: device number $ffsno is not valid, cannot continue." >&2
- exit 1
-}
-#
-# Make sure that Flashdisk isn't mounted on /
-if test "$(devio "<</etc/init.d/sysconfsetup" prd)" -eq "$ffsno"
-then
- echo "reflash: $ffsdev is mounted on /, use turnup ram to reflash" >&2
- exit 1
-fi
-#
# CHECKING FOR INPUT (ARGUMENTS ETC)
# ----------------------------------
#
-# find the kernel and the new flash file system, they default to /boot/zImage
-# and /boot/rootfs.jffs2, an image file can be used to specify both images.
-ffsfile=/boot/rootfs.jffs2
-kfile=/boot/zImage
+# find the kernel and the new flash file system, an image file can
+# be used to specify both images.
+ffsfile=
+kfile=
imgfile=
while test $# -gt 0
do
@@ -67,15 +28,13 @@ do
exit 1
}
kfile="$1"
- imgfile=
shift;;
- -j) shift
+ -[jr]) shift
test $# -gt 0 || {
echo "reflash: -j: give the file containing the root jffs2 image" >&2
exit 1
}
ffsfile="$1"
- imgfile=
shift;;
-i) shift
test $# -gt 0 || {
@@ -84,20 +43,31 @@ do
}
imgfile="$1"
shift;;
- *) echo "reflash: usage: $0 [-k kernel -j rootfs] | -i image" >&2
- echo " -k [$kfile]: the new compressed kernel image ('zImage')" >&2
- echo " -j [$ffsfile]: the new root file system (jffs2)" >&2
- echo " -i image: a complete flash image (gives both kernel and jffs2)" >&2
+ *) echo "reflash: usage: $0 [-k kernel] [-j rootfs] [-i image]" >&2
+ echo " -k file: the new compressed kernel image ('zImage')" >&2
+ echo " -j file: the new root file system (jffs2)" >&2
+ echo " -i file: a complete flash image (gives both kernel and jffs2)" >&2
echo " The current jffs2 will be umounted if mounted." >&2
exit 1;;
esac
done
#
+# Sanity check on the arguments
+if test -n "$imgfile" -a -n "$ffsfile" -a -n "$kfile"
+then
+ echo "reflash: -k,-j,-i: specify at most two files" >&2
+ echo " -i has both a kernel and rootfs, the kernel from -k and" >&2
+ echo " the rootfs from -j override the one in the image (if given)" >&2
+ exit 1
+elif test -z "$imgfile" -a -z "$ffsfile" -a -z "$kfile"
+then
+ echo "reflash: -k,-j,-i: specify at least one file to flash" >&2
+ exit 1
+fi
+#
# Perform basic checks on the input (must exist, size must be ok).
if test -n "$imgfile"
then
- kfile=
- ffsfile=
if test -r "$imgfile"
then
# read the partition table and from this find the offset
@@ -120,6 +90,7 @@ then
done <<EOI
$(devio "<<$imgfile" '
<= $ 0x20000 -
+ L= 0x1000
$( 1
# 0xff byte in name[0] ends the partition table
$? @ 255 =
@@ -133,219 +104,366 @@ $(devio "<<$imgfile" '
cp 16
pn
<= f240+
- $) 1')
+ L= L256-
+ $) L255>')
EOI
# check the result
- test -n "$imgksize" -a "$imgksize" -gt 0 -a "$imgksize" -le "$ksize" || {
- echo "reflash: $imgfile: bad kernel size ($imgksize, max $ksize)" >&2
+ test "$imgksize" -gt 0 -a "$imgkoffset" -ge 0 || {
+ echo "reflash: $imgfile: failed to find Kernel partition in image" >&2
+ exit 1
+ }
+ # the kernel is after a 16 byte header which holds the
+ # values length,0,0,0 Get the true size.
+ ktmp="$(devio "<<$imgfile" "L=$imgksize" "O=$imgkoffset" '
+ $( OL+$>!
+ <= O
+ A= b
+ $( AL>!
+ pr A
+ $) 0
+ $) 0')"
+ test "$ktmp" -gt 0 || {
+ echo "reflash: $imgfile($imgkoffset,$imgksize): invalid kernel offset/size" >&2
exit 1
}
- test -n "$imgffssize" -a "$imgffssize" -gt 0 -a "$imgffssize" -le "$ffssize" || {
- echo "reflash: $imgfile: bad flashdisk size ($imgffssize, max $ffssize)" >&2
+ # update the size and offset to these values (the offset is 16+ because
+ # of the header).
+ imgksize="$ktmp"
+ imgkoffset="$(devio "O=$imgkoffset" 'pr O16+')"
+ # just test the size for the rootfs
+ test "$imgffssize" -gt 0 -a "$imgffsoffset" -ge 0 || {
+ echo "reflash: $imgfile: failed to find Flashdisk" >&2
exit 1
}
else
echo "reflash: $imgfile: image file not found" >&2
exit 1
fi
-else
- if test -r "$kfile"
+fi
+if test -n "$kfile"
+then
+ if test ! -r "$kfile"
then
- # check the size
- s="$(devio "<<$kfile" 'pr$')"
- test -n "$s" -a "$s" -gt 0 -a "$s" -le "$ksize" || {
- echo "reflash: $kfile: bad size ($s, max $ksize)" >&2
- exit 1
- }
- else
echo "reflash: $kfile: kernel file not found" >&2
exit 1
fi
- if test -r "$ffsfile"
+ # the file values override anything from the image.
+ imgksize="$(devio "<<$kfile" 'pr$')"
+ imgkoffset=0
+else
+ kfile="$imgfile"
+fi
+if test -n "$ffsfile"
+then
+ if test ! -r "$ffsfile"
then
- s="$(devio "<<$ffsfile" 'pr$')"
- test -n "$s" -a "$s" -gt 0 -a "$s" -le "$ffssize" || {
- echo "reflash: $ffsfile: bad size ($s, max $ffssize)" >&2
- exit 1
- }
- else
echo "reflash: $ffsfile: root file system image file not found" >&2
exit 1
fi
+ # values override those from the image
+ imgffssize="$(devio "<<$ffsfile" 'pr$')"
+ imgffsoffset=0
+else
+ ffsfile="$imgfile"
+fi
+#
+# INPUTS OK, CHECKING THE ENVIRONMENT
+# -----------------------------------
+# basic setup. This could be parameterised to use different partitions!
+kpart=Kernel
+ffspart=Flashdisk
+#
+kdev=
+ksize=0
+if test -n "$kfile"
+then
+ # we have a new kernel
+ kdev="$(mtblockdev $kpart)"
+ test -n "$kdev" -a -b "$kdev" || {
+ echo "reflash: $kpart($kdev): cannot find $kpart mtd partition." >&2
+ echo " check /proc/mtd, either the partition does not exist or there is no" >&2
+ echo " corresponding block device." >&2
+ exit 1
+ }
+ ksize="$(devio "<<$kdev" 'pr$')"
+ #
+ # check the input file size
+ test -n "$imgksize" -a "$imgksize" -gt 0 -a "$imgksize" -le "$ksize" || {
+ echo "reflash: $kfile: bad Kernel size ($s, max $ksize)" >&2
+ exit 1
+ }
fi
#
-# INPUTS OK, UMOUNT ANY EXISTING MOUNT OF THE FLASHDISK
-# ----------------------------------------------------
-echo "reflash: umounting any existing mount of $ffsdev" >&2
+ffsdev=
+ffssize=0
+if test -n "$ffsfile"
+then
+ ffsdev="$(mtblockdev $ffspart)"
+ test -n "$ffsdev" -a -b "$ffsdev" || {
+ echo "reflash: $ffspart($ffsdev): cannot find $ffspart mtd partition." >&2
+ echo " check /proc/mtd, either the partition does not exist or there is no" >&2
+ echo " corresponding block device." >&2
+ exit 1
+ }
+ ffssize="$(devio "<<$ffsdev" 'pr$')"
+ #
+ # check the input file size
+ test -n "$imgffssize" -a "$imgffssize" -gt 0 -a "$imgffssize" -le "$ffssize" || {
+ echo "reflash: $ffsfile: bad Flashdisk size ($s, max $ffssize)" >&2
+ exit 1
+ }
+fi
#
-# check each mount point, do this last first because otherwise nested
-# mounts of ffsdev cannot be umounted.
-ffs_umount() {
- local device mp type options stuff
+# find the device number of the flash partition then make sure it isn't
+# mounted anywhere.
+if test -n "$ffsdev"
+then
+ ffsno="$(devio "<<$ffsdev" prd)"
+ test -n "$ffsno" -a "$ffsno" -ge 0 || {
+ echo "reflash: $ffsdev: device number $ffsno is not valid, cannot continue." >&2
+ exit 1
+ }
+ #
+ # Make sure that Flashdisk isn't mounted on /
+ if test "$(devio "<</etc/init.d/sysconfsetup" prd)" -eq "$ffsno"
+ then
+ echo "reflash: $ffsdev is mounted on /, use turnup ram to reflash" >&2
+ exit 1
+ fi
+fi
+#
+# INPUTS OK, ENVIRONMENT OK, UMOUNT ANY EXISTING MOUNT OF THE FLASHDISK
+# ---------------------------------------------------------------------
+# This is only required if the device is going to be used
+if test -n "$ffsdev"
+then
+ echo "reflash: umounting any existing mount of $ffsdev" >&2
+ #
+ # check each mount point, do this last first because otherwise nested
+ # mounts of ffsdev cannot be umounted.
+ ffs_umount() {
+ local device mp type options stuff
- read device mp type options stuff
- test -z "$device" && return 0
+ read device mp type options stuff
+ test -z "$device" && return 0
- # handle following entries first
- ffs_umount || return 1
+ # handle following entries first
+ ffs_umount || return 1
- # handle this entry
- case "$type" in
- jffs2) test "$(devio "<<$mp/etc/init.d/sysconfsetup" prd)" -ne "$ffsno" ||
- umount "$mp" || {
- echo "reflash: $mp: unable to umount $ffsdev" >&2
- return 1
- };;
- esac
+ # handle this entry
+ case "$type" in
+ jffs2) test "$(devio "<<$mp/etc/init.d/sysconfsetup" prd)" -ne "$ffsno" ||
+ umount "$mp" || {
+ echo "reflash: $mp: unable to umount $ffsdev" >&2
+ return 1
+ };;
+ esac
- return 0
-}
-#
-ffs_umount </proc/mounts || {
- echo "reflash: umount $ffsdev from all mount points then re-run reflash" >&2
- exit 1
-}
+ return 0
+ }
+ #
+ ffs_umount </proc/mounts || {
+ echo "reflash: umount $ffsdev from all mount points then re-run reflash" >&2
+ exit 1
+ }
+ #
+ # Everything is umounted, now remount on a temporary directory.
+ ffsdir="/tmp/flashdisk.$$"
+ mkdir "$ffsdir" || {
+ echo "reflash: $ffsdir: failed to create temporary directory" >&2
+ exit 1
+ }
+ #
+ mountflash "$ffsdir" -o ro || {
+ rmdir "$ffsdir"
+ exit 1
+ }
+ #
+ # this is a utility function to make the cleanup easier
+ errorexit() {
+ umount "$ffsdir" && rmdir "$ffsdir" ||
+ echo "reflash: $ffsdir: temporary directory cleanup failed" >&2
+ exit 1
+ }
+ #
+ test -r "$ffsdir/etc/default/conffiles" || {
+ echo "reflash: [/initrd]/etc/default/conffiles: file not found" >&2
+ errorexit
+ }
+else
+ errorexit() {
+ exit 1
+ }
+fi
#
-# Everything is umounted, now remount on a temporary directory.
-ffsdir="/tmp/flashdisk.$$"
-mkdir "$ffsdir" || {
- echo "reflash: $ffsdir: failed to create temporary directory" >&2
- exit 1
-}
+# PRESERVE EXISTING CONFIGURATION
+# -------------------------------
+# Only required if the flash partition will be written
+if test -n "$ffsdev"
+then
+ echo "reflash: preserving existing configuration file" >&2
+ #
+ # This step produces /tmp/preserve.$$ and /tmp/cpio.$$, the former is
+ # a list of the preserved configuration files together with the processing
+ # option, the latter is a directory tree of the preserved files (a directory
+ # tree makes the restore step easier.)
+ saved=/tmp/cpio.$$
+ list=/tmp/preserve.$$
+ mkdir "$saved" || {
+ echo "reflash: $saved: could not create save directory" >&2
+ errorexit
+ }
+ #
+ ( cd "$ffsdir"
+ find etc/*.conf $(sed 's!^/!!' usr/lib/ipkg/info/*.conffiles) ! -type d -newer etc/.configured -print |
+ sed 's/^/diff /'
+ exec sed 's/#.*$//;/^[ ]*$/d' etc/default/conffiles
+ ) | sed 's!^/*!!' | awk '{ op=$1; $1=""; file[$0]=op }
+ END{ for (f in file) if (file[f] != "ignore") print file[f] f }' |
+ while read op file
+ do
+ if test -e "$ffsdir/$file"
+ then
+ echo "$op $file" >&3
+ echo "$file"
+ fi
+ done 3>"$list" | (cd "$ffsdir"; exec cpio -p -d -m -u "$saved") || {
+ echo "reflash: $saved: copy of saved configuration files failed" >&2
+ rm -rf "$saved"
+ rm "$list"
+ errorexit
+ }
+ #
+ # If this umount fails do not try to continue...
+ umount "$ffsdir" || {
+ echo "reflash: $ffsdir: temporary mount point umount failed" >&2
+ echo " No changes have been made." >&2
+ rm -rf "$saved"
+ rm "$list"
+ exit 1
+ }
+fi
#
-mountflash "$ffsdir" -o ro || {
- rmdir "$ffsdir"
- exit 1
+# FLASH THE NEW IMAGES
+# --------------------
+echo "reflash: about to flash new image" >&2
+#
+# There are four possibilities here - kernel only, flashdisk only, then
+# kernel&flashdisk in either one or two different files. The code used
+# to attempt to do everything in one step, but this complicates it,
+# so two steps are used (as required). A failure between the two
+# steps is a problem, but then so is a failure in a partial write.
+# Write the flashdisk first because this is larger (most likely to
+# fail).
+# Temporarily check for devio progress indicator capability this way...
+if devio -p '' 2>/dev/null
+then
+ progress=-p
+else
+ progress=
+fi
+do_kernel() {
+ devio $progress "$@" "<<$kfile" ">>$kdev" '
+ # kernel is at imgkoffset[imgksize]
+ ' "<= $imgkoffset" "L=$imgksize" '
+ # kernel write length,0,0,0 header, then fill
+ wb L,4
+ fb 12,0
+ cp L
+ # fill with 255
+ fb #t-,255'
}
#
-# this is a utility function to make the cleanup easier
-errorexit() {
- umount "$ffsdir" && rmdir "$ffsdir" ||
- echo "reflash: $ffsdir: temporary directory cleanup failed" >&2
- exit 1
+do_ffs() {
+ devio $progress "$@" "<<$ffsfile" ">>$ffsdev" '
+ # rootfs is at imgffsoffset[imgffssize]
+ ' "<= $imgffsoffset" "cp $imgffssize" '
+ # fill with 255
+ fb #t-,255'
}
#
-test -r "$ffsdir/etc/default/conffiles" || {
- echo "reflash: [/initrd]/etc/default/conffiles: file not found" >&2
- errorexit
+# check_status $? type file(offset,size) device
+# check the devio status code (given in $1)
+check_status() {
+ case "$1" in
+ 0) echo " done" >&2;;
+ 1) echo " failed" >&2
+ echo "reflash: $3: flash $2 failed, no changes have been made to $4" >&2
+ if test "$2" = rootfs
+ then
+ rm -rf "$saved"
+ rm "$list"
+ exit 1
+ else
+ echo "reflash: $2: continuing with rootfs changes" >&2
+ echo " NOTE: the old kernel is still in $4!" >&2
+ fi;;
+ 3) echo " failed" >&2
+ echo "reflash: $3: WARNING: partial flash of $2 to $4 the system is unbootable" >&2
+ echo " Reflash from RedBoot or correct the problem here." >&2
+ if test "$2" = rootfs
+ then
+ exit 3
+ else
+ echo "reflash: $2: continuing with rootfs changes" >&2
+ echo " NOTE: the kernel in $4 must be reflashed!" >&2
+ fi;;
+ *) echo " failed" >&2
+ echo "reflash($1): $3: internal error flashing $2 to $4" >&2
+ exit $1;;
+ esac
}
#
-# PRESERVE EXISTING CONFIGURATION
-# -------------------------------
-echo "reflash: preserving existing configuration file" >&2
+if test -n "$ffsdev"
+then
+ echo -n "reflash: writing rootfs to $ffsdev " >&2
+ do_ffs
+ check_status $? rootfs "$ffsfile($imgffsoffset,$imgffssize)" "$ffsdev"
+fi
#
-# This step produces /tmp/preserve.$$ and /tmp/cpio.$$, the former is
-# a list of the preserved configuration files together with the processing
-# option, the latter is a directory tree of the preserved files (a directory
-# tree makes the restore step easier.)
-saved=/tmp/cpio.$$
-list=/tmp/preserve.$$
-mkdir "$saved" || {
- echo "reflash: $saved: could not create save directory" >&2
- errorexit
-}
+if test -n "$kdev"
+then
+ echo -n "reflash: writing kernel to $kdev " >&2
+ do_kernel
+ check_status $? kernel "$kfile($imgkoffset,$imgksize)" "$kdev"
+fi
#
-( cd "$ffsdir"
- find etc/*.conf $(sed 's!^/!!' usr/lib/ipkg/info/*.conffiles) ! -type d -newer etc/.configured -print |
- sed 's/^/diff /'
- exec sed 's/#.*$//;/^[ ]*$/d' etc/default/conffiles
-) | sed 's!^/*!!' | awk '{ op=$1; $1=""; file[$0]=op }
- END{ for (f in file) if (file[f] != "ignore") print file[f] f }' |
-while read op file
-do
- if test -e "$ffsdir/$file"
+# verify - this just produces a warning
+if test -n "$ffsdev"
+then
+ echo -n "reflash: verifying new flash image " >&2
+ if do_ffs -v
then
- echo "$op $file" >&3
- echo "$file"
+ echo " done" >&2
+ else
+ echo " failed" >&2
+ echo "reflash: WARNING: rootfs flash image verification failed" >&2
+ echo " The system is probably unbootable." >&2
+ echo " System configuration files will be restored but this may fail" >&2
+ echo " Starting a shell for user recovery (exit to continue)" >&2
+ PS1='badflash$ ' sh -i <>/dev/tty >&0 2>&0
fi
-done 3>"$list" | (cd "$ffsdir"; exec cpio -p -d -m -u "$saved") || {
- echo "reflash: $saved: copy of saved configuration files failed" >&2
- rm -rf "$saved"
- rm "$list"
- errorexit
-}
-#
-# If this umount fails do not try to continue...
-umount "$ffsdir" || {
- echo "reflash: $ffsdir: temporary mount point umount failed" >&2
- echo " No changes have been made." >&2
- rm -rf "$saved"
- rm "$list"
- exit 1
-}
-#
-# FLASH THE NEW IMAGES
-# --------------------
-echo "reflash: about to flash new images" >&2
+fi
#
-# If the images are in separate files do this in two steps, kernel then
-# rootfs (this seems like it might be safer if the first fails). For an
-# image file use one step but still write the kernel first.
-do_devio() {
- if test -r "$imgfile"
- then
- # image file case - copy the whole of the image partition,
- # which already includes headers (etc).
- devio "$@" "<<$imgfile" ">>$ffsdev" ">>$kdev" '
- # kernel is at imgkoffset[imgksize]
- ' "<= $imgkoffset" "cp $imgksize" '
- fb #t-,255
- ' "<>$kdev" ">>$ffsdev" '
- # rootfs is at imgffsoffset[imgffssize]
- ' "<= $imgffsoffset" "cp $imgffssize" '
- fb #t-,255'
- elif test -r "$kfile" -a -r "$ffsfile"
+if test -n "$kdev"
+then
+ echo -n "reflash: verifying new kernel image " >&2
+ if do_kernel -v
then
- # use separate files, do this in one command to be sure
- # that everything can be opened at the start
- devio "$@" "<<$ffsfile" ">>$ffsdev" "<<$kfile" ">>$kdev" '
- # kernel write length+16,0,0,0 header, then fill
- wb $16+,4
- fb 12,0
- cp $
- fb #t-,255
- ' "<>$kfile" "<>$kdev" "<<$ffsfile" ">>$ffsdev" '
- # rootfs, write the whole image, fill if necessary
- cp $
- fb #t-,255'
+ echo " done" >&2
else
- # oops, my checking was wrong...
- echo "reflash: internal error: image files not found!" >&2
- echo " No changes have been made." >&2
- exit 2
+ echo " failed" >&2
+ echo "reflash: WARNING: kernel flash image verification failed" >&2
+ echo " The system is probably unbootable." >&2
+ echo " System configuration files will be restored in the rootfs." >&2
fi
-}
-#
-echo "reflash: writing kernel to $kdev and rootfs to $ffsdev..." >&2
-do_devio
-st=$?
-case "$st" in
-0) ;;
-1) echo "reflash: flash of new images failed, no changes have been made" >&2
- rm -rf "$saved"
- rm "$list"
- exit 1;;
-3) echo "reflash: WARNING: partial flash, the system is unbootable" >&2
- echo " Reflash from RedBoot or correct the problem here." >&2
- exit 3;;
-*) echo "reflash($st): internal error" >&2
- exit $st;;
-esac
-echo " ... done" >&2
-#
-# verify - this just produces a warning
-echo "reflash: verifying new flash image..." >&2
-do_devio -v || {
- echo "reflash: WARNING: flash image verification failed" >&2
- echo " The system is probably unbootable." >&2
- echo " System configuration files will be restored but this may fail" >&2
- echo " Starting a shell for user recovery (exit to continue)" >&2
- PS1='badflash$ ' sh -i <>/dev/tty >&0 2>&0
-}
-echo " ... done" >&2
+fi
#
# RESTORE THE OLD CONFIGURATION
# -----------------------------
+# If not write the rootfs none of the following is required - exit now.
+test -n "$ffsdev" || exit 0
+#
echo "reflash: restoring saved configuration files" >&2
#
# the file /etc/.configured is the datestamp file used to ensure that
diff --git a/packages/openslug-init/openslug-init_0.10.bb b/packages/openslug-init/openslug-init_0.10.bb
index bf43759aa7..f0af1aa9fb 100644
--- a/packages/openslug-init/openslug-init_0.10.bb
+++ b/packages/openslug-init/openslug-init_0.10.bb
@@ -3,7 +3,7 @@ SECTION = "console/network"
LICENSE = "GPL"
DEPENDS = "base-files devio"
RDEPENDS = "busybox devio"
-PR = "r32"
+PR = "r33"
SRC_URI = "file://linuxrc \
file://boot/flash \
diff --git a/packages/sane-backends/.mtn2git_empty b/packages/sane-backends/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/sane-backends/.mtn2git_empty
diff --git a/packages/sane-backends/sane-backends-1.0.15/.mtn2git_empty b/packages/sane-backends/sane-backends-1.0.15/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/sane-backends/sane-backends-1.0.15/.mtn2git_empty
diff --git a/packages/sane-backends/sane-backends-1.0.15/Makefile.in.patch b/packages/sane-backends/sane-backends-1.0.15/Makefile.in.patch
new file mode 100644
index 0000000000..d73a2f0fb5
--- /dev/null
+++ b/packages/sane-backends/sane-backends-1.0.15/Makefile.in.patch
@@ -0,0 +1,11 @@
+--- sane-backends/Makefile.in 2004-05-04 11:44:26.000000000 -0400
++++ sane-backends-1.0.15/Makefile.in 2005-05-11 12:43:20.870000000 -0400
+@@ -33,7 +33,7 @@
+
+ @SET_MAKE@
+
+-SUBDIRS = include lib sanei backend frontend tools doc po
++SUBDIRS = include lib sanei backend frontend tools po
+
+ DISTFILES = AUTHORS COPYING ChangeLog ChangeLog-1.0.0 ChangeLog-1.0.1 \
+ ChangeLog-1.0.2 ChangeLog-1.0.3 ChangeLog-1.0.4 ChangeLog-1.0.5 \
diff --git a/packages/sane-backends/sane-backends-1.0.15/sane-plustek.patch b/packages/sane-backends/sane-backends-1.0.15/sane-plustek.patch
new file mode 100644
index 0000000000..f6920c6e22
--- /dev/null
+++ b/packages/sane-backends/sane-backends-1.0.15/sane-plustek.patch
@@ -0,0 +1,52 @@
+--- sane-backends-1.0.15/backend/plustek-usb.h.orig 2005-07-06 00:45:43.000000000 +0200
++++ sane-backends-1.0.15/backend/plustek-usb.h 2005-07-06 00:47:36.000000000 +0200
+@@ -106,17 +106,20 @@
+ #define _PHILO2WORD(x) ((u_short)x->bHi * 256U + x->bLo)
+
+ /* useful for RGB-values */
++#define PACKED8 __attribute__ ((packed,aligned(1)))
++#define PACKED16 __attribute__ ((packed,aligned(2)))
++
+ typedef struct {
+ u_char Red;
+ u_char Green;
+ u_char Blue;
+-} RGBByteDef, *pRGBByteDef;
++} PACKED8 RGBByteDef, *pRGBByteDef;
+
+ typedef struct {
+ u_short Red;
+ u_short Green;
+ u_short Blue;
+-} RGBUShortDef, *pRGBUShortDef;
++} PACKED16 RGBUShortDef, *pRGBUShortDef;
+
+ typedef struct {
+ u_long Red;
+@@ -126,22 +129,22 @@
+
+ typedef struct {
+ u_char a_bColor[3];
+-} ColorByteDef, *pColorByteDef;
++} PACKED8 ColorByteDef, *pColorByteDef;
+
+ typedef struct {
+ u_char bHi;
+ u_char bLo;
+-} HiLoDef, *pHiLoDef;
++} PACKED8 HiLoDef, *pHiLoDef;
+
+ typedef union {
+ HiLoDef HiLo[3];
+ u_short Colors[3];
+-} ColorWordDef, *pColorWordDef;
++} PACKED16 ColorWordDef, *pColorWordDef;
+
+ typedef union {
+ HiLoDef HiLo;
+ u_short Mono;
+-} MonoWordDef, *pMonoWordDef;
++} PACKED16 MonoWordDef, *pMonoWordDef;
+
+ typedef union {
+
diff --git a/packages/sane-backends/sane-backends_1.0.15.bb b/packages/sane-backends/sane-backends_1.0.15.bb
new file mode 100644
index 0000000000..6897aef141
--- /dev/null
+++ b/packages/sane-backends/sane-backends_1.0.15.bb
@@ -0,0 +1,14 @@
+MAINTAINER="Oyvind Repvik <nail@nslu2-linux.org>"
+DESCRIPTION="Scanner drivers for SANE"
+PR="r0"
+DEPENDS="jpeg libusb"
+
+SRC_URI="ftp://ftp.sane-project.org/pub/sane/sane-backends-${PV}/sane-backends-${PV}.tar.gz \
+ file://sane-plustek.patch;patch=1\
+ file://Makefile.in.patch;patch=1"
+
+EXTRA_OECONF="--prefix=/usr --sysconfdir=/etc --disable-translations"
+
+inherit autotools
+
+
diff --git a/packages/sharp-binary-only/sharp-aticore-oss_1.0.1.bb b/packages/sharp-binary-only/sharp-aticore-oss_1.0.1.bb
index 48627a979d..a2d8acff9b 100644
--- a/packages/sharp-binary-only/sharp-aticore-oss_1.0.1.bb
+++ b/packages/sharp-binary-only/sharp-aticore-oss_1.0.1.bb
@@ -2,9 +2,10 @@ DESCRIPTION = "Driver for the Ati W100 found on the Sharp Zaurus C[87]x0"
SECTION = "libs"
PRIORITY = "optional"
LICENSE = "CLOSED"
-PR = "r2"
+PR = "r3"
SRC_URI = "http://mirror1.pdaxrom.org/source/src/AtiCore-1.0.1.tar.bz2 \
+ file://fixstretchblit.patch;patch=1 \
file://aticore-2.6.patch;patch=1"
S = "${WORKDIR}/AtiCore-1.0.1"