diff options
Diffstat (limited to 'packages')
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" |