Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
Index: Makefile
===================================================================
--- Makefile	(nonexistent)
+++ Makefile	(revision 5)
@@ -0,0 +1,56 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+
+include ../../../../build-system/constants.mk
+
+
+url         = $(DOWNLOAD_SERVER)/sources/packages/n/netkit-rusers
+
+versions    = 0.17
+pkgname     = netkit-rusers
+suffix      = tar.gz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+patches     = $(CURDIR)/patches/netkit-rusers-0.17.patch
+
+.NOTPARALLEL: $(patches)
+
+
+BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
+
+
+include ../../../../build-system/core.mk
+
+
+.PHONY: download_clean
+
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======" ; \
+	 for tarball in $(tarballs) ; do \
+	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
+	 done ; wait
+
+$(sha1s): $(tarballs)
+	@for sha in $@ ; do \
+	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
+	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
+	   touch $$sha ; \
+	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
+	   sha1sum --check $$sha ; ret="$$?" ; \
+	   if [ "$$ret" == "1" ]; then \
+	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
+	     exit 1 ; \
+	   fi ; \
+	 done
+
+$(patches): $(sha1s)
+	@echo -e "\n======= Create Patches =======\n" ; \
+	 ( cd create-0.17-patch ; ./create.patch.sh ) ; \
+	 echo -e "\n"
+
+download_clean:
+	@rm -f $(tarballs) $(sha1s) $(patches)
Index: create-0.17-patch/create.patch.sh
===================================================================
--- create-0.17-patch/create.patch.sh	(nonexistent)
+++ create-0.17-patch/create.patch.sh	(revision 5)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=0.17
+
+tar --files-from=file.list -xzvf ../netkit-rusers-$VERSION.tar.gz
+mv netkit-rusers-$VERSION netkit-rusers-$VERSION-orig
+
+cp -rf ./netkit-rusers-$VERSION-new ./netkit-rusers-$VERSION
+
+diff --unified -Nr  netkit-rusers-$VERSION-orig  netkit-rusers-$VERSION > netkit-rusers-$VERSION.patch
+
+mv netkit-rusers-$VERSION.patch ../patches
+
+rm -rf ./netkit-rusers-$VERSION
+rm -rf ./netkit-rusers-$VERSION-orig

Property changes on: create-0.17-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: create-0.17-patch/file.list
===================================================================
--- create-0.17-patch/file.list	(nonexistent)
+++ create-0.17-patch/file.list	(revision 5)
@@ -0,0 +1,9 @@
+netkit-rusers-0.17/configure
+netkit-rusers-0.17/rpc.rusersd/Makefile
+netkit-rusers-0.17/rpc.rusersd/rusers_proc.c
+netkit-rusers-0.17/rpc.rusersd/rusersd.c
+netkit-rusers-0.17/rup/Makefile
+netkit-rusers-0.17/rup/err.c
+netkit-rusers-0.17/rup/rup.c
+netkit-rusers-0.17/rusers/Makefile
+netkit-rusers-0.17/rusers/rusers.c
Index: create-0.17-patch/netkit-rusers-0.17-new/configure
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/configure	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/configure	(revision 5)
@@ -0,0 +1,326 @@
+#!/bin/sh
+#
+# This file was generated by confgen version 2.
+# Do not edit.
+#
+
+PREFIX='/usr'
+#EXECPREFIX='$PREFIX'
+INSTALLROOT=''
+BINMODE='755'
+#DAEMONMODE='$BINMODE'
+MANMODE='644'
+
+while [ x$1 != x ]; do case $1 in
+
+	--help)
+	cat <<EOF
+Usage: configure [options]
+    --help                Show this message
+    --with-debug          Enable debugging
+    --prefix=path         Prefix for location of files [/usr]
+    --exec-prefix=path    Location for arch-depedent files [prefix]
+    --installroot=root    Top of filesystem tree to install in [/]
+    --binmode=mode        Mode for binaries [755]
+    --daemonmode=mode     Mode for daemon binaries [same as binmode]
+    --manmode=mode        Mode for manual pages [644]
+    --with-c-compiler=cc  Program for compiling C source [guessed]
+EOF
+	exit 0;;
+	--verbose) ;;
+	--quiet) ;;
+
+	--subdir) . ../configure.defs;;
+
+	--with-debug|--debug) DEBUG=1;;
+	--prefix=*) PREFIX=`echo $1 | sed 's/^[^=]*=//'` ;;
+	--exec-prefix=*) EXECPREFIX=`echo $1 | sed 's/^[^=]*=//'` ;;
+	--installroot=*) INSTALLROOT=`echo $1 | sed 's/^[^=]*=//'` ;;
+	--binmode=*) BINMODE=`echo $1 | sed 's/^[^=]*=//'` ;;
+	--daemonmode=*) DAEMONMODE=`echo $1 | sed 's/^[^=]*=//'` ;;
+	--manmode=*) MANMODE=`echo $1 | sed 's/^[^=]*=//'` ;;
+	--with-c-compiler=*) CC=`echo $1 | sed 's/^[^=]*=//'` ;;
+	*) echo "Unrecognized option: $1"; exit 1;;
+esac 
+shift
+done
+
+if [ x$EXECPREFIX = x ]; then 
+	EXECPREFIX="$PREFIX"
+fi
+
+if [ x$DAEMONMODE = x ]; then 
+	DAEMONMODE="$BINMODE"
+fi
+
+BINDIR="$EXECPREFIX/bin"
+SBINDIR="$EXECPREFIX/sbin"
+MANDIR="$PREFIX/share/man"
+
+echo "Directories: $BINDIR $SBINDIR $MANDIR "
+
+if [ x$INSTALLROOT != x ]; then
+    echo "Installing in chroot tree rooted at $INSTALLROOT"
+fi
+
+##################################################
+
+WARNINGS='-Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline '
+
+cat << EOF > __conftest.c
+    int main() { int class=0; return class; }
+EOF
+
+if [ x"$CC" = x ]; then
+    echo -n 'Looking for a C compiler... '
+    for TRY in egcs gcc g++ CC c++ cc; do
+       (
+           $TRY __conftest.c -o __conftest || exit 1;
+#           ./__conftest || exit 1;
+       ) >/dev/null 2>&1 || continue;
+       CC=$TRY
+       break;
+    done
+    if [ x"$CC" = x ]; then
+        echo 'failed.'
+        echo 'Cannot find a C compiler. Run configure with --with-c-compiler.'
+        rm -f __conftest*
+        exit
+    fi
+    echo "$CC"
+else
+    echo -n 'Checking if C compiler works... '
+    if (
+          $CC __conftest.c -o __conftest || exit 1
+#          ./__conftest || exit 1
+       ) >/dev/null 2>&1; then
+         echo 'yes'
+     else
+         echo 'no'
+         echo 'Compiler '"$CC"' does not exist or cannot compile C; try another.'
+         rm -f __conftest*
+         exit
+     fi
+fi
+
+echo -n "Checking if $CC accepts gcc warnings... "
+if (
+    $CC $WARNINGS __conftest.c -o __conftest || exit 1
+   ) >/dev/null 2>&1; then
+     echo 'yes'
+     CC_WARNINGS=1
+else
+     echo 'no'
+fi
+
+if [ x$DEBUG = x ]; then
+    echo -n "Checking if $CC accepts -O2... "
+    if (
+         $CC -O2 __conftest.c -o __conftest
+       ) >/dev/null 2>&1; then
+         echo 'yes'
+         CFLAGS="$CFLAGS -O2"
+    else
+         echo 'no'
+         echo -n "Checking if $CC accepts -O... "
+         if (
+              $CC -O __conftest.c -o __conftest
+            ) >/dev/null 2>&1; then
+              echo 'yes'
+              CFLAGS="$CFLAGS -O"
+         else
+              echo 'no'
+         fi
+    fi
+
+else
+    echo -n "Checking if $CC accepts -g... "
+    if (
+         $CC -g __conftest.c -o __conftest
+       ) >/dev/null 2>&1; then
+         echo 'yes'
+         CFLAGS="$CFLAGS -g"
+    else
+         echo 'no'
+    fi
+
+fi
+
+LDFLAGS=$LDFLAGS
+LIBS=$LIBS
+
+rm -f __conftest*
+
+##################################################
+
+echo -n 'Checking for BSD signal semantics... '
+cat <<EOF >__conftest.c
+#include <unistd.h>
+#include <signal.h>
+int count=0;
+void handle(int foo) { count++; }
+int main() {
+    int pid=getpid();
+    signal(SIGINT, handle);
+    kill(pid,SIGINT);
+    kill(pid,SIGINT);
+    kill(pid,SIGINT);
+    if (count!=3) return 1;
+    return 0;
+}
+
+EOF
+if (
+      $CC $CFLAGS  __conftest.c  -o __conftest || exit 1
+#      ./__conftest || exit 1
+   ) >/dev/null 2>&1; then
+    echo 'yes'
+else
+    if (
+          $CC $CFLAGS -D__USE_BSD_SIGNAL __conftest.c  -o __conftest || exit 1
+#          ./__conftest || exit 1
+       ) >/dev/null 2>&1; then
+        echo '-D__USE_BSD_SIGNAL'
+        CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
+    else
+        echo 'no'
+        echo 'This package needs BSD signal semantics to run.'
+        rm -f __conftest*
+        exit
+    fi
+fi
+rm -f __conftest*
+
+##################################################
+
+echo -n 'Checking for GNU libc... '
+cat <<EOF >__conftest.c
+#include <stdio.h>
+#if defined(__GLIBC__) && (__GLIBC__ >= 2)
+int tester;
+#endif
+int main() { tester=6; return 0; }
+
+EOF
+if (
+      $CC $CFLAGS  __conftest.c  -o __conftest || exit 1
+   ) >/dev/null 2>&1; then
+    echo 'yes'
+    USE_GLIBC=1
+else
+    echo 'no'
+fi
+rm -f __conftest*
+
+##################################################
+
+echo -n 'Checking for snprintf declaration... '
+cat <<EOF >__conftest.c
+#include <stdio.h>
+int main() {
+    void *x = (void *)snprintf;
+    printf("%lx", (long)x);
+    return 0;
+}
+
+EOF
+if (
+      $CC $CFLAGS  __conftest.c  -o __conftest || exit 1
+   ) >/dev/null 2>&1; then
+    echo 'ok'
+else
+    if (
+          $CC $CFLAGS -D_GNU_SOURCE __conftest.c  -o __conftest || exit 1
+#          ./__conftest || exit 1
+       ) >/dev/null 2>&1; then
+        echo '-D_GNU_SOURCE'
+        CFLAGS="$CFLAGS -D_GNU_SOURCE"
+    else
+        echo 'manual'
+        CFLAGS="$CFLAGS -DDECLARE_SNPRINTF"
+    fi
+fi
+rm -f __conftest*
+
+echo -n 'Checking for snprintf implementation... '
+cat <<EOF >__conftest.c
+#include <stdio.h>
+#include <string.h>
+#ifdef DECLARE_SNPRINTF
+#ifdef __cplusplus
+extern "C"
+#endif /*__cplusplus*/
+int snprintf(char *, int, const char *, ...);
+#endif /*DECLARE_SNPRINTF*/
+int main() {
+    char buf[32];
+    snprintf(buf, 8, "%s", "1234567890");
+    if (strlen(buf)!=7) return 1;
+    return 0;
+}
+
+EOF
+if (
+      $CC $CFLAGS  __conftest.c $LIBBSD -o __conftest || exit 1
+#      ./__conftest || exit 1
+   ) >/dev/null 2>&1; then
+    echo 'ok'
+else
+    if (
+          $CC $CFLAGS  __conftest.c -lsnprintf $LIBBSD -o __conftest || exit 1
+#          ./__conftest || exit 1
+       ) >/dev/null 2>&1; then
+        echo '-lsnprintf'
+        LIBS="$LIBS -lsnprintf"
+    else
+        if (
+              $CC $CFLAGS  __conftest.c -ldb $LIBBSD -o __conftest || exit 1
+#              ./__conftest || exit 1
+           ) >/dev/null 2>&1; then
+            echo '-ldb'
+            LIBS="$LIBS -ldb"
+        else
+            echo 'missing'
+            echo 'This package requires snprintf.'
+            rm -f __conftest*
+            exit
+        fi
+    fi
+fi
+rm -f __conftest*
+
+##################################################
+
+## libbsd should go last in case it's broken
+if [ "x$LIBBSD" != x ]; then
+    LIBS="$LIBS $LIBBSD"
+fi
+
+echo 'Generating MCONFIG...'
+(
+    echo -n '# Generated by configure (confgen version 2) on '
+    date
+    echo '#'
+    echo
+
+    echo "BINDIR=$BINDIR"
+    echo "SBINDIR=$SBINDIR"
+    echo "MANDIR=$MANDIR"
+    echo "BINMODE=$BINMODE"
+    echo "DAEMONMODE=$DAEMONMODE"
+    echo "MANMODE=$MANMODE"
+    echo "PREFIX=$PREFIX"
+    echo "EXECPREFIX=$EXECPREFIX"
+    echo "INSTALLROOT=$INSTALLROOT"
+    echo "CC=$CC"
+    if [ x$CC_WARNINGS != x ]; then
+        CFLAGS="$CFLAGS $WARNINGS"
+    fi
+
+    echo "CFLAGS=$CFLAGS" | sed 's/= */=/'
+    echo "LDFLAGS=$LDFLAGS" | sed 's/= */=/'
+    echo "LIBS=$LIBS" | sed 's/= */=/'
+
+    echo "USE_GLIBC=$USE_GLIBC"
+) > MCONFIG
+

Property changes on: create-0.17-patch/netkit-rusers-0.17-new/configure
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/Makefile
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/Makefile	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/Makefile	(revision 5)
@@ -0,0 +1,48 @@
+all: rusersd
+include ../MCONFIG
+include ../MRULES
+
+ifeq ($(USE_GLIBC),1)
+CFLAGS += -DGNU_LIBC -D_GNU_SOURCE -D_NO_UT_TIME
+endif
+
+
+#  .if exists(/usr/include/X11/extensions/xidle.h)
+#CFLAGS+= -DXIDLE
+#LDADD+= -L/usr/X386/lib -lXext -lX11
+#  .endif
+
+#
+# use BUILD machine rpcgen
+#
+RPCGEN=/usr/bin/rpcgen
+
+# Warning, do not put this in the current directory without updating
+# the clean target.
+# RUSERSX=/usr/include/rpcsvc/rusers.x
+RUSERSX=$(TARGET_DEST_DIR)/usr/include/rpcsvc/rusers.x
+
+rusersd: rusersd.o rusers_proc.o rusers_xdr.o daemon.o
+	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
+
+install: rusersd
+	install -s -m$(DAEMONMODE) rusersd $(INSTALLROOT)$(SBINDIR)/rpc.rusersd
+	install -m$(MANMODE) rpc.rusersd.8 $(INSTALLROOT)$(MANDIR)/man8
+	ln -sf rpc.rusersd.8 $(INSTALLROOT)$(MANDIR)/man8/rusersd.8
+
+clean:
+	rm -f *.o rusersd rusers.h rusers_xdr.c rusers.x
+
+rusersd.o: ../version.h
+rusersd.o rusers_proc.o: rusers.h
+rusers_xdr.o: rusers_xdr.c rusers.h
+
+# see rusers makefile for an explanation of why this is necessary
+rusers.x: 
+	ln -s $(RUSERSX) rusers.x
+
+rusers.h: $(RUSERSX) rusers.x
+	$(RPCGEN) -h -o rusers.h rusers.x
+
+rusers_xdr.c: $(RUSERSX)
+	$(RPCGEN) -c -C -o rusers_xdr.c rusers.x
Index: create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/rusers_proc.c
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/rusers_proc.c	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/rusers_proc.c	(revision 5)
@@ -0,0 +1,470 @@
+#/*-
+ *  Copyright (c) 1993 John Brezak
+ *  All rights reserved.
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *  3. The name of the author may not be used to endorse or promote products
+ *     derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+char rp_rcsid[] = 
+  "$Id: rusers_proc.c,v 1.16 2000/07/23 03:11:56 dholland Exp $";
+
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+#include <utmp.h>
+#include <stdio.h>
+#include <syslog.h>
+#include <string.h>
+#include <rpc/rpc.h>
+#include <sys/socket.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#ifdef XIDLE
+#include <setjmp.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/xidle.h>
+#endif
+
+/*
+ * Sigh.
+ */
+#ifdef __GLIBC__
+	#define UT_TIME ut_xtime
+	#define RUT_TIME rut_time
+#else
+	#define UT_TIME ut_time
+	#define RUT_TIME ut_time
+#endif
+
+/* Glibc strikes again */
+#ifdef __GLIBC__
+	#include <rpcsvc/rusers.h>
+#else
+	#include "rusers.h"
+#endif 
+
+void rusers_service(struct svc_req *rqstp, SVCXPRT *transp);
+
+#define	IGNOREUSER	"sleeper"
+
+#ifndef _PATH_DEV
+#define _PATH_DEV "/dev"
+#endif
+
+#ifndef UT_LINESIZE
+#define UT_LINESIZE sizeof(((struct utmp *)0)->ut_line)
+#endif
+#ifndef UT_NAMESIZE
+#define UT_NAMESIZE sizeof(((struct utmp *)0)->ut_name)
+#endif
+#ifndef UT_HOSTSIZE
+#define UT_HOSTSIZE sizeof(((struct utmp *)0)->ut_host)
+#endif
+
+typedef char ut_line_t[UT_LINESIZE+1];
+typedef char ut_name_t[UT_NAMESIZE+1];
+typedef char ut_host_t[UT_HOSTSIZE+1];
+
+struct rusers_utmp utmps[MAXUSERS];
+struct utmpidle *utmp_idlep[MAXUSERS];
+struct utmpidle utmp_idle[MAXUSERS];
+ut_line_t line[MAXUSERS];
+ut_name_t name[MAXUSERS];
+ut_host_t host[MAXUSERS];
+
+extern int from_inetd;
+
+#ifdef XIDLE
+Display *dpy;
+
+static sigjmp_buf openAbort;
+
+static void
+abortOpen ()
+{
+    siglongjmp (openAbort, 1);
+}
+
+static long
+XqueryIdle(char *display)
+{
+        int first_event, first_error;
+        Time IdleTime;
+	int result = -1;
+
+        (void) signal (SIGALRM, abortOpen);
+        (void) alarm ((unsigned) 10);
+        if (!sigsetjmp(openAbort, 1)) {
+                if (!(dpy= XOpenDisplay(display))) {
+                        syslog(LOG_ERR, "Cannot open display %s", display);
+                        goto out;
+                }
+                if (XidleQueryExtension(dpy, &first_event, &first_error)) {
+                        if (!XGetIdleTime(dpy, &IdleTime)) {
+                                syslog(LOG_ERR, "%s: Unable to get idle time.", display);
+                                goto out;
+                        }
+                }
+                else {
+                        syslog(LOG_ERR, "%s: Xidle extension not loaded.", display);
+                        goto out;
+                }
+                XCloseDisplay(dpy);
+        }
+        else {
+                syslog(LOG_ERR, "%s: Server grabbed for over 10 seconds.", display);
+                goto out;
+        }
+
+        IdleTime /= 1000;
+        result = (IdleTime + 30) / 60;
+
+out:
+        (void) signal (SIGALRM, SIG_DFL);
+        (void) alarm ((unsigned) 0);
+	return result;
+}
+#endif
+
+static u_int
+getidle(char *tty, char *display)
+{
+        struct stat st;
+        char devname[PATH_MAX];
+        time_t now;
+        long idletime;
+        
+	(void)display;
+
+	/* Don't trust utmp data */
+	if (strstr(tty, "../"))
+		return 0;
+
+        /*
+         * If this is an X terminal or console, then try the
+         * XIdle extension
+         */
+#ifdef XIDLE
+        if (display && *display && (idletime = XqueryIdle(display)) >= 0)
+                return(idletime);
+#endif
+        idletime = 0;
+#if 0
+        if (*tty == 'X') {
+                u_long kbd_idle, mouse_idle;
+#if	!defined(i386)
+                kbd_idle = getidle("kbd", NULL);
+#else
+#if (__GNUC__ >= 2)
+#warning i386 console hack here
+#endif
+                kbd_idle = getidle("vga", NULL);
+#endif
+                mouse_idle = getidle("mouse", NULL);
+                idletime = (kbd_idle < mouse_idle)?kbd_idle:mouse_idle;
+        }
+        else {
+#endif
+	{
+                snprintf(devname, sizeof(devname), "%s/%s", _PATH_DEV, tty);
+                if (stat(devname, &st) < 0) {
+#ifdef DEBUG
+                        printf("%s: %s\n", devname, strerror(errno));
+#endif
+                        return(-1);
+                }
+                time(&now);
+#ifdef DEBUG
+                printf("%s: now=%d atime=%d\n", devname, now,
+                       st.st_atime);
+#endif
+		if (now < st.st_atime) idletime = 0;
+                else idletime = now - st.st_atime;
+                idletime = (idletime + 30) / 60; /* secs->mins */
+        }
+	/* idletime is unsigned */
+        /* if (idletime < 0) idletime = 0; */
+
+        return idletime;
+}
+
+static        
+char *
+rusers_num(void *ign1, struct svc_req *ign2)
+{
+        static int num_users = 0;
+	struct utmp *uptr;
+	(void)ign1;
+	(void)ign2;
+
+        /* only use entries with both name and line fields */
+
+	setutent();
+        while ((uptr = getutent())!=NULL) {
+                if (*uptr->ut_name && *uptr->ut_line &&
+		    strncmp(uptr->ut_name, IGNOREUSER,
+                            sizeof(uptr->ut_name))
+#ifdef USER_PROCESS
+                    && uptr->ut_type == USER_PROCESS
+#endif
+                    ) {
+                        num_users++;
+                }
+	}
+	endutent();
+        return (char *) &num_users;
+}
+
+static utmp_array *
+do_names_3(int all)
+{
+        static utmp_array ut;
+	struct utmp *uptr;
+        int nusers = 0;
+        
+	(void)all;
+
+        memset(&ut, 0, sizeof(ut));
+        ut.utmp_array_val = &utmps[0];
+
+        /* only use entries with both name and line fields */
+        
+	setutent();
+        while ((uptr = getutent())!=NULL && nusers < MAXUSERS) {
+                if (*uptr->ut_name && *uptr->ut_line &&
+		    strncmp(uptr->ut_name, IGNOREUSER,
+                            sizeof(uptr->ut_name))
+#ifdef USER_PROCESS
+                    && uptr->ut_type == USER_PROCESS
+#endif
+                    ) {
+                        utmps[nusers].ut_type = RUSERS_USER_PROCESS;
+                        utmps[nusers].ut_time =
+                                uptr->UT_TIME;
+                        utmps[nusers].ut_idle =
+                                getidle(uptr->ut_line, uptr->ut_host);
+                        utmps[nusers].ut_line = line[nusers];
+                        strncpy(line[nusers], uptr->ut_line, 
+				sizeof(line[nusers]));
+			line[nusers][sizeof(line[nusers])-1] = 0;
+                        utmps[nusers].ut_user = name[nusers];
+                        strncpy(name[nusers], uptr->ut_name, 
+				sizeof(name[nusers]));
+			name[nusers][sizeof(name[nusers])-1] = 0;
+                        utmps[nusers].ut_host = host[nusers];
+                        strncpy(host[nusers], uptr->ut_host, 
+				sizeof(host[nusers]));
+			host[nusers][sizeof(host[nusers])-1] = 0;
+
+			line[nusers][UT_LINESIZE] = '\0';
+			name[nusers][UT_NAMESIZE] = '\0';
+			host[nusers][UT_HOSTSIZE] = '\0';
+
+                        nusers++;
+                }
+	}
+        ut.utmp_array_len = nusers;
+
+	endutent();
+        return &ut;
+}
+
+utmp_array *
+rusersproc_names_3(void *tmp1, CLIENT *tmp2)
+{
+	(void)tmp1;
+	(void)tmp2;
+        return do_names_3(0);
+}
+
+utmp_array *
+rusersproc_allnames_3(void *tmp1, CLIENT *tmp2)
+{
+	(void)tmp1;
+	(void)tmp2;
+        return do_names_3(1);
+}
+
+static void do_strncpy(char *tgt, const char *src, size_t len) {
+    strncpy(tgt, src, len);
+    tgt[len-1] = 0;
+}
+
+static 
+struct utmpidlearr *
+do_names_2(int all)
+{
+        static struct utmpidlearr ut;
+	struct utmp *uptr;
+        int nusers = 0;
+        
+	(void)all;
+
+        memset(&ut, 0, sizeof(ut));
+        ut.uia_arr = utmp_idlep;
+        ut.uia_cnt = 0;
+        
+        /* only use entries with both name and line fields */
+
+	setutent();
+        while ((uptr = getutent())!=NULL && nusers < MAXUSERS) {
+                if (*uptr->ut_name && *uptr->ut_line &&
+		    strncmp(uptr->ut_name, IGNOREUSER,
+                            sizeof(uptr->ut_name))
+#ifdef USER_PROCESS
+                    && uptr->ut_type == USER_PROCESS
+#endif
+                    ) {
+                        utmp_idlep[nusers] = &utmp_idle[nusers];
+                        utmp_idle[nusers].ui_utmp.ut_time =
+                                uptr->UT_TIME;
+                        utmp_idle[nusers].ui_idle =
+                                getidle(uptr->ut_line, uptr->ut_host);
+                        do_strncpy(utmp_idle[nusers].ui_utmp.ut_line, 
+				uptr->ut_line, 
+				sizeof(utmp_idle[nusers].ui_utmp.ut_line));
+			/* note NOT do_strncpy */
+                        strncpy(utmp_idle[nusers].ui_utmp.ut_name, 
+				uptr->ut_name, 
+				sizeof(utmp_idle[nusers].ui_utmp.ut_name));
+                        do_strncpy(utmp_idle[nusers].ui_utmp.ut_host, 
+				uptr->ut_host, 
+				sizeof(utmp_idle[nusers].ui_utmp.ut_host));
+                        nusers++;
+                }
+	}
+
+        ut.uia_cnt = nusers;
+	endutent();
+        return(&ut);
+}
+
+static
+char *
+rusersproc_names_2(void)
+{
+        return (char *) do_names_2(0);
+}
+
+static
+char *
+rusersproc_allnames_2(void)
+{
+        return (char *) do_names_2(1);
+}
+
+void
+rusers_service(struct svc_req *rqstp, SVCXPRT *transp)
+{
+	union {
+		int fill;
+	} argument;
+	char *result;
+	bool_t (*xdr_argument)(void);
+	xdrproc_t xdr_result;
+	typedef char *(*localproc_t)(void *, struct svc_req *);
+	localproc_t local;
+
+	switch (rqstp->rq_proc) {
+	case NULLPROC:
+		(void)svc_sendreply(transp, (xdrproc_t) xdr_void, NULL);
+		goto leave;
+
+	case RUSERSPROC_NUM:
+		xdr_argument = xdr_void;
+		xdr_result = (xdrproc_t) xdr_int;
+                switch (rqstp->rq_vers) {
+                case RUSERSVERS_3:
+                case RUSERSVERS_IDLE:
+                        local = rusers_num;
+                        break;
+                default:
+                        svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
+                        goto leave;
+                }
+		break;
+
+	case RUSERSPROC_NAMES:
+		xdr_argument = xdr_void;
+		xdr_result = (xdrproc_t) xdr_utmp_array;
+                switch (rqstp->rq_vers) {
+                case RUSERSVERS_3:
+                        local = (localproc_t) rusersproc_names_3;
+                        break;
+
+                case RUSERSVERS_IDLE:
+                        xdr_result = (xdrproc_t) xdr_utmpidlearr;
+                        local = (localproc_t) rusersproc_names_2;
+                        break;
+
+                default:
+                        svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
+                        goto leave;
+                        /*NOTREACHED*/
+                }
+		break;
+
+	case RUSERSPROC_ALLNAMES:
+		xdr_argument = xdr_void;
+		xdr_result = (xdrproc_t) xdr_utmp_array;
+                switch (rqstp->rq_vers) {
+                case RUSERSVERS_3:
+                        local = (localproc_t) rusersproc_allnames_3;
+                        break;
+
+                case RUSERSVERS_IDLE:
+                        xdr_result = (xdrproc_t) xdr_utmpidlearr;
+                        local = (localproc_t) rusersproc_allnames_2;
+                        break;
+
+                default:
+                        svcerr_progvers(transp, RUSERSVERS_IDLE, RUSERSVERS_3);
+                        goto leave;
+                        /*NOTREACHED*/
+                }
+		break;
+
+	default:
+		svcerr_noproc(transp);
+		goto leave;
+	}
+	memset(&argument, 0, sizeof(argument));
+	if (!svc_getargs(transp, (xdrproc_t)xdr_argument, (char *)&argument)) {
+		svcerr_decode(transp);
+		goto leave;
+	}
+	result = (*local)(&argument, rqstp);
+	if (result != NULL && 
+	    !svc_sendreply(transp, xdr_result, result)) {
+		svcerr_systemerr(transp);
+	}
+	if (!svc_freeargs(transp, (xdrproc_t)xdr_argument, (char *)&argument)) {
+		(void)fprintf(stderr, "unable to free arguments\n");
+		exit(1);
+	}
+leave:
+        if (from_inetd)
+                exit(0);
+}
Index: create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/rusersd.c
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/rusersd.c	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd/rusersd.c	(revision 5)
@@ -0,0 +1,135 @@
+/*-
+ *  Copyright (c) 1993 John Brezak
+ *  All rights reserved.
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *  3. The name of the author may not be used to endorse or promote products
+ *     derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+char rusersd_rcsid[] = 
+  "$Id: rusersd.c,v 1.10 2000/07/23 04:09:28 dholland Exp $";
+
+#include <stdio.h>
+#include <signal.h>
+#include <sys/socket.h>
+#include <syslog.h>
+#include <pwd.h>
+#include <rpc/rpc.h>
+#include <rpc/pmap_clnt.h>
+#include <unistd.h>
+#include <grp.h>
+#ifdef __GLIBC__
+	#include <rpcsvc/rusers.h>
+#else
+	#include "rusers.h"
+#endif
+
+#include "../version.h"
+
+void rusers_service(struct svc_req *rqstp, SVCXPRT *transp);
+int daemon(int, int);
+
+int from_inetd = 1;
+
+static
+void
+cleanup(int ignore)
+{
+	(void)ignore;
+
+        pmap_unset(RUSERSPROG, RUSERSVERS_3);
+        pmap_unset(RUSERSPROG, RUSERSVERS_IDLE);
+        exit(0);
+}
+
+int
+main(void)
+{
+	SVCXPRT *transp;
+        int sock = 0;
+        int proto = 0;
+	struct sockaddr_in from;
+	socklen_t fromlen = (socklen_t)sizeof(from);
+
+ 
+	/* Open syslog */
+	openlog("rpc.rusersd", LOG_PID, LOG_DAEMON);
+ 
+	/* Drop privilege */
+	if (getuid() == 0) {
+		struct passwd	*pw;
+ 
+		if ((pw = getpwnam("nobody")) == NULL) {
+			syslog(LOG_WARNING, "Unable to find user nobody: %m");
+			exit(1);
+		}
+		if (setgroups(1, &pw->pw_gid) < 0
+		 || setgid(pw->pw_gid) < 0
+		 || setuid(pw->pw_uid) < 0) {
+			syslog(LOG_WARNING, "Failed to drop privilege: %m");
+			exit(1);
+		}
+	}
+ 
+	
+	/*
+	 * See if inetd started us
+	 */
+	if (getsockname(0, (struct sockaddr *)&from, &fromlen) < 0) {
+		from_inetd = 0;
+		sock = RPC_ANYSOCK;
+		proto = IPPROTO_UDP;
+	}
+	
+	if (!from_inetd) {
+		daemon(0, 0);
+
+		pmap_unset(RUSERSPROG, RUSERSVERS_3);
+		pmap_unset(RUSERSPROG, RUSERSVERS_IDLE);
+
+		signal(SIGINT, cleanup);
+		signal(SIGTERM, cleanup);
+		signal(SIGHUP, cleanup);
+	}
+
+	openlog("rpc.rusersd", LOG_PID, LOG_DAEMON);
+	
+	transp = svcudp_create(sock);
+	if (transp == NULL) {
+		syslog(LOG_ERR, "cannot create udp service.");
+		exit(1);
+	}
+	if (!svc_register(transp, RUSERSPROG, RUSERSVERS_3, rusers_service, proto)) {
+		syslog(LOG_ERR, "unable to register (RUSERSPROG, RUSERSVERS_3, %s).", proto?"udp":"(inetd)");
+		exit(1);
+	}
+
+	if (!svc_register(transp, RUSERSPROG, RUSERSVERS_IDLE, rusers_service, proto)) {
+		syslog(LOG_ERR, "unable to register (RUSERSPROG, RUSERSVERS_IDLE, %s).", proto?"udp":"(inetd)");
+		exit(1);
+	}
+
+	svc_run();
+	syslog(LOG_ERR, "svc_run returned");
+	exit(1);
+}
Index: create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd	(revision 5)

Property changes on: create-0.17-patch/netkit-rusers-0.17-new/rpc.rusersd
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: create-0.17-patch/netkit-rusers-0.17-new/rup/Makefile
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rup/Makefile	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rup/Makefile	(revision 5)
@@ -0,0 +1,48 @@
+all: rup
+
+include ../MCONFIG
+include ../MRULES
+
+ifeq ($(USE_GLIBC),1)
+CFLAGS += -DGNU_LIBC -D_GNU_SOURCE
+endif
+
+CFLAGS += -I.
+
+#RPCGEN=../../netkit-base/rpcgen/rpcgen
+#
+# use BUILD machine rpcgen
+#
+RPCGEN=/usr/bin/rpcgen
+
+# Warning, do NOT put this in the current directory without updating
+# the clean target.
+# RSTATX=/usr/include/rpcsvc/rstat.x
+RSTATX=$(TARGET_DEST_DIR)/usr/include/rpcsvc/rstat.x
+
+rup: rup.o rstat_xdr.o err.o
+	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
+
+rup.o: ../version.h
+
+install: rup
+	install -s -m$(BINMODE) rup $(INSTALLROOT)$(BINDIR)
+	install -m$(MANMODE) rup.1 $(INSTALLROOT)$(MANDIR)/man1
+
+clean:
+	rm -f *.o rup rstat.h rstat_xdr.c rstat.x
+
+rstat_xdr.o: rstat_xdr.c rstat.h
+
+# rpcgen includes the pathname you specify for the .x file as the
+# pathname of the .h file when it builds the .c file. Therefore,
+# do it in the current directory. 
+
+rstat.x: 
+	ln -s $(RSTATX) $@
+
+rstat.h: $(RSTATX) rstat.x
+	$(RPCGEN) -h -o rstat.h rstat.x
+
+rstat_xdr.c: $(RSTATX) rstat.x
+	$(RPCGEN) -c -C -o rstat_xdr.c rstat.x
Index: create-0.17-patch/netkit-rusers-0.17-new/rup/err.c
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rup/err.c	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rup/err.c	(revision 5)
@@ -0,0 +1,30 @@
+/*
+ * Reimplementation of err/warnx.
+ */
+
+char err_rcsid[] = 
+  "$Id: err.c,v 1.1 1997/04/05 22:13:31 dholland Exp $";
+
+#include <stdlib.h> /* exit() */
+#include <stdio.h>
+#include <stdarg.h>
+#include <err.h>
+
+void err(int eval, const char *fmt, ...) {
+    va_list ap;
+    va_start(ap, fmt);
+    fprintf(stderr, "rup: ");
+    vfprintf(stderr, fmt, ap);
+    fprintf(stderr, "%m\n");
+    va_end(ap);
+    exit(eval);
+}
+
+void warnx(const char *fmt, ...) {
+    va_list ap;
+    va_start(ap, fmt);
+    fprintf(stderr, "rup: ");
+    vfprintf(stderr, fmt, ap);
+    fprintf(stderr, "\n");
+    va_end(ap);
+}
Index: create-0.17-patch/netkit-rusers-0.17-new/rup/rup.c
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rup/rup.c	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rup/rup.c	(revision 5)
@@ -0,0 +1,346 @@
+/*-
+ * Copyright (c) 1993, John Brezak
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+char rcsid[] = "$Id: rup.c,v 1.8 2000/07/22 19:51:40 dholland Exp $";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netdb.h>
+#include <rpc/rpc.h>
+#include <arpa/inet.h>
+#include <rpc/pmap_clnt.h>
+#include <getopt.h>
+#include <err.h>
+
+#undef FSHIFT			/* Use protocol's shift and scale values */
+#undef FSCALE
+#include <rpcsvc/rstat.h>
+
+#include "../version.h"
+
+#define HOST_WIDTH 24
+
+static int print_rup_data(const char *host, statstime *host_stat);
+
+static int printtime;			/* print the remote host(s)'s time */
+static int printseconds;                /* print in seconds, not formatted */
+
+struct host_list {
+	struct host_list *next;
+	struct in_addr addr;
+} *hosts;
+
+static
+int
+search_host(struct in_addr addr)
+{
+	struct host_list *hp;
+	
+	if (!hosts)
+		return(0);
+
+	for (hp = hosts; hp != NULL; hp = hp->next) {
+		if (hp->addr.s_addr == addr.s_addr)
+			return(1);
+	}
+	return(0);
+}
+
+static
+void
+remember_host(struct in_addr addr)
+{
+	struct host_list *hp;
+
+	if (!(hp = (struct host_list *)malloc(sizeof(struct host_list)))) {
+		err(1, "malloc");
+		/* NOTREACHED */
+	}
+	hp->addr.s_addr = addr.s_addr;
+	hp->next = hosts;
+	hosts = hp;
+}
+
+
+struct rup_data {
+	char *host;
+	struct statstime statstime;
+};
+struct rup_data *rup_data;
+int rup_data_idx = 0;
+int rup_data_max = 0;
+
+enum sort_type { 
+	SORT_NONE,
+	SORT_HOST,
+	SORT_LDAV,
+	SORT_UPTIME
+};
+enum sort_type sort_type;
+
+static int
+compare(const void *a1, const void *a2)
+{
+	const struct rup_data *d1 = (const struct rup_data *) a1;
+	const struct rup_data *d2 = (const struct rup_data *) a2;
+
+	switch(sort_type) {
+	case SORT_HOST:
+		return strcmp(d1->host, d2->host);
+	case SORT_LDAV:
+		return d1->statstime.avenrun[0] 
+			- d2->statstime.avenrun[0];
+	case SORT_UPTIME:
+		return d1->statstime.boottime.tv_sec 
+			- d2->statstime.boottime.tv_sec;
+	default:
+		/* something's really wrong here */
+		abort();
+	}
+}
+
+static
+void
+remember_rup_data(const char *host, const struct statstime *st)
+{
+        if (rup_data_idx >= rup_data_max) {
+                rup_data_max += 16;
+                rup_data = realloc (rup_data, 
+				rup_data_max * sizeof(struct rup_data));
+                if (rup_data == NULL) {
+                        err (1, "realloc");
+			/* NOTREACHED */
+                }
+        }
+	
+	rup_data[rup_data_idx].host = strdup(host);
+	rup_data[rup_data_idx].statstime = *st;
+	rup_data_idx++;
+}
+
+
+static
+int
+rstat_reply(char *replyp, struct sockaddr_in *raddrp)
+{
+	struct hostent *hp;
+	const char *host;
+	statstime *host_stat = (statstime *)replyp;
+
+	if (!search_host(raddrp->sin_addr)) {
+		hp = gethostbyaddr((char *)&raddrp->sin_addr.s_addr,
+			sizeof(struct in_addr), AF_INET);
+
+		if (hp)
+			host = hp->h_name;
+		else
+			host = inet_ntoa(raddrp->sin_addr);
+
+		remember_host(raddrp->sin_addr);
+
+		if (sort_type != SORT_NONE) {
+			remember_rup_data(host, host_stat);
+		} else {
+			print_rup_data(host, host_stat);
+		}
+	}
+
+	return 0;
+}
+
+static 
+int
+print_rup_data(const char *host, statstime *host_stat)
+{
+	time_t hosttime;
+	long uptime;
+
+	printf("%-*.*s", HOST_WIDTH, HOST_WIDTH, host);
+
+	hosttime = host_stat->curtime.tv_sec;
+	host_stat->curtime.tv_sec -= host_stat->boottime.tv_sec;
+	uptime = host_stat->curtime.tv_sec;	/* uptime in seconds */
+	
+	if (printtime) {
+		if (printseconds) {
+			printf(" %-12lld", (unsigned long long) hosttime);
+		}
+		else {
+			struct tm *time = localtime(&hosttime);
+			printf(" %2d:%02d%cm", time->tm_hour % 12,
+			       time->tm_min,
+			       (time->tm_hour >= 12) ? 'p' : 'a');
+		}
+	}
+
+	if (printseconds) {
+		printf(" up %12ld", uptime);
+	}
+	else {
+		uptime /= 60;  /* convert to minutes */
+		printf(" up ");
+		if (uptime > 24*60) {		/* more than 1 day? */ 
+			int days = uptime/(24*60);
+			printf("%3d %s ", days, days > 1 ? "days," : "day, ");
+			uptime %= (24*60);
+		}
+		else {
+			printf("          ");
+		}
+
+		if (uptime > 60) {
+			int hours = uptime/60;
+			int mins = uptime%60;
+			printf("%2d:%02d,   ", hours, mins);
+		}
+		else {
+			printf("%2ld mins, ", uptime);
+		}
+	}
+	printf(" load average: %.2f %.2f %.2f\n",
+	       (double)host_stat->avenrun[0]/FSCALE,
+	       (double)host_stat->avenrun[1]/FSCALE,
+	       (double)host_stat->avenrun[2]/FSCALE);
+
+	return(0);
+}
+
+static
+void
+onehost(const char *host)
+{
+	CLIENT *rstat_clnt;
+	statstime host_stat;
+	struct timeval foo;
+	
+	rstat_clnt = clnt_create(host, RSTATPROG, RSTATVERS_TIME, "udp");
+	if (rstat_clnt == NULL) {
+		warnx("%s", clnt_spcreateerror(host));
+		return;
+	}
+
+	memset(&host_stat, 0, sizeof(host_stat));
+	if (clnt_call(rstat_clnt, RSTATPROC_STATS, 
+		      (xdrproc_t) xdr_void, NULL, 
+		      (xdrproc_t) xdr_statstime, (char *)&host_stat, 
+		      foo) != RPC_SUCCESS) 
+	{
+		warnx("%s",  clnt_sperror(rstat_clnt, host));
+		return;
+	}
+
+	print_rup_data(host, &host_stat);
+	clnt_destroy(rstat_clnt);
+}
+
+static
+void
+allhosts(void)
+{
+	statstime host_stat;
+	enum clnt_stat clnt_stat;
+	int i;
+
+	if (sort_type != SORT_NONE) {
+		printf("collecting responses...");
+		fflush(stdout);
+	}
+
+	clnt_stat = clnt_broadcast(RSTATPROG, RSTATVERS_TIME, RSTATPROC_STATS,
+				   (xdrproc_t) xdr_void, NULL,
+				   (xdrproc_t) xdr_statstime, 
+				   (char *) &host_stat, 
+				   (resultproc_t) rstat_reply);
+	if (clnt_stat != RPC_SUCCESS && clnt_stat != RPC_TIMEDOUT) {
+		warnx("%s", clnt_sperrno(clnt_stat));
+		exit(1);
+	}
+
+	if (sort_type != SORT_NONE) {
+		putchar('\n');
+		qsort(rup_data, rup_data_idx, sizeof(struct rup_data), compare);
+
+		for (i = 0; i < rup_data_idx; i++) {
+			print_rup_data(rup_data[i].host, &rup_data[i].statstime);
+		}
+	}
+}
+
+static void usage(void)
+{
+	fprintf(stderr, "Usage: rup [-dhlt] [hosts ...]\n");
+	exit(1);
+}
+
+int main(int argc, char *argv[])
+{
+	int ch;
+
+	sort_type = SORT_NONE;
+	while ((ch = getopt(argc, argv, "dshlt")) != -1)
+		switch (ch) {
+		case 'd':
+			printtime = 1;
+			break;
+		case 's':
+			printseconds = 1;
+			break;
+		case 'h':
+			sort_type = SORT_HOST;
+			break;
+		case 'l':
+			sort_type = SORT_LDAV;
+			break;
+		case 't':
+			sort_type = SORT_UPTIME;
+			break;
+		default:
+			usage();
+			/*NOTREACHED*/
+		}
+	
+	setlinebuf(stdout);
+
+	if (argc == optind)
+		allhosts();
+	else {
+		for (; optind < argc; optind++)
+			onehost(argv[optind]);
+	}
+
+	exit(0);
+}
Index: create-0.17-patch/netkit-rusers-0.17-new/rup
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rup	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rup	(revision 5)

Property changes on: create-0.17-patch/netkit-rusers-0.17-new/rup
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: create-0.17-patch/netkit-rusers-0.17-new/rusers/Makefile
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rusers/Makefile	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rusers/Makefile	(revision 5)
@@ -0,0 +1,48 @@
+all: rusers
+
+include ../MCONFIG
+include ../MRULES
+
+ifeq ($(USE_GLIBC),1)
+CFLAGS += -DGNU_LIBC -D_GNU_SOURCE -D_NO_UT_TIME
+endif
+
+#
+# use BUILD machine rpcgen
+#
+RPCGEN=/usr/bin/rpcgen
+
+# Warning, do NOT put this in the current directory without updating
+# the clean target.
+# RUSERSX = /usr/include/rpcsvc/rusers.x
+RUSERSX = $(TARGET_DEST_DIR)/usr/include/rpcsvc/rusers.x
+
+# The rusers.h file in /usr/include/rpcsvc (at least on my system) appears
+# to have been built with an ancient rpcgen. Therefore, make it anew.
+
+rusers: rusers.o rusers_xdr.o 
+	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
+
+install: rusers
+	install -s -m$(BINMODE) rusers $(INSTALLROOT)$(BINDIR)
+	install -m$(MANMODE) rusers.1 $(INSTALLROOT)$(MANDIR)/man1
+
+clean:
+	rm -f *.o rusers rusers.h rusers_xdr.c rusers.x
+
+rusers.o: rusers.h ../version.h
+rusers_xdr.o: rusers_xdr.c rusers.h
+
+# rpcgen includes the pathname you specify for the .x file as the
+# pathname of the .h file when it builds the .c file. Therefore,
+# do it in the current directory. 
+
+rusers.x:
+	ln -s $(RUSERSX) rusers.x
+
+rusers.h: $(RUSERSX) rusers.x
+	$(RPCGEN) -h -o rusers.h rusers.x
+
+rusers_xdr.c: $(RUSERSX) rusers.x
+	$(RPCGEN) -c -C -o rusers_xdr.c rusers.x
+
Index: create-0.17-patch/netkit-rusers-0.17-new/rusers/rusers.c
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rusers/rusers.c	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rusers/rusers.c	(revision 5)
@@ -0,0 +1,310 @@
+/*-
+ *  Copyright (c) 1993 John Brezak
+ *  All rights reserved.
+ * 
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *  1. Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *  2. Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *  3. The name of the author may not be used to endorse or promote products
+ *     derived from this software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef lint
+char rusers_rcsid[] = 
+  "$Id: rusers.c,v 1.17 1999/12/12 19:32:05 dholland Exp $";
+#endif /* not lint */
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netdb.h>
+#include <stdio.h>
+#include <getopt.h>
+#include <string.h>
+#include <rpc/rpc.h>
+#include <rpc/pmap_clnt.h>
+#include <arpa/inet.h>
+#include <utmp.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <time.h>
+
+#include "../version.h"
+
+/*
+ * For now we only try version 2 of the protocol. The current
+ * version is 3 (rusers.h), but only Solaris and NetBSD seem
+ * to support it currently.
+ */
+/*#include <rpcsvc/rnusers.h>*/	/* Old version */
+
+#include "rusers.h"  /* get the one we just built with rpcgen */
+
+/*
+ * Sigh.
+ */
+#ifdef GNU_LIBC
+	#define RUT_TIME ut_time
+#else
+	#define RUT_TIME ut_time
+#endif
+
+#define MAX_INT 0x7fffffff
+#define HOST_WIDTH 20
+#define LINE_WIDTH 8
+char *argv0;
+
+struct timeval timeout = { 25, 0 };
+int longopt;
+int allopt;
+
+struct host_list {
+	struct host_list *next;
+	struct in_addr addr;
+} *hosts;
+
+static
+int
+search_host(struct in_addr addr)
+{
+	struct host_list *hp;
+	
+	if (!hosts)
+		return(0);
+
+	for (hp = hosts; hp != NULL; hp = hp->next) {
+		if (hp->addr.s_addr == addr.s_addr)
+			return(1);
+	}
+	return(0);
+}
+
+static
+void
+remember_host(struct in_addr addr)
+{
+	struct host_list *hp;
+
+	if (!(hp = (struct host_list *)malloc(sizeof(struct host_list)))) {
+		fprintf(stderr, "%s: no memory.\n", argv0);
+		exit(1);
+	}
+	hp->addr.s_addr = addr.s_addr;
+	hp->next = hosts;
+	hosts = hp;
+}
+
+static
+int
+rusers_reply(char *replyp, struct sockaddr_in *raddrp)
+{
+	int x, idlee;
+	char date[32], idle_time[64], remote[64], local[64];
+	struct hostent *hp;
+	struct utmpidlearr *up = (struct utmpidlearr *)replyp;
+	const char *host;
+	int days, hours, minutes, seconds;
+	
+	if (search_host(raddrp->sin_addr))
+		return(0);
+
+	if (!allopt && !up->uia_cnt)
+		return(0);
+	
+	hp = gethostbyaddr((char *)&raddrp->sin_addr.s_addr,
+			   sizeof(struct in_addr), AF_INET);
+	if (hp)
+		host = hp->h_name;
+	else
+		host = inet_ntoa(raddrp->sin_addr);
+	
+	if (!longopt)
+		printf("%-*.*s ", HOST_WIDTH, HOST_WIDTH, host);
+	
+	for (x = 0; x < up->uia_cnt; x++) {
+		time_t tmptime = up->uia_arr[x]->ui_utmp.RUT_TIME;
+		strncpy(date, ctime(&tmptime) + 4, sizeof(date)-1);
+		date[sizeof(date)-1] = 0;
+
+		idlee = up->uia_arr[x]->ui_idle;
+		snprintf(idle_time, sizeof(idle_time), "   :%02d", idlee);
+		if (idlee == MAX_INT)
+			strcpy(idle_time, "??");
+		else if (idlee == 0)
+			strcpy(idle_time, "");
+		else {
+			seconds = idlee;
+			days = seconds/(60*60*24);
+			seconds %= (60*60*24);
+			hours = seconds/(60*60);
+			seconds %= (60*60);
+			minutes = seconds/60;
+			seconds %= 60;
+			if (idlee > 60)
+				snprintf(idle_time, sizeof(idle_time),
+					 "%2d:%02d", minutes, seconds);
+			if (idlee >= (60*60))
+				snprintf(idle_time, sizeof(idle_time),
+					 "%2d:%02d:%02d",
+					 hours, minutes, seconds);
+			if (idlee >= (24*60*60))
+				snprintf(idle_time, sizeof(idle_time),
+					 "%d days, %d:%02d:%02d",
+					 days, hours, minutes, seconds);
+		}
+
+		strncpy(remote, up->uia_arr[x]->ui_utmp.ut_host,
+			sizeof(remote)-1);
+		remote[sizeof(remote)-1] = 0;
+
+		if (strlen(remote) != 0)
+			snprintf(remote, sizeof(remote), "(%.16s)",
+			    up->uia_arr[x]->ui_utmp.ut_host);
+
+		if (longopt) {
+			/* Fit into HOST_WIDTH+LINE_WIDTH+1 chars */
+			int len1 = strlen(host);
+			int len2 = strlen(up->uia_arr[x]->ui_utmp.ut_line);
+			if (len1 + len2 > HOST_WIDTH+LINE_WIDTH+1) {
+			    int excess = len1 + len2 - HOST_WIDTH-LINE_WIDTH-1;
+			    if (excess < len1) len1 -= excess;
+			    else if (excess < len2) len2 -= excess;
+			    else {
+				/* Hmm. Probably an attack... */
+				len1 = HOST_WIDTH;
+				len2 = LINE_WIDTH;
+			    }
+			}
+			snprintf(local, sizeof(local),
+				 "%-.*s:%-.*s", len1, host, len2,
+				 up->uia_arr[x]->ui_utmp.ut_line);
+
+			printf("%-8.8s %-*.*s %-12.12s %8s %.18s\n",
+			    up->uia_arr[x]->ui_utmp.ut_name,
+			    HOST_WIDTH+LINE_WIDTH+1, HOST_WIDTH+LINE_WIDTH+1, local,
+			    date,
+			    idle_time,
+			    remote);
+		} else
+			printf("%.8s ",
+			    up->uia_arr[x]->ui_utmp.ut_name);
+	}
+	if (!longopt)
+		putchar('\n');
+	
+	remember_host(raddrp->sin_addr);
+	return(0);
+}
+
+static
+void
+onehost(char *host)
+{
+	struct utmpidlearr up;
+	CLIENT *rusers_clnt;
+	struct sockaddr_in addr;
+	struct hostent *hp;
+	
+	hp = gethostbyname(host);
+	if (hp == NULL) {
+		fprintf(stderr, "%s: unknown host \"%s\"\n",
+			argv0, host);
+		exit(1);
+	}
+
+	rusers_clnt = clnt_create(host, RUSERSPROG, RUSERSVERS_IDLE, "udp");
+	if (rusers_clnt == NULL) {
+		clnt_pcreateerror(argv0);
+		exit(1);
+	}
+
+	memset(&up, 0, sizeof(up));
+	memset(&addr, 0, sizeof(addr));
+	if (clnt_call(rusers_clnt, RUSERSPROC_NAMES, (xdrproc_t)xdr_void, NULL,
+	    (xdrproc_t) xdr_utmpidlearr, (char *)&up, timeout) != RPC_SUCCESS) {
+		clnt_perror(rusers_clnt, argv0);
+		exit(1);
+	}
+	if (hp->h_length > (int)sizeof(addr.sin_addr)) {
+		hp->h_length = sizeof(addr.sin_addr);
+	}
+	memcpy(&addr.sin_addr, hp->h_addr, hp->h_length);
+	rusers_reply((char *)&up, &addr);
+}
+
+static
+void
+allhosts(void)
+{
+	struct utmpidlearr up;
+	enum clnt_stat clnt_stat;
+
+	bzero((char *)&up, sizeof(up));
+	clnt_stat = clnt_broadcast(RUSERSPROG, RUSERSVERS_IDLE,
+				   RUSERSPROC_NAMES, 
+				   (xdrproc_t) xdr_void, NULL, 
+				   (xdrproc_t) xdr_utmpidlearr,
+				   (char *) &up, 
+				   (resultproc_t) rusers_reply);
+	if (clnt_stat != RPC_SUCCESS && clnt_stat != RPC_TIMEDOUT) {
+		fprintf(stderr, "%s: %s\n", argv0, clnt_sperrno(clnt_stat));
+		exit(1);
+	}
+}
+
+static
+void usage(void)
+{
+	fprintf(stderr, "Usage: %s [-la] [hosts ...]\n", argv0);
+	exit(1);
+}
+
+int main(int argc, char *argv[])
+{
+	int ch;
+	
+	if (!(argv0 = rindex(argv[0], '/')))
+		argv0 = argv[0];
+	else
+		argv0++;
+
+
+	while ((ch = getopt(argc, argv, "al")) != -1)
+		switch (ch) {
+		case 'a':
+			allopt++;
+			break;
+		case 'l':
+			longopt++;
+			break;
+		default:
+			usage();
+			/*NOTREACHED*/
+		}
+
+	setlinebuf(stdout);
+	if (argc == optind)
+		allhosts();
+	else {
+		for (; optind < argc; optind++)
+			(void) onehost(argv[optind]);
+	}
+	exit(0);
+}
Index: create-0.17-patch/netkit-rusers-0.17-new/rusers
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new/rusers	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new/rusers	(revision 5)

Property changes on: create-0.17-patch/netkit-rusers-0.17-new/rusers
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: create-0.17-patch/netkit-rusers-0.17-new
===================================================================
--- create-0.17-patch/netkit-rusers-0.17-new	(nonexistent)
+++ create-0.17-patch/netkit-rusers-0.17-new	(revision 5)

Property changes on: create-0.17-patch/netkit-rusers-0.17-new
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: create-0.17-patch
===================================================================
--- create-0.17-patch	(nonexistent)
+++ create-0.17-patch	(revision 5)

Property changes on: create-0.17-patch
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: patches/README
===================================================================
--- patches/README	(nonexistent)
+++ patches/README	(revision 5)
@@ -0,0 +1,6 @@
+
+/* begin *
+
+   TODO: Leave some comment here.
+
+ * end */
Index: patches
===================================================================
--- patches	(nonexistent)
+++ patches	(revision 5)

Property changes on: patches
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: .
===================================================================
--- .	(nonexistent)
+++ .	(revision 5)

Property changes on: .
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,73 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~