aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Bowler <jbowler@nslu2-linux.org>2005-11-11 07:18:34 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-11-11 07:18:34 +0000
commitdbd1a76089b2b95b9c57fff7dd7d22c67a93a4e3 (patch)
tree7234291c163f9422814908cff50e2f24f5c6f2ca
parent47bb3895991dd77781dee8274159b032ebbc6b31 (diff)
downloadopenembedded-dbd1a76089b2b95b9c57fff7dd7d22c67a93a4e3.tar.gz
openslug, ucslugc: convert to use slugos.conf
- 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.
-rw-r--r--conf/distro/openslug-packages.conf8
-rw-r--r--conf/distro/openslug.conf5
-rw-r--r--conf/distro/slugos.conf63
-rw-r--r--conf/distro/ucslugc-packages.conf5
-rw-r--r--conf/distro/ucslugc.conf1
-rw-r--r--conf/machine/nslu2.conf6
-rw-r--r--files/device_table-slugos.txt (renamed from files/device_table-openslug.txt)0
-rw-r--r--packages/meta/openslug-image.bb58
-rw-r--r--packages/meta/openslug-native-packages.bb17
-rw-r--r--packages/meta/openslug-native.bb52
-rw-r--r--packages/meta/openslug-packages.bb150
-rw-r--r--packages/meta/slugos-image.bb136
-rw-r--r--packages/meta/slugos-native-packages.bb19
-rw-r--r--packages/meta/slugos-native.bb98
-rw-r--r--packages/meta/slugos-packages.bb (renamed from packages/meta/ucslugc-packages.bb)101
-rw-r--r--packages/meta/ucslugc-image.bb1
-rw-r--r--packages/meta/ucslugc-native.bb82
17 files changed, 356 insertions, 446 deletions
diff --git a/conf/distro/openslug-packages.conf b/conf/distro/openslug-packages.conf
index 67bfc2f16c..e5b82da7cc 100644
--- a/conf/distro/openslug-packages.conf
+++ b/conf/distro/openslug-packages.conf
@@ -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 \
diff --git a/conf/distro/openslug.conf b/conf/distro/openslug.conf
index e9f88311c2..a633b56190 100644
--- a/conf/distro/openslug.conf
+++ b/conf/distro/openslug.conf
@@ -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
diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf
index 828e0b5800..62444de337 100644
--- a/conf/distro/slugos.conf
+++ b/conf/distro/slugos.conf
@@ -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"
diff --git a/conf/distro/ucslugc-packages.conf b/conf/distro/ucslugc-packages.conf
index 819bc8f984..a96c7bc863 100644
--- a/conf/distro/ucslugc-packages.conf
+++ b/conf/distro/ucslugc-packages.conf
@@ -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}"
diff --git a/conf/distro/ucslugc.conf b/conf/distro/ucslugc.conf
index 2de9010a90..359f8e657f 100644
--- a/conf/distro/ucslugc.conf
+++ b/conf/distro/ucslugc.conf
@@ -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
diff --git a/conf/machine/nslu2.conf b/conf/machine/nslu2.conf
index d0f089be2a..be85a82048 100644
--- a/conf/machine/nslu2.conf
+++ b/conf/machine/nslu2.conf
@@ -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/files/device_table-openslug.txt b/files/device_table-slugos.txt
index 6cfc5fc5e0..6cfc5fc5e0 100644
--- a/files/device_table-openslug.txt
+++ b/files/device_table-slugos.txt
diff --git a/packages/meta/openslug-image.bb b/packages/meta/openslug-image.bb
deleted file mode 100644
index 63ee2cc204..0000000000
--- a/packages/meta/openslug-image.bb
+++ /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
index 262db42a9f..0000000000
--- a/packages/meta/openslug-native-packages.bb
+++ /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
index cef0bd6a49..0000000000
--- a/packages/meta/openslug-native.bb
+++ /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
index 13d29a0961..0000000000
--- a/packages/meta/openslug-packages.bb
+++ /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
index 0000000000..4031919e05
--- /dev/null
+++ b/packages/meta/slugos-image.bb
@@ -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
index 0000000000..8b5641daf1
--- /dev/null
+++ b/packages/meta/slugos-native-packages.bb
@@ -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
index 0000000000..85f0c551f5
--- /dev/null
+++ b/packages/meta/slugos-native.bb
@@ -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}'
diff --git a/packages/meta/ucslugc-packages.bb b/packages/meta/slugos-packages.bb
index b551155287..93205f92c0 100644
--- a/packages/meta/ucslugc-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -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
index a939d41531..0000000000
--- a/packages/meta/ucslugc-image.bb
+++ /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
index 019ea7a5c3..0000000000
--- a/packages/meta/ucslugc-native.bb
+++ /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}'