summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/base.bbclass2
-rw-r--r--classes/bootimg.bbclass92
-rw-r--r--classes/kernel.bbclass12
-rw-r--r--classes/pkgconfig.bbclass2
-rw-r--r--classes/syslinux.bbclass156
-rw-r--r--conf/machine/db1200.conf15
-rw-r--r--conf/machine/geodelx.conf7
-rw-r--r--packages/autofs/autofs_4.1.4.bb1
-rw-r--r--packages/beecrypt/beecrypt_3.1.0.bb2
-rw-r--r--packages/bonnie/bonnie++_1.03a.bb8
-rw-r--r--packages/busybox/busybox_1.00.bb2
-rw-r--r--packages/busybox/busybox_1.01.bb13
-rw-r--r--packages/cdrtools/cdrtools-native_2.01.bb2
-rw-r--r--packages/cpuburn/cpuburn_1.4.bb4
-rw-r--r--packages/cramfs/cramfs-native_1.1.bb19
-rw-r--r--packages/cramfs/cramfs/.mtn2git_empty0
-rw-r--r--packages/cramfs/cramfs/cramfs-andersee.patch1269
-rw-r--r--packages/cramfs/cramfs/makefile.patch26
-rw-r--r--packages/ctags/ctags-native_5.5.4.bb2
-rw-r--r--packages/dialog/dialog-1.0-20050306/templates.patch25
-rw-r--r--packages/dialog/dialog-static_1.0-20050306.bb4
-rw-r--r--packages/dialog/dialog.inc13
-rw-r--r--packages/dialog/dialog_1.0-20050306.bb13
-rw-r--r--packages/dosfstools/dosfstools_2.10.bb2
-rw-r--r--packages/efl/etk_20060418.bb2
-rw-r--r--packages/efl/etox_0.9.0.004.bb10
-rw-r--r--packages/efl/ewl_0.0.4.007.bb1
-rw-r--r--packages/emelfm2/.mtn2git_empty0
-rw-r--r--packages/emelfm2/emelfm2-0.0.8/.mtn2git_empty0
-rw-r--r--packages/emelfm2/emelfm2-0.0.8/makefile.patch13
-rw-r--r--packages/emelfm2/emelfm2_0.0.8.bb22
-rw-r--r--packages/ethereal/ethereal-native_0.99.0.bb23
-rw-r--r--packages/ethereal/ethereal_0.99.0.bb9
-rw-r--r--packages/fontconfig/files/local.conf9
-rw-r--r--packages/fontconfig/fontconfig_2.2.95.bb8
-rw-r--r--packages/gcc/gcc-3.4.3/GCOV_PREFIX_STRIP-cross-profile_3.4.patch385
-rw-r--r--packages/gcc/gcc-3.4.4/GCOV_PREFIX_STRIP-cross-profile_3.4.patch389
-rw-r--r--packages/gcc/gcc-4.0.2/GCOV_PREFIX_STRIP-cross-profile_4.1.patch371
-rw-r--r--packages/gcc/gcc-cross_3.3.3.bb4
-rw-r--r--packages/gcc/gcc-package.inc15
-rw-r--r--packages/gcc/gcc3-build-cross.inc4
-rw-r--r--packages/gcc/gcc3-build.inc1
-rw-r--r--packages/gcc/gcc4-build.inc2
-rw-r--r--packages/gcc/gcc_3.4.3.bb3
-rw-r--r--packages/gcc/gcc_3.4.4.bb3
-rw-r--r--packages/gcc/gcc_4.0.2.bb3
-rw-r--r--packages/gdb/gdb-cross_6.3.bb4
-rw-r--r--packages/geode-drivers/geode-accessbus5536_2.6.11.bb2
-rw-r--r--packages/geode-drivers/geode-aeslx_2.6.11.bb2
-rw-r--r--packages/geode-drivers/geode-alsa5536_2.6.11.bb2
-rw-r--r--packages/geode-drivers/geode-modules.inc2
-rw-r--r--packages/geode-drivers/geode-v4l2lx_2.6.11.bb2
-rw-r--r--packages/gpe-calendar/gpe-calendar_cvs.bb2
-rw-r--r--packages/gpm/gpm-1.20.1/init12
-rw-r--r--packages/hibernate-script/hibernate-script_1.12.bb2
-rw-r--r--packages/ica/ica-bin_8.0.bb4
-rw-r--r--packages/kbd/kbd_1.12.bb2
-rw-r--r--packages/libaio/libaio-oracle_0.3.0.bb2
-rw-r--r--packages/libaio/libaio_0.3.103.bb2
-rw-r--r--packages/libdvdnav/.mtn2git_empty0
-rw-r--r--packages/libdvdnav/libdvdnav_0.1.10.bb16
-rw-r--r--packages/libidl/libidl_0.8.3.bb8
-rw-r--r--packages/libidl/libidl_0.8.6.bb8
-rw-r--r--packages/linux/linux-geodelx_2.6.11.bb2
-rw-r--r--packages/lm_sensors/.mtn2git_empty0
-rw-r--r--packages/lm_sensors/lmsensors-apps_2.9.2.bb32
-rw-r--r--packages/ltt/ltt-0.9.6-pre4/.mtn2git_empty0
-rw-r--r--packages/ltt/ltt-0.9.6-pre4/m4.patch401
-rw-r--r--packages/ltt/ltt_0.9.6-pre4.bb21
-rw-r--r--packages/mtd/mtd-utils_1.0.0.bb14
-rw-r--r--packages/mtools/mtools_3.9.9.bb4
-rw-r--r--packages/mysql/mysql_4.1.18.bb75
-rw-r--r--packages/nvidia-drivers/.mtn2git_empty0
-rw-r--r--packages/nvidia-drivers/files/.mtn2git_empty0
-rw-r--r--packages/nvidia-drivers/files/nvaudio-remap_page_range.patch27
-rw-r--r--packages/nvidia-drivers/files/nvidia-oe-conftest.patch60
-rw-r--r--packages/nvidia-drivers/nvidia-display_1.0-8756.bb48
-rw-r--r--packages/nvidia-drivers/nvidia-drivers.inc54
-rw-r--r--packages/nvidia-drivers/nvidia-nforce_1.0-0310.bb71
-rw-r--r--packages/openh323/.mtn2git_empty0
-rw-r--r--packages/openh323/openh323/.mtn2git_empty0
-rw-r--r--packages/openh323/openh323/fixes.patch111
-rw-r--r--packages/openh323/openh323_1.13.5.4.bb51
-rw-r--r--packages/openssl/openssl.inc3
-rw-r--r--packages/pdm/pdm-1.0/.mtn2git_empty0
-rw-r--r--packages/pdm/pdm-1.0/mythtv22
-rw-r--r--packages/pdm/pdm-1.0/pdm-1.0-changes.patch209
-rw-r--r--packages/pdm/pdm-1.0/pdm.conf10
-rw-r--r--packages/pdm/pdm-1.0/setuid.patch42
-rw-r--r--packages/pdm/pdm-1.0/xfce24
-rw-r--r--packages/pdm/pdm_1.0.bb12
-rw-r--r--packages/perl/perl-5.8.7/config.sh-i486-linux1028
-rw-r--r--packages/perl/perl-5.8.7/config.sh-i586-linux1028
-rw-r--r--packages/perl/perl_5.8.7.bb17
-rw-r--r--packages/pwlib/.mtn2git_empty0
-rw-r--r--packages/pwlib/pwlib_1.5.2.bb33
-rw-r--r--packages/pwlib/pwlib_1.6.6.4.bb116
-rw-r--r--packages/python/python-imaging_1.1.5.bb3
-rw-r--r--packages/python/python-spydi_0.9.3.bb2
-rw-r--r--packages/qt/qt-x11-free_3.3.6.bb4
-rw-r--r--packages/quake/quake1_0.0.1.bb2
-rw-r--r--packages/sip/sip4-native_4.4.3.bb3
-rw-r--r--packages/stress/.mtn2git_empty0
-rw-r--r--packages/stress/stress_0.18.8.bb12
-rw-r--r--packages/sudo/sudo.inc7
-rw-r--r--packages/syslinux/syslinux-native_2.11.bb2
-rw-r--r--packages/syslinux/syslinux-native_3.11.bb2
-rw-r--r--packages/tetex/tetex-native_3.0.bb7
-rw-r--r--packages/util-linux/util-linux-native_2.12r.bb30
-rw-r--r--site/i486-linux13
-rw-r--r--site/i686-linux5
-rw-r--r--site/mipsel-linux3
-rw-r--r--site/x86_64-linux3
113 files changed, 6519 insertions, 134 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index b292355920..4bf37dfd03 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -703,7 +703,7 @@ python __anonymous () {
if need_machine:
import re
this_machine = bb.data.getVar('MACHINE', d, 1)
- if not re.match(need_machine, this_machine):
+ if this_machine and not re.match(need_machine, this_machine):
raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine)
pn = bb.data.getVar('PN', d, 1)
diff --git a/classes/bootimg.bbclass b/classes/bootimg.bbclass
new file mode 100644
index 0000000000..820749a335
--- /dev/null
+++ b/classes/bootimg.bbclass
@@ -0,0 +1,92 @@
+# bootimg.oeclass
+# Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+# This creates a bootable image using syslinux, your kernel and an optional
+# initrd
+
+# External variables needed
+# ${INITRD} - indicates a filesystem image to use as an initrd (optional)
+# ${AUTO_SYSLINUXCFG} - set this to 1 to enable creating an automatic config
+# ${LABELS} - a list of targets for the automatic config
+# ${APPEND} - an override list of append strings for each label
+# ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited
+
+DEPENDS_append=" dosfstools-native syslinux-native mtools-native cdrtools-native"
+
+BDIR="${WORKDIR}/boot"
+ISODIR="${IMAGE_ROOTFS}/isolinux/"
+
+BOOTIMG_VOLUME_ID ?= "oe"
+BOOTIMG_EXTRA_SPACE ?= "64"
+
+# Get the build_syslinux_cfg() function from the syslinux class
+
+SYSLINUXCFG="${BDIR}/syslinux.cfg"
+SYSLINUXMENU="${BDIR}/menu"
+inherit syslinux
+
+build_boot_bin() {
+ install -d ${BDIR}
+ install -m 0644 ${STAGING_KERNEL_DIR}/bzImage \
+ ${BDIR}/vmlinuz
+
+ if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
+ install -m 0644 ${INITRD} ${BDIR}/initrd
+ fi
+
+ install -m 444 ${STAGING_DIR}/${BUILD_SYS}/share/syslinux/ldlinux.sys \
+ ${BDIR}/ldlinux.sys
+
+ # Do a little math, bash style
+ #BLOCKS=`du -s ${BDIR} | cut -f 1`
+ BLOCKS=`du -bks ${BDIR} | cut -f 1`
+ SIZE=`expr $BLOCKS + ${BOOTIMG_EXTRA_SPACE}`
+
+ mkdosfs -F 12 -n ${BOOTIMG_VOLUME_ID} -d ${BDIR} \
+ -C ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-boot.bin $SIZE
+
+ syslinux ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-boot.bin
+
+ #Create an ISO if we have an INITRD
+ if [ -n "${INITRD}" ] && [ -s "${INITRD}" ] && [ "${NOISO}" != "1" ] ; then
+ install -d ${ISODIR}
+
+ # Install the kernel
+
+ install -m 0644 ${STAGING_KERNEL_DIR}/bzImage \
+ ${ISODIR}/vmlinuz
+
+ # Install the configuration files
+
+ cp ${BDIR}/syslinux.cfg ${ISODIR}/isolinux.cfg
+
+ if [ -f ${SYSLINUXMENU} ]; then
+ cp ${SYSLINUXMENU} ${ISODIR}
+ fi
+
+ install -m 0644 ${INITRD} ${ISODIR}/initrd
+
+ # And install the syslinux stuff
+ cp ${STAGING_DIR}/${BUILD_SYS}/share/syslinux/isolinux.bin \
+ ${ISODIR}
+
+ mkisofs -V ${BOOTIMG_VOLUME_ID} \
+ -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
+ -b isolinux/isolinux.bin -c isolinux/boot.cat -r \
+ -no-emul-boot -boot-load-size 4 -boot-info-table \
+ ${IMAGE_ROOTFS}
+ fi
+}
+
+python do_bootimg() {
+ docfg = bb.data.getVar('AUTO_SYSLINUXCFG', d, 1)
+ if docfg:
+ bb.build.exec_func('build_syslinux_cfg', d)
+ bb.build.exec_func('build_boot_bin', d)
+}
+
+# We need to run after bootsplash if it exists, so thats why this line
+# is such. Don't worry, if you don't do bootsplash, nobody will notice
+
+addtask bootimg before do_build after do_bootsplash
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass
index ad51c4e035..502a2a677d 100644
--- a/classes/kernel.bbclass
+++ b/classes/kernel.bbclass
@@ -109,6 +109,16 @@ kernel_do_stage() {
mkdir -p ${STAGING_KERNEL_DIR}/include/pcmcia
cp -fR include/pcmcia/* ${STAGING_KERNEL_DIR}/include/pcmcia/
+ if [ -d drivers/crypto ]; then
+ mkdir -p ${STAGING_KERNEL_DIR}/drivers/crypto
+ cp -fR drivers/crypto/* ${STAGING_KERNEL_DIR}/drivers/crypto/
+ fi
+
+ if [ -d include/acpi ]; then
+ mkdir -p ${STAGING_KERNEL_DIR}/include/acpi
+ cp -fR include/acpi/* ${STAGING_KERNEL_DIR}/include/acpi/
+ fi
+
if [ -d include/sound ]; then
mkdir -p ${STAGING_KERNEL_DIR}/include/sound
cp -fR include/sound/* ${STAGING_KERNEL_DIR}/include/sound/
@@ -133,7 +143,7 @@ kernel_do_stage() {
# Check if arch/${ARCH}/Makefile exists and install it
if [ -e arch/${ARCH}/Makefile ]; then
install -d ${STAGING_KERNEL_DIR}/arch/${ARCH}
- install -m 0644 arch/${ARCH}/Makefile ${STAGING_KERNEL_DIR}/arch/${ARCH}
+ install -m 0644 arch/${ARCH}/Makefile* ${STAGING_KERNEL_DIR}/arch/${ARCH}
fi
cp -fR include/config* ${STAGING_KERNEL_DIR}/include/
install -m 0644 ${KERNEL_OUTPUT} ${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE}
diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass
index 62f15f312d..f2054b0b07 100644
--- a/classes/pkgconfig.bbclass
+++ b/classes/pkgconfig.bbclass
@@ -20,7 +20,7 @@ def get_pkgconfig_mangle(d):
return s
do_stage_append () {
- for pc in `find ${S} -name '*.pc' | grep -v -- '-uninstalled.pc$'`; do
+ for pc in `find ${S} -name '*.pc' -type f | grep -v -- '-uninstalled.pc$'`; do
pcname=`basename $pc`
install -d ${PKG_CONFIG_PATH}
cat $pc | sed ${@get_pkgconfig_mangle(d)} > ${PKG_CONFIG_PATH}/$pcname
diff --git a/classes/syslinux.bbclass b/classes/syslinux.bbclass
new file mode 100644
index 0000000000..2f5b6c43d7
--- /dev/null
+++ b/classes/syslinux.bbclass
@@ -0,0 +1,156 @@
+# syslinux.bbclass
+# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+# This creates a configuration file suitable for use with syslinux.
+
+python build_syslinux_menu () {
+ import copy
+ import sys
+
+ workdir = bb.data.getVar('WORKDIR', d, 1)
+ if not workdir:
+ bb.error("WORKDIR is not defined")
+ return
+
+ labels = bb.data.getVar('LABELS', d, 1)
+ if not labels:
+ bb.debug(1, "LABELS not defined, nothing to do")
+ return
+
+ if labels == []:
+ bb.debug(1, "No labels, nothing to do")
+ return
+
+ cfile = bb.data.getVar('SYSLINUXMENU', d, 1)
+ if not cfile:
+ raise bb.build.FuncFailed('Unable to read SYSLINUXMENU')
+
+ bb.mkdirhier(os.path.dirname(cfile))
+
+ try:
+ cfgfile = file(cfile, 'w')
+ except OSError:
+ raise bb.build.funcFailed('Unable to open %s' % (cfile))
+
+ # Beep the speaker and Clear the screen
+ cfgfile.write('\x07\x0C')
+
+ # The title should be configurable
+ cfgfile.write('AMD Geode Linux Boot Menu\n')
+ cfgfile.write('The following targets are available on this image:\n')
+ cfgfile.write('\n')
+
+ for label in labels.split():
+ from copy import deepcopy
+ localdata = deepcopy(d)
+
+ overrides = bb.data.getVar('OVERRIDES', localdata)
+ if not overrides:
+ raise bb.build.FuncFailed('OVERRIDES not defined')
+ overrides = bb.data.expand(overrides, localdata)
+
+ bb.data.setVar('OVERRIDES', label + ':' + overrides, localdata)
+ bb.data.update_data(localdata)
+
+ usage = bb.data.getVar('USAGE', localdata, 1)
+ cfgfile.write(' \x0F\x30\x3E%16s\x0F\x30\x37: ' % (label))
+ cfgfile.write('%s\n' % (usage))
+
+ del localdata
+
+ cfgfile.write('\n')
+ cfgfile.close()
+}
+
+python build_syslinux_cfg () {
+ import copy
+ import sys
+
+ workdir = bb.data.getVar('WORKDIR', d, 1)
+ if not workdir:
+ bb.error("WORKDIR not defined, unable to package")
+ return
+
+ labels = bb.data.getVar('LABELS', d, 1)
+ if not labels:
+ bb.debug(1, "LABELS not defined, nothing to do")
+ return
+
+ if labels == []:
+ bb.debug(1, "No labels, nothing to do")
+ return
+
+ cfile = bb.data.getVar('SYSLINUXCFG', d, 1)
+ if not cfile:
+ raise bb.build.FuncFailed('Unable to read SYSLINUXCFG')
+
+ bb.mkdirhier(os.path.dirname(cfile))
+
+ try:
+ cfgfile = file(cfile, 'w')
+ except OSError:
+ raise bb.build.funcFailed('Unable to open %s' % (cfile))
+
+ # FIXME - the timeout should be settable
+ # And maybe the default too
+ # Definately the prompt
+
+ cfgfile.write('# Automatically created by OE\n')
+
+ opts = bb.data.getVar('SYSLINUX_OPTS', d, 1)
+
+ if opts:
+ for opt in opts.split(';'):
+ cfgfile.write('%s\n' % opt)
+
+ cfgfile.write('ALLOWOPTIONS 1\n');
+ cfgfile.write('DEFAULT %s\n' % (labels.split()[0]))
+
+ timeout = bb.data.getVar('SYSLINUX_TIMEOUT', d, 1)
+
+ if timeout:
+ cfgfile.write('TIMEOUT %s\n' % timeout)
+ else:
+ cfgfile.write('TIMEOUT 50\n')
+
+ cfgfile.write('PROMPT 1\n')
+
+ menu = bb.data.getVar('AUTO_SYSLINUXMENU', d, 1)
+
+ # This is ugly. My bad.
+
+ if menu:
+ bb.build.exec_func('build_syslinux_menu', d)
+ mfile = bb.data.getVar('SYSLINUXMENU', d, 1)
+ cfgfile.write('DISPLAY %s\n' % (mfile.split('/')[-1]) )
+
+ for label in labels.split():
+ from copy import deepcopy
+ localdata = deepcopy(d)
+
+ overrides = bb.data.getVar('OVERRIDES', localdata)
+ if not overrides:
+ raise bb.build.FuncFailed('OVERRIDES not defined')
+ overrides = bb.data.expand(overrides, localdata)
+
+ bb.data.setVar('OVERRIDES', label + ':' + overrides, localdata)
+ bb.data.update_data(localdata)
+
+ cfgfile.write('LABEL %s\nKERNEL vmlinuz\n' % (label))
+
+ append = bb.data.getVar('APPEND', localdata, 1)
+ initrd = bb.data.getVar('INITRD', localdata, 1)
+
+ if append:
+ cfgfile.write('APPEND ')
+
+ if initrd:
+ cfgfile.write('initrd=initrd ')
+
+ cfgfile.write('%s\n' % (append))
+
+ del localdata
+
+ cfgfile.close()
+}
diff --git a/conf/machine/db1200.conf b/conf/machine/db1200.conf
new file mode 100644
index 0000000000..d46636cccf
--- /dev/null
+++ b/conf/machine/db1200.conf
@@ -0,0 +1,15 @@
+# Alchemy db1200
+
+TARGET_ARCH = "mipsel"
+IPKG_ARCHS = "${TARGET_ARCH} ${MACHINE}"
+
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}depmod:module-init-tools-cross"
+
+SERIAL_CONSOLE="/dev/ttyS0 115200 vt100"
+USE_VT="0"
+
+TARGET_CC_ARCH="-march=mips32"
+
+FLASH_OFFSET="0xBC000000"
+#EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x10000 -q"
+EXTRA_IMAGECMD_jffs2 = "--little-endian --pad=0x3C00000 -q"
diff --git a/conf/machine/geodelx.conf b/conf/machine/geodelx.conf
new file mode 100644
index 0000000000..841f4a8418
--- /dev/null
+++ b/conf/machine/geodelx.conf
@@ -0,0 +1,7 @@
+TARGET_ARCH = "i486"
+
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}depmod:module-init-tools-cross"
+
+PREFERRED_PROVIDER_virtual/kernel="linux-geodelx"
+
+SELECTED_OPTIMIZATION_glibc := "${@'${SELECTED_OPTIMIZATION}'.replace('-fomit-frame-pointer', '')}"
diff --git a/packages/autofs/autofs_4.1.4.bb b/packages/autofs/autofs_4.1.4.bb
index 8acf618654..57689d8f6e 100644
--- a/packages/autofs/autofs_4.1.4.bb
+++ b/packages/autofs/autofs_4.1.4.bb
@@ -10,6 +10,7 @@ SRC_URI = "ftp://ftp.kernel.org/pub/linux/daemons/autofs/v4/autofs-${PV}.tar.bz2
file://Makefile.rules-cross.patch;patch=1"
EXTRA_OEMAKE="TARGET_PREFIX=${TARGET_PREFIX}"
+PARALLEL_MAKE = ""
inherit autotools
diff --git a/packages/beecrypt/beecrypt_3.1.0.bb b/packages/beecrypt/beecrypt_3.1.0.bb
index 1b22b5a2d2..1c67b38345 100644
--- a/packages/beecrypt/beecrypt_3.1.0.bb
+++ b/packages/beecrypt/beecrypt_3.1.0.bb
@@ -4,7 +4,7 @@
DESCRIPTION="Beecrypt is a general-purpose cryptography library."
HOMEPAGE="http://sourceforge.net/projects/beecrypt"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
SRC_URI="${SOURCEFORGE_MIRROR}/beecrypt/beecrypt-${PV}.tar.gz"
inherit autotools
diff --git a/packages/bonnie/bonnie++_1.03a.bb b/packages/bonnie/bonnie++_1.03a.bb
index 92c0342bd6..b8aae121e5 100644
--- a/packages/bonnie/bonnie++_1.03a.bb
+++ b/packages/bonnie/bonnie++_1.03a.bb
@@ -4,7 +4,7 @@
DESCRIPTION="Tests large file IO and creation/deletion of small files."
LICENSE="GPL"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
SRC_URI="${SOURCEFORGE_MIRROR}/bonnie/${PN}-${PV}.tgz"
@@ -14,7 +14,11 @@ inherit autotools
EXES="bonnie++ zcav"
SCRIPTS="bon_csv2html bon_csv2txt"
-FILES_${PN} = "/bin /sbin"
+PACKAGES += "bonnie-scripts"
+
+FILES_${PN} = "/sbin"
+FILES_bonnie-scripts="/bin"
+
S="${WORKDIR}/${PN}-${PV}"
do_install () {
diff --git a/packages/busybox/busybox_1.00.bb b/packages/busybox/busybox_1.00.bb
index 5b770669c1..c0f7c87a6b 100644
--- a/packages/busybox/busybox_1.00.bb
+++ b/packages/busybox/busybox_1.00.bb
@@ -83,7 +83,7 @@ do_install () {
install -d ${D}${base_bindir}
mv ${D}/busybox${base_bindir}/busybox ${D}${base_bindir}/
# Move back the sh symlink
- mv ${D}/busybox${base_bindir}/sh ${D}${base_bindir}/
+ test -f ${D}/busybox${base_bindir}/sh && mv ${D}/busybox${base_bindir}/sh ${D}${base_bindir}/
install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/
install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/
diff --git a/packages/busybox/busybox_1.01.bb b/packages/busybox/busybox_1.01.bb
index 1e2f41fcba..b642e8b21a 100644
--- a/packages/busybox/busybox_1.01.bb
+++ b/packages/busybox/busybox_1.01.bb
@@ -15,7 +15,7 @@ PR = "r12"
SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
file://udhcppidfile.patch;patch=1 \
file://udhcppidfile-breakage.patch;patch=1 \
- file://add-getkey-applet.patch;patch=1 \
+ file://add-getkey-applet.patch;patch=1 \
file://below.patch;patch=1 \
file://dhcp-hostname.patch;patch=1 \
file://dhcpretrytime.patch;patch=1 \
@@ -29,14 +29,13 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
file://udhcpscript.patch;patch=1 \
file://thumb-bsdlabel.patch;patch=1 \
file://glibc2.4-icmp6.patch;patch=1 \
- file://uclibc_posix.patch;patch=1 \
- \
- file://defconfig \
- file://busybox-cron \
+ file://uclibc_posix.patch;patch=1 \
+ file://defconfig \
+ file://busybox-cron \
file://busybox-httpd \
file://busybox-udhcpd \
file://syslog \
- file://hwclock.sh \
+ file://hwclock.sh \
file://default.script \
file://syslog.conf \
file://mount.busybox \
@@ -86,7 +85,7 @@ do_install () {
install -d ${D}${base_bindir}
mv ${D}/busybox${base_bindir}/busybox ${D}${base_bindir}/
# Move back the sh symlink
- mv ${D}/busybox${base_bindir}/sh ${D}${base_bindir}/
+ test -f ${D}/busybox${base_bindir}/sh && mv ${D}/busybox${base_bindir}/sh ${D}${base_bindir}/
install -m 0755 ${WORKDIR}/syslog ${D}${sysconfdir}/init.d/
install -m 644 ${WORKDIR}/syslog.conf ${D}${sysconfdir}/
diff --git a/packages/cdrtools/cdrtools-native_2.01.bb b/packages/cdrtools/cdrtools-native_2.01.bb
index 9deb45c971..9b82fca165 100644
--- a/packages/cdrtools/cdrtools-native_2.01.bb
+++ b/packages/cdrtools/cdrtools-native_2.01.bb
@@ -4,7 +4,7 @@
LICENSE="GPL"
DESCRIPTION="A set of tools for CD recording, including cdrecord"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
HOMEPAGE="http://cdrecord.berlios.de/old/private/cdrecord.html"
SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/cdrtools-${PV}.tar.bz2"
diff --git a/packages/cpuburn/cpuburn_1.4.bb b/packages/cpuburn/cpuburn_1.4.bb
index cd43004aa7..e2ef9a6c55 100644
--- a/packages/cpuburn/cpuburn_1.4.bb
+++ b/packages/cpuburn/cpuburn_1.4.bb
@@ -3,9 +3,9 @@
# Released under the MIT license (see packages/COPYING)
DESCRIPTION="CPU testing utilities in optimized assembler for maximum loading P6, K7, K6, P5 chips"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
HOMEPAGE="http://pages.sbcglobal.net/redelm/"
-LICENSE="GNU"
+LICENSE="GPL"
SRC_URI="http://pages.sbcglobal.net/redelm/${PN}_1_4_tar.gz \
file://gcc_CC.patch;patch=1"
diff --git a/packages/cramfs/cramfs-native_1.1.bb b/packages/cramfs/cramfs-native_1.1.bb
index 0f18e94be0..062a704ea5 100644
--- a/packages/cramfs/cramfs-native_1.1.bb
+++ b/packages/cramfs/cramfs-native_1.1.bb
@@ -1,6 +1,15 @@
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/cramfs"
+
+DESCRIPTION="Builds cramfs filesystems for embedded systems"
SECTION = "base"
-LICENSE = "GPL"
-SRC_URI = "${SOURCEFORGE_MIRROR}/cramfs/cramfs-1.1.tar.gz"
+LICENSE="GPL"
+
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/cramfs/cramfs-1.1.tar.gz \
+ file://makefile.patch;patch=1 \
+ file://cramfs-andersee.patch;patch=1"
+
DEPENDS = "zlib-native"
S = "${WORKDIR}/cramfs-${PV}"
@@ -8,11 +17,11 @@ S = "${WORKDIR}/cramfs-${PV}"
inherit native
do_compile() {
- oe_runmake
+ oe_runmake all
}
do_stage() {
- install mkcramfs ${STAGING_BINDIR}
- install cramfsck ${STAGING_BINDIR}
+ install -m 755 mkcramfs ${STAGING_BINDIR}
+ install -m 755 cramfsck ${STAGING_BINDIR}
}
diff --git a/packages/cramfs/cramfs/.mtn2git_empty b/packages/cramfs/cramfs/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/cramfs/cramfs/.mtn2git_empty
diff --git a/packages/cramfs/cramfs/cramfs-andersee.patch b/packages/cramfs/cramfs/cramfs-andersee.patch
new file mode 100644
index 0000000000..1f6f01556e
--- /dev/null
+++ b/packages/cramfs/cramfs/cramfs-andersee.patch
@@ -0,0 +1,1269 @@
+--- cramfs-1.1.orig/cramfsck.c 2002-02-22 17:00:42.000000000 -0700
++++ cramfs-1.1/cramfsck.c 2002-12-21 01:25:17.000000000 -0700
+@@ -51,10 +51,11 @@
+ #include <utime.h>
+ #include <sys/ioctl.h>
+ #define _LINUX_STRING_H_
+-#include <linux/fs.h>
+-#include <linux/cramfs_fs.h>
++#include "linux/cramfs_fs.h"
+ #include <zlib.h>
+
++#define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
++
+ /* Exit codes used by fsck-type programs */
+ #define FSCK_OK 0 /* No errors */
+ #define FSCK_NONDESTRUCT 1 /* File system errors corrected */
+@@ -75,7 +76,7 @@
+ static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
+ #ifdef INCLUDE_FS_TESTS
+ static int opt_extract = 0; /* extract cramfs (-x) */
+-static char *extract_dir = "root"; /* extraction directory (-x) */
++static char *extract_dir = "/"; /* extraction directory (-x) */
+ static uid_t euid; /* effective UID */
+
+ /* (cramfs_super + start) <= start_dir < end_dir <= start_data <= end_data */
+@@ -155,7 +156,7 @@
+ }
+
+ if (*length < sizeof(struct cramfs_super)) {
+- die(FSCK_UNCORRECTED, 0, "file length too short");
++ die(FSCK_UNCORRECTED, 0, "filesystem smaller than a cramfs superblock!");
+ }
+
+ /* find superblock */
+@@ -190,7 +191,8 @@
+ die(FSCK_UNCORRECTED, 0, "zero file count");
+ }
+ if (*length < super.size) {
+- die(FSCK_UNCORRECTED, 0, "file length too short");
++ die(FSCK_UNCORRECTED, 0, "file length too short, %lu is smaller than %lu",
++ *length, super.size);
+ }
+ else if (*length > super.size) {
+ fprintf(stderr, "warning: file extends past end of filesystem\n");
+@@ -267,11 +269,11 @@
+ #ifdef INCLUDE_FS_TESTS
+ static void print_node(char type, struct cramfs_inode *i, char *name)
+ {
+- char info[10];
++ char info[11];
+
+ if (S_ISCHR(i->mode) || (S_ISBLK(i->mode))) {
+ /* major/minor numbers can be as high as 2^12 or 4096 */
+- snprintf(info, 10, "%4d,%4d", major(i->size), minor(i->size));
++ snprintf(info, 11, "%4d,%4d", major(i->size), minor(i->size));
+ }
+ else {
+ /* size be as high as 2^24 or 16777216 */
+@@ -445,8 +447,10 @@
+ }
+ /* TODO: Do we need to check end_dir for empty case? */
+ memcpy(newpath, path, pathlen);
+- newpath[pathlen] = '/';
+- pathlen++;
++ if (pathlen > 1) {
++ newpath[pathlen] = '/';
++ pathlen++;
++ }
+ if (opt_verbose) {
+ print_node('d', i, path);
+ }
+--- cramfs-1.1.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700
++++ cramfs-1.1/device_table.txt 2003-01-01 05:13:44.000000000 -0700
+@@ -0,0 +1,129 @@
++# When building a target filesystem, it is desirable to not have to
++# become root and then run 'mknod' a thousand times. Using a device
++# table you can create device nodes and directories "on the fly".
++#
++# This is a sample device table file for use with mkcramfs. You can
++# do all sorts of interesting things with a device table file. For
++# example, if you want to adjust the permissions on a particular file
++# you can just add an entry like:
++# /sbin/foobar f 2755 0 0 - - - - -
++# and (assuming the file /sbin/foobar exists) it will be made setuid
++# root (regardless of what its permissions are on the host filesystem.
++# Furthermore, you can use a single table entry to create a many device
++# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
++# I could just use the following two table entries:
++# /dev/hda b 640 0 0 3 0 0 0 -
++# /dev/hda b 640 0 0 3 1 1 1 15
++#
++# Device table entries take the form of:
++# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++# where name is the file name, type can be one of:
++# f A regular file
++# d Directory
++# c Character special device file
++# b Block special device file
++# p Fifo (named pipe)
++# uid is the user id for the target file, gid is the group id for the
++# target file. The rest of the entries (major, minor, etc) apply only
++# to device special files.
++
++# Have fun
++# -Erik Andersen <andersen@codepoet.org>
++#
++
++#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++/dev d 755 0 0 - - - - -
++/dev/mem c 640 0 0 1 1 0 0 -
++/dev/kmem c 640 0 0 1 2 0 0 -
++/dev/null c 640 0 0 1 3 0 0 -
++/dev/zero c 640 0 0 1 5 0 0 -
++/dev/random c 640 0 0 1 8 0 0 -
++/dev/urandom c 640 0 0 1 9 0 0 -
++/dev/tty c 666 0 0 5 0 0 0 -
++/dev/tty c 666 0 0 4 0 0 1 6
++/dev/console c 640 0 0 5 1 0 0 -
++/dev/ram b 640 0 0 1 1 0 0 -
++/dev/ram b 640 0 0 1 0 0 1 4
++/dev/loop b 640 0 0 7 0 0 1 2
++/dev/ptmx c 666 0 0 5 2 0 0 -
++#/dev/ttyS c 640 0 0 4 64 0 1 4
++#/dev/psaux c 640 0 0 10 1 0 0 -
++#/dev/rtc c 640 0 0 10 135 0 0 -
++
++# Adjust permissions on some normal files
++#/etc/shadow f 600 0 0 - - - - -
++#/bin/tinylogin f 4755 0 0 - - - - -
++
++# User-mode Linux stuff
++/dev/ubda b 640 0 0 98 0 0 0 -
++/dev/ubda b 640 0 0 98 1 1 1 15
++
++# IDE Devices
++/dev/hda b 640 0 0 3 0 0 0 -
++/dev/hda b 640 0 0 3 1 1 1 15
++/dev/hdb b 640 0 0 3 64 0 0 -
++/dev/hdb b 640 0 0 3 65 1 1 15
++#/dev/hdc b 640 0 0 22 0 0 0 -
++#/dev/hdc b 640 0 0 22 1 1 1 15
++#/dev/hdd b 640 0 0 22 64 0 0 -
++#/dev/hdd b 640 0 0 22 65 1 1 15
++#/dev/hde b 640 0 0 33 0 0 0 -
++#/dev/hde b 640 0 0 33 1 1 1 15
++#/dev/hdf b 640 0 0 33 64 0 0 -
++#/dev/hdf b 640 0 0 33 65 1 1 15
++#/dev/hdg b 640 0 0 34 0 0 0 -
++#/dev/hdg b 640 0 0 34 1 1 1 15
++#/dev/hdh b 640 0 0 34 64 0 0 -
++#/dev/hdh b 640 0 0 34 65 1 1 15
++
++# SCSI Devices
++#/dev/sda b 640 0 0 8 0 0 0 -
++#/dev/sda b 640 0 0 8 1 1 1 15
++#/dev/sdb b 640 0 0 8 16 0 0 -
++#/dev/sdb b 640 0 0 8 17 1 1 15
++#/dev/sdc b 640 0 0 8 32 0 0 -
++#/dev/sdc b 640 0 0 8 33 1 1 15
++#/dev/sdd b 640 0 0 8 48 0 0 -
++#/dev/sdd b 640 0 0 8 49 1 1 15
++#/dev/sde b 640 0 0 8 64 0 0 -
++#/dev/sde b 640 0 0 8 65 1 1 15
++#/dev/sdf b 640 0 0 8 80 0 0 -
++#/dev/sdf b 640 0 0 8 81 1 1 15
++#/dev/sdg b 640 0 0 8 96 0 0 -
++#/dev/sdg b 640 0 0 8 97 1 1 15
++#/dev/sdh b 640 0 0 8 112 0 0 -
++#/dev/sdh b 640 0 0 8 113 1 1 15
++#/dev/sg c 640 0 0 21 0 0 1 15
++#/dev/scd b 640 0 0 11 0 0 1 15
++#/dev/st c 640 0 0 9 0 0 1 8
++#/dev/nst c 640 0 0 9 128 0 1 8
++#/dev/st c 640 0 0 9 32 1 1 4
++#/dev/st c 640 0 0 9 64 1 1 4
++#/dev/st c 640 0 0 9 96 1 1 4
++
++# Floppy disk devices
++#/dev/fd b 640 0 0 2 0 0 1 2
++#/dev/fd0d360 b 640 0 0 2 4 0 0 -
++#/dev/fd1d360 b 640 0 0 2 5 0 0 -
++#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
++#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
++#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
++#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
++#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
++#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
++
++# All the proprietary cdrom devices in the world
++#/dev/aztcd b 640 0 0 29 0 0 0 -
++#/dev/bpcd b 640 0 0 41 0 0 0 -
++#/dev/capi20 c 640 0 0 68 0 0 1 2
++#/dev/cdu31a b 640 0 0 15 0 0 0 -
++#/dev/cdu535 b 640 0 0 24 0 0 0 -
++#/dev/cm206cd b 640 0 0 32 0 0 0 -
++#/dev/sjcd b 640 0 0 18 0 0 0 -
++#/dev/sonycd b 640 0 0 15 0 0 0 -
++#/dev/gscd b 640 0 0 16 0 0 0 -
++#/dev/sbpcd b 640 0 0 25 0 0 0 -
++#/dev/sbpcd b 640 0 0 25 0 0 1 4
++#/dev/mcd b 640 0 0 23 0 0 0 -
++#/dev/optcd b 640 0 0 17 0 0 0 -
++
+--- cramfs-1.1.orig/mkcramfs.c 2002-02-20 01:03:32.000000000 -0700
++++ cramfs-1.1/mkcramfs.c 2002-12-21 01:25:17.000000000 -0700
+@@ -1,3 +1,4 @@
++/* vi: set sw=8 ts=8: */
+ /*
+ * mkcramfs - make a cramfs file system
+ *
+@@ -16,12 +17,21 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Added device table support (code taken from mkfs.jffs2.c, credit to
++ * Erik Andersen <andersen@codepoet.org>) as well as an option to squash
++ * permissions. - Russ Dill <Russ.Dill@asu.edu> September 2002
++ *
++ * Reworked, cleaned up, and updated for cramfs-1.1, December 2002
++ * - Erik Andersen <andersen@codepoet.org>
++ *
+ */
+
+ /*
+ * If you change the disk format of cramfs, please update fs/cramfs/README.
+ */
+
++#define _GNU_SOURCE
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <sys/stat.h>
+@@ -33,8 +43,15 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <stdarg.h>
++#include <libgen.h>
++#include <ctype.h>
++#include <assert.h>
++#include <getopt.h>
+ #include <linux/cramfs_fs.h>
+ #include <zlib.h>
++#ifdef DMALLOC
++#include <dmalloc.h>
++#endif
+
+ /* Exit codes used by mkfs-type programs */
+ #define MKFS_OK 0 /* No errors */
+@@ -71,11 +88,17 @@
+ + (1 << CRAMFS_SIZE_WIDTH) - 1 /* filesize */ \
+ + (1 << CRAMFS_SIZE_WIDTH) * 4 / PAGE_CACHE_SIZE /* block pointers */ )
+
++
++/* The kernel assumes PAGE_CACHE_SIZE as block size. */
++#define PAGE_CACHE_SIZE (4096)
++
++
+ static const char *progname = "mkcramfs";
+ static unsigned int blksize = PAGE_CACHE_SIZE;
+ static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */
+ static int image_length = 0;
+
++
+ /*
+ * If opt_holes is set, then mkcramfs can create explicit holes in the
+ * data, which saves 26 bytes per hole (which is a lot smaller a
+@@ -91,10 +114,12 @@
+ static int opt_holes = 0;
+ static int opt_pad = 0;
+ static int opt_verbose = 0;
++static int opt_squash = 0;
+ static char *opt_image = NULL;
+ static char *opt_name = NULL;
+
+ static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
++static const char *const memory_exhausted = "memory exhausted";
+
+ /* In-core version of inode / directory entry. */
+ struct entry {
+@@ -123,7 +148,7 @@
+ {
+ FILE *stream = status ? stderr : stdout;
+
+- fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] dirname outfile\n"
++ fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] [-D file] dirname outfile\n"
+ " -h print this help\n"
+ " -E make all warnings errors (non-zero exit status)\n"
+ " -e edition set edition number (part of fsid)\n"
+@@ -133,39 +158,157 @@
+ " -s sort directory entries (old option, ignored)\n"
+ " -v be more verbose\n"
+ " -z make explicit holes (requires >= 2.3.39)\n"
+- " dirname root of the directory tree to be compressed\n"
++ " -D Use the named FILE as a device table file\n"
++ " -q squash permissions (make everything owned by root)\n"
++ " dirname root of the filesystem to be compressed\n"
+ " outfile output file\n", progname, PAD_SIZE);
+
+ exit(status);
+ }
+
+-static void die(int status, int syserr, const char *fmt, ...)
++static void verror_msg(const char *s, va_list p)
++{
++ fflush(stdout);
++ fprintf(stderr, "mkcramfs: ");
++ vfprintf(stderr, s, p);
++}
++
++static void vperror_msg(const char *s, va_list p)
++{
++ int err = errno;
++
++ if (s == 0)
++ s = "";
++ verror_msg(s, p);
++ if (*s)
++ s = ": ";
++ fprintf(stderr, "%s%s\n", s, strerror(err));
++}
++
++static void perror_msg(const char *s, ...)
++{
++ va_list p;
++
++ va_start(p, s);
++ vperror_msg(s, p);
++ va_end(p);
++}
++
++static void error_msg_and_die(const char *s, ...)
++{
++ va_list p;
++
++ va_start(p, s);
++ verror_msg(s, p);
++ va_end(p);
++ putc('\n', stderr);
++ exit(MKFS_ERROR);
++}
++
++static void perror_msg_and_die(const char *s, ...)
++{
++ va_list p;
++
++ va_start(p, s);
++ vperror_msg(s, p);
++ va_end(p);
++ exit(MKFS_ERROR);
++}
++#ifndef DMALLOC
++extern char *xstrdup(const char *s)
++{
++ char *t;
++
++ if (s == NULL)
++ return NULL;
++ t = strdup(s);
++ if (t == NULL)
++ error_msg_and_die(memory_exhausted);
++ return t;
++}
++
++extern void *xmalloc(size_t size)
++{
++ void *ptr = malloc(size);
++
++ if (ptr == NULL && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++
++extern void *xcalloc(size_t nmemb, size_t size)
++{
++ void *ptr = calloc(nmemb, size);
++
++ if (ptr == NULL && nmemb != 0 && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++
++extern void *xrealloc(void *ptr, size_t size)
++{
++ ptr = realloc(ptr, size);
++ if (ptr == NULL && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++#endif
++
++static FILE *xfopen(const char *path, const char *mode)
+ {
+- va_list arg_ptr;
+- int save = errno;
++ FILE *fp;
++
++ if ((fp = fopen(path, mode)) == NULL)
++ perror_msg_and_die("%s", path);
++ return fp;
++}
+
+- fflush(0);
+- va_start(arg_ptr, fmt);
+- fprintf(stderr, "%s: ", progname);
+- vfprintf(stderr, fmt, arg_ptr);
+- if (syserr) {
+- fprintf(stderr, ": %s", strerror(save));
++extern int xopen(const char *pathname, int flags, mode_t mode)
++{
++ int ret;
++
++ if (flags & O_CREAT)
++ ret = open(pathname, flags, mode);
++ else
++ ret = open(pathname, flags);
++ if (ret == -1) {
++ perror_msg_and_die("%s", pathname);
+ }
+- fprintf(stderr, "\n");
+- va_end(arg_ptr);
+- exit(status);
++ return ret;
+ }
+
++extern char *xreadlink(const char *path)
++{
++ static const int GROWBY = 80; /* how large we will grow strings by */
++
++ char *buf = NULL;
++ int bufsize = 0, readsize = 0;
++
++ do {
++ buf = xrealloc(buf, bufsize += GROWBY);
++ readsize = readlink(path, buf, bufsize); /* 1st try */
++ if (readsize == -1) {
++ perror_msg("%s:%s", progname, path);
++ return NULL;
++ }
++ }
++ while (bufsize < readsize + 1);
++
++ buf[readsize] = '\0';
++
++ return buf;
++}
++
+ static void map_entry(struct entry *entry)
+ {
+ if (entry->path) {
+ entry->fd = open(entry->path, O_RDONLY);
+ if (entry->fd < 0) {
+- die(MKFS_ERROR, 1, "open failed: %s", entry->path);
++ error_msg_and_die("open failed: %s", entry->path);
+ }
+ entry->uncompressed = mmap(NULL, entry->size, PROT_READ, MAP_PRIVATE, entry->fd, 0);
+ if (entry->uncompressed == MAP_FAILED) {
+- die(MKFS_ERROR, 1, "mmap failed: %s", entry->path);
++ error_msg_and_die("mmap failed: %s", entry->path);
+ }
+ }
+ }
+@@ -174,8 +317,9 @@
+ {
+ if (entry->path) {
+ if (munmap(entry->uncompressed, entry->size) < 0) {
+- die(MKFS_ERROR, 1, "munmap failed: %s", entry->path);
++ error_msg_and_die("munmap failed: %s", entry->path);
+ }
++ entry->uncompressed=NULL;
+ close(entry->fd);
+ }
+ }
+@@ -204,7 +348,8 @@
+ find_identical_file(orig->next, newfile));
+ }
+
+-static void eliminate_doubles(struct entry *root, struct entry *orig) {
++static void eliminate_doubles(struct entry *root, struct entry *orig)
++{
+ if (orig) {
+ if (orig->size && (orig->path || orig->uncompressed))
+ find_identical_file(root, orig);
+@@ -232,10 +377,7 @@
+
+ /* Set up the path. */
+ /* TODO: Reuse the parent's buffer to save memcpy'ing and duplication. */
+- path = malloc(len + 1 + MAX_INPUT_NAMELEN + 1);
+- if (!path) {
+- die(MKFS_ERROR, 1, "malloc failed");
+- }
++ path = xmalloc(len + 1 + MAX_INPUT_NAMELEN + 1);
+ memcpy(path, name, len);
+ endpath = path + len;
+ *endpath = '/';
+@@ -245,7 +387,7 @@
+ dircount = scandir(name, &dirlist, 0, cramsort);
+
+ if (dircount < 0) {
+- die(MKFS_ERROR, 1, "scandir failed: %s", name);
++ error_msg_and_die("scandir failed: %s", name);
+ }
+
+ /* process directory */
+@@ -269,25 +411,20 @@
+ }
+ namelen = strlen(dirent->d_name);
+ if (namelen > MAX_INPUT_NAMELEN) {
+- die(MKFS_ERROR, 0,
+- "very long (%u bytes) filename found: %s\n"
+- "please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile",
++ error_msg_and_die(
++ "Very long (%u bytes) filename `%s' found.\n"
++ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
+ namelen, dirent->d_name);
+ }
+ memcpy(endpath, dirent->d_name, namelen + 1);
+
+ if (lstat(path, &st) < 0) {
++ perror(endpath);
+ warn_skip = 1;
+ continue;
+ }
+- entry = calloc(1, sizeof(struct entry));
+- if (!entry) {
+- die(MKFS_ERROR, 1, "calloc failed");
+- }
+- entry->name = strdup(dirent->d_name);
+- if (!entry->name) {
+- die(MKFS_ERROR, 1, "strdup failed");
+- }
++ entry = xcalloc(1, sizeof(struct entry));
++ entry->name = xstrdup(dirent->d_name);
+ /* truncate multi-byte UTF-8 filenames on character boundary */
+ if (namelen > CRAMFS_MAXPATHLEN) {
+ namelen = CRAMFS_MAXPATHLEN;
+@@ -297,24 +434,25 @@
+ namelen--;
+ /* are we reasonably certain it was UTF-8 ? */
+ if (entry->name[namelen] < 0x80 || !namelen) {
+- die(MKFS_ERROR, 0, "cannot truncate filenames not encoded in UTF-8");
++ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
+ }
+ }
+ entry->name[namelen] = '\0';
+ }
+ entry->mode = st.st_mode;
+ entry->size = st.st_size;
+- entry->uid = st.st_uid;
++ entry->uid = opt_squash ? 0 : st.st_uid;
+ if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
+ warn_uid = 1;
+- entry->gid = st.st_gid;
+- if (entry->gid >= 1 << CRAMFS_GID_WIDTH)
++ entry->gid = opt_squash ? 0 : st.st_gid;
++ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
+ /* TODO: We ought to replace with a default
+ gid instead of truncating; otherwise there
+ are security problems. Maybe mode should
+ be &= ~070. Same goes for uid once Linux
+ supports >16-bit uids. */
+ warn_gid = 1;
++ }
+ size = sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
+ *fslen_ub += size;
+ if (S_ISDIR(st.st_mode)) {
+@@ -325,21 +463,15 @@
+ warn_skip = 1;
+ continue;
+ }
+- entry->path = strdup(path);
+- if (!entry->path) {
+- die(MKFS_ERROR, 1, "strdup failed");
+- }
++ entry->path = xstrdup(path);
+ if ((entry->size >= 1 << CRAMFS_SIZE_WIDTH)) {
+ warn_size = 1;
+ entry->size = (1 << CRAMFS_SIZE_WIDTH) - 1;
+ }
+ }
+ } else if (S_ISLNK(st.st_mode)) {
+- entry->uncompressed = malloc(entry->size);
++ entry->uncompressed = xreadlink(path);
+ if (!entry->uncompressed) {
+- die(MKFS_ERROR, 1, "malloc failed");
+- }
+- if (readlink(path, entry->uncompressed, entry->size) < 0) {
+ warn_skip = 1;
+ continue;
+ }
+@@ -351,7 +483,7 @@
+ if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
+ warn_dev = 1;
+ } else {
+- die(MKFS_ERROR, 0, "bogus file type: %s", entry->name);
++ error_msg_and_die("bogus file type: %s", entry->name);
+ }
+
+ if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) {
+@@ -378,7 +510,9 @@
+ struct cramfs_super *super = (struct cramfs_super *) base;
+ unsigned int offset = sizeof(struct cramfs_super) + image_length;
+
+- offset += opt_pad; /* 0 if no padding */
++ if (opt_pad) {
++ offset += opt_pad; /* 0 if no padding */
++ }
+
+ super->magic = CRAMFS_MAGIC;
+ super->flags = CRAMFS_FLAG_FSID_VERSION_2 | CRAMFS_FLAG_SORTED_DIRS;
+@@ -414,10 +548,10 @@
+ struct cramfs_inode *inode = (struct cramfs_inode *) (base + entry->dir_offset);
+
+ if ((offset & 3) != 0) {
+- die(MKFS_ERROR, 0, "illegal offset of %lu bytes", offset);
++ error_msg_and_die("illegal offset of %lu bytes", offset);
+ }
+ if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
+- die(MKFS_ERROR, 0, "filesystem too big");
++ error_msg_and_die("filesystem too big");
+ }
+ inode->offset = (offset >> 2);
+ }
+@@ -429,7 +563,7 @@
+ */
+ static void print_node(struct entry *e)
+ {
+- char info[10];
++ char info[12];
+ char type = '?';
+
+ if (S_ISREG(e->mode)) type = 'f';
+@@ -442,11 +576,11 @@
+
+ if (S_ISCHR(e->mode) || (S_ISBLK(e->mode))) {
+ /* major/minor numbers can be as high as 2^12 or 4096 */
+- snprintf(info, 10, "%4d,%4d", major(e->size), minor(e->size));
++ snprintf(info, 11, "%4d,%4d", major(e->size), minor(e->size));
+ }
+ else {
+ /* size be as high as 2^24 or 16777216 */
+- snprintf(info, 10, "%9d", e->size);
++ snprintf(info, 11, "%9d", e->size);
+ }
+
+ printf("%c %04o %s %5d:%-3d %s\n",
+@@ -462,17 +596,9 @@
+ {
+ int stack_entries = 0;
+ int stack_size = 64;
+- struct entry **entry_stack;
+-
+- entry_stack = malloc(stack_size * sizeof(struct entry *));
+- if (!entry_stack) {
+- die(MKFS_ERROR, 1, "malloc failed");
+- }
+-
+- if (opt_verbose) {
+- printf("root:\n");
+- }
++ struct entry **entry_stack = NULL;
+
++ entry_stack = xmalloc(stack_size * sizeof(struct entry *));
+ for (;;) {
+ int dir_start = stack_entries;
+ while (entry) {
+@@ -506,10 +632,7 @@
+ if (entry->child) {
+ if (stack_entries >= stack_size) {
+ stack_size *= 2;
+- entry_stack = realloc(entry_stack, stack_size * sizeof(struct entry *));
+- if (!entry_stack) {
+- die(MKFS_ERROR, 1, "realloc failed");
+- }
++ entry_stack = xrealloc(entry_stack, stack_size * sizeof(struct entry *));
+ }
+ entry_stack[stack_entries] = entry;
+ stack_entries++;
+@@ -543,7 +666,7 @@
+
+ set_data_offset(entry, base, offset);
+ if (opt_verbose) {
+- printf("%s:\n", entry->name);
++ printf("'%s':\n", entry->name);
+ }
+ entry = entry->child;
+ }
+@@ -553,16 +676,21 @@
+
+ static int is_zero(char const *begin, unsigned len)
+ {
+- /* Returns non-zero iff the first LEN bytes from BEGIN are all NULs. */
+- return (len-- == 0 ||
+- (begin[0] == '\0' &&
+- (len-- == 0 ||
+- (begin[1] == '\0' &&
+- (len-- == 0 ||
+- (begin[2] == '\0' &&
+- (len-- == 0 ||
+- (begin[3] == '\0' &&
+- memcmp(begin, begin + 4, len) == 0))))))));
++ if (opt_holes)
++ /* Returns non-zero iff the first LEN bytes from BEGIN are
++ all NULs. */
++ return (len-- == 0 ||
++ (begin[0] == '\0' &&
++ (len-- == 0 ||
++ (begin[1] == '\0' &&
++ (len-- == 0 ||
++ (begin[2] == '\0' &&
++ (len-- == 0 ||
++ (begin[3] == '\0' &&
++ memcmp(begin, begin + 4, len) == 0))))))));
++ else
++ /* Never create holes. */
++ return 0;
+ }
+
+ /*
+@@ -575,37 +703,34 @@
+ * Note that size > 0, as a zero-sized file wouldn't ever
+ * have gotten here in the first place.
+ */
+-static unsigned int do_compress(char *base, unsigned int offset, char const *name, char *uncompressed, unsigned int size)
++static unsigned int do_compress(char *base, unsigned int offset, struct entry *entry)
+ {
++ unsigned int size = entry->size;
+ unsigned long original_size = size;
+ unsigned long original_offset = offset;
+ unsigned long new_size;
+ unsigned long blocks = (size - 1) / blksize + 1;
+ unsigned long curr = offset + 4 * blocks;
+ int change;
++ char *uncompressed = entry->uncompressed;
+
+- total_blocks += blocks;
++ total_blocks += blocks;
+
+ do {
+ unsigned long len = 2 * blksize;
+ unsigned int input = size;
+- int err;
+-
+ if (input > blksize)
+ input = blksize;
+ size -= input;
+- if (!(opt_holes && is_zero (uncompressed, input))) {
+- err = compress2(base + curr, &len, uncompressed, input, Z_BEST_COMPRESSION);
+- if (err != Z_OK) {
+- die(MKFS_ERROR, 0, "compression error: %s", zError(err));
+- }
++ if (!is_zero (uncompressed, input)) {
++ compress(base + curr, &len, uncompressed, input);
+ curr += len;
+ }
+ uncompressed += input;
+
+ if (len > blksize*2) {
+ /* (I don't think this can happen with zlib.) */
+- die(MKFS_ERROR, 0, "AIEEE: block \"compressed\" to > 2*blocklength (%ld)", len);
++ error_msg_and_die("AIEEE: block \"compressed\" to > 2*blocklength (%ld)\n", len);
+ }
+
+ *(u32 *) (base + offset) = curr;
+@@ -618,10 +743,12 @@
+ st_blocks * 512. But if you say that then perhaps
+ administrative data should also be included in both. */
+ change = new_size - original_size;
+- if (opt_verbose > 1) {
+- printf("%6.2f%% (%+d bytes)\t%s\n",
+- (change * 100) / (double) original_size, change, name);
++#if 0
++ if (opt_verbose) {
++ printf("%6.2f%% (%+d bytes)\t%s\n",
++ (change * 100) / (double) original_size, change, entry->name);
+ }
++#endif
+
+ return curr;
+ }
+@@ -644,7 +771,7 @@
+ set_data_offset(entry, base, offset);
+ entry->offset = offset;
+ map_entry(entry);
+- offset = do_compress(base, offset, entry->name, entry->uncompressed, entry->size);
++ offset = do_compress(base, offset, entry);
+ unmap_entry(entry);
+ }
+ }
+@@ -660,13 +787,10 @@
+ int fd;
+ char *buf;
+
+- fd = open(file, O_RDONLY);
+- if (fd < 0) {
+- die(MKFS_ERROR, 1, "open failed: %s", file);
+- }
++ fd = xopen(file, O_RDONLY, 0);
+ buf = mmap(NULL, image_length, PROT_READ, MAP_PRIVATE, fd, 0);
+ if (buf == MAP_FAILED) {
+- die(MKFS_ERROR, 1, "mmap failed");
++ error_msg_and_die("mmap failed");
+ }
+ memcpy(base + offset, buf, image_length);
+ munmap(buf, image_length);
+@@ -679,6 +803,328 @@
+ return (offset + image_length);
+ }
+
++static struct entry *find_filesystem_entry(struct entry *dir, char *name, mode_t type)
++{
++ struct entry *e = dir;
++
++ if (S_ISDIR(dir->mode)) {
++ e = dir->child;
++ }
++ while (e) {
++ /* Only bother to do the expensive strcmp on matching file types */
++ if (type == (e->mode & S_IFMT) && e->name) {
++ if (S_ISDIR(e->mode)) {
++ int len = strlen(e->name);
++
++ /* Check if we are a parent of the correct path */
++ if (strncmp(e->name, name, len) == 0) {
++ /* Is this an _exact_ match? */
++ if (strcmp(name, e->name) == 0) {
++ return (e);
++ }
++ /* Looks like we found a parent of the correct path */
++ if (name[len] == '/') {
++ if (e->child) {
++ return (find_filesystem_entry (e, name, type));
++ } else {
++ return NULL;
++ }
++ }
++ }
++ } else {
++ if (strcmp(name, e->name) == 0) {
++ return (e);
++ }
++ }
++ }
++ e = e->next;
++ }
++ return (NULL);
++}
++
++void modify_entry(char *full_path, unsigned long uid, unsigned long gid,
++ unsigned long mode, unsigned long rdev, struct entry *root, loff_t *fslen_ub)
++{
++ char *name, *path, *full;
++ struct entry *curr, *parent, *entry, *prev;
++
++ full = xstrdup(full_path);
++ path = xstrdup(dirname(full));
++ name = full_path + strlen(path) + 1;
++ free(full);
++ if (strcmp(path, "/") == 0) {
++ parent = root;
++ name = full_path + 1;
++ } else {
++ if (!(parent = find_filesystem_entry(root, path+1, S_IFDIR)))
++ error_msg_and_die("%s/%s: could not find parent\n", path, name);
++ }
++ if ((entry = find_filesystem_entry(parent, name, (mode & S_IFMT)))) {
++ /* its there, just modify permissions */
++ entry->mode = mode;
++ entry->uid = uid;
++ entry->gid = gid;
++ } else { /* make a new entry */
++
++ /* code partially replicated from parse_directory() */
++ size_t namelen;
++ if (S_ISREG(mode)) {
++ error_msg_and_die("%s: regular file from device_table file must exist on disk!", full_path);
++ }
++
++ namelen = strlen(name);
++ if (namelen > MAX_INPUT_NAMELEN) {
++ error_msg_and_die(
++ "Very long (%u bytes) filename `%s' found.\n"
++ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
++ namelen, name);
++ }
++ entry = xcalloc(1, sizeof(struct entry));
++ entry->name = xstrdup(name);
++ /* truncate multi-byte UTF-8 filenames on character boundary */
++ if (namelen > CRAMFS_MAXPATHLEN) {
++ namelen = CRAMFS_MAXPATHLEN;
++ warn_namelen = 1;
++ /* the first lost byte must not be a trail byte */
++ while ((entry->name[namelen] & 0xc0) == 0x80) {
++ namelen--;
++ /* are we reasonably certain it was UTF-8 ? */
++ if (entry->name[namelen] < 0x80 || !namelen) {
++ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
++ }
++ }
++ entry->name[namelen] = '\0';
++ }
++ entry->mode = mode;
++ entry->uid = uid;
++ entry->gid = gid;
++ entry->size = 0;
++ if (S_ISBLK(mode) || S_ISCHR(mode)) {
++ entry->size = rdev;
++ if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
++ warn_dev = 1;
++ }
++
++ /* ok, now we have to backup and correct the size of all the entries above us */
++ *fslen_ub += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
++ parent->size += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
++
++ /* alright, time to link us in */
++ curr = parent->child;
++ prev = NULL;
++ while (curr && strcmp(name, curr->name) > 0) {
++ prev = curr;
++ curr = curr->next;
++ }
++ if (!prev) parent->child = entry;
++ else prev->next = entry;
++ entry->next = curr;
++ entry->child = NULL;
++ }
++ if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
++ warn_uid = 1;
++ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
++ /* TODO: We ought to replace with a default
++ gid instead of truncating; otherwise there
++ are security problems. Maybe mode should
++ be &= ~070. Same goes for uid once Linux
++ supports >16-bit uids. */
++ warn_gid = 1;
++ }
++ free(path);
++}
++
++/* the GNU C library has a wonderful scanf("%as", string) which will
++ allocate the string with the right size, good to avoid buffer overruns.
++ the following macros use it if available or use a hacky workaround...
++ */
++
++#ifdef __GNUC__
++#define SCANF_PREFIX "a"
++#define SCANF_STRING(s) (&s)
++#define GETCWD_SIZE 0
++#else
++#define SCANF_PREFIX "511"
++#define SCANF_STRING(s) (s = xmalloc(512))
++#define GETCWD_SIZE -1
++inline int snprintf(char *str, size_t n, const char *fmt, ...)
++{
++ int ret;
++ va_list ap;
++
++ va_start(ap, fmt);
++ ret = vsprintf(str, fmt, ap);
++ va_end(ap);
++ return ret;
++}
++#endif
++
++/* device table entries take the form of:
++ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++ /dev/mem c 640 0 0 1 1 0 0 -
++
++ type can be one of:
++ f A regular file
++ d Directory
++ c Character special device file
++ b Block special device file
++ p Fifo (named pipe)
++
++ I don't bother with symlinks (permissions are irrelevant), hard
++ links (special cases of regular files), or sockets (why bother).
++
++ Regular files must exist in the target root directory. If a char,
++ block, fifo, or directory does not exist, it will be created.
++*/
++
++static int interpret_table_entry(char *line, struct entry *root, loff_t *fslen_ub)
++{
++ char type, *name = NULL;
++ unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
++ unsigned long start = 0, increment = 1, count = 0;
++
++ if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
++ SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
++ &start, &increment, &count) < 0)
++ {
++ return 1;
++ }
++
++ if (!strcmp(name, "/")) {
++ error_msg_and_die("Device table entries require absolute paths");
++ }
++
++ switch (type) {
++ case 'd':
++ mode |= S_IFDIR;
++ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
++ break;
++ case 'f':
++ mode |= S_IFREG;
++ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
++ break;
++ case 'p':
++ mode |= S_IFIFO;
++ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
++ break;
++ case 'c':
++ case 'b':
++ mode |= (type == 'c') ? S_IFCHR : S_IFBLK;
++ if (count > 0) {
++ char *buf;
++ unsigned long i;
++ dev_t rdev;
++
++ for (i = start; i < count; i++) {
++ asprintf(&buf, "%s%lu", name, i);
++ rdev = makedev(major, minor + (i * increment - start));
++ modify_entry(buf, uid, gid, mode, rdev, root, fslen_ub);
++ free(buf);
++ }
++ } else {
++ dev_t rdev = makedev(major, minor);
++ modify_entry(name, uid, gid, mode, rdev, root, fslen_ub);
++ }
++ break;
++ default:
++ error_msg_and_die("Unsupported file type");
++ }
++ free(name);
++ return 0;
++}
++
++static int parse_device_table(FILE *file, struct entry *root, loff_t *fslen_ub)
++{
++ char *line;
++ int status = 0;
++ size_t length = 0;
++
++ /* Turn off squash, since we must ensure that values
++ * entered via the device table are not squashed */
++ opt_squash = 0;
++
++ /* Looks ok so far. The general plan now is to read in one
++ * line at a time, check for leading comment delimiters ('#'),
++ * then try and parse the line as a device table. If we fail
++ * to parse things, try and help the poor fool to fix their
++ * device table with a useful error msg... */
++ line = NULL;
++ while (getline(&line, &length, file) != -1) {
++ /* First trim off any whitespace */
++ int len = strlen(line);
++
++ /* trim trailing whitespace */
++ while (len > 0 && isspace(line[len - 1]))
++ line[--len] = '\0';
++ /* trim leading whitespace */
++ memmove(line, &line[strspn(line, " \n\r\t\v")], len);
++
++ /* How long are we after trimming? */
++ len = strlen(line);
++
++ /* If this is NOT a comment line, try to interpret it */
++ if (len && *line != '#') {
++ if (interpret_table_entry(line, root, fslen_ub))
++ status = 1;
++ }
++
++ free(line);
++ line = NULL;
++ }
++ free(line);
++ fclose(file);
++
++ return status;
++}
++
++void traverse(struct entry *entry, int depth)
++{
++ struct entry *curr = entry;
++ int i;
++
++ while (curr) {
++ for (i = 0; i < depth; i++) putchar(' ');
++ printf("%s: size=%d mode=%d same=%p\n",
++ (curr->name)? (char*)curr->name : "/",
++ curr->size, curr->mode, curr->same);
++ if (curr->child) traverse(curr->child, depth + 4);
++ curr = curr->next;
++ }
++}
++
++static void free_filesystem_entry(struct entry *dir)
++{
++ struct entry *e = dir, *last;
++
++ if (S_ISDIR(dir->mode)) {
++ e = dir->child;
++ }
++ while (e) {
++ if (e->name)
++ free(e->name);
++ if (e->path)
++ free(e->path);
++ if (e->uncompressed)
++ free(e->uncompressed);
++ last = e;
++ if (e->child) {
++ free_filesystem_entry(e);
++ }
++ e = e->next;
++ free(last);
++ }
++}
++
++
++/*
++ * Usage:
++ *
++ * mkcramfs directory-name outfile
++ *
++ * where "directory-name" is simply the root of the directory
++ * tree that we want to generate a compressed filesystem out
++ * of.
++ */
+ int main(int argc, char **argv)
+ {
+ struct stat st; /* used twice... */
+@@ -692,6 +1138,7 @@
+ u32 crc;
+ int c; /* for getopt */
+ char *ep; /* for strtoul */
++ FILE *devtable = NULL;
+
+ total_blocks = 0;
+
+@@ -699,7 +1146,7 @@
+ progname = argv[0];
+
+ /* command line options */
+- while ((c = getopt(argc, argv, "hEe:i:n:psvz")) != EOF) {
++ while ((c = getopt(argc, argv, "hEe:i:n:psvzD:q")) != EOF) {
+ switch (c) {
+ case 'h':
+ usage(MKFS_OK);
+@@ -715,7 +1162,7 @@
+ case 'i':
+ opt_image = optarg;
+ if (lstat(opt_image, &st) < 0) {
+- die(MKFS_ERROR, 1, "lstat failed: %s", opt_image);
++ error_msg_and_die("lstat failed: %s", opt_image);
+ }
+ image_length = st.st_size; /* may be padded later */
+ fslen_ub += (image_length + 3); /* 3 is for padding */
+@@ -736,6 +1183,16 @@
+ case 'z':
+ opt_holes = 1;
+ break;
++ case 'q':
++ opt_squash = 1;
++ break;
++ case 'D':
++ devtable = xfopen(optarg, "r");
++ if (fstat(fileno(devtable), &st) < 0)
++ perror_msg_and_die(optarg);
++ if (st.st_size < 10)
++ error_msg_and_die("%s: not a proper device table file\n", optarg);
++ break;
+ }
+ }
+
+@@ -745,25 +1202,23 @@
+ outfile = argv[optind + 1];
+
+ if (stat(dirname, &st) < 0) {
+- die(MKFS_USAGE, 1, "stat failed: %s", dirname);
+- }
+- fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+- if (fd < 0) {
+- die(MKFS_USAGE, 1, "open failed: %s", outfile);
++ error_msg_and_die("stat failed: %s", dirname);
+ }
++ fd = xopen(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+
+- root_entry = calloc(1, sizeof(struct entry));
+- if (!root_entry) {
+- die(MKFS_ERROR, 1, "calloc failed");
+- }
++ root_entry = xcalloc(1, sizeof(struct entry));
+ root_entry->mode = st.st_mode;
+ root_entry->uid = st.st_uid;
+ root_entry->gid = st.st_gid;
+
+ root_entry->size = parse_directory(root_entry, dirname, &root_entry->child, &fslen_ub);
+
++ if (devtable) {
++ parse_device_table(devtable, root_entry, &fslen_ub);
++ }
++
+ /* always allocate a multiple of blksize bytes because that's
+- what we're going to write later on */
++ what we're going to write later on */
+ fslen_ub = ((fslen_ub - 1) | (blksize - 1)) + 1;
+
+ if (fslen_ub > MAXFSLEN) {
+@@ -790,7 +1245,7 @@
+ rom_image = mmap(NULL, fslen_ub?fslen_ub:1, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ if (rom_image == MAP_FAILED) {
+- die(MKFS_ERROR, 1, "mmap failed");
++ error_msg_and_die("mmap failed");
+ }
+
+ /* Skip the first opt_pad bytes for boot loader code */
+@@ -807,6 +1262,7 @@
+ }
+
+ offset = write_directory_structure(root_entry->child, rom_image, offset);
++ if (opt_verbose)
+ printf("Directory data: %d bytes\n", offset);
+
+ offset = write_data(root_entry, rom_image, offset);
+@@ -814,30 +1270,38 @@
+ /* We always write a multiple of blksize bytes, so that
+ losetup works. */
+ offset = ((offset - 1) | (blksize - 1)) + 1;
++ if (opt_verbose)
+ printf("Everything: %d kilobytes\n", offset >> 10);
+
+ /* Write the superblock now that we can fill in all of the fields. */
+ write_superblock(root_entry, rom_image+opt_pad, offset);
++ if (opt_verbose)
+ printf("Super block: %d bytes\n", sizeof(struct cramfs_super));
+
+ /* Put the checksum in. */
+ crc = crc32(0L, Z_NULL, 0);
+ crc = crc32(crc, (rom_image+opt_pad), (offset-opt_pad));
+ ((struct cramfs_super *) (rom_image+opt_pad))->fsid.crc = crc;
++ if (opt_verbose)
+ printf("CRC: %x\n", crc);
+
+ /* Check to make sure we allocated enough space. */
+ if (fslen_ub < offset) {
+- die(MKFS_ERROR, 0, "not enough space allocated for ROM image (%Ld allocated, %d used)", fslen_ub, offset);
++ error_msg_and_die("not enough space allocated for ROM "
++ "image (%Ld allocated, %d used)", fslen_ub, offset);
+ }
+
+ written = write(fd, rom_image, offset);
+ if (written < 0) {
+- die(MKFS_ERROR, 1, "write failed");
++ error_msg_and_die("write failed");
+ }
+ if (offset != written) {
+- die(MKFS_ERROR, 0, "ROM image write failed (wrote %d of %d bytes)", written, offset);
++ error_msg_and_die("ROM image write failed (wrote %d of %d bytes)", written, offset);
+ }
++
++ /* Free up memory */
++ free_filesystem_entry(root_entry);
++ free(root_entry);
+
+ /* (These warnings used to come at the start, but they scroll off the
+ screen too quickly.) */
diff --git a/packages/cramfs/cramfs/makefile.patch b/packages/cramfs/cramfs/makefile.patch
new file mode 100644
index 0000000000..b809170eb4
--- /dev/null
+++ b/packages/cramfs/cramfs/makefile.patch
@@ -0,0 +1,26 @@
+Jordan Crouse (AMD)
+08/20/04 - Fix for kernels with less then modern cramfs implementations
+RH9, I'm looking at you.
+
+--- cramfs-1.1/GNUmakefile 2002-02-22 17:52:41.000000000 -0700
++++ cramfs-1.1.new/GNUmakefile 2004-08-20 16:35:31.844289504 -0700
+@@ -1,6 +1,7 @@
+ CC = gcc
+ CFLAGS = -W -Wall -O2 -g
+-CPPFLAGS = -I.
++LFLAGS=-I.
++
+ LDLIBS = -lz
+ PROGS = mkcramfs cramfsck
+
+@@ -9,4 +10,10 @@
+ distclean clean:
+ rm -f $(PROGS)
+
++mkcramfs: mkcramfs.c
++ $(CC) $(LFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(LDLIBS)
++
++cramfsck: cramfsck.c
++ $(CC) $(LFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(LDLIBS)
++
+ .PHONY: all clean
diff --git a/packages/ctags/ctags-native_5.5.4.bb b/packages/ctags/ctags-native_5.5.4.bb
index 956182580f..dd9dd77a22 100644
--- a/packages/ctags/ctags-native_5.5.4.bb
+++ b/packages/ctags/ctags-native_5.5.4.bb
@@ -4,7 +4,7 @@
DESCRIPTION="Ctags generates an index (or tag) file of language objects found in source files."
LICENSE="GPL"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
HOMEPAGE="http://ctags.sourceforge.net/"
SRC_URI="${SOURCEFORGE_MIRROR}/ctags/ctags-${PV}.tar.gz"
diff --git a/packages/dialog/dialog-1.0-20050306/templates.patch b/packages/dialog/dialog-1.0-20050306/templates.patch
new file mode 100644
index 0000000000..07fa384802
--- /dev/null
+++ b/packages/dialog/dialog-1.0-20050306/templates.patch
@@ -0,0 +1,25 @@
+Index: dialog-1.0-20050306/configure.in
+===================================================================
+--- dialog-1.0-20050306.orig/configure.in
++++ dialog-1.0-20050306/configure.in
+@@ -137,6 +137,20 @@ strcasecmp \
+ waitpid \
+ )
+
++AH_TEMPLATE([HAVE_FLUSHINP], [Define if you have the flushinp function])
++AH_TEMPLATE([HAVE_GETBEGX], [Define if you have the getbegx function])
++AH_TEMPLATE([HAVE_GETBEGY], [Define if you have the getbegy function])
++AH_TEMPLATE([HAVE_GETBEGYX], [Define if you have the getbegyx function])
++AH_TEMPLATE([HAVE_GETCURX], [Define if you have the getcurx function])
++AH_TEMPLATE([HAVE_GETCURY], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_GETMAXX], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_GETMAXY], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_GETMAXYX], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_GETPARX], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_GETPARY], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_GETPARYX], [Define if you have the getcury function])
++AH_TEMPLATE([HAVE_WGET_WCH], [Define if you have the getcury function])
++
+ CF_CURSES_FUNCS(\
+ flushinp \
+ getbegx \
diff --git a/packages/dialog/dialog-static_1.0-20050306.bb b/packages/dialog/dialog-static_1.0-20050306.bb
new file mode 100644
index 0000000000..67241cdeef
--- /dev/null
+++ b/packages/dialog/dialog-static_1.0-20050306.bb
@@ -0,0 +1,4 @@
+include dialog.inc
+LDFLAGS += "-static"
+S="${WORKDIR}/dialog-${PV}"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dialog-${PV}"
diff --git a/packages/dialog/dialog.inc b/packages/dialog/dialog.inc
new file mode 100644
index 0000000000..f2bcaf042a
--- /dev/null
+++ b/packages/dialog/dialog.inc
@@ -0,0 +1,13 @@
+SECTION = "console/utils"
+DEPENDS = "ncurses"
+LICENSE = "GPL"
+DESCRIPTION = "Dialog lets you to present a variety of questions \
+or display messages using dialog boxes from a shell \
+script (or any scripting language)."
+
+SRC_URI = "ftp://ftp.us.debian.org/debian/pool/main/d/dialog/dialog_${PV}.orig.tar.gz \
+ file://configure.patch;patch=1 \
+ file://m4.patch;patch=1 \
+ file://templates.patch;patch=1"
+
+inherit autotools
diff --git a/packages/dialog/dialog_1.0-20050306.bb b/packages/dialog/dialog_1.0-20050306.bb
index 3aa28e58ce..7b7b72f364 100644
--- a/packages/dialog/dialog_1.0-20050306.bb
+++ b/packages/dialog/dialog_1.0-20050306.bb
@@ -1,12 +1 @@
-SECTION = "console/utils"
-DEPENDS = "ncurses"
-LICENSE = "GPL"
-DESCRIPTION = "Dialog lets you to present a variety of questions \
-or display messages using dialog boxes from a shell \
-script (or any scripting language)."
-
-SRC_URI = "ftp://ftp.us.debian.org/debian/pool/main/d/dialog/dialog_${PV}.orig.tar.gz \
- file://configure.patch;patch=1 \
- file://m4.patch;patch=1"
-
-inherit autotools
+include dialog.inc
diff --git a/packages/dosfstools/dosfstools_2.10.bb b/packages/dosfstools/dosfstools_2.10.bb
index 7de8d1da98..a683e4846b 100644
--- a/packages/dosfstools/dosfstools_2.10.bb
+++ b/packages/dosfstools/dosfstools_2.10.bb
@@ -3,7 +3,7 @@
# Released under the MIT license (see packages/COPYING)
DESCRIPTION = "DOS FAT Filesystem Utilities"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
SECTION = "base"
PRIORITY = "optional"
diff --git a/packages/efl/etk_20060418.bb b/packages/efl/etk_20060418.bb
index 1d53d683b3..bf1f98d497 100644
--- a/packages/efl/etk_20060418.bb
+++ b/packages/efl/etk_20060418.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries"
+DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries."
DEPENDS = "evas-x11 ecore-x11 edje"
LICENSE = "MIT"
PR = "r1"
diff --git a/packages/efl/etox_0.9.0.004.bb b/packages/efl/etox_0.9.0.004.bb
deleted file mode 100644
index e61759a22e..0000000000
--- a/packages/efl/etox_0.9.0.004.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "Etox is a type setting and text layout library based on Evas. \
-Etox helps you when it comes to displaying, moving, resizing, layering, \
-clipping, aligning and coloring fonts in different styles, and more."
-DEPENDS = "edb virtual/evas virtual/ecore"
-LICENSE = "MIT"
-PR = "r1"
-
-inherit efl
-
-libdirectory = "src"
diff --git a/packages/efl/ewl_0.0.4.007.bb b/packages/efl/ewl_0.0.4.007.bb
index e89b668b93..3a9313cb59 100644
--- a/packages/efl/ewl_0.0.4.007.bb
+++ b/packages/efl/ewl_0.0.4.007.bb
@@ -1,6 +1,5 @@
DESCRIPTION = "The Enlightened Widget Library, \
a simple-to-use general purpose widget library based on the enlightenment foundation libraries."
-# as of recent CVS HEAD, ewl no longer needs etox and no longer needs edb
DEPENDS = "edb virtual/evas virtual/ecore edje"
# emotion
RDEPENDS += "ewl-themes"
diff --git a/packages/emelfm2/.mtn2git_empty b/packages/emelfm2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/emelfm2/.mtn2git_empty
diff --git a/packages/emelfm2/emelfm2-0.0.8/.mtn2git_empty b/packages/emelfm2/emelfm2-0.0.8/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/emelfm2/emelfm2-0.0.8/.mtn2git_empty
diff --git a/packages/emelfm2/emelfm2-0.0.8/makefile.patch b/packages/emelfm2/emelfm2-0.0.8/makefile.patch
new file mode 100644
index 0000000000..3e075ea99c
--- /dev/null
+++ b/packages/emelfm2/emelfm2-0.0.8/makefile.patch
@@ -0,0 +1,13 @@
+--- emelfm2-0.0.8/Makefile 2004-04-30 04:17:57.000000000 -0700
++++ emelfm2-0.0.8.new/Makefile 2004-08-05 14:14:59.486331016 -0700
+@@ -176,8 +176,8 @@
+ $(DEPS_FILE): $(BUILD_FILE)
+ @echo "generating dependencies: '$(DEPS_FILE)'"
+ @touch $(DEPS_FILE)
+- @makedepend -s "# generated dependencies" -f $(DEPS_FILE) -- $(lCFLAGS) -- $(SOURCES)
+- @rm $(DEPS_FILE).bak
++ @$(CC) $(lCFLAGS) -M $(SOURCES) >> $(DEPS_FILE)
++ @rm -f $(DEPS_FILE).bak
+
+ marshals: $(MARSHALS_HEADER) $(MARSHALS_BODY)
+ $(MARSHALS_HEADER): $(MARSHALS_LIST)
diff --git a/packages/emelfm2/emelfm2_0.0.8.bb b/packages/emelfm2/emelfm2_0.0.8.bb
new file mode 100644
index 0000000000..6d9b50f991
--- /dev/null
+++ b/packages/emelfm2/emelfm2_0.0.8.bb
@@ -0,0 +1,22 @@
+# emelfm2 OE build file
+# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+DESCRIPTION="emelFM2 is a GTK2+ file manager that implements the popular \
+ two-pane design."
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+HOMEPAGE="http://dasui.prima.de/e2wiki/"
+SRC_URI="http://dasui.prima.de/~tooar/emelfm2-${PV}.tar.gz \
+ file://makefile.patch;patch=1"
+
+DEPENDS="gtk+"
+
+FILES_${PN} += " /usr/lib/emelfm2/plugins/ /usr/share/pixmaps/emelfm2/"
+
+do_compile() {
+ oe_runmake PREFIX=/usr all
+}
+
+do_install() {
+ oe_runmake BIN_DIR=${D}/usr/bin PREFIX=${D}/usr install
+}
diff --git a/packages/ethereal/ethereal-native_0.99.0.bb b/packages/ethereal/ethereal-native_0.99.0.bb
deleted file mode 100644
index b5e0c589ed..0000000000
--- a/packages/ethereal/ethereal-native_0.99.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require ethereal_${PV}.bb
-DEPENDS = "perl-native libpcap-native"
-inherit native
-
-EXTRA_OECONF = "\
- --enable-ethereal=no \
- --enable-tethereal=yes \
- --enable-editcap=no \
- --enable-dumpcap=no \
- --enable-capinfos=no \
- --enable-mergecap=no \
- --enable-text2pcap=no \
- --enable-idl2eth=no"
-
-do_stage() {
- install -m 0755 rdps ${STAGING_BINDIR}/ethereal-rdps
- install -m 0755 tools/lemon/lemon ${STAGING_BINDIR}/ethereal-lemon
-}
-
-do_install() {
- :
-}
-
diff --git a/packages/ethereal/ethereal_0.99.0.bb b/packages/ethereal/ethereal_0.99.0.bb
index 96e121a3a7..1c46e432d5 100644
--- a/packages/ethereal/ethereal_0.99.0.bb
+++ b/packages/ethereal/ethereal_0.99.0.bb
@@ -2,9 +2,9 @@ DESCRIPTION = "Ethereal is the world's most popular network protocol analyzer"
HOMEPAGE = "http://www.ethereal.com"
SECTION = "x11/network"
LICENSE = "GPL"
+DEPENDS = "perl-native gtk+ gnutls libpcap"
MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
-
-DEPENDS = "perl-native ethereal-native gtk+ libpcap"
+PR = "r2"
SRC_URI = "${SOURCEFORGE_MIRROR}/ethereal/ethereal-${PV}.tar.bz2 \
file://use-our-lemon.patch;patch=1"
@@ -13,6 +13,7 @@ S = "${WORKDIR}/ethereal-${PV}"
inherit autotools
do_compile_prepend() {
- ln -sf ${STAGING_BINDIR}/ethereal-rdps rdps
- ln -sf ${STAGING_BINDIR}/ethereal-lemon tools/lemon/lemon
+ ${BUILD_CC} ${BUILD_CFLAGS} -o rdps rdps.c
+ oe_runmake -C tools/lemon CC="${BUILD_CC} ${BUILD_CFLAGS}"
}
+
diff --git a/packages/fontconfig/files/local.conf b/packages/fontconfig/files/local.conf
index ddd7cf9d03..d678878f3e 100644
--- a/packages/fontconfig/files/local.conf
+++ b/packages/fontconfig/files/local.conf
@@ -2,11 +2,18 @@
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/local.conf file for local customizations -->
<fontconfig>
-<!-- Enable sub-pixel rendering -->
+<!--
+ Enable sub-pixel rendering
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
</match>
+-->
+
+<!-- X11R7.0 installs fonts to a new location -->
+ <dir>/usr/lib/X11/fonts/misc</dir>
+ <dir>/usr/lib/X11/fonts/Type1</dir>
+ <dir>/usr/lib/X11/fonts/75dpi</dir>
</fontconfig>
diff --git a/packages/fontconfig/fontconfig_2.2.95.bb b/packages/fontconfig/fontconfig_2.2.95.bb
index 7ff731ebe8..0951d40626 100644
--- a/packages/fontconfig/fontconfig_2.2.95.bb
+++ b/packages/fontconfig/fontconfig_2.2.95.bb
@@ -5,8 +5,9 @@ DEPENDS = "expat freetype freetype-native zlib fontconfig-native"
SRC_URI = "http://freedesktop.org/fontconfig/release/fontconfig-${PV}.tar.gz \
file://fc-glyphname.patch;patch=1 \
- file://fc-lang.patch;patch=1"
-PR = "r6"
+ file://fc-lang.patch;patch=1 \
+ file://local.conf"
+PR = "r7"
PACKAGES =+ "fontconfig-utils "
FILES_fontconfig-utils = "${bindir}/*"
@@ -46,5 +47,8 @@ do_stage () {
do_install () {
autotools_do_install
+
+ install -d ${D}/etc/fonts/
+ install -m 0644 ${WORKDIR}/local.conf ${D}/etc/fonts/
}
diff --git a/packages/gcc/gcc-3.4.3/GCOV_PREFIX_STRIP-cross-profile_3.4.patch b/packages/gcc/gcc-3.4.3/GCOV_PREFIX_STRIP-cross-profile_3.4.patch
new file mode 100644
index 0000000000..0f1cf2040b
--- /dev/null
+++ b/packages/gcc/gcc-3.4.3/GCOV_PREFIX_STRIP-cross-profile_3.4.patch
@@ -0,0 +1,385 @@
+2005-05-04 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+
+ Cross-profiling support: relocate .gcda files when
+ running at system other than executable been built on.
+
+
+ * gcov-io.c (gcov_open): When in libgcov library
+ use given data file relocation prefix to build file name.
+ * gcov-io.h (gcov_open): Updated proto to accept
+ data file relocation prefix.
+ * libgcov.c (create_file_directory): New function.
+ (gcov_prefix): New static variable to hold data file
+ relocation prefix.
+ (gcov_version): Use relocation prefix.
+ (gcov_exit): Always try to create directory for output
+ file. Relocate filename at each use.
+ (__gcov_init): Initialize directory relocation prefix
+ if required. Strip off leading directories from
+ the initial filename.
+ * tsystem.h: include filenames.h
+ (DIR_SEPARATOR): Macro copied from system.h.
+ (DIR_SEPARATOR_2): Likewise.
+ * doc/gcov.texi (Cross-profiling): New node documenting
+ cross-profiling management.
+ * doc/invoke.texi (-fprofile-arcs): xref to cross-profiling.
+
+Grigory Zagorodnev
+Intel Corporation
+
+diff -urN gcc-3.4.3.orig/gcc-3.4.3/gcc/doc/gcov.texi gcc-3.4.3/gcc/doc/gcov.texi
+--- gcc-3.4.3.orig/gcc-3.4.3/gcc/doc/gcov.texi 2004-03-14 15:31:20.000000000 -0700
++++ gcc-3.4.3/gcc/doc/gcov.texi 2006-05-08 10:17:54.000000000 -0600
+@@ -42,6 +42,7 @@
+ * Invoking Gcov:: How to use gcov.
+ * Gcov and Optimization:: Using gcov with GCC optimization.
+ * Gcov Data Files:: The files used by gcov.
++* Cross-profiling:: Data files relocation.
+ @end menu
+
+ @node Gcov Intro
+@@ -510,3 +511,36 @@
+ The full details of the file format is specified in @file{gcov-io.h},
+ and functions provided in that header file should be used to access the
+ coverage files.
++
++@node Cross-profiling
++@section Data files relocation to support cross-profiling
++
++Running the program will cause profile output to be generated. For each
++source file compiled with @option{-fprofile-arcs}, an accompanying @file{.gcda}
++file will be placed in the object file directory. That implicitly requires
++running the program at the same system as it was build or having same
++absolute directory structure on the target system (program will try
++to create needed directory structure).
++
++To support cross-profiling, program compiled with @option{-fprofile-arcs}
++performs data file relocation basing on two environment variables:
++
++@itemize @bullet
++@item
++GCOV_PREFIX contains the prefix to add to the absolute paths
++in the object file.
++
++@item
++GCOV_PREFIX_STRIP indicates the how many initial directory names to strip off
++the hardwired absolute paths. Default value is 0.
++@end itemize
++
++For example, if object file @file{/user/build/foo.o} was build with
++@option{-fprofile-arcs}, the final executable will try to create data file
++@file{/user/build/foo.gcda} when running at the target system and will
++fail if corresponding directory does not exists and is not allowed to create.
++
++In this case, manipulating environment variables you can relocate data file
++to the suitable local directory. For our example, setting @samp{GCOV_PREFIX=/target/run}
++and @samp{GCOV_PREFIX_STRIP=1} values will force use of @file{/target/run/build/foo.gcda}
++file name.
+diff -urN gcc-3.4.3.orig/gcc-3.4.3/gcc/doc/invoke.texi gcc-3.4.3/gcc/doc/invoke.texi
+--- gcc-3.4.3.orig/gcc-3.4.3/gcc/doc/invoke.texi 2006-05-08 10:14:43.000000000 -0600
++++ gcc-3.4.3/gcc/doc/invoke.texi 2006-05-08 10:17:54.000000000 -0600
+@@ -3178,6 +3178,7 @@
+ the basename of the source file. In both cases any suffix is removed
+ (e.g. @file{foo.gcda} for input file @file{dir/foo.c}, or
+ @file{dir/foo.gcda} for output file specified as @option{-o dir/foo.o}).
++@xref{Cross-profiling}.
+
+ @itemize
+
+diff -urN gcc-3.4.3.orig/gcc-3.4.3/gcc/gcov-io.c gcc-3.4.3/gcc/gcov-io.c
+--- gcc-3.4.3.orig/gcc-3.4.3/gcc/gcov-io.c 2004-02-25 08:11:19.000000000 -0700
++++ gcc-3.4.3/gcc/gcov-io.c 2006-05-08 10:17:54.000000000 -0600
+@@ -55,13 +55,14 @@
+
+ GCOV_LINKAGE int
+ #if IN_LIBGCOV
+-gcov_open (const char *name)
++gcov_open (const char *prefix, const char *name)
+ #else
+ gcov_open (const char *name, int mode)
+ #endif
+ {
+ #if IN_LIBGCOV
+ const int mode = 0;
++ char *tmp;
+ #endif
+ #if GCOV_LOCKED
+ struct flock s_flock;
+@@ -83,6 +84,14 @@
+ #if !IN_LIBGCOV
+ gcov_var.endian = 0;
+ #endif
++
++#if IN_LIBGCOV
++ /* Build complete filename with prefix */
++ tmp = alloca( strlen(prefix) + strlen(name) + 1);
++ *tmp = '\0';
++ name = strcat( strcat(tmp, prefix), name);
++#endif
++
+ #if GCOV_LOCKED
+ if (mode > 0)
+ fd = open (name, O_RDWR);
+diff -urN gcc-3.4.3.orig/gcc-3.4.3/gcc/gcov-io.h gcc-3.4.3/gcc/gcov-io.h
+--- gcc-3.4.3.orig/gcc-3.4.3/gcc/gcov-io.h 2004-03-21 19:43:11.000000000 -0700
++++ gcc-3.4.3/gcc/gcov-io.h 2006-05-08 10:20:23.000000000 -0600
+@@ -488,7 +488,7 @@
+ functions for writing. Your file may become corrupted if you break
+ these invariants. */
+ #if IN_LIBGCOV
+-GCOV_LINKAGE int gcov_open (const char */*name*/);
++GCOV_LINKAGE int gcov_open (const char */*prefix*/, const char */*name*/);
+ #else
+ GCOV_LINKAGE int gcov_open (const char */*name*/, int /*direction*/);
+ GCOV_LINKAGE int gcov_magic (gcov_unsigned_t, gcov_unsigned_t);
+diff -urN gcc-3.4.3.orig/gcc-3.4.3/gcc/libgcov.c gcc-3.4.3/gcc/libgcov.c
+--- gcc-3.4.3.orig/gcc-3.4.3/gcc/libgcov.c 2004-02-25 08:11:19.000000000 -0700
++++ gcc-3.4.3/gcc/libgcov.c 2006-05-08 10:17:54.000000000 -0600
+@@ -92,6 +92,70 @@
+ object file included in multiple programs. */
+ static gcov_unsigned_t gcov_crc32;
+
++/* Directory prefix to relocate coverage data file names */
++static char *gcov_prefix = 0;
++
++/* Level of dirs to strip off the initial filename to relocate */
++static int gcov_prefix_strip = 0;
++
++static int
++create_file_directory (const char *prefix, const char *filename)
++{
++ char *dname;
++ char sep, *r, *s;
++ size_t plen, flen;
++
++ /* Detect directory separator */
++ s = strrchr (prefix, DIR_SEPARATOR);
++#ifdef DIR_SEPARATOR_2
++ if (! s)
++ s = strrchr (prefix, DIR_SEPARATOR_2);
++#endif
++ if (s)
++ sep = *s;
++ else
++ sep = DIR_SEPARATOR;
++
++ /* join prefix and filename, split path */
++ plen = strlen(prefix);
++ flen = strlen(filename);
++ r = alloca(plen + flen + 1);
++ strncpy(r, prefix, plen);
++ strncpy(r + plen, filename, flen);
++ r[plen + flen] = '\0';
++ s = strrchr(r, sep);
++ if (s)
++ *(s + 1) = '\0';
++
++ if (access (r, F_OK) == 0)
++ return 0;
++
++ /* Skip consecutive separators. */
++ for (dname = r; *dname && *dname == sep; ++dname);
++ while (1)
++ {
++ char *s = strchr (dname, sep);
++ if (s == 0)
++ break;
++ *s = '\0';
++ /* Try to make directory if it doesn't already exist. */
++ if (access (r, F_OK) == -1
++ && mkdir (r, 0755) == -1
++ /* The directory might have been made by another process. */
++ && errno != EEXIST)
++ {
++ *s = sep;
++ fprintf (stderr, "profiling:%s:Cannot create directory\n", r);
++ return -1;
++ };
++ *s = sep;
++ /* Skip consecutive separators. */
++ for (dname = s + 1; *dname && *dname == sep; ++dname)
++ ;
++ }
++ return 0;
++}
++
+ static int
+ gcov_version (struct gcov_info *ptr, gcov_unsigned_t version)
+ {
+@@ -103,8 +167,8 @@
+ GCOV_UNSIGNED2STRING (e, GCOV_VERSION);
+
+ fprintf (stderr,
+- "profiling:%s:Version mismatch - expected %.4s got %.4s\n",
+- ptr->filename, e, v);
++ "profiling:%s%s:Version mismatch - expected %.4s got %.4s\n",
++ gcov_prefix, ptr->filename, e, v);
+ return 0;
+ }
+ return 1;
+@@ -204,9 +268,14 @@
+ fi_stride &= ~(__alignof__ (struct gcov_fn_info) - 1);
+ }
+
+- if (!gcov_open (gi_ptr->filename))
++ if (create_file_directory (gcov_prefix, gi_ptr->filename))
+ {
+- fprintf (stderr, "profiling:%s:Cannot open\n", gi_ptr->filename);
++ fprintf (stderr, "profiling:%s%s:Skip\n", gcov_prefix, gi_ptr->filename);
++ continue;
++ }
++ else if (!gcov_open (gcov_prefix, gi_ptr->filename))
++ {
++ fprintf (stderr, "profiling:%s%s:Cannot open\n", gcov_prefix, gi_ptr->filename);
+ continue;
+ }
+
+@@ -216,8 +285,8 @@
+ /* Merge data from file. */
+ if (tag != GCOV_DATA_MAGIC)
+ {
+- fprintf (stderr, "profiling:%s:Not a gcov data file\n",
+- gi_ptr->filename);
++ fprintf (stderr, "profiling:%s%s:Not a gcov data file\n",
++ gcov_prefix, gi_ptr->filename);
+ read_fatal:;
+ gcov_close ();
+ continue;
+@@ -250,8 +319,8 @@
+ || gcov_read_unsigned () != fi_ptr->checksum)
+ {
+ read_mismatch:;
+- fprintf (stderr, "profiling:%s:Merge mismatch for %s\n",
+- gi_ptr->filename,
++ fprintf (stderr, "profiling:%s%s:Merge mismatch for %s\n",
++ gcov_prefix, gi_ptr->filename,
+ f_ix + 1 ? "function" : "summaries");
+ goto read_fatal;
+ }
+@@ -309,8 +378,8 @@
+ if (!gcov_is_eof ())
+ {
+ read_error:;
+- fprintf (stderr, error < 0 ? "profiling:%s:Overflow merging\n"
+- : "profiling:%s:Error merging\n", gi_ptr->filename);
++ fprintf (stderr, error < 0 ? "profiling:%s%s:Overflow merging\n"
++ : "profiling:%s%s:Error merging\n", gcov_prefix, gi_ptr->filename);
+ goto read_fatal;
+ }
+ rewrite:;
+@@ -357,8 +426,8 @@
+ && (!GCOV_LOCKED || cs_all->runs == cs_prg->runs)
+ && memcmp (cs_all, cs_prg, sizeof (*cs_all)))
+ {
+- fprintf (stderr, "profiling:%s:Invocation mismatch - some data files may have been removed%s",
+- gi_ptr->filename, GCOV_LOCKED
++ fprintf (stderr, "profiling:%s%s:Invocation mismatch - some data files may have been removed%s",
++ gcov_prefix, gi_ptr->filename, GCOV_LOCKED
+ ? "" : " or concurrent update without locking support");
+ all.checksum = ~0u;
+ }
+@@ -418,9 +487,9 @@
+ gcov_write_summary (GCOV_TAG_PROGRAM_SUMMARY, &program);
+ if ((error = gcov_close ()))
+ fprintf (stderr, error < 0 ?
+- "profiling:%s:Overflow writing\n" :
+- "profiling:%s:Error writing\n",
+- gi_ptr->filename);
++ "profiling:%s%s:Overflow writing\n" :
++ "profiling:%s%s:Error writing\n",
++ gcov_prefix, gi_ptr->filename);
+ }
+ }
+
+@@ -430,11 +499,69 @@
+ void
+ __gcov_init (struct gcov_info *info)
+ {
++ /* Save initial filename pointer to calculate CRC. */
++ const char *ptr = info->filename;
++
+ if (!info->version)
+ return;
++
++ /* Initialize directory prefix if requred */
++ if (gcov_prefix == 0)
++ {
++ if ((gcov_prefix = getenv("GCOV_PREFIX")))
++ {
++ char *tmp;
++
++ /* Normalize prefix: take off trailing separator. */
++ tmp = gcov_prefix + strlen(gcov_prefix) - 1;
++ if (IS_DIR_SEPARATOR(*tmp))
++ *tmp = '\0';
++
++ /* Check if the level of dirs to strip off specified */
++ if ((tmp = getenv("GCOV_PREFIX_STRIP")))
++ {
++ gcov_prefix_strip = atoi (tmp);
++ /* Do not consider negative values. */
++ if (gcov_prefix_strip < 0)
++ gcov_prefix_strip = 0;
++ };
++ }
++ else
++ gcov_prefix = (char *) "";
++ };
++
++ /* Strip off leading directories from the initial filename */
++ if (gcov_prefix_strip > 0)
++ {
++ char sep, *s;
++ int level;
++ const char *fname = info->filename;
++
++ /* Detect directory separator */
++ s = strrchr (fname, DIR_SEPARATOR);
++#ifdef DIR_SEPARATOR_2
++ if (! s)
++ s = strrchr (fname, DIR_SEPARATOR_2);
++#endif
++ if (s)
++ sep = *s;
++ else
++ sep = DIR_SEPARATOR;
++
++ /* Skip selected directory levels */
++ for ( level = gcov_prefix_strip; level > 0; level--)
++ if ((s = strchr(fname + 1, sep)))
++ fname = s;
++ else
++ break;
++
++ /* From this point info block refers stripped file name and
++ further operations must add prefix to get complete name.*/
++ info->filename = fname;
++ };
++
+ if (gcov_version (info, info->version))
+ {
+- const char *ptr = info->filename;
+ gcov_unsigned_t crc32 = gcov_crc32;
+
+ do
+diff -urN gcc-3.4.3.orig/gcc-3.4.3/gcc/tsystem.h gcc-3.4.3/gcc/tsystem.h
+--- gcc-3.4.3.orig/gcc-3.4.3/gcc/tsystem.h 2003-11-04 22:17:16.000000000 -0700
++++ gcc-3.4.3/gcc/tsystem.h 2006-05-08 10:17:54.000000000 -0600
+@@ -106,4 +106,15 @@
+ #define NULL 0
+ #endif
+
++/* Filename handling macros. */
++#include "filenames.h"
++
++/* These should be phased out in favor of IS_DIR_SEPARATOR, where possible. */
++#ifndef DIR_SEPARATOR
++# define DIR_SEPARATOR '/'
++# ifdef HAVE_DOS_BASED_FILE_SYSTEM
++# define DIR_SEPARATOR_2 '\\'
++# endif
++#endif
++
+ #endif /* ! GCC_TSYSTEM_H */
diff --git a/packages/gcc/gcc-3.4.4/GCOV_PREFIX_STRIP-cross-profile_3.4.patch b/packages/gcc/gcc-3.4.4/GCOV_PREFIX_STRIP-cross-profile_3.4.patch
new file mode 100644
index 0000000000..701a687e05
--- /dev/null
+++ b/packages/gcc/gcc-3.4.4/GCOV_PREFIX_STRIP-cross-profile_3.4.patch
@@ -0,0 +1,389 @@
+2005-05-04 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+
+ Cross-profiling support: relocate .gcda files when
+ running at system other than executable been built on.
+
+
+ * gcov-io.c (gcov_open): When in libgcov library
+ use given data file relocation prefix to build file name.
+ * gcov-io.h (gcov_open): Updated proto to accept
+ data file relocation prefix.
+ * libgcov.c (create_file_directory): New function.
+ (gcov_prefix): New static variable to hold data file
+ relocation prefix.
+ (gcov_version): Use relocation prefix.
+ (gcov_exit): Always try to create directory for output
+ file. Relocate filename at each use.
+ (__gcov_init): Initialize directory relocation prefix
+ if required. Strip off leading directories from
+ the initial filename.
+ * tsystem.h: include filenames.h
+ (DIR_SEPARATOR): Macro copied from system.h.
+ (DIR_SEPARATOR_2): Likewise.
+ * doc/gcov.texi (Cross-profiling): New node documenting
+ cross-profiling management.
+ * doc/invoke.texi (-fprofile-arcs): xref to cross-profiling.
+
+Grigory Zagorodnev
+Intel Corporation
+
+--- gcc-3.4/gcc/gcov-io.c.prefix 2004-02-26 13:54:47.000000000 -0800
++++ gcc-3.4/gcc/gcov-io.c 2005-05-04 11:46:01.000000000 -0700
+@@ -55,13 +55,14 @@ static inline gcov_unsigned_t from_file
+
+ GCOV_LINKAGE int
+ #if IN_LIBGCOV
+-gcov_open (const char *name)
++gcov_open (const char *prefix, const char *name)
+ #else
+ gcov_open (const char *name, int mode)
+ #endif
+ {
+ #if IN_LIBGCOV
+ const int mode = 0;
++ char *tmp;
+ #endif
+ #if GCOV_LOCKED
+ struct flock s_flock;
+@@ -83,6 +84,14 @@ gcov_open (const char *name, int mode)
+ #if !IN_LIBGCOV
+ gcov_var.endian = 0;
+ #endif
++
++#if IN_LIBGCOV
++ /* Build complete filename with prefix */
++ tmp = alloca( strlen(prefix) + strlen(name) + 1);
++ *tmp = '\0';
++ name = strcat( strcat(tmp, prefix), name);
++#endif
++
+ #if GCOV_LOCKED
+ if (mode > 0)
+ fd = open (name, O_RDWR);
+--- gcc-3.4/gcc/gcov-io.h.prefix 2005-05-02 15:37:58.000000000 -0700
++++ gcc-3.4/gcc/gcov-io.h 2005-05-04 11:46:01.000000000 -0700
+@@ -502,7 +502,7 @@ GCOV_LINKAGE struct gcov_var
+ functions for writing. Your file may become corrupted if you break
+ these invariants. */
+ #if IN_LIBGCOV
+-GCOV_LINKAGE int gcov_open (const char */*name*/) ATTRIBUTE_HIDDEN;
++GCOV_LINKAGE int gcov_open (const char */*prefix*/, const char */*name*/) ATTRIBUTE_HIDDEN;
+ #else
+ GCOV_LINKAGE int gcov_open (const char */*name*/, int /*direction*/);
+ GCOV_LINKAGE int gcov_magic (gcov_unsigned_t, gcov_unsigned_t);
+--- gcc-3.4/gcc/libgcov.c.prefix 2004-02-26 13:54:47.000000000 -0800
++++ gcc-3.4/gcc/libgcov.c 2005-05-04 12:01:58.000000000 -0700
+@@ -92,6 +92,70 @@ static struct gcov_info *gcov_list;
+ object file included in multiple programs. */
+ static gcov_unsigned_t gcov_crc32;
+
++/* Directory prefix to relocate coverage data file names */
++static char *gcov_prefix = 0;
++
++/* Level of dirs to strip off the initial filename to relocate */
++static int gcov_prefix_strip = 0;
++
++static int
++create_file_directory (const char *prefix, const char *filename)
++{
++ char *dname;
++ char sep, *r, *s;
++ size_t plen, flen;
++
++ /* Detect directory separator */
++ s = strrchr (prefix, DIR_SEPARATOR);
++#ifdef DIR_SEPARATOR_2
++ if (! s)
++ s = strrchr (prefix, DIR_SEPARATOR_2);
++#endif
++ if (s)
++ sep = *s;
++ else
++ sep = DIR_SEPARATOR;
++
++ /* join prefix and filename, split path */
++ plen = strlen(prefix);
++ flen = strlen(filename);
++ r = alloca(plen + flen + 1);
++ strncpy(r, prefix, plen);
++ strncpy(r + plen, filename, flen);
++ r[plen + flen] = '\0';
++ s = strrchr(r, sep);
++ if (s)
++ *(s + 1) = '\0';
++
++ if (access (r, F_OK) == 0)
++ return 0;
++
++ /* Skip consecutive separators. */
++ for (dname = r; *dname && *dname == sep; ++dname);
++ while (1)
++ {
++ char *s = strchr (dname, sep);
++ if (s == 0)
++ break;
++ *s = '\0';
++ /* Try to make directory if it doesn't already exist. */
++ if (access (r, F_OK) == -1
++ && mkdir (r, 0755) == -1
++ /* The directory might have been made by another process. */
++ && errno != EEXIST)
++ {
++ *s = sep;
++ fprintf (stderr, "profiling:%s:Cannot create directory\n", r);
++ return -1;
++ };
++ *s = sep;
++ /* Skip consecutive separators. */
++ for (dname = s + 1; *dname && *dname == sep; ++dname)
++ ;
++ }
++ return 0;
++}
++
+ static int
+ gcov_version (struct gcov_info *ptr, gcov_unsigned_t version)
+ {
+@@ -103,8 +167,8 @@ gcov_version (struct gcov_info *ptr, gco
+ GCOV_UNSIGNED2STRING (e, GCOV_VERSION);
+
+ fprintf (stderr,
+- "profiling:%s:Version mismatch - expected %.4s got %.4s\n",
+- ptr->filename, e, v);
++ "profiling:%s%s:Version mismatch - expected %.4s got %.4s\n",
++ gcov_prefix, ptr->filename, e, v);
+ return 0;
+ }
+ return 1;
+@@ -204,9 +268,14 @@ gcov_exit (void)
+ fi_stride &= ~(__alignof__ (struct gcov_fn_info) - 1);
+ }
+
+- if (!gcov_open (gi_ptr->filename))
++ if (create_file_directory (gcov_prefix, gi_ptr->filename))
+ {
+- fprintf (stderr, "profiling:%s:Cannot open\n", gi_ptr->filename);
++ fprintf (stderr, "profiling:%s%s:Skip\n", gcov_prefix, gi_ptr->filename);
++ continue;
++ }
++ else if (!gcov_open (gcov_prefix, gi_ptr->filename))
++ {
++ fprintf (stderr, "profiling:%s%s:Cannot open\n", gcov_prefix, gi_ptr->filename);
+ continue;
+ }
+
+@@ -216,8 +285,8 @@ gcov_exit (void)
+ /* Merge data from file. */
+ if (tag != GCOV_DATA_MAGIC)
+ {
+- fprintf (stderr, "profiling:%s:Not a gcov data file\n",
+- gi_ptr->filename);
++ fprintf (stderr, "profiling:%s%s:Not a gcov data file\n",
++ gcov_prefix, gi_ptr->filename);
+ read_fatal:;
+ gcov_close ();
+ continue;
+@@ -250,8 +319,8 @@ gcov_exit (void)
+ || gcov_read_unsigned () != fi_ptr->checksum)
+ {
+ read_mismatch:;
+- fprintf (stderr, "profiling:%s:Merge mismatch for %s\n",
+- gi_ptr->filename,
++ fprintf (stderr, "profiling:%s%s:Merge mismatch for %s\n",
++ gcov_prefix, gi_ptr->filename,
+ f_ix + 1 ? "function" : "summaries");
+ goto read_fatal;
+ }
+@@ -309,8 +378,8 @@ gcov_exit (void)
+ if (!gcov_is_eof ())
+ {
+ read_error:;
+- fprintf (stderr, error < 0 ? "profiling:%s:Overflow merging\n"
+- : "profiling:%s:Error merging\n", gi_ptr->filename);
++ fprintf (stderr, error < 0 ? "profiling:%s%s:Overflow merging\n"
++ : "profiling:%s%s:Error merging\n", gcov_prefix, gi_ptr->filename);
+ goto read_fatal;
+ }
+ rewrite:;
+@@ -357,8 +426,8 @@ gcov_exit (void)
+ && (!GCOV_LOCKED || cs_all->runs == cs_prg->runs)
+ && memcmp (cs_all, cs_prg, sizeof (*cs_all)))
+ {
+- fprintf (stderr, "profiling:%s:Invocation mismatch - some data files may have been removed%s",
+- gi_ptr->filename, GCOV_LOCKED
++ fprintf (stderr, "profiling:%s%s:Invocation mismatch - some data files may have been removed%s",
++ gcov_prefix, gi_ptr->filename, GCOV_LOCKED
+ ? "" : " or concurrent update without locking support");
+ all.checksum = ~0u;
+ }
+@@ -418,9 +487,9 @@ gcov_exit (void)
+ gcov_write_summary (GCOV_TAG_PROGRAM_SUMMARY, &program);
+ if ((error = gcov_close ()))
+ fprintf (stderr, error < 0 ?
+- "profiling:%s:Overflow writing\n" :
+- "profiling:%s:Error writing\n",
+- gi_ptr->filename);
++ "profiling:%s%s:Overflow writing\n" :
++ "profiling:%s%s:Error writing\n",
++ gcov_prefix, gi_ptr->filename);
+ }
+ }
+
+@@ -430,11 +499,69 @@ gcov_exit (void)
+ void
+ __gcov_init (struct gcov_info *info)
+ {
++ /* Save initial filename pointer to calculate CRC. */
++ const char *ptr = info->filename;
++
+ if (!info->version)
+ return;
++
++ /* Initialize directory prefix if requred */
++ if (gcov_prefix == 0)
++ {
++ if ((gcov_prefix = getenv("GCOV_PREFIX")))
++ {
++ char *tmp;
++
++ /* Normalize prefix: take off trailing separator. */
++ tmp = gcov_prefix + strlen(gcov_prefix) - 1;
++ if (IS_DIR_SEPARATOR(*tmp))
++ *tmp = '\0';
++
++ /* Check if the level of dirs to strip off specified */
++ if ((tmp = getenv("GCOV_PREFIX_STRIP")))
++ {
++ gcov_prefix_strip = atoi (tmp);
++ /* Do not consider negative values. */
++ if (gcov_prefix_strip < 0)
++ gcov_prefix_strip = 0;
++ };
++ }
++ else
++ gcov_prefix = (char *) "";
++ };
++
++ /* Strip off leading directories from the initial filename */
++ if (gcov_prefix_strip > 0)
++ {
++ char sep, *s;
++ int level;
++ const char *fname = info->filename;
++
++ /* Detect directory separator */
++ s = strrchr (fname, DIR_SEPARATOR);
++#ifdef DIR_SEPARATOR_2
++ if (! s)
++ s = strrchr (fname, DIR_SEPARATOR_2);
++#endif
++ if (s)
++ sep = *s;
++ else
++ sep = DIR_SEPARATOR;
++
++ /* Skip selected directory levels */
++ for ( level = gcov_prefix_strip; level > 0; level--)
++ if ((s = strchr(fname + 1, sep)))
++ fname = s;
++ else
++ break;
++
++ /* From this point info block refers stripped file name and
++ further operations must add prefix to get complete name.*/
++ info->filename = fname;
++ };
++
+ if (gcov_version (info, info->version))
+ {
+- const char *ptr = info->filename;
+ gcov_unsigned_t crc32 = gcov_crc32;
+
+ do
+--- gcc-3.4/gcc/tsystem.h.prefix 2003-11-12 16:07:48.000000000 -0800
++++ gcc-3.4/gcc/tsystem.h 2005-05-04 12:12:08.000000000 -0700
+@@ -106,4 +106,15 @@ extern int errno;
+ #define NULL 0
+ #endif
+
++/* Filename handling macros. */
++#include "filenames.h"
++
++/* These should be phased out in favor of IS_DIR_SEPARATOR, where possible. */
++#ifndef DIR_SEPARATOR
++# define DIR_SEPARATOR '/'
++# ifdef HAVE_DOS_BASED_FILE_SYSTEM
++# define DIR_SEPARATOR_2 '\\'
++# endif
++#endif
++
+ #endif /* ! GCC_TSYSTEM_H */
+Index: gcc-3.4/gcc/doc/gcov.texi
+===================================================================
+RCS file: /cvsroot/gcc/gcc/gcc/doc/gcov.texi,v
+retrieving revision 1.19.4.3
+diff -u -p -r1.19.4.3 gcov.texi
+--- gcc-3.4/gcc/doc/gcov.texi 14 Mar 2004 22:31:20 -0000 1.19.4.3
++++ gcc-3.4/gcc/doc/gcov.texi 4 May 2005 13:44:25 -0000
+@@ -42,6 +42,7 @@ test code coverage in your programs.
+ * Invoking Gcov:: How to use gcov.
+ * Gcov and Optimization:: Using gcov with GCC optimization.
+ * Gcov Data Files:: The files used by gcov.
++* Cross-profiling:: Data files relocation.
+ @end menu
+
+ @node Gcov Intro
+@@ -510,3 +511,36 @@ information.
+ The full details of the file format is specified in @file{gcov-io.h},
+ and functions provided in that header file should be used to access the
+ coverage files.
++
++@node Cross-profiling
++@section Data files relocation to support cross-profiling
++
++Running the program will cause profile output to be generated. For each
++source file compiled with @option{-fprofile-arcs}, an accompanying @file{.gcda}
++file will be placed in the object file directory. That implicitly requires
++running the program at the same system as it was build or having same
++absolute directory structure on the target system (program will try
++to create needed directory structure).
++
++To support cross-profiling, program compiled with @option{-fprofile-arcs}
++performs data file relocation basing on two environment variables:
++
++@itemize @bullet
++@item
++GCOV_PREFIX contains the prefix to add to the absolute paths
++in the object file.
++
++@item
++GCOV_PREFIX_STRIP indicates the how many initial directory names to strip off
++the hardwired absolute paths. Default value is 0.
++@end itemize
++
++For example, if object file @file{/user/build/foo.o} was build with
++@option{-fprofile-arcs}, the final executable will try to create data file
++@file{/user/build/foo.gcda} when running at the target system and will
++fail if corresponding directory does not exists and is not allowed to create.
++
++In this case, manipulating environment variables you can relocate data file
++to the suitable local directory. For our example, setting @samp{GCOV_PREFIX=/target/run}
++and @samp{GCOV_PREFIX_STRIP=1} values will force use of @file{/target/run/build/foo.gcda}
++file name.
+Index: gcc-3.4/gcc/doc/invoke.texi
+===================================================================
+RCS file: /cvsroot/gcc/gcc/gcc/doc/invoke.texi,v
+retrieving revision 1.390.2.40
+diff -u -p -r1.390.2.40 invoke.texi
+--- gcc-3.4/gcc/doc/invoke.texi 22 Apr 2005 06:49:59 -0000 1.390.2.40
++++ gcc-3.4/gcc/doc/invoke.texi 4 May 2005 13:44:25 -0000
+@@ -3158,6 +3158,7 @@ explicitly specified and it is not the f
+ the basename of the source file. In both cases any suffix is removed
+ (e.g. @file{foo.gcda} for input file @file{dir/foo.c}, or
+ @file{dir/foo.gcda} for output file specified as @option{-o dir/foo.o}).
++@xref{Cross-profiling}.
+
+ @itemize
+
diff --git a/packages/gcc/gcc-4.0.2/GCOV_PREFIX_STRIP-cross-profile_4.1.patch b/packages/gcc/gcc-4.0.2/GCOV_PREFIX_STRIP-cross-profile_4.1.patch
new file mode 100644
index 0000000000..92ce00a1e3
--- /dev/null
+++ b/packages/gcc/gcc-4.0.2/GCOV_PREFIX_STRIP-cross-profile_4.1.patch
@@ -0,0 +1,371 @@
+2005-05-04 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcov-io.c (gcov_open): When in libgcov library
+ use given data file relocation prefix to build file name.
+ * gcov-io.h (gcov_open): Updated proto to accept
+ data file relocation prefix.
+ * libgcov.c (create_file_directory): New function.
+ (gcov_prefix): New static variable to hold data file
+ relocation prefix.
+ (gcov_version): Use relocation prefix.
+ (gcov_exit): Always try to create directory for output
+ file. Relocate filename at each use.
+ (__gcov_init): Initialize directory relocation prefix
+ if required. Strip off leading directories from
+ the initial filename.
+ * tsystem.h: include filenames.h
+ (DIR_SEPARATOR): Macro copied from system.h.
+ (DIR_SEPARATOR_2): Likewise.
+ * doc/gcov.texi (Cross-profiling): New node documenting
+ cross-profiling management.
+ * doc/invoke.texi (-fprofile-arcs): xref to cross-profiling.
+
+--- gcc-4/gcc/doc/gcov.texi.prefix 2005-03-28 11:56:34.000000000 -0800
++++ gcc-4/gcc/doc/gcov.texi 2005-05-04 15:07:44.000000000 -0700
+@@ -42,6 +42,7 @@ test code coverage in your programs.
+ * Invoking Gcov:: How to use gcov.
+ * Gcov and Optimization:: Using gcov with GCC optimization.
+ * Gcov Data Files:: The files used by gcov.
++* Cross-profiling:: Data files relocation.
+ @end menu
+
+ @node Gcov Intro
+@@ -531,3 +532,36 @@ information.
+ The full details of the file format is specified in @file{gcov-io.h},
+ and functions provided in that header file should be used to access the
+ coverage files.
++
++@node Cross-profiling
++@section Data files relocation to support cross-profiling
++
++Running the program will cause profile output to be generated. For each
++source file compiled with @option{-fprofile-arcs}, an accompanying @file{.gcda}
++file will be placed in the object file directory. That implicitly requires
++running the program at the same system as it was build or having same
++absolute directory structure on the target system (program will try
++to create needed directory structure).
++
++To support cross-profiling, program compiled with @option{-fprofile-arcs}
++performs data file relocation basing on two environment variables:
++
++@itemize @bullet
++@item
++GCOV_PREFIX contains the prefix to add to the absolute paths
++in the object file.
++
++@item
++GCOV_PREFIX_STRIP indicates the how many initial directory names to strip off
++the hardwired absolute paths. Default value is 0.
++@end itemize
++
++For example, if object file @file{/user/build/foo.o} was build with
++@option{-fprofile-arcs}, the final executable will try to create data file
++@file{/user/build/foo.gcda} when running at the target system and will
++fail if corresponding directory does not exists and is not allowed to create.
++
++In this case, manipulating environment variables you can relocate data file
++to the suitable local directory. For our example, setting @samp{GCOV_PREFIX=/target/run}
++and @samp{GCOV_PREFIX_STRIP=1} values will force use of @file{/target/run/build/foo.gcda}
++file name.
+--- gcc-4/gcc/doc/invoke.texi.prefix 2005-05-04 11:21:00.000000000 -0700
++++ gcc-4/gcc/doc/invoke.texi 2005-05-04 15:07:44.000000000 -0700
+@@ -3420,6 +3420,7 @@ explicitly specified and it is not the f
+ the basename of the source file. In both cases any suffix is removed
+ (e.g.@: @file{foo.gcda} for input file @file{dir/foo.c}, or
+ @file{dir/foo.gcda} for output file specified as @option{-o dir/foo.o}).
++@xref{Cross-profiling}.
+
+ @cindex @command{gcov}
+ @item --coverage
+--- gcc-4/gcc/gcov-io.c.prefix 2005-04-28 16:11:30.000000000 -0700
++++ gcc-4/gcc/gcov-io.c 2005-05-04 20:02:35.000000000 -0700
+@@ -55,13 +55,14 @@ static inline gcov_unsigned_t from_file
+
+ GCOV_LINKAGE int
+ #if IN_LIBGCOV
+-gcov_open (const char *name)
++gcov_open (const char *prefix, const char *name)
+ #else
+ gcov_open (const char *name, int mode)
+ #endif
+ {
+ #if IN_LIBGCOV
+ const int mode = 0;
++ char *tmp;
+ #endif
+ #if GCOV_LOCKED
+ struct flock s_flock;
+@@ -82,6 +83,13 @@ gcov_open (const char *name, int mode)
+ #if !IN_LIBGCOV
+ gcov_var.endian = 0;
+ #endif
++
++#if IN_LIBGCOV
++ /* Build complete filename with prefix */
++ tmp = alloca (strlen (prefix) + strlen (name) + 1);
++ name = strcat (strcpy (tmp, prefix), name);
++#endif
++
+ #if GCOV_LOCKED
+ if (mode > 0)
+ fd = open (name, O_RDWR);
+--- gcc-4/gcc/gcov-io.h.prefix 2005-05-02 17:43:08.000000000 -0700
++++ gcc-4/gcc/gcov-io.h 2005-05-04 15:07:44.000000000 -0700
+@@ -515,7 +515,7 @@ GCOV_LINKAGE struct gcov_var
+ functions for writing. Your file may become corrupted if you break
+ these invariants. */
+ #if IN_LIBGCOV
+-GCOV_LINKAGE int gcov_open (const char */*name*/) ATTRIBUTE_HIDDEN;
++GCOV_LINKAGE int gcov_open (const char */*prefix*/, const char */*name*/) ATTRIBUTE_HIDDEN;
+ #else
+ GCOV_LINKAGE int gcov_open (const char */*name*/, int /*direction*/);
+ GCOV_LINKAGE int gcov_magic (gcov_unsigned_t, gcov_unsigned_t);
+--- gcc-4/gcc/libgcov.c.prefix 2005-04-28 16:11:30.000000000 -0700
++++ gcc-4/gcc/libgcov.c 2005-05-04 15:07:44.000000000 -0700
+@@ -92,6 +92,70 @@ static struct gcov_info *gcov_list;
+ object file included in multiple programs. */
+ static gcov_unsigned_t gcov_crc32;
+
++/* Directory prefix to relocate coverage data file names */
++static char *gcov_prefix = 0;
++
++/* Level of dirs to strip off the initial filename to relocate */
++static int gcov_prefix_strip = 0;
++
++static int
++create_file_directory (const char *prefix, const char *filename)
++{
++ char *dname;
++ char sep, *r, *s;
++ size_t plen, flen;
++
++ /* Detect directory separator */
++ s = strrchr (prefix, DIR_SEPARATOR);
++#ifdef DIR_SEPARATOR_2
++ if (! s)
++ s = strrchr (prefix, DIR_SEPARATOR_2);
++#endif
++ if (s)
++ sep = *s;
++ else
++ sep = DIR_SEPARATOR;
++
++ /* join prefix and filename, split path */
++ plen = strlen(prefix);
++ flen = strlen(filename);
++ r = alloca(plen + flen + 1);
++ strncpy(r, prefix, plen);
++ strncpy(r + plen, filename, flen);
++ r[plen + flen] = '\0';
++ s = strrchr(r, sep);
++ if (s)
++ *(s + 1) = '\0';
++
++ if (access (r, F_OK) == 0)
++ return 0;
++
++ /* Skip consecutive separators. */
++ for (dname = r; *dname && *dname == sep; ++dname);
++ while (1)
++ {
++ char *s = strchr (dname, sep);
++ if (s == 0)
++ break;
++ *s = '\0';
++ /* Try to make directory if it doesn't already exist. */
++ if (access (r, F_OK) == -1
++ && mkdir (r, 0755) == -1
++ /* The directory might have been made by another process. */
++ && errno != EEXIST)
++ {
++ *s = sep;
++ fprintf (stderr, "profiling:%s:Cannot create directory\n", r);
++ return -1;
++ };
++ *s = sep;
++ /* Skip consecutive separators. */
++ for (dname = s + 1; *dname && *dname == sep; ++dname)
++ ;
++ }
++ return 0;
++}
++
+ static int
+ gcov_version (struct gcov_info *ptr, gcov_unsigned_t version)
+ {
+@@ -103,8 +167,8 @@ gcov_version (struct gcov_info *ptr, gco
+ GCOV_UNSIGNED2STRING (e, GCOV_VERSION);
+
+ fprintf (stderr,
+- "profiling:%s:Version mismatch - expected %.4s got %.4s\n",
+- ptr->filename, e, v);
++ "profiling:%s%s:Version mismatch - expected %.4s got %.4s\n",
++ gcov_prefix, ptr->filename, e, v);
+ return 0;
+ }
+ return 1;
+@@ -205,9 +269,16 @@ gcov_exit (void)
+ fi_stride &= ~(__alignof__ (struct gcov_fn_info) - 1);
+ }
+
+- if (!gcov_open (gi_ptr->filename))
++ if (create_file_directory (gcov_prefix, gi_ptr->filename))
++ {
++ fprintf (stderr, "profiling:%s%s:Skip\n", gcov_prefix,
++ gi_ptr->filename);
++ continue;
++ }
++ else if (!gcov_open (gcov_prefix, gi_ptr->filename))
+ {
+- fprintf (stderr, "profiling:%s:Cannot open\n", gi_ptr->filename);
++ fprintf (stderr, "profiling:%s%s:Cannot open\n", gcov_prefix,
++ gi_ptr->filename);
+ continue;
+ }
+
+@@ -217,8 +288,8 @@ gcov_exit (void)
+ /* Merge data from file. */
+ if (tag != GCOV_DATA_MAGIC)
+ {
+- fprintf (stderr, "profiling:%s:Not a gcov data file\n",
+- gi_ptr->filename);
++ fprintf (stderr, "profiling:%s%s:Not a gcov data file\n",
++ gcov_prefix, gi_ptr->filename);
+ goto read_fatal;
+ }
+ length = gcov_read_unsigned ();
+@@ -245,8 +316,8 @@ gcov_exit (void)
+ || gcov_read_unsigned () != fi_ptr->checksum)
+ {
+ read_mismatch:;
+- fprintf (stderr, "profiling:%s:Merge mismatch for %s\n",
+- gi_ptr->filename,
++ fprintf (stderr, "profiling:%s%s:Merge mismatch for %s\n",
++ gcov_prefix, gi_ptr->filename,
+ f_ix + 1 ? "function" : "summaries");
+ goto read_fatal;
+ }
+@@ -305,7 +376,8 @@ gcov_exit (void)
+
+ read_error:;
+ fprintf (stderr, error < 0 ? "profiling:%s:Overflow merging\n"
+- : "profiling:%s:Error merging\n", gi_ptr->filename);
++ : "profiling:%s%s:Error merging\n", gcov_prefix,
++ gi_ptr->filename);
+
+ read_fatal:;
+ gcov_close ();
+@@ -355,8 +427,8 @@ gcov_exit (void)
+ && (!GCOV_LOCKED || cs_all->runs == cs_prg->runs)
+ && memcmp (cs_all, cs_prg, sizeof (*cs_all)))
+ {
+- fprintf (stderr, "profiling:%s:Invocation mismatch - some data files may have been removed%s",
+- gi_ptr->filename, GCOV_LOCKED
++ fprintf (stderr, "profiling:%s%s:Invocation mismatch - some data files may have been removed%s",
++ gcov_prefix, gi_ptr->filename, GCOV_LOCKED
+ ? "" : " or concurrent update without locking support");
+ all.checksum = ~0u;
+ }
+@@ -419,9 +491,9 @@ gcov_exit (void)
+ gcov_write_unsigned (0);
+ if ((error = gcov_close ()))
+ fprintf (stderr, error < 0 ?
+- "profiling:%s:Overflow writing\n" :
+- "profiling:%s:Error writing\n",
+- gi_ptr->filename);
++ "profiling:%s%s:Overflow writing\n" :
++ "profiling:%s%s:Error writing\n",
++ gcov_prefix, gi_ptr->filename);
+ }
+ }
+
+@@ -431,11 +503,69 @@ gcov_exit (void)
+ void
+ __gcov_init (struct gcov_info *info)
+ {
++ /* Save initial filename pointer to calculate CRC. */
++ const char *ptr = info->filename;
++
+ if (!info->version)
+ return;
++
++ /* Initialize directory prefix if requred */
++ if (gcov_prefix == 0)
++ {
++ if ((gcov_prefix = getenv("GCOV_PREFIX")))
++ {
++ char *tmp;
++
++ /* Normalize prefix: take off trailing separator. */
++ tmp = gcov_prefix + strlen(gcov_prefix) - 1;
++ if (IS_DIR_SEPARATOR(*tmp))
++ *tmp = '\0';
++
++ /* Check if the level of dirs to strip off specified */
++ if ((tmp = getenv("GCOV_PREFIX_STRIP")))
++ {
++ gcov_prefix_strip = atoi (tmp);
++ /* Do not consider negative values. */
++ if (gcov_prefix_strip < 0)
++ gcov_prefix_strip = 0;
++ };
++ }
++ else
++ gcov_prefix = (char *) "";
++ };
++
++ /* Strip off leading directories from the initial filename */
++ if (gcov_prefix_strip > 0)
++ {
++ char sep, *s;
++ int level;
++ const char *fname = info->filename;
++
++ /* Detect directory separator */
++ s = strrchr (fname, DIR_SEPARATOR);
++#ifdef DIR_SEPARATOR_2
++ if (! s)
++ s = strrchr (fname, DIR_SEPARATOR_2);
++#endif
++ if (s)
++ sep = *s;
++ else
++ sep = DIR_SEPARATOR;
++
++ /* Skip selected directory levels */
++ for ( level = gcov_prefix_strip; level > 0; level--)
++ if ((s = strchr(fname + 1, sep)))
++ fname = s;
++ else
++ break;
++
++ /* From this point info block refers stripped file name and
++ further operations must add prefix to get complete name.*/
++ info->filename = fname;
++ };
++
+ if (gcov_version (info, info->version))
+ {
+- const char *ptr = info->filename;
+ gcov_unsigned_t crc32 = gcov_crc32;
+
+ do
+--- gcc-4/gcc/tsystem.h.prefix 2005-03-29 16:06:26.000000000 -0800
++++ gcc-4/gcc/tsystem.h 2005-05-04 15:07:44.000000000 -0700
+@@ -131,4 +131,15 @@ extern int errno;
+ unreachable default case of a switch. Do not use gcc_assert(0). */
+ #define gcc_unreachable() (abort ())
+
++/* Filename handling macros. */
++#include "filenames.h"
++
++/* These should be phased out in favor of IS_DIR_SEPARATOR, where possible. */
++#ifndef DIR_SEPARATOR
++# define DIR_SEPARATOR '/'
++# ifdef HAVE_DOS_BASED_FILE_SYSTEM
++# define DIR_SEPARATOR_2 '\\'
++# endif
++#endif
++
+ #endif /* ! GCC_TSYSTEM_H */
diff --git a/packages/gcc/gcc-cross_3.3.3.bb b/packages/gcc/gcc-cross_3.3.3.bb
index d01528c5ec..44ba65269e 100644
--- a/packages/gcc/gcc-cross_3.3.3.bb
+++ b/packages/gcc/gcc-cross_3.3.3.bb
@@ -43,10 +43,6 @@ do_stage_append () {
rm -rf ${CROSS_DIR}/$d
done
- # These aren't useful on the cross toolchain
- rm -f ${CROSS_DIR}/bin/*gcov
- rm -f ${CROSS_DIR}/bin/*gccbug
-
# Fix a few include links so cross builds are happier
if [ ! -e ${STAGING_INCDIR}/c++ ]; then
mkdir -p ${STAGING_INCDIR}
diff --git a/packages/gcc/gcc-package.inc b/packages/gcc/gcc-package.inc
index 4dcc72e879..425e906a57 100644
--- a/packages/gcc/gcc-package.inc
+++ b/packages/gcc/gcc-package.inc
@@ -67,34 +67,33 @@ do_install () {
rm -r ${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/install-tools
# Hack around specs file assumptions
- sed -i -e '/^*cross_compile:$/ { n; s/1/0/; }' ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/specs &>/dev/null || true
+ test -f ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/specs && sed -i -e '/^*cross_compile:$/ { n; s/1/0/; }' ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/specs
# Move libgcc_s into /lib
mkdir -p ${D}${base_libdir}
mv ${D}${libdir}/libgcc_s.so.* ${D}${base_libdir}
- rm ${D}${libdir}/libgcc_s.so
+ rm -f ${D}${libdir}/libgcc_s.so
ln -sf `echo ${libdir}/gcc/${TARGET_SYS}/${BINV} \
| tr -s / \
| sed -e 's,^/,,' -e 's,[^/]*,..,g'`/lib/libgcc_s.so.1 \
${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/libgcc_s.so
# We don't need libtool libraries
- rm ${D}${libdir}/libg2c.la &>/dev/null || true
-
+ rm -f ${D}${libdir}/libg2c.la &>/dev/null || true
# Cleanup manpages..
- rm -r ${D}${mandir}/man7
+ rm -rf ${D}${mandir}/man7
# We use libiberty from binutils
- rm ${D}${libdir}/libiberty.a
+ rm -f ${D}${libdir}/libiberty.a
cd ${D}${bindir}
# We care about g++ not c++
- rm *c++
+ rm -f *c++
# We don't care about the gcc-<version> ones for this
- rm *gcc-?.?*
+ rm -f *gcc-?.?*
# These sometimes show up, they are strange, we remove them
rm -f ${TARGET_ARCH}-*${TARGET_ARCH}-*
diff --git a/packages/gcc/gcc3-build-cross.inc b/packages/gcc/gcc3-build-cross.inc
index 384886c76e..e8a23e0d40 100644
--- a/packages/gcc/gcc3-build-cross.inc
+++ b/packages/gcc/gcc3-build-cross.inc
@@ -21,10 +21,6 @@ do_stage_append () {
rm -rf ${CROSS_DIR}/$d
done
- # These aren't useful on the cross toolchain
- rm -f ${CROSS_DIR}/bin/*gcov
- rm -f ${CROSS_DIR}/bin/*gccbug
-
# Fix a few include links so cross builds are happier
if [ ! -e ${STAGING_INCDIR}/c++ ]; then
mkdir -p ${STAGING_INCDIR}
diff --git a/packages/gcc/gcc3-build.inc b/packages/gcc/gcc3-build.inc
index 8048b45fba..74ad11033f 100644
--- a/packages/gcc/gcc3-build.inc
+++ b/packages/gcc/gcc3-build.inc
@@ -81,6 +81,7 @@ do_configure () {
export LD_FOR_TARGET="${HOST_PREFIX}ld"
export NM_FOR_TARGET="${HOST_PREFIX}nm"
export AR_FOR_TARGET="${HOST_PREFIX}ar"
+ export GFORTRAN_FOR_TARGET="gfortran"
export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib"
fi
export CC_FOR_BUILD="${BUILD_CC}"
diff --git a/packages/gcc/gcc4-build.inc b/packages/gcc/gcc4-build.inc
index 8b80f4820a..a2061194d7 100644
--- a/packages/gcc/gcc4-build.inc
+++ b/packages/gcc/gcc4-build.inc
@@ -1,5 +1,5 @@
FORTRAN = "f95"
-HAS_GFORTRAN = "yes"
+HAS_GFORTRAN ?= "yes"
HAS_G2C = "no"
include gcc3-build.inc
diff --git a/packages/gcc/gcc_3.4.3.bb b/packages/gcc/gcc_3.4.3.bb
index c92746be58..1cd108aa34 100644
--- a/packages/gcc/gcc_3.4.3.bb
+++ b/packages/gcc/gcc_3.4.3.bb
@@ -22,6 +22,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://gcc-3.4.0-arm-bigendian-uclibc.patch;patch=1 \
file://GCC3.4.0VisibilityPatch.diff;patch=1 \
file://15342.patch;patch=1 \
- file://always-fixincperm.patch;patch=1"
+ file://always-fixincperm.patch;patch=1 \
+ file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1"
include gcc3-build.inc
diff --git a/packages/gcc/gcc_3.4.4.bb b/packages/gcc/gcc_3.4.4.bb
index 2d04b0ed08..579678066f 100644
--- a/packages/gcc/gcc_3.4.4.bb
+++ b/packages/gcc/gcc_3.4.4.bb
@@ -22,7 +22,8 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://gcc-3.4.0-arm-bigendian-uclibc.patch;patch=1 \
file://GCC3.4.0VisibilityPatch.diff;patch=1 \
file://15342.patch;patch=1 \
- file://always-fixincperm.patch;patch=1"
+ file://always-fixincperm.patch;patch=1 \
+ file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1"
SRC_URI += "file://gcc34-configure.in.patch;patch=1"
SRC_URI += "file://gcc34-thumb-support.patch;patch=1"
diff --git a/packages/gcc/gcc_4.0.2.bb b/packages/gcc/gcc_4.0.2.bb
index d0c22b06d6..a83a030c8b 100644
--- a/packages/gcc/gcc_4.0.2.bb
+++ b/packages/gcc/gcc_4.0.2.bb
@@ -13,7 +13,8 @@ include gcc-package.inc
SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://arm-nolibfloat.patch;patch=1 \
file://arm-softfloat.patch;patch=1 \
- file://ldflags.patch;patch=1"
+ file://ldflags.patch;patch=1 \
+ file://GCOV_PREFIX_STRIP-cross-profile_4.1.patch;patch=1"
# uclibc patches below
SRC_URI_append = " file://100-uclibc-conf.patch;patch=1 \
diff --git a/packages/gdb/gdb-cross_6.3.bb b/packages/gdb/gdb-cross_6.3.bb
index a6823b6373..1029f7bfe0 100644
--- a/packages/gdb/gdb-cross_6.3.bb
+++ b/packages/gdb/gdb-cross_6.3.bb
@@ -32,5 +32,7 @@ do_configure () {
}
do_stage() {
- :
+ oe_runmake 'DESTDIR=${CROSS_DIR}' install
+ cp -a ${CROSS_DIR}${prefix}/* ${CROSS_DIR}
+ rm -rf ${CROSS_DIR}${prefix}
}
diff --git a/packages/geode-drivers/geode-accessbus5536_2.6.11.bb b/packages/geode-drivers/geode-accessbus5536_2.6.11.bb
index 97071bc91f..368fa428ad 100644
--- a/packages/geode-drivers/geode-accessbus5536_2.6.11.bb
+++ b/packages/geode-drivers/geode-accessbus5536_2.6.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "Linux Access Bus driver for the AMD Geode 5535/5536"
HOMEPAGE = "http://www.amd.com/embedded"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
PR = "r0"
AMD_DRIVER_VERSION = "01.00.0401"
diff --git a/packages/geode-drivers/geode-aeslx_2.6.11.bb b/packages/geode-drivers/geode-aeslx_2.6.11.bb
index 03b04d5081..bb55c23775 100644
--- a/packages/geode-drivers/geode-aeslx_2.6.11.bb
+++ b/packages/geode-drivers/geode-aeslx_2.6.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "Linux AES Driver for the AMD Geode LX processor"
HOMEPAGE = "http://www.amd.com/embedded"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
PR = "r0"
AMD_DRIVER_VERSION = "02.01.0100"
diff --git a/packages/geode-drivers/geode-alsa5536_2.6.11.bb b/packages/geode-drivers/geode-alsa5536_2.6.11.bb
index 8e3b85bcd4..177d6cca4f 100644
--- a/packages/geode-drivers/geode-alsa5536_2.6.11.bb
+++ b/packages/geode-drivers/geode-alsa5536_2.6.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "Linux 2.6.11 ALSA Audio Driver for the AMD Geode 5535/5536 companion chip"
HOMEPAGE = "http://www.amd.com/embedded"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
PR = "r0"
AMD_DRIVER_VERSION = "1.00.0500"
diff --git a/packages/geode-drivers/geode-modules.inc b/packages/geode-drivers/geode-modules.inc
index 6d3d2363dd..6b8d9bdbab 100644
--- a/packages/geode-drivers/geode-modules.inc
+++ b/packages/geode-drivers/geode-modules.inc
@@ -4,7 +4,7 @@
LICENSE = "GPL"
HOMEPAGE = "http://www.amd.com/embedded"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
inherit autotools module-base
diff --git a/packages/geode-drivers/geode-v4l2lx_2.6.11.bb b/packages/geode-drivers/geode-v4l2lx_2.6.11.bb
index cc80a2c8db..a6a6b2633b 100644
--- a/packages/geode-drivers/geode-v4l2lx_2.6.11.bb
+++ b/packages/geode-drivers/geode-v4l2lx_2.6.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "Linux video capture/overlay driver for the AMD Geode LX"
HOMEPAGE = "http://www.amd.com/embedded"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
PR = "r0"
AMD_DRIVER_VERSION = "03.02.0100"
diff --git a/packages/gpe-calendar/gpe-calendar_cvs.bb b/packages/gpe-calendar/gpe-calendar_cvs.bb
index f75987c762..228d701fec 100644
--- a/packages/gpe-calendar/gpe-calendar_cvs.bb
+++ b/packages/gpe-calendar/gpe-calendar_cvs.bb
@@ -2,7 +2,7 @@ LICENSE = "GPL"
DEFAULT_PREFERENCE = "-1"
S = "${WORKDIR}/${PN}"
-PV = "0.73+cvs${SRCDATE}"
+PV = "0.72+cvs${SRCDATE}"
PR = "r1"
PARALLEL_MAKE = ""
diff --git a/packages/gpm/gpm-1.20.1/init b/packages/gpm/gpm-1.20.1/init
index bb6e4a3f55..f90fce9fc0 100644
--- a/packages/gpm/gpm-1.20.1/init
+++ b/packages/gpm/gpm-1.20.1/init
@@ -1,12 +1,12 @@
-#! /bin/sh i-e
+#! /bin/sh
# Grab the common functions
-. /etc/init.d/functions
+#. /etc/init.d/functions
# FIXME:
# Add a configuration file for GPM here
-test -x /bin/gpm || exit 0
+test -x /usr/sbin/gpm || exit 0
case "$1" in
start)
@@ -14,10 +14,12 @@ case "$1" in
mkfifo /dev/gpmdata
fi
- action "Starting GPM:" start-stop-daemon -S -x /bin/gpm -- -R -m /dev/mouse -t imps2
+ echo "Starting GPM:"
+ start-stop-daemon -S -x /usr/sbin/gpm -- -R -m /dev/psaux -t ps2
;;
stop)
- action "Stopping GPM:" start-stop-daemon -K -x /bin/gpm
+ echo "Stopping GPM:"
+ start-stop-daemon -K -x /usr/sbin/gpm
;;
restart|force-reload)
$0 stop
diff --git a/packages/hibernate-script/hibernate-script_1.12.bb b/packages/hibernate-script/hibernate-script_1.12.bb
index fc53e49a75..07b47210d5 100644
--- a/packages/hibernate-script/hibernate-script_1.12.bb
+++ b/packages/hibernate-script/hibernate-script_1.12.bb
@@ -4,7 +4,7 @@
DESCRIPTION="Hibernate script supporting multiple suspend methods"
LICENSE="GPL"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
HOMEPAGE="http://www.suspend2.net"
SRC_URI="http://www.suspend2.net/downloads/all/${PN}-${PV}.tar.gz \
diff --git a/packages/ica/ica-bin_8.0.bb b/packages/ica/ica-bin_8.0.bb
index b8afd1aaa5..af5b380662 100644
--- a/packages/ica/ica-bin_8.0.bb
+++ b/packages/ica/ica-bin_8.0.bb
@@ -2,9 +2,9 @@
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
-DEPENDS="x11 xaw rpm2cpio-native"
+DEPENDS="libx11 libxaw rpm2cpio-native"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
HOMEPAGE="www.citrix.com/download/"
SRC_URI="file://${DL_DIR}/ICAClient-8.0-1.i386.rpm"
diff --git a/packages/kbd/kbd_1.12.bb b/packages/kbd/kbd_1.12.bb
index 24dc773e85..9b0250334e 100644
--- a/packages/kbd/kbd_1.12.bb
+++ b/packages/kbd/kbd_1.12.bb
@@ -2,7 +2,7 @@
# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
SRC_URI="http://ftp.debian.org/debian/pool/main/k/kbd/kbd_1.12.orig.tar.gz"
diff --git a/packages/libaio/libaio-oracle_0.3.0.bb b/packages/libaio/libaio-oracle_0.3.0.bb
index e3aa23d78b..88f0fb5fff 100644
--- a/packages/libaio/libaio-oracle_0.3.0.bb
+++ b/packages/libaio/libaio-oracle_0.3.0.bb
@@ -4,7 +4,7 @@
DESCRIPTION="This is a library for accessing the new AIO system calls (asynchronous i/o) for the Linux kernel."
HOMEPAGE="http://oss.oracle.com/projects/libaio-oracle"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
LICENSE="GPL"
SRC_URI="http://oss.oracle.com/projects/libaio-oracle/dist/files/${PN}-${PV}.tar.gz"
diff --git a/packages/libaio/libaio_0.3.103.bb b/packages/libaio/libaio_0.3.103.bb
index 1930f77c85..201e116623 100644
--- a/packages/libaio/libaio_0.3.103.bb
+++ b/packages/libaio/libaio_0.3.103.bb
@@ -4,7 +4,7 @@
DESCRIPTION="Asynchronous input/output library that uses the kernels native interface"
HOMEPAGE="https://rhn.redhat.com/errata/RHBA-2005-085.html"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
LICENSE="GPL"
SRC_URI="http://search.belnet.be/packages/lineox/4.0/updates/SRPMS/${P}-3.src.rpm \
diff --git a/packages/libdvdnav/.mtn2git_empty b/packages/libdvdnav/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libdvdnav/.mtn2git_empty
diff --git a/packages/libdvdnav/libdvdnav_0.1.10.bb b/packages/libdvdnav/libdvdnav_0.1.10.bb
new file mode 100644
index 0000000000..6d7a32e7d8
--- /dev/null
+++ b/packages/libdvdnav/libdvdnav_0.1.10.bb
@@ -0,0 +1,16 @@
+# libdvdnav .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://dvd.sourceforge.net/"
+DESCRIPTION="DVD navigation multimeda library"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+SRC_URI="${SOURCEFORGE_MIRROR}/dvd/${PN}-${PV}.tar.gz"
+
+inherit autotools
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/packages/libidl/libidl_0.8.3.bb b/packages/libidl/libidl_0.8.3.bb
index 5a6f5800d6..e743247390 100644
--- a/packages/libidl/libidl_0.8.3.bb
+++ b/packages/libidl/libidl_0.8.3.bb
@@ -2,13 +2,16 @@ LICENSE = "LGPL"
DESCRIPTION = "Library for parsing CORBA IDL files"
SECTION = "gnome/libs"
DEPENDS = "glib-2.0"
-PR = "r1"
+PR = "r2"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-${PV}.tar.bz2"
S = "${WORKDIR}/libIDL-${PV}"
inherit autotools pkgconfig
+# Firefox uses the libIDL-config-2 script instead of pkgconfig (for some
+# strange reason - so we do some sed fu to fix the path there
+
do_stage() {
oe_runmake install \
prefix=${STAGING_DIR} \
@@ -17,6 +20,9 @@ do_stage() {
libdir=${STAGING_LIBDIR} \
datadir=${STAGING_DATADIR} \
infodir=${STAGING_INFODIR}
+
+ cp ${STAGING_BINDIR}/libIDL-config-2 ${STAGING_BINDIR}/libIDL-config-2.orig
+ cat ${STAGING_BINDIR}/libIDL-config-2.orig | sed -e 's:${includedir}:${STAGING_INCDIR}:' > ${STAGING_BINDIR}/libIDL-config-2
}
FILES_${PN} = "${libdir}/*.so.*"
diff --git a/packages/libidl/libidl_0.8.6.bb b/packages/libidl/libidl_0.8.6.bb
index ee63b92e0a..42654231c5 100644
--- a/packages/libidl/libidl_0.8.6.bb
+++ b/packages/libidl/libidl_0.8.6.bb
@@ -2,15 +2,21 @@ LICENSE = "LGPL"
DESCRIPTION = "Library for parsing CORBA IDL files"
SECTION = "gnome/libs"
DEPENDS = "glib-2.0"
-PR = "r1"
+PR = "r2"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-${PV}.tar.bz2"
S = "${WORKDIR}/libIDL-${PV}"
inherit autotools pkgconfig
+# Firefox uses the libIDL-config-2 script instead of pkgconfig (for some
+# strange reason - so we do some sed fu to fix the path there
+
do_stage() {
autotools_stage_all
+
+ cp ${STAGING_BINDIR}/libIDL-config-2 ${STAGING_BINDIR}/libIDL-config-2.orig
+ cat ${STAGING_BINDIR}/libIDL-config-2.orig | sed -e 's:${includedir}:${STAGING_INCDIR}:' > ${STAGING_BINDIR}/libIDL-config-2
}
FILES_${PN} = "${libdir}/*.so.*"
diff --git a/packages/linux/linux-geodelx_2.6.11.bb b/packages/linux/linux-geodelx_2.6.11.bb
index 001f74da38..f5b4f622b2 100644
--- a/packages/linux/linux-geodelx_2.6.11.bb
+++ b/packages/linux/linux-geodelx_2.6.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "Linux kernel for the AMD Geode GX5535/LX5536"
HOMEPAGE = "http://www.amd.com/embedded"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
LICENSE = "GPL"
PR = "r0"
diff --git a/packages/lm_sensors/.mtn2git_empty b/packages/lm_sensors/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/lm_sensors/.mtn2git_empty
diff --git a/packages/lm_sensors/lmsensors-apps_2.9.2.bb b/packages/lm_sensors/lmsensors-apps_2.9.2.bb
new file mode 100644
index 0000000000..cc5dfe4ff7
--- /dev/null
+++ b/packages/lm_sensors/lmsensors-apps_2.9.2.bb
@@ -0,0 +1,32 @@
+# lmsensors-apps .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://secure.netroedge.com/~lm78/"
+DESCRIPTION="Hardware health monitoring applications"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+SRC_URI="http://secure.netroedge.com/~lm78/archive/lm_sensors-${PV}.tar.gz"
+
+S="${WORKDIR}/lm_sensors-${PV}"
+
+PACKAGES="sensors-i2cdump sensors-i2cset sensors-i2cdetect"
+
+FILES_sensors-i2cdump="${bindir}/i2cdump"
+FILES_sensors-i2cset="${bindir}/i2cset"
+FILES_sensors-i2cdetect="${bindir}/i2cdetect"
+
+do_configure() {
+}
+
+do_compile() {
+ oe_runmake LINUX=${STAGING_KERNEL_DIR} user
+}
+
+APPS="${S}/prog/dump/i2cdump ${S}/prog/dump/i2cset ${S}/prog/detect/i2cdetect"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${APPS} ${D}${bindir}
+}
diff --git a/packages/ltt/ltt-0.9.6-pre4/.mtn2git_empty b/packages/ltt/ltt-0.9.6-pre4/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/ltt/ltt-0.9.6-pre4/.mtn2git_empty
diff --git a/packages/ltt/ltt-0.9.6-pre4/m4.patch b/packages/ltt/ltt-0.9.6-pre4/m4.patch
new file mode 100644
index 0000000000..384840b055
--- /dev/null
+++ b/packages/ltt/ltt-0.9.6-pre4/m4.patch
@@ -0,0 +1,401 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- /dev/null
++++ TraceToolkit-0.9.6pre2/m4/gtk.m4
+@@ -0,0 +1,194 @@
++# Configure paths for GTK+
++# Owen Taylor 97-11-3
++
++dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
++dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
++dnl
++AC_DEFUN(AM_PATH_GTK,
++[dnl
++dnl Get the cflags and libraries from the gtk-config script
++dnl
++AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
++ gtk_config_prefix="$withval", gtk_config_prefix="")
++AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
++ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
++AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
++ , enable_gtktest=yes)
++
++ for module in . $4
++ do
++ case "$module" in
++ gthread)
++ gtk_config_args="$gtk_config_args gthread"
++ ;;
++ esac
++ done
++
++ if test x$gtk_config_exec_prefix != x ; then
++ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
++ if test x${GTK_CONFIG+set} != xset ; then
++ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
++ fi
++ fi
++ if test x$gtk_config_prefix != x ; then
++ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
++ if test x${GTK_CONFIG+set} != xset ; then
++ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
++ fi
++ fi
++
++ AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
++ min_gtk_version=ifelse([$1], ,0.99.7,$1)
++ AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
++ no_gtk=""
++ if test "$GTK_CONFIG" = "no" ; then
++ no_gtk=yes
++ else
++ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
++ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
++ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
++ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
++ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
++ if test "x$enable_gtktest" = "xyes" ; then
++ ac_save_CFLAGS="$CFLAGS"
++ ac_save_LIBS="$LIBS"
++ CFLAGS="$CFLAGS $GTK_CFLAGS"
++ LIBS="$GTK_LIBS $LIBS"
++dnl
++dnl Now check if the installed GTK is sufficiently new. (Also sanity
++dnl checks the results of gtk-config to some extent
++dnl
++ rm -f conf.gtktest
++ AC_TRY_RUN([
++#include <gtk/gtk.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main ()
++{
++ int major, minor, micro;
++ char *tmp_version;
++
++ system ("touch conf.gtktest");
++
++ /* HP/UX 9 (%@#!) writes to sscanf strings */
++ tmp_version = g_strdup("$min_gtk_version");
++ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
++ printf("%s, bad version string\n", "$min_gtk_version");
++ exit(1);
++ }
++
++ if ((gtk_major_version != $gtk_config_major_version) ||
++ (gtk_minor_version != $gtk_config_minor_version) ||
++ (gtk_micro_version != $gtk_config_micro_version))
++ {
++ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
++ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
++ gtk_major_version, gtk_minor_version, gtk_micro_version);
++ printf ("*** was found! If gtk-config was correct, then it is best\n");
++ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
++ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
++ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
++ printf("*** required on your system.\n");
++ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
++ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
++ printf("*** before re-running configure\n");
++ }
++#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
++ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
++ (gtk_minor_version != GTK_MINOR_VERSION) ||
++ (gtk_micro_version != GTK_MICRO_VERSION))
++ {
++ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
++ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
++ printf("*** library (version %d.%d.%d)\n",
++ gtk_major_version, gtk_minor_version, gtk_micro_version);
++ }
++#endif /* defined (GTK_MAJOR_VERSION) ... */
++ else
++ {
++ if ((gtk_major_version > major) ||
++ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
++ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
++ {
++ return 0;
++ }
++ else
++ {
++ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
++ gtk_major_version, gtk_minor_version, gtk_micro_version);
++ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
++ major, minor, micro);
++ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
++ printf("***\n");
++ printf("*** If you have already installed a sufficiently new version, this error\n");
++ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
++ printf("*** being found. The easiest way to fix this is to remove the old version\n");
++ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
++ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
++ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
++ printf("*** so that the correct libraries are found at run-time))\n");
++ }
++ }
++ return 1;
++}
++],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ if test "x$no_gtk" = x ; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++ else
++ AC_MSG_RESULT(no)
++ if test "$GTK_CONFIG" = "no" ; then
++ echo "*** The gtk-config script installed by GTK could not be found"
++ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
++ echo "*** your path, or set the GTK_CONFIG environment variable to the"
++ echo "*** full path to gtk-config."
++ else
++ if test -f conf.gtktest ; then
++ :
++ else
++ echo "*** Could not run GTK test program, checking why..."
++ CFLAGS="$CFLAGS $GTK_CFLAGS"
++ LIBS="$LIBS $GTK_LIBS"
++ AC_TRY_LINK([
++#include <gtk/gtk.h>
++#include <stdio.h>
++], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
++ [ echo "*** The test program compiled, but did not run. This usually means"
++ echo "*** that the run-time linker is not finding GTK or finding the wrong"
++ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
++ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
++ echo "*** to the installed location Also, make sure you have run ldconfig if that"
++ echo "*** is required on your system"
++ echo "***"
++ echo "*** If you have an old version installed, it is best to remove it, although"
++ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
++ echo "***"
++ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
++ echo "*** came with the system with the command"
++ echo "***"
++ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
++ [ echo "*** The test program failed to compile or link. See the file config.log for the"
++ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
++ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
++ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ GTK_CFLAGS=""
++ GTK_LIBS=""
++ ifelse([$3], , :, [$3])
++ fi
++ AC_SUBST(GTK_CFLAGS)
++ AC_SUBST(GTK_LIBS)
++ rm -f conf.gtktest
++])
+--- /dev/null
++++ TraceToolkit-0.9.6pre2/m4/glib.m4
+@@ -0,0 +1,196 @@
++# Configure paths for GLIB
++# Owen Taylor 97-11-3
++
++dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
++dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
++dnl gthread is specified in MODULES, pass to glib-config
++dnl
++AC_DEFUN(AM_PATH_GLIB,
++[dnl
++dnl Get the cflags and libraries from the glib-config script
++dnl
++AC_ARG_WITH(glib-prefix,[ --with-glib-prefix=PFX Prefix where GLIB is installed (optional)],
++ glib_config_prefix="$withval", glib_config_prefix="")
++AC_ARG_WITH(glib-exec-prefix,[ --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
++ glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
++AC_ARG_ENABLE(glibtest, [ --disable-glibtest Do not try to compile and run a test GLIB program],
++ , enable_glibtest=yes)
++
++ if test x$glib_config_exec_prefix != x ; then
++ glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
++ if test x${GLIB_CONFIG+set} != xset ; then
++ GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
++ fi
++ fi
++ if test x$glib_config_prefix != x ; then
++ glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
++ if test x${GLIB_CONFIG+set} != xset ; then
++ GLIB_CONFIG=$glib_config_prefix/bin/glib-config
++ fi
++ fi
++
++ for module in . $4
++ do
++ case "$module" in
++ gmodule)
++ glib_config_args="$glib_config_args gmodule"
++ ;;
++ gthread)
++ glib_config_args="$glib_config_args gthread"
++ ;;
++ esac
++ done
++
++ AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
++ min_glib_version=ifelse([$1], ,0.99.7,$1)
++ AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
++ no_glib=""
++ if test "$GLIB_CONFIG" = "no" ; then
++ no_glib=yes
++ else
++ GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
++ GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
++ glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
++ glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
++ glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
++ if test "x$enable_glibtest" = "xyes" ; then
++ ac_save_CFLAGS="$CFLAGS"
++ ac_save_LIBS="$LIBS"
++ CFLAGS="$CFLAGS $GLIB_CFLAGS"
++ LIBS="$GLIB_LIBS $LIBS"
++dnl
++dnl Now check if the installed GLIB is sufficiently new. (Also sanity
++dnl checks the results of glib-config to some extent
++dnl
++ rm -f conf.glibtest
++ AC_TRY_RUN([
++#include <glib.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main ()
++{
++ int major, minor, micro;
++ char *tmp_version;
++
++ system ("touch conf.glibtest");
++
++ /* HP/UX 9 (%@#!) writes to sscanf strings */
++ tmp_version = g_strdup("$min_glib_version");
++ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
++ printf("%s, bad version string\n", "$min_glib_version");
++ exit(1);
++ }
++
++ if ((glib_major_version != $glib_config_major_version) ||
++ (glib_minor_version != $glib_config_minor_version) ||
++ (glib_micro_version != $glib_config_micro_version))
++ {
++ printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
++ $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
++ glib_major_version, glib_minor_version, glib_micro_version);
++ printf ("*** was found! If glib-config was correct, then it is best\n");
++ printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
++ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
++ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
++ printf("*** required on your system.\n");
++ printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
++ printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
++ printf("*** before re-running configure\n");
++ }
++ else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
++ (glib_minor_version != GLIB_MINOR_VERSION) ||
++ (glib_micro_version != GLIB_MICRO_VERSION))
++ {
++ printf("*** GLIB header files (version %d.%d.%d) do not match\n",
++ GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
++ printf("*** library (version %d.%d.%d)\n",
++ glib_major_version, glib_minor_version, glib_micro_version);
++ }
++ else
++ {
++ if ((glib_major_version > major) ||
++ ((glib_major_version == major) && (glib_minor_version > minor)) ||
++ ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
++ {
++ return 0;
++ }
++ else
++ {
++ printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
++ glib_major_version, glib_minor_version, glib_micro_version);
++ printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
++ major, minor, micro);
++ printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
++ printf("***\n");
++ printf("*** If you have already installed a sufficiently new version, this error\n");
++ printf("*** probably means that the wrong copy of the glib-config shell script is\n");
++ printf("*** being found. The easiest way to fix this is to remove the old version\n");
++ printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
++ printf("*** correct copy of glib-config. (In this case, you will have to\n");
++ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
++ printf("*** so that the correct libraries are found at run-time))\n");
++ }
++ }
++ return 1;
++}
++],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ if test "x$no_glib" = x ; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++ else
++ AC_MSG_RESULT(no)
++ if test "$GLIB_CONFIG" = "no" ; then
++ echo "*** The glib-config script installed by GLIB could not be found"
++ echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
++ echo "*** your path, or set the GLIB_CONFIG environment variable to the"
++ echo "*** full path to glib-config."
++ else
++ if test -f conf.glibtest ; then
++ :
++ else
++ echo "*** Could not run GLIB test program, checking why..."
++ CFLAGS="$CFLAGS $GLIB_CFLAGS"
++ LIBS="$LIBS $GLIB_LIBS"
++ AC_TRY_LINK([
++#include <glib.h>
++#include <stdio.h>
++], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
++ [ echo "*** The test program compiled, but did not run. This usually means"
++ echo "*** that the run-time linker is not finding GLIB or finding the wrong"
++ echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
++ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
++ echo "*** to the installed location Also, make sure you have run ldconfig if that"
++ echo "*** is required on your system"
++ echo "***"
++ echo "*** If you have an old version installed, it is best to remove it, although"
++ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
++ echo "***"
++ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
++ echo "*** came with the system with the command"
++ echo "***"
++ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
++ [ echo "*** The test program failed to compile or link. See the file config.log for the"
++ echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
++ echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
++ echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ GLIB_CFLAGS=""
++ GLIB_LIBS=""
++ ifelse([$3], , :, [$3])
++ fi
++ AC_SUBST(GLIB_CFLAGS)
++ AC_SUBST(GLIB_LIBS)
++ rm -f conf.glibtest
++])
diff --git a/packages/ltt/ltt_0.9.6-pre4.bb b/packages/ltt/ltt_0.9.6-pre4.bb
new file mode 100644
index 0000000000..d17d90d430
--- /dev/null
+++ b/packages/ltt/ltt_0.9.6-pre4.bb
@@ -0,0 +1,21 @@
+SECTION = "devel"
+DESCRIPTION = "The Linux trace toolkit is a suite of tools designed to \
+extract program execution details from the Linux operating system and \
+interpret them."
+LICENSE = "GPL"
+MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
+
+SRC_URI = "http://www.opersys.com/ftp/pub/LTT/ltt-${PV}.tar.bz2 \
+ file://m4.patch;patch=1"
+
+inherit autotools
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+EXTRA_OECONF = "--without-rtai \
+ --without-gtk"
+
+do_configure () {
+ rm -f ${S}/acinclude.m4
+ autotools_do_configure
+}
diff --git a/packages/mtd/mtd-utils_1.0.0.bb b/packages/mtd/mtd-utils_1.0.0.bb
new file mode 100644
index 0000000000..06347339a1
--- /dev/null
+++ b/packages/mtd/mtd-utils_1.0.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Tools for managing memory technology devices."
+SECTION = "base"
+DEPENDS = "zlib"
+HOMEPAGE = "http://www.linux-mtd.infradead.org/"
+LICENSE = "GPLv2"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.gz"
+
+CFLAGS_prepend = "-I${WORKDIR}/mtd-utils-${PV}/include "
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/packages/mtools/mtools_3.9.9.bb b/packages/mtools/mtools_3.9.9.bb
index 347ecf4776..71d200d96c 100644
--- a/packages/mtools/mtools_3.9.9.bb
+++ b/packages/mtools/mtools_3.9.9.bb
@@ -4,12 +4,12 @@
DESCRIPTION="Mtools is a collection of utilities for accessing MS-DOS disks from Unix without mounting them."
HOMEPAGE="http://mtools.linux.lu"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
LICENSE="GPL"
SRC_URI="http://mtools.linux.lu/mtools-${PV}.tar.gz \
file://mtools-makeinfo.patch;patch=1"
-DEPENDS = "tetex-native"
+#DEPENDS = "tetex-native"
inherit autotools
diff --git a/packages/mysql/mysql_4.1.18.bb b/packages/mysql/mysql_4.1.18.bb
index fe8c42dd88..d35442b50a 100644
--- a/packages/mysql/mysql_4.1.18.bb
+++ b/packages/mysql/mysql_4.1.18.bb
@@ -1,7 +1,9 @@
DESCRIPTION = "The MySQL Open Source Database System"
SECTION = "libs"
+HOMEPAGE = "http://www.mysql.com/"
DEPENDS += "ncurses mysql-native"
LICENSE = "GPL"
+PR = "r1"
SRC_URI = "http://mirrors.develooper.com/mysql/Downloads/MySQL-4.1/mysql-${PV}.tar.gz \
file://autofoo.patch;patch=1 \
@@ -38,9 +40,76 @@ pkg_postrm () {
grep mysql /etc/passwd && deluser mysql
}
-PACKAGES =+ "libmysqlclient libmysqlclient-dev"
+PACKAGES = "${PN} libmysqlclient libmysqlclient-dev mysql-client mysql-server"
+
+FILES_${PN} = " "
+RDEPENDS_${PN} = "mysql-client mysql-server"
+ALLOW_EMPTY_${PN} = "1"
FILES_libmysqlclient = "${libdir}/libmysqlclient*.so.*"
-FILES_libmysqlclient-dev = "${incdir}/mysql ${libdir}/lib* \
- ${bindir}/mysql_config"
+FILES_libmysqlclient-dev = "${includedir}/mysql/ ${libdir}/lib* ${bindir}/mysql_config"
+
+FILES_mysql-client = "\
+${bindir}/myisam_ftdump \
+${bindir}/mysql \
+${bindir}/mysql_explain_log \
+${bindir}/mysql_find_rows \
+${bindir}/mysql_fix_extensions \
+${bindir}/mysql_tableinfo \
+${bindir}/mysql_waitpid \
+${bindir}/mysqlaccess \
+${bindir}/mysqladmin \
+${bindir}/mysqlbug \
+${bindir}/mysqlcheck \
+${bindir}/mysqldump \
+${bindir}/mysqldumpslow \
+${bindir}/mysqlimport \
+${bindir}/mysqlmanager \
+${bindir}/mysqlmanager-pwgen \
+${bindir}/mysqlmanagerc \
+${bindir}/mysqlshow"
+FILES_mysql-server = "\
+${bindir}/comp_err \
+${bindir}/isamchk \
+${bindir}/isamlog \
+${bindir}/msql2mysql \
+${bindir}/myisamchk \
+${bindir}/myisamlog \
+${bindir}/myisampack \
+${bindir}/my_print_defaults \
+${bindir}/mysqlbinlog \
+${bindir}/mysql_convert_table_format \
+${bindir}/mysql_create_system_tables \
+${bindir}/mysqld_multi \
+${bindir}/mysqld_safe \
+${bindir}/mysql_fix_privilege_tables \
+${bindir}/mysqlhotcopy \
+${bindir}/mysql_install_db \
+${bindir}/mysql_secure_installation \
+${bindir}/mysql_setpermission \
+${bindir}/mysqltest \
+${bindir}/mysql_tzinfo_to_sql \
+${bindir}/mysql_zap \
+${bindir}/pack_isam \
+${bindir}/perror \
+${bindir}/replace \
+${bindir}/resolveip \
+${bindir}/resolve_stack_dump \
+${bindir}/ndb_delete_all \
+${bindir}/ndb_mgm \
+${bindir}/ndb_show_tables \
+${bindir}/ndb_desc \
+${bindir}/ndb_restore \
+${bindir}/ndb_waiter \
+${bindir}/ndb_drop_index \
+${bindir}/ndb_select_all \
+${bindir}/ndb_drop_table \
+${bindir}/ndb_select_count \
+${libexecdir}/mysqld \
+${sbindir}/mysqld \
+${sbindir}/ndb_cpcd \
+${sbindir}/ndbd \
+${sbindir}/ndb_mgmd \
+${datadir}/mysql/ \
+${localstatedir}/mysql/"
diff --git a/packages/nvidia-drivers/.mtn2git_empty b/packages/nvidia-drivers/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/nvidia-drivers/.mtn2git_empty
diff --git a/packages/nvidia-drivers/files/.mtn2git_empty b/packages/nvidia-drivers/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/nvidia-drivers/files/.mtn2git_empty
diff --git a/packages/nvidia-drivers/files/nvaudio-remap_page_range.patch b/packages/nvidia-drivers/files/nvaudio-remap_page_range.patch
new file mode 100644
index 0000000000..e653d43a76
--- /dev/null
+++ b/packages/nvidia-drivers/files/nvaudio-remap_page_range.patch
@@ -0,0 +1,27 @@
+--- NFORCE-Linux-x86-1.0-0310-pkg1/nvsound/main/Makefile.kbuild.sav 2006-05-16 09:44:26.000000000 -0600
++++ NFORCE-Linux-x86-1.0-0310-pkg1/nvsound/main/Makefile.kbuild 2006-05-16 09:48:57.000000000 -0600
+@@ -48,16 +48,16 @@
+ EXTRA_LDFLAGS := -d
+
+ # Figure out how many args remap_page_ranges() wants or new remap call
+-ifeq ($(shell sh $(src)/conftest.sh "$(CC)" "$(KERNEL_SOURCES)" "$(KERNEL_OUTPUT)" remap_pfn_range), 1)
++#ifeq ($(shell sh $(src)/conftest.sh "$(CC)" "$(KERNEL_SOURCES)" "$(KERNEL_OUTPUT)" remap_pfn_range), 1)
+ EXTRA_CFLAGS += -DNV_REMAP_PFN_RANGE_PRESENT
+-else
+- REMAP_PAGE_RANGE := $(shell sh $(src)/conftest.sh "$(CC)" "$(KERNEL_SOURCES)" "$(KERNEL_OUTPUT)" remap_page_range)
+-
+- ifeq ($(REMAP_PAGE_RANGE),5)
+- EXTRA_CFLAGS += -DREMAP_NEW
+- endif
++#else
++# REMAP_PAGE_RANGE := $(shell sh $(src)/conftest.sh "$(CC)" "$(KERNEL_SOURCES)" "$(KERNEL_OUTPUT)" remap_page_range)
+
+-endif
++# ifeq ($(REMAP_PAGE_RANGE),5)
++# EXTRA_CFLAGS += -DREMAP_NEW
++# endif
++#
++#endif
+
+ PATCHLEVEL ?= $(shell sh ./conftest.sh "$(CC)" "$(KERNEL_SOURCES)" "$(KERNEL_OUTPUT)" kernel_patch_level)
+ ifeq ($(PATCHLEVEL), 4)
diff --git a/packages/nvidia-drivers/files/nvidia-oe-conftest.patch b/packages/nvidia-drivers/files/nvidia-oe-conftest.patch
new file mode 100644
index 0000000000..6eae764d1c
--- /dev/null
+++ b/packages/nvidia-drivers/files/nvidia-oe-conftest.patch
@@ -0,0 +1,60 @@
+--- ../../../temp/NVIDIA-Linux-x86-1.0-8756-pkg1/usr/src/nv/Makefile.kbuild 2006-03-29 16:02:20.000000000 -0700
++++ nv/Makefile.kbuild 2006-04-26 13:50:47.249353208 -0600
+@@ -28,7 +28,7 @@
+ # Christian Zander (zander@mail.minion.de) (enhancements)
+ #
+
+-all: install
++all: module
+ install: package-install
+
+ #
+@@ -310,19 +310,17 @@
+ # sufficient privileges. Rebuild the module dependency file.
+ #
+
+-module-install: suser-sanity-check module
++module-install: module
+ @mkdir -p $(MODULE_ROOT)/video; \
+- install -m 0664 -o root -g root $(MODULE_OBJECT) $(MODULE_ROOT)/video; \
+- PATH="$(PATH):/bin:/sbin" depmod -ae;
++ install -m 0664 $(MODULE_OBJECT) $(MODULE_ROOT)/video; \
++ #PATH="$(PATH):/bin:/sbin" depmod -ae;
+
+ #
+ # This target builds, then installs, then creates device nodes and inserts
+ # the module, if successful.
+ #
+
+-package-install: module-install rmmod-sanity-check
+- PATH="$(PATH):/bin:/sbin" modprobe $(MODULE_NAME) && \
+- echo "$(MODULE_OBJECT) installed successfully.";
++package-install: module-install
+
+ #
+ # Build an object file suitable for further processing by the installer and
+--- ../../../temp/NVIDIA-Linux-x86-1.0-8756-pkg1/usr/src/nv/Makefile.nvidia 2006-03-29 16:02:20.000000000 -0700
++++ nv/Makefile.nvidia 2006-04-26 13:52:19.573317832 -0600
+@@ -102,7 +102,7 @@
+
+ VERSION_HDR=nv_compiler.h
+
+-all: install
++all: module
+
+ install: package-install
+
+@@ -123,11 +123,9 @@
+ mdl: gcc-sanity-check rivafb-sanity-check $(LINUX_MODULE) $(RESMAN_KERNEL_MODULE)
+ $(LD) -r -o nvidia.o $(LINUX_MODULE) $(RESMAN_KERNEL_MODULE)
+
+-package-install: module suser-sanity-check rmmod-sanity-check
++package-install: module
+ mkdir -p $(MODULE_ROOT)/video && \
+- install -m 0664 -o root -g root nvidia.o $(MODULE_ROOT)/video/nvidia.o$(O) && \
+- PATH="$(PATH):/bin:/sbin" depmod -a && \
+- PATH="$(PATH):/bin:/sbin" modprobe nvidia && \
++ install -m 0664 nvidia.o $(MODULE_ROOT)/video/nvidia.o$(O) && \
+ echo "nvidia.o installed successfully."; \
+
+ $(VERSION_HDR):
diff --git a/packages/nvidia-drivers/nvidia-display_1.0-8756.bb b/packages/nvidia-drivers/nvidia-display_1.0-8756.bb
new file mode 100644
index 0000000000..f8f80b29aa
--- /dev/null
+++ b/packages/nvidia-drivers/nvidia-display_1.0-8756.bb
@@ -0,0 +1,48 @@
+# nvidia-display .bb build file
+# Copyright (C) 2005-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+include nvidia-drivers.inc
+
+PKG_BASENAME="NVIDIA-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}"
+
+SRC_URI="http://download.nvidia.com/XFree86/Linux-${NVIDIA_ARCH}/${PV}/${PKG_BASENAME}.run \
+ file://nvidia-oe-conftest.patch;patch=1"
+
+S="${WORKDIR}/${PKG_BASENAME}/usr/src/nv"
+
+EXTRA_OEMAKE=" KERNEL_SOURCES=${STAGING_KERNEL_DIR} KERNEL_MODLIB=${STAGING_KERNEL_DIR} KERNEL_UNAME=${KERNEL_VERSION} PATCHLEVEL=${KERNEL_PATCHLEVEL} MODULE_ROOT=${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers IGNORE_CC_MISMATCH=1"
+
+FILES_${PN} += " /usr/lib /usr/bin /usr/share"
+
+do_configure() {
+ rm -f ${S}/makefile
+ if [ "${KERNEL_PATCHLEVEL}" != "4" ] ; then
+ ln -sf Makefile.kbuild ${S}/Makefile
+ else
+ ln -sf Makefile.nvidia ${S}/Makefile
+ fi
+}
+
+do_install() {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" install
+
+ install -d ${D}/usr
+ for dir in bin include lib share ; do
+ cp -a ${WORKDIR}/${PKG_BASENAME}/usr/$dir ${D}/usr/
+ done
+
+ #X11R7.0 style...
+ install -d ${D}/usr/lib/xorg/
+ cp ${WORKDIR}/${PKG_BASENAME}/usr/X11R6/lib/lib* ${D}/usr/lib/
+ cp -a ${WORKDIR}/${PKG_BASENAME}/usr/X11R6/lib/modules ${D}/usr/lib/xorg/
+ ln -s libglx.so.1.0.8756 ${D}/usr/lib/xorg/modules/extensions/libglx.so
+
+}
+
+do_stage() {
+ #Not sure what we need here. This looks like it provides GL
+ :
+}
+
diff --git a/packages/nvidia-drivers/nvidia-drivers.inc b/packages/nvidia-drivers/nvidia-drivers.inc
new file mode 100644
index 0000000000..8a05d60590
--- /dev/null
+++ b/packages/nvidia-drivers/nvidia-drivers.inc
@@ -0,0 +1,54 @@
+# nvidia-display .bb build file
+# Copyright (C) 2005-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://www.nvidia.com/object/unix.html"
+DESCRIPTION="NVidia Graphics Driver Binary"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "NVIDIA"
+
+inherit module
+INHIBIT_PACKAGE_STRIP=1
+
+def nvidia_pkgrun(d):
+ import bb, re
+ arch = bb.data.getVar('TARGET_ARCH', d, 1)
+ pkgrun = "pkg2"
+ if re.match("^i.86$", arch):
+ pkgrun = "pkg1"
+ return pkgrun
+
+def nvidia_arch(d):
+ import bb, re
+ arch = bb.data.getVar('TARGET_ARCH', d, 1)
+ if re.match("^i.86$", arch):
+ arch = "x86"
+ return arch
+
+def get_kernelpatchlevel(p):
+ import re
+ r = re.compile("[0-9]+\.([0-9]+).*")
+ m = r.match(p);
+ if m:
+ return m.group(1)
+ return None
+
+NVIDIA_ARCH := "${@nvidia_arch(d)}"
+NVIDIA_PKGRUN := "${@nvidia_pkgrun(d)}"
+
+COMPATIBLE_HOST = '.*86.*-linux'
+
+KERNEL_PATCHLEVEL = "${@get_kernelpatchlevel('${KERNEL_VERSION}')}"
+EXTRA_OEMAKE=" KERNEL_SOURCES=${STAGING_KERNEL_DIR} KERNEL_MODLIB=${STAGING_KERNEL_DIR} KERNEL_UNAME=${KERNEL_VERSION} PATCHLEVEL=${KERNEL_PATCHLEVEL} MODULE_ROOT=${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers IGNORE_CC_MISMATCH=1"
+
+PKG_BASENAME="NVIDIA-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}"
+
+nvidia_do_unpack() {
+ sh ${PKG_BASENAME}.run -x
+}
+
+python do_unpack() {
+ bb.build.exec_func('base_do_unpack', d)
+ bb.build.exec_func('nvidia_do_unpack', d)
+}
+
diff --git a/packages/nvidia-drivers/nvidia-nforce_1.0-0310.bb b/packages/nvidia-drivers/nvidia-nforce_1.0-0310.bb
new file mode 100644
index 0000000000..09d0aae39f
--- /dev/null
+++ b/packages/nvidia-drivers/nvidia-nforce_1.0-0310.bb
@@ -0,0 +1,71 @@
+# nvidia-display .bb build file
+# Copyright (C) 2005-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+include nvidia-drivers.inc
+
+PKG_BASENAME="NFORCE-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}"
+
+SRC_URI="http://download.nvidia.com/XFree86/nforce/${PV}/NFORCE-Linux-${NVIDIA_ARCH}-${PV}-${NVIDIA_PKGRUN}.run \
+ file://nvaudio-remap_page_range.patch;patch=1"
+
+S="${WORKDIR}/${PKG_BASENAME}"
+
+EXTRA_OEMAKE=" KERNEL_SOURCES=${STAGING_KERNEL_DIR} TARGET_KERNEL=${KERNEL_VERSION} INSTROOT=${D} IGNORE_CC_MISMATCH=1"
+
+FILES_${PN} += " /usr/lib /usr/bin"
+
+do_compile() {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+
+ cd nvnet
+ oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
+ KERNEL_SRC=${STAGING_KERNEL_DIR} \
+ KERNEL_VERSION=${KERNEL_VERSION} \
+ CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
+ ${MAKE_TARGETS}
+
+ cd ../nvsound/main
+ oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
+ KERNEL_SRC=${STAGING_KERNEL_DIR} \
+ KERNEL_VERSION=${KERNEL_VERSION} \
+ CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
+ ${MAKE_TARGETS}
+
+}
+
+do_configure() {
+ rm -f ${S}/nvnet/makefile
+ rm -f ${S}/nvsound/main/makefile
+
+ if [ "${KERNEL_PATCHLEVEL}" != "4" ] ; then
+ ln -sf Makefile.kbuild ${S}/nvnet/Makefile
+ ln -sf Makefile.kbuild ${S}/nvsound/main/Makefile
+ else
+ ln -sf Makefile.nvidia ${S}/nvnet/Makefile
+ ln -sf Makefile.nvidia ${S}/nvsound/main/Makefile
+ fi
+}
+
+
+do_install() {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+
+ cd nvnet
+ oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" install
+
+ cd ../nvsound/main
+ oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" CC="${KERNEL_CC}" LD="${KERNEL_LD}" install
+
+ install -d ${D}/usr
+ for dir in usr/bin nvsound/lib ; do
+ cp -a ${S}/$dir ${D}/usr/
+ done
+
+}
+
+do_stage() {
+ install -d ${STAGING_LIBDIR}
+ oe_libinstall -a -C ${S}/nvsound/lib libnvalut ${STAGING_LIBDIR}
+ oe_libinstall -a -C ${S}/nvsound/lib libnvopenal ${STAGING_LIBDIR}
+}
diff --git a/packages/openh323/.mtn2git_empty b/packages/openh323/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openh323/.mtn2git_empty
diff --git a/packages/openh323/openh323/.mtn2git_empty b/packages/openh323/openh323/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openh323/openh323/.mtn2git_empty
diff --git a/packages/openh323/openh323/fixes.patch b/packages/openh323/openh323/fixes.patch
new file mode 100644
index 0000000000..81409f30a7
--- /dev/null
+++ b/packages/openh323/openh323/fixes.patch
@@ -0,0 +1,111 @@
+--- openh323/configure.in 2004-01-31 00:37:15.000000000 -0700
++++ openh323.new/configure.in 2005-01-06 10:17:31.576277416 -0700
+@@ -36,62 +36,12 @@
+
+ echo "OpenH323 version is ${OPENH323_VERSION}"
+
+-AC_DEFINE_UNQUOTED(OPENH323_MAJOR, $MAJOR_VERSION)
+-AC_DEFINE_UNQUOTED(OPENH323_MINOR, $MINOR_VERSION)
+-AC_DEFINE_UNQUOTED(OPENH323_BUILD, $BUILD_NUMBER)
+-AC_DEFINE_UNQUOTED(OPENH323_VERSION, "$OPENH323_VERSION")
+-
+-dnl ########################################################################
+-dnl look for ptlib, use a preference order of explicit PWLIBDIR, directory
+-dnl at same level, home directory, /usr/local or /usr.
+-
+-if test "${PWLIBDIR:-unset}" != "unset" ; then
+- AC_CHECK_FILE(${PWLIBDIR}/version.h, HAS_PTLIB=1)
+-fi
+-if test "${HAS_PTLIB:-unset}" = "unset" ; then
+- AC_CHECK_FILE(${OPENH323DIR}/../pwlib/version.h, HAS_PTLIB=1)
+- if test "${HAS_PTLIB:-unset}" != "unset" ; then
+- PWLIBDIR="${OPENH323DIR}/../pwlib"
+- else
+- AC_CHECK_FILE(${HOME}/pwlib/include/ptlib.h, HAS_PTLIB=1)
+- if test "${HAS_PTLIB:-unset}" != "unset" ; then
+- PWLIBDIR="${HOME}/pwlib"
+- else
+- AC_CHECK_FILE(/usr/local/include/ptlib.h, HAS_PTLIB=1)
+- if test "${HAS_PTLIB:-unset}" != "unset" ; then
+- AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/local/bin)
+- else
+- AC_CHECK_FILE(/usr/include/ptlib.h, HAS_PTLIB=1)
+- if test "${HAS_PTLIB:-unset}" != "unset" ; then
+- AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/share/pwlib/make/)
+- fi
+- fi
+- fi
+- fi
+-fi
+-
+-if test "${HAS_PTLIB:-unset}" = "unset" ; then
+- echo "Cannot find pwlib - please install or set PWLIBDIR and try again"
+- exit
+-fi
+-
+-if test "${PWLIBDIR:-unset}" = "unset" ; then
+- if test "${PTLIB_CONFIG:-unset}" = "unset" ; then
+- echo "Cannot find ptlib-config - please install and try again"
+- exit
+- fi
+- PWLIBDIR=`$PTLIB_CONFIG --prefix`
+-fi
+-
+-if test "x$PWLIBDIR" = "x/usr" -o "x$PWLIBDIR" = "x/usr/"; then
+- PWLIBDIR="/usr/share/pwlib/"
+-fi
+-if test "xPWLIBDIR" = "x/usr/local" -o "x$PWLIBDIR" = "x/usr/"; then
+- PWLIBDIR="/usr/local/share/pwlib/"
+-fi
++AC_DEFINE_UNQUOTED(OPENH323_MAJOR, $MAJOR_VERSION,[THis is the build major])
++AC_DEFINE_UNQUOTED(OPENH323_MINOR, $MINOR_VERSION,[This is the build minor])
++AC_DEFINE_UNQUOTED(OPENH323_BUILD, $BUILD_NUMBER,[THis is the build version])
++AC_DEFINE_UNQUOTED(OPENH323_VERSION, "$OPENH323_VERSION", [THis is the build number])
+
+ echo "PWLib prefix set to.... $PWLIBDIR"
+-
+ AC_SUBST(PWLIBDIR)
+
+
+@@ -103,8 +53,8 @@
+
+ dnl MSWIN_DISPLAY video,Video System
+ dnl MSWIN_DEFINE video,H323_VIDEO
+-AC_DEFINE(H323_AUDIO_CODECS,1)
+-AC_DEFINE(H323_VIDEO,1)
++AC_DEFINE(H323_AUDIO_CODECS,1,[Define this if you are using audio codecs])
++AC_DEFINE(H323_VIDEO,1,[Define this if you are using video])
+
+
+ dnl ########################################################################
+@@ -197,7 +147,7 @@
+ AC_MSG_NOTICE(Forcing use of local Speex sources)
+ elif test "${localspeex}" = "no" ; then
+ AC_MSG_NOTICE(Forcing use of system Speex library)
+- AC_DEFINE(H323_SYSTEM_SPEEX, 1)
++ AC_DEFINE(H323_SYSTEM_SPEEX, 1, [Define this if you are using the system Speex])
+ AC_SUBST(H323_SYSTEM_SPEEX, 1)
+ else
+ AC_CHECK_LIB(speex, speex_encoder_destroy, SPEEX=1)
+@@ -272,9 +222,9 @@
+ dnl MSWIN_DISPLAY ixj,Quicknet Internet xJACK cards
+ dnl MSWIN_DEFINE ixj,HAS_IXJ
+
+-AC_CHECK_HEADERS(linux/telephony.h sys/telephony.h /usr/local/include/sys/telephony.h, HAS_IXJ=1)
++AC_CHECK_HEADERS(linux/telephony.h, HAS_IXJ=1)
+ if test "x$HAS_IXJ" != "x" ; then
+- AC_DEFINE(HAS_IXJ, 1)
++ AC_DEFINE(HAS_IXJ, 1,[Define this if you are using Quicknet])
+ fi
+
+ dnl ########################################################################
+--- openh323/include/gkserver.h 2004-08-07 05:11:52.000000000 -0700
++++ openh323.new/include/gkserver.h 2005-01-05 19:11:45.000000000 -0700
+@@ -405,7 +405,6 @@
+ H225_GatekeeperConfirm & gcf;
+ H225_GatekeeperReject & grj;
+
+- protected:
+ virtual Response OnHandlePDU();
+ };
+
diff --git a/packages/openh323/openh323_1.13.5.4.bb b/packages/openh323/openh323_1.13.5.4.bb
new file mode 100644
index 0000000000..97e7594441
--- /dev/null
+++ b/packages/openh323/openh323_1.13.5.4.bb
@@ -0,0 +1,51 @@
+# openh323 .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://www.openh323.org/"
+DESCRIPTION="Open Soure ITU-T H.323 teleconferencing protocol implementation."
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+SRC_URI="http://http.us.debian.org/debian/pool/main/o/${PN}/${PN}_${PV}.orig.tar.gz \
+ file://fixes.patch;patch=1"
+
+S="${WORKDIR}/${PN}"
+DEPENDS="pwlib openssl"
+
+export PWLIBDIR=${STAGING_DATADIR}/pwlib
+export PTLIB_CONFIG=${STAGING_DATADIR}/pwlib/make/ptlib-config
+export OPENH323DIR=${S}
+
+export OPENSSLFLAG=1
+export OPENSSLDIR=${STAGING_LIBDIR}
+export OPENSSLLIBS="-lssl -lcrypt"
+export MACHTYPE="x86"
+export OSTYPE="linux"
+export OSRELEASE="openembedded"
+export CPLUS="${CXX}"
+
+inherit autotools
+EXTRA_OECONF="--enable-localspeex"
+
+FILES_${PN} = "/usr/lib"
+FILES_${PN}-dev += "/usr/share"
+
+do_compile() {
+ oe_runmake opt
+}
+
+HEADERS="QTIoctl.h channels.h codecs.h cu30codec.h dynacodec.h ffh263codec.h g7231codec.h g726codec.h g729codec.h gccpdu.h gkclient.h gkserver.h gsmcodec.h guid.h h225.h h225ras.h h235.h h235auth.h h245.h h248.h h261codec.h h263codec.h h323.h h323annexg.h h323caps.h h323con.h h323ep.h h323neg.h h323pdu.h h323rtp.h h323t120.h h323t38.h h323trans.h h4501.h h45010.h h45011.h h4502.h h4504.h h4505.h h4506.h h4507.h h4508.h h4509.h h450pdu.h h501.h h501pdu.h ilbccodec.h ixjDefs.h ixjidb.h ixjlid.h jitter.h lid.h lpc10codec.h mcspdu.h mediafmt.h mscodecs.h opalvxml.h opalwavfile.h openh323buildopts.h openh323buildopts.h.in peclient.h q931.h rfc2833.h rtp.h rtp2wav.h speexcodec.h svcctrl.h t120proto.h t38.h t38proto.h transports.h vblasterlid.h vpblid.h x224.h x880.h"
+
+do_stage() {
+ install -d ${STAGING_LIBDIR} ${STAGING_INCDIR}/openh323
+ for file in ${HEADERS}; do
+ install -m 0644 include/$file ${STAGING_INCDIR}/openh323
+ done
+
+ oe_libinstall -C lib libh323_linux_x86_r ${STAGING_LIBDIR}
+ ln -sf ${STAGING_LIBDIR}/libh323_linux_x86_r.so ${STAGING_LIBDIR}/libopenh323.so
+
+ install -d ${STAGING_DATADIR}/openh323
+ install -m 0644 openh323u.mak ${STAGING_DATADIR}/openh323
+}
diff --git a/packages/openssl/openssl.inc b/packages/openssl/openssl.inc
index a73811a1cb..027351e31a 100644
--- a/packages/openssl/openssl.inc
+++ b/packages/openssl/openssl.inc
@@ -57,6 +57,9 @@ do_compile () {
linux-sh4)
target=debian-sh4
;;
+ linux-i486)
+ target=linux-pentium
+ ;;
linux-i586)
target=linux-pentium
;;
diff --git a/packages/pdm/pdm-1.0/.mtn2git_empty b/packages/pdm/pdm-1.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/pdm/pdm-1.0/.mtn2git_empty
diff --git a/packages/pdm/pdm-1.0/mythtv b/packages/pdm/pdm-1.0/mythtv
new file mode 100644
index 0000000000..9a9e4f09cb
--- /dev/null
+++ b/packages/pdm/pdm-1.0/mythtv
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Set some variables of some consequence
+
+export DISPLAY=:0
+
+# Because we're not actually logging in, we do this
+# FIXME: PDM should do this instead
+
+export HOME=/root
+
+# Allow all comers
+#/usr/bin/xhost +
+
+# Start the screen saver
+#xscreensaver -no-splash &
+
+# Start MythTV
+#This assumes that mythbackend is running already and
+#mythtv-setup
+#has been run already
+mythfrontend
diff --git a/packages/pdm/pdm-1.0/pdm-1.0-changes.patch b/packages/pdm/pdm-1.0/pdm-1.0-changes.patch
new file mode 100644
index 0000000000..cb0b72d682
--- /dev/null
+++ b/packages/pdm/pdm-1.0/pdm-1.0-changes.patch
@@ -0,0 +1,209 @@
+diff -urN pdm-1.0/conf/pdm.conf.example pdm-1.0.new/conf/pdm.conf.example
+--- pdm-1.0/conf/pdm.conf.example 2003-12-08 18:23:41.000000000 -0700
++++ pdm-1.0.new/conf/pdm.conf.example 2004-09-01 13:11:14.519527656 -0700
+@@ -23,3 +23,6 @@
+ # for a session
+
+ Session=pixil
++
++# When the session is completed, then respawn and start again
++SessionPost=respawn
+diff -urN pdm-1.0/conf/pdm.conf.x11 pdm-1.0.new/conf/pdm.conf.x11
+--- pdm-1.0/conf/pdm.conf.x11 2003-12-09 10:23:01.000000000 -0700
++++ pdm-1.0.new/conf/pdm.conf.x11 2004-09-01 13:11:14.520527504 -0700
+@@ -19,3 +19,6 @@
+ # for a session
+
+ Session=matchbox
++SessionPost=respawn
++#SessionPost=reboot
++#SessionPost=shutdown
+diff -urN pdm-1.0/config.c pdm-1.0.new/config.c
+--- pdm-1.0/config.c 2003-12-16 12:23:27.000000000 -0700
++++ pdm-1.0.new/config.c 2004-09-01 13:11:14.520527504 -0700
+@@ -234,6 +234,23 @@
+ return 0;
+ }
+
++static int post_callback(int line, char *key, char *value, dminfo_t *info) {
++
++ if (info->flags & FLAG_AUTH) {
++ fprintf(stderr,
++ "%d: Post session behavior is ignored when auth is turned on.\n", line);
++ return 0;
++ }
++
++ if (!value) return -1;
++
++ if (!strcmpi(value, "reboot")) info->postsession = POST_REBOOT;
++ else if (!strcmpi(value, "respawn")) info->postsession = POST_RESPAWN;
++ else if (!strcmpi(value, "shutdown")) info->postsession = POST_SHUTDOWN;
++
++ return 0;
++}
++
+ /* calibrate_callback()
+ Callback for the 'TSCalibrate' keyword
+ */
+@@ -271,20 +288,21 @@
+ "NULL" terminated list here to save a bit of room.
+ */
+
+-#define KEYWORD_COUNT 6
+-
+ struct {
+ char *keyword;
+ int (*callback)(int, char *, char *, dminfo_t *);
+-} keywords[KEYWORD_COUNT] = {
++} keywords[] = {
+ { "Server", server_callback },
+ { "Auth", auth_callback },
+ { "User", user_callback },
+ { "Session", session_callback },
++ { "SessionPost", post_callback },
+ { "TSCalibrate", calibrate_callback },
+- { "TSCalBinary", calbin_callback },
++ { "TSCalBinary", calbin_callback }
+ };
+
++#define KEYWORD_COUNT (sizeof(keywords)/sizeof(keywords[0]))
++
+ /* do_config()
+ Given a filename, process it and fill out the dminfo_t structure
+ */
+diff -urN pdm-1.0/main.c pdm-1.0.new/main.c
+--- pdm-1.0/main.c 2003-12-09 11:43:22.000000000 -0700
++++ pdm-1.0.new/main.c 2004-09-01 13:11:14.520527504 -0700
+@@ -29,6 +29,8 @@
+ handles authinication through a plugin system.
+ */
+
++#define _GNU_SOURCE
++
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -60,6 +62,29 @@
+
+ static dminfo_t dminfo;
+
++static void exec_external(const char *str) {
++ int argc = 0;
++ char **argv = 0;
++ char *ptr = (char *) str;
++
++ while(ptr) {
++ char *next = strchr(ptr, ' ');
++ argv = (char **) realloc(argv, (argc + 2) * sizeof (char *));
++ argv[argc] = ptr;
++ if (next) {
++ *next = 0;
++ ptr = next + 1;
++ }
++ else ptr = 0;
++ argc++;
++ }
++
++ argv[argc] = 0;
++
++ /* We're not supposed to come back */
++ execvp(argv[0], argv);
++}
++
+ /* spawn_app()
+ Spawn the given application. A simple fork() / execvp() is all that
+ is needed here */
+@@ -80,10 +105,10 @@
+
+ /* spawn_session()
+ Spawns a new session based on the given name under the authority
+- of the given UID.
++ of the given UID/GID.
+ */
+
+-static pid_t spawn_session(char *app, uid_t uid) {
++static pid_t spawn_session(char *app, uid_t uid, gid_t gid) {
+
+ char *argv[2] = { 0, 0 };
+ pid_t pid = 0;
+@@ -103,10 +128,13 @@
+ /* If a different UID was specified, then try to change to that UID */
+
+ if (uid != getuid()) {
+- if (seteuid(uid) == -1) {
++ if (setresuid(uid, uid, uid) == -1) {
+ fprintf(stderr, "Error: Unable to set the UID of the process.\n");
+ exit(-1);
+ }
++ if (setresgid(gid,gid,gid) == -1) {
++ fprintf(stderr, "Error: Unable to set the GID of the process.\n");
++ }
+ }
+
+ argv[0] = app;
+@@ -319,7 +347,10 @@
+
+ /* Start the session */
+ VERBOSE("Spawning session '%s'\n", session);
+- session_pid = spawn_session(session, curuser ? curuser->pw_uid : getuid());
++
++ session_pid = spawn_session(session,
++ curuser ? curuser->pw_uid : getuid(),
++ curuser ? curuser->pw_gid : getgid());
+
+ if (session_pid == -1) {
+ fprintf(stderr, "Fatal: Unable to spawn the session '%s'.\n", session);
+@@ -345,6 +376,27 @@
+ }
+
+ session_pid = 0;
++
++ if (dminfo.flags & FLAG_AUTH)
++ continue;
++
++ /* Check to see what to do after a session dies */
++ /* This is only if auth isn't enabled */
++
++ /* On respawn (default), just come back around */
++ if (dminfo.postsession == POST_RESPAWN)
++ continue;
++
++ /* Kill off the server */
++ if (server_pid > 0) kill_child(server_pid);
++
++ /* Decide which external function to turn into */
++ if (dminfo.postsession == POST_REBOOT)
++ exec_external(PDM_REBOOT_COMMAND);
++ else
++ exec_external(PDM_HALT_COMMAND);
++
++ return 0;
+ }
+
+ gendm_done:
+diff -urN pdm-1.0/pdm.h pdm-1.0.new/pdm.h
+--- pdm-1.0/pdm.h 2003-12-08 12:28:50.000000000 -0700
++++ pdm-1.0.new/pdm.h 2004-09-01 13:11:14.521527352 -0700
+@@ -34,6 +34,13 @@
+ #define FLAG_AUTH 0x01
+ #define FLAG_CAL 0x02
+
++#define POST_RESPAWN 0x00
++#define POST_REBOOT 0x01
++#define POST_SHUTDOWN 0x02
++
++#define PDM_HALT_COMMAND "/sbin/halt"
++#define PDM_REBOOT_COMMAND "/sbin/reboot"
++
+ typedef struct {
+ char *server; /* The GUI server to start */
+ int argc;
+@@ -47,6 +54,8 @@
+ struct passwd *user; /* The static user data is stored here */
+ char *session; /* The static session to use is stored here */
+
++ int postsession; /* What do do with the session when we are done */
++
+ struct {
+ char *bin; /* Calibration binary */
+ int argc;
diff --git a/packages/pdm/pdm-1.0/pdm.conf b/packages/pdm/pdm-1.0/pdm.conf
new file mode 100644
index 0000000000..aeece8933c
--- /dev/null
+++ b/packages/pdm/pdm-1.0/pdm.conf
@@ -0,0 +1,10 @@
+# Configuration file for the PDM
+
+#Server=Xvesa -nolisten inet6 -s 0 -br -noreset -mode 0x118
+Server=/usr/bin/X -noreset
+
+Auth=none
+User=root
+
+Session=mythtv
+#SessionPost=shutdown
diff --git a/packages/pdm/pdm-1.0/setuid.patch b/packages/pdm/pdm-1.0/setuid.patch
new file mode 100644
index 0000000000..17dbc00279
--- /dev/null
+++ b/packages/pdm/pdm-1.0/setuid.patch
@@ -0,0 +1,42 @@
+--- pdm-1.0/main.c 2003-12-09 11:43:22.000000000 -0700
++++ pdm-1.0.new/main.c 2004-05-25 09:01:53.897999256 -0700
+@@ -80,10 +80,10 @@
+
+ /* spawn_session()
+ Spawns a new session based on the given name under the authority
+- of the given UID.
++ of the given UID/GID.
+ */
+
+-static pid_t spawn_session(char *app, uid_t uid) {
++static pid_t spawn_session(char *app, uid_t uid, gid_t gid) {
+
+ char *argv[2] = { 0, 0 };
+ pid_t pid = 0;
+@@ -103,10 +103,13 @@
+ /* If a different UID was specified, then try to change to that UID */
+
+ if (uid != getuid()) {
+- if (seteuid(uid) == -1) {
++ if (setresuid(uid, uid, uid) == -1) {
+ fprintf(stderr, "Error: Unable to set the UID of the process.\n");
+ exit(-1);
+ }
++ if (setresgid(gid,gid,gid) == -1) {
++ fprintf(stderr, "Error: Unable to set the GID of the process.\n");
++ }
+ }
+
+ argv[0] = app;
+@@ -319,7 +322,10 @@
+
+ /* Start the session */
+ VERBOSE("Spawning session '%s'\n", session);
+- session_pid = spawn_session(session, curuser ? curuser->pw_uid : getuid());
++
++ session_pid = spawn_session(session,
++ curuser ? curuser->pw_uid : getuid(),
++ curuser ? curuser->pw_gid : getgid());
+
+ if (session_pid == -1) {
+ fprintf(stderr, "Fatal: Unable to spawn the session '%s'.\n", session);
diff --git a/packages/pdm/pdm-1.0/xfce b/packages/pdm/pdm-1.0/xfce
new file mode 100644
index 0000000000..ba2582ff54
--- /dev/null
+++ b/packages/pdm/pdm-1.0/xfce
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Set some variables of some consequence
+
+export PATH=$PATH:/usr/X11R6/bin:/usr/lib/ICAClient/
+export DISPLAY=:0
+
+# Because we're not actually logging in, we do this
+# FIXME: PDM should do this instead
+
+export HOME=/user
+
+# Allow all comers
+/usr/X11R6/bin/xhost +
+
+# Start the screen saver
+xscreensaver -no-splash &
+
+# Start the rest of the XFCE world
+xfce-mcs-manager
+xfwm4 --daemon
+xftaskbar4 &
+xfdesktop &
+exec xfce4-panel
diff --git a/packages/pdm/pdm_1.0.bb b/packages/pdm/pdm_1.0.bb
index 56f1f5a3d1..d80e836e8a 100644
--- a/packages/pdm/pdm_1.0.bb
+++ b/packages/pdm/pdm_1.0.bb
@@ -2,12 +2,20 @@ SECTION = "x11/base"
LICENSE = "GPL"
DESCRIPTION = "pdm is a minimal session manager for GUIs."
-SRC_URI = "http://www.penguru.net/download/pdm-${PV}.tar.gz"
+SRC_URI="http://www.penguru.net/download/${PN}-${PV}.tar.gz \
+ file://pdm-1.0-changes.patch;patch=1 \
+ file://pdm.conf \
+ file://xfce \
+ file://mythtv"
-do_install () {
+do_install() {
install -d ${D}${sbindir} \
${D}${sysconfdir}/pdm/sessions \
${D}${sysconfdir}/pdm/plugins
+
install -m 0755 pdm ${D}${sbindir}/pdm
install -m 0644 conf/pdm.conf* ${D}${sysconfdir}/pdm/
+ install -m 0644 ${WORKDIR}/pdm.conf ${D}${sysconfdir}/pdm/
+ install -m 755 ${WORKDIR}/xfce ${D}${sysconfdir}/pdm/sessions/xfce
+ install -m 755 ${WORKDIR}/mythtv ${D}${sysconfdir}/pdm/sessions/mythtv
}
diff --git a/packages/perl/perl-5.8.7/config.sh-i486-linux b/packages/perl/perl-5.8.7/config.sh-i486-linux
new file mode 100644
index 0000000000..423822a7a3
--- /dev/null
+++ b/packages/perl/perl-5.8.7/config.sh-i486-linux
@@ -0,0 +1,1028 @@
+#!/bin/sh
+#
+# This file was produced by running the Configure script. It holds all the
+# definitions figured out by Configure. Should you modify one of these values,
+# do not forget to propagate your changes by running "Configure -der". You may
+# instead choose to run each of the .SH files by yourself, or "Configure -S".
+#
+
+# Package name : perl5
+# Source directory : .
+# Configuration time: Wed Mar 9 04:09:49 CST 2005
+# Configured by : kergoth
+# Target system : linux hyperion 2.6.11-ck1 #1 wed mar 2 23:48:21 cst 2005 i486 gnulinux
+
+Author=''
+Date='$Date'
+Header=''
+Id='$Id'
+Locker=''
+Log='$Log'
+Mcc='Mcc'
+RCSfile='$RCSfile'
+Revision='$Revision'
+Source=''
+State=''
+_a='.a'
+_exe=''
+_o='.o'
+afs='false'
+afsroot='/afs'
+alignbytes='4'
+ansi2knr=''
+aphostname='/bin/hostname'
+api_revision='5'
+api_subversion='0'
+api_version='8'
+api_versionstring='5.8.0'
+ar='ar'
+archlib='/usr/lib/perl5/5.8.7/i486-linux'
+archlibexp='/usr/lib/perl5/5.8.7/i486-linux'
+archname64=''
+archname='i486-linux'
+archobjs=''
+asctime_r_proto='0'
+awk='awk'
+baserev='5.0'
+bash=''
+bin='/usr/bin'
+binexp='/usr/bin'
+bison='bison'
+byacc='byacc'
+byteorder='1234'
+c=''
+castflags='0'
+cat='cat'
+cc='cc'
+cccdlflags='-fpic'
+ccdlflags='-Wl,-E -Wl,-rpath,./install_me_here/usr/lib/perl5/5.8.7/i486-linux/CORE'
+ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+ccname='gcc'
+ccsymbols='__GNUC_PATCHLEVEL__=5'
+ccversion=''
+cf_by='kergoth'
+cf_email='kergoth@hyperion.kergoth.com'
+cf_time='Wed Mar 9 04:09:49 CST 2005'
+charsize='1'
+chgrp=''
+chmod='chmod'
+chown=''
+clocktype='clock_t'
+comm='comm'
+compress=''
+contains='grep'
+cp='cp'
+cpio=''
+cpp='cpp'
+cpp_stuff='42'
+cppccsymbols='__GNUC__=3 __GNUC_MINOR__=3'
+cppflags='-fno-strict-aliasing -I/usr/local/include'
+cpplast='-'
+cppminus='-'
+cpprun='cc -E'
+cppstdin='cc -E'
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=3 __GNU_LIBRARY__=6 i486=1 __i486=1 __i486__=1 __i486=1 __i486__=1 _LARGEFILE_SOURCE=1 linux=1 __linux=1 __linux__=1 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 __STDC__=1 unix=1 __unix=1 __unix__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1'
+crypt_r_proto='0'
+cryptlib=''
+csh='csh'
+ctermid_r_proto='0'
+ctime_r_proto='0'
+d_Gconvert='gcvt((x),(n),(b))'
+d_PRIEUldbl='define'
+d_PRIFUldbl='define'
+d_PRIGUldbl='define'
+d_PRIXU64='define'
+d_PRId64='define'
+d_PRIeldbl='define'
+d_PRIfldbl='define'
+d_PRIgldbl='define'
+d_PRIi64='define'
+d_PRIo64='define'
+d_PRIu64='define'
+d_PRIx64='define'
+d_SCNfldbl='define'
+d__fwalk='undef'
+d_access='define'
+d_accessx='undef'
+d_aintl='undef'
+d_alarm='define'
+d_archlib='define'
+d_asctime_r='undef'
+d_atolf='undef'
+d_atoll='define'
+d_attribut='define'
+d_bcmp='define'
+d_bcopy='define'
+d_bsd='undef'
+d_bsdgetpgrp='undef'
+d_bsdsetpgrp='undef'
+d_bzero='define'
+d_casti32='undef'
+d_castneg='define'
+d_charvspr='define'
+d_chown='define'
+d_chroot='define'
+d_chsize='undef'
+d_class='undef'
+d_closedir='define'
+d_cmsghdr_s='define'
+d_const='define'
+d_copysignl='define'
+d_crypt='define'
+d_crypt_r='undef'
+d_csh='undef'
+d_ctermid_r='undef'
+d_ctime_r='undef'
+d_cuserid='define'
+d_dbl_dig='define'
+d_dbminitproto='undef'
+d_difftime='define'
+d_dirfd='define'
+d_dirnamlen='undef'
+d_dlerror='define'
+d_dlopen='define'
+d_dlsymun='undef'
+d_dosuid='undef'
+d_drand48_r='undef'
+d_drand48proto='define'
+d_dup2='define'
+d_eaccess='undef'
+d_endgrent='define'
+d_endgrent_r='undef'
+d_endhent='define'
+d_endhostent_r='undef'
+d_endnent='define'
+d_endnetent_r='undef'
+d_endpent='define'
+d_endprotoent_r='undef'
+d_endpwent='define'
+d_endpwent_r='undef'
+d_endsent='define'
+d_endservent_r='undef'
+d_eofnblk='define'
+d_eunice='undef'
+d_faststdio='undef'
+d_fchdir='define'
+d_fchmod='define'
+d_fchown='define'
+d_fcntl='define'
+d_fcntl_can_lock='define'
+d_fd_macros='define'
+d_fd_set='define'
+d_fds_bits='undef'
+d_fgetpos='define'
+d_finite='define'
+d_finitel='define'
+d_flexfnam='define'
+d_flock='define'
+d_flockproto='define'
+d_fork='define'
+d_fp_class='undef'
+d_fpathconf='define'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
+d_fpos64_t='undef'
+d_frexpl='define'
+d_fs_data_s='undef'
+d_fseeko='define'
+d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='define'
+d_fsync='define'
+d_ftello='define'
+d_ftime='undef'
+d_getcwd='define'
+d_getespwnam='undef'
+d_getfsstat='undef'
+d_getgrent='define'
+d_getgrent_r='undef'
+d_getgrgid_r='undef'
+d_getgrnam_r='undef'
+d_getgrps='define'
+d_gethbyaddr='define'
+d_gethbyname='define'
+d_gethent='define'
+d_gethname='define'
+d_gethostbyaddr_r='undef'
+d_gethostbyname_r='undef'
+d_gethostent_r='undef'
+d_gethostprotos='define'
+d_getitimer='define'
+d_getlogin='define'
+d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='define'
+d_getnbyaddr='define'
+d_getnbyname='define'
+d_getnent='define'
+d_getnetbyaddr_r='undef'
+d_getnetbyname_r='undef'
+d_getnetent_r='undef'
+d_getnetprotos='define'
+d_getpagsz='define'
+d_getpbyname='define'
+d_getpbynumber='define'
+d_getpent='define'
+d_getpgid='define'
+d_getpgrp2='undef'
+d_getpgrp='define'
+d_getppid='define'
+d_getprior='define'
+d_getprotobyname_r='undef'
+d_getprotobynumber_r='undef'
+d_getprotoent_r='undef'
+d_getprotoprotos='define'
+d_getprpwnam='undef'
+d_getpwent='define'
+d_getpwent_r='undef'
+d_getpwnam_r='undef'
+d_getpwuid_r='undef'
+d_getsbyname='define'
+d_getsbyport='define'
+d_getsent='define'
+d_getservbyname_r='undef'
+d_getservbyport_r='undef'
+d_getservent_r='undef'
+d_getservprotos='define'
+d_getspnam='define'
+d_getspnam_r='undef'
+d_gettimeod='define'
+d_gmtime_r='undef'
+d_gnulibc='define'
+d_grpasswd='define'
+d_hasmntopt='define'
+d_htonl='define'
+d_ilogbl='define'
+d_index='undef'
+d_inetaton='define'
+d_int64_t='define'
+d_isascii='define'
+d_isfinite='undef'
+d_isinf='define'
+d_isnan='define'
+d_isnanl='define'
+d_killpg='define'
+d_lchown='define'
+d_ldbl_dig='define'
+d_libm_lib_version='define'
+d_link='define'
+d_localtime_r='undef'
+d_locconv='define'
+d_lockf='define'
+d_longdbl='define'
+d_longlong='define'
+d_lseekproto='define'
+d_lstat='define'
+d_madvise='define'
+d_mblen='define'
+d_mbstowcs='define'
+d_mbtowc='define'
+d_memchr='define'
+d_memcmp='define'
+d_memcpy='define'
+d_memmove='define'
+d_memset='define'
+d_mkdir='define'
+d_mkdtemp='define'
+d_mkfifo='define'
+d_mkstemp='define'
+d_mkstemps='undef'
+d_mktime='define'
+d_mmap='define'
+d_modfl='define'
+d_modfl_pow32_bug='undef'
+d_modflproto='undef'
+d_mprotect='define'
+d_msg='define'
+d_msg_ctrunc='define'
+d_msg_dontroute='define'
+d_msg_oob='define'
+d_msg_peek='define'
+d_msg_proxy='define'
+d_msgctl='define'
+d_msgget='define'
+d_msghdr_s='define'
+d_msgrcv='define'
+d_msgsnd='define'
+d_msync='define'
+d_munmap='define'
+d_mymalloc='undef'
+d_nice='define'
+d_nl_langinfo='define'
+d_nv_preserves_uv='define'
+d_off64_t='undef'
+d_old_pthread_create_joinable='undef'
+d_oldpthreads='undef'
+d_oldsock='undef'
+d_open3='define'
+d_pathconf='define'
+d_pause='define'
+d_perl_otherlibdirs='undef'
+d_phostname='undef'
+d_pipe='define'
+d_poll='define'
+d_portable='define'
+d_procselfexe='define'
+d_pthread_atfork='undef'
+d_pthread_attr_setscope='define'
+d_pthread_yield='undef'
+d_pwage='undef'
+d_pwchange='undef'
+d_pwclass='undef'
+d_pwcomment='undef'
+d_pwexpire='undef'
+d_pwgecos='define'
+d_pwpasswd='define'
+d_pwquota='undef'
+d_qgcvt='define'
+d_quad='define'
+d_random_r='undef'
+d_readdir64_r='undef'
+d_readdir='define'
+d_readdir_r='undef'
+d_readlink='define'
+d_readv='define'
+d_recvmsg='define'
+d_rename='define'
+d_rewinddir='define'
+d_rmdir='define'
+d_safebcpy='undef'
+d_safemcpy='undef'
+d_sanemcmp='define'
+d_sbrkproto='define'
+d_scalbnl='define'
+d_sched_yield='define'
+d_scm_rights='define'
+d_seekdir='define'
+d_select='define'
+d_sem='define'
+d_semctl='define'
+d_semctl_semid_ds='define'
+d_semctl_semun='define'
+d_semget='define'
+d_semop='define'
+d_sendmsg='define'
+d_setegid='define'
+d_seteuid='define'
+d_setgrent='define'
+d_setgrent_r='undef'
+d_setgrps='define'
+d_sethent='define'
+d_sethostent_r='undef'
+d_setitimer='define'
+d_setlinebuf='define'
+d_setlocale='define'
+d_setlocale_r='undef'
+d_setnent='define'
+d_setnetent_r='undef'
+d_setpent='define'
+d_setpgid='define'
+d_setpgrp2='undef'
+d_setpgrp='define'
+d_setprior='define'
+d_setproctitle='undef'
+d_setprotoent_r='undef'
+d_setpwent='define'
+d_setpwent_r='undef'
+d_setregid='define'
+d_setresgid='define'
+d_setresuid='define'
+d_setreuid='define'
+d_setrgid='undef'
+d_setruid='undef'
+d_setsent='define'
+d_setservent_r='undef'
+d_setsid='define'
+d_setvbuf='define'
+d_sfio='undef'
+d_shm='define'
+d_shmat='define'
+d_shmatprototype='define'
+d_shmctl='define'
+d_shmdt='define'
+d_shmget='define'
+d_sigaction='define'
+d_sigprocmask='define'
+d_sigsetjmp='define'
+d_sockatmark='define'
+d_sockatmarkproto='undef'
+d_socket='define'
+d_socklen_t='define'
+d_sockpair='define'
+d_socks5_init='undef'
+d_sqrtl='define'
+d_srand48_r='undef'
+d_srandom_r='undef'
+d_sresgproto='undef'
+d_sresuproto='undef'
+d_statblks='define'
+d_statfs_f_flags='undef'
+d_statfs_s='define'
+d_statvfs='define'
+d_stdio_cnt_lval='undef'
+d_stdio_ptr_lval='undef'
+d_stdio_ptr_lval_nochange_cnt='undef'
+d_stdio_ptr_lval_sets_cnt='undef'
+d_stdio_stream_array='undef'
+d_stdiobase='undef'
+d_stdstdio='undef'
+d_strchr='define'
+d_strcoll='define'
+d_strctcpy='define'
+d_strerrm='strerror(e)'
+d_strerror='define'
+d_strerror_r='undef'
+d_strftime='define'
+d_strlcat='undef'
+d_strlcpy='undef'
+d_strtod='define'
+d_strtol='define'
+d_strtold='define'
+d_strtoll='define'
+d_strtoq='define'
+d_strtoul='define'
+d_strtoull='define'
+d_strtouq='define'
+d_strxfrm='define'
+d_suidsafe='undef'
+d_symlink='define'
+d_syscall='define'
+d_syscallproto='define'
+d_sysconf='define'
+d_sysernlst=''
+d_syserrlst='define'
+d_system='define'
+d_tcgetpgrp='define'
+d_tcsetpgrp='define'
+d_telldir='define'
+d_telldirproto='define'
+d_time='define'
+d_times='define'
+d_tm_tm_gmtoff='define'
+d_tm_tm_zone='define'
+d_tmpnam_r='undef'
+d_truncate='define'
+d_ttyname_r='undef'
+d_tzname='define'
+d_u32align='undef'
+d_ualarm='define'
+d_umask='define'
+d_uname='define'
+d_union_semun='undef'
+d_unordered='undef'
+d_usleep='define'
+d_usleepproto='define'
+d_ustat='define'
+d_vendorarch='undef'
+d_vendorbin='undef'
+d_vendorlib='undef'
+d_vendorscript='undef'
+d_vfork='undef'
+d_void_closedir='undef'
+d_voidsig='define'
+d_voidtty=''
+d_volatile='define'
+d_vprintf='define'
+d_wait4='define'
+d_waitpid='define'
+d_wcstombs='define'
+d_wctomb='define'
+d_writev='define'
+d_xenix='undef'
+date='date'
+db_hashtype='u_int32_t'
+db_prefixtype='size_t'
+db_version_major=''
+db_version_minor=''
+db_version_patch=''
+defvoidused='15'
+direntrytype='struct dirent'
+dlext='so'
+dlsrc='dl_dlopen.xs'
+doublesize='8'
+drand01='drand48()'
+drand48_r_proto='0'
+dynamic_ext='attrs B ByteLoader Cwd Data/Dumper Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads Time/HiRes Unicode/Normalize XS/APItest XS/Typemap threads/shared'
+eagain='EAGAIN'
+ebcdic='undef'
+echo='echo'
+egrep='egrep'
+emacs=''
+endgrent_r_proto='0'
+endhostent_r_proto='0'
+endnetent_r_proto='0'
+endprotoent_r_proto='0'
+endpwent_r_proto='0'
+endservent_r_proto='0'
+eunicefix=':'
+exe_ext=''
+expr='expr'
+extensions='attrs B ByteLoader Cwd Data/Dumper Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads Time/HiRes Unicode/Normalize XS/APItest XS/Typemap threads/shared Errno'
+extras=''
+fflushNULL='define'
+fflushall='undef'
+find=''
+firstmakefile='makefile'
+flex=''
+fpossize='16'
+fpostype='fpos_t'
+freetype='void'
+from=':'
+full_ar='/usr/bin/ar'
+full_csh='csh'
+full_sed='/bin/sed'
+gccansipedantic=''
+gccosandvers=''
+gccversion='3.3.5 (Debian 1:3.3.5-6)'
+getgrent_r_proto='0'
+getgrgid_r_proto='0'
+getgrnam_r_proto='0'
+gethostbyaddr_r_proto='0'
+gethostbyname_r_proto='0'
+gethostent_r_proto='0'
+getlogin_r_proto='0'
+getnetbyaddr_r_proto='0'
+getnetbyname_r_proto='0'
+getnetent_r_proto='0'
+getprotobyname_r_proto='0'
+getprotobynumber_r_proto='0'
+getprotoent_r_proto='0'
+getpwent_r_proto='0'
+getpwnam_r_proto='0'
+getpwuid_r_proto='0'
+getservbyname_r_proto='0'
+getservbyport_r_proto='0'
+getservent_r_proto='0'
+getspnam_r_proto='0'
+gidformat='"lu"'
+gidsign='1'
+gidsize='4'
+gidtype='gid_t'
+glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
+gmake='gmake'
+gmtime_r_proto='0'
+gnulibc_version='2.3.2'
+grep='grep'
+groupcat='cat /etc/group'
+groupstype='gid_t'
+gzip='gzip'
+h_fcntl='false'
+h_sysfile='true'
+hint='recommended'
+hostcat='cat /etc/hosts'
+html1dir=' '
+html1direxp=''
+html3dir=' '
+html3direxp=''
+i16size='2'
+i16type='short'
+i32size='4'
+i32type='long'
+i64size='8'
+i64type='long long'
+i8size='1'
+i8type='char'
+i_arpainet='define'
+i_bsdioctl=''
+i_crypt='define'
+i_db='undef'
+i_dbm='undef'
+i_dirent='define'
+i_dld='undef'
+i_dlfcn='define'
+i_fcntl='undef'
+i_float='define'
+i_fp='undef'
+i_fp_class='undef'
+i_gdbm='undef'
+i_grp='define'
+i_ieeefp='undef'
+i_inttypes='define'
+i_langinfo='define'
+i_libutil='undef'
+i_limits='define'
+i_locale='define'
+i_machcthr='undef'
+i_malloc='define'
+i_math='define'
+i_memory='undef'
+i_mntent='define'
+i_ndbm='undef'
+i_netdb='define'
+i_neterrno='undef'
+i_netinettcp='define'
+i_niin='define'
+i_poll='define'
+i_prot='undef'
+i_pthread='define'
+i_pwd='define'
+i_rpcsvcdbm='undef'
+i_sfio='undef'
+i_sgtty='undef'
+i_shadow='define'
+i_socks='undef'
+i_stdarg='define'
+i_stddef='define'
+i_stdlib='define'
+i_string='define'
+i_sunmath='undef'
+i_sysaccess='undef'
+i_sysdir='define'
+i_sysfile='define'
+i_sysfilio='undef'
+i_sysin='undef'
+i_sysioctl='define'
+i_syslog='define'
+i_sysmman='define'
+i_sysmode='undef'
+i_sysmount='define'
+i_sysndir='undef'
+i_sysparam='define'
+i_sysresrc='define'
+i_syssecrt='undef'
+i_sysselct='define'
+i_syssockio='undef'
+i_sysstat='define'
+i_sysstatfs='define'
+i_sysstatvfs='define'
+i_systime='define'
+i_systimek='undef'
+i_systimes='define'
+i_systypes='define'
+i_sysuio='define'
+i_sysun='define'
+i_sysutsname='define'
+i_sysvfs='define'
+i_syswait='define'
+i_termio='undef'
+i_termios='define'
+i_time='define'
+i_unistd='define'
+i_ustat='define'
+i_utime='define'
+i_values='define'
+i_varargs='undef'
+i_varhdr='stdarg.h'
+i_vfork='undef'
+ignore_versioned_solibs='y'
+inc_version_list=' '
+inc_version_list_init='0'
+incpath=''
+inews=''
+installarchlib='./install_me_here/usr/lib/perl5/5.8.7/i486-linux'
+installbin='./install_me_here/usr/bin'
+installhtml1dir=''
+installhtml3dir=''
+installman1dir='./install_me_here/usr/share/man/man1'
+installman3dir='./install_me_here/usr/share/man/man3'
+installprefix='./install_me_here/usr'
+installprefixexp='./install_me_here/usr'
+installprivlib='./install_me_here/usr/lib/perl5/5.8.7'
+installscript='./install_me_here/usr/bin'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.8.7/i486-linux'
+installsitebin='./install_me_here/usr/bin'
+installsitehtml1dir=''
+installsitehtml3dir=''
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.8.7'
+installsiteman1dir='./install_me_here/usr/share/man/man1'
+installsiteman3dir='./install_me_here/usr/share/man/man3'
+installsitescript='./install_me_here/usr/bin'
+installstyle='./install_me_herelib/perl5'
+installusrbinperl='undef'
+installvendorarch=''
+installvendorbin=''
+installvendorhtml1dir=''
+installvendorhtml3dir=''
+installvendorlib=''
+installvendorman1dir=''
+installvendorman3dir=''
+installvendorscript=''
+intsize='4'
+issymlink='/usr/bin/test -h'
+ivdformat='"ld"'
+ivsize='4'
+ivtype='long'
+known_extensions='attrs B ByteLoader Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread threads Time/HiRes Unicode/Normalize XS/APItest XS/Typemap threads/shared'
+ksh=''
+ld='cc'
+lddlflags='-shared -L/usr/local/lib'
+ldflags=' -L/usr/local/lib'
+ldflags_uselargefiles=''
+ldlibpthname='LD_LIBRARY_PATH'
+less='less'
+lib_ext='.a'
+libc='/lib/libc-2.3.2.so'
+libperl='libperl.so'
+libpth='/usr/local/lib /lib /usr/lib'
+libs='-ldl -lm -lc -lcrypt'
+libsdirs=' /usr/lib'
+libsfiles=' libdl.so libm.so libc.so libcrypt.so'
+libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libc.so /usr/lib/libcrypt.so'
+libspath=' /usr/local/lib /lib /usr/lib'
+libswanted='gdbm gdbm_compat db dl m c crypt'
+libswanted_uselargefiles=''
+line=''
+lint=''
+lkflags=''
+ln='ln'
+lns='/bin/ln -s'
+localtime_r_proto='0'
+locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
+loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
+longdblsize='12'
+longlongsize='8'
+longsize='4'
+lp=''
+lpr=''
+ls='ls'
+lseeksize='8'
+lseektype='off_t'
+mail=''
+mailx=''
+make='make'
+make_set_make='#'
+mallocobj=''
+mallocsrc=''
+malloctype='void *'
+man1dir='/usr/share/man/man1'
+man1direxp='/usr/share/man/man1'
+man1ext='1'
+man3dir='/usr/share/man/man3'
+man3direxp='/usr/share/man/man3'
+man3ext='3'
+mips_type=''
+mistrustnm=''
+mkdir='mkdir'
+mmaptype='void *'
+modetype='mode_t'
+more='more'
+multiarch='undef'
+mv=''
+myarchname='i486-linux'
+mydomain='.kergoth.com'
+myhostname='hyperion'
+myuname='linux hyperion 2.6.11-ck1 #1 wed mar 2 23:48:21 cst 2005 i486 gnulinux '
+n='-n'
+need_va_copy='undef'
+netdb_hlen_type='size_t'
+netdb_host_type='const void *'
+netdb_name_type='const char *'
+netdb_net_type='in_addr_t'
+nm='nm'
+nm_opt=''
+nm_so_opt='--dynamic'
+nonxs_ext='Errno'
+nroff='nroff'
+nvEUformat='"E"'
+nvFUformat='"F"'
+nvGUformat='"G"'
+nv_preserves_uv_bits='32'
+nveformat='"e"'
+nvfformat='"f"'
+nvgformat='"g"'
+nvsize='8'
+nvtype='double'
+o_nonblock='O_NONBLOCK'
+obj_ext='.o'
+old_pthread_create_joinable=''
+optimize='-O2'
+orderlib='false'
+osname='linux'
+osvers='2.6.11-ck1'
+otherlibdirs=' '
+package='perl5'
+pager='/usr/bin/less'
+passcat='cat /etc/passwd'
+patchlevel='8'
+path_sep=':'
+perl5='hostperl'
+perl=''
+perl_patchlevel=''
+perladmin=''
+perllibs='-ldl -lm -lc -lcrypt'
+perlpath='hostperl'
+pg='pg'
+phostname='hostname'
+pidtype='pid_t'
+plibpth=''
+pmake=''
+pr=''
+prefix='/usr'
+prefixexp='/usr'
+privlib='/usr/lib/perl5/5.8.7'
+privlibexp='/usr/lib/perl5/5.8.7'
+procselfexe='"/proc/self/exe"'
+prototype='define'
+ptrsize='4'
+quadkind='3'
+quadtype='long long'
+randbits='48'
+randfunc='drand48'
+random_r_proto='0'
+randseedtype='long'
+ranlib=':'
+rd_nodata='-1'
+readdir64_r_proto='0'
+readdir_r_proto='0'
+revision='5'
+rm='rm'
+rmail=''
+run=''
+runnm='false'
+sPRIEUldbl='"LE"'
+sPRIFUldbl='"LF"'
+sPRIGUldbl='"LG"'
+sPRIXU64='"LX"'
+sPRId64='"Ld"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
+sPRIi64='"Li"'
+sPRIo64='"Lo"'
+sPRIu64='"Lu"'
+sPRIx64='"Lx"'
+sSCNfldbl='"Lf"'
+sched_yield='sched_yield()'
+scriptdir='/usr/bin'
+scriptdirexp='/usr/bin'
+sed='sed'
+seedfunc='srand48'
+selectminbits='32'
+selecttype='fd_set *'
+sendmail=''
+setgrent_r_proto='0'
+sethostent_r_proto='0'
+setlocale_r_proto='0'
+setnetent_r_proto='0'
+setprotoent_r_proto='0'
+setpwent_r_proto='0'
+setservent_r_proto='0'
+sh='/bin/sh'
+shar=''
+sharpbang='#!'
+shmattype='void *'
+shortsize='2'
+shrpenv=''
+shsharp='true'
+sig_count='65'
+sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED '
+sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "RTMIN", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 '
+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
+sig_size='69'
+signal_t='void'
+sitearch='/usr/lib/perl5/site_perl/5.8.7/i486-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.8.7/i486-linux'
+sitebin='/usr/bin'
+sitebinexp='/usr/bin'
+sitehtml1dir=''
+sitehtml1direxp=''
+sitehtml3dir=''
+sitehtml3direxp=''
+sitelib='/usr/lib/perl5/site_perl/5.8.7'
+sitelib_stem='/usr/lib/perl5/site_perl'
+sitelibexp='/usr/lib/perl5/site_perl/5.8.7'
+siteman1dir='/usr/share/man/man1'
+siteman1direxp='/usr/share/man/man1'
+siteman3dir='/usr/share/man/man3'
+siteman3direxp='/usr/share/man/man3'
+siteprefix='/usr'
+siteprefixexp='/usr'
+sitescript='/usr/bin'
+sitescriptexp='/usr/bin'
+sizesize='4'
+sizetype='size_t'
+sleep=''
+smail=''
+so='so'
+sockethdr=''
+socketlib=''
+socksizetype='socklen_t'
+sort='sort'
+spackage='Perl5'
+spitshell='cat'
+srand48_r_proto='0'
+srandom_r_proto='0'
+src='.'
+ssizetype='ssize_t'
+startperl='#!/usr/bin/perl'
+startsh='#!/bin/sh'
+static_ext=' '
+stdchar='char'
+stdio_base='((fp)->_IO_read_base)'
+stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)'
+stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
+stdio_filbuf=''
+stdio_ptr='((fp)->_IO_read_ptr)'
+stdio_stream_array=''
+strerror_r_proto='0'
+strings='/usr/include/string.h'
+submit=''
+subversion='4'
+sysman='/usr/share/man/man1'
+tail=''
+tar=''
+targetarch=''
+tbl=''
+tee=''
+test='test'
+timeincl='/usr/include/sys/time.h /usr/include/time.h '
+timetype='time_t'
+tmpnam_r_proto='0'
+to=':'
+touch='touch'
+tr='tr'
+trnl='\n'
+troff=''
+ttyname_r_proto='0'
+u16size='2'
+u16type='unsigned short'
+u32size='4'
+u32type='unsigned long'
+u64size='8'
+u64type='unsigned long long'
+u8size='1'
+u8type='unsigned char'
+uidformat='"lu"'
+uidsign='1'
+uidsize='4'
+uidtype='uid_t'
+uname='uname'
+uniq='uniq'
+uquadtype='unsigned long long'
+use5005threads='undef'
+use64bitall='undef'
+use64bitint='undef'
+usecrosscompile='undef'
+usedl='define'
+usefaststdio='define'
+useithreads='undef'
+uselargefiles='define'
+uselongdouble='undef'
+usemallocwrap='define'
+usemorebits='undef'
+usemultiplicity='undef'
+usemymalloc='n'
+usenm='false'
+useopcode='true'
+useperlio='define'
+useposix='true'
+usereentrant='undef'
+usesfio='false'
+useshrplib='true'
+usesitecustomize='undef'
+usesocks='undef'
+usethreads='undef'
+usevendorprefix='undef'
+usevfork='false'
+usrinc='/usr/include'
+uuname=''
+uvXUformat='"lX"'
+uvoformat='"lo"'
+uvsize='4'
+uvtype='unsigned long'
+uvuformat='"lu"'
+uvxformat='"lx"'
+vendorarch=''
+vendorarchexp=''
+vendorbin=''
+vendorbinexp=''
+vendorhtml1dir=' '
+vendorhtml1direxp=''
+vendorhtml3dir=' '
+vendorhtml3direxp=''
+vendorlib=''
+vendorlib_stem=''
+vendorlibexp=''
+vendorman1dir=' '
+vendorman1direxp=''
+vendorman3dir=' '
+vendorman3direxp=''
+vendorprefix=''
+vendorprefixexp=''
+vendorscript=''
+vendorscriptexp=''
+version='5.8.7'
+version_patchlevel_string='version 8 subversion 4'
+versiononly='undef'
+vi=''
+voidflags='15'
+xlibpth='/usr/lib/386 /lib/386'
+yacc='yacc'
+yaccflags=''
+zcat=''
+zip='zip'
+# Configure command line arguments.
+config_arg0='./Configure'
+config_args=''
+config_argc=0
+PERL_REVISION=5
+PERL_VERSION=8
+PERL_SUBVERSION=4
+PERL_API_REVISION=5
+PERL_API_VERSION=8
+PERL_API_SUBVERSION=0
+PERL_PATCHLEVEL=
+PERL_CONFIG_SH=true
diff --git a/packages/perl/perl-5.8.7/config.sh-i586-linux b/packages/perl/perl-5.8.7/config.sh-i586-linux
new file mode 100644
index 0000000000..734b17af36
--- /dev/null
+++ b/packages/perl/perl-5.8.7/config.sh-i586-linux
@@ -0,0 +1,1028 @@
+#!/bin/sh
+#
+# This file was produced by running the Configure script. It holds all the
+# definitions figured out by Configure. Should you modify one of these values,
+# do not forget to propagate your changes by running "Configure -der". You may
+# instead choose to run each of the .SH files by yourself, or "Configure -S".
+#
+
+# Package name : perl5
+# Source directory : .
+# Configuration time: Wed Mar 9 04:09:49 CST 2005
+# Configured by : kergoth
+# Target system : linux hyperion 2.6.11-ck1 #1 wed mar 2 23:48:21 cst 2005 i586 gnulinux
+
+Author=''
+Date='$Date'
+Header=''
+Id='$Id'
+Locker=''
+Log='$Log'
+Mcc='Mcc'
+RCSfile='$RCSfile'
+Revision='$Revision'
+Source=''
+State=''
+_a='.a'
+_exe=''
+_o='.o'
+afs='false'
+afsroot='/afs'
+alignbytes='4'
+ansi2knr=''
+aphostname='/bin/hostname'
+api_revision='5'
+api_subversion='0'
+api_version='8'
+api_versionstring='5.8.0'
+ar='ar'
+archlib='/usr/lib/perl5/5.8.7/i586-linux'
+archlibexp='/usr/lib/perl5/5.8.7/i586-linux'
+archname64=''
+archname='i586-linux'
+archobjs=''
+asctime_r_proto='0'
+awk='awk'
+baserev='5.0'
+bash=''
+bin='/usr/bin'
+binexp='/usr/bin'
+bison='bison'
+byacc='byacc'
+byteorder='1234'
+c=''
+castflags='0'
+cat='cat'
+cc='cc'
+cccdlflags='-fpic'
+ccdlflags='-Wl,-E -Wl,-rpath,./install_me_here/usr/lib/perl5/5.8.7/i586-linux/CORE'
+ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+ccname='gcc'
+ccsymbols='__GNUC_PATCHLEVEL__=5'
+ccversion=''
+cf_by='kergoth'
+cf_email='kergoth@hyperion.kergoth.com'
+cf_time='Wed Mar 9 04:09:49 CST 2005'
+charsize='1'
+chgrp=''
+chmod='chmod'
+chown=''
+clocktype='clock_t'
+comm='comm'
+compress=''
+contains='grep'
+cp='cp'
+cpio=''
+cpp='cpp'
+cpp_stuff='42'
+cppccsymbols='__GNUC__=3 __GNUC_MINOR__=3'
+cppflags='-fno-strict-aliasing -I/usr/local/include'
+cpplast='-'
+cppminus='-'
+cpprun='cc -E'
+cppstdin='cc -E'
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=3 __GNU_LIBRARY__=6 i586=1 __i586=1 __i586__=1 __i586=1 __i586__=1 _LARGEFILE_SOURCE=1 linux=1 __linux=1 __linux__=1 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 __STDC__=1 unix=1 __unix=1 __unix__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1'
+crypt_r_proto='0'
+cryptlib=''
+csh='csh'
+ctermid_r_proto='0'
+ctime_r_proto='0'
+d_Gconvert='gcvt((x),(n),(b))'
+d_PRIEUldbl='define'
+d_PRIFUldbl='define'
+d_PRIGUldbl='define'
+d_PRIXU64='define'
+d_PRId64='define'
+d_PRIeldbl='define'
+d_PRIfldbl='define'
+d_PRIgldbl='define'
+d_PRIi64='define'
+d_PRIo64='define'
+d_PRIu64='define'
+d_PRIx64='define'
+d_SCNfldbl='define'
+d__fwalk='undef'
+d_access='define'
+d_accessx='undef'
+d_aintl='undef'
+d_alarm='define'
+d_archlib='define'
+d_asctime_r='undef'
+d_atolf='undef'
+d_atoll='define'
+d_attribut='define'
+d_bcmp='define'
+d_bcopy='define'
+d_bsd='undef'
+d_bsdgetpgrp='undef'
+d_bsdsetpgrp='undef'
+d_bzero='define'
+d_casti32='undef'
+d_castneg='define'
+d_charvspr='define'
+d_chown='define'
+d_chroot='define'
+d_chsize='undef'
+d_class='undef'
+d_closedir='define'
+d_cmsghdr_s='define'
+d_const='define'
+d_copysignl='define'
+d_crypt='define'
+d_crypt_r='undef'
+d_csh='undef'
+d_ctermid_r='undef'
+d_ctime_r='undef'
+d_cuserid='define'
+d_dbl_dig='define'
+d_dbminitproto='undef'
+d_difftime='define'
+d_dirfd='define'
+d_dirnamlen='undef'
+d_dlerror='define'
+d_dlopen='define'
+d_dlsymun='undef'
+d_dosuid='undef'
+d_drand48_r='undef'
+d_drand48proto='define'
+d_dup2='define'
+d_eaccess='undef'
+d_endgrent='define'
+d_endgrent_r='undef'
+d_endhent='define'
+d_endhostent_r='undef'
+d_endnent='define'
+d_endnetent_r='undef'
+d_endpent='define'
+d_endprotoent_r='undef'
+d_endpwent='define'
+d_endpwent_r='undef'
+d_endsent='define'
+d_endservent_r='undef'
+d_eofnblk='define'
+d_eunice='undef'
+d_faststdio='undef'
+d_fchdir='define'
+d_fchmod='define'
+d_fchown='define'
+d_fcntl='define'
+d_fcntl_can_lock='define'
+d_fd_macros='define'
+d_fd_set='define'
+d_fds_bits='undef'
+d_fgetpos='define'
+d_finite='define'
+d_finitel='define'
+d_flexfnam='define'
+d_flock='define'
+d_flockproto='define'
+d_fork='define'
+d_fp_class='undef'
+d_fpathconf='define'
+d_fpclass='undef'
+d_fpclassify='undef'
+d_fpclassl='undef'
+d_fpos64_t='undef'
+d_frexpl='define'
+d_fs_data_s='undef'
+d_fseeko='define'
+d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='define'
+d_fsync='define'
+d_ftello='define'
+d_ftime='undef'
+d_getcwd='define'
+d_getespwnam='undef'
+d_getfsstat='undef'
+d_getgrent='define'
+d_getgrent_r='undef'
+d_getgrgid_r='undef'
+d_getgrnam_r='undef'
+d_getgrps='define'
+d_gethbyaddr='define'
+d_gethbyname='define'
+d_gethent='define'
+d_gethname='define'
+d_gethostbyaddr_r='undef'
+d_gethostbyname_r='undef'
+d_gethostent_r='undef'
+d_gethostprotos='define'
+d_getitimer='define'
+d_getlogin='define'
+d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='define'
+d_getnbyaddr='define'
+d_getnbyname='define'
+d_getnent='define'
+d_getnetbyaddr_r='undef'
+d_getnetbyname_r='undef'
+d_getnetent_r='undef'
+d_getnetprotos='define'
+d_getpagsz='define'
+d_getpbyname='define'
+d_getpbynumber='define'
+d_getpent='define'
+d_getpgid='define'
+d_getpgrp2='undef'
+d_getpgrp='define'
+d_getppid='define'
+d_getprior='define'
+d_getprotobyname_r='undef'
+d_getprotobynumber_r='undef'
+d_getprotoent_r='undef'
+d_getprotoprotos='define'
+d_getprpwnam='undef'
+d_getpwent='define'
+d_getpwent_r='undef'
+d_getpwnam_r='undef'
+d_getpwuid_r='undef'
+d_getsbyname='define'
+d_getsbyport='define'
+d_getsent='define'
+d_getservbyname_r='undef'
+d_getservbyport_r='undef'
+d_getservent_r='undef'
+d_getservprotos='define'
+d_getspnam='define'
+d_getspnam_r='undef'
+d_gettimeod='define'
+d_gmtime_r='undef'
+d_gnulibc='define'
+d_grpasswd='define'
+d_hasmntopt='define'
+d_htonl='define'
+d_ilogbl='define'
+d_index='undef'
+d_inetaton='define'
+d_int64_t='define'
+d_isascii='define'
+d_isfinite='undef'
+d_isinf='define'
+d_isnan='define'
+d_isnanl='define'
+d_killpg='define'
+d_lchown='define'
+d_ldbl_dig='define'
+d_libm_lib_version='define'
+d_link='define'
+d_localtime_r='undef'
+d_locconv='define'
+d_lockf='define'
+d_longdbl='define'
+d_longlong='define'
+d_lseekproto='define'
+d_lstat='define'
+d_madvise='define'
+d_mblen='define'
+d_mbstowcs='define'
+d_mbtowc='define'
+d_memchr='define'
+d_memcmp='define'
+d_memcpy='define'
+d_memmove='define'
+d_memset='define'
+d_mkdir='define'
+d_mkdtemp='define'
+d_mkfifo='define'
+d_mkstemp='define'
+d_mkstemps='undef'
+d_mktime='define'
+d_mmap='define'
+d_modfl='define'
+d_modfl_pow32_bug='undef'
+d_modflproto='undef'
+d_mprotect='define'
+d_msg='define'
+d_msg_ctrunc='define'
+d_msg_dontroute='define'
+d_msg_oob='define'
+d_msg_peek='define'
+d_msg_proxy='define'
+d_msgctl='define'
+d_msgget='define'
+d_msghdr_s='define'
+d_msgrcv='define'
+d_msgsnd='define'
+d_msync='define'
+d_munmap='define'
+d_mymalloc='undef'
+d_nice='define'
+d_nl_langinfo='define'
+d_nv_preserves_uv='define'
+d_off64_t='undef'
+d_old_pthread_create_joinable='undef'
+d_oldpthreads='undef'
+d_oldsock='undef'
+d_open3='define'
+d_pathconf='define'
+d_pause='define'
+d_perl_otherlibdirs='undef'
+d_phostname='undef'
+d_pipe='define'
+d_poll='define'
+d_portable='define'
+d_procselfexe='define'
+d_pthread_atfork='undef'
+d_pthread_attr_setscope='define'
+d_pthread_yield='undef'
+d_pwage='undef'
+d_pwchange='undef'
+d_pwclass='undef'
+d_pwcomment='undef'
+d_pwexpire='undef'
+d_pwgecos='define'
+d_pwpasswd='define'
+d_pwquota='undef'
+d_qgcvt='define'
+d_quad='define'
+d_random_r='undef'
+d_readdir64_r='undef'
+d_readdir='define'
+d_readdir_r='undef'
+d_readlink='define'
+d_readv='define'
+d_recvmsg='define'
+d_rename='define'
+d_rewinddir='define'
+d_rmdir='define'
+d_safebcpy='undef'
+d_safemcpy='undef'
+d_sanemcmp='define'
+d_sbrkproto='define'
+d_scalbnl='define'
+d_sched_yield='define'
+d_scm_rights='define'
+d_seekdir='define'
+d_select='define'
+d_sem='define'
+d_semctl='define'
+d_semctl_semid_ds='define'
+d_semctl_semun='define'
+d_semget='define'
+d_semop='define'
+d_sendmsg='define'
+d_setegid='define'
+d_seteuid='define'
+d_setgrent='define'
+d_setgrent_r='undef'
+d_setgrps='define'
+d_sethent='define'
+d_sethostent_r='undef'
+d_setitimer='define'
+d_setlinebuf='define'
+d_setlocale='define'
+d_setlocale_r='undef'
+d_setnent='define'
+d_setnetent_r='undef'
+d_setpent='define'
+d_setpgid='define'
+d_setpgrp2='undef'
+d_setpgrp='define'
+d_setprior='define'
+d_setproctitle='undef'
+d_setprotoent_r='undef'
+d_setpwent='define'
+d_setpwent_r='undef'
+d_setregid='define'
+d_setresgid='define'
+d_setresuid='define'
+d_setreuid='define'
+d_setrgid='undef'
+d_setruid='undef'
+d_setsent='define'
+d_setservent_r='undef'
+d_setsid='define'
+d_setvbuf='define'
+d_sfio='undef'
+d_shm='define'
+d_shmat='define'
+d_shmatprototype='define'
+d_shmctl='define'
+d_shmdt='define'
+d_shmget='define'
+d_sigaction='define'
+d_sigprocmask='define'
+d_sigsetjmp='define'
+d_sockatmark='define'
+d_sockatmarkproto='undef'
+d_socket='define'
+d_socklen_t='define'
+d_sockpair='define'
+d_socks5_init='undef'
+d_sqrtl='define'
+d_srand48_r='undef'
+d_srandom_r='undef'
+d_sresgproto='undef'
+d_sresuproto='undef'
+d_statblks='define'
+d_statfs_f_flags='undef'
+d_statfs_s='define'
+d_statvfs='define'
+d_stdio_cnt_lval='undef'
+d_stdio_ptr_lval='undef'
+d_stdio_ptr_lval_nochange_cnt='undef'
+d_stdio_ptr_lval_sets_cnt='undef'
+d_stdio_stream_array='undef'
+d_stdiobase='undef'
+d_stdstdio='undef'
+d_strchr='define'
+d_strcoll='define'
+d_strctcpy='define'
+d_strerrm='strerror(e)'
+d_strerror='define'
+d_strerror_r='undef'
+d_strftime='define'
+d_strlcat='undef'
+d_strlcpy='undef'
+d_strtod='define'
+d_strtol='define'
+d_strtold='define'
+d_strtoll='define'
+d_strtoq='define'
+d_strtoul='define'
+d_strtoull='define'
+d_strtouq='define'
+d_strxfrm='define'
+d_suidsafe='undef'
+d_symlink='define'
+d_syscall='define'
+d_syscallproto='define'
+d_sysconf='define'
+d_sysernlst=''
+d_syserrlst='define'
+d_system='define'
+d_tcgetpgrp='define'
+d_tcsetpgrp='define'
+d_telldir='define'
+d_telldirproto='define'
+d_time='define'
+d_times='define'
+d_tm_tm_gmtoff='define'
+d_tm_tm_zone='define'
+d_tmpnam_r='undef'
+d_truncate='define'
+d_ttyname_r='undef'
+d_tzname='define'
+d_u32align='undef'
+d_ualarm='define'
+d_umask='define'
+d_uname='define'
+d_union_semun='undef'
+d_unordered='undef'
+d_usleep='define'
+d_usleepproto='define'
+d_ustat='define'
+d_vendorarch='undef'
+d_vendorbin='undef'
+d_vendorlib='undef'
+d_vendorscript='undef'
+d_vfork='undef'
+d_void_closedir='undef'
+d_voidsig='define'
+d_voidtty=''
+d_volatile='define'
+d_vprintf='define'
+d_wait4='define'
+d_waitpid='define'
+d_wcstombs='define'
+d_wctomb='define'
+d_writev='define'
+d_xenix='undef'
+date='date'
+db_hashtype='u_int32_t'
+db_prefixtype='size_t'
+db_version_major=''
+db_version_minor=''
+db_version_patch=''
+defvoidused='15'
+direntrytype='struct dirent'
+dlext='so'
+dlsrc='dl_dlopen.xs'
+doublesize='8'
+drand01='drand48()'
+drand48_r_proto='0'
+dynamic_ext='attrs B ByteLoader Cwd Data/Dumper Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads Time/HiRes Unicode/Normalize XS/APItest XS/Typemap threads/shared'
+eagain='EAGAIN'
+ebcdic='undef'
+echo='echo'
+egrep='egrep'
+emacs=''
+endgrent_r_proto='0'
+endhostent_r_proto='0'
+endnetent_r_proto='0'
+endprotoent_r_proto='0'
+endpwent_r_proto='0'
+endservent_r_proto='0'
+eunicefix=':'
+exe_ext=''
+expr='expr'
+extensions='attrs B ByteLoader Cwd Data/Dumper Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog threads Time/HiRes Unicode/Normalize XS/APItest XS/Typemap threads/shared Errno'
+extras=''
+fflushNULL='define'
+fflushall='undef'
+find=''
+firstmakefile='makefile'
+flex=''
+fpossize='16'
+fpostype='fpos_t'
+freetype='void'
+from=':'
+full_ar='/usr/bin/ar'
+full_csh='csh'
+full_sed='/bin/sed'
+gccansipedantic=''
+gccosandvers=''
+gccversion='3.3.5 (Debian 1:3.3.5-6)'
+getgrent_r_proto='0'
+getgrgid_r_proto='0'
+getgrnam_r_proto='0'
+gethostbyaddr_r_proto='0'
+gethostbyname_r_proto='0'
+gethostent_r_proto='0'
+getlogin_r_proto='0'
+getnetbyaddr_r_proto='0'
+getnetbyname_r_proto='0'
+getnetent_r_proto='0'
+getprotobyname_r_proto='0'
+getprotobynumber_r_proto='0'
+getprotoent_r_proto='0'
+getpwent_r_proto='0'
+getpwnam_r_proto='0'
+getpwuid_r_proto='0'
+getservbyname_r_proto='0'
+getservbyport_r_proto='0'
+getservent_r_proto='0'
+getspnam_r_proto='0'
+gidformat='"lu"'
+gidsign='1'
+gidsize='4'
+gidtype='gid_t'
+glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
+gmake='gmake'
+gmtime_r_proto='0'
+gnulibc_version='2.3.2'
+grep='grep'
+groupcat='cat /etc/group'
+groupstype='gid_t'
+gzip='gzip'
+h_fcntl='false'
+h_sysfile='true'
+hint='recommended'
+hostcat='cat /etc/hosts'
+html1dir=' '
+html1direxp=''
+html3dir=' '
+html3direxp=''
+i16size='2'
+i16type='short'
+i32size='4'
+i32type='long'
+i64size='8'
+i64type='long long'
+i8size='1'
+i8type='char'
+i_arpainet='define'
+i_bsdioctl=''
+i_crypt='define'
+i_db='undef'
+i_dbm='undef'
+i_dirent='define'
+i_dld='undef'
+i_dlfcn='define'
+i_fcntl='undef'
+i_float='define'
+i_fp='undef'
+i_fp_class='undef'
+i_gdbm='undef'
+i_grp='define'
+i_ieeefp='undef'
+i_inttypes='define'
+i_langinfo='define'
+i_libutil='undef'
+i_limits='define'
+i_locale='define'
+i_machcthr='undef'
+i_malloc='define'
+i_math='define'
+i_memory='undef'
+i_mntent='define'
+i_ndbm='undef'
+i_netdb='define'
+i_neterrno='undef'
+i_netinettcp='define'
+i_niin='define'
+i_poll='define'
+i_prot='undef'
+i_pthread='define'
+i_pwd='define'
+i_rpcsvcdbm='undef'
+i_sfio='undef'
+i_sgtty='undef'
+i_shadow='define'
+i_socks='undef'
+i_stdarg='define'
+i_stddef='define'
+i_stdlib='define'
+i_string='define'
+i_sunmath='undef'
+i_sysaccess='undef'
+i_sysdir='define'
+i_sysfile='define'
+i_sysfilio='undef'
+i_sysin='undef'
+i_sysioctl='define'
+i_syslog='define'
+i_sysmman='define'
+i_sysmode='undef'
+i_sysmount='define'
+i_sysndir='undef'
+i_sysparam='define'
+i_sysresrc='define'
+i_syssecrt='undef'
+i_sysselct='define'
+i_syssockio='undef'
+i_sysstat='define'
+i_sysstatfs='define'
+i_sysstatvfs='define'
+i_systime='define'
+i_systimek='undef'
+i_systimes='define'
+i_systypes='define'
+i_sysuio='define'
+i_sysun='define'
+i_sysutsname='define'
+i_sysvfs='define'
+i_syswait='define'
+i_termio='undef'
+i_termios='define'
+i_time='define'
+i_unistd='define'
+i_ustat='define'
+i_utime='define'
+i_values='define'
+i_varargs='undef'
+i_varhdr='stdarg.h'
+i_vfork='undef'
+ignore_versioned_solibs='y'
+inc_version_list=' '
+inc_version_list_init='0'
+incpath=''
+inews=''
+installarchlib='./install_me_here/usr/lib/perl5/5.8.7/i586-linux'
+installbin='./install_me_here/usr/bin'
+installhtml1dir=''
+installhtml3dir=''
+installman1dir='./install_me_here/usr/share/man/man1'
+installman3dir='./install_me_here/usr/share/man/man3'
+installprefix='./install_me_here/usr'
+installprefixexp='./install_me_here/usr'
+installprivlib='./install_me_here/usr/lib/perl5/5.8.7'
+installscript='./install_me_here/usr/bin'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.8.7/i586-linux'
+installsitebin='./install_me_here/usr/bin'
+installsitehtml1dir=''
+installsitehtml3dir=''
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.8.7'
+installsiteman1dir='./install_me_here/usr/share/man/man1'
+installsiteman3dir='./install_me_here/usr/share/man/man3'
+installsitescript='./install_me_here/usr/bin'
+installstyle='./install_me_herelib/perl5'
+installusrbinperl='undef'
+installvendorarch=''
+installvendorbin=''
+installvendorhtml1dir=''
+installvendorhtml3dir=''
+installvendorlib=''
+installvendorman1dir=''
+installvendorman3dir=''
+installvendorscript=''
+intsize='4'
+issymlink='/usr/bin/test -h'
+ivdformat='"ld"'
+ivsize='4'
+ivtype='long'
+known_extensions='attrs B ByteLoader Cwd Data/Dumper DB_File Devel/DProf Devel/Peek Devel/PPPort Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode PerlIO/encoding PerlIO/scalar PerlIO/via POSIX re SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread threads Time/HiRes Unicode/Normalize XS/APItest XS/Typemap threads/shared'
+ksh=''
+ld='cc'
+lddlflags='-shared -L/usr/local/lib'
+ldflags=' -L/usr/local/lib'
+ldflags_uselargefiles=''
+ldlibpthname='LD_LIBRARY_PATH'
+less='less'
+lib_ext='.a'
+libc='/lib/libc-2.3.2.so'
+libperl='libperl.so'
+libpth='/usr/local/lib /lib /usr/lib'
+libs='-ldl -lm -lc -lcrypt'
+libsdirs=' /usr/lib'
+libsfiles=' libdl.so libm.so libc.so libcrypt.so'
+libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libc.so /usr/lib/libcrypt.so'
+libspath=' /usr/local/lib /lib /usr/lib'
+libswanted='gdbm gdbm_compat db dl m c crypt'
+libswanted_uselargefiles=''
+line=''
+lint=''
+lkflags=''
+ln='ln'
+lns='/bin/ln -s'
+localtime_r_proto='0'
+locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
+loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
+longdblsize='12'
+longlongsize='8'
+longsize='4'
+lp=''
+lpr=''
+ls='ls'
+lseeksize='8'
+lseektype='off_t'
+mail=''
+mailx=''
+make='make'
+make_set_make='#'
+mallocobj=''
+mallocsrc=''
+malloctype='void *'
+man1dir='/usr/share/man/man1'
+man1direxp='/usr/share/man/man1'
+man1ext='1'
+man3dir='/usr/share/man/man3'
+man3direxp='/usr/share/man/man3'
+man3ext='3'
+mips_type=''
+mistrustnm=''
+mkdir='mkdir'
+mmaptype='void *'
+modetype='mode_t'
+more='more'
+multiarch='undef'
+mv=''
+myarchname='i586-linux'
+mydomain='.kergoth.com'
+myhostname='hyperion'
+myuname='linux hyperion 2.6.11-ck1 #1 wed mar 2 23:48:21 cst 2005 i586 gnulinux '
+n='-n'
+need_va_copy='undef'
+netdb_hlen_type='size_t'
+netdb_host_type='const void *'
+netdb_name_type='const char *'
+netdb_net_type='in_addr_t'
+nm='nm'
+nm_opt=''
+nm_so_opt='--dynamic'
+nonxs_ext='Errno'
+nroff='nroff'
+nvEUformat='"E"'
+nvFUformat='"F"'
+nvGUformat='"G"'
+nv_preserves_uv_bits='32'
+nveformat='"e"'
+nvfformat='"f"'
+nvgformat='"g"'
+nvsize='8'
+nvtype='double'
+o_nonblock='O_NONBLOCK'
+obj_ext='.o'
+old_pthread_create_joinable=''
+optimize='-O2'
+orderlib='false'
+osname='linux'
+osvers='2.6.11-ck1'
+otherlibdirs=' '
+package='perl5'
+pager='/usr/bin/less'
+passcat='cat /etc/passwd'
+patchlevel='8'
+path_sep=':'
+perl5='hostperl'
+perl=''
+perl_patchlevel=''
+perladmin=''
+perllibs='-ldl -lm -lc -lcrypt'
+perlpath='hostperl'
+pg='pg'
+phostname='hostname'
+pidtype='pid_t'
+plibpth=''
+pmake=''
+pr=''
+prefix='/usr'
+prefixexp='/usr'
+privlib='/usr/lib/perl5/5.8.7'
+privlibexp='/usr/lib/perl5/5.8.7'
+procselfexe='"/proc/self/exe"'
+prototype='define'
+ptrsize='4'
+quadkind='3'
+quadtype='long long'
+randbits='48'
+randfunc='drand48'
+random_r_proto='0'
+randseedtype='long'
+ranlib=':'
+rd_nodata='-1'
+readdir64_r_proto='0'
+readdir_r_proto='0'
+revision='5'
+rm='rm'
+rmail=''
+run=''
+runnm='false'
+sPRIEUldbl='"LE"'
+sPRIFUldbl='"LF"'
+sPRIGUldbl='"LG"'
+sPRIXU64='"LX"'
+sPRId64='"Ld"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
+sPRIi64='"Li"'
+sPRIo64='"Lo"'
+sPRIu64='"Lu"'
+sPRIx64='"Lx"'
+sSCNfldbl='"Lf"'
+sched_yield='sched_yield()'
+scriptdir='/usr/bin'
+scriptdirexp='/usr/bin'
+sed='sed'
+seedfunc='srand48'
+selectminbits='32'
+selecttype='fd_set *'
+sendmail=''
+setgrent_r_proto='0'
+sethostent_r_proto='0'
+setlocale_r_proto='0'
+setnetent_r_proto='0'
+setprotoent_r_proto='0'
+setpwent_r_proto='0'
+setservent_r_proto='0'
+sh='/bin/sh'
+shar=''
+sharpbang='#!'
+shmattype='void *'
+shortsize='2'
+shrpenv=''
+shsharp='true'
+sig_count='65'
+sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED '
+sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "RTMIN", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 '
+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
+sig_size='69'
+signal_t='void'
+sitearch='/usr/lib/perl5/site_perl/5.8.7/i586-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.8.7/i586-linux'
+sitebin='/usr/bin'
+sitebinexp='/usr/bin'
+sitehtml1dir=''
+sitehtml1direxp=''
+sitehtml3dir=''
+sitehtml3direxp=''
+sitelib='/usr/lib/perl5/site_perl/5.8.7'
+sitelib_stem='/usr/lib/perl5/site_perl'
+sitelibexp='/usr/lib/perl5/site_perl/5.8.7'
+siteman1dir='/usr/share/man/man1'
+siteman1direxp='/usr/share/man/man1'
+siteman3dir='/usr/share/man/man3'
+siteman3direxp='/usr/share/man/man3'
+siteprefix='/usr'
+siteprefixexp='/usr'
+sitescript='/usr/bin'
+sitescriptexp='/usr/bin'
+sizesize='4'
+sizetype='size_t'
+sleep=''
+smail=''
+so='so'
+sockethdr=''
+socketlib=''
+socksizetype='socklen_t'
+sort='sort'
+spackage='Perl5'
+spitshell='cat'
+srand48_r_proto='0'
+srandom_r_proto='0'
+src='.'
+ssizetype='ssize_t'
+startperl='#!/usr/bin/perl'
+startsh='#!/bin/sh'
+static_ext=' '
+stdchar='char'
+stdio_base='((fp)->_IO_read_base)'
+stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)'
+stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)'
+stdio_filbuf=''
+stdio_ptr='((fp)->_IO_read_ptr)'
+stdio_stream_array=''
+strerror_r_proto='0'
+strings='/usr/include/string.h'
+submit=''
+subversion='4'
+sysman='/usr/share/man/man1'
+tail=''
+tar=''
+targetarch=''
+tbl=''
+tee=''
+test='test'
+timeincl='/usr/include/sys/time.h /usr/include/time.h '
+timetype='time_t'
+tmpnam_r_proto='0'
+to=':'
+touch='touch'
+tr='tr'
+trnl='\n'
+troff=''
+ttyname_r_proto='0'
+u16size='2'
+u16type='unsigned short'
+u32size='4'
+u32type='unsigned long'
+u64size='8'
+u64type='unsigned long long'
+u8size='1'
+u8type='unsigned char'
+uidformat='"lu"'
+uidsign='1'
+uidsize='4'
+uidtype='uid_t'
+uname='uname'
+uniq='uniq'
+uquadtype='unsigned long long'
+use5005threads='undef'
+use64bitall='undef'
+use64bitint='undef'
+usecrosscompile='undef'
+usedl='define'
+usefaststdio='define'
+useithreads='undef'
+uselargefiles='define'
+uselongdouble='undef'
+usemallocwrap='define'
+usemorebits='undef'
+usemultiplicity='undef'
+usemymalloc='n'
+usenm='false'
+useopcode='true'
+useperlio='define'
+useposix='true'
+usereentrant='undef'
+usesfio='false'
+useshrplib='true'
+usesitecustomize='undef'
+usesocks='undef'
+usethreads='undef'
+usevendorprefix='undef'
+usevfork='false'
+usrinc='/usr/include'
+uuname=''
+uvXUformat='"lX"'
+uvoformat='"lo"'
+uvsize='4'
+uvtype='unsigned long'
+uvuformat='"lu"'
+uvxformat='"lx"'
+vendorarch=''
+vendorarchexp=''
+vendorbin=''
+vendorbinexp=''
+vendorhtml1dir=' '
+vendorhtml1direxp=''
+vendorhtml3dir=' '
+vendorhtml3direxp=''
+vendorlib=''
+vendorlib_stem=''
+vendorlibexp=''
+vendorman1dir=' '
+vendorman1direxp=''
+vendorman3dir=' '
+vendorman3direxp=''
+vendorprefix=''
+vendorprefixexp=''
+vendorscript=''
+vendorscriptexp=''
+version='5.8.7'
+version_patchlevel_string='version 8 subversion 4'
+versiononly='undef'
+vi=''
+voidflags='15'
+xlibpth='/usr/lib/386 /lib/386'
+yacc='yacc'
+yaccflags=''
+zcat=''
+zip='zip'
+# Configure command line arguments.
+config_arg0='./Configure'
+config_args=''
+config_argc=0
+PERL_REVISION=5
+PERL_VERSION=8
+PERL_SUBVERSION=4
+PERL_API_REVISION=5
+PERL_API_VERSION=8
+PERL_API_SUBVERSION=0
+PERL_PATCHLEVEL=
+PERL_CONFIG_SH=true
diff --git a/packages/perl/perl_5.8.7.bb b/packages/perl/perl_5.8.7.bb
index 456cc95c84..056fee2676 100644
--- a/packages/perl/perl_5.8.7.bb
+++ b/packages/perl/perl_5.8.7.bb
@@ -4,7 +4,11 @@ include perl.inc
SRC_URI += "file://config.sh-armeb-linux \
file://config.sh-arm-linux \
- file://config.sh-i386-linux"
+ file://config.sh-i386-linux \
+ file://config.sh-i486-linux \
+ file://config.sh-i586-linux"
+
+PARALLEL_MAKE = ""
PR = "r15"
@@ -15,8 +19,10 @@ do_configure() {
rm Makefile.SH.patch
cp ${WORKDIR}/Makefile.SH.patch .
cp ${WORKDIR}/config.sh-mipsel-linux .
- cp ${WORKDIR}/config.sh-i686-linux .
cp ${WORKDIR}/config.sh-i386-linux .
+ cp ${WORKDIR}/config.sh-i486-linux .
+ cp ${WORKDIR}/config.sh-i586-linux .
+ cp ${WORKDIR}/config.sh-i686-linux .
cp ${WORKDIR}/config.sh-armeb-linux .
#perl insists on an extra config.sh for arm EABI
cp config.sh-arm-linux config.sh-arm-linux-gnueabi
@@ -33,6 +39,13 @@ do_configure() {
s,d_sockatmark='define',d_sockatmark='undef',g;" > $newfile
done
sed -i -e 's,./install_me_here,${D},g' config.sh-${TARGET_ARCH}-${TARGET_OS}
+ sed -i -e "s%/usr/include/%${STAGING_INCDIR}/%g" config.sh-${TARGET_ARCH}-${TARGET_OS}
+
+ #These are strewn all over the source tree
+ for foo in `grep -m1 \/usr\/include\/.*\\.h ${WORKDIR}/* -r | cut -f 1 -d ":"` ; do
+ echo Fixing: $foo
+ sed -e "s%/usr/include/%${STAGING_INCDIR}/%g" -i $foo
+ done
rm -f config
echo "ARCH = ${TARGET_ARCH}" > config
echo "OS = ${TARGET_OS}" >> config
diff --git a/packages/pwlib/.mtn2git_empty b/packages/pwlib/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/pwlib/.mtn2git_empty
diff --git a/packages/pwlib/pwlib_1.5.2.bb b/packages/pwlib/pwlib_1.5.2.bb
new file mode 100644
index 0000000000..c30ba80f96
--- /dev/null
+++ b/packages/pwlib/pwlib_1.5.2.bb
@@ -0,0 +1,33 @@
+# pwlib .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://www.openh323.org/docs/PWLib/"
+DESCRIPTION="Portable Text and GUI C/C++ Class Libarary."
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+SRC_URI="http://www.openh323.org/bin/${PN}_${PV}.tar.gz"
+DEPENDS="openssl openldap"
+
+inherit autotools
+
+EXTRA_OECONF="--enable-ipv6 --disable-sasl --disable-sdl \
+ --disable-video --enable-plugins --with-plugins=oss"
+
+S="${WORKDIR}/${PN}"
+
+# Use openSSL
+
+export OPENSSLFLAG=1
+export OPENSSLDIR="${STAGING_LIBDIR}"
+export OPENSSLLIBS="-lssl -lcrypt"
+export MACHTYPE="x86"
+export OSTYPE="linux"
+export OSRELEASE="openembedded"
+
+export CPLUS="${CXX}"
+
+do_compile() {
+ oe_runmake opt
+}
diff --git a/packages/pwlib/pwlib_1.6.6.4.bb b/packages/pwlib/pwlib_1.6.6.4.bb
new file mode 100644
index 0000000000..2db6a53f15
--- /dev/null
+++ b/packages/pwlib/pwlib_1.6.6.4.bb
@@ -0,0 +1,116 @@
+# pwlib .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+
+DEFAULT_PREFERENCE = "-1"
+
+HOMEPAGE="http://www.openh323.org/docs/PWLib/"
+DESCRIPTION="Portable Text and GUI C/C++ Class Libarary."
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+SRC_URI="${DEBIAN_MIRROR}/main/p/${PN}/${PN}_${PV}.orig.tar.gz"
+DEPENDS="openssl openldap"
+
+inherit autotools
+
+EXTRA_OECONF="--enable-ipv6 --disable-sasl --disable-sdl \
+ --disable-video --enable-plugins --with-plugins=oss"
+
+S="${WORKDIR}/${PN}"
+
+# Use openSSL
+
+export OPENSSLFLAG=1
+export OPENSSLDIR="${STAGING_LIBDIR}"
+export OPENSSLLIBS="-lssl -lcrypt"
+export MACHTYPE="x86"
+export OSTYPE="linux"
+export OSRELEASE="openembedded"
+
+export CPLUS="${CXX}"
+
+do_compile() {
+ oe_runmake opt
+}
+
+HEADERS="ptbuildopts.h ptlib.h"
+
+PTCLIB_HEADERS="ptclib/asnber.h ptclib/asner.h ptclib/asnper.h \
+ ptclib/asnxer.h ptclib/cypher.h ptclib/delaychan.h \
+ ptclib/dtmf.h ptclib/ftp.h ptclib/html.h ptclib/http.h \
+ ptclib/httpform.h ptclib/httpsvc.h ptclib/inetmail.h \
+ ptclib/inetprot.h ptclib/ipacl.h ptclib/memfile.h \
+ ptclib/mime.h ptclib/modem.h ptclib/pasn.h ptclib/pdns.h \
+ ptclib/pils.h ptclib/pldap.h ptclib/psnmp.h ptclib/psoap.h \
+ ptclib/pssl.h ptclib/pstun.h ptclib/ptts.h ptclib/pwavfile.h \
+ ptclib/pxml.h ptclib/pxmlrpc.h ptclib/pxmlrpcs.h \
+ ptclib/qchannel.h ptclib/random.h ptclib/shttpsvc.h \
+ ptclib/socks.h ptclib/telnet.h ptclib/url.h ptclib/vsdl.h \
+ ptclib/vxml.h"
+
+PTLIB_HEADERS= "ptlib/MacMainIf.h ptlib/args.h ptlib/array.h \
+ ptlib/channel.h ptlib/conchan.h ptlib/config.h \
+ ptlib/contain.h ptlib/contain.inl ptlib/dict.h \
+ ptlib/dynalink.h ptlib/ethsock.h ptlib/file.h \
+ ptlib/filepath.h ptlib/icmpsock.h ptlib/indchan.h \
+ ptlib/int64.h ptlib/ipdsock.h ptlib/ipsock.h ptlib/ipxsock.h \
+ ptlib/lists.h ptlib/mail.h ptlib/mutex.h ptlib/notifier.h \
+ ptlib/object.h ptlib/osutil.inl ptlib/pdirect.h \
+ ptlib/pipechan.h ptlib/plugin.h ptlib/pluginmgr.h \
+ ptlib/pprocess.h ptlib/pstring.h ptlib/ptime.h ptlib/qos.h \
+ ptlib/remconn.h ptlib/safecoll.h ptlib/semaphor.h \
+ ptlib/serchan.h ptlib/sfile.h ptlib/smartptr.h \
+ ptlib/socket.h ptlib/sockets.h ptlib/sound.h \
+ ptlib/spxsock.h ptlib/svcproc.h ptlib/syncpoint.h \
+ ptlib/syncthrd.h ptlib/tcpsock.h ptlib/textfile.h \
+ ptlib/thread.h ptlib/timeint.h ptlib/timer.h ptlib/udpsock.h \
+ ptlib/vconvert.h ptlib/video.h ptlib/videoio.h \
+ ptlib/videoio1394dc.h ptlib/unix/ptlib/channel.h \
+ ptlib/unix/ptlib/conchan.h ptlib/unix/ptlib/config.h \
+ ptlib/unix/ptlib/contain.h ptlib/unix/ptlib/dynalink.h \
+ ptlib/unix/ptlib/ethsock.h ptlib/unix/ptlib/file.h \
+ ptlib/unix/ptlib/filepath.h ptlib/unix/ptlib/icmpsock.h \
+ ptlib/unix/ptlib/ipdsock.h ptlib/unix/ptlib/ipsock.h \
+ ptlib/unix/ptlib/mutex.h ptlib/unix/ptlib/pdirect.h \
+ ptlib/unix/ptlib/pipechan.h ptlib/unix/ptlib/pmachdep.h \
+ ptlib/unix/ptlib/pprocess.h ptlib/unix/ptlib/ptime.h \
+ ptlib/unix/ptlib/ptlib.inl ptlib/unix/ptlib/remconn.h \
+ ptlib/unix/ptlib/semaphor.h ptlib/unix/ptlib/serchan.h \
+ ptlib/unix/ptlib/sfile.h ptlib/unix/ptlib/socket.h \
+ ptlib/unix/ptlib/sound.h ptlib/unix/ptlib/svcproc.h \
+ ptlib/unix/ptlib/syncpoint.h ptlib/unix/ptlib/tcpsock.h \
+ ptlib/unix/ptlib/textfile.h ptlib/unix/ptlib/thread.h \
+ ptlib/unix/ptlib/timeint.h ptlib/unix/ptlib/timer.h \
+ ptlib/unix/ptlib/udpsock.h ptlib/unix/ptlib/video.h \
+ ptlib/unix/ptlib/videoio.h ptlib/unix/ptlib/videoio1394avc.h"
+
+SHARE="make/common.mak make/defaultgui.mak \
+ make/gui.mak make/lib.mak make/motif.mak \
+ make/plugins.mak make/ptbuildopts.mak \
+ make/ptlib.mak make/pwlib.mak make/qt.mak \
+ make/unix.mak make/xlib.mak"
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/ptlib/unix/ptlib
+ install -d ${STAGING_INCDIR}/ptclib
+
+ for file in ${HEADERS} ${PTCLIB_HEADERS} ${PTLIB_HEADERS}; do
+ install -m 0644 ${S}/include/$file ${STAGING_INCDIR}/$file
+ done
+
+ install -d ${STAGING_LIBDIR}
+
+ oe_libinstall -C lib libpt_linux_x86_r ${STAGING_LIBDIR}
+
+ ln -sf ${STAGING_LIBDIR}/libpt_linux_x86_r.so ${STAGING_LIBDIR}/libpt.so
+
+ install -d ${STAGING_DATADIR}/pwlib/make
+ for file in ${SHARE}; do
+ install -m 0644 ${S}/$file ${STAGING_DATADIR}/pwlib/$file
+ done
+
+ cat ${S}/make/ptlib-config | sed -e 's:LIBDIR=\"/usr/lib\":LIBDIR=\"${STAGING_LIBDIR}\":' -e 's:PWINSTDIR=\"/usr/share/pwlib\":PWINSTDIR=\"${STAGING_DATADIR}/pwlib\":' > ${STAGING_DATADIR}/pwlib/make/ptlib-config
+ chmod 0755 ${STAGING_DATADIR}/pwlib/make/ptlib-config
+}
diff --git a/packages/python/python-imaging_1.1.5.bb b/packages/python/python-imaging_1.1.5.bb
index ddd3eef863..6814287768 100644
--- a/packages/python/python-imaging_1.1.5.bb
+++ b/packages/python/python-imaging_1.1.5.bb
@@ -3,8 +3,11 @@ SECTION = "devel/python"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "freetype jpeg tiff"
+RDEPENDS = "python-lang python-stringold"
SRCNAME = "Imaging"
+PR = "r1"
+
SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \
file://path.patch;patch=1"
diff --git a/packages/python/python-spydi_0.9.3.bb b/packages/python/python-spydi_0.9.3.bb
index ebf7d166c2..e20bf754de 100644
--- a/packages/python/python-spydi_0.9.3.bb
+++ b/packages/python/python-spydi_0.9.3.bb
@@ -9,7 +9,7 @@ PRIORITY = "optional"
LICENSE = "MIT"
PR = "ml0"
-SRC_URI = "http://lsc.fie.umich.mx/%7esadit/spyro/spydi-${PV}.tgz"
+SRC_URI = "http://lsc.fie.umich.mx/%7esadit/spyro/SPyDI-${PV}.tar.gz"
S = "${WORKDIR}/SPyDI-${PV}"
inherit distutils
diff --git a/packages/qt/qt-x11-free_3.3.6.bb b/packages/qt/qt-x11-free_3.3.6.bb
index f92414ac73..65b8723c2f 100644
--- a/packages/qt/qt-x11-free_3.3.6.bb
+++ b/packages/qt/qt-x11-free_3.3.6.bb
@@ -53,6 +53,10 @@ do_compile() {
}
do_stage() {
+ install -d ${STAGING_QT_DIR}/bin
+ ln -sf ${STAGING_BINDIR}/moc3 ${STAGING_QT_DIR}/bin/moc
+ ln -sf ${STAGING_BINDIR}/uic3 ${STAGING_QT_DIR}/bin/uic
+ ln -sf ${STAGING_BINDIR}/qmake ${STAGING_QT_DIR}/bin/qmake
install -d ${STAGING_QT_DIR}/lib
oe_soinstall lib/libqt-mt.so.${PV} ${STAGING_QT_DIR}/lib
install -d ${STAGING_QT_DIR}/include/private
diff --git a/packages/quake/quake1_0.0.1.bb b/packages/quake/quake1_0.0.1.bb
index a0d858318f..d4aea8fadf 100644
--- a/packages/quake/quake1_0.0.1.bb
+++ b/packages/quake/quake1_0.0.1.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Quake 1"
SECTION = "x11/games"
PRIORITY = "optional"
-DEPENDS = "libsdl-x11 libsdl-mixer libsdl-net zlib"
+DEPENDS = "libsdl-x11 libsdl-mixer libsdl-net zlib libxau"
MAINTAINER = "Simon Pickering <S.G.Pickering@bath.ac.uk>"
LICENSE = "GPL"
PR = "r2"
diff --git a/packages/sip/sip4-native_4.4.3.bb b/packages/sip/sip4-native_4.4.3.bb
index 395fa15ac7..f7858a3b79 100644
--- a/packages/sip/sip4-native_4.4.3.bb
+++ b/packages/sip/sip4-native_4.4.3.bb
@@ -19,5 +19,8 @@ do_configure_prepend() {
do_stage() {
install -m 0755 sip ${STAGING_BINDIR}/sip4
+ cd ${WORKDIR}/sip-${PV} && python configure.py
+ install -d ${STAGING_PYDIR}/site-packages
+ install -m 0755 sip*.py ${STAGING_PYDIR}/site-packages
}
diff --git a/packages/stress/.mtn2git_empty b/packages/stress/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/stress/.mtn2git_empty
diff --git a/packages/stress/stress_0.18.8.bb b/packages/stress/stress_0.18.8.bb
new file mode 100644
index 0000000000..7999a3c0ee
--- /dev/null
+++ b/packages/stress/stress_0.18.8.bb
@@ -0,0 +1,12 @@
+# stress .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://weather.ou.edu/~apw/projects/stress/"
+DESCRIPTION = "a simple tool that imposes certain types of compute stress on UNIX-like operating systems."
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+inherit autotools
+
+SRC_URI="http://weather.ou.edu/~apw/projects/stress/stress-${PV}.tar.gz"
diff --git a/packages/sudo/sudo.inc b/packages/sudo/sudo.inc
index 7251bcdb4a..92d3c47266 100644
--- a/packages/sudo/sudo.inc
+++ b/packages/sudo/sudo.inc
@@ -20,5 +20,10 @@ do_configure_prepend () {
}
pkg_postinst() {
- chmod 0440 ${sysconfdir}/sudoers
+ if [ "x$D" != "x" ]; then
+ exit 1
+ fi
+
+ chmod 4111 /usr/bin/sudo
+ chmod 0440 /etc/sudoers
}
diff --git a/packages/syslinux/syslinux-native_2.11.bb b/packages/syslinux/syslinux-native_2.11.bb
index 3c41afb945..9fc02b0a49 100644
--- a/packages/syslinux/syslinux-native_2.11.bb
+++ b/packages/syslinux/syslinux-native_2.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION="A multi-purpose linux bootloader"
HOMEPAGE="http://syslinux.zytor.com/"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
LICENSE="GPL"
PR="r1"
diff --git a/packages/syslinux/syslinux-native_3.11.bb b/packages/syslinux/syslinux-native_3.11.bb
index f3a040b874..f74e0ca677 100644
--- a/packages/syslinux/syslinux-native_3.11.bb
+++ b/packages/syslinux/syslinux-native_3.11.bb
@@ -4,7 +4,7 @@
DESCRIPTION="A multi-purpose linux bootloader"
HOMEPAGE="http://syslinux.zytor.com/"
-MAINTAINER = "Raymond Danks <raymondd@ia.amd.com>"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
LICENSE="GPL"
PR="r1"
diff --git a/packages/tetex/tetex-native_3.0.bb b/packages/tetex/tetex-native_3.0.bb
index b4b68bed5c..a85dae8ea6 100644
--- a/packages/tetex/tetex-native_3.0.bb
+++ b/packages/tetex/tetex-native_3.0.bb
@@ -3,6 +3,9 @@ inherit native
DEPENDS = ""
PR = "r1"
+PACKAGES=""
+RRECOMMENDS_${PN}=""
+
do_configure() {
oe_runconf
}
@@ -21,3 +24,7 @@ do_stage() {
done
}
+do_install () {
+ :
+}
+
diff --git a/packages/util-linux/util-linux-native_2.12r.bb b/packages/util-linux/util-linux-native_2.12r.bb
new file mode 100644
index 0000000000..48e1bf855b
--- /dev/null
+++ b/packages/util-linux/util-linux-native_2.12r.bb
@@ -0,0 +1,30 @@
+include util-linux.inc
+
+PR = "r0"
+
+inherit native
+
+PACKAGES = ""
+RRECCOMMENDS_${PN} = ""
+RDEPENDS_${PN} = ""
+
+S="${WORKDIR}/util-linux-${PV}"
+
+EXTRA_OEMAKE="'OPT=${BUILD_CFLAGS}' 'CC=${BUILD_CC}' 'LD=${BUILD_LD}' 'LDFLAGS=${BUILD_LDFLAGS}' SBINDIR=${base_sbindir} USRSBINDIR=${base_sbindir} LOGDIR=${localstatedir}/log VARPATH=${localstatedir} LOCALEDIR=${datadir}/locale"
+
+do_compile () {
+ set -e
+ install ${WORKDIR}/MCONFIG ${S}/MCONFIG
+ install ${WORKDIR}/make_include ${S}/make_include
+ install ${WORKDIR}/swapargs.h ${S}/mount/swapargs.h
+ install ${WORKDIR}/defines.h ${S}/defines.h
+ oe_runmake
+}
+
+do_stage () {
+ autotools_stage_all
+}
+
+do_install () {
+ :
+}
diff --git a/site/i486-linux b/site/i486-linux
index 5ead29bb94..1791e58ea7 100644
--- a/site/i486-linux
+++ b/site/i486-linux
@@ -51,6 +51,7 @@ glib_cv_uscore=${glib_cv_uscore=no}
glib_cv___va_copy=${glib_cv___va_copy=yes}
glib_cv_va_copy=${glib_cv_va_copy=yes}
glib_cv_va_val_copy=${glib_cv_va_val_copy=yes}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=yes}
# glib-2.0
glib_cv_stack_grows=${glib_cv_stack_grows=no}
@@ -60,7 +61,7 @@ glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
# jikes-native
ac_cv_sizeof_wchar_t=4
--
+
# startup-notification
lf_cv_sane_realloc=yes
@@ -129,3 +130,13 @@ am_cv_func_working_getline=${am_cv_func_working_getline=yes}
# intercom
ac_cv_func_fnmatch_works=yes
+
+#sudo
+sudo_cv_uid_t_len=${sudo_cv_uid_t_len=10}
+
+#audacity
+ac_cv_file_lib_src_libmad_frame_h=${ac_cv_file_lib_src_libmad_frame_h=no}
+
+# xorg X11R7
+ac_cv_sys_linker_h=${ac_cv_sys_linker_h=no}
+ac_cv_file__usr_share_X11_sgml_defs_ent=${ac_cv_file__usr_share_X11_sgml_defs_ent=no}
diff --git a/site/i686-linux b/site/i686-linux
index f5915e8e3a..113929adbb 100644
--- a/site/i686-linux
+++ b/site/i686-linux
@@ -52,6 +52,7 @@ glib_cv_uscore=${glib_cv_uscore=no}
glib_cv___va_copy=${glib_cv___va_copy=yes}
glib_cv_va_copy=${glib_cv_va_copy=yes}
glib_cv_va_val_copy=${glib_cv_va_val_copy=yes}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=yes}
utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
# glib-2.0
@@ -197,3 +198,7 @@ with_broken_putenv=${with_broken_putenv=no}
# xffm
jm_cv_func_working_readdir=yes
+
+#xserver-xorg
+ac_cv_sys_linker_h=${ac_cv_sys_linker_h=no}
+ac_cv_file__usr_share_X11_sgml_defs_ent=${ac_cv_file__usr_share_X11_sgml_defs_ent=no}
diff --git a/site/mipsel-linux b/site/mipsel-linux
index fe0ee88c52..7f776951d5 100644
--- a/site/mipsel-linux
+++ b/site/mipsel-linux
@@ -114,3 +114,6 @@ sudo_cv_uid_t_len=${sudo_cv_uid_t_len=10}
#intercom
ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}
+
+#lmbench
+ac_cv_uint=${ac_cv_unit=yes}
diff --git a/site/x86_64-linux b/site/x86_64-linux
index ba60564d0d..dc7cb09069 100644
--- a/site/x86_64-linux
+++ b/site/x86_64-linux
@@ -78,3 +78,6 @@ utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
# gettext
am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+
+#gcc
+ac_cv_lib_m_sin=${ac_cv_lib_m_sin=yes}