summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended')
-rw-r--r--meta/recipes-extended/at/at-3.1.10.2/configure.patch22
-rw-r--r--meta/recipes-extended/at/at-3.1.12/configure.patch22
-rw-r--r--meta/recipes-extended/at/at.inc11
-rw-r--r--meta/recipes-extended/at/at_3.1.10.2.bb14
-rw-r--r--meta/recipes-extended/at/at_3.1.12.bb14
-rw-r--r--meta/recipes-extended/at/files/nonrootinstall.patch75
-rw-r--r--meta/recipes-extended/at/files/use-ldflags.patch21
-rw-r--r--meta/recipes-extended/bash/bash.inc29
-rw-r--r--meta/recipes-extended/bash/bash_3.2.48.bb35
-rw-r--r--meta/recipes-extended/bash/bash_4.1.bb13
-rw-r--r--meta/recipes-extended/bc/bc_1.06.bb18
-rw-r--r--meta/recipes-extended/byacc/byacc.inc14
-rw-r--r--meta/recipes-extended/byacc/byacc_20100610.bb6
-rw-r--r--meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch29
-rw-r--r--meta/recipes-extended/cpio/cpio-2.8/statdef.patch13
-rw-r--r--meta/recipes-extended/cpio/cpio_2.8.bb14
-rw-r--r--meta/recipes-extended/cpio/cpio_v2.inc39
-rw-r--r--meta/recipes-extended/cracklib/cracklib_2.8.16.bb12
-rw-r--r--meta/recipes-extended/cwautomacros/cwautomacros_20090610.bb15
-rw-r--r--meta/recipes-extended/ed/ed-1.4/ed-1.2-build.patch43
-rw-r--r--meta/recipes-extended/ed/ed_0.5.bb11
-rw-r--r--meta/recipes-extended/ed/ed_1.4.bb22
-rw-r--r--meta/recipes-extended/ethtool/ethtool_2.6.34.bb11
-rw-r--r--meta/recipes-extended/gamin/gamin/no-abstract-sockets.patch54
-rw-r--r--meta/recipes-extended/gamin/gamin_0.1.10.bb30
-rw-r--r--meta/recipes-extended/gawk/gawk_3.1.5.bb30
-rw-r--r--meta/recipes-extended/images/poky-image-basic.bb8
-rw-r--r--meta/recipes-extended/images/poky-image-lsb.bb9
-rw-r--r--meta/recipes-extended/iptables/iptables_1.4.8.bb31
-rw-r--r--meta/recipes-extended/iputils/files/debian/CVE-2010-2529.diff22
-rw-r--r--meta/recipes-extended/iputils/files/debian/add-icmp-return-codes.diff41
-rw-r--r--meta/recipes-extended/iputils/files/debian/fix-arping-timeouts.diff24
-rw-r--r--meta/recipes-extended/iputils/files/debian/fix-dead-host-ping-stats.diff14
-rw-r--r--meta/recipes-extended/iputils/files/debian/targets.diff13
-rw-r--r--meta/recipes-extended/iputils/files/debian/use_gethostbyname2.diff29
-rw-r--r--meta/recipes-extended/iputils/iputils_s20100418.bb78
-rw-r--r--meta/recipes-extended/less/less_436.bb27
-rw-r--r--meta/recipes-extended/libuser/libuser-0.56.16/disable-sgml-doc.patch18
-rw-r--r--meta/recipes-extended/libuser/libuser_0.56.16.bb20
-rw-r--r--meta/recipes-extended/minicom/minicom-2.3/gcc4-scope.patch44
-rw-r--r--meta/recipes-extended/minicom/minicom-2.3/rename-conflicting-functions.patch13
-rw-r--r--meta/recipes-extended/minicom/minicom_2.3.bb17
-rw-r--r--meta/recipes-extended/mktemp/files/disable-strip.patch13
-rw-r--r--meta/recipes-extended/mktemp/mktemp_1.7.bb26
-rw-r--r--meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.h75
-rw-r--r--meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.make36
-rw-r--r--meta/recipes-extended/net-tools/net-tools_1.60-23.bb77
-rw-r--r--meta/recipes-extended/pax/pax_3.4.bb16
-rw-r--r--meta/recipes-extended/perl/libconvert-asn1-perl_0.21.bb14
-rw-r--r--meta/recipes-extended/perl/libtimedate-perl_1.20.bb21
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/install.patch27
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/linux-limits.patch13
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/pagesz-not-constant.patch22
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/procmodule.patch36
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/procps.init6
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/psmodule.patch21
-rw-r--r--meta/recipes-extended/procps/procps-3.2.7/sysctl.conf64
-rw-r--r--meta/recipes-extended/procps/procps.inc16
-rw-r--r--meta/recipes-extended/procps/procps_3.2.7.bb64
-rw-r--r--meta/recipes-extended/quota/quota_3.17.bb19
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/login_defs_pam.sed32
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chfn14
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chpasswd4
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chsh19
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/login91
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/newusers4
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/passwd5
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/su60
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/securetty206
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.3-dots-in-usernames.patch23
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-env-reset-keep-locale.patch27
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-groupmod-pam-check.patch32
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-su_no_sanitize_env.patch27
-rw-r--r--meta/recipes-extended/shadow/shadow-4.1.4.2/shadow.automake-1.11.patch102
-rw-r--r--meta/recipes-extended/shadow/shadow.inc121
-rw-r--r--meta/recipes-extended/shadow/shadow_4.1.4.2.bb11
-rw-r--r--meta/recipes-extended/sysstat/files/99_sysstat1
-rw-r--r--meta/recipes-extended/sysstat/sysstat.inc33
-rw-r--r--meta/recipes-extended/sysstat/sysstat_9.1.4.bb7
-rw-r--r--meta/recipes-extended/tar/tar-1.17/gcc43build.patch35
-rw-r--r--meta/recipes-extended/tar/tar-1.17/m4extensions.patch28
-rw-r--r--meta/recipes-extended/tar/tar.inc25
-rw-r--r--meta/recipes-extended/tar/tar_1.17.bb13
-rw-r--r--meta/recipes-extended/tar/tar_1.23.bb9
-rw-r--r--meta/recipes-extended/tasks/task-poky-basic.bb156
-rw-r--r--meta/recipes-extended/tasks/task-poky-lsb.bb103
-rw-r--r--meta/recipes-extended/time/files/debian.patch1299
-rw-r--r--meta/recipes-extended/time/time.inc7
-rw-r--r--meta/recipes-extended/time/time_1.7.bb9
-rw-r--r--meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch51
-rw-r--r--meta/recipes-extended/which/which-2.20/remove-declaration.patch16
-rw-r--r--meta/recipes-extended/which/which_2.18.bb40
-rw-r--r--meta/recipes-extended/which/which_2.20.bb35
-rw-r--r--meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch84
-rw-r--r--meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch77
-rw-r--r--meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch110
-rw-r--r--meta/recipes-extended/xinetd/xinetd/xinetd.conf11
-rw-r--r--meta/recipes-extended/xinetd/xinetd/xinetd.init57
-rw-r--r--meta/recipes-extended/xinetd/xinetd_2.3.14.bb45
-rw-r--r--meta/recipes-extended/xz/xz_4.999.9beta.bb20
100 files changed, 4640 insertions, 0 deletions
diff --git a/meta/recipes-extended/at/at-3.1.10.2/configure.patch b/meta/recipes-extended/at/at-3.1.10.2/configure.patch
new file mode 100644
index 0000000..f672011
--- /dev/null
+++ b/meta/recipes-extended/at/at-3.1.10.2/configure.patch
@@ -0,0 +1,22 @@
+# Fix cross-compilation issues in configure.ac
+# Derived from an OE patch for at-3.1.8
+
+--- at-3.1.10.2.orig/configure.in 2005-08-04 20:16:02.000000000 -0700
++++ at-3.1.10.2/configure.in 2010-07-21 15:52:38.000000000 -0700
+@@ -37,12 +37,11 @@
+ AC_MSG_RESULT(no)
+ ;;
+ esac
++if [ X"${cross_compiling}" = Xno ]; then
+ AC_MSG_CHECKING(Trying to compile a trivial ANSI C program)
+-AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+- AC_MSG_RESULT(yes),
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.),
+- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.))
++AC_RUN_IFELSE([AC_LANG_SOURCE([[ main(int ac, char **av) { return 0; } ]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
++ AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.)],[AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.)])
++fi
+
+ AC_MSG_CHECKING(__attribute__((noreturn)))
+ AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
diff --git a/meta/recipes-extended/at/at-3.1.12/configure.patch b/meta/recipes-extended/at/at-3.1.12/configure.patch
new file mode 100644
index 0000000..6ab528d
--- /dev/null
+++ b/meta/recipes-extended/at/at-3.1.12/configure.patch
@@ -0,0 +1,22 @@
+# Fix cross-compilation issues in configure.ac
+# Derived from an OE patch for at-3.1.8
+
+--- at-3.1.12.orig/configure.ac 2009-11-23 07:11:52.000000000 -0800
++++ at-3.1.12/configure.ac 2010-07-20 16:23:14.000000000 -0700
+@@ -38,12 +38,11 @@
+ AC_MSG_RESULT(no)
+ ;;
+ esac
++if [ X"${cross_compiling}" = Xno ]; then
+ AC_MSG_CHECKING(Trying to compile a trivial ANSI C program)
+-AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+- AC_MSG_RESULT(yes),
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.),
+- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.))
++AC_RUN_IFELSE([AC_LANG_SOURCE([[ main(int ac, char **av) { return 0; } ]])], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
++ AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.)], [AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.)])
++fi
+
+ AC_MSG_CHECKING(__attribute__((noreturn)))
+ AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
diff --git a/meta/recipes-extended/at/at.inc b/meta/recipes-extended/at/at.inc
new file mode 100644
index 0000000..64ae9c2
--- /dev/null
+++ b/meta/recipes-extended/at/at.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "Delayed job execution and batch processing"
+SECTION = "base"
+DEPENDS = "flex"
+RCONFLICTS_${PN} = "atd"
+RREPLACES_${PN} = "atd"
+
+inherit autotools
+
+do_install () {
+ oe_runmake "IROOT=${D}" install
+}
diff --git a/meta/recipes-extended/at/at_3.1.10.2.bb b/meta/recipes-extended/at/at_3.1.10.2.bb
new file mode 100644
index 0000000..ff4cf48
--- /dev/null
+++ b/meta/recipes-extended/at/at_3.1.10.2.bb
@@ -0,0 +1,14 @@
+require at.inc
+
+LICENSE="GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
+
+PR = "r0"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}.tar.gz \
+ file://configure.patch \
+ file://nonrootinstall.patch \
+ file://use-ldflags.patch"
+
+SRC_URI[md5sum] = "485688690a0aae53224c4150867da334"
+SRC_URI[sha256sum] = "35c4ab4248ba5898ccaddc5efe8722a8f3639deeb07623fa2d41f740e337690f"
diff --git a/meta/recipes-extended/at/at_3.1.12.bb b/meta/recipes-extended/at/at_3.1.12.bb
new file mode 100644
index 0000000..141168d
--- /dev/null
+++ b/meta/recipes-extended/at/at_3.1.12.bb
@@ -0,0 +1,14 @@
+require at.inc
+
+LICENSE="GPLv2+ & GPLv3+"
+LIC_FILES_CHKSUM = "file://Copyright;md5=dffa11c636884752fbf0b2a159b2883a"
+
+PR = "r0"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}.orig.tar.gz \
+ file://configure.patch \
+ file://nonrootinstall.patch \
+ file://use-ldflags.patch"
+
+SRC_URI[md5sum] = "1e67991776148fb319fd77a2e599a765"
+SRC_URI[sha256sum] = "7c55c6ab4fbe8add9e68f31b2b0ebf3fe805c9a4e7cfb2623a3d8a4789cc18f3"
diff --git a/meta/recipes-extended/at/files/nonrootinstall.patch b/meta/recipes-extended/at/files/nonrootinstall.patch
new file mode 100644
index 0000000..f760e85
--- /dev/null
+++ b/meta/recipes-extended/at/files/nonrootinstall.patch
@@ -0,0 +1,75 @@
+# Modify install rules to disable file ownership changes
+# Disable stripping binaries
+# Derived from an OE patch for at-3.1.8
+
+--- at-3.1.10.2.orig/Makefile.in 2005-08-29 01:08:28.000000000 -0700
++++ at-3.1.10.2/Makefile.in 2010-07-21 17:06:01.000000000 -0700
+@@ -40,6 +40,10 @@
+ LIBS = @LIBS@
+ LIBOBJS = @LIBOBJS@
+ INSTALL = @INSTALL@
++ifeq ($(IROOT),)
++INSTALLOWN = -g root -o root
++DAEMONOWN = -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME)
++endif
+ PAMLIB = @PAMLIB@
+
+ CLONES = atq atrm
+@@ -88,35 +92,38 @@
+ $(CC) -c $(CFLAGS) $(DEFS) $*.c
+
+ install: all
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir)
+- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir)
+- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
++ $(INSTALL) $(INSTALLOWN) -m 755 -d $(IROOT)$(etcdir)
++ $(INSTALL) $(INSTALLOWN) -m 755 -d $(IROOT)$(bindir)
++ $(INSTALL) $(INSTALLOWN) -m 755 -d $(IROOT)$(sbindir)
++ $(INSTALL) $(INSTALLOWN) -m 755 -d $(IROOT)$(docdir)
++ $(INSTALL) $(INSTALLOWN) -m 755 -d $(IROOT)$(atdocdir)
++ $(INSTALL) $(INSTALLOWN) -m 755 -d $(IROOT)$(ATJOB_DIR)
++ $(INSTALL) $(DAEMONOWN) -m 755 -d $(IROOT)$(ATSPOOL_DIR)
+ chmod 1770 $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
+ touch $(IROOT)$(LFILE)
+ chmod 600 $(IROOT)$(LFILE)
++ifeq ($(IROOT),)
+ chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE)
+- test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(IROOT)$(etcdir)/
+- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(IROOT)$(bindir)
++endif
++ test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) $(INSTALLOWN) -m 600 at.deny $(IROOT)$(etcdir)/
++ $(INSTALL) $(INSTALLOWN) -m 4755 at $(IROOT)$(bindir)
+ $(LN_S) -f at $(IROOT)$(bindir)/atq
+ $(LN_S) -f at $(IROOT)$(bindir)/atrm
+- $(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir)
+- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir)
+- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir)
+- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir)
+- $(INSTALL) -g root -o root -m 755 -s atd $(IROOT)$(sbindir)
+- $(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir)
+- $(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/
++ $(INSTALL) $(INSTALLOWN) -m 755 batch $(IROOT)$(bindir)
++ $(INSTALL) -d $(INSTALLOWN) -m 755 $(IROOT)$(man1dir)
++ $(INSTALL) -d $(INSTALLOWN) -m 755 $(IROOT)$(man5dir)
++ $(INSTALL) -d $(INSTALLOWN) -m 755 $(IROOT)$(man8dir)
++ $(INSTALL) $(INSTALLOWN) -m 755 atd $(IROOT)$(sbindir)
++ $(INSTALL) $(INSTALLOWN) -m 755 atrun $(IROOT)$(sbindir)
++ $(INSTALL) $(INSTALLOWN) -m 644 at.1 $(IROOT)$(man1dir)/
+ cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
+- $(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/
++ $(INSTALL) $(INSTALLOWN) -m 644 atd.8 $(IROOT)$(man8dir)/
+ sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
+- $(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
++ $(INSTALL) $(INSTALLOWN) -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
+ rm -f tmpman
+- $(INSTALL) -g root -o root -m 644 at_allow.5 $(IROOT)$(man5dir)/
++ $(INSTALL) $(INSTALLOWN) -m 644 at_allow.5 $(IROOT)$(man5dir)/
+ cd $(IROOT)$(man5dir) && $(LN_S) -f at_allow.5 at_deny.5
+- $(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir)
++ $(INSTALL) $(INSTALLOWN) -m 644 $(DOCS) $(IROOT)$(atdocdir)
+ rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \
+ $(IROOT)$(mandir)/cat1/atq.1*
+ rm -f $(IROOT)$(mandir)/cat1/atd.8*
diff --git a/meta/recipes-extended/at/files/use-ldflags.patch b/meta/recipes-extended/at/files/use-ldflags.patch
new file mode 100644
index 0000000..7d3d91a
--- /dev/null
+++ b/meta/recipes-extended/at/files/use-ldflags.patch
@@ -0,0 +1,21 @@
+# Ensure use of $LDFLAGS during build
+# Derived from an OE patch for at-3.1.8
+
+--- at-3.1.12.orig/Makefile.in 2009-11-23 07:11:52.000000000 -0800
++++ at-3.1.12/Makefile.in 2010-07-20 16:28:04.000000000 -0700
+@@ -65,13 +65,13 @@
+ all: at atd atrun
+
+ at: $(ATOBJECTS)
+- $(CC) $(CFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
++ $(CC) $(CFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB) $(LDFLAGS)
+ rm -f $(CLONES)
+ $(LN_S) -f at atq
+ $(LN_S) -f at atrm
+
+ atd: $(RUNOBJECTS)
+- $(CC) $(CFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
++ $(CC) $(CFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB) $(LDFLAGS)
+
+ y.tab.c y.tab.h: parsetime.y
+ $(YACC) -d parsetime.y
diff --git a/meta/recipes-extended/bash/bash.inc b/meta/recipes-extended/bash/bash.inc
new file mode 100644
index 0000000..42e8918
--- /dev/null
+++ b/meta/recipes-extended/bash/bash.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "An sh-compatible command language interpreter."
+HOMEPAGE = "http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html"
+SECTION = "base/shell"
+
+# GPLv2+ (< 4.0), GPLv3+ (>= 4.0)
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "ncurses"
+
+inherit autotools gettext
+
+PARALLEL_MAKE = ""
+
+bindir = "/bin"
+sbindir = "/sbin"
+
+EXTRA_OECONF = "--with-ncurses"
+export CC_FOR_BUILD = "${BUILD_CC}"
+
+do_configure () {
+ gnu-configize
+ oe_runconf
+}
+
+pkg_postinst () {
+ touch $D${sysconfdir}/shells
+ grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >> $D${sysconfdir}/shells
+ grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
+}
diff --git a/meta/recipes-extended/bash/bash_3.2.48.bb b/meta/recipes-extended/bash/bash_3.2.48.bb
new file mode 100644
index 0000000..ee563d6
--- /dev/null
+++ b/meta/recipes-extended/bash/bash_3.2.48.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "An sh-compatible command language interpreter."
+HOMEPAGE = "http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html"
+SECTION = "base/shell"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fd5d9bcabd8ed5a54a01ce8d183d592a"
+DEPENDS = "ncurses"
+
+PR = "r6"
+
+SRC_URI = "${GNU_MIRROR}/bash/bash-${PV}.tar.gz \
+ http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-049;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-050;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-051;apply=yes;striplevel=0"
+
+inherit autotools gettext
+
+PARALLEL_MAKE = ""
+
+bindir = "/bin"
+sbindir = "/sbin"
+
+EXTRA_OECONF = "--with-ncurses"
+export CC_FOR_BUILD = "${BUILD_CC}"
+
+do_configure () {
+ gnu-configize
+ oe_runconf
+}
+
+pkg_postinst () {
+ touch $D${sysconfdir}/shells
+ grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >> $D${sysconfdir}/shells
+ grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
+}
diff --git a/meta/recipes-extended/bash/bash_4.1.bb b/meta/recipes-extended/bash/bash_4.1.bb
new file mode 100644
index 0000000..6f0ced7
--- /dev/null
+++ b/meta/recipes-extended/bash/bash_4.1.bb
@@ -0,0 +1,13 @@
+require bash.inc
+
+PR = "r0"
+
+SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-001;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-002;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-003;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-004;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-005;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-006;apply=yes;striplevel=0 \
+ http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-007;apply=yes;striplevel=0 \
+ "
diff --git a/meta/recipes-extended/bc/bc_1.06.bb b/meta/recipes-extended/bc/bc_1.06.bb
new file mode 100644
index 0000000..eaef5f3
--- /dev/null
+++ b/meta/recipes-extended/bc/bc_1.06.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "An arbitrary precision calculator language."
+HOMEPAGE = "http://www.gnu.org/software/bc/bc.html"
+BUGTRACKER = ""
+
+LICENSE = "GPLv2+ & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+ file://bc/bcdefs.h;endline=31;md5=46dffdaf10a99728dd8ce358e45d46d8 \
+ file://dc/dc.h;endline=25;md5=2f9c558cdd80e31b4d904e48c2374328 \
+ file://lib/number.c;endline=31;md5=99434a0898abca7784acfd36b8191199"
+
+SECTION = "base"
+DEPENDS = "flex"
+PR = "r0"
+
+SRC_URI = "${GNU_MIRROR}/bc/bc-${PV}.tar.gz"
+
+inherit autotools
diff --git a/meta/recipes-extended/byacc/byacc.inc b/meta/recipes-extended/byacc/byacc.inc
new file mode 100644
index 0000000..c6a5e38
--- /dev/null
+++ b/meta/recipes-extended/byacc/byacc.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Berkeley Yacc"
+SECTION = "devel"
+LICENSE = "public domain"
+
+SRC_URI = "ftp://invisible-island.net/byacc/byacc-${PV}.tgz"
+EXTRA_OECONF += "--program-transform-name='s,^,b,'"
+
+BBCLASSEXTEND = "native"
+
+inherit autotools
+
+do_configure() {
+ oe_runconf
+}
diff --git a/meta/recipes-extended/byacc/byacc_20100610.bb b/meta/recipes-extended/byacc/byacc_20100610.bb
new file mode 100644
index 0000000..48d0e4e
--- /dev/null
+++ b/meta/recipes-extended/byacc/byacc_20100610.bb
@@ -0,0 +1,6 @@
+PR = "r0"
+
+require byacc.inc
+
+SRC_URI[md5sum] = "b9715b9a2867c221176b597e8f73cbc9"
+SRC_URI[sha256sum] = "1364c7fe382de659e8b9841a1736b645345a460d2f4302303e80c02235a2a575"
diff --git a/meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch b/meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch
new file mode 100644
index 0000000..648c725
--- /dev/null
+++ b/meta/recipes-extended/cpio/cpio-2.8/m4extensions.patch
@@ -0,0 +1,29 @@
+# Define AC_USE_SYSTEM_EXTENSIONS only if it was previously undefined.
+# This is needed to configure correctly with newer versions of autoconf.
+
+diff -urN cpio-2.8.orig/m4/extensions.m4 cpio-2.8/m4/extensions.m4
+--- cpio-2.8.orig/m4/extensions.m4 2006-10-12 04:34:45.000000000 -0700
++++ cpio-2.8/m4/extensions.m4 2010-07-23 14:37:36.000000000 -0700
+@@ -1,4 +1,4 @@
+-# serial 4 -*- Autoconf -*-
++# serial 5 -*- Autoconf -*-
+ # Enable extensions on systems that normally disable them.
+
+ # Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+@@ -16,6 +16,7 @@
+ # ------------------------
+ # Enable extensions on systems that normally disable them,
+ # typically due to standards-conformance issues.
++m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [], [
+ AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
+ [
+ AC_BEFORE([$0], [AC_COMPILE_IFELSE])
+@@ -48,7 +49,7 @@
+ AC_DEFINE([__EXTENSIONS__])
+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+ AC_DEFINE([_TANDEM_SOURCE])
+-])
++])])
+
+ # gl_USE_SYSTEM_EXTENSIONS
+ # ------------------------
diff --git a/meta/recipes-extended/cpio/cpio-2.8/statdef.patch b/meta/recipes-extended/cpio/cpio-2.8/statdef.patch
new file mode 100644
index 0000000..dfa0d91
--- /dev/null
+++ b/meta/recipes-extended/cpio/cpio-2.8/statdef.patch
@@ -0,0 +1,13 @@
+# Avoid multiple stat definitions
+# Patch taken from cpio mailing list posting 2010-03-19
+
+diff -urN cpio-2.11.orig/src/filetypes.h cpio-2.11/src/filetypes.h
+--- cpio-2.11.orig/src/filetypes.h 2010-02-12 02:19:23.000000000 -0800
++++ cpio-2.11/src/filetypes.h 2010-07-23 13:17:25.000000000 -0700
+@@ -82,4 +82,6 @@
+ #define lstat stat
+ #endif
+ int lstat ();
++#ifndef stat
+ int stat ();
++#endif
diff --git a/meta/recipes-extended/cpio/cpio_2.8.bb b/meta/recipes-extended/cpio/cpio_2.8.bb
new file mode 100644
index 0000000..be9a647
--- /dev/null
+++ b/meta/recipes-extended/cpio/cpio_2.8.bb
@@ -0,0 +1,14 @@
+require cpio_v2.inc
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b7f772ea3a2489231cb4872656cac34b"
+
+PR = "r0"
+
+SRC_URI += "file://m4extensions.patch"
+
+SRC_URI[md5sum] = "0caa356e69e149fb49b76bacc64615a1"
+SRC_URI[sha256sum] = "601b1d774cd6e4cd39416203c91ec59dbd65dd27d79d75e1a9b89497ea643978"
+
+# Required to build with gcc 4.3 and later:
+CFLAGS += "-fgnu89-inline"
diff --git a/meta/recipes-extended/cpio/cpio_v2.inc b/meta/recipes-extended/cpio/cpio_v2.inc
new file mode 100644
index 0000000..b571986
--- /dev/null
+++ b/meta/recipes-extended/cpio/cpio_v2.inc
@@ -0,0 +1,39 @@
+DESCRIPTION = "GNU cpio is a program to manage archives of files"
+HOMEPAGE = "http://www.gnu.org/software/cpio/"
+SECTION = "base"
+
+DEPENDS = "texinfo-native"
+
+SRC_URI = "${GNU_MIRROR}/cpio/cpio-${PV}.tar.gz \
+ file://statdef.patch \
+ "
+
+inherit autotools gettext
+
+S = "${WORKDIR}/cpio-${PV}"
+
+do_install () {
+ autotools_do_install
+ install -d ${D}${base_bindir}/
+ mv "${D}${bindir}/cpio" "${D}${base_bindir}/cpio.${PN}"
+ case ${TARGET_OS} in
+ *-uclibc*) ;;
+ *) mv "${D}${libexecdir}/rmt" "${D}${libexecdir}/rmt.${PN}" ;;
+ esac
+}
+
+pkg_postinst_${PN} () {
+ update-alternatives --install ${base_bindir}/cpio cpio cpio.${PN} 100
+ if [ -f ${libexecdir}/rmt.${PN} ]
+ then
+ update-alternatives --install ${libexecdir}/rmt rmt rmt.${PN} 50
+ fi
+}
+
+pkg_prerm_${PN} () {
+ update-alternatives --remove cpio cpio.${PN}
+ if [ -f ${libexecdir}/rmt.${PN} ]
+ then
+ update-alternatives --remove rmt rmt.${PN}
+ fi
+}
diff --git a/meta/recipes-extended/cracklib/cracklib_2.8.16.bb b/meta/recipes-extended/cracklib/cracklib_2.8.16.bb
new file mode 100644
index 0000000..9789737
--- /dev/null
+++ b/meta/recipes-extended/cracklib/cracklib_2.8.16.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "A pro-active password checker library"
+HOMEPAGE = "http://sourceforge.net/projects/cracklib"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
+
+DEPENDS = ""
+PR ="r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/cracklib/cracklib-${PV}.tar.gz"
+
+inherit autotools gettext
diff --git a/meta/recipes-extended/cwautomacros/cwautomacros_20090610.bb b/meta/recipes-extended/cwautomacros/cwautomacros_20090610.bb
new file mode 100644
index 0000000..9c03eec
--- /dev/null
+++ b/meta/recipes-extended/cwautomacros/cwautomacros_20090610.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "cwautomacros"
+SECTION = "base"
+HOMEPAGE = "http://cwautomacros.berlios.de/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = http://download.berlios.de/cwautomacros/cwautomacros-${PV}.tar.bz2
+
+PR = "r0"
+
+do_install() {
+ oe_runmake CWAUTOMACROSPREFIX=${D}${prefix} install
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-extended/ed/ed-1.4/ed-1.2-build.patch b/meta/recipes-extended/ed/ed-1.4/ed-1.2-build.patch
new file mode 100644
index 0000000..a65c433
--- /dev/null
+++ b/meta/recipes-extended/ed/ed-1.4/ed-1.2-build.patch
@@ -0,0 +1,43 @@
+http://lists.gnu.org/archive/html/bug-ed/2008-12/msg00001.html
+
+2007-04-16 Mike Frysinger <vapier@gentoo.org>
+
+ * Do not set CC/CXX/CPPFLAGS/LDFLAGS to "" so that user can
+ override if they so choose.
+ * Only set CFLAGS/CXXFLAGS if user did not specify any.
+
+ed had already taken GPLv3 when this patch out, so it should be GPLv3.
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+
+Index: ed-1.4/configure
+===================================================================
+--- ed-1.4.orig/configure 2009-07-10 19:54:33.000000000 +0800
++++ ed-1.4/configure 2010-08-05 17:41:51.000000000 +0800
+@@ -26,12 +26,6 @@
+ mandir='$(datadir)/man'
+ sysconfdir='$(prefix)/etc'
+ program_prefix=
+-CC=
+-CXX=
+-CPPFLAGS=
+-CFLAGS='-Wall -W -O2'
+-CXXFLAGS='-Wall -W -O2'
+-LDFLAGS=
+
+ # Loop over all args
+ while [ x"$1" != x ] ; do
+@@ -111,6 +105,14 @@
+ esac
+ done
+
++# Defaults if the user did not select any
++if [ x"${CFLAGS+set}" != xset ] ; then
++ CFLAGS='-Wall -W -O2'
++fi
++if [ x"${CXXFLAGS+set}" != xset ] ; then
++ CXXFLAGS='-Wall -W -O2'
++fi
++
+ # Find the source files, if location was not specified.
+ srcdirtext=
+ if [ x"${srcdir}" = x ] ; then
diff --git a/meta/recipes-extended/ed/ed_0.5.bb b/meta/recipes-extended/ed/ed_0.5.bb
new file mode 100644
index 0000000..e14bf0e
--- /dev/null
+++ b/meta/recipes-extended/ed/ed_0.5.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "GNU ed is a line-oriented text editor"
+HOMEPAGE = "http://www.gnu.org/software/ed/"
+SECTION = "base"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ddd5335ef96fb858a138230af773710 \
+ file://main.c;beginline=1;endline=17;md5=36d4b85e5ae9028e918d1cc775c2475e"
+
+PR = "r0"
+SRC_URI = "http://download.savannah.gnu.org/releases-noredirect/ed/ed-${PV}.tar.bz2"
+
+inherit autotools
diff --git a/meta/recipes-extended/ed/ed_1.4.bb b/meta/recipes-extended/ed/ed_1.4.bb
new file mode 100644
index 0000000..0243769
--- /dev/null
+++ b/meta/recipes-extended/ed/ed_1.4.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "a line-oriented text editor"
+HOMEPAGE = "http://www.gnu.org/software/ed/"
+BUGTRACKER = ""
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+ file://ed.h;endline=20;md5=294d5da73d15cd444ca2260fa2538296 \
+ file://main.c;endline=24;md5=122be7f2751ae819c803441972c7f45b"
+
+SECTION = "base"
+PR = "r0"
+
+SRC_URI = "${GNU_MIRROR}/ed/ed-${PV}.tar.gz \
+ file://ed-1.2-build.patch"
+
+do_configure() {
+ ${S}/configure
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta/recipes-extended/ethtool/ethtool_2.6.34.bb b/meta/recipes-extended/ethtool/ethtool_2.6.34.bb
new file mode 100644
index 0000000..9658f63
--- /dev/null
+++ b/meta/recipes-extended/ethtool/ethtool_2.6.34.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces."
+HOMEPAGE = "http://sourceforge.net/projects/gkernel/"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://ethtool.c;firstline=4;endline=16;md5=6db6b005b8390ea76cb85a2c7bda8e6b"
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gkernel/ethtool-${PV}.tar.gz"
+
+inherit autotools
diff --git a/meta/recipes-extended/gamin/gamin/no-abstract-sockets.patch b/meta/recipes-extended/gamin/gamin/no-abstract-sockets.patch
new file mode 100644
index 0000000..b8aacfb
--- /dev/null
+++ b/meta/recipes-extended/gamin/gamin/no-abstract-sockets.patch
@@ -0,0 +1,54 @@
+--- /tmp/configure.in 2007-04-30 13:08:49.000000000 +0200
++++ gamin-0.1.8/configure.in 2007-04-30 13:10:53.285251000 +0200
+@@ -354,51 +354,6 @@
+ AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure])
+ fi
+
+-#### Abstract sockets
+-
+-AC_MSG_CHECKING(abstract socket namespace)
+-AC_LANG_PUSH(C)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM(
+-[[
+-#include <sys/types.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <stdio.h>
+-#include <sys/socket.h>
+-#include <sys/un.h>
+-#include <errno.h>
+-]],
+-[[
+- int listen_fd;
+- struct sockaddr_un addr;
+-
+- listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
+-
+- if (listen_fd < 0)
+- {
+- fprintf (stderr, "socket() failed: %s\n", strerror (errno));
+- exit (1);
+- }
+-
+- memset (&addr, '\0', sizeof (addr));
+- addr.sun_family = AF_UNIX;
+- strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
+- addr.sun_path[0] = '\0'; /* this is what makes it abstract */
+-
+- if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
+- {
+- fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
+- strerror (errno));
+- exit (1);
+- }
+- else
+- exit (0);
+-]])],
+- [have_abstract_sockets=yes],
+- [have_abstract_sockets=no])
+-AC_LANG_POP(C)
+-AC_MSG_RESULT($have_abstract_sockets)
+-
+ if test x$enable_abstract_sockets = xyes; then
+ if test x$have_abstract_sockets = xno; then
+ AC_MSG_ERROR([Abstract sockets explicitly required, and support not detected.])
diff --git a/meta/recipes-extended/gamin/gamin_0.1.10.bb b/meta/recipes-extended/gamin/gamin_0.1.10.bb
new file mode 100644
index 0000000..21f1da4
--- /dev/null
+++ b/meta/recipes-extended/gamin/gamin_0.1.10.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Gamin is a file and directory monitoring system defined to \
+be a subset of the FAM (File Alteration Monitor) system."
+HOMEPAGE = "http://people.gnome.org/~veillard/gamin/"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=412a9be54757a155d0b997b52b519f62"
+
+DEPENDS = "glib-2.0"
+PROVIDES = "fam"
+PR = "r2"
+
+SRC_URI = "http://www.gnome.org/~veillard/gamin/sources/gamin-${PV}.tar.gz \
+ file://no-abstract-sockets.patch"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--without-python"
+
+PACKAGES += "lib${PN} lib${PN}-dev lib${PN}-dbg"
+FILES_${PN} = "${libexecdir}"
+FILES_${PN}-dbg = "${libexecdir}/.debug"
+FILES_lib${PN} = "${libdir}/lib*.so.*"
+FILES_lib${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/lib*.la \
+ ${libdir}/lib*.a ${libdir}/lib*.so"
+FILES_lib${PN}-dbg = "${libdir}/.debug/"
+
+RDEPENDS_lib${PN} = "${PN}"
+
+LEAD_SONAME = "libgamin-1.so"
+
diff --git a/meta/recipes-extended/gawk/gawk_3.1.5.bb b/meta/recipes-extended/gawk/gawk_3.1.5.bb
new file mode 100644
index 0000000..4bfa23d
--- /dev/null
+++ b/meta/recipes-extended/gawk/gawk_3.1.5.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "A program that you can use to select particular records in a \
+file and perform operations upon them."
+HOMEPAGE = "www.gnu.org/software/gawk"
+BUGTRACKER = "bug-gawk@gnu.org"
+SECTION = "console/utils"
+
+# gawk <= 3.1.5: GPLv2
+# gawk >= 3.1.6: GPLv3
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+RDEPENDS_gawk += "gawk-common"
+RDEPENDS_pgawk += "gawk-common"
+PR = "r0"
+
+SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz"
+
+inherit autotools gettext update-alternatives
+
+PACKAGES += "gawk-common pgawk"
+
+FILES_${PN} = "${bindir}/gawk* ${bindir}/igawk"
+FILES_gawk-common += "${datadir}/awk/* ${libexecdir}/awk/*"
+FILES_pgawk = "${bindir}/pgawk*"
+FILES_${PN}-dbg += "${libexecdir}/awk/.debug"
+
+ALTERNATIVE_NAME = "awk"
+ALTERNATIVE_PATH = "gawk"
+ALTERNATIVE_LINK = "${bindir}/awk"
+ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-extended/images/poky-image-basic.bb b/meta/recipes-extended/images/poky-image-basic.bb
new file mode 100644
index 0000000..537a6e4
--- /dev/null
+++ b/meta/recipes-extended/images/poky-image-basic.bb
@@ -0,0 +1,8 @@
+IMAGE_FEATURES += "apps-console-core "
+
+IMAGE_INSTALL = "\
+ ${POKY_BASE_INSTALL} \
+ task-poky-basic \
+ "
+
+inherit poky-image
diff --git a/meta/recipes-extended/images/poky-image-lsb.bb b/meta/recipes-extended/images/poky-image-lsb.bb
new file mode 100644
index 0000000..8424d91
--- /dev/null
+++ b/meta/recipes-extended/images/poky-image-lsb.bb
@@ -0,0 +1,9 @@
+IMAGE_FEATURES += "apps-console-core "
+
+IMAGE_INSTALL = "\
+ ${POKY_BASE_INSTALL} \
+ task-poky-basic \
+ task-poky-lsb \
+ "
+
+inherit poky-image
diff --git a/meta/recipes-extended/iptables/iptables_1.4.8.bb b/meta/recipes-extended/iptables/iptables_1.4.8.bb
new file mode 100644
index 0000000..ad707d3
--- /dev/null
+++ b/meta/recipes-extended/iptables/iptables_1.4.8.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "iptables is the userspace command line program used to configure the Linux 2.4.x and 2.6.x IPv4 packet filtering ruleset"
+HOMEPAGE = "http://www.netfilter.org/"
+BUGTRACKER = "http://bugzilla.netfilter.org/"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://iptables.c;firstline=13;endline=25;md5=f1028f2401da1c120df27594b2be50ef"
+
+PR = "r0"
+
+RRECOMMENDS_${PN} = "kernel-module-x-tables \
+ kernel-module-ip-tables \
+ kernel-module-iptable-filter \
+ kernel-module-iptable-nat \
+ kernel-module-nf-defrag-ipv4 \
+ kernel-module-nf-conntrack \
+ kernel-module-nf-conntrack-ipv4 \
+ kernel-module-nf-nat \
+ kernel-module-ipt-masquerade"
+FILES_${PN}-dbg =+ "${libexecdir}/xtables/.debug"
+
+SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR} \
+ ${@base_contains('DISTRO_FEATURES', 'ipv6', '', '--disable-ipv6', d)}"
+
+do_configure_prepend() {
+ # they are all libtool m4 files
+ rm -rf ${S}/m4
+}
diff --git a/meta/recipes-extended/iputils/files/debian/CVE-2010-2529.diff b/meta/recipes-extended/iputils/files/debian/CVE-2010-2529.diff
new file mode 100644
index 0000000..98aae0d
--- /dev/null
+++ b/meta/recipes-extended/iputils/files/debian/CVE-2010-2529.diff
@@ -0,0 +1,22 @@
+Index: trunk/ping.c
+===================================================================
+--- trunk.orig/ping.c 2010-07-23 21:26:53.000000000 -0700
++++ trunk/ping.c 2010-07-23 21:28:27.000000000 -0700
+@@ -1059,7 +1059,7 @@
+ i = j;
+ i -= IPOPT_MINOFF;
+ if (i <= 0)
+- continue;
++ break;
+ if (i == old_rrlen
+ && !strncmp((char *)cp, old_rr, i)
+ && !(options & F_FLOOD)) {
+@@ -1096,7 +1096,7 @@
+ i = j;
+ i -= 5;
+ if (i <= 0)
+- continue;
++ break;
+ flags = *++cp;
+ printf("\nTS: ");
+ cp++;
diff --git a/meta/recipes-extended/iputils/files/debian/add-icmp-return-codes.diff b/meta/recipes-extended/iputils/files/debian/add-icmp-return-codes.diff
new file mode 100644
index 0000000..86bbf0d
--- /dev/null
+++ b/meta/recipes-extended/iputils/files/debian/add-icmp-return-codes.diff
@@ -0,0 +1,41 @@
+Index: trunk/ping.c
+===================================================================
+--- trunk.orig/ping.c 2010-05-07 23:13:54.000000000 -0700
++++ trunk/ping.c 2010-05-07 23:23:22.000000000 -0700
+@@ -883,9 +883,36 @@
+ case ICMP_SR_FAILED:
+ printf("Source Route Failed\n");
+ break;
++ case ICMP_NET_UNKNOWN:
++ printf("Destination Net Unknown\n");
++ break;
++ case ICMP_HOST_UNKNOWN:
++ printf("Destination Host Unknown\n");
++ break;
++ case ICMP_HOST_ISOLATED:
++ printf("Source Host Isolated\n");
++ break;
++ case ICMP_NET_ANO:
++ printf("Destination Net Prohibited\n");
++ break;
++ case ICMP_HOST_ANO:
++ printf("Destination Host Prohibited\n");
++ break;
++ case ICMP_NET_UNR_TOS:
++ printf("Destination Net Unreachable for Type of Service\n");
++ break;
++ case ICMP_HOST_UNR_TOS:
++ printf("Destination Host Unreachable for Type of Service\n");
++ break;
+ case ICMP_PKT_FILTERED:
+ printf("Packet filtered\n");
+ break;
++ case ICMP_PREC_VIOLATION:
++ printf("Precedence Violation\n");
++ break;
++ case ICMP_PREC_CUTOFF:
++ printf("Precedence Cutoff\n");
++ break;
+ default:
+ printf("Dest Unreachable, Bad Code: %d\n", code);
+ break;
diff --git a/meta/recipes-extended/iputils/files/debian/fix-arping-timeouts.diff b/meta/recipes-extended/iputils/files/debian/fix-arping-timeouts.diff
new file mode 100644
index 0000000..9f05769
--- /dev/null
+++ b/meta/recipes-extended/iputils/files/debian/fix-arping-timeouts.diff
@@ -0,0 +1,24 @@
+Index: trunk/arping.c
+===================================================================
+--- trunk.orig/arping.c 2010-05-07 23:13:52.000000000 -0700
++++ trunk/arping.c 2010-05-07 23:41:16.000000000 -0700
+@@ -182,12 +182,17 @@
+ if (start.tv_sec==0)
+ start = tv;
+
+- if (count-- == 0 || (timeout && MS_TDIFF(tv,start) > timeout*1000 + 500))
++ if (timeout && MS_TDIFF(tv,start) > timeout*1000 + 500)
+ finish();
+
+- if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) {
++ if ((!timeout) && (count == 0))
++ finish();
++
++ if ( count!=0 && (last.tv_sec==0 || MS_TDIFF(tv,last) > 500 ) ) {
+ send_pack(s, src, dst,
+ (struct sockaddr_ll *)&me, (struct sockaddr_ll *)&he);
++ if (count >= 0)
++ count--;
+ if (count == 0 && unsolicited)
+ finish();
+ }
diff --git a/meta/recipes-extended/iputils/files/debian/fix-dead-host-ping-stats.diff b/meta/recipes-extended/iputils/files/debian/fix-dead-host-ping-stats.diff
new file mode 100644
index 0000000..2a92425
--- /dev/null
+++ b/meta/recipes-extended/iputils/files/debian/fix-dead-host-ping-stats.diff
@@ -0,0 +1,14 @@
+Index: trunk/ping_common.c
+===================================================================
+--- trunk.orig/ping_common.c 2010-05-07 23:13:51.000000000 -0700
++++ trunk/ping_common.c 2010-05-07 23:22:33.000000000 -0700
+@@ -872,7 +872,8 @@
+ printf("%spipe %d", comma, pipesize);
+ comma = ", ";
+ }
+- if (ntransmitted > 1 && (!interval || (options&(F_FLOOD|F_ADAPTIVE)))) {
++ if (ntransmitted > 1 && nreceived &&
++ (!interval || (options&(F_FLOOD|F_ADAPTIVE)))) {
+ int ipg = (1000000*(long long)tv.tv_sec+tv.tv_usec)/(ntransmitted-1);
+ printf("%sipg/ewma %d.%03d/%d.%03d ms",
+ comma, ipg/1000, ipg%1000, rtt/8000, (rtt/8)%1000);
diff --git a/meta/recipes-extended/iputils/files/debian/targets.diff b/meta/recipes-extended/iputils/files/debian/targets.diff
new file mode 100644
index 0000000..b5e907a
--- /dev/null
+++ b/meta/recipes-extended/iputils/files/debian/targets.diff
@@ -0,0 +1,13 @@
+Index: trunk/Makefile
+===================================================================
+--- trunk.orig/Makefile 2010-05-07 23:43:00.000000000 -0700
++++ trunk/Makefile 2010-05-07 23:47:10.000000000 -0700
+@@ -16,7 +16,7 @@
+ CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g
+ CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES)
+
+-IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd
++IPV4_TARGETS=tracepath ping arping clockdiff
+ IPV6_TARGETS=tracepath6 traceroute6 ping6
+ TARGETS=$(IPV4_TARGETS) $(IPV6_TARGETS)
+
diff --git a/meta/recipes-extended/iputils/files/debian/use_gethostbyname2.diff b/meta/recipes-extended/iputils/files/debian/use_gethostbyname2.diff
new file mode 100644
index 0000000..7e6c97c
--- /dev/null
+++ b/meta/recipes-extended/iputils/files/debian/use_gethostbyname2.diff
@@ -0,0 +1,29 @@
+Index: trunk/tracepath.c
+===================================================================
+--- trunk.orig/tracepath.c 2010-05-07 23:13:52.000000000 -0700
++++ trunk/tracepath.c 2010-05-07 23:24:09.000000000 -0700
+@@ -338,9 +338,9 @@
+ base_port = atoi(p+1);
+ } else
+ base_port = 44444;
+- he = gethostbyname(argv[0]);
++ he = gethostbyname2(argv[0], AF_INET);
+ if (he == NULL) {
+- herror("gethostbyname");
++ herror("gethostbyname2");
+ exit(1);
+ }
+ memcpy(&target.sin_addr, he->h_addr, 4);
+Index: trunk/ping.c
+===================================================================
+--- trunk.orig/ping.c 2010-05-07 23:23:22.000000000 -0700
++++ trunk/ping.c 2010-05-07 23:24:09.000000000 -0700
+@@ -250,7 +250,7 @@
+ if (argc == 1)
+ options |= F_NUMERIC;
+ } else {
+- hp = gethostbyname(target);
++ hp = gethostbyname2(target, AF_INET);
+ if (!hp) {
+ fprintf(stderr, "ping: unknown host %s\n", target);
+ exit(2);
diff --git a/meta/recipes-extended/iputils/iputils_s20100418.bb b/meta/recipes-extended/iputils/iputils_s20100418.bb
new file mode 100644
index 0000000..3f793ec
--- /dev/null
+++ b/meta/recipes-extended/iputils/iputils_s20100418.bb
@@ -0,0 +1,78 @@
+DESCRIPTION = "Utilities for the IP protocol, including traceroute6, \
+tracepath, tracepath6, ping, ping6 and arping."
+HOMEPAGE = "http://www.skbuff.net/iputils"
+SECTION = "console/network"
+
+LICENSE = "BSD & GPLv2+"
+
+DEPENDS = "sysfsutils openssl"
+
+PR = "r0"
+
+SRC_URI = "http://www.skbuff.net/iputils/${PN}-${PV}.tar.bz2 \
+ file://debian/fix-dead-host-ping-stats.diff \
+ file://debian/add-icmp-return-codes.diff \
+ file://debian/use_gethostbyname2.diff \
+ file://debian/targets.diff \
+ file://debian/fix-arping-timeouts.diff \
+ file://debian/CVE-2010-2529.diff \
+ "
+
+# man is not compiled here, since it requires docbook-utils-native
+# which is not available in poky
+
+do_compile () {
+ oe_runmake 'CC=${CC} -D_GNU_SOURCE' VPATH="${STAGING_LIBDIR}" all
+}
+
+do_install () {
+ install -m 0755 -d ${D}${base_bindir} ${D}${mandir}/man8
+ # SUID root programs
+ install -m 4555 ping ${D}${base_bindir}/ping.${PN}
+ install -m 4555 ping6 ${D}${base_bindir}/ping6.${PN}
+ install -m 4555 traceroute6 ${D}${base_bindir}/
+ # Other programgs
+ for i in arping tracepath tracepath6; do
+ install -m 0755 $i ${D}${base_bindir}/
+ done
+ # Manual pages for things we build packages for
+# for i in tracepath.8 traceroute6.8 ping.8 arping.8; do
+# install -m 0644 doc/$i ${D}${mandir}/man8/ || true
+# done
+}
+
+# Busybox also provides ping and ping6, so use update-alternatives
+# Also fixup SUID bit for applications that need it
+pkg_postinst_${PN}-ping () {
+ chmod 4555 ${base_bindir}/ping.${PN}
+ update-alternatives --install ${base_bindir}/ping ping ping.${PN} 100
+}
+pkg_prerm_${PN}-ping () {
+ update-alternatives --remove ping ping.${PN}
+}
+
+pkg_postinst_${PN}-ping6 () {
+ chmod 4555 ${base_bindir}/ping6.${PN}
+ update-alternatives --install ${base_bindir}/ping6 ping6 ping6.${PN} 100
+}
+pkg_prerm_${PN}-ping6 () {
+ update-alternatives --remove ping6 ping6.${PN}
+}
+
+pkg_postinst_${PN}-traceroute6 () {
+ chmod 4555 ${base_bindir}/traceroute6
+}
+
+PACKAGES += "${PN}-ping ${PN}-ping6 ${PN}-arping ${PN}-tracepath ${PN}-tracepath6 ${PN}-traceroute6"
+
+ALLOW_EMPTY_${PN} = "1"
+RDEPENDS_${PN} += "${PN}-ping ${PN}-ping6 ${PN}-arping ${PN}-tracepath ${PN}-tracepath6 ${PN}-traceroute6"
+
+FILES_${PN} = ""
+FILES_${PN}-ping = "${base_bindir}/ping.${PN}"
+FILES_${PN}-ping6 = "${base_bindir}/ping6.${PN}"
+FILES_${PN}-arping = "${base_bindir}/arping"
+FILES_${PN}-tracepath = "${base_bindir}/tracepath"
+FILES_${PN}-tracepath6 = "${base_bindir}/tracepath6"
+FILES_${PN}-traceroute6 = "${base_bindir}/traceroute6"
+FILES_${PN}-doc = "${mandir}/man8"
diff --git a/meta/recipes-extended/less/less_436.bb b/meta/recipes-extended/less/less_436.bb
new file mode 100644
index 0000000..872a127
--- /dev/null
+++ b/meta/recipes-extended/less/less_436.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Less is a program similar to more, i.e. a terminal \
+based program for viewing text files and the output from other \
+programs. Less offers many features beyond those that more does."
+HOMEPAGE = "http://www.greenwoodsoftware.com/"
+SECTION = "console/utils"
+
+# (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less
+# less is a 2-clause BSD-like permissive license
+LICENSE = "GPLv3+ | less"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE;md5=fd5ccf3de28f72a0254fa8768ec8180c"
+DEPENDS = "ncurses"
+PR = "r0"
+
+SRC_URI = "http://www.greenwoodsoftware.com/${PN}/${PN}-${PV}.tar.gz"
+
+
+inherit autotools update-alternatives
+
+do_install () {
+ oe_runmake 'bindir=${D}${bindir}' 'mandir=${D}${mandir}' install
+ mv ${D}${bindir}/less ${D}${bindir}/less.${PN}
+}
+
+ALTERNATIVE_NAME = "less"
+ALTERNATIVE_PATH = "less.${PN}"
+ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-extended/libuser/libuser-0.56.16/disable-sgml-doc.patch b/meta/recipes-extended/libuser/libuser-0.56.16/disable-sgml-doc.patch
new file mode 100644
index 0000000..a2017c5
--- /dev/null
+++ b/meta/recipes-extended/libuser/libuser-0.56.16/disable-sgml-doc.patch
@@ -0,0 +1,18 @@
+Disable generating docs from sgml, which requries linuxdoc-tools.
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+Index: libuser-0.56.16/docs/Makefile.am
+===================================================================
+--- libuser-0.56.16.orig/docs/Makefile.am 2010-08-12 13:29:43.000000000 +0800
++++ libuser-0.56.16/docs/Makefile.am 2010-08-12 13:29:51.000000000 +0800
+@@ -14,8 +14,8 @@
+
+ sgml/libuser.txt: $(srcdir)/sgml/libuser.sgml
+ [ -d sgml ] || mkdir sgml
+- cd sgml; sgml2txt ../$(srcdir)/sgml/libuser.sgml
++# cd sgml; sgml2txt ../$(srcdir)/sgml/libuser.sgml
+
+ sgml/libuser.html: $(srcdir)/sgml/libuser.sgml
+ [ -d sgml ] || mkdir sgml
+- cd sgml; sgml2html ../$(srcdir)/sgml/libuser.sgml
++# cd sgml; sgml2html ../$(srcdir)/sgml/libuser.sgml
diff --git a/meta/recipes-extended/libuser/libuser_0.56.16.bb b/meta/recipes-extended/libuser/libuser_0.56.16.bb
new file mode 100644
index 0000000..d72430e
--- /dev/null
+++ b/meta/recipes-extended/libuser/libuser_0.56.16.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "The libuser library implements a standardized interface for manipulating and administering user and group accounts"
+HOMEPAGE = "https://fedorahosted.org/libuser/"
+BUGTRACKER = "https://fedorahosted.org/libuser/newticket"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://lib/user.h;endline=19;md5=9bc141f2e0d3e8b97ecdc945b2ed1ec7 \
+ file://samples/testuser.c;endline=19;md5=61e8c05bd37ce1cba5590071f6e17500"
+
+SECTION = "base"
+
+SRC_URI = "https://fedorahosted.org/releases/l/i/libuser/libuser-${PV}.tar.xz \
+ file://disable-sgml-doc.patch;patch=1"
+PR = "r0"
+
+DEPENDS = "gettext libpam glib-2.0 xz-native"
+
+EXTRA_OECONF += "--disable-gtk-doc --without-python"
+
+inherit autotools
diff --git a/meta/recipes-extended/minicom/minicom-2.3/gcc4-scope.patch b/meta/recipes-extended/minicom/minicom-2.3/gcc4-scope.patch
new file mode 100644
index 0000000..5bd47bd
--- /dev/null
+++ b/meta/recipes-extended/minicom/minicom-2.3/gcc4-scope.patch
@@ -0,0 +1,44 @@
+--- minicom-2.1/src/window.c.orig 2006-06-14 17:49:53.000000000 +0200
++++ minicom-2.1/src/window.c 2006-06-14 17:50:14.000000000 +0200
+@@ -62,7 +62,7 @@
+ static char *CS, *SF, *SR, *VB, *BL;
+ static char *VE, *VI, *KS, *KE;
+ static char *CD, *CL, *IC, *DC;
+-static char *BC, *CR, *NL;
++static char *mcBC, *CR, *NL;
+ #if ST_LINE
+ static char *TS, *FS, *DS;
+ #endif
+@@ -322,8 +322,8 @@
+ else if (NL != CNULL && x == 0 && x == curx && y == cury + 1)
+ outstr(NL);
+ #endif
+- else if (BC != CNULL && y == cury && x == curx - 1)
+- outstr(BC);
++ else if (mcBC != CNULL && y == cury && x == curx - 1)
++ outstr(mcBC);
+ else
+ outstr(tgoto(CM, x, y));
+ curx = x;
+@@ -1918,7 +1918,7 @@
+ CL = tgetstr("cl", &_tptr);
+ IC = tgetstr("ic", &_tptr);
+ DC = tgetstr("dc", &_tptr);
+- BC = tgetstr("bc", &_tptr);
++ mcBC = tgetstr("bc", &_tptr);
+ CR = tgetstr("cr", &_tptr);
+ NL = tgetstr("nl", &_tptr);
+ AC = tgetstr("ac", &_tptr);
+@@ -1967,10 +1967,10 @@
+ _has_am = tgetflag("am");
+ _mv_standout = tgetflag("ms");
+ if (tgetflag("bs")) {
+- if (BC == CNULL) BC = "\b";
++ if (mcBC == CNULL) mcBC = "\b";
+ }
+ else
+- BC = CNULL;
++ mcBC = CNULL;
+
+ /* Special IBM box-drawing characters */
+ D_UL = 201;
diff --git a/meta/recipes-extended/minicom/minicom-2.3/rename-conflicting-functions.patch b/meta/recipes-extended/minicom/minicom-2.3/rename-conflicting-functions.patch
new file mode 100644
index 0000000..c344203
--- /dev/null
+++ b/meta/recipes-extended/minicom/minicom-2.3/rename-conflicting-functions.patch
@@ -0,0 +1,13 @@
+--- minicom-2.3/src/minicom.c-orig 2009-06-08 14:49:07.000000000 +0200
++++ minicom-2.3/src/minicom.c 2009-06-08 14:50:23.000000000 +0200
+@@ -63,6 +63,10 @@
+ }
+ #endif /*DEBUG*/
+
++#ifdef __USE_GNU
++#define getline minicom_getline
++#endif
++
+ /*
+ * Sub - menu's.
+ */
diff --git a/meta/recipes-extended/minicom/minicom_2.3.bb b/meta/recipes-extended/minicom/minicom_2.3.bb
new file mode 100644
index 0000000..a114e30
--- /dev/null
+++ b/meta/recipes-extended/minicom/minicom_2.3.bb
@@ -0,0 +1,17 @@
+SECTION = "console/network"
+DEPENDS = "ncurses"
+LICENSE = "GPL"
+SRC_URI = "http://alioth.debian.org/frs/download.php/2332/minicom-${PV}.tar.gz \
+ file://rename-conflicting-functions.patch \
+ "
+
+# file://gcc4-scope.patch;patch=1 \
+
+inherit autotools gettext
+
+do_install() {
+ for d in doc extras man lib src; do make -C $d DESTDIR=${D} install; done
+}
+
+SRC_URI[md5sum] = "0ebe7a91898384ca906787cc4e2c3f25"
+SRC_URI[sha256sum] = "2acbc3d4a07e1134ee285a72fa44bbc27703b02dba02be68db9e6fd8320356fb"
diff --git a/meta/recipes-extended/mktemp/files/disable-strip.patch b/meta/recipes-extended/mktemp/files/disable-strip.patch
new file mode 100644
index 0000000..d6bc528
--- /dev/null
+++ b/meta/recipes-extended/mktemp/files/disable-strip.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index 37b3cc9..f1026f3 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -95,7 +95,7 @@ install-dirs:
+ $(DESTDIR)$(mandir)/man1
+
+ install-binaries: $(PROG)
+- $(INSTALL) -m 0555 -s $(PROG) $(DESTDIR)$(bindir)/$(PROG)
++ $(INSTALL) -m 0555 $(PROG) $(DESTDIR)$(bindir)/$(PROG)
+
+ install-man:
+ $(INSTALL) -m 0444 $(srcdir)/mktemp.$(mantype) \
diff --git a/meta/recipes-extended/mktemp/mktemp_1.7.bb b/meta/recipes-extended/mktemp/mktemp_1.7.bb
new file mode 100644
index 0000000..a348274
--- /dev/null
+++ b/meta/recipes-extended/mktemp/mktemp_1.7.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Allow safe temporary file creation from shell scripts."
+HOMEPAGE = "http://www.mktemp.org/"
+BUGTRACKER = "http://www.mktemp.org/bugs"
+SECTION = "console/utils"
+LICENSE = "ISC style"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=430680f6322a1eb87199b5e01a82c0d4"
+
+PR = "r0"
+
+SRC_URI = "ftp://ftp.mktemp.org/pub/mktemp/${P}.tar.gz \
+ file://disable-strip.patch \
+ "
+
+inherit autotools update-alternatives
+
+EXTRA_OECONF = "--with-libc"
+
+do_install_append () {
+ mkdir ${D}${base_bindir}
+ mv ${D}${bindir}/mktemp ${D}${base_bindir}/mktemp.${PN}
+}
+
+ALTERNATIVE_NAME = "mktemp"
+ALTERNATIVE_LINK = "${base_bindir}/mktemp"
+ALTERNATIVE_PATH = "${base_bindir}/mktemp.${PN}"
+ALTERNATIVE_PRIORITY = "100"
diff --git a/meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.h b/meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.h
new file mode 100644
index 0000000..92c527a
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.h
@@ -0,0 +1,75 @@
+/*
+* config.h Automatically generated configuration includefile
+*
+* NET-TOOLS A collection of programs that form the base set of the
+* NET-3 Networking Distribution for the LINUX operating
+* system.
+*
+* DO NOT EDIT DIRECTLY
+*
+*/
+
+/*
+ *
+ * Internationalization
+ *
+ * The net-tools package has currently been translated to French,
+ * German and Brazilian Portugese. Other translations are, of
+ * course, welcome. Answer `n' here if you have no support for
+ * internationalization on your system.
+ *
+ */
+#define I18N 1
+
+/*
+ *
+ * Protocol Families.
+ *
+ */
+#define HAVE_AFUNIX 1
+#define HAVE_AFINET 1
+#define HAVE_AFINET6 1
+#define HAVE_AFIPX 0
+#define HAVE_AFATALK 0
+#define HAVE_AFAX25 0
+#define HAVE_AFNETROM 1
+#define HAVE_AFROSE 0
+#define HAVE_AFX25 0
+#define HAVE_AFECONET 0
+#define HAVE_AFDECnet 0
+#define HAVE_AFASH 0
+
+/*
+ *
+ * Device Hardware types.
+ *
+ */
+#define HAVE_HWETHER 1
+#define HAVE_HWARC 1
+#define HAVE_HWSLIP 1
+#define HAVE_HWPPP 1
+#define HAVE_HWTUNNEL 1
+#define HAVE_HWSTRIP 1
+#define HAVE_HWTR 1
+#define HAVE_HWAX25 0
+#define HAVE_HWROSE 0
+#define HAVE_HWNETROM 1
+#define HAVE_HWX25 0
+#define HAVE_HWFR 1
+#define HAVE_HWSIT 0
+#define HAVE_HWFDDI 0
+#define HAVE_HWHIPPI 0
+#define HAVE_HWASH 0
+#define HAVE_HWHDLCLAPB 0
+#define HAVE_HWIRDA 1
+#define HAVE_HWEC 0
+#define HAVE_HWIB 0
+
+/*
+ *
+ * Other Features.
+ *
+ */
+#define HAVE_FW_MASQUERADE 1
+#define HAVE_IP_TOOLS 1
+#define HAVE_MII 1
diff --git a/meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.make b/meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.make
new file mode 100644
index 0000000..ec516f2
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools-1.60-23/net-tools-config.make
@@ -0,0 +1,36 @@
+I18N=1
+HAVE_AFUNIX=1
+HAVE_AFINET=1
+HAVE_AFINET6=1
+# HAVE_AFIPX=0
+# HAVE_AFATALK=0
+# HAVE_AFAX25=0
+HAVE_AFNETROM=1
+# HAVE_AFROSE=0
+# HAVE_AFX25=0
+# HAVE_AFECONET=0
+# HAVE_AFDECnet=0
+# HAVE_AFASH=0
+HAVE_HWETHER=1
+HAVE_HWARC=1
+HAVE_HWSLIP=1
+HAVE_HWPPP=1
+HAVE_HWTUNNEL=1
+HAVE_HWSTRIP=1
+HAVE_HWTR=1
+# HAVE_HWAX25=0
+# HAVE_HWROSE=0
+HAVE_HWNETROM=1
+# HAVE_HWX25=0
+HAVE_HWFR=1
+# HAVE_HWSIT=0
+# HAVE_HWFDDI=0
+# HAVE_HWHIPPI=0
+# HAVE_HWASH=0
+# HAVE_HWHDLCLAPB=0
+HAVE_HWIRDA=1
+# HAVE_HWEC=0
+# HAVE_HWIB=0
+HAVE_FW_MASQUERADE=1
+HAVE_IP_TOOLS=1
+HAVE_MII=1
diff --git a/meta/recipes-extended/net-tools/net-tools_1.60-23.bb b/meta/recipes-extended/net-tools/net-tools_1.60-23.bb
new file mode 100644
index 0000000..031169c
--- /dev/null
+++ b/meta/recipes-extended/net-tools/net-tools_1.60-23.bb
@@ -0,0 +1,77 @@
+SUMMARY="A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system"
+HOMEPAGE = "http://net-tools.berlios.de/"
+BUGTRACKER = "http://bugs.debian.org/net-tools"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://ifconfig.c;startline=11;endline=15;md5=da4c7bb79a5d0798faa99ef869721f4a"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.debian.org/debian/pool/main/n/net-tools/net-tools_1.60.orig.tar.gz \
+ ftp://ftp.debian.org/debian/pool/main/n/net-tools/${PN}_${PV}.diff.gz;apply=no \
+ file://net-tools-config.h \
+ file://net-tools-config.make"
+
+S = "${WORKDIR}/net-tools-1.60"
+
+inherit gettext
+
+# The Makefile is lame, no parallel build
+PARALLEL_MAKE = ""
+
+# Unlike other Debian packages, net-tools *.diff.gz contains another series of
+# patches maintained by quilt. So manually apply them before applying other local
+# patches. Also remove all temp files before leaving, because do_patch() will pop
+# up all previously applied patches in the start
+nettools_do_patch() {
+ cd ${S}
+ patch -p1 < ${WORKDIR}/${PN}_${PV}.diff
+ QUILT_PATCHES=${S}/debian/patches quilt push -a
+ rm -rf ${S}/patches ${S}/.pc
+}
+
+# We invoke base do_patch at end, to incorporate any local patch
+python do_patch() {
+ bb.build.exec_func('nettools_do_patch', d)
+ bb.build.exec_func('patch_do_patch', d)
+}
+
+do_configure() {
+ # net-tools has its own config mechanism requiring "make config"
+ # we pre-generate desired options and copy to source directory instead
+ cp ${WORKDIR}/net-tools-config.h ${S}/config.h
+ cp ${WORKDIR}/net-tools-config.make ${S}/config.make
+}
+
+do_compile() {
+ # net-tools use COPTS/LOPTS to allow adding custom options
+ export COPTS="$CFLAGS"
+ export LOPTS="$LDFLAGS"
+ unset CFLAGS
+ unset LDFLAGS
+
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake 'BASEDIR=${D}' install
+
+ for app in ${D}/${base_sbindir}/* ${D}/${base_bindir}/*; do
+ mv $app $app.${PN}
+ done
+}
+
+pkg_postinst_${PN} () {
+ for app in arp ifconfig ipmaddr iptunnel mii-tool nameif plipconfig rarp route slattach ; do
+ update-alternatives --install ${base_sbindir}/$app $app $app.${PN} 100
+ done
+
+ for app in dnsdomainname domainname hostname netstat nisdomainname ypdomainname ; do
+ update-alternatives --install ${base_bindir}/$app $app $app.${PN} 100
+ done
+}
+
+pkg_prerm_${PN} () {
+ for app in arp ifconfig ipmaddr iptunnel mii-tool nameif plipconfig rarp route slattach dnsdomainname domainname hostname netstat nisdomainname ypdomainname ; do
+ update-alternatives --remove $app $app.${PN}
+ done
+}
diff --git a/meta/recipes-extended/pax/pax_3.4.bb b/meta/recipes-extended/pax/pax_3.4.bb
new file mode 100644
index 0000000..32804ba
--- /dev/null
+++ b/meta/recipes-extended/pax/pax_3.4.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "pax (Portable Archive eXchange) is the POSIX standard archive tool"
+HOMEPAGE = "http://www.openbsd.org/cgi-bin/cvsweb/src/bin/pax/"
+BUGTRACKER = "http://www.openbsd.org/query-pr.html"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b0b674dfdc56daa3832d4069b820ea0 \
+ file://src/pax.h;endline=40;md5=309d3e241c1d82069228e5a51e9b8d60 \
+ file://src/cpio.h;endline=40;md5=c3b4bbff6133a83387968617bbae8ac4 \
+ file://lib/vis.h;endline=40;md5=b283f759abd4a5ad7e014b80f51fc053"
+
+SECTION = "base"
+PR = "r0"
+
+SRC_URI = "ftp://ftp.suse.com/pub/people/kukuk/pax/pax-${PV}.tar.bz2"
+
+inherit autotools
diff --git a/meta/recipes-extended/perl/libconvert-asn1-perl_0.21.bb b/meta/recipes-extended/perl/libconvert-asn1-perl_0.21.bb
new file mode 100644
index 0000000..3292ee3
--- /dev/null
+++ b/meta/recipes-extended/perl/libconvert-asn1-perl_0.21.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Convert::ASN1 - ASN.1 Encode/Decode library"
+SECTION = "libs"
+LICENSE = "Artistic|GPL"
+PR = "r0"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Convert-ASN1-${PV}.tar.gz"
+
+S = "${WORKDIR}/Convert-ASN1-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND="native"
+
+PACKAGE_ARCH = "all"
diff --git a/meta/recipes-extended/perl/libtimedate-perl_1.20.bb b/meta/recipes-extended/perl/libtimedate-perl_1.20.bb
new file mode 100644
index 0000000..84406ad
--- /dev/null
+++ b/meta/recipes-extended/perl/libtimedate-perl_1.20.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "TimeDate - parser for absolute times"
+SECTION = "libs"
+# You can redistribute it and/or modify it under the same terms as Perl itself.
+LICENSE = "Artistic|GPL"
+PR = "r2"
+
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/TimeDate-${PV}.tar.gz"
+
+S = "${WORKDIR}/TimeDate-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND="native"
+
+RDEPENDS_${PN}_virtclass-native = ""
+RDEPENDS_${PN} += "perl-module-carp perl-module-exporter perl-module-strict perl-module-time-local"
+PACKAGE_ARCH = "all"
+
+SRC_URI[md5sum] = "7da7452bce4c684e4238e6d09b390200"
+SRC_URI[sha256sum] = "f8251a791f6692c69952b4af697c01df93981ad1ab133279d034656a03cd3755"
diff --git a/meta/recipes-extended/procps/procps-3.2.7/install.patch b/meta/recipes-extended/procps/procps-3.2.7/install.patch
new file mode 100644
index 0000000..9f1ef69
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/install.patch
@@ -0,0 +1,27 @@
+--- procps-3.2.5.virgin/Makefile 2005-01-26 05:55:26.000000000 +0100
++++ procps-3.2.5/Makefile 2005-08-03 04:55:26.346984488 +0200
+@@ -30,7 +30,10 @@
+ install := install -D --owner 0 --group 0
+
+ # Lame x86-64 /lib64 and /usr/lib64 abomination:
+-lib64 := lib$(shell [ -d /lib64 ] && echo 64)
++# lib64 := lib$(shell [ -d /lib64 ] && echo 64)
++
++# Equally lame hack to work around makefile lameness when the host arch is 64bit, but the target is not.
++lib64 := lib
+
+ usr/bin := $(DESTDIR)/usr/bin/
+ bin := $(DESTDIR)/bin/
+@@ -211,10 +214,10 @@
+ ###### install
+
+ $(BINFILES) : all
+- $(install) --mode a=rx $(notdir $@) $@
++ $(install) -m 555 $(notdir $@) $@
+
+ $(MANFILES) : all
+- $(install) --mode a=r $(notdir $@) $@
++ $(install) -m 444 $(notdir $@) $@
+
+ install: $(filter-out $(SKIP) $(addprefix $(DESTDIR),$(SKIP)),$(INSTALL))
+ cd $(usr/bin) && $(ln_f) skill snice
diff --git a/meta/recipes-extended/procps/procps-3.2.7/linux-limits.patch b/meta/recipes-extended/procps/procps-3.2.7/linux-limits.patch
new file mode 100644
index 0000000..dcd6616
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/linux-limits.patch
@@ -0,0 +1,13 @@
+diff --git a/pwdx.c b/pwdx.c
+index cb96a52..29ebce2 100644
+--- a/pwdx.c
++++ b/pwdx.c
+@@ -13,7 +13,7 @@
+ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <regex.h>
+-#include <limits.h>
++#include <linux/limits.h>
+ #include <unistd.h>
+ #include <errno.h>
+
diff --git a/meta/recipes-extended/procps/procps-3.2.7/pagesz-not-constant.patch b/meta/recipes-extended/procps/procps-3.2.7/pagesz-not-constant.patch
new file mode 100644
index 0000000..8e9e1eb
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/pagesz-not-constant.patch
@@ -0,0 +1,22 @@
+Index: procps-3.2.1/proc/devname.c
+===================================================================
+--- procps-3.2.1.orig/proc/devname.c 2004-03-18 05:43:50.000000000 +1100
++++ procps-3.2.1/proc/devname.c 2005-04-02 10:40:17.462138000 +1000
+@@ -227,7 +227,7 @@
+
+ /* number --> name */
+ unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
+- static char buf[PAGE_SIZE];
++ static char buf[4096];
+ char *restrict tmp = buf;
+ unsigned dev = dev_t_dev;
+ unsigned i = 0;
+@@ -249,7 +249,7 @@
+ if((flags&ABBREV_TTY) && !strncmp(tmp,"tty", 3) && tmp[3]) tmp += 3;
+ if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
+ /* gotta check before we chop or we may chop someone else's memory */
+- if(chop + (unsigned long)(tmp-buf) <= sizeof buf)
++ if(chop + (unsigned long)(tmp-buf) < sizeof buf)
+ tmp[chop] = '\0';
+ /* replace non-ASCII characters with '?' and return the number of chars */
+ for(;;){
diff --git a/meta/recipes-extended/procps/procps-3.2.7/procmodule.patch b/meta/recipes-extended/procps/procps-3.2.7/procmodule.patch
new file mode 100644
index 0000000..fabfaba
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/procmodule.patch
@@ -0,0 +1,36 @@
+*** procps-3.2.5/proc/module.mk.orig Sun Jul 24 11:53:49 2005
+--- procps-3.2.5/proc/module.mk Sun Jul 24 11:54:32 2005
+***************
+*** 96,102 ****
+ #################### install rules ###########################
+
+ $(lib)$(SOFILE) : proc/$(SONAME)
+! $(install) --mode a=rx $< $@
+
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+--- 96,102 ----
+ #################### install rules ###########################
+
+ $(lib)$(SOFILE) : proc/$(SONAME)
+! $(install) -m 555 $< $@
+
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+***************
+*** 115,121 ****
+ $(ldconfig)
+
+ $(usr/lib)$(ANAME) : proc/$(ANAME)
+! $(install) --mode a=r $< $@
+
+ # Junk anyway... supposed to go in /usr/include/$(NAME)
+ #INSTALL += $(addprefix $(include),$(HDRFILES))
+--- 115,121 ----
+ $(ldconfig)
+
+ $(usr/lib)$(ANAME) : proc/$(ANAME)
+! $(install) -m 444 $< $@
+
+ # Junk anyway... supposed to go in /usr/include/$(NAME)
+ #INSTALL += $(addprefix $(include),$(HDRFILES))
diff --git a/meta/recipes-extended/procps/procps-3.2.7/procps.init b/meta/recipes-extended/procps/procps-3.2.7/procps.init
new file mode 100644
index 0000000..739dcf4
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/procps.init
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+SYSCTL_CONF="/etc/sysctl.conf"
+if [ -f "${SYSCTL_CONF}" ]; then
+ /sbin/sysctl -q -p "${SYSCTL_CONF}"
+fi
diff --git a/meta/recipes-extended/procps/procps-3.2.7/psmodule.patch b/meta/recipes-extended/procps/procps-3.2.7/psmodule.patch
new file mode 100644
index 0000000..f298c1c
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/psmodule.patch
@@ -0,0 +1,21 @@
+*** procps-3.2.5/ps/module.mk.orig Sun Jul 24 11:54:40 2005
+--- procps-3.2.5/ps/module.mk Sun Jul 24 11:55:02 2005
+***************
+*** 33,40 ****
+
+
+ $(bin)ps: ps/ps
+! $(install) --mode a=rx $< $@
+
+ $(man1)ps.1 : ps/ps.1
+! $(install) --mode a=r $< $@
+ -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
+--- 33,40 ----
+
+
+ $(bin)ps: ps/ps
+! $(install) -m 555 $< $@
+
+ $(man1)ps.1 : ps/ps.1
+! $(install) -m 444 $< $@
+ -rm -f $(DESTDIR)/var/catman/cat1/ps.1.gz $(DESTDIR)/var/man/cat1/ps.1.gz
diff --git a/meta/recipes-extended/procps/procps-3.2.7/sysctl.conf b/meta/recipes-extended/procps/procps-3.2.7/sysctl.conf
new file mode 100644
index 0000000..34e7488
--- /dev/null
+++ b/meta/recipes-extended/procps/procps-3.2.7/sysctl.conf
@@ -0,0 +1,64 @@
+# This configuration file is taken from Debian.
+#
+# /etc/sysctl.conf - Configuration file for setting system variables
+# See sysctl.conf (5) for information.
+#
+
+#kernel.domainname = example.com
+
+# Uncomment the following to stop low-level messages on console
+#kernel.printk = 4 4 1 7
+
+##############################################################3
+# Functions previously found in netbase
+#
+
+# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
+# Turn on Source Address Verification in all interfaces to
+# prevent some spoofing attacks
+net.ipv4.conf.default.rp_filter=1
+net.ipv4.conf.all.rp_filter=1
+
+# Uncomment the next line to enable TCP/IP SYN cookies
+#net.ipv4.tcp_syncookies=1
+
+# Uncomment the next line to enable packet forwarding for IPv4
+#net.ipv4.ip_forward=1
+
+# Uncomment the next line to enable packet forwarding for IPv6
+#net.ipv6.conf.all.forwarding=1
+
+
+###################################################################
+# Additional settings - these settings can improve the network
+# security of the host and prevent against some network attacks
+# including spoofing attacks and man in the middle attacks through
+# redirection. Some network environments, however, require that these
+# settings are disabled so review and enable them as needed.
+#
+# Ignore ICMP broadcasts
+#net.ipv4.icmp_echo_ignore_broadcasts = 1
+#
+# Ignore bogus ICMP errors
+#net.ipv4.icmp_ignore_bogus_error_responses = 1
+#
+# Do not accept ICMP redirects (prevent MITM attacks)
+#net.ipv4.conf.all.accept_redirects = 0
+#net.ipv6.conf.all.accept_redirects = 0
+# _or_
+# Accept ICMP redirects only for gateways listed in our default
+# gateway list (enabled by default)
+# net.ipv4.conf.all.secure_redirects = 1
+#
+# Do not send ICMP redirects (we are not a router)
+#net.ipv4.conf.all.send_redirects = 0
+#
+# Do not accept IP source route packets (we are not a router)
+#net.ipv4.conf.all.accept_source_route = 0
+#net.ipv6.conf.all.accept_source_route = 0
+#
+# Log Martian Packets
+#net.ipv4.conf.all.log_martians = 1
+#
+
+#kernel.shmmax = 141762560
diff --git a/meta/recipes-extended/procps/procps.inc b/meta/recipes-extended/procps/procps.inc
new file mode 100644
index 0000000..2de32d2
--- /dev/null
+++ b/meta/recipes-extended/procps/procps.inc
@@ -0,0 +1,16 @@
+DESCRIPTION = "Procps is the package that has a bunch \
+of small useful utilities that give information \
+about processes using the /proc filesystem. The package \
+includes the programs ps, top, vmstat, w, kill, and skill."
+HOMEPAGE = "http://procps.sf.net"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "ncurses"
+
+FILES_${PN} += "${base_libdir}/libproc-*.so"
+
+SRC_URI = "http://procps.sourceforge.net/procps-${PV}.tar.gz \
+ file://install.patch;patch=1"
+
+inherit autotools
diff --git a/meta/recipes-extended/procps/procps_3.2.7.bb b/meta/recipes-extended/procps/procps_3.2.7.bb
new file mode 100644
index 0000000..6da975a
--- /dev/null
+++ b/meta/recipes-extended/procps/procps_3.2.7.bb
@@ -0,0 +1,64 @@
+require procps.inc
+
+PR = "r8"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "procps.sh"
+INITSCRIPT_PARAMS = "start 30 S ."
+
+SRC_URI += "file://procmodule.patch;patch=1 \
+ file://psmodule.patch;patch=1 \
+ file://linux-limits.patch;patch=1 \
+ file://sysctl.conf \
+ file://procps.init \
+ "
+
+FILES = "${bindir}/top.${PN} ${base_bindir}/ps.${PN} ${bindir}/uptime.${PN} ${base_bindir}/kill.${PN} \
+ ${bindir}/free.${PN} ${bindir}/w ${bindir}/watch ${bindir}/pgrep ${bindir}/pmap ${bindir}/pwdx \
+ ${bindir}/snice ${bindir}/vmstat ${bindir}/slabtop ${bindir}/pkill ${bindir}/skill ${bindir}/tload \
+ ${base_sbindir}/sysctl.${PN}"
+
+CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
+
+EXTRA_OEMAKE = "CFLAGS=-I${STAGING_INCDIR} \
+ CPPFLAGS=-I${STAGING_INCDIR} \
+ LDFLAGS="${LDFLAGS}" \
+ CURSES=-lncurses \
+ install='install -D' \
+ ldconfig=echo"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/procps.init ${D}${sysconfdir}/init.d/procps.sh
+
+ mv ${D}${bindir}/uptime ${D}${bindir}/uptime.${PN}
+ mv ${D}${bindir}/top ${D}${bindir}/top.${PN}
+ mv ${D}${base_bindir}/kill ${D}${base_bindir}/kill.${PN}
+ mv ${D}${base_bindir}/ps ${D}${base_bindir}/ps.${PN}
+ mv ${D}${bindir}/free ${D}${bindir}/free.${PN}
+ mv ${D}${base_sbindir}/sysctl ${D}${base_sbindir}/sysctl.${PN}
+ mv ${D}${bindir}/pkill ${D}${bindir}/pkill.${PN}
+}
+
+pkg_postinst() {
+ update-alternatives --install ${bindir}/top top top.${PN} 90
+ update-alternatives --install ${bindir}/uptime uptime uptime.${PN} 90
+ update-alternatives --install ${base_bindir}/ps ps ps.${PN} 90
+ update-alternatives --install ${base_bindir}/kill kill kill.${PN} 90
+ update-alternatives --install ${bindir}/free free free.${PN} 90
+ update-alternatives --install ${base_sbindir}/sysctl sysctl sysctl.${PN} 90
+ update-alternatives --install ${bindir}/pkill pkill pkill.${PN} 90
+}
+
+pkg_postrm() {
+ update-alternatives --remove top top.${PN}
+ update-alternatives --remove ps ps.${PN}
+ update-alternatives --remove uptime uptime.${PN}
+ update-alternatives --remove kill kill.${PN}
+ update-alternatives --remove free free.${PN}
+ update-alternatives --remove sysctl sysctl.${PN}
+ update-alternatives --remove pkill pkill.${PN}
+}
diff --git a/meta/recipes-extended/quota/quota_3.17.bb b/meta/recipes-extended/quota/quota_3.17.bb
new file mode 100644
index 0000000..495e307
--- /dev/null
+++ b/meta/recipes-extended/quota/quota_3.17.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "display disk usage and limits"
+SECTION = "base"
+HOMEPAGE = "http://sourceforge.net/projects/linuxquota/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=18136&atid=118136"
+LICENSE = "BSD & GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://quota.c;beginline=1;endline=33;md5=331c7d77744bfe0ad24027f0651028ec \
+ file://rquota_server.c;beginline=1;endline=20;md5=91cf52a9aa19e13c2797bd2bf785d7c4 \
+ file://svc_socket.c;beginline=1;endline=17;md5=24d5a8792da45910786eeac750be8ceb"
+PR = "r0"
+
+SRC_URI = "http://downloads.sourceforge.net/project/linuxquota/quota-tools/${PV}/quota-${PV}.tar.gz"
+
+S = ${WORKDIR}/quota-tools
+
+inherit autotools
+
+do_install() {
+ oe_runmake prefix=${D}${prefix} install
+}
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/login_defs_pam.sed b/meta/recipes-extended/shadow/shadow-4.1.4.2/login_defs_pam.sed
new file mode 100644
index 0000000..0a1f3be
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/login_defs_pam.sed
@@ -0,0 +1,32 @@
+/^FAILLOG_ENAB/b comment
+/^LASTLOG_ENAB/b comment
+/^MAIL_CHECK_ENAB/b comment
+/^OBSCURE_CHECKS_ENAB/b comment
+/^PORTTIME_CHECKS_ENAB/b comment
+/^QUOTAS_ENAB/b comment
+/^MOTD_FILE/b comment
+/^FTMP_FILE/b comment
+/^NOLOGINS_FILE/b comment
+/^ENV_HZ/b comment
+/^ENV_TZ/b comment
+/^PASS_MIN_LEN/b comment
+/^SU_WHEEL_ONLY/b comment
+/^CRACKLIB_DICTPATH/b comment
+/^PASS_CHANGE_TRIES/b comment
+/^PASS_ALWAYS_WARN/b comment
+/^PASS_MAX_LEN/b comment
+/^PASS_MIN_LEN/b comment
+/^CHFN_AUTH/b comment
+/^CHSH_AUTH/b comment
+/^ISSUE_FILE/b comment
+/^LOGIN_STRING/b comment
+/^ULIMIT/b comment
+/^ENVIRON_FILE/b comment
+
+b exit
+
+: comment
+ s:^:#:
+
+: exit
+
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chfn b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chfn
new file mode 100644
index 0000000..baf7698
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chfn
@@ -0,0 +1,14 @@
+#
+# The PAM configuration file for the Shadow `chfn' service
+#
+
+# This allows root to change user infomation without being
+# prompted for a password
+auth sufficient pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chpasswd b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chpasswd
new file mode 100644
index 0000000..9e3efa6
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chpasswd
@@ -0,0 +1,4 @@
+# The PAM configuration file for the Shadow 'chpasswd' service
+#
+
+password include common-password
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chsh b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chsh
new file mode 100644
index 0000000..8fb169f
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/chsh
@@ -0,0 +1,19 @@
+#
+# The PAM configuration file for the Shadow `chsh' service
+#
+
+# This will not allow a user to change their shell unless
+# their current one is listed in /etc/shells. This keeps
+# accounts with special shells from changing them.
+auth required pam_shells.so
+
+# This allows root to change user shell without being
+# prompted for a password
+auth sufficient pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/login b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/login
new file mode 100644
index 0000000..e41eb04
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/login
@@ -0,0 +1,91 @@
+#
+# The PAM configuration file for the Shadow `login' service
+#
+
+# Enforce a minimal delay in case of failure (in microseconds).
+# (Replaces the `FAIL_DELAY' setting from login.defs)
+# Note that other modules may require another minimal delay. (for example,
+# to disable any delay, you should add the nodelay option to pam_unix)
+auth optional pam_faildelay.so delay=3000000
+
+# Outputs an issue file prior to each login prompt (Replaces the
+# ISSUE_FILE option from login.defs). Uncomment for use
+# auth required pam_issue.so issue=/etc/issue
+
+# Disallows root logins except on tty's listed in /etc/securetty
+# (Replaces the `CONSOLE' setting from login.defs)
+# Note that it is included as a "requisite" module. No password prompts will
+# be displayed if this module fails to avoid having the root password
+# transmitted on unsecure ttys.
+# You can change it to a "required" module if you think it permits to
+# guess valid user names of your system (invalid user names are considered
+# as possibly being root).
+auth [success=ok ignore=ignore user_unknown=ignore default=die] pam_securetty.so
+
+# Disallows other than root logins when /etc/nologin exists
+# (Replaces the `NOLOGINS_FILE' option from login.defs)
+auth requisite pam_nologin.so
+
+# SELinux needs to be the first session rule. This ensures that any
+# lingering context has been cleared. Without out this it is possible
+# that a module could execute code in the wrong domain.
+# When the module is present, "required" would be sufficient (When SELinux
+# is disabled, this returns success.)
+session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+#
+# parsing /etc/environment needs "readenv=1"
+session required pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session required pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Standard Un*x authentication.
+auth include common-auth
+
+# This allows certain extra groups to be granted to a user
+# based on things like time of day, tty, service, and user.
+# Please edit /etc/security/group.conf to fit your needs
+# (Replaces the `CONSOLE_GROUPS' option in login.defs)
+auth optional pam_group.so
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restrainst on logins.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account requisite pam_time.so
+
+# Uncomment and edit /etc/security/access.conf if you need to
+# set access limits.
+# (Replaces /etc/login.access file)
+# account required pam_access.so
+
+# Sets up user limits according to /etc/security/limits.conf
+# (Replaces the use of /etc/limits in old login)
+session required pam_limits.so
+
+# Prints the last login info upon succesful login
+# (Replaces the `LASTLOG_ENAB' option from login.defs)
+session optional pam_lastlog.so
+
+# Prints the motd upon succesful login
+# (Replaces the `MOTD_FILE' option in login.defs)
+session optional pam_motd.so
+
+# Prints the status of the user's mailbox upon succesful login
+# (Replaces the `MAIL_CHECK_ENAB' option from login.defs).
+#
+# This also defines the MAIL environment variable
+# However, userdel also needs MAIL_DIR and MAIL_FILE variables
+# in /etc/login.defs to make sure that removing a user
+# also removes the user's mail spool file.
+# See comments in /etc/login.defs
+session optional pam_mail.so standard
+
+# Standard Un*x account and session
+account include common-account
+password include common-password
+session include common-session
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/newusers b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/newusers
new file mode 100644
index 0000000..4aa3dde
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/newusers
@@ -0,0 +1,4 @@
+# The PAM configuration file for the Shadow 'newusers' service
+#
+
+password include common-password
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/passwd b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/passwd
new file mode 100644
index 0000000..f534992
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/passwd
@@ -0,0 +1,5 @@
+#
+# The PAM configuration file for the Shadow `passwd' service
+#
+
+password include common-password
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/su b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/su
new file mode 100644
index 0000000..8e35137
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/pam.d/su
@@ -0,0 +1,60 @@
+#
+# The PAM configuration file for the Shadow `su' service
+#
+
+# This allows root to su without passwords (normal operation)
+auth sufficient pam_rootok.so
+
+# Uncomment this to force users to be a member of group root
+# before they can use `su'. You can also add "group=foo"
+# to the end of this line if you want to use a group other
+# than the default "root" (but this may have side effect of
+# denying "root" user, unless she's a member of "foo" or explicitly
+# permitted earlier by e.g. "sufficient pam_rootok.so").
+# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
+# auth required pam_wheel.so
+
+# Uncomment this if you want wheel members to be able to
+# su without a password.
+# auth sufficient pam_wheel.so trust
+
+# Uncomment this if you want members of a specific group to not
+# be allowed to use su at all.
+# auth required pam_wheel.so deny group=nosu
+
+# Uncomment and edit /etc/security/time.conf if you need to set
+# time restrainst on su usage.
+# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs
+# as well as /etc/porttime)
+# account requisite pam_time.so
+
+# This module parses environment configuration file(s)
+# and also allows you to use an extended config
+# file /etc/security/pam_env.conf.
+#
+# parsing /etc/environment needs "readenv=1"
+session required pam_env.so readenv=1
+# locale variables are also kept into /etc/default/locale in etch
+# reading this file *in addition to /etc/environment* does not hurt
+session required pam_env.so readenv=1 envfile=/etc/default/locale
+
+# Defines the MAIL environment variable
+# However, userdel also needs MAIL_DIR and MAIL_FILE variables
+# in /etc/login.defs to make sure that removing a user
+# also removes the user's mail spool file.
+# See comments in /etc/login.defs
+#
+# "nopen" stands to avoid reporting new mail when su'ing to another user
+session optional pam_mail.so nopen
+
+# Sets up user limits, please uncomment and read /etc/security/limits.conf
+# to enable this functionality.
+# (Replaces the use of /etc/limits in old login)
+# session required pam_limits.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth include common-auth
+account include common-account
+session include common-session
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/securetty b/meta/recipes-extended/shadow/shadow-4.1.4.2/securetty
new file mode 100644
index 0000000..28fa0af
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/securetty
@@ -0,0 +1,206 @@
+# /etc/securetty: list of terminals on which root is allowed to login.
+# See securetty(5) and login(1).
+console
+
+# Standard serial ports
+ttyS0
+ttyS1
+ttyS2
+ttyS3
+
+# Samsung ARM SoCs
+ttySAC0
+ttySAC1
+ttySAC2
+ttySAC3
+
+# TI OMAP SoCs
+ttyO0
+ttyO1
+ttyO2
+ttyO3
+
+# USB dongles
+ttyUSB0
+ttyUSB1
+ttyUSB2
+
+# PowerMac
+ttyPZ0
+ttyPZ1
+ttyPZ2
+ttyPZ3
+
+# Embedded MPC platforms
+ttyPSC0
+ttyPSC1
+ttyPSC2
+ttyPSC3
+ttyPSC4
+ttyPSC5
+
+# PA-RISC mux ports
+ttyB0
+ttyB1
+
+# Standard hypervisor virtual console
+hvc0
+
+# Oldstyle Xen console
+xvc0
+
+# Standard consoles
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+tty9
+tty10
+tty11
+tty12
+tty13
+tty14
+tty15
+tty16
+tty17
+tty18
+tty19
+tty20
+tty21
+tty22
+tty23
+tty24
+tty25
+tty26
+tty27
+tty28
+tty29
+tty30
+tty31
+tty32
+tty33
+tty34
+tty35
+tty36
+tty37
+tty38
+tty39
+tty40
+tty41
+tty42
+tty43
+tty44
+tty45
+tty46
+tty47
+tty48
+tty49
+tty50
+tty51
+tty52
+tty53
+tty54
+tty55
+tty56
+tty57
+tty58
+tty59
+tty60
+tty61
+tty62
+tty63
+
+# Local X displays (allows empty passwords with pam_unix's nullok_secure)
+:0
+:0.0
+:0.1
+:1
+:1.0
+:1.1
+:2
+:2.0
+:2.1
+:3
+:3.0
+:3.1
+
+# Embedded Freescale i.MX ports
+ttymxc0
+ttymxc1
+ttymxc2
+ttymxc3
+ttymxc4
+ttymxc5
+
+# Standard serial ports, with devfs
+tts/0
+tts/1
+
+# Standard consoles, with devfs
+vc/1
+vc/2
+vc/3
+vc/4
+vc/5
+vc/6
+vc/7
+vc/8
+vc/9
+vc/10
+vc/11
+vc/12
+vc/13
+vc/14
+vc/15
+vc/16
+vc/17
+vc/18
+vc/19
+vc/20
+vc/21
+vc/22
+vc/23
+vc/24
+vc/25
+vc/26
+vc/27
+vc/28
+vc/29
+vc/30
+vc/31
+vc/32
+vc/33
+vc/34
+vc/35
+vc/36
+vc/37
+vc/38
+vc/39
+vc/40
+vc/41
+vc/42
+vc/43
+vc/44
+vc/45
+vc/46
+vc/47
+vc/48
+vc/49
+vc/50
+vc/51
+vc/52
+vc/53
+vc/54
+vc/55
+vc/56
+vc/57
+vc/58
+vc/59
+vc/60
+vc/61
+vc/62
+vc/63
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.3-dots-in-usernames.patch b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.3-dots-in-usernames.patch
new file mode 100644
index 0000000..7a2ff2e
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.3-dots-in-usernames.patch
@@ -0,0 +1,23 @@
+# commit message copied from openembedded:
+# commit 246c80637b135f3a113d319b163422f98174ee6c
+# Author: Khem Raj <raj.khem@gmail.com>
+# Date: Wed Jun 9 13:37:03 2010 -0700
+#
+# shadow-4.1.4.2: Add patches to support dots in login id.
+#
+# Signed-off-by: Khem Raj <raj.khem@gmail.com>
+#
+# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-08-11
+
+Index: shadow-4.1.4.2/libmisc/chkname.c
+===================================================================
+--- shadow-4.1.4.2.orig/libmisc/chkname.c 2009-04-28 12:14:04.000000000 -0700
++++ shadow-4.1.4.2/libmisc/chkname.c 2010-06-03 17:43:20.638973857 -0700
+@@ -61,6 +61,7 @@ static bool is_valid_name (const char *n
+ ( ('0' <= *name) && ('9' >= *name) ) ||
+ ('_' == *name) ||
+ ('-' == *name) ||
++ ('.' == *name) ||
+ ( ('$' == *name) && ('\0' == *(name + 1)) )
+ )) {
+ return false;
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-env-reset-keep-locale.patch b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-env-reset-keep-locale.patch
new file mode 100644
index 0000000..124065c
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-env-reset-keep-locale.patch
@@ -0,0 +1,27 @@
+# commit message copied from openembedded:
+# commit 246c80637b135f3a113d319b163422f98174ee6c
+# Author: Khem Raj <raj.khem@gmail.com>
+# Date: Wed Jun 9 13:37:03 2010 -0700
+#
+# shadow-4.1.4.2: Add patches to support dots in login id.
+#
+# Signed-off-by: Khem Raj <raj.khem@gmail.com>
+#
+# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-08-11
+
+http://bugs.gentoo.org/283725
+https://alioth.debian.org/tracker/index.php?func=detail&aid=311740&group_id=30580&atid=411480
+
+Index: shadow-4.1.4.2/libmisc/env.c
+===================================================================
+--- shadow-4.1.4.2.orig/libmisc/env.c 2009-04-27 13:07:56.000000000 -0700
++++ shadow-4.1.4.2/libmisc/env.c 2010-06-03 17:44:51.456408474 -0700
+@@ -251,7 +251,7 @@ void sanitize_env (void)
+ if (strncmp (*cur, *bad, strlen (*bad)) != 0) {
+ continue;
+ }
+- if (strchr (*cur, '/') != NULL) {
++ if (strchr (*cur, '/') == NULL) {
+ continue; /* OK */
+ }
+ for (move = cur; NULL != *move; move++) {
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-groupmod-pam-check.patch b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-groupmod-pam-check.patch
new file mode 100644
index 0000000..6682fe8
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-groupmod-pam-check.patch
@@ -0,0 +1,32 @@
+# commit message copied from openembedded:
+# commit 246c80637b135f3a113d319b163422f98174ee6c
+# Author: Khem Raj <raj.khem@gmail.com>
+# Date: Wed Jun 9 13:37:03 2010 -0700
+#
+# shadow-4.1.4.2: Add patches to support dots in login id.
+#
+# Signed-off-by: Khem Raj <raj.khem@gmail.com>
+#
+# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-08-11
+
+http://bugs.gentoo.org/300790
+http://lists.alioth.debian.org/pipermail/pkg-shadow-devel/2009-November/007850.html
+
+2009-11-05 Nicolas François <nicolas.francois@centraliens.net>
+
+ * NEWS, src/groupmod.c: Fixed groupmod when configured with
+ --enable-account-tools-setuid.
+
+Index: shadow-4.1.4.2/src/groupmod.c
+===================================================================
+--- shadow-4.1.4.2.orig/src/groupmod.c 2009-06-05 15:16:58.000000000 -0700
++++ shadow-4.1.4.2/src/groupmod.c 2010-06-03 17:45:43.828952613 -0700
+@@ -720,7 +720,7 @@ int main (int argc, char **argv)
+ {
+ struct passwd *pampw;
+ pampw = getpwuid (getuid ()); /* local, no need for xgetpwuid */
+- if (NULL == pamh) {
++ if (NULL == pampw) {
+ fprintf (stderr,
+ _("%s: Cannot determine your user name.\n"),
+ Prog);
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-su_no_sanitize_env.patch b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-su_no_sanitize_env.patch
new file mode 100644
index 0000000..f67251c
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow-4.1.4.2-su_no_sanitize_env.patch
@@ -0,0 +1,27 @@
+# commit message copied from openembedded:
+# commit 246c80637b135f3a113d319b163422f98174ee6c
+# Author: Khem Raj <raj.khem@gmail.com>
+# Date: Wed Jun 9 13:37:03 2010 -0700
+#
+# shadow-4.1.4.2: Add patches to support dots in login id.
+#
+# Signed-off-by: Khem Raj <raj.khem@gmail.com>
+#
+# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-08-11
+
+http://bugs.gentoo.org/show_bug.cgi?id=301957
+https://alioth.debian.org/scm/browser.php?group_id=30580
+
+Index: shadow-4.1.4.2/src/su.c
+===================================================================
+--- shadow-4.1.4.2.orig/src/su.c 2009-07-23 13:38:56.000000000 -0700
++++ shadow-4.1.4.2/src/su.c 2010-06-03 17:46:47.718944010 -0700
+@@ -378,7 +378,7 @@ int main (int argc, char **argv)
+ #endif
+ #endif /* !USE_PAM */
+
+- sanitize_env ();
++ /* sanitize_env (); */
+
+ (void) setlocale (LC_ALL, "");
+ (void) bindtextdomain (PACKAGE, LOCALEDIR);
diff --git a/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow.automake-1.11.patch b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow.automake-1.11.patch
new file mode 100644
index 0000000..36d7be6
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow-4.1.4.2/shadow.automake-1.11.patch
@@ -0,0 +1,102 @@
+# patch is from openembedded:
+# commit 2db61370333f7a2fc1dbb86385734883387e0217
+# Author: Martin Jansa <Martin.Jansa@gmail.com>
+# Date: Fri Apr 2 07:34:46 2010 +0200
+#
+# shadow: fix do_install with automake-1.11
+#
+# Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+#
+# comment added by Kevin Tian <kevin.tian@intel.com>
+
+man_nopan is for !USE_PAM already included in man_MANS and automake-1.11 hates to install some file twice
+
+diff -uNr shadow-4.1.4.2.orig/man/Makefile.am shadow-4.1.4.2/man/Makefile.am
+--- shadow-4.1.4.2.orig/man/Makefile.am 2009-03-14 15:40:10.000000000 +0100
++++ shadow-4.1.4.2/man/Makefile.am 2010-04-02 07:31:17.000000000 +0200
+@@ -163,7 +163,6 @@
+ $(man_MANS) \
+ $(man_XMANS) \
+ $(addprefix login.defs.d/,$(login_defs_v)) \
+- $(man_nopam) \
+ id.1 \
+ id.1.xml \
+ sulogin.8 \
+diff -uNr shadow-4.1.4.2.orig/man/fr/Makefile.am shadow-4.1.4.2/man/fr/Makefile.am
+--- shadow-4.1.4.2.orig/man/fr/Makefile.am 2008-09-06 18:44:45.000000000 +0200
++++ shadow-4.1.4.2/man/fr/Makefile.am 2010-04-02 07:42:11.000000000 +0200
+@@ -52,7 +52,6 @@
+
+ EXTRA_DIST = \
+ $(man_MANS) \
+- $(man_nopam) \
+ id.1
+
+ include ../generate_translations.mak
+diff -uNr shadow-4.1.4.2.orig/man/it/Makefile.am shadow-4.1.4.2/man/it/Makefile.am
+--- shadow-4.1.4.2.orig/man/it/Makefile.am 2008-09-06 18:44:45.000000000 +0200
++++ shadow-4.1.4.2/man/it/Makefile.am 2010-04-02 07:42:20.000000000 +0200
+@@ -46,7 +46,6 @@
+
+ EXTRA_DIST = \
+ $(man_MANS) \
+- $(man_nopam) \
+ id.1 \
+ logoutd.8
+
+diff -uNr shadow-4.1.4.2.orig/man/ja/Makefile.am shadow-4.1.4.2/man/ja/Makefile.am
+--- shadow-4.1.4.2.orig/man/ja/Makefile.am 2007-12-31 17:48:28.000000000 +0100
++++ shadow-4.1.4.2/man/ja/Makefile.am 2010-04-02 07:42:17.000000000 +0200
+@@ -49,7 +49,6 @@
+
+ EXTRA_DIST = \
+ $(man_MANS) \
+- $(man_nopam) \
+ id.1 \
+ shadow.3 \
+ sulogin.8
+diff -uNr shadow-4.1.4.2.orig/man/pl/Makefile.am shadow-4.1.4.2/man/pl/Makefile.am
+--- shadow-4.1.4.2.orig/man/pl/Makefile.am 2008-09-06 18:44:45.000000000 +0200
++++ shadow-4.1.4.2/man/pl/Makefile.am 2010-04-02 07:42:07.000000000 +0200
+@@ -49,7 +49,6 @@
+
+ EXTRA_DIST = \
+ $(man_MANS) \
+- $(man_nopam) \
+ getspnam.3 \
+ id.1 \
+ shadow.3 \
+diff -uNr shadow-4.1.4.2.orig/man/ru/Makefile.am shadow-4.1.4.2/man/ru/Makefile.am
+--- shadow-4.1.4.2.orig/man/ru/Makefile.am 2010-04-02 07:39:00.000000000 +0200
++++ shadow-4.1.4.2/man/ru/Makefile.am 2010-04-02 07:42:01.000000000 +0200
+@@ -54,7 +54,6 @@
+
+ EXTRA_DIST = \
+ $(man_MANS) \
+- $(man_nopam) \
+ id.1 \
+ sulogin.8
+
+diff -uNr shadow-4.1.4.2.orig/man/sv/Makefile.am shadow-4.1.4.2/man/sv/Makefile.am
+--- shadow-4.1.4.2.orig/man/sv/Makefile.am 2008-09-06 18:44:45.000000000 +0200
++++ shadow-4.1.4.2/man/sv/Makefile.am 2010-04-02 07:42:24.000000000 +0200
+@@ -53,8 +53,7 @@
+ endif
+
+ EXTRA_DIST = \
+- $(man_MANS) \
+- $(man_nopam)
++ $(man_MANS)
+
+ include ../generate_translations.mak
+
+--- shadow-4.1.4.2.orig/man/ru/Makefile.am 2010-04-02 07:54:09.000000000 +0200
++++ shadow-4.1.4.2/man/ru/Makefile.am 2010-04-02 07:51:57.000000000 +0200
+@@ -1,7 +1,6 @@
+ mandir = @mandir@/ru
+
+ man_MANS = \
+- $(man_nopam) \
+ chage.1 \
+ chfn.1 \
+ chgpasswd.8 \
diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
new file mode 100644
index 0000000..fcbcb3e
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow.inc
@@ -0,0 +1,121 @@
+DESCRIPTION = "Tools to change and administer password and group data."
+HOMEPAGE = "http://pkg-shadow.alioth.debian.org/"
+BUGTRACKER = "https://alioth.debian.org/tracker/?group_id=30580"
+SECTION = "base utils"
+LICENSE = "BSD | Artistic"
+LIC_FILES_CHKSUM = "file://COPYING;md5=08c553a87d4e51bbed50b20e0adcaede \
+ file://src/passwd.c;firstline=8;endline=30;md5=2899a045e90511d0e043b85a7db7e2fe"
+
+PAM_PLUGINS = " libpam-runtime \
+ pam-plugin-faildelay \
+ pam-plugin-securetty \
+ pam-plugin-nologin \
+ pam-plugin-env \
+ pam-plugin-group \
+ pam-plugin-limits \
+ pam-plugin-lastlog \
+ pam-plugin-motd \
+ pam-plugin-mail \
+ pam-plugin-shells \
+ pam-plugin-rootok"
+
+DEPENDS = "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+RDEPENDS = "${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_PLUGINS}', '', d)}"
+
+# since we deduce from ${SERIAL_CONSOLE}
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+# Additional Policy files for PAM
+PAM_SRC_URI = "file://pam.d/chfn \
+ file://pam.d/chpasswd \
+ file://pam.d/chsh \
+ file://pam.d/login \
+ file://pam.d/newusers \
+ file://pam.d/passwd \
+ file://pam.d/su"
+
+SRC_URI = "ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.bz2 \
+ file://login_defs_pam.sed \
+ ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
+ file://securetty"
+
+inherit autotools gettext
+
+EXTRA_OECONF += "--without-audit \
+ --without-libcrack \
+ ${@base_contains('DISTRO_FEATURES', 'pam', '--with-libpam', '--without-libpam', d)} \
+ --without-selinux"
+
+do_install_append() {
+ # Ensure that the image has as /var/spool/mail dir so shadow can put mailboxes there if the user
+ # reconfigures Shadow to default (see sed below).
+ install -d ${D}${localstatedir}/spool/mail
+
+ if [ -e ${WORKDIR}/pam.d ]; then
+ install -d ${D}${sysconfdir}/pam.d/
+ install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
+ # Remove defaults that are not used when supporting PAM
+ sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs
+ fi
+
+ # Enable CREATE_HOME by default.
+ sed -i 's/#CREATE_HOME/CREATE_HOME/g' ${D}${sysconfdir}/login.defs
+
+ # As we are on an embedded system ensure the users mailbox is in ~/ not
+ # /var/spool/mail by default as who knows where or how big /var is.
+ # The system MDA will set this later anyway.
+ sed -i 's/MAIL_DIR/#MAIL_DIR/g' ${D}${sysconfdir}/login.defs
+ sed -i 's/#MAIL_FILE/MAIL_FILE/g' ${D}${sysconfdir}/login.defs
+
+ # disable checking emails at all
+ sed -i 's/MAIL_CHECK_ENAB/#MAIL_CHECK_ENAB/g' ${D}${sysconfdir}/login.defs
+
+ # now we don't have a mail system. disable mail creation for now
+ sed -i 's:/bin/bash:/bin/sh:g' ${D}${sysconfdir}/default/useradd
+ sed -i '/^CREATE_MAIL_SPOOL/ s:^:#:' ${D}${sysconfdir}/default/useradd
+
+ install -d ${D}${sbindir} ${D}${base_sbindir} ${D}${base_bindir}
+ for i in passwd chfn newgrp chsh ; do
+ mv ${D}${bindir}/$i ${D}${bindir}/$i.${PN}
+ done
+
+ mv ${D}${sbindir}/chpasswd ${D}${sbindir}/chpasswd.${PN}
+ mv ${D}${sbindir}/vigr ${D}${base_sbindir}/vigr.${PN}
+ mv ${D}${sbindir}/vipw ${D}${base_sbindir}/vipw.${PN}
+ mv ${D}${bindir}/login ${D}${base_bindir}/login.${PN}
+
+ # Ensure we add a suitable securetty file to the package that has most common embedded TTYs defined.
+ if [ ! -z "${SERIAL_CONSOLE}" ]; then
+ # our SERIAL_CONSOLE contains baud rate too and sometime -L option as well.
+ # the following pearl :) takes that and converts it into newline sepated tty's and appends
+ # them into securetty. So if a machine has a weird looking console device node (e.g. ttyAMA0) that securetty
+ # does not know then it will get appended to securetty and root login will be allowed on
+ # that console.
+ echo "${SERIAL_CONSOLE}" | sed -e 's/[0-9][0-9]\|\-L//g'|tr "[ ]" "[\n]" >> ${WORKDIR}/securetty
+ fi
+ install -m 0400 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty
+}
+
+pkg_postinst_${PN} () {
+ update-alternatives --install ${bindir}/passwd passwd passwd.${PN} 200
+ update-alternatives --install ${sbindir}/chpasswd chpasswd chpasswd.${PN} 200
+ update-alternatives --install ${bindir}/chfn chfn chfn.${PN} 200
+ update-alternatives --install ${bindir}/newgrp newgrp newgrp.${PN} 200
+ update-alternatives --install ${bindir}/chsh chsh chsh.${PN} 200
+ update-alternatives --install ${base_bindir}/login login login.${PN} 200
+ update-alternatives --install ${base_sbindir}/vipw vipw vipw.${PN} 200
+ update-alternatives --install ${base_sbindir}/vigr vigr vigr.${PN} 200
+
+ if [ "x$D" != "x" ]; then
+ exit 1
+ fi
+
+ pwconv
+ grpconv
+}
+
+pkg_prerm_${PN} () {
+ for i in passwd chpasswd chfn newgrp chsh login vipw vigr ; do
+ update-alternatives --remove $i $i.${PN}
+ done
+}
diff --git a/meta/recipes-extended/shadow/shadow_4.1.4.2.bb b/meta/recipes-extended/shadow/shadow_4.1.4.2.bb
new file mode 100644
index 0000000..bc00c09
--- /dev/null
+++ b/meta/recipes-extended/shadow/shadow_4.1.4.2.bb
@@ -0,0 +1,11 @@
+require shadow.inc
+
+PR = "r0"
+
+SRC_URI += "file://shadow.automake-1.11.patch \
+ file://shadow-4.1.3-dots-in-usernames.patch \
+ file://shadow-4.1.4.2-env-reset-keep-locale.patch \
+ file://shadow-4.1.4.2-groupmod-pam-check.patch \
+ file://shadow-4.1.4.2-su_no_sanitize_env.patch"
+
+EXTRA_OECONF_libc-uclibc += " --with-nscd=no "
diff --git a/meta/recipes-extended/sysstat/files/99_sysstat b/meta/recipes-extended/sysstat/files/99_sysstat
new file mode 100644
index 0000000..0b0ec30
--- /dev/null
+++ b/meta/recipes-extended/sysstat/files/99_sysstat
@@ -0,0 +1 @@
+d root root 0755 /var/log/sa none
diff --git a/meta/recipes-extended/sysstat/sysstat.inc b/meta/recipes-extended/sysstat/sysstat.inc
new file mode 100644
index 0000000..564bc7d
--- /dev/null
+++ b/meta/recipes-extended/sysstat/sysstat.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "The sysstat utilities are a collection of performance monitoring tools for Linux."
+HOMEPAGE = "http://sebastien.godard.pagesperso-orange.fr/"
+LICENSE = "GPLv2+"
+SECTION = "console/utils"
+
+DEPENDS = "virtual/libintl"
+
+SRC_URI = "http://pagesperso-orange.fr/sebastien.godard/sysstat-${PV}.tar.gz \
+ file://99_sysstat"
+
+inherit autotools
+
+do_install() {
+ autotools_do_install
+
+ # don't install /var/log/sa when populating rootfs. Do it through volatile
+
+ rm -rf ${D}/var
+ install -d ${D}/etc/default/volatiles
+ install -m 0644 ${WORKDIR}/99_sysstat ${D}/etc/default/volatiles
+}
+
+pkg_postinst_${PN} () {
+ /etc/init.d/populate-volatile.sh update
+}
+
+
+FILES_${PN} += "${libdir}/sa"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+LDFLAGS_append_linux-uclibc = " -lintl"
+LDFLAGS_append_linux-uclibceabi = " -lintl"
+LDFLAGS_append_linux-uclibcspe = " -lintl"
diff --git a/meta/recipes-extended/sysstat/sysstat_9.1.4.bb b/meta/recipes-extended/sysstat/sysstat_9.1.4.bb
new file mode 100644
index 0000000..d7b7e66
--- /dev/null
+++ b/meta/recipes-extended/sysstat/sysstat_9.1.4.bb
@@ -0,0 +1,7 @@
+require sysstat.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+PR = "r0"
+
+
diff --git a/meta/recipes-extended/tar/tar-1.17/gcc43build.patch b/meta/recipes-extended/tar/tar-1.17/gcc43build.patch
new file mode 100644
index 0000000..cc5f0e1
--- /dev/null
+++ b/meta/recipes-extended/tar/tar-1.17/gcc43build.patch
@@ -0,0 +1,35 @@
+# Fix errors when built with gcc 4.3
+# Patch taken from Debian bug #452096
+
+diff -urN tar-1.17.orig/lib/argp-fmtstream.h tar-1.17/lib/argp-fmtstream.h
+--- tar-1.17.orig/lib/argp-fmtstream.h 2006-01-11 12:24:05.000000000 -0800
++++ tar-1.17/lib/argp-fmtstream.h 2010-07-22 22:36:12.000000000 -0700
+@@ -198,7 +198,11 @@
+ #endif
+
+ #ifndef ARGP_FS_EI
+-#define ARGP_FS_EI extern inline
++ #if defined __GNUC_STDC_INLINE__
++ #define ARGP_FS_EI extern inline __attribute__((__gnu_inline__))
++ #else
++ #define ARGP_FS_EI extern inline
++ #endif
+ #endif
+
+ ARGP_FS_EI size_t
+diff -urN tar-1.17.orig/lib/argp.h tar-1.17/lib/argp.h
+--- tar-1.17.orig/lib/argp.h 2007-03-30 00:09:11.000000000 -0700
++++ tar-1.17/lib/argp.h 2010-07-22 22:38:44.000000000 -0700
+@@ -580,7 +580,11 @@
+ # endif
+
+ # ifndef ARGP_EI
+-# define ARGP_EI extern __inline__
++# if defined __GNUC_STDC_INLINE__
++# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__))
++# else
++# define ARGP_EI extern __inline__
++# endif
+ # endif
+
+ ARGP_EI void
diff --git a/meta/recipes-extended/tar/tar-1.17/m4extensions.patch b/meta/recipes-extended/tar/tar-1.17/m4extensions.patch
new file mode 100644
index 0000000..11b981a
--- /dev/null
+++ b/meta/recipes-extended/tar/tar-1.17/m4extensions.patch
@@ -0,0 +1,28 @@
+# Define AC_USE_SYSTEM_EXTENSIONS only if it was previously undefined.
+# This is needed to configure correctly with newer versions of autoconf.
+
+--- tar-1.17/m4/extensions.m4.orig 2010-07-22 22:21:35.000000000 -0700
++++ tar-1.17/m4/extensions.m4 2010-07-22 22:23:41.000000000 -0700
+@@ -1,4 +1,4 @@
+-# serial 4 -*- Autoconf -*-
++# serial 5 -*- Autoconf -*-
+ # Enable extensions on systems that normally disable them.
+
+ # Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+@@ -16,6 +16,7 @@
+ # ------------------------
+ # Enable extensions on systems that normally disable them,
+ # typically due to standards-conformance issues.
++m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [], [
+ AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
+ [
+ AC_BEFORE([$0], [AC_COMPILE_IFELSE])
+@@ -48,7 +49,7 @@
+ AC_DEFINE([__EXTENSIONS__])
+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+ AC_DEFINE([_TANDEM_SOURCE])
+-])
++])])
+
+ # gl_USE_SYSTEM_EXTENSIONS
+ # ------------------------
diff --git a/meta/recipes-extended/tar/tar.inc b/meta/recipes-extended/tar/tar.inc
new file mode 100644
index 0000000..cf72d48
--- /dev/null
+++ b/meta/recipes-extended/tar/tar.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "GNU tar saves many files together into a single tape \
+or disk archive, and can restore individual files from the archive."
+HOMEPAGE = "http://www.gnu.org/software/tar/"
+SECTION = "base"
+
+SRC_URI = "${GNU_MIRROR}/tar/tar-${PV}.tar.bz2"
+
+inherit autotools gettext
+
+do_install () {
+ autotools_do_install
+ install -d ${D}${base_bindir}
+ mv ${D}${bindir}/tar ${D}${base_bindir}/tar.${PN}
+ mv ${D}${libexecdir}/rmt ${D}${libexecdir}/rmt.${PN}
+}
+
+pkg_postinst_${PN} () {
+ update-alternatives --install ${base_bindir}/tar tar tar.${PN} 100
+ update-alternatives --install ${libexecdir}/rmt rmt rmt.${PN} 100
+}
+
+pkg_prerm_${PN} () {
+ update-alternatives --remove tar tar.${PN}
+ update-alternatives --remove rmt rmt.${PN}
+}
diff --git a/meta/recipes-extended/tar/tar_1.17.bb b/meta/recipes-extended/tar/tar_1.17.bb
new file mode 100644
index 0000000..be74542
--- /dev/null
+++ b/meta/recipes-extended/tar/tar_1.17.bb
@@ -0,0 +1,13 @@
+require tar.inc
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+PR = "r0"
+
+SRC_URI += "file://m4extensions.patch \
+ file://gcc43build.patch \
+ "
+
+SRC_URI[md5sum] = "c6c4f1c075dbf0f75c29737faa58f290"
+SRC_URI[sha256sum] = "19f9021dda51a16295e4706e80870e71f87107675e51c176a491eba0fc4ca492"
diff --git a/meta/recipes-extended/tar/tar_1.23.bb b/meta/recipes-extended/tar/tar_1.23.bb
new file mode 100644
index 0000000..093c0b4
--- /dev/null
+++ b/meta/recipes-extended/tar/tar_1.23.bb
@@ -0,0 +1,9 @@
+require tar.inc
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "41e2ca4b924ec7860e51b43ad06cdb7e"
+SRC_URI[sha256sum] = "c9328372db62fbb1d94c9e4e3cefc961111af46de47085b635359c00a0eebe36"
diff --git a/meta/recipes-extended/tasks/task-poky-basic.bb b/meta/recipes-extended/tasks/task-poky-basic.bb
new file mode 100644
index 0000000..bbd4205
--- /dev/null
+++ b/meta/recipes-extended/tasks/task-poky-basic.bb
@@ -0,0 +1,156 @@
+#
+# Copyright (C) 2010 Intel Corporation
+#
+
+DESCRIPTION = "Create Basic Image Tasks"
+PR = "r1"
+
+PACKAGES = "\
+ task-poky-basic \
+ task-poky-base-utils \
+ task-poky-base-utils-dbg \
+ task-poky-base-utils-dev \
+ task-poky-basic-libs \
+ task-poky-basic-libs-dbg \
+ task-poky-basic-libs-dev \
+ task-poky-basic-utils \
+ task-poky-basic-utils-dbg \
+ task-poky-basic-utils-dev \
+ task-poky-basic-extended \
+ task-poky-basic-extended-dbg \
+ task-poky-basic-extended-dev \
+ task-poky-dev-utils \
+ task-poky-dev-utils-dbg \
+ task-poky-dev-utils-dev \
+ task-poky-multiuser \
+ task-poky-multiuser-dbg \
+ task-poky-multiuser-dev \
+ task-poky-initscripts \
+ task-poky-initscripts-dbg \
+ task-poky-initscripts-dev \
+ task-poky-rpm \
+ task-poky-rpm-dbg \
+ task-poky-rpm-dev \
+ task-poky-sys-services \
+ task-poky-sys-services-dbg \
+ task-poky-sys-services-dev \
+ "
+
+ALLOW_EMPTY = "1"
+
+RDEPENDS_task-poky-basic = "\
+ task-poky-base-utils \
+ task-poky-basic-libs \
+ task-poky-basic-utils \
+ task-poky-basic-extended \
+ task-poky-dev-utils \
+ task-poky-multiuser \
+ task-poky-initscripts \
+ task-poky-rpm \
+ task-poky-sys-services \
+ "
+
+RDEPENDS_task-poky-base-utils = "\
+ busybox \
+ dropbear \
+ "
+
+RDEPENDS_task-poky-basic-libs = "\
+ glib-2.0 \
+ "
+
+RDEPENDS_task-poky-basic-utils = "\
+ bash \
+ acl \
+ attr \
+ bc \
+ coreutils \
+ cpio \
+ e2fsprogs \
+ ed \
+ file \
+ findutils \
+ gawk \
+ gmp \
+ grep \
+ makedevs \
+ mktemp \
+ ncurses \
+ net-tools \
+ pax \
+ popt \
+ procps \
+ psmisc \
+ sed \
+ tar \
+ time \
+ udev \
+ util-linux \
+ zlib \
+ "
+
+RDEPENDS_task-poky-basic-extended = "\
+ iproute2 \
+ iputils \
+ iptables \
+ module-init-tools \
+# openssh \
+ openssl \
+ "
+
+RDEPENDS_task-poky-dev-utils = "\
+ byacc \
+ diffutils \
+ m4 \
+ make \
+ patch \
+ binutils \
+ "
+
+RDEPENDS_task-poky-initscripts = "\
+ initscripts \
+ sysvinit \
+ ethtool \
+# mingetty \
+# sysklogd \
+ "
+
+RDEPENDS_task-poky-multiuser = "\
+ cracklib \
+ gzip \
+ libuser \
+ libpam \
+ shadow \
+ sudo \
+ "
+
+RDEPENDS_task-poky-rpm = "\
+ beecrypt \
+ rpm \
+ "
+
+RDEPENDS_task-poky-sys-services = "\
+# at \
+ bzip2 \
+# cronie \
+# crontabs \
+ dbus \
+ dbus-glib \
+ python-dbus \
+ elfutils \
+ gzip \
+ hal \
+ less \
+ libcap \
+ libevent \
+# logrotate \
+ nfs-utils \
+ pciutils \
+ libpcre \
+ portmap \
+# rpcbind \
+ sysfsutils \
+ tcp-wrappers \
+ tzdata \
+ "
+
diff --git a/meta/recipes-extended/tasks/task-poky-lsb.bb b/meta/recipes-extended/tasks/task-poky-lsb.bb
new file mode 100644
index 0000000..4718f3b
--- /dev/null
+++ b/meta/recipes-extended/tasks/task-poky-lsb.bb
@@ -0,0 +1,103 @@
+#
+# Copyright (C) 2010 Intel Corporation
+#
+
+DESCRIPTION = "Create Small Image Tasks"
+PR = "r1"
+
+PACKAGES = "\
+ task-poky-lsb \
+ task-poky-sys-extended \
+ task-poky-sys-extended-dbg \
+ task-poky-sys-extended-dev \
+ task-poky-db \
+ task-poky-db-dbg \
+ task-poky-db-dev \
+ task-poky-misc \
+ task-poky-misc-dbg \
+ task-poky-misc-dev \
+ task-poky-perl \
+ task-poky-perl-dbg \
+ task-poky-perl-dev \
+ task-poky-python \
+ task-poky-python-dbg \
+ task-poky-python-dev \
+ task-poky-tcl \
+ task-poky-tcl-dbg \
+ task-poky-tcl-dev \
+ "
+
+ALLOW_EMPTY = "1"
+
+RDEPENDS_task-poky-lsb = "\
+ task-poky-sys-extended \
+ task-poky-db \
+ task-poky-misc \
+ task-poky-perl \
+ task-poky-python \
+ task-poky-tcl \
+ "
+
+#
+# GPLv2 Should List
+RDEPENDS_task-poky-sys-extended = "\
+ curl \
+ diffutils \
+ gamin \
+ hdparm \
+# libaio \
+ libxml2 \
+ lrzsz \
+ lzo \
+# mdadm \
+ minicom \
+ neon \
+ parted \
+ pth \
+ quota \
+# screen \
+ setserial \
+ sysstat \
+ unzip \
+# watchdog \
+ which \
+ zip \
+ "
+
+RDEPENDS_task-poky-db = "\
+ db \
+ sqlite3 \
+ "
+
+RDEPENDS_task-poky-perl = "\
+ gdbm \
+ perl \
+ zlib \
+ "
+
+
+RDEPENDS_task-poky-python = "\
+ expat \
+ gdbm \
+ gmp \
+ ncurses \
+ openssl \
+ python \
+ readline \
+ zip \
+ "
+
+RDEPENDS_task-poky-tcl = "\
+ tcl \
+ "
+
+RDEPENDS_task-poky-misc = "\
+ elfutils \
+ gettext \
+ lsof \
+ ncurses \
+ strace \
+ libusb1 \
+ usbutils \
+ zlib \
+ "
diff --git a/meta/recipes-extended/time/files/debian.patch b/meta/recipes-extended/time/files/debian.patch
new file mode 100644
index 0000000..40df19d
--- /dev/null
+++ b/meta/recipes-extended/time/files/debian.patch
@@ -0,0 +1,1299 @@
+--- time-1.7.orig/configure.in
++++ time-1.7/configure.in
+@@ -1,11 +1,8 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(time.c)
+-VERSION=1.7
+-AC_SUBST(VERSION)
+-PACKAGE=time
+-AC_SUBST(PACKAGE)
++AM_INIT_AUTOMAKE(time, 1.7)
+
+-AC_ARG_PROGRAM
++AM_MAINTAINER_MODE
+
+ dnl Checks for programs.
+ AC_PROG_CC
+@@ -15,7 +12,7 @@
+ dnl Checks for header files.
+ AC_HEADER_STDC
+ AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS(unistd.h string.h sys/rusage.h)
++AC_CHECK_HEADERS(unistd.h string.h sys/rusage.h sys/resource.h)
+
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+--- time-1.7.orig/version.texi
++++ time-1.7/version.texi
+@@ -1,3 +1,3 @@
+-@set UPDATED 12 June 1996
++@set UPDATED 9 May 2002
+ @set EDITION 1.7
+ @set VERSION 1.7
+--- time-1.7.orig/time.c
++++ time-1.7/time.c
+@@ -147,6 +147,10 @@
+ NULL
+ };
+
++
++/* If true, do not show the exit message */
++static boolean quiet;
++
+ /* If true, show an English description next to each statistic. */
+ static boolean verbose;
+
+@@ -172,6 +176,7 @@
+ {"help", no_argument, NULL, 'h'},
+ {"output-file", required_argument, NULL, 'o'},
+ {"portability", no_argument, NULL, 'p'},
++ {"quiet", no_argument,NULL, 'q'},
+ {"verbose", no_argument, NULL, 'v'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, no_argument, NULL, 0}
+@@ -333,7 +338,8 @@
+ else if (WIFSIGNALED (resp->waitstatus))
+ fprintf (fp, "Command terminated by signal %d\n",
+ WTERMSIG (resp->waitstatus));
+- else if (WIFEXITED (resp->waitstatus) && WEXITSTATUS (resp->waitstatus))
++ else if (WIFEXITED (resp->waitstatus) && WEXITSTATUS (resp->waitstatus)
++ && !quiet)
+ fprintf (fp, "Command exited with non-zero status %d\n",
+ WEXITSTATUS (resp->waitstatus));
+
+@@ -523,6 +529,7 @@
+ char *format; /* Format found in environment. */
+
+ /* Initialize the option flags. */
++ quiet = false;
+ verbose = false;
+ outfile = NULL;
+ outfp = stderr;
+@@ -536,7 +543,7 @@
+ if (format)
+ output_format = format;
+
+- while ((optc = getopt_long (argc, argv, "+af:o:pvV", longopts, (int *) 0))
++ while ((optc = getopt_long (argc, argv, "+af:o:pqvV", longopts, (int *) 0))
+ != EOF)
+ {
+ switch (optc)
+@@ -555,6 +562,9 @@
+ case 'p':
+ output_format = posix_format;
+ break;
++ case 'q':
++ quiet = true;
++ break;
+ case 'v':
+ verbose = true;
+ break;
+@@ -642,9 +652,9 @@
+ fflush (outfp);
+
+ if (WIFSTOPPED (res.waitstatus))
+- exit (WSTOPSIG (res.waitstatus));
++ exit (WSTOPSIG (res.waitstatus) + 128);
+ else if (WIFSIGNALED (res.waitstatus))
+- exit (WTERMSIG (res.waitstatus));
++ exit (WTERMSIG (res.waitstatus) + 128);
+ else if (WIFEXITED (res.waitstatus))
+ exit (WEXITSTATUS (res.waitstatus));
+ }
+@@ -657,7 +667,7 @@
+ fprintf (stream, "\
+ Usage: %s [-apvV] [-f format] [-o file] [--append] [--verbose]\n\
+ [--portability] [--format=format] [--output=file] [--version]\n\
+- [--help] command [arg...]\n",
++ [--quiet] [--help] command [arg...]\n",
+ program_name);
+ exit (status);
+ }
+--- time-1.7.orig/resuse.h
++++ time-1.7/resuse.h
+@@ -36,19 +36,8 @@
+ # include <sys/rusage.h>
+ #else
+ # define TV_MSEC tv_usec / 1000
+-# if HAVE_WAIT3
++# if HAVE_SYS_RESOURCE_H
+ # include <sys/resource.h>
+-# else
+-/* Process resource usage structure. */
+-struct rusage
+-{
+- struct timeval ru_utime; /* User time used. */
+- struct timeval ru_stime; /* System time used. */
+- int ru_maxrss, ru_ixrss, ru_idrss, ru_isrss,
+- ru_minflt, ru_majflt, ru_nswap, ru_inblock,
+- ru_oublock, ru_msgsnd, ru_msgrcv, ru_nsignals,
+- ru_nvcsw, ru_nivcsw;
+-};
+ # endif
+ #endif
+
+--- time-1.7.orig/time.texi
++++ time-1.7/time.texi
+@@ -11,6 +11,12 @@
+ @finalout
+ @end iftex
+
++@dircategory Individual utilities
++@direntry
++* time: (time). Run programs and summarize
++ system resource usage.
++@end direntry
++
+ @ifinfo
+ This file documents the the GNU @code{time} command for running programs
+ and summarizing the system resources they use.
+@@ -185,6 +191,10 @@
+ sys %S
+ @end example
+
++@item -q
++@itemx --quiet
++Suppress non-zero error code from the executed program.
++
+ @item -v
+ @itemx --verbose
+ @cindex format
+--- time-1.7.orig/time.info
++++ time-1.7/time.info
+@@ -1,5 +1,10 @@
+-This is Info file ./time.info, produced by Makeinfo-1.55 from the input
+-file time.texi.
++This is time.info, produced by makeinfo version 4.1 from time.texi.
++
++INFO-DIR-SECTION Individual utilities
++START-INFO-DIR-ENTRY
++* time: (time). Run programs and summarize
++ system resource usage.
++END-INFO-DIR-ENTRY
+
+ This file documents the the GNU `time' command for running programs
+ and summarizing the system resources they use.
+@@ -31,7 +36,7 @@
+
+ * Resource Measurement:: Measuring program resource use.
+
+- -- The Detailed Node Listing --
++ --- The Detailed Node Listing ---
+
+ Measuring Program Resource Use
+
+@@ -58,14 +63,14 @@
+ The `time' command runs another program, then displays information
+ about the resources used by that program, collected by the system while
+ the program was running. You can select which information is reported
+-and the format in which it is shown (*note Setting Format::.), or have
++and the format in which it is shown (*note Setting Format::), or have
+ `time' save the information in a file instead of displaying it on the
+-screen (*note Redirecting::.).
++screen (*note Redirecting::).
+
+ The resources that `time' can report on fall into the general
+ categories of time, memory, and I/O and IPC calls. Some systems do not
+ provide much information about program resource use; `time' reports
+-unavailable information as zero values (*note Accuracy::.).
++unavailable information as zero values (*note Accuracy::).
+
+ The format of the `time' command is:
+
+@@ -132,6 +137,10 @@
+ user %U
+ sys %S
+
++`-q'
++`--quiet'
++ Suppress non-zero error code from the executed program.
++
+ `-v'
+ `--verbose'
+ Use the built-in verbose format, which displays each available
+@@ -174,7 +183,7 @@
+ The resource specifiers, which are a superset of those recognized by
+ the `tcsh' builtin `time' command, are listed below. Not all resources
+ are measured by all versions of Unix, so some of the values might be
+-reported as zero (*note Accuracy::.).
++reported as zero (*note Accuracy::).
+
+ * Menu:
+
+@@ -308,11 +317,11 @@
+ `-o FILE'
+ `--output=FILE'
+ Write the resource use statistics to FILE. By default, this
+- *overwrites* the file, destroying the file's previous contents.
++ _overwrites_ the file, destroying the file's previous contents.
+
+ `-a'
+ `--append'
+- *Append* the resource use information to the output file instead
++ _Append_ the resource use information to the output file instead
+ of overwriting it. This option is only useful with the `-o' or
+ `--output' option.
+
+@@ -437,7 +446,7 @@
+
+ `-a'
+ `--append'
+- *Append* the resource use information to the output file instead
++ _Append_ the resource use information to the output file instead
+ of overwriting it.
+
+ `-f FORMAT'
+@@ -462,17 +471,17 @@
+
+ 
+ Tag Table:
+-Node: Top934
+-Node: Resource Measurement1725
+-Node: Setting Format3678
+-Node: Format String4907
+-Node: Time Resources6214
+-Node: Memory Resources6844
+-Node: I/O Resources7549
+-Node: Command Info8747
+-Node: Redirecting8964
+-Node: Examples9754
+-Node: Accuracy12064
+-Node: Invoking time13586
++Node: Top1115
++Node: Resource Measurement1908
++Node: Setting Format3858
++Node: Format String5164
++Node: Time Resources6470
++Node: Memory Resources7100
++Node: I/O Resources7805
++Node: Command Info9003
++Node: Redirecting9220
++Node: Examples10010
++Node: Accuracy12320
++Node: Invoking time13842
+ 
+ End Tag Table
+--- time-1.7.orig/time.html
++++ time-1.7/time.html
+@@ -0,0 +1,1021 @@
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
++ "http://www.w3.org/TR/html40/loose.dtd">
++<HTML>
++<!-- Created on September, 1 2003 by texi2html 1.66 -->
++<!--
++Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
++ Karl Berry <karl@freefriends.org>
++ Olaf Bachmann <obachman@mathematik.uni-kl.de>
++ and many others.
++Maintained by: Many creative people <dev@texi2html.cvshome.org>
++Send bugs and suggestions to <users@texi2html.cvshome.org>
++
++-->
++<HEAD>
++<TITLE>Measuring Program Resource Use</TITLE>
++
++<META NAME="description" CONTENT="Measuring Program Resource Use">
++<META NAME="keywords" CONTENT="Measuring Program Resource Use">
++<META NAME="resource-type" CONTENT="document">
++<META NAME="distribution" CONTENT="global">
++<META NAME="Generator" CONTENT="texi2html 1.66">
++
++</HEAD>
++
++<BODY LANG="en" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
++
++<A NAME="SEC_Top"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H1>Measuring Program Resource Use</H1>
++
++<P>
++
++This file documents the the GNU <CODE>time</CODE> command for running programs
++and summarizing the system resources they use.
++This is edition 1.7, for version 1.7.
++</P>
++<P>
++
++</P>
++<TABLE BORDER="0" CELLSPACING="0">
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC1">1. Measuring Program Resource Use</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Measuring program resource use.</TD></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
++</TH></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> -- The Detailed Node Listing ---
++</TH></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
++</TH></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Measuring Program Resource Use
++</TH></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
++</TH></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC2">1.1 Setting the Output Format</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Selecting the information reported by <CODE>time</CODE>.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC3">1.2 The Format String</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The information <CODE>time</CODE> can report.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC8">1.3 Redirecting Output</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Writing the information to a file.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC9">1.4 Examples</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Examples of using <CODE>time</CODE>.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC10">1.5 Accuracy</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Limitations on the accuracy of <CODE>time</CODE> output.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Summary of the options to the <CODE>time</CODE> command.</TD></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
++</TH></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">The Format String
++</TH></TR>
++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">
++</TH></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC4">1.2.1 Time Resources</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC5">1.2.2 Memory Resources</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC6">1.2.3 I/O Resources</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC7">1.2.4 Command Info</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++</TABLE>
++<P>
++
++<HR SIZE=1>
++<A NAME="SEC1"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<A NAME="Resource Measurement"></A>
++<H1> 1. Measuring Program Resource Use </H1>
++<!--docid::SEC1::-->
++<P>
++
++The <CODE>time</CODE> command runs another program, then displays information
++about the resources used by that program, collected by the system while
++the program was running. You can select which information is reported
++and the format in which it is shown (see section <A HREF="time.html#SEC2">1.1 Setting the Output Format</A>), or have
++<CODE>time</CODE> save the information in a file instead of displaying it on the
++screen (see section <A HREF="time.html#SEC8">1.3 Redirecting Output</A>).
++</P>
++<P>
++
++The resources that <CODE>time</CODE> can report on fall into the general
++categories of time, memory, and I/O and IPC calls. Some systems do not
++provide much information about program resource use; <CODE>time</CODE>
++reports unavailable information as zero values (see section <A HREF="time.html#SEC10">1.5 Accuracy</A>).
++</P>
++<P>
++
++The format of the <CODE>time</CODE> command is:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>time [option<small>...</small>] <VAR>command</VAR> [<VAR>arg</VAR><small>...</small>]
++</pre></td></tr></table><P>
++
++<A NAME="IDX1"></A>
++<CODE>time</CODE> runs the program <VAR>command</VAR>, with any given arguments
++<VAR>arg</VAR><small>...</small>. When <VAR>command</VAR> finishes, <CODE>time</CODE> displays
++information about resources used by <VAR>command</VAR>.
++</P>
++<P>
++
++Here is an example of using <CODE>time</CODE> to measure the time and other
++resources used by running the program <CODE>grep</CODE>:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>eg$ time grep nobody /etc/aliases
++nobody:/dev/null
++etc-files:nobody
++misc-group:nobody
++0.07user 0.50system 0:06.69elapsed 8%CPU (0avgtext+489avgdata 324maxresident)k
++46inputs+7outputs (43major+251minor)pagefaults 0swaps
++</pre></td></tr></table><P>
++
++Mail suggestions and bug reports for GNU <CODE>time</CODE> to
++<CODE>bug-gnu-utils@prep.ai.mit.edu</CODE>. Please include the version of
++<CODE>time</CODE>, which you can get by running `<SAMP>time --version</SAMP>', and the
++operating system and C compiler you used.
++</P>
++<P>
++
++<TABLE BORDER="0" CELLSPACING="0">
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC2">1.1 Setting the Output Format</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Selecting the information reported by <CODE>time</CODE>.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC3">1.2 The Format String</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The information <CODE>time</CODE> can report.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC8">1.3 Redirecting Output</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Writing the information to a file.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC9">1.4 Examples</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Examples of using <CODE>time</CODE>.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC10">1.5 Accuracy</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Limitations on the accuracy of <CODE>time</CODE> output.</TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Summary of the options to the <CODE>time</CODE> command.</TD></TR>
++</TABLE>
++<P>
++
++<A NAME="Setting Format"></A>
++<HR SIZE="6">
++<A NAME="SEC2"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H2> 1.1 Setting the Output Format </H2>
++<!--docid::SEC2::-->
++<P>
++
++<CODE>time</CODE> uses a <EM>format string</EM> to determine which information to
++display about the resources used by the command it runs. See section <A HREF="time.html#SEC3">1.2 The Format String</A>, for the interpretation of the format string contents.
++</P>
++<P>
++
++You can specify a format string with the command line options listed
++below. If no format is specified on the command line, but the
++<CODE>TIME</CODE> environment variable is set, its value is used as the format
++string. Otherwise, the default format built into <CODE>time</CODE> is used:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
++%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
++</pre></td></tr></table><P>
++
++The command line options to set the format are:
++</P>
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>-f <VAR>format</VAR></CODE>
++<DD><DT><CODE>--format=<VAR>format</VAR></CODE>
++<DD>Use <VAR>format</VAR> as the format string.
++<P>
++
++</P>
++<DT><CODE>-p</CODE>
++<DD><DT><CODE>--portability</CODE>
++<DD>Use the following format string, for conformance with POSIX standard
++1003.2:
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>real %e
++user %U
++sys %S
++</pre></td></tr></table><P>
++
++</P>
++<DT><CODE>-q</CODE>
++<DD><DT><CODE>--quiet</CODE>
++<DD>Suppress non-zero error code from the executed program.
++<P>
++
++</P>
++<DT><CODE>-v</CODE>
++<DD><DT><CODE>--verbose</CODE>
++<DD><A NAME="IDX2"></A>
++Use the built-in verbose format, which displays each available piece of
++information on the program's resource use on its own line, with an
++English description of its meaning.
++</DL>
++<P>
++
++<A NAME="Format String"></A>
++<HR SIZE="6">
++<A NAME="SEC3"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H2> 1.2 The Format String </H2>
++<!--docid::SEC3::-->
++<P>
++
++<A NAME="IDX3"></A>
++<A NAME="IDX4"></A>
++The <EM>format string</EM> controls the contents of the <CODE>time</CODE> output.
++It consists of <EM>resource specifiers</EM> and <EM>escapes</EM>, interspersed
++with plain text.
++</P>
++<P>
++
++A backslash introduces an <EM>escape</EM>, which is translated
++into a single printing character upon output. The valid escapes are
++listed below. An invalid escape is output as a question mark followed
++by a backslash.
++</P>
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>\t</CODE>
++<DD>a tab character
++<P>
++
++</P>
++<DT><CODE>\n</CODE>
++<DD>a newline
++<P>
++
++</P>
++<DT><CODE>\\</CODE>
++<DD>a literal backslash
++</DL>
++<P>
++
++<CODE>time</CODE> always prints a newline after printing the resource use
++information, so normally format strings do not end with a newline
++character (or `<SAMP>\n</SAMP>').
++</P>
++<P>
++
++A resource specifier consists of a percent sign followed by another
++character. An invalid resource specifier is output as a question mark
++followed by the invalid character. Use `<SAMP>%%</SAMP>' to output a literal
++percent sign.
++</P>
++<P>
++
++The resource specifiers, which are a superset of those recognized by the
++<CODE>tcsh</CODE> builtin <CODE>time</CODE> command, are listed below. Not all
++resources are measured by all versions of Unix, so some of the values
++might be reported as zero (see section <A HREF="time.html#SEC10">1.5 Accuracy</A>).
++</P>
++<P>
++
++<TABLE BORDER="0" CELLSPACING="0">
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC4">1.2.1 Time Resources</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC5">1.2.2 Memory Resources</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC6">1.2.3 I/O Resources</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC7">1.2.4 Command Info</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP"></TD></TR>
++</TABLE>
++<P>
++
++<A NAME="Time Resources"></A>
++<HR SIZE="6">
++<A NAME="SEC4"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H3> 1.2.1 Time Resources </H3>
++<!--docid::SEC4::-->
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>E</CODE>
++<DD>Elapsed real (wall clock) time used by the process, in
++[hours:]minutes:seconds.
++<P>
++
++</P>
++<DT><CODE>e</CODE>
++<DD>Elapsed real (wall clock) time used by the process, in
++seconds.
++<P>
++
++</P>
++<DT><CODE>S</CODE>
++<DD>Total number of CPU-seconds used by the system on behalf of the process
++(in kernel mode), in seconds.
++<P>
++
++</P>
++<DT><CODE>U</CODE>
++<DD>Total number of CPU-seconds that the process used directly (in user
++mode), in seconds.
++<P>
++
++</P>
++<DT><CODE>P</CODE>
++<DD>Percentage of the CPU that this job got. This is just user + system
++times divied by the total running time.
++</DL>
++<P>
++
++<A NAME="Memory Resources"></A>
++<HR SIZE="6">
++<A NAME="SEC5"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H3> 1.2.2 Memory Resources </H3>
++<!--docid::SEC5::-->
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>M</CODE>
++<DD>Maximum resident set size of the process during its lifetime, in
++Kilobytes.
++<P>
++
++</P>
++<DT><CODE>t</CODE>
++<DD>Average resident set size of the process, in Kilobytes.
++<P>
++
++</P>
++<DT><CODE>K</CODE>
++<DD>Average total (data+stack+text) memory use of the process, in Kilobytes.
++<P>
++
++</P>
++<DT><CODE>D</CODE>
++<DD>Average size of the process's unshared data area, in Kilobytes.
++<P>
++
++</P>
++<DT><CODE>p</CODE>
++<DD>Average size of the process's unshared stack, in Kilobytes.
++<P>
++
++</P>
++<DT><CODE>X</CODE>
++<DD>Average size of the process's shared text, in Kilobytes.
++<P>
++
++</P>
++<DT><CODE>Z</CODE>
++<DD>System's page size, in bytes. This is a per-system constant, but
++varies between systems.
++</DL>
++<P>
++
++<A NAME="I/O Resources"></A>
++<HR SIZE="6">
++<A NAME="SEC6"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H3> 1.2.3 I/O Resources </H3>
++<!--docid::SEC6::-->
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>F</CODE>
++<DD>Number of major, or I/O-requiring, page faults that occurred while the
++process was running. These are faults where the page has actually
++migrated out of primary memory.
++<P>
++
++</P>
++<DT><CODE>R</CODE>
++<DD>Number of minor, or recoverable, page faults. These are pages that are
++not valid (so they fault) but which have not yet been claimed by other
++virtual pages. Thus the data in the page is still valid but the system
++tables must be updated.
++<P>
++
++</P>
++<DT><CODE>W</CODE>
++<DD>Number of times the process was swapped out of main memory.
++<P>
++
++</P>
++<DT><CODE>c</CODE>
++<DD>Number of times the process was context-switched involuntarily (because
++the time slice expired).
++<P>
++
++</P>
++<DT><CODE>w</CODE>
++<DD>Number of times that the program was context-switched voluntarily, for
++instance while waiting for an I/O operation to complete.
++<P>
++
++</P>
++<DT><CODE>I</CODE>
++<DD>Number of file system inputs by the process.
++<P>
++
++</P>
++<DT><CODE>O</CODE>
++<DD>Number of file system outputs by the process.
++<P>
++
++</P>
++<DT><CODE>r</CODE>
++<DD>Number of socket messages received by the process.
++<P>
++
++</P>
++<DT><CODE>s</CODE>
++<DD>Number of socket messages sent by the process.
++<P>
++
++</P>
++<DT><CODE>k</CODE>
++<DD>Number of signals delivered to the process.
++</DL>
++<P>
++
++<A NAME="Command Info"></A>
++<HR SIZE="6">
++<A NAME="SEC7"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H3> 1.2.4 Command Info </H3>
++<!--docid::SEC7::-->
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>C</CODE>
++<DD>Name and command line arguments of the command being timed.
++<P>
++
++</P>
++<DT><CODE>x</CODE>
++<DD>Exit status of the command.
++</DL>
++<P>
++
++<A NAME="Redirecting"></A>
++<HR SIZE="6">
++<A NAME="SEC8"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H2> 1.3 Redirecting Output </H2>
++<!--docid::SEC8::-->
++<P>
++
++By default, <CODE>time</CODE> writes the resource use statistics to the
++standard error stream. The options below make it write the statistics
++to a file instead. Doing this can be useful if the program you're
++running writes to the standard error or you're running <CODE>time</CODE>
++noninteractively or in the background.
++</P>
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>-o <VAR>file</VAR></CODE>
++<DD><DT><CODE>--output=<VAR>file</VAR></CODE>
++<DD>Write the resource use statistics to <VAR>file</VAR>. By default, this
++<EM>overwrites</EM> the file, destroying the file's previous contents.
++<P>
++
++</P>
++<DT><CODE>-a</CODE>
++<DD><DT><CODE>--append</CODE>
++<DD><EM>Append</EM> the resource use information to the output file instead
++of overwriting it. This option is only useful with the `<SAMP>-o</SAMP>' or
++`<SAMP>--output</SAMP>' option.
++</DL>
++<P>
++
++<A NAME="Examples"></A>
++<HR SIZE="6">
++<A NAME="SEC9"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H2> 1.4 Examples </H2>
++<!--docid::SEC9::-->
++<P>
++
++Run the command `<SAMP>wc /etc/hosts</SAMP>' and show the default information:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>eg$ time wc /etc/hosts
++ 35 111 1134 /etc/hosts
++0.00user 0.01system 0:00.04elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k
++1inputs+1outputs (0major+0minor)pagefaults 0swaps
++</pre></td></tr></table><P>
++
++Run the command `<SAMP>ls -Fs</SAMP>' and show just the user, system, and
++wall-clock time:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>eg$ time -f &quot;\t%E real,\t%U user,\t%S sys&quot; ls -Fs
++total 16
++1 account/ 1 db/ 1 mail/ 1 run/
++1 backups/ 1 emacs/ 1 msgs/ 1 rwho/
++1 crash/ 1 games/ 1 preserve/ 1 spool/
++1 cron/ 1 log/ 1 quotas/ 1 tmp/
++ 0:00.03 real, 0.00 user, 0.01 sys
++</pre></td></tr></table><P>
++
++Edit the file `<TT>.bashrc</TT>' and have <CODE>time</CODE> append the elapsed time
++and number of signals to the file `<TT>log</TT>', reading the format string
++from the environment variable <CODE>TIME</CODE>:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>eg$ export TIME=&quot;\t%E,\t%k&quot; # If using bash or ksh
++eg$ setenv TIME &quot;\t%E,\t%k&quot; # If using csh or tcsh
++eg$ time -a -o log emacs .bashrc
++eg$ cat log
++ 0:16.55, 726
++</pre></td></tr></table><P>
++
++Run the command `<SAMP>sleep 4</SAMP>' and show all of the information about it
++verbosely:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>eg$ time -v sleep 4
++ Command being timed: &quot;sleep 4&quot;
++ User time (seconds): 0.00
++ System time (seconds): 0.05
++ Percent of CPU this job got: 1%
++ Elapsed (wall clock) time (h:mm:ss or m:ss): 0:04.26
++ Average shared text size (kbytes): 36
++ Average unshared data size (kbytes): 24
++ Average stack size (kbytes): 0
++ Average total size (kbytes): 60
++ Maximum resident set size (kbytes): 32
++ Average resident set size (kbytes): 24
++ Major (requiring I/O) page faults: 3
++ Minor (reclaiming a frame) page faults: 0
++ Voluntary context switches: 11
++ Involuntary context switches: 0
++ Swaps: 0
++ File system inputs: 3
++ File system outputs: 1
++ Socket messages sent: 0
++ Socket messages received: 0
++ Signals delivered: 1
++ Page size (bytes): 4096
++ Exit status: 0
++</pre></td></tr></table><P>
++
++<A NAME="Accuracy"></A>
++<HR SIZE="6">
++<A NAME="SEC10"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC11"> &gt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H2> 1.5 Accuracy </H2>
++<!--docid::SEC10::-->
++<P>
++
++The elapsed time is not collected atomically with the execution of the
++program; as a result, in bizarre circumstances (if the <CODE>time</CODE>
++command gets stopped or swapped out in between when the program being
++timed exits and when <CODE>time</CODE> calculates how long it took to run), it
++could be much larger than the actual execution time.
++</P>
++<P>
++
++When the running time of a command is very nearly zero, some values
++(e.g., the percentage of CPU used) may be reported as either zero (which
++is wrong) or a question mark.
++</P>
++<P>
++
++Most information shown by <CODE>time</CODE> is derived from the <CODE>wait3</CODE>
++system call. The numbers are only as good as those returned by
++<CODE>wait3</CODE>. Many systems do not measure all of the resources that
++<CODE>time</CODE> can report on; those resources are reported as zero. The
++systems that measure most or all of the resources are based on 4.2 or
++4.3BSD. Later BSD releases use different memory management code that
++measures fewer resources.
++</P>
++<P>
++
++On systems that do not have a <CODE>wait3</CODE> call that returns status
++information, the <CODE>times</CODE> system call is used instead. It provides
++much less information than <CODE>wait3</CODE>, so on those systems <CODE>time</CODE>
++reports most of the resources as zero.
++</P>
++<P>
++
++The `<SAMP>%I</SAMP>' and `<SAMP>%O</SAMP>' values are allegedly only &quot;real&quot; input
++and output and do not include those supplied by caching devices. The
++meaning of &quot;real&quot; I/O reported by `<SAMP>%I</SAMP>' and `<SAMP>%O</SAMP>' may be
++muddled for workstations, especially diskless ones.
++</P>
++<P>
++
++<A NAME="Invoking time"></A>
++<HR SIZE="6">
++<A NAME="SEC11"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> &lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> &lt;&lt; </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H2> 1.6 Running the <CODE>time</CODE> Command </H2>
++<!--docid::SEC11::-->
++<P>
++
++The format of the <CODE>time</CODE> command is:
++</P>
++<P>
++
++<TABLE><tr><td>&nbsp;</td><td class=example><pre>time [option<small>...</small>] <VAR>command</VAR> [<VAR>arg</VAR><small>...</small>]
++</pre></td></tr></table><P>
++
++<A NAME="IDX5"></A>
++<CODE>time</CODE> runs the program <VAR>command</VAR>, with any given arguments
++<VAR>arg</VAR><small>...</small>. When <VAR>command</VAR> finishes, <CODE>time</CODE> displays
++information about resources used by <VAR>command</VAR> (on the standard error
++output, by default). If <VAR>command</VAR> exits with non-zero status or is
++terminated by a signal, <CODE>time</CODE> displays a warning message and the
++exit status or signal number.
++</P>
++<P>
++
++Options to <CODE>time</CODE> must appear on the command line before
++<VAR>command</VAR>. Anything on the command line after <VAR>command</VAR> is
++passed as arguments to <VAR>command</VAR>.
++</P>
++<P>
++
++</P>
++<DL COMPACT>
++<DT><CODE>-o <VAR>file</VAR></CODE>
++<DD><DT><CODE>--output=<VAR>file</VAR></CODE>
++<DD>Write the resource use statistics to <VAR>file</VAR>.
++<P>
++
++</P>
++<DT><CODE>-a</CODE>
++<DD><DT><CODE>--append</CODE>
++<DD><EM>Append</EM> the resource use information to the output file instead
++of overwriting it.
++<P>
++
++</P>
++<DT><CODE>-f <VAR>format</VAR></CODE>
++<DD><DT><CODE>--format=<VAR>format</VAR></CODE>
++<DD>Use <VAR>format</VAR> as the format string.
++<P>
++
++</P>
++<DT><CODE>--help</CODE>
++<DD>Print a summary of the command line options to <CODE>time</CODE> and exit.
++<P>
++
++</P>
++<DT><CODE>-p</CODE>
++<DD><DT><CODE>--portability</CODE>
++<DD>Use the POSIX format.
++<P>
++
++</P>
++<DT><CODE>-v</CODE>
++<DD><DT><CODE>--verbose</CODE>
++<DD><A NAME="IDX6"></A>
++Use the built-in verbose format.
++<P>
++
++</P>
++<DT><CODE>-V</CODE>
++<DD><DT><CODE>--version</CODE>
++<DD><A NAME="IDX7"></A>
++Print the version number of <CODE>time</CODE> and exit.
++</DL>
++<P>
++
++<HR SIZE="6">
++<A NAME="SEC_Contents"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H1>Table of Contents</H1>
++<BLOCKQUOTE>
++<A NAME="TOC1" HREF="time.html#SEC1">1. Measuring Program Resource Use</A>
++<BR>
++<BLOCKQUOTE>
++<A NAME="TOC2" HREF="time.html#SEC2">1.1 Setting the Output Format</A>
++<BR>
++<A NAME="TOC3" HREF="time.html#SEC3">1.2 The Format String</A>
++<BR>
++<BLOCKQUOTE>
++<A NAME="TOC4" HREF="time.html#SEC4">1.2.1 Time Resources</A>
++<BR>
++<A NAME="TOC5" HREF="time.html#SEC5">1.2.2 Memory Resources</A>
++<BR>
++<A NAME="TOC6" HREF="time.html#SEC6">1.2.3 I/O Resources</A>
++<BR>
++<A NAME="TOC7" HREF="time.html#SEC7">1.2.4 Command Info</A>
++<BR>
++</BLOCKQUOTE>
++<A NAME="TOC8" HREF="time.html#SEC8">1.3 Redirecting Output</A>
++<BR>
++<A NAME="TOC9" HREF="time.html#SEC9">1.4 Examples</A>
++<BR>
++<A NAME="TOC10" HREF="time.html#SEC10">1.5 Accuracy</A>
++<BR>
++<A NAME="TOC11" HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A>
++<BR>
++</BLOCKQUOTE>
++</BLOCKQUOTE>
++<HR SIZE=1>
++<A NAME="SEC_OVERVIEW"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H1>Short Table of Contents</H1>
++<BLOCKQUOTE>
++<A NAME="TOC1" HREF="time.html#SEC1">1. Measuring Program Resource Use</A>
++<BR>
++
++</BLOCKQUOTE>
++<HR SIZE=1>
++<A NAME="SEC_About"></A>
++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD>
++</TR></TABLE>
++<H1>About this document</H1>
++This document was generated
++by
++using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A>
++<P></P>
++The buttons in the navigation panels have the following meaning:
++<P></P>
++<table border = "1">
++<TR>
++<TH> Button </TH>
++<TH> Name </TH>
++<TH> Go to </TH>
++<TH> From 1.2.3 go to</TH>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [ &lt; ] </TD>
++<TD ALIGN="CENTER">
++Back
++</TD>
++<TD>
++previous section in reading order
++</TD>
++<TD>
++1.2.2
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [ &gt; ] </TD>
++<TD ALIGN="CENTER">
++Forward
++</TD>
++<TD>
++next section in reading order
++</TD>
++<TD>
++1.2.4
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [ &lt;&lt; ] </TD>
++<TD ALIGN="CENTER">
++FastBack
++</TD>
++<TD>
++beginning of this chapter or previous chapter
++</TD>
++<TD>
++1
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [ Up ] </TD>
++<TD ALIGN="CENTER">
++Up
++</TD>
++<TD>
++up section
++</TD>
++<TD>
++1.2
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [ &gt;&gt; ] </TD>
++<TD ALIGN="CENTER">
++FastForward
++</TD>
++<TD>
++next chapter
++</TD>
++<TD>
++2
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [Top] </TD>
++<TD ALIGN="CENTER">
++Top
++</TD>
++<TD>
++cover (top) of document
++</TD>
++<TD>
++ &nbsp;
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [Contents] </TD>
++<TD ALIGN="CENTER">
++Contents
++</TD>
++<TD>
++table of contents
++</TD>
++<TD>
++ &nbsp;
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [Index] </TD>
++<TD ALIGN="CENTER">
++Index
++</TD>
++<TD>
++concept index
++</TD>
++<TD>
++ &nbsp;
++</TD>
++</TR>
++<TR>
++<TD ALIGN="CENTER">
++ [ ? ] </TD>
++<TD ALIGN="CENTER">
++About
++</TD>
++<TD>
++this page
++</TD>
++<TD>
++ &nbsp;
++</TD>
++</TR>
++</TABLE>
++ <P>
++ where the <STRONG> Example </STRONG> assumes that the current position
++ is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
++ the following structure:</P>
++ <UL>
++ <LI> 1. Section One
++ <UL>
++ <LI>1.1 Subsection One-One
++ <UL>
++ <LI>...</LI>
++ </UL>
++ <LI>1.2 Subsection One-Two
++ <UL>
++ <LI>1.2.1 Subsubsection One-Two-One</LI>
++ <LI>1.2.2 Subsubsection One-Two-Two</LI>
++ <LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
++ <STRONG>&lt;== Current Position </STRONG></LI>
++ <LI>1.2.4 Subsubsection One-Two-Four</LI>
++ </UL>
++ </LI>
++ <LI>1.3 Subsection One-Three
++ <UL>
++ <LI>...</LI>
++ </UL>
++ </LI>
++ <LI>1.4 Subsection One-Four</LI>
++ </UL>
++ </LI>
++ </UL>
++
++<HR SIZE=1>
++<BR>
++<FONT SIZE="-1">
++This document was generated
++by <I>root</I> on <I>September, 1 2003</I>
++using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A>
++</FONT>
++
++</BODY>
++</HTML>
diff --git a/meta/recipes-extended/time/time.inc b/meta/recipes-extended/time/time.inc
new file mode 100644
index 0000000..8d31b47
--- /dev/null
+++ b/meta/recipes-extended/time/time.inc
@@ -0,0 +1,7 @@
+DESCRIPTION = "time measures many of the CPU resources, such as time and \
+memory, that other programs use."
+HOMEPAGE = "http://www.gnu.org/software/time/"
+SECTION = "utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
diff --git a/meta/recipes-extended/time/time_1.7.bb b/meta/recipes-extended/time/time_1.7.bb
new file mode 100644
index 0000000..1030489
--- /dev/null
+++ b/meta/recipes-extended/time/time_1.7.bb
@@ -0,0 +1,9 @@
+require time.inc
+
+SRC_URI = "${GNU_MIRROR}/time/time-${PV}.tar.gz \
+ file://debian.patch;patch=1"
+# file://autofoo.patch;patch=1 \
+# file://compile.patch;patch=1"
+S = "${WORKDIR}/time-${PV}"
+
+inherit autotools
diff --git a/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch b/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
new file mode 100644
index 0000000..568d423
--- /dev/null
+++ b/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
@@ -0,0 +1,51 @@
+# glibc also implements the function group_member. To avoid name conflict,
+# here let us append a "_" to which's version.
+#
+# Signed-off-by Dexuan Cui <dexuan.cui@intel.com>, 2010-08-20
+# (this patch is licensed under GPLv2)
+
+--- which-2.18/bash.c
++++ which-2.18/bash.c
+@@ -45,7 +45,12 @@
+ * - changed all occurences of 'gid_t' into 'GID_T'.
+ * - exported functions needed in which.c
+ */
+-static int group_member (GID_T gid);
++
++/*
++ * glibc also implements the function group_member. To avoid name conflict,
++ * here let us append a "_" to which's version.
++ */
++static int _group_member (GID_T gid);
+ static char* extract_colon_unit (char const* string, int *p_index);
+
+ /*===========================================================================
+@@ -200,8 +205,8 @@
+
+ /* From bash-2.05b / general.c / line 805 */
+ /* Return non-zero if GID is one that we have in our groups list. */
+-int
+-group_member (GID_T gid)
++static int
++_group_member (GID_T gid)
+ {
+ #if defined (HAVE_GETGROUPS)
+ register int i;
+@@ -290,7 +295,7 @@
+ return (X_BIT (u_mode_bits (finfo.st_mode))) ? (FS_EXISTS | FS_EXECABLE) : FS_EXISTS;
+
+ /* Otherwise, if we are in the owning group, the group permissions apply. */
+- if (group_member (finfo.st_gid))
++ if (_group_member (finfo.st_gid))
+ return (X_BIT (g_mode_bits (finfo.st_mode))) ? (FS_EXISTS | FS_EXECABLE) : FS_EXISTS;
+
+ /* Otherwise, if we are in the other group, the other permissions apply. */
+@@ -331,7 +336,7 @@
+ /* Given a string containing units of information separated by colons,
+ return the next one pointed to by (P_INDEX), or NULL if there are no more.
+ Advance (P_INDEX) to the character after the colon. */
+-char*
++static char*
+ extract_colon_unit (char const* string, int* p_index)
+ {
+ int i, start, len;
diff --git a/meta/recipes-extended/which/which-2.20/remove-declaration.patch b/meta/recipes-extended/which/which-2.20/remove-declaration.patch
new file mode 100644
index 0000000..09b8143
--- /dev/null
+++ b/meta/recipes-extended/which/which-2.20/remove-declaration.patch
@@ -0,0 +1,16 @@
+Remove the declaration of group_member since it has already been
+declared in unistd.h
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+
+diff -ruN which-2.20-orig/bash.c which-2.20/bash.c
+--- which-2.20-orig/bash.c 2010-08-03 12:59:08.897088878 +0800
++++ which-2.20/bash.c 2010-08-03 13:17:23.406097212 +0800
+@@ -46,7 +46,6 @@
+ * - changed all occurences of 'gid_t' into 'GID_T'.
+ * - exported functions needed in which.c
+ */
+-static int group_member (GID_T gid);
+ static char* extract_colon_unit (char const* string, int* p_index);
+
+ /*===========================================================================
diff --git a/meta/recipes-extended/which/which_2.18.bb b/meta/recipes-extended/which/which_2.18.bb
new file mode 100644
index 0000000..b177949
--- /dev/null
+++ b/meta/recipes-extended/which/which_2.18.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Which is a utility that prints out the full path of the \
+executables that bash(1) would execute when the passed \
+program names would have been entered on the shell prompt. \
+It does this by using the exact same algorithm as bash."
+HOMEPAGE = "http://www.xs4all.nl/~carlo17/which/"
+BUGTRACKER = "n/a"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+PR = "r0"
+
+SRC_URI = "http://www.xs4all.nl/~carlo17/which/which-${PV}.tar.gz \
+ file://fix_name_conflict_group_member.patch"
+
+DEPENDS = "cwautomacros-native"
+
+inherit autotools
+
+do_configure_prepend() {
+ OLD="@ACLOCAL_CWFLAGS@"
+ NEW="-I ${STAGING_DIR_NATIVE}/${datadir}/cwautomacros/m4"
+ sed -i "s#${OLD}#${NEW}#g" `grep -rl ${OLD} ${S}`
+}
+do_install_append() {
+ mv ${D}/${bindir}/which ${D}/${bindir}/which.${PN}
+}
+
+pkg_postinst_${PN}() {
+ if [ "${PN}" = "${BPN}" ] ; then
+ update-alternatives --install ${bindir}/which which which.${PN} 100
+ fi
+}
+
+pkg_prerm_${PN}() {
+ if [ "${PN}" = "${BPN}" ] ; then
+ update-alternatives --remove which which.${PN}
+ fi
+}
+
diff --git a/meta/recipes-extended/which/which_2.20.bb b/meta/recipes-extended/which/which_2.20.bb
new file mode 100644
index 0000000..b7730de
--- /dev/null
+++ b/meta/recipes-extended/which/which_2.20.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "which - shows the full path of (shell) commands."
+SECTION = "libs"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\
+ file://which.c;beginline=1;endline=17;md5=a9963693af2272e7a8df6f231164e7a2"
+HOMEPAGE = "http://ftp.gnu.org/gnu/which/"
+DEPENDS = "cwautomacros-native"
+
+inherit autotools
+
+PR = "r0"
+
+SRC_URI = "http://ftp.gnu.org/gnu/which/which-${PV}.tar.gz \
+ file://remove-declaration.patch"
+
+do_configure_prepend() {
+ sed -i -e 's%@ACLOCAL_CWFLAGS@%-I ${STAGING_DIR_NATIVE}/usr/share/cwautomacros/m4%g' ${S}/Makefile.am ${S}/tilde/Makefile.am
+}
+
+do_install() {
+ autotools_do_install
+ mv ${D}${bindir}/which ${D}${bindir}/which.${PN}
+}
+
+pkg_postinst_${PN} () {
+ if [ "${PN}" = "${BPN}" ] ; then
+ update-alternatives --install ${bindir}/which which which.${PN} 100
+ fi
+}
+
+pkg_prerm_${PN} () {
+ if [ "${PN}" = "${BPN}" ] ; then
+ update-alternatives --remove which which.${PN}
+ fi
+}
diff --git a/meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch b/meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch
new file mode 100644
index 0000000..8602a88
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd/Disable-services-from-inetd.conf-if-a-service-with-t.patch
@@ -0,0 +1,84 @@
+From d588b6530e1382a624898b3f4307f636c72c80a9 Mon Sep 17 00:00:00 2001
+From: Pierre Habouzit <madcoder@debian.org>
+Date: Wed, 28 Nov 2007 10:13:08 +0100
+Subject: [PATCH] Disable services from inetd.conf if a service with the same id exists.
+
+ This way, if a service is enabled in /etc/xinetd* _and_ in
+/etc/inetd.conf, the one (even if disabled) from /etc/xinetd* takes
+precedence.
+
+Signed-off-by: Pierre Habouzit <madcoder@debian.org>
+---
+ xinetd/inet.c | 22 +++++++++++++++++++---
+ 1 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/xinetd/inet.c b/xinetd/inet.c
+index 1cb2ba2..8caab45 100644
+--- a/xinetd/inet.c
++++ b/xinetd/inet.c
+@@ -23,6 +23,8 @@
+ #include "parsesup.h"
+ #include "nvlists.h"
+
++static psi_h iter ;
++
+ static int get_next_inet_entry( int fd, pset_h sconfs,
+ struct service_config *defaults);
+
+@@ -32,12 +34,15 @@ void parse_inet_conf_file( int fd, struct configuration *confp )
+ struct service_config *default_config = CNF_DEFAULTS( confp );
+
+ line_count = 0;
++ iter = psi_create (sconfs);
+
+ for( ;; )
+ {
+ if (get_next_inet_entry(fd, sconfs, default_config) == -2)
+ break;
+ }
++
++ psi_destroy(iter);
+ }
+
+ static int get_next_inet_entry( int fd, pset_h sconfs,
+@@ -46,7 +51,7 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
+ char *p;
+ str_h strp;
+ char *line = next_line(fd);
+- struct service_config *scp;
++ struct service_config *scp, *tmp;
+ unsigned u, i;
+ const char *func = "get_next_inet_entry";
+ char *name = NULL, *rpcvers = NULL, *rpcproto = NULL;
+@@ -405,7 +410,16 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
+ SC_SPECIFY( scp, A_SOCKET_TYPE );
+ SC_SPECIFY( scp, A_WAIT );
+
+- if( ! pset_add(sconfs, scp) )
++ for ( tmp = SCP( psi_start( iter ) ) ; tmp ; tmp = SCP( psi_next(iter)) ){
++ if (EQ(SC_ID(scp), SC_ID(tmp))) {
++ parsemsg(LOG_DEBUG, func, "removing duplicate service %s", SC_NAME(scp));
++ sc_free(scp);
++ scp = NULL;
++ break;
++ }
++ }
++
++ if( scp && ! pset_add(sconfs, scp) )
+ {
+ out_of_memory( func );
+ pset_destroy(args);
+@@ -414,7 +428,9 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
+ }
+
+ pset_destroy(args);
+- parsemsg( LOG_DEBUG, func, "added service %s", SC_NAME(scp));
++ if (scp) {
++ parsemsg( LOG_DEBUG, func, "added service %s", SC_NAME(scp));
++ }
+ return 0;
+ }
+
+--
+1.5.3.6.2040.g15e6
+
diff --git a/meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch b/meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch
new file mode 100644
index 0000000..d243692
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd/Various-fixes-from-the-previous-maintainer.patch
@@ -0,0 +1,77 @@
+From a3410b0bc81ab03a889d9ffc14e351badf8372f1 Mon Sep 17 00:00:00 2001
+From: Pierre Habouzit <madcoder@debian.org>
+Date: Mon, 26 Nov 2007 16:02:04 +0100
+Subject: [PATCH] Various fixes from the previous maintainer.
+
+---
+ xinetd/child.c | 20 +++++++++++++++++---
+ xinetd/service.c | 8 ++++----
+ 2 files changed, 21 insertions(+), 7 deletions(-)
+
+diff --git a/xinetd/child.c b/xinetd/child.c
+index 89ee54c..48e9615 100644
+--- a/xinetd/child.c
++++ b/xinetd/child.c
+@@ -284,6 +284,7 @@ void child_process( struct server *serp )
+ connection_s *cp = SERVER_CONNECTION( serp ) ;
+ struct service_config *scp = SVC_CONF( sp ) ;
+ const char *func = "child_process" ;
++ int fd, null_fd;
+
+ signal_default_state();
+
+@@ -296,9 +297,22 @@ void child_process( struct server *serp )
+ signals_pending[0] = -1;
+ signals_pending[1] = -1;
+
+- Sclose(0);
+- Sclose(1);
+- Sclose(2);
++ if ( ( null_fd = open( "/dev/null", O_RDONLY ) ) == -1 )
++ {
++ msg( LOG_ERR, func, "open('/dev/null') failed: %m") ;
++ _exit( 1 ) ;
++ }
++
++ for ( fd = 0 ; fd <= MAX_PASS_FD ; fd++ )
++ {
++ if ( fd != null_fd && dup2( null_fd, fd ) == -1 )
++ {
++ msg( LOG_ERR, func, "dup2(%d, %d) failed: %m") ;
++ _exit( 1 ) ;
++ }
++ }
++ if ( null_fd > MAX_PASS_FD )
++ (void) Sclose( null_fd ) ;
+
+
+ #ifdef DEBUG_SERVER
+diff --git a/xinetd/service.c b/xinetd/service.c
+index 3d68d78..0132d6c 100644
+--- a/xinetd/service.c
++++ b/xinetd/service.c
+@@ -745,8 +745,8 @@ static status_e failed_service(struct service *sp,
+ return FAILED;
+
+ if ( last == NULL ) {
+- last = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
+- SVC_LAST_DGRAM_ADDR(sp) = (union xsockaddr *)last;
++ SVC_LAST_DGRAM_ADDR(sp) = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
++ last = SAIN( SVC_LAST_DGRAM_ADDR(sp) );
+ }
+
+ (void) time( &current_time ) ;
+@@ -772,8 +772,8 @@ static status_e failed_service(struct service *sp,
+ return FAILED;
+
+ if( last == NULL ) {
+- last = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
+- SVC_LAST_DGRAM_ADDR( sp ) = (union xsockaddr *)last;
++ SVC_LAST_DGRAM_ADDR(sp) = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
++ last = SAIN6(SVC_LAST_DGRAM_ADDR(sp));
+ }
+
+ (void) time( &current_time ) ;
+--
+1.5.3.6.2040.g15e6
+
diff --git a/meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch b/meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch
new file mode 100644
index 0000000..2b76fe3
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd/xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch
@@ -0,0 +1,110 @@
+From f44b218ccc779ab3f4aed072390ccf129d94b58d Mon Sep 17 00:00:00 2001
+From: David Madore <david@pleiades.stars>
+Date: Mon, 24 Mar 2008 12:45:36 +0100
+Subject: [PATCH] xinetd should be able to listen on IPv6 even in -inetd_compat mode
+
+xinetd does not bind to IPv6 addresses (and does not seem to have an
+option to do so) when used in -inetd_compat mode. As current inetd's
+are IPv6-aware, this is a problem: this means xinetd cannot be used as
+a drop-in inetd replacement.
+
+The attached patch is a suggestion: it adds a -inetd_ipv6 global
+option that, if used, causes inetd-compatibility lines to have an
+implicit "IPv6" option. Perhaps this is not the best solution, but
+there should definitely be a way to get inetd.conf to be read in
+IPv6-aware mode.
+---
+ xinetd/confparse.c | 1 +
+ xinetd/inet.c | 17 +++++++++++++++++
+ xinetd/options.c | 3 +++
+ xinetd/xinetd.man | 6 ++++++
+ 4 files changed, 27 insertions(+), 0 deletions(-)
+
+diff --git a/xinetd/confparse.c b/xinetd/confparse.c
+index db9f431..d7b0bcc 100644
+--- a/xinetd/confparse.c
++++ b/xinetd/confparse.c
+@@ -40,6 +40,7 @@
+ #include "inet.h"
+ #include "main.h"
+
++extern int inetd_ipv6;
+ extern int inetd_compat;
+
+ /*
+diff --git a/xinetd/inet.c b/xinetd/inet.c
+index 8caab45..2e617ae 100644
+--- a/xinetd/inet.c
++++ b/xinetd/inet.c
+@@ -25,6 +25,8 @@
+
+ static psi_h iter ;
+
++extern int inetd_ipv6;
++
+ static int get_next_inet_entry( int fd, pset_h sconfs,
+ struct service_config *defaults);
+
+@@ -360,6 +362,21 @@ static int get_next_inet_entry( int fd, pset_h sconfs,
+ }
+ SC_SERVER_ARGV(scp)[u] = p;
+ }
++
++ /* Set the IPv6 flag if we were passed the -inetd_ipv6 option */
++ if ( inetd_ipv6 )
++ {
++ nvp = nv_find_value( service_flags, "IPv6" );
++ if ( nvp == NULL )
++ {
++ parsemsg( LOG_WARNING, func, "inetd.conf - Bad foo %s", name ) ;
++ pset_destroy(args);
++ sc_free(scp);
++ return -1;
++ }
++ M_SET(SC_XFLAGS(scp), nvp->value);
++ }
++
+ /* Set the reuse flag, as this is the default for inetd */
+ nvp = nv_find_value( service_flags, "REUSE" );
+ if ( nvp == NULL )
+diff --git a/xinetd/options.c b/xinetd/options.c
+index b058b6a..dc2f3a0 100644
+--- a/xinetd/options.c
++++ b/xinetd/options.c
+@@ -30,6 +30,7 @@ int logprocs_option ;
+ unsigned logprocs_option_arg ;
+ int stayalive_option=0;
+ char *program_name ;
++int inetd_ipv6 = 0 ;
+ int inetd_compat = 0 ;
+ int dont_fork = 0;
+
+@@ -128,6 +129,8 @@ int opt_recognize( int argc, char *argv[] )
+ fprintf(stderr, "\n");
+ exit(0);
+ }
++ else if ( strcmp ( &argv[ arg ][ 1 ], "inetd_ipv6" ) == 0 )
++ inetd_ipv6 = 1;
+ else if ( strcmp ( &argv[ arg ][ 1 ], "inetd_compat" ) == 0 )
+ inetd_compat = 1;
+ }
+diff --git a/xinetd/xinetd.man b/xinetd/xinetd.man
+index c76c3c6..c9dd803 100644
+--- a/xinetd/xinetd.man
++++ b/xinetd/xinetd.man
+@@ -106,6 +106,12 @@ This option causes xinetd to read /etc/inetd.conf in addition to the
+ standard xinetd config files. /etc/inetd.conf is read after the
+ standard xinetd config files.
+ .TP
++.BI \-inetd_ipv6
++This option causes xinetd to bind to IPv6 (AF_INET6) addresses for
++inetd compatibility lines (see previous option). This only affects
++how /etc/inetd.conf is interpreted and thus only has any effect if
++the \-inetd_compat option is also used.
++.TP
+ .BI \-cc " interval"
+ This option instructs
+ .B xinetd
+--
+1.5.5.rc0.127.gb4337
+
diff --git a/meta/recipes-extended/xinetd/xinetd/xinetd.conf b/meta/recipes-extended/xinetd/xinetd/xinetd.conf
new file mode 100644
index 0000000..9e6ea25
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd/xinetd.conf
@@ -0,0 +1,11 @@
+# Simple configuration file for xinetd
+#
+# Some defaults, and include /etc/xinetd.d/
+
+defaults
+{
+
+
+}
+
+includedir /etc/xinetd.d
diff --git a/meta/recipes-extended/xinetd/xinetd/xinetd.init b/meta/recipes-extended/xinetd/xinetd/xinetd.init
new file mode 100644
index 0000000..26dbea7
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd/xinetd.init
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# /etc/init.d/xinetd -- script to start and stop xinetd.
+
+if test -f /etc/default/xinetd; then
+ . /etc/default/xinetd
+fi
+
+
+test -x /usr/sbin/xinetd || exit 0
+
+checkportmap () {
+ if grep "^[^ *#]" /etc/xinetd.conf | grep -q 'rpc/'; then
+ if ! rpcinfo -u localhost portmapper >/dev/null 2>&1; then
+ echo
+ echo "WARNING: portmapper inactive - RPC services unavailable!"
+ echo " Commenting out or removing the RPC services from"
+ echo " the /etc/xinetd.conf file will remove this message."
+ echo
+ fi
+ fi
+}
+
+case "$1" in
+ start)
+ checkportmap
+ echo -n "Starting internet superserver: xinetd"
+ start-stop-daemon --start --quiet --background --exec /usr/sbin/xinetd -- -pidfile /var/run/xinetd.pid $XINETD_OPTS
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping internet superserver: xinetd"
+ start-stop-daemon --stop --signal 3 --quiet --exec /usr/sbin/xinetd
+ echo "."
+ ;;
+ reload)
+ echo -n "Reloading internet superserver configuration: xinetd"
+ start-stop-daemon --stop --signal 1 --quiet --exec /usr/sbin/xinetd
+ echo "."
+ ;;
+ force-reload)
+ echo "$0 force-reload: Force Reload is deprecated"
+ echo -n "Forcefully reloading internet superserver configuration: xinetd"
+ start-stop-daemon --stop --signal 1 --quiet --exec /usr/sbin/xinetd
+ echo "."
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/xinetd {start|stop|reload|force-reload|restart}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta/recipes-extended/xinetd/xinetd_2.3.14.bb b/meta/recipes-extended/xinetd/xinetd_2.3.14.bb
new file mode 100644
index 0000000..122be2c
--- /dev/null
+++ b/meta/recipes-extended/xinetd/xinetd_2.3.14.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "Highly configurable, modular and secure inetd"
+HOMEPAGE = "http://www.xinetd.org"
+
+# xinetd is a BSD-like license
+LICENSE = "xinetd"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8ad8615198542444f84d28a6cf226dd8"
+
+DEPENDS = ""
+PR ="r0"
+
+SRC_URI = "http://www.xinetd.org/xinetd-${PV}.tar.gz \
+ file://xinetd.init \
+ file://xinetd.conf \
+ file://Various-fixes-from-the-previous-maintainer.patch \
+ file://Disable-services-from-inetd.conf-if-a-service-with-t.patch \
+ file://xinetd-should-be-able-to-listen-on-IPv6-even-in-ine.patch \
+ "
+
+inherit autotools update-rc.d
+
+INITSCRIPT_NAME = "xinetd"
+INITSCRIPT_PARAMS = "defaults"
+
+EXTRA_OECONF="--disable-nls"
+
+do_configure() {
+ # Looks like configure.in is broken, so we are skipping
+ # rebuilding configure and are just using the shipped one
+ oe_runconf
+}
+
+do_install() {
+ # Same here, the Makefile does some really stupid things,
+ # but since we only want two files why not override
+ # do_install from autotools and doing it ourselfs?
+ install -d "${D}/usr/sbin"
+ install -d "${D}/etc/init.d"
+ install -d "${D}/etc/xinetd.d"
+ install -m 644 "${WORKDIR}/xinetd.conf" "${D}/etc"
+ install -m 755 "${WORKDIR}/xinetd.init" "${D}/etc/init.d/xinetd"
+ install -m 755 "${S}/xinetd/xinetd" "${D}/usr/sbin"
+ install -m 755 "${S}/xinetd/itox" "${D}/usr/sbin"
+}
+
+CONFFILES_${PN} = "${sysconfdir}/xinetd.conf"
diff --git a/meta/recipes-extended/xz/xz_4.999.9beta.bb b/meta/recipes-extended/xz/xz_4.999.9beta.bb
new file mode 100644
index 0000000..ca76182
--- /dev/null
+++ b/meta/recipes-extended/xz/xz_4.999.9beta.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "utils for managing LZMA compressed files"
+HOMEPAGE = "http://tukaani.org/xz/"
+SECTION = "base"
+
+LICENSE = "GPLv2+ & GPLv3+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c475b6c7dca236740ace4bba553e8e1c \
+ file://COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LGPLv2.1;md5=fbc093901857fcd118f065f900982c24 \
+ file://lib/getopt.c;endline=23;md5=2069b0ee710572c03bb3114e4532cd84 "
+
+SRC_URI = "http://tukaani.org/xz/xz-${PV}.tar.gz"
+
+DEPENDS = "gettext"
+
+PR = "r0"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
OpenPOWER on IntegriCloud