openslug, ucslugc: convert to use slugos.conf
authorJohn Bowler <jbowler@nslu2-linux.org>
Fri, 11 Nov 2005 07:18:34 +0000 (07:18 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 11 Nov 2005 07:18:34 +0000 (07:18 +0000)
  - All the openslug/ucslugc specific .bb files are converted in this
  - change to use generic 'slugos' files with the required configuration
  - in openslug.conf or ucslugc.conf.  This unifies the image and package
  - build stuff.  Old targets should continue to work as the slugos
  - .bb files PROVIDE the required targets.

17 files changed:
conf/distro/openslug-packages.conf
conf/distro/openslug.conf
conf/distro/slugos.conf
conf/distro/ucslugc-packages.conf
conf/distro/ucslugc.conf
conf/machine/nslu2.conf
files/device_table-slugos.txt [moved from files/device_table-openslug.txt with 100% similarity]
packages/meta/openslug-image.bb [deleted file]
packages/meta/openslug-native-packages.bb [deleted file]
packages/meta/openslug-native.bb [deleted file]
packages/meta/openslug-packages.bb [deleted file]
packages/meta/slugos-image.bb [new file with mode: 0644]
packages/meta/slugos-native-packages.bb [new file with mode: 0644]
packages/meta/slugos-native.bb [new file with mode: 0644]
packages/meta/slugos-packages.bb [moved from packages/meta/ucslugc-packages.bb with 66% similarity]
packages/meta/ucslugc-image.bb [deleted file]
packages/meta/ucslugc-native.bb [deleted file]

index 67bfc2f..e5b82da 100644 (file)
@@ -33,7 +33,9 @@ ${PKGDIR}/packages/devio/*.bb \
 ${PKGDIR}/packages/diffstat/*.bb \
 ${PKGDIR}/packages/diffutils/*.bb \
 ${PKGDIR}/packages/dnsmasq/*.bb \
+${PKGDIR}/packages/docbook-utils/*.bb \
 ${PKGDIR}/packages/dropbear/*.bb \
+${PKGDIR}/packages/dsniff/*.bb \
 ${PKGDIR}/packages/e2fsprogs/*.bb \
 ${PKGDIR}/packages/expat/*.bb \
 ${PKGDIR}/packages/fakeroot/*.bb \
@@ -84,6 +86,8 @@ ${PKGDIR}/packages/libid3tag/*.bb \
 ${PKGDIR}/packages/liblockfile/*.bb \
 ${PKGDIR}/packages/libmad/*.bb \
 ${PKGDIR}/packages/libmikmod/*.bb \
+${PKGDIR}/packages/libnet/*.bb \
+${PKGDIR}/packages/libnids/*.bb \
 ${PKGDIR}/packages/libogg/*.bb \
 ${PKGDIR}/packages/libol/*.bb \
 ${PKGDIR}/packages/libpcap/*.bb \
@@ -126,14 +130,17 @@ ${PKGDIR}/packages/netbase/*.bb \
 ${PKGDIR}/packages/netpbm/*.bb \
 ${PKGDIR}/packages/nfs-utils/*.bb \
 ${PKGDIR}/packages/nis/*.bb \
+${PKGDIR}/packages/nmap/*.bb \
 ${PKGDIR}/packages/nslu2-binary-only/*.bb \
 ${PKGDIR}/packages/ntp/*.bb \
 ${PKGDIR}/packages/obexftp/*.bb \
+${PKGDIR}/packages/openjade/*.bb \
 ${PKGDIR}/packages/openldap/*.bb \
 ${PKGDIR}/packages/openntpd/*.bb \
 ${PKGDIR}/packages/openobex-apps/*.bb \
 ${PKGDIR}/packages/openobex/*.bb \
 ${PKGDIR}/packages/openslug-init/*.bb \
+${PKGDIR}/packages/opensp/*.bb \
 ${PKGDIR}/packages/openssh/*.bb \
 ${PKGDIR}/packages/openssl/*.bb \
 ${PKGDIR}/packages/openvpn/*.bb \
@@ -167,6 +174,7 @@ ${PKGDIR}/packages/sane-backends/*.bb \
 ${PKGDIR}/packages/screen/*.bb \
 ${PKGDIR}/packages/sed/*.bb \
 ${PKGDIR}/packages/setpwc/*.bb \
+${PKGDIR}/packages/sgml-common/*.bb \
 ${PKGDIR}/packages/slugimage/*.bb \
 ${PKGDIR}/packages/ssmtp/*.bb \
 ${PKGDIR}/packages/strace/*.bb \
index e9f8831..a633b56 100644 (file)
@@ -9,9 +9,10 @@ DISTRO_NAME = "OpenSlug"
 DISTRO_VERSION = "3.0-beta"
 DISTRO_FEED = "unstable"
 DISTRO_TYPE = "beta"
+SLUGOS_IMAGENAME = "openslug"
 
-# nslu2-jffs2-image builds a complete image (not just the parts)
-INHERIT += "nslu2-jffs2-image"
+# openslug builds a complete image (not just the parts)
+SLUGOS_FLASH_IMAGE = "yes"
 
 # NOTE: to build new packages set OPENSLUG_EXTRA_BBFILES to the full path name to
 # the .bb files for the packages to build - see ucslugc-packages.conf in this
index 828e0b5..62444de 100644 (file)
@@ -67,6 +67,13 @@ INHERIT += "package_ipk debian"
 #FIXME: remove openslug
 DISTRO_BASE = ":slugos:openslug"
 
+# packages/meta/slugos-image.bb generates a binary image of the root file system
+# with a name controlled by the following setting - it defaults to the top level
+# ${DISTRO_NAME} and this should always be correct, but it may be too specific (e.g.
+# if you change the DISTRO from one of the standard ones in a way which does not
+# change the generated image).
+SLUGOS_IMAGENAME ?= "${DISTRO_NAME}"
+
 # pull in the frozen list of bbfiles - this sets BBFILES and this will override any
 # setting in local.conf  Since this depends on ${DISTRO} it doesn't actually do
 # anything by default unless conf/distro/${DISTRO}-packages.conf exists.
@@ -99,45 +106,24 @@ include conf/distro/freeze.conf
 #----------------------------------------------------------------------------------
 # IMAGE BUILD OPTIONS
 # -------------------
-#FIXME: this is historical, there should be a minimal slugos device table and
-# this stuff shouldn't be in here at all (put it in slugos-image.bb!)
-# Why have anything in the config file to control the image build - why not
-# just select a different image .bb file (e.g. slugos-ramdisk-image.bb) to
-# build with different options.
-IMAGE_FSTYPES = "jffs2"
-IMAGE_SEX = "${@['big-endian', 'little-endian'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
-OPENSLUG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-openslug.txt')}"
-EXTRA_IMAGECMD_jffs2 = "--pad --${IMAGE_SEX} --eraseblock=0x20000 -D ${OPENSLUG_DEVICE_TABLE}"
-
 # CMDLINE* macros define the kernel command line.  CMDLINE_DEBUG is provided
 # to enable/disable debugging in the distro.  Here noirqdebug is used to
 # remove the messages about unhandled interrupts - people debugging interrupt
 # issues in the kernel need to cancel this (set CMDLINE_DEBUG empty in local.conf)
 CMDLINE_DEBUG = "noirqdebug"
 
-# IMAGE_PREPROCESS_COMMAND is run before making the image.  In SlugOS the
-# kernel image is removed from the root file system to recover the space used -
-# SlugOS is assumed to boot from a separate kernel image in flash (not in the
-# root file system), if this is not the case the following must not be done!
-IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;"
-
-# Building a full image.  If you add the following extra commands will be
-# appended to the openslug-image build by classes/nslu2-jffs2-image.bbclass
-# (note that you can, instead, simply add 'inherit nslu2-jffs2-image' to
-# openslug-image.bb).  If you do this you will need to find a source for the
-# LinkSys software to be placed in the full image - 'RedBoot' (the boot loader),
-# 'Trailer' (just a bunch of bytes to flag the image as valid) and 'SysConf'
-# (actually just a block of unset data - you could modify this to pre-configure
-# the SysConf partition of the image).  If you own an NSLU2 then this data is
-# already in the flash of the NSLU2 and you can download it (including new
-# versions) from the LinkSys web site - the bbclass will output information
-# about where to put the downloaded data.
+# Building a full image.  If you set SLUGOS_FLASH_IMAGE to "yes" a complete
+# 8MByte flash image will be built after the rootfs JFFS2 image.
 #
-#NOTE: you do not actually need the boot loader in normal use because it is
-# *not* overwritten by a standard upslug upgrade, so you can make an image with
-# just non-LinkSys software which can be flashed into the NSLU2.
-#FIXME: this should not be here, only slugos-image.bb needs this
-#INHERIT += "nslu2-jffs2-image"
+# If you do this you will need to find a source for the LinkSys software to be
+# placed in the full image - 'RedBoot' (the boot loader), 'Trailer' (just a bunch
+# of bytes to flag the image as valid) and 'SysConf' (actually just a block of
+# unset data - you could modify this to pre-configure the SysConf partition of the
+# image).  If you own an NSLU2 then this data is already in the flash of the NSLU2
+# and you can download it (including new versions) from the LinkSys web site - see
+# packages/meta/slugos-image.bb for information about where to put the downloaded
+# data.
+SLUGOS_FLASH_IMAGE ?= "no"
 
 # EXTRA PACKAGES
 # --------------
@@ -156,11 +142,6 @@ SLUGOS_EXTRA_DEPENDS ?= ""
 # Override this as desired - it makes no difference to the final image.
 SLUGOS_NATIVE_DEPENDS ?= "upslug2-native"
 
-#FIXME: this is for openslug-image, slugos-image should be called slugos!
-#FIXME: I find these names confusing, lets just use RDEPENDS and DEPENDS.
-OPENSLUG_EXTRA_INSTALL = "${SLUGOS_EXTRA_RDEPENDS}"
-OPENSLUG_EXTRA_DEPENDS = "${SLUGOS_EXTRA_DEPENDS} ${SLUGOS_NATIVE_DEPENDS}"
-
 #----------------------------------------------------------------------------------
 # PACKAGE VERSION CONTROL
 #----------------------------------------------------------------------------------
@@ -183,7 +164,7 @@ PREFERRED_VERSION_glibc ?= "2.3.5+cvs20050627"
 # Select the correct versions of the kernel and modules (these are the
 # defaults, override in the conf/distro top-level distro file).
 PREFERRED_PROVIDER_virtual/kernel ?= "nslu2-kernel"
-PREFERRED_VERSION_nslu2-kernel ?= "2.6.14"
+PREFERRED_VERSION_nslu2-kernel ?= "2.6.14.1"
 
 # Built-in ethernet modules
 PREFERRED_PROVIDER_virtual/ixp-eth ?= "ixp400-eth"
@@ -194,3 +175,9 @@ PREFERRED_VERSION_ixp400-eth ?= "1.4"
 # Select the smallest provider of x11 libraries
 PREFERRED_PROVIDER_x11 ?= "diet-x11"
 CVSDATE_diet-x11 ?= "20051005"
+
+# Ensure consistency across all SlugOS builds for the provider of a
+# relational database - use the latest version of the SleepyCat
+# Berkeley database
+PREFERRED_PROVIDER_virtual/db = "db"
+PREFERRED_PROVIDER_virtual/db-native = "db-native"
index 819bc8f..a96c7bc 100644 (file)
@@ -13,6 +13,7 @@ ${PKGDIR}/packages/bind/*.bb \
 ${PKGDIR}/packages/binutils/*.bb \
 ${PKGDIR}/packages/bison/*.bb \
 ${PKGDIR}/packages/bluez/*.bb \
+${PKGDIR}/packages/bogofilter/*.bb \
 ${PKGDIR}/packages/boost/*.bb \
 ${PKGDIR}/packages/bridge-utils/*.bb \
 ${PKGDIR}/packages/busybox/*.bb \
@@ -24,6 +25,8 @@ ${PKGDIR}/packages/cpio/*.bb \
 ${PKGDIR}/packages/cron/*.bb \
 ${PKGDIR}/packages/ctorrent/*.bb \
 ${PKGDIR}/packages/cvs/*.bb \
+${PKGDIR}/packages/cyrus-imapd/*.bb \
+${PKGDIR}/packages/cyrus-sasl/*.bb \
 ${PKGDIR}/packages/db/*.bb \
 ${PKGDIR}/packages/devio/*.bb \
 ${PKGDIR}/packages/diffstat/*.bb \
@@ -102,6 +105,7 @@ ${PKGDIR}/packages/meta/*.bb \
 ${PKGDIR}/packages/mgetty/*.bb \
 ${PKGDIR}/packages/miau/*.bb \
 ${PKGDIR}/packages/microcom/*.bb \
+${PKGDIR}/packages/minicom/*.bb \
 ${PKGDIR}/packages/module-init-tools/*.bb \
 ${PKGDIR}/packages/modutils/*.bb \
 ${PKGDIR}/packages/mt-daapd/*.bb \
@@ -182,5 +186,6 @@ ${PKGDIR}/packages/xdmcp/*.bb \
 ${PKGDIR}/packages/xextensions/*.bb \
 ${PKGDIR}/packages/xproto/*.bb \
 ${PKGDIR}/packages/xtrans/*.bb \
+${PKGDIR}/packages/zd1211/*.bb \
 ${PKGDIR}/packages/zlib/*.bb \
 ${UCSLUGC_EXTRA_BBFILES}"
index 2de9010..359f8e6 100644 (file)
@@ -7,6 +7,7 @@ DISTRO_NAME = "UcSlugC"
 DISTRO_VERSION = "3-beta"
 DISTRO_FEED = "unstable"
 DISTRO_TYPE = "beta"
+SLUGOS_IMAGENAME = "ucslugc"
 
 # NOTE: to build new packages set UCSLUGC_EXTRA_BBFILES to the full path name to
 # the .bb files for the packages to build - see ucslugc-packages.conf in this
index d0f089b..be85a82 100644 (file)
@@ -44,6 +44,12 @@ DISTRO_BASE = ""
 #    after ${DISTRO}, this allows different distros to share a common base of
 #    overrides.  The value given must include a leading ':' or chaos will result.
 
+N2K_SUFFIX = "nslu2${ARCH_BYTE_SEX}"
+# <string>
+#    Kernel suffix - 'nslu2be' or 'nslu2le' for a truely generic image, controls
+#    the suffix on the name of the generated zImage, override in the DISTRO
+#    configuration if patches or defconfig are changed for the DISTRO.
+
 #-------------------------------------------------------------------------------
 # OUTPUTS
 #-------------------------------------------------------------------------------
diff --git a/packages/meta/openslug-image.bb b/packages/meta/openslug-image.bb
deleted file mode 100644 (file)
index 63ee2cc..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# This describes a generic NSLU2 image, even though the bb file is
-# called 'openslug-image.bb' the OpenSlug specific configuration is
-# done in conf/distro/openslug.conf
-#
-PR = "r15"
-
-IMAGE_BASENAME = "openslug"
-
-IMAGE_LINGUAS = ""
-# Setting USE_DEVFS prevents *any* entries being created initially
-# in /dev
-USE_DEVFS = "1"
-
-# diff, cpio and find are required for reflash and turnup ram.
-# Removing these probably leaves the system bootable, but standard
-# openslug and ucslugc stuff won't work, so only take these out in
-# very non-standard turnkey ucslugc builds.
-#
-# udev is the default way of handling devices, there is no guarantee
-# that the static device table is completely correct (it is just
-# known to be sufficient for boot.)
-OPENSLUG_SUPPORT ?= "diffutils cpio findutils udev"
-
-# NOTE: file system kernel modules are defined in openslug.conf
-# (OPENSLUG_EXTRA_FILESYSTEMS, included in OPENSLUG_EXTRA_INSTALL)
-# kernel-module-af-packet must be in the image for DHCP to work
-OPENSLUG_KERNEL ?= "kernel-module-af-packet kernel-module-netconsole"
-       
-# The things explicitly included in the following lists are the
-# absolute minimum to have any chance of a bootable system.
-DEPENDS = "virtual/kernel base-files base-passwd \
-        busybox dropbear hotplug-ng initscripts-openslug netbase \
-        sysvinit tinylogin portmap \
-        virtual/ixp-eth openslug-init \
-       module-init-tools modutils-initscripts \
-        ipkg-collateral ipkg ipkg-link \
-       ${OPENSLUG_SUPPORT} \
-        ${OPENSLUG_EXTRA_DEPENDS}"
-
-IPKG_INSTALL = "base-files base-passwd \
-        busybox dropbear hotplug-ng initscripts-openslug netbase \
-        update-modules sysvinit tinylogin portmap \
-        ${PREFERRED_PROVIDER_virtual/ixp-eth} openslug-init \
-       module-init-tools modutils-initscripts \
-        ipkg-collateral ipkg ipkg-link \
-       ${OPENSLUG_SUPPORT} \
-       ${OPENSLUG_KERNEL} \
-       ${OPENSLUG_EXTRA_INSTALL}"
-
-inherit image_ipk
-
-python () {
-       # Don't build openslug images unless we're targeting an nslu2 or nas100d
-       mach = bb.data.getVar("MACHINE", d, 1)
-       if mach != 'nslu2' and mach != 'nas100d':
-               raise bb.parse.SkipPackage("OpenSlug only builds for the Linksys NSLU2")
-}
-LICENSE = MIT
diff --git a/packages/meta/openslug-native-packages.bb b/packages/meta/openslug-native-packages.bb
deleted file mode 100644 (file)
index 262db42..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Packages that are to be compiled nativly for the OpenSlug firmware"
-LICENSE = MIT
-PR = "r3"
-
-INHIBIT_DEFAULT_DEPS = "1"
-ALLOW_EMPTY = 1
-PACKAGES = "${PN}"
-
-OPENSLUG_NATIVE_PACKAGES = "\
-       apache \
-       "
-
-BROKEN_PACKAGES = "\
-       "
-
-DEPENDS = '${OPENSLUG_NATIVE_PACKAGES} \
-       package-index'
diff --git a/packages/meta/openslug-native.bb b/packages/meta/openslug-native.bb
deleted file mode 100644 (file)
index cef0bd6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-DESCRIPTION = "Packages that are required for the OpenSlug native build environment"
-LICENSE = MIT
-PR = "r11"
-
-INHIBIT_DEFAULT_DEPS = "1"
-ALLOW_EMPTY = 1
-PACKAGES = "${PN}"
-
-OPENSLUG_NATIVE = "\
-       autoconf \
-       automake \
-       bash \
-       binutils binutils-dev binutils-symlinks \
-       bison \
-       bzip2 \
-       coreutils \
-       cpp cpp-symlinks \
-       cvs \
-       file \
-       flex \
-       gawk \
-       g++ g++-symlinks \
-       gcc gcc-symlinks \
-       glibc-extra-nss glibc-utils \
-       gnu-config \
-       gzip \
-       libc6 libc6-dev \
-       libg2c-dev \
-       libgdbm3 \
-       libperl5 \
-       libreadline4 libreadline-dev \
-       libstdc++-dev \
-       libthread-db1 \
-       libtool \
-       lrzsz \
-       m4 \
-       make \
-       monotone-5 \
-       ncurses ncurses-dev ncurses-terminfo \
-       patch \
-       perl perl-modules \
-       pkgconfig \
-       python-core python-crypt python-io python-lang python-pickle python-shell python-textutils \
-       quilt \
-       sed \
-       tar \
-       util-linux \
-       wget \
-       "
-
-RDEPENDS = '${OPENSLUG_NATIVE}'
-
diff --git a/packages/meta/openslug-packages.bb b/packages/meta/openslug-packages.bb
deleted file mode 100644 (file)
index 13d29a0..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-DESCRIPTION = "Packages that are compatible with the OpenSlug firmware"
-LICENSE = MIT
-PR = "r7"
-
-INHIBIT_DEFAULT_DEPS = "1"
-ALLOW_EMPTY = 1
-PACKAGES = "${PN}"
-
-OPENSLUG_PACKAGES = "\
-       alsa-lib \
-       alsa-utils \
-       atftp \
-       autoconf \
-       automake \
-       aumix \
-       bash \
-       bind \
-       binutils \
-       bison \
-       bluez-utils-nodbus \
-       bogofilter \
-       bridge-utils \
-       bwmon \
-       bzip2 \
-       ccxstream \
-       coreutils \
-       cron \
-       ctorrent \
-       ctrlproxy \
-       cvs\
-       cyrus-imapd \
-       db4 \
-       diffstat \
-       diffutils \
-       dnsmasq \
-       expat \
-       file \
-       findutils \
-       flex \
-       ftpd-topfield \
-       gawk \
-       gcc \
-       gdb \
-       glib-2.0 \
-       gnu-config \
-       gphoto2 \
-       grep \
-       gtk-doc \
-       gzip \
-       ifupdown \
-       iperf \
-       ipkg-utils \
-       iptables \
-       irssi \
-       joe \
-       jpeg \
-       lcdproc \
-       less \
-       libdvb \
-       libpam \
-       libpng \
-       libtool \
-       libusb \
-       libxml2 \
-       lsof \
-       m4 \
-       mailx \
-       make \
-       man man-pages \
-       mdadm \
-       mgetty \
-       miau \ 
-       microcom \
-       minicom \
-       monotone-5 \
-       mpd \
-       mtd-utils \
-       mt-daapd \
-       mutt \
-       mysql \
-       nail \
-       nano \
-       ncftp \
-       ncurses \
-       netpbm \
-       nfs-utils \
-       ntp \
-       obexftp openobex openobex-apps ircp \
-       openldap \
-       openntpd \
-       openssh \
-       openvpn \
-       patch \
-       pciutils \
-       pcre \
-       perl \
-       pkgconfig \
-       postfix \
-       ppp \
-       procps \
-       psmisc \
-       puppy \
-       pwc \
-       python \
-       qc-usb-messenger \
-       quilt \
-       reiserfsprogs reiser4progs \
-       rsync \
-       samba \
-       sane-backends \
-       screen \
-       sed \
-       setpwc \
-       ssmtp \
-       strace \
-       streamripper \
-       sudo \
-       sysfsutils \
-       syslog-ng \
-       tar \
-       thttpd \
-       tiff \
-       timezones \
-       unionfs-modules unionfs-utils \
-       usbutils \
-       util-linux \
-       vim \
-       vlan \
-       vsftpd \
-       wakelan \
-       wireless-tools \
-       wget \
-       xinetd \
-       yp-tools ypbind ypserv \
-       zd1211 \
-       zlib \
-       "
-
-BROKEN_PACKAGES = "\
-       groff \
-       icecast \
-       pvrusb2-mci \
-       watchdog \
-       zd1211 \
-       "
-
-DEPENDS = 'openslug-image \
-       ${OPENSLUG_PACKAGES} \
-       openslug-native \
-       package-index'
diff --git a/packages/meta/slugos-image.bb b/packages/meta/slugos-image.bb
new file mode 100644 (file)
index 0000000..4031919
--- /dev/null
@@ -0,0 +1,136 @@
+# This describes a generic NSLU2 image, even though the bb file is
+# called 'slugos-image.bb' the distro specific configuration is
+# done in conf/distro/${DISTRO}.conf (which should always include
+# conf/distro/slugos.conf to get the standard settings).
+#
+LICENSE = "MIT"
+PR = "r16"
+PROVIDES += "${SLUGOS_IMAGENAME}-image"
+#FIXME: backward compatibility with the master makefile
+PROVIDES += "openslug-image"
+
+# SLUGOS_IMAGENAME defines the name of the image to be build, if it
+# is not set this package will be skipped!
+IMAGE_BASENAME = "${SLUGOS_IMAGENAME}"
+IMAGE_FSTYPES = "jffs2"
+
+# Kernel suffix - 'nslu2be' or 'nslu2le' for a truely generic image,
+# override in the DISTRO configuration if patches or defconfig are
+# changed for the DISTRO!
+N2K_SUFFIX ?= "nslu2${ARCH_BYTE_SEX}"
+
+#FIXME: this is historical, there should be a minimal slugos device table and
+# this stuff shouldn't be in here at all (put it in slugos-image.bb!)
+# Why have anything in the config file to control the image build - why not
+# just select a different image .bb file (e.g. slugos-ramdisk-image.bb) to
+# build with different options.
+# IMAGE_SEX = "${@['big-endian', 'little-endian'][bb.data.getVar('ARCH_BYTE_SEX', d, 1) == 'le']}"
+SLUGOS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-slugos.txt')}"
+EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x20000 -D ${SLUGOS_DEVICE_TABLE}"
+
+# IMAGE_PREPROCESS_COMMAND is run before making the image.  In SlugOS the
+# kernel image is removed from the root file system to recover the space used -
+# SlugOS is assumed to boot from a separate kernel image in flash (not in the
+# root file system), if this is not the case the following must not be done!
+IMAGE_PREPROCESS_COMMAND = "rm ${IMAGE_ROOTFS}/boot/zImage*;"
+
+# Building a full image.  If required do a post-process command which builds
+# the full image using slugimage.
+#
+#NOTE: you do not actually need the boot loader in normal use because it is
+# *not* overwritten by a standard upslug upgrade, so you can make an image with
+# just non-LinkSys software which can be flashed into the NSLU2.  Because
+# LinkSys have made "EraseAll" available, however, (this does overwrite RedBoot)
+# it is a bad idea to produce flash images without a valid RedBoot - that allows
+# an innocent user upgrade attempt to instantly brick the NSLU2.
+NSLU2_SLUGIMAGE_ARGS ?= ""
+
+nslu2_pack_image() {
+       if test '${SLUGOS_FLASH_IMAGE}' = yes
+       then
+               install -d ${DEPLOY_DIR_IMAGE}/slug
+               install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
+                               ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
+                               ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
+                               ${DEPLOY_DIR_IMAGE}/slug/
+               install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${N2K_SUFFIX} \
+                       ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
+               install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+                       ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
+               cd ${DEPLOY_DIR_IMAGE}/slug
+               slugimage -p -b RedBoot -s SysConf -r Ramdisk:1,Flashdisk:flashdisk.jffs2 -t \
+                       Trailer -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flashdisk.img \
+                       ${NSLU2_SLUGIMAGE_ARGS}
+               rm -rf ${DEPLOY_DIR_IMAGE}/slug
+       fi
+}
+
+IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image;"
+
+DEPENDS += "${@['', 'slugimage-native nslu2-linksys-firmware'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == 'yes']}"
+
+IMAGE_LINGUAS = ""
+# Setting USE_DEVFS prevents *any* entries being created initially
+# in /dev
+USE_DEVFS = "1"
+
+# CONFIG:
+# SLUGOS_EXTRA_RDEPENDS: set in conf, things to add to the image
+# SLUGOS_EXTRA_DEPENDS:  set in conf, things to build, not added
+#                        to the image.
+# SLUGOS_NATIVE_DEPENDS: set in conf, things to build, intended
+#                        for native (run-on-host) tools
+#
+# SLUGOS_SUPPORT:        set to here, see below, added to build and
+#                        to the image.
+# SLUGOS_KERNEL:         set here, kernel modules added to the image
+#
+# Do not override the last two unless you really know what you
+# are doing - there is more information below.
+
+# diff, cpio and find are required for reflash and turnup ram.
+# Removing these probably leaves the system bootable, but standard
+# openslug and ucslugc stuff won't work, so only take these out in
+# very non-standard turnkey ucslugc builds.
+#
+# udev is the default way of handling devices, there is no guarantee
+# that the static device table is completely correct (it is just
+# known to be sufficient for boot.)
+SLUGOS_SUPPORT ?= "diffutils cpio findutils udev"
+
+# kernel-module-af-packet must be in the image for DHCP to work
+# kernel-module-netconsole is here because it is small and is
+# highly useful on minimal systems (which really don't have anywhere
+# other than the network to output error messages!)
+SLUGOS_KERNEL ?= "kernel-module-af-packet kernel-module-netconsole"
+       
+# The things explicitly included in the following lists are the
+# absolute minimum to have any chance of a bootable system.
+DEPENDS = "virtual/kernel base-files base-passwd \
+        busybox dropbear hotplug-ng initscripts-openslug netbase \
+        sysvinit tinylogin portmap \
+        virtual/ixp-eth openslug-init \
+       module-init-tools modutils-initscripts \
+        ipkg-collateral ipkg ipkg-link \
+       ${SLUGOS_SUPPORT} \
+        ${SLUGOS_EXTRA_DEPENDS} \
+       ${SLUGOS_NATIVE_DEPENDS}"
+
+IPKG_INSTALL = "base-files base-passwd \
+        busybox dropbear hotplug-ng initscripts-openslug netbase \
+        update-modules sysvinit tinylogin portmap \
+        ${PREFERRED_PROVIDER_virtual/ixp-eth} openslug-init \
+       module-init-tools modutils-initscripts \
+        ipkg-collateral ipkg ipkg-link \
+       ${SLUGOS_SUPPORT} \
+       ${SLUGOS_KERNEL} \
+       ${SLUGOS_EXTRA_RDEPENDS}"
+
+inherit image_ipk
+
+python () {
+       # Don't build slugos images unless the configuration is set up
+       # for an image build!
+       if bb.data.getVar("SLUGOS_IMAGENAME", d, 1) == '':
+               raise bb.parse.SkipPackage("absent or broken SlugOS configuration")
+}
diff --git a/packages/meta/slugos-native-packages.bb b/packages/meta/slugos-native-packages.bb
new file mode 100644 (file)
index 0000000..8b5641d
--- /dev/null
@@ -0,0 +1,19 @@
+# Only list packages which will not build 'cross' in here.
+DESCRIPTION = "Packages that are to be compiled natively for the SlugOS firmware"
+LICENSE = "MIT"
+PR = "r0"
+
+INHIBIT_DEFAULT_DEPS = "1"
+EXCLUDE_FROM_WORLD = "1"
+ALLOW_EMPTY = "1"
+PACKAGES = "${PN}"
+
+SLUGOS_NATIVE_PACKAGES = "\
+       apache \
+       "
+
+SLUGOS_BROKEN_NATIVE_PACKAGES = "\
+       "
+
+DEPENDS = '${SLUGOS_NATIVE_PACKAGES} \
+       package-index'
diff --git a/packages/meta/slugos-native.bb b/packages/meta/slugos-native.bb
new file mode 100644 (file)
index 0000000..85f0c55
--- /dev/null
@@ -0,0 +1,98 @@
+# SlugOS native build tools
+#
+# For the most part these are generic tools which should work for any
+# SlugOS variant, however there is a dependency on the libc implementation
+#
+DESCRIPTION = "Packages that are required for the SlugOS native build environment"
+LICENSE = "MIT"
+PR = "r0"
+
+INHIBIT_DEFAULT_DEPS = "1"
+EXCLUDE_FROM_WORLD = "1"
+ALLOW_EMPTY = "1"
+PACKAGES = "${PN}"
+PROVIDES += "${SLUGOS_IMAGENAME}-native"
+
+# Run-time only (RDEPENDS) stuff - no package explicitly provides
+# these targets.
+SLUGOS_NATIVE_RT_prepend_linux = "\
+       glibc-extra-nss glibc-utils \
+       libc6 libc6-dev \
+       "
+SLUGOS_NATIVE_RT_prepend_linux-uclibc = "\
+       uclibc-dev uclibc-utils \
+       "
+SLUGOS_NATIVE_RT = "\
+       binutils-dev binutils-symlinks \
+       cpp cpp-symlinks \
+       g++ g++-symlinks \
+       gcc-symlinks \
+       libg2c-dev \
+       libgdbm3 \
+       libperl5 \
+       libreadline4 libreadline-dev \
+       libstdc++-dev \
+       libthread-db1 \
+       ncurses-dev ncurses-terminfo \
+       perl-modules \
+       python-core python-crypt python-io python-lang python-pickle python-shell python-textutils \
+       "
+
+# Run-time and DEPENDS
+SLUGOS_NATIVE_prepend_linux = "\
+       "
+SLUGOS_NATIVE_prepend_linux-uclibc = "\
+       libiconv \
+       uclibc \
+       "
+SLUGOS_NATIVE = "\
+       autoconf \
+       automake \
+       bash \
+       binutils \
+       bison \
+       bzip2 \
+       coreutils \
+       cvs \
+       diffstat \
+       file \
+       flex \
+       gawk \
+       gcc \
+       gnu-config \
+       gzip \
+       libtool \
+       lrzsz \
+       m4 \
+       make \
+       ncurses \
+       patch \
+       perl \
+       pkgconfig \
+       python-core \
+       quilt \
+       sed \
+       tar \
+       util-linux \
+       wget \
+       ${SLUGOS_NATIVE_THUMB_BROKEN} \
+       "
+
+# If a tool won't build *on thumb libc* add it to the following list.
+# Normally such a tool should be built with the ARM instruction set
+# even on a thumb system (and this can be set in the tool's .bb file),
+# however even this doesn't work for very large programs at present
+# (only monotone!)
+SLUGOS_NATIVE_THUMB_BROKEN = "\
+       monotone-5 \
+       "
+
+SLUGOS_NATIVE_THUMB_BROKEN_thumb = ""
+
+# These things are required but are not valid RDEPENDS
+SLUGOS_NATIVE_DP = "\
+       gdbm \
+       "
+
+RDEPENDS = '${SLUGOS_NATIVE_RT} ${SLUGOS_NATIVE}'
+DEPENDS  = '${SLUGOS_NATIVE_DP} ${SLUGOS_NATIVE}'
similarity index 66%
rename from packages/meta/ucslugc-packages.bb
rename to packages/meta/slugos-packages.bb
index b551155..93205f9 100644 (file)
@@ -1,18 +1,23 @@
-# Meta package containing all the packages which build for UcSlugC
+# Meta package containing all the packages which build for SlugOS
 #
-# All packages in here must build with the ucslugc.conf distro, they
-# do not necessarily work.
-DESCRIPTION = "Packages that are compatible with the UcSlugC firmware"
-LICENSE = MIT
-PR = "r1"
+# All packages in here must build with the slugos-???.conf distros,
+# they do not necessarily work.
+DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
+LICENSE = "MIT"
+PR = "r2"
+CONFLICTS = "db3"
+PROVIDES += "${SLUGOS_IMAGENAME}-packages"
+#FIXME: backward compatibility with the master makefile
+PROVIDES += "openslug-packages"
 
+EXCLUDE_FROM_WORLD = "1"
 INHIBIT_DEFAULT_DEPS = "1"
 ALLOW_EMPTY = 1
 PACKAGES = "${PN}"
 
 # The list of packages to build for the ucslugc DISTRO.
 # KEEP IN ALPHABETICAL ORDER
-UCSLUGC_PACKAGES = "\
+SLUGOS_PACKAGES = "\
        alsa-lib \
        alsa-utils \
        atftp \
@@ -25,6 +30,7 @@ UCSLUGC_PACKAGES = "\
        binutils \
        bison \
        bluez-utils-nodbus \
+       bogofilter \
        boost \
        bridge-utils \
        bwmon \
@@ -34,9 +40,9 @@ UCSLUGC_PACKAGES = "\
        cron \
        ctorrent \
        cvs \
-       cvs\
-       db4 \
-       diffstat \
+       cyrus-imapd \
+       cyrus-sasl \
+       db \
        diffstat \
        diffutils \
        dnsmasq \
@@ -51,7 +57,6 @@ UCSLUGC_PACKAGES = "\
        gcc \
        gdb \
        gdbm \
-       glib-1.2 \
        glib-2.0 \
        gnu-config \
        gphoto2 \
@@ -89,9 +94,10 @@ UCSLUGC_PACKAGES = "\
        mgetty \
        miau \ 
        microcom \
+       minicom \
        mpd \
-       mtd-utils \
        mt-daapd \
+       mtd-utils \
        mutt \
        nail \
        nano \
@@ -115,7 +121,6 @@ UCSLUGC_PACKAGES = "\
        puppy \
        pwc \
        python \
-       python-core \
        qc-usb-messenger \
        quilt \
        reiserfsprogs reiser4progs \
@@ -142,44 +147,17 @@ UCSLUGC_PACKAGES = "\
        vsftpd \
        wakelan \
        wget \
-       wget \
        wireless-tools \
+       zd1211 \
        zlib \
        "
 
-# These packages only build on TARGET_OS=linux, but not TARGET_OS=linux-uclibc.
-# KEEP IN ALPHABETICAL ORDER
-UCSLUGC_BROKEN_PACKAGES = "\
-       ctrlproxy \
+# Packages currently broken on all platforms
+SLUGOS_BROKEN_PACKAGES = "\
+       groff \
        icecast \
-       iperf \
-       iputils \
-       libxslt \
-       man man-pages \
-       php \
-       psmisc \
        pvrusb2-mci \
-       screen \
-       spca5xx \
-       timezones \
        watchdog \
-       xinetd \
-       xirssi \
-       zd1211 \
-       "
-
-# These packages are not in the build because they have a significant compilation
-# time and probably aren't very useful on a ucslugc system
-THUMB_OPTIONAL_PACKAGES = "\
-       monotone-4 \
-       mysql \
-       "
-
-# These packages have problems with thumb or thumb-interwork compilation - they
-# should really be fixed (if still in the build it is because there is a hacky
-# work round.)  The problem with monotone-5 is that it is simply too big.
-THUMB_BROKEN_PACKAGES = "\
-       monotone-5 \
        "
 
 # These packages will never build because uclibc lacks (and always will lack)
@@ -187,13 +165,44 @@ THUMB_BROKEN_PACKAGES = "\
 # normal cause is that the package uses the "NIS" interfaces (once known as
 # YP - a trademark of BT which SUN used without license - the missing function
 # calls often still have 'yp' in the name).
-UCSLUGC_UNSUPPORTABLE_PACKAGES = "\
+UCLIBC_UNSUPPORTABLE_PACKAGES = "\
        libpam \
        nfs-utils \
        postfix \
        yp-tools ypbind ypserv \
        "
 
+# Packages which build only with glibc or uclibc (some of these use internal
+# glibc functions and so will probably never run on uclibc).
+SLUGOS_PACKAGES_append_linux = "\
+       ${UCLIBC_UNSUPPORTABLE_PACKAGES} \
+       ctrlproxy \
+       dsniff \
+       iperf \
+       man man-pages \
+       psmisc \
+       screen \
+       timezones \
+       xinetd \
+       "
+
+SLUGOS_PACKAGES_append_linux-uclibc = "\
+       "
+
+# These packages are not in the build because they have a significant compilation
+# time, add them to SLUGOS_EXTRA_PACKAGES if required
+SLUGOS_OPTIONAL_PACKAGES = "\
+       mysql \
+       "
+
+SLUGOS_EXTRA_PACKAGES ?= ""
+
 # The package-index at the end causes regeneration of the Packages.gz and
 # other control files.
-DEPENDS = "openslug-image ${UCSLUGC_PACKAGES} ucslugc-native package-index"
+DEPENDS = "\
+       slugos-image \
+       slugos-native \
+       ${SLUGOS_PACKAGES} \
+       ${SLUGOS_EXTRA_PACKAGES} \
+       package-index \
+       "
diff --git a/packages/meta/ucslugc-image.bb b/packages/meta/ucslugc-image.bb
deleted file mode 100644 (file)
index a939d41..0000000
+++ /dev/null
@@ -1 +0,0 @@
-DEPENDS = openslug-image
\ No newline at end of file
diff --git a/packages/meta/ucslugc-native.bb b/packages/meta/ucslugc-native.bb
deleted file mode 100644 (file)
index 019ea7a..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-DESCRIPTION = "Packages that are required for the UcSlugC native build environment"
-LICENSE = MIT
-PR = "r0"
-
-INHIBIT_DEFAULT_DEPS = "1"
-ALLOW_EMPTY = 1
-PACKAGES = "${PN}"
-
-# Run-time only (RDEPENDS) stuff - no package explicitly provides
-# these targets.
-UCSLUGC_NATIVE_RT_prepend_linux = "\
-       glibc-extra-nss glibc-utils \
-       libc6 libc6-dev \
-       "
-UCSLUGC_NATIVE_RT_prepend_linux-uclibc = "\
-       uclibc-dev uclibc-utils \
-       "
-UCSLUGC_NATIVE_RT = "\
-       binutils-dev binutils-symlinks \
-       cpp cpp-symlinks \
-       g++ g++-symlinks \
-       gcc-symlinks \
-       libg2c-dev \
-       libgdbm3 \
-       libperl5 \
-       libreadline4 libreadline-dev \
-       libstdc++-dev \
-       libthread-db1 \
-       ncurses-dev ncurses-terminfo \
-       perl-modules \
-       python-crypt python-io python-lang python-pickle python-shell python-textutils \
-       "
-
-# Run-time and DEPENDS
-UCSLUGC_NATIVE_prepend_linux = "\
-       "
-UCSLUGC_NATIVE_prepend_linux-uclibc = "\
-       libiconv \
-       uclibc \
-       "
-UCSLUGC_NATIVE = "\
-       autoconf \
-       automake \
-       bash \
-       binutils \
-       bison \
-       bzip2 \
-       coreutils \
-       cvs \
-       diffstat \
-       flex \
-       gawk \
-       gcc \
-       gnu-config \
-       gzip \
-       libtool \
-       lrzsz \
-       m4 \
-       make \
-       ncurses \
-       patch \
-       perl \
-       pkgconfig \
-       python-core \
-       quilt \
-       sed \
-       tar \
-       util-linux \
-       wget \
-       "
-
-UCSLUGC_NATIVE_THUMB_BROKEN = "\
-       monotone-5 \
-       "
-
-# These things are required but are not valid RDEPENDS
-UCSLUGC_NATIVE_DP = "\
-       gdbm \
-       "
-
-RDEPENDS = '${UCSLUGC_NATIVE_RT} ${UCSLUGC_NATIVE}'
-DEPENDS  = '${UCSLUGC_NATIVE_DP} ${UCSLUGC_NATIVE}'