diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-27 15:14:24 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-27 15:29:45 +0100 |
commit | 29d6678fd546377459ef75cf54abeef5b969b5cf (patch) | |
tree | 8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-extended | |
parent | da49de6885ee1bc424e70bc02f21f6ab920efb55 (diff) | |
download | openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.bz2 openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.xz openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.zip |
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things
and is generally overwhelming. This commit splits it into several
logical sections roughly based on function, recipes.txt gives more
information about the classifications used.
The opportunity is also used to switch from "packages" to "recipes"
as used in OpenEmbedded as the term "packages" can be confusing to
people and has many different meanings.
Not all recipes have been classified yet, this is just a first pass
at separating things out. Some packages are moved to meta-extras as
they're no longer actively used or maintained.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
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 000000000..f6720111d --- /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 000000000..6ab528d0b --- /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 000000000..64ae9c2b6 --- /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 000000000..ff4cf489b --- /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 000000000..141168dc9 --- /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 000000000..f760e85ae --- /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 000000000..7d3d91a19 --- /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 000000000..42e89180d --- /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 000000000..ee563d626 --- /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 000000000..6f0ced757 --- /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 000000000..eaef5f3f3 --- /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 000000000..c6a5e38f7 --- /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 000000000..48d0e4e42 --- /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 000000000..648c725bb --- /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 000000000..dfa0d9150 --- /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 000000000..be9a64735 --- /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 000000000..b571986ef --- /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 000000000..9789737f9 --- /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 000000000..9c03eece5 --- /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 000000000..a65c433d5 --- /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 000000000..e14bf0e5a --- /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 000000000..0243769e9 --- /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 000000000..9658f630a --- /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 000000000..b8aacfb23 --- /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 000000000..21f1da434 --- /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 000000000..4bfa23d2e --- /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 000000000..537a6e412 --- /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 000000000..8424d91bb --- /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 000000000..ad707d30b --- /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 000000000..98aae0d45 --- /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 000000000..86bbf0d39 --- /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 000000000..9f05769f7 --- /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 000000000..2a924258d --- /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 000000000..b5e907a8d --- /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 000000000..7e6c97c14 --- /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 000000000..3f793eca5 --- /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 000000000..872a127f4 --- /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 000000000..a2017c572 --- /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 000000000..d72430ec0 --- /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 000000000..5bd47bd35 --- /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 000000000..c34420326 --- /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 000000000..a114e30c9 --- /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 000000000..d6bc528a2 --- /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 000000000..a34827450 --- /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 000000000..92c527a51 --- /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 000000000..ec516f27e --- /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 000000000..031169c06 --- /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 000000000..32804ba0c --- /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 000000000..3292ee338 --- /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 000000000..84406adfb --- /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 000000000..9f1ef6915 --- /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 000000000..dcd66163a --- /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 000000000..8e9e1ebfe --- /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 000000000..fabfabaa5 --- /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 000000000..739dcf4be --- /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 000000000..f298c1c1c --- /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 000000000..34e7488bf --- /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 000000000..2de32d2c8 --- /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 000000000..6da975adc --- /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 000000000..495e3072c --- /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 000000000..0a1f3be4a --- /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 000000000..baf7698bb --- /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 000000000..9e3efa68b --- /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 000000000..8fb169f64 --- /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 000000000..e41eb04ec --- /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 000000000..4aa3dde48 --- /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 000000000..f53499243 --- /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 000000000..8e35137f3 --- /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 000000000..28fa0afb7 --- /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 000000000..7a2ff2e24 --- /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 000000000..124065c7f --- /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 000000000..6682fe807 --- /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 000000000..f67251c84 --- /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 000000000..36d7be6fd --- /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 000000000..fcbcb3eb7 --- /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 000000000..bc00c099b --- /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 000000000..0b0ec30de --- /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 000000000..564bc7da0 --- /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 000000000..d7b7e667d --- /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 000000000..cc5f0e13d --- /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 000000000..11b981aa9 --- /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 000000000..cf72d4893 --- /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 000000000..be7454209 --- /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 000000000..093c0b43c --- /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 000000000..bbd4205ce --- /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 000000000..4718f3b76 --- /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 000000000..40df19da4 --- /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 000000000..8d31b47a0 --- /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 000000000..1030489b6 --- /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 000000000..568d4233f --- /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 000000000..09b81439b --- /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 000000000..b17794978 --- /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 000000000..b7730de3b --- /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 000000000..8602a8870 --- /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 000000000..d24369276 --- /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 000000000..2b76fe3d4 --- /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 000000000..9e6ea2577 --- /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 000000000..26dbea741 --- /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 000000000..122be2c18 --- /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 000000000..ca7618234 --- /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" |