diff options
author | John Bowler <jbowler@nslu2-linux.org> | 2005-11-11 07:18:34 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-11-11 07:18:34 +0000 |
commit | dbd1a76089b2b95b9c57fff7dd7d22c67a93a4e3 (patch) | |
tree | 7234291c163f9422814908cff50e2f24f5c6f2ca | |
parent | 47bb3895991dd77781dee8274159b032ebbc6b31 (diff) |
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.conf | 8 | ||||
-rw-r--r-- | conf/distro/openslug.conf | 5 | ||||
-rw-r--r-- | conf/distro/slugos.conf | 63 | ||||
-rw-r--r-- | conf/distro/ucslugc-packages.conf | 5 | ||||
-rw-r--r-- | conf/distro/ucslugc.conf | 1 | ||||
-rw-r--r-- | conf/machine/nslu2.conf | 6 | ||||
-rw-r--r-- | files/device_table-slugos.txt (renamed from files/device_table-openslug.txt) | 0 | ||||
-rw-r--r-- | packages/meta/openslug-image.bb | 58 | ||||
-rw-r--r-- | packages/meta/openslug-native-packages.bb | 17 | ||||
-rw-r--r-- | packages/meta/openslug-native.bb | 52 | ||||
-rw-r--r-- | packages/meta/openslug-packages.bb | 150 | ||||
-rw-r--r-- | packages/meta/slugos-image.bb | 136 | ||||
-rw-r--r-- | packages/meta/slugos-native-packages.bb | 19 | ||||
-rw-r--r-- | packages/meta/slugos-native.bb | 98 | ||||
-rw-r--r-- | packages/meta/slugos-packages.bb (renamed from packages/meta/ucslugc-packages.bb) | 101 | ||||
-rw-r--r-- | packages/meta/ucslugc-image.bb | 1 | ||||
-rw-r--r-- | packages/meta/ucslugc-native.bb | 82 |
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}' |