diff options
Diffstat (limited to 'meta/recipes-extended')
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 0000000000..f6720111d6 --- /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 0000000000..6ab528d0b2 --- /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 0000000000..64ae9c2b6a --- /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 0000000000..ff4cf489b3 --- /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 0000000000..141168dc9a --- /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 0000000000..f760e85ae8 --- /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 0000000000..7d3d91a19a --- /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 0000000000..42e89180d1 --- /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 0000000000..ee563d626a --- /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 0000000000..6f0ced757e --- /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 0000000000..eaef5f3f33 --- /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 0000000000..c6a5e38f77 --- /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 0000000000..48d0e4e425 --- /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 0000000000..648c725bba --- /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 0000000000..dfa0d9150a --- /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 0000000000..be9a64735b --- /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 0000000000..b571986ef7 --- /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 0000000000..9789737f98 --- /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 0000000000..9c03eece53 --- /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 0000000000..a65c433d57 --- /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 0000000000..e14bf0e5a4 --- /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 0000000000..0243769e90 --- /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 0000000000..9658f630a1 --- /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 0000000000..b8aacfb23c --- /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 0000000000..21f1da434c --- /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 0000000000..4bfa23d2e9 --- /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 0000000000..537a6e4122 --- /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 0000000000..8424d91bb4 --- /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 0000000000..ad707d30bc --- /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 0000000000..98aae0d457 --- /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 0000000000..86bbf0d39a --- /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 0000000000..9f05769f71 --- /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 0000000000..2a924258da --- /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 0000000000..b5e907a8d0 --- /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 0000000000..7e6c97c14a --- /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 0000000000..3f793eca57 --- /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 0000000000..872a127f43 --- /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 0000000000..a2017c5724 --- /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 0000000000..d72430ec0f --- /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 0000000000..5bd47bd354 --- /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 0000000000..c344203267 --- /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 0000000000..a114e30c99 --- /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 0000000000..d6bc528a21 --- /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 0000000000..a34827450c --- /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 0000000000..92c527a51e --- /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 0000000000..ec516f27ee --- /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 0000000000..031169c067 --- /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 0000000000..32804ba0c1 --- /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 0000000000..3292ee338f --- /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 0000000000..84406adfb0 --- /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 0000000000..9f1ef6915d --- /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 0000000000..dcd66163ad --- /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 0000000000..8e9e1ebfe1 --- /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 0000000000..fabfabaa59 --- /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 0000000000..739dcf4be7 --- /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 0000000000..f298c1c1c4 --- /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 0000000000..34e7488bf7 --- /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 0000000000..2de32d2c83 --- /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 0000000000..6da975adc7 --- /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 0000000000..495e3072ce --- /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 0000000000..0a1f3be4af --- /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 0000000000..baf7698bba --- /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 0000000000..9e3efa68ba --- /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 0000000000..8fb169f64e --- /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 0000000000..e41eb04ec1 --- /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 0000000000..4aa3dde48b --- /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 0000000000..f534992435 --- /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 0000000000..8e35137f37 --- /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 0000000000..28fa0afb72 --- /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 0000000000..7a2ff2e24e --- /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 0000000000..124065c7f9 --- /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 0000000000..6682fe8078 --- /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 0000000000..f67251c840 --- /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 0000000000..36d7be6fd0 --- /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 0000000000..fcbcb3eb75 --- /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 0000000000..bc00c099bf --- /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 0000000000..0b0ec30de0 --- /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 0000000000..564bc7da07 --- /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 0000000000..d7b7e667d6 --- /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 0000000000..cc5f0e13d0 --- /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 0000000000..11b981aa92 --- /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 0000000000..cf72d4893b --- /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 0000000000..be74542091 --- /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 0000000000..093c0b43ce --- /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 0000000000..bbd4205ce9 --- /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 0000000000..4718f3b760 --- /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 0000000000..40df19da45 --- /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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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> </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> </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> </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> </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> </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> </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> </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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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> </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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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> </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> </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> </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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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> </td><td class=example><pre>eg$ time -f "\t%E real,\t%U user,\t%S sys" 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> </td><td class=example><pre>eg$ export TIME="\t%E,\t%k" # If using bash or ksh ++eg$ setenv TIME "\t%E,\t%k" # 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> </td><td class=example><pre>eg$ time -v sleep 4 ++ Command being timed: "sleep 4" ++ 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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC11"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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 "real" input ++and output and do not include those supplied by caching devices. The ++meaning of "real" 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"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ > ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <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> </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"> ++ [ < ] </TD> ++<TD ALIGN="CENTER"> ++Back ++</TD> ++<TD> ++previous section in reading order ++</TD> ++<TD> ++1.2.2 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ > ] </TD> ++<TD ALIGN="CENTER"> ++Forward ++</TD> ++<TD> ++next section in reading order ++</TD> ++<TD> ++1.2.4 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ << ] </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"> ++ [ >> ] </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> ++ ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [Contents] </TD> ++<TD ALIGN="CENTER"> ++Contents ++</TD> ++<TD> ++table of contents ++</TD> ++<TD> ++ ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [Index] </TD> ++<TD ALIGN="CENTER"> ++Index ++</TD> ++<TD> ++concept index ++</TD> ++<TD> ++ ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ ? ] </TD> ++<TD ALIGN="CENTER"> ++About ++</TD> ++<TD> ++this page ++</TD> ++<TD> ++ ++</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 ++ <STRONG><== 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 0000000000..8d31b47a0c --- /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 0000000000..1030489b6f --- /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 0000000000..568d4233fd --- /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 0000000000..09b81439b6 --- /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 0000000000..b177949788 --- /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 0000000000..b7730de3b3 --- /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 0000000000..8602a88702 --- /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 0000000000..d243692769 --- /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( ¤t_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( ¤t_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 0000000000..2b76fe3d41 --- /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 0000000000..9e6ea2577e --- /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 0000000000..26dbea7415 --- /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 0000000000..122be2c18d --- /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 0000000000..ca76182344 --- /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" |