diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 270f8fc..0000000 --- a/.gitattributes +++ /dev/null @@ -1,13 +0,0 @@ -src/chpst.c ident -src/runit-init.c ident -src/runit.c ident -src/runsv.c ident -src/runsvchdir.c ident -src/runsvctrl.c ident -src/runsvdir.c ident -src/runsvstat.c ident -src/sv.c ident -src/svlogd.c ident -src/svwaitdown.c ident -src/svwaitup.c ident -src/utmpset.c ident diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2cf0ebf --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Generated config +config.mk + +# Objects +*.o +*.a + +# Generated manual pages +runsv.8 +runsvchdir.8 +sv.8 +utmpset.8 + +# Binaries +src/chpst +src/runit +src/runit-init +src/runsv +src/runsvdir +src/runsvchdir +src/sv +src/svlogd +src/utmpset + +# Generated completions +sv.bash +sv.zsh + +# Test output +src/*.local diff --git a/.manpages b/.manpages deleted file mode 100644 index e69de29..0000000 diff --git a/Makefile b/Makefile index 17e79b7..77a9a7a 100644 --- a/Makefile +++ b/Makefile @@ -1,49 +1,33 @@ -DESTDIR= +-include config.mk -PACKAGE=runit-2.1.2 -DIRS=doc man etc package src -MANPAGES=runit.8 runit-init.8 runsvdir.8 runsv.8 sv.8 utmpset.8 \ - runsvchdir.8 svlogd.8 chpst.8 +SUBDIRS = src man completions -all: clean .manpages $(PACKAGE).tar.gz +.PHONY: all install uninstall check clean -.manpages: - for i in $(MANPAGES); do \ - rman -S -f html -r '' < man/$$i | \ - sed -e "s}name='sect\([0-9]*\)' href='#toc[0-9]*'>\(.*\)}name='sect\1'>\2}g ; \ - s}Table of Contents}G. Pape
runit
}g ; \ - s}}}g" \ - > doc/$$i.html ; \ - done ; \ - echo 'fix up html manually...' - echo 'patch -p0 $@ + +install: all + install -d $(DESTDIR)$(SHAREDIR)/bash-completion/completions + install -m644 sv.bash $(DESTDIR)$(SHAREDIR)/bash-completion/completions/sv + install -d $(DESTDIR)$(SHAREDIR)/zsh/site-functions + install -m644 sv.zsh $(DESTDIR)$(SHAREDIR)/zsh/site-functions/_sv + +clean: + rm -f $(COMPLETIONS) diff --git a/completions/sv.bash b/completions/sv.bash.in similarity index 93% rename from completions/sv.bash rename to completions/sv.bash.in index ec0fcae..c8ff723 100644 --- a/completions/sv.bash +++ b/completions/sv.bash.in @@ -16,7 +16,7 @@ _sv() return ;; *) - COMPREPLY=( /var/service/* ) + COMPREPLY=( @@SERVICEDIR@@/* ) COMPREPLY=( ${COMPREPLY[@]##*/} ) COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- ${cur}) ) return diff --git a/completions/sv.zsh b/completions/sv.zsh.in similarity index 95% rename from completions/sv.zsh rename to completions/sv.zsh.in index 465fbfd..bc3ade7 100644 --- a/completions/sv.zsh +++ b/completions/sv.zsh.in @@ -35,7 +35,7 @@ cmds) check ret=0;; args) - services=( /var/service/*(-/N:t) ) + services=( @@SERVICEDIR@@/*(-/N:t) ) (( $#services )) && _values services $services && ret=0 [[ $words[CURRENT] = */* ]] && _directories && ret=0 ;; diff --git a/configure b/configure new file mode 100755 index 0000000..afb2aac --- /dev/null +++ b/configure @@ -0,0 +1,443 @@ +#!/bin/sh + +VERSION=2.1.2 + +# Ensure that we do not inherit these from env +BUILD_STATIC= +SILENT=yes +DEBUG= + +usage() +{ + cat <<_EOF +\`configure' configures runit to adapt to many kinds of systems. + +By default, \`make install' will install all the files in +\`/usr/local/sbin', \`/usr/local/lib' etc. You can specify +an installation prefix other than \`/usr/local' using \`--prefix', +for instance \`--prefix=\$HOME'. + +--prefix=DIR Install architecture-independent files in PREFIX +--exec-prefix=DIR Install architecture-dependent files in EPREFIX +--bindir=DIR Executables [PREFIX/bin] +--sysconfdir=DIR Configuration files directory [PREFIX/etc] +--mandir=DIR Man documentation [EPREFIX/share/man] +--datadir=DIR Read-only architecture-independent data [EPREFIX/share] +--servicedir=DIR Directory to store services in [/var/service] + +--verbose Disable silent build to see compilation details +--enable-debug Enables debugging (assertions and -g, default enabled) +--disable-debug Disables debugging (assertions and -g) +--enable-static Build all runit utils statically (default disabled) +--disable-static Don't build all runit utils statically +_EOF + exit 1 +} + +for x; do + opt=${x%%=*} + var=${x#*=} + case "$opt" in + --prefix) PREFIX=$var ;; + --exec-prefix) EPREFIX=$var ;; + --bindir) BINDIR=$var ;; + --mandir) MANDIR=$var ;; + --datadir) SHAREDIR=$var ;; + --sysconfdir) SYSCONFDIR=$var ;; + --servicedir) SERVICEDIR=$var ;; + --infodir) ;; # ignore autotools + --verbose) unset SILENT ;; + --enable-debug) DEBUG=yes ;; + --disable-debug) DEBUG=no ;; + --enable-static) BUILD_STATIC=yes ;; + --disable-static) BUILD_STATIC=no ;; + --help) usage;; + *) echo "$0: WARNING: unknown option $opt" >&2 ;; + esac +done + +: "${SED:=sed}" + +: "${PREFIX:=/usr/local}" +: "${EPREFIX:=${PREFIX}}" +: "${BINDIR:=${PREFIX}/bin}" +: "${SYSCONFDIR:=/etc}" +: "${SHAREDIR:=${EPREFIX}/share}" +: "${MANDIR:=${EPREFIX}/share/man}" +: "${SERVICEDIR:=/var/service}" + +CONFIG_MK=config.mk + +echo "Configuring runit ..." +rm -f $CONFIG_MK +echo "# Common vars used by runit." >$CONFIG_MK + +if type git >/dev/null; then + GIT_REV="$(git rev-parse --short=8 HEAD 2>/dev/null)" + if [ -n "$GIT_REV" ]; then + VERSION="$VERSION-$GIT_REV" + fi +fi + +echo "VERSION = $VERSION" >>$CONFIG_MK +echo "CPPFLAGS += -DVERSION=$VERSION" >>$CONFIG_MK +echo "PREFIX ?= $PREFIX" >>$CONFIG_MK +echo "EPREFIX ?= $EPREFIX" >>$CONFIG_MK +echo "SBINDIR ?= $BINDIR" >>$CONFIG_MK +echo "CPPFLAGS += -DSBINDIR=$BINDIR" >>$CONFIG_MK +echo "MANDIR ?= $MANDIR" >>$CONFIG_MK +echo "SHAREDIR ?= $SHAREDIR" >>$CONFIG_MK +echo "SYSCONFDIR ?= $SYSCONFDIR" >>$CONFIG_MK +echo "CPPFLAGS += -DSYSCONFDIR=$SYSCONFDIR" >>$CONFIG_MK +echo "SERVICEDIR ?= $SERVICEDIR" >>$CONFIG_MK +echo "CPPFLAGS += -DSERVICEDIR=$SERVICEDIR" >>$CONFIG_MK +echo "SED ?= $SED" >>$CONFIG_MK + +if [ -z "$CC" ]; then + printf "Looking for compiler ... " + for cc in gcc icc clang tcc pcc cc; do + if type $cc >/dev/null 2>&1; then + CC=$cc + echo "$CC" + break + fi + done + if [ -z "$CC" ]; then + echo + echo "no suitable compiler found - aborting" >&2 + exit 1 + fi +else + echo "Using compiler $CC" +fi + +: "${AR:=ar crs}" + +echo "CC = $CC" >>$CONFIG_MK +echo "AR = $AR" >> $CONFIG_MK +echo "CFLAGS = -O2" >>$CONFIG_MK +echo "CPPFLAGS += -D_DEFAULT_SOURCE" >>$CONFIG_MK + +[ -z "$DEBUG" ] && DEBUG=yes +if [ -n "$DEBUG" ] && [ "$DEBUG" != no ] && [ "$DEBUG" != false ]; then + echo "Building with debugging symbols." + echo "CPPFLAGS += -DDEBUG" >>$CONFIG_MK + echo "CFLAGS += -g" >>$CONFIG_MK +else + echo "CPPFLAGS+= -DNDEBUG" >>$CONFIG_MK +fi + +# Add CPPFLAGS/CFLAGS/LDFLAGS to CC for testing features +XCC="$CC $CFLAGS $CPPFLAGS $LDFLAGS" + +check_compiler_flag() +{ + flag="$1" + mode="$2" + var="$3" + rv=0 + + [ -z "$var" ] && var="CFLAGS" + + printf "Checking if %s supports -%s%s ... " "$CC" "$mode" "$flag" + cat <_ccflag.c +#include +int main(void) { return 0; } +EOF + if $XCC -${mode}${flag} _ccflag.c -o _ccflag 2>_ccflag.err; then + if ! test -s _ccflag.err; then + if [ "$mode" = "W" ] && [ -z "$var" ]; then + echo "CFLAGS += -${mode}${flag}" >>$CONFIG_MK + else + echo "$var += -${mode}${flag}" >>$CONFIG_MK + fi + echo "yes." + else + rv=1 + echo "no." + fi + else + rv=1 + echo "no." + fi + [ -z "$SILENT" ] && cat _ccflag.err + rm -f _ccflag.c _ccflag _ccflag.err + return $rv +} + +# If supported, make sure to disable --as-needed for CC tests. +if check_compiler_flag "l,--no-as-needed" W LDFLAGS; then + XCC="$XCC -Wl,--no-as-needed" +fi + +# Check for some compiler warning flags +# TODO: check more compiler warning flags +# for f in all extra shadow "format=2" missing-prototypes \ +# missing-declarations nested-externs vla overlength-strings \ +# unsafe-loop-optimizations undef sign-compare \ +# missing-include-dirs old-style-definition \ +# init-self redundant-decls float-equal missing-noreturn \ +# cast-align cast-qual pointer-arith comment \ +# declaration-after-statement write-strings stack-protector; do +for f in all; do + check_compiler_flag "$f" W +done + +# Check for some compiler flags. +check_compiler_flag PIC f CFLAGS +check_compiler_flag "inline-functions" f CFLAGS + +if ! check_compiler_flag stack-protector-strong f CFLAGS; then + if check_compiler_flag stack-protector f CFLAGS; then + if [ "$CC" = "gcc" ]; then + check_compiler_flag "param ssp-buffer-size=1" - CFLAGS + fi + fi +fi + +# Check for some linker flags. +check_compiler_flag "l,-z,relro,-z,now,-z,noexecstack" W LDFLAGS + +# Check if PIE is supported. +if check_compiler_flag PIE f CFLAGS; then + if check_compiler_flag pie "" LDFLAGS; then + BUILD_PIE_VALUE=yes + else + BUILD_PIE_VALUE=no + fi +fi + +# A C99 compiler is required to build runit. +if ! check_compiler_flag "std=c99" "" CFLAGS; then + echo "ERROR: A compatible C99 compiler is required, exiting..." + exit 1 +fi + +if [ -n "$CFLAGS" ]; then + echo "CFLAGS += $CFLAGS" >>$CONFIG_MK +fi +if [ -n "$LDFLAGS" ]; then + echo "LDFLAGS += $LDFLAGS" >>$CONFIG_MK +fi +if [ -n "$CPPFLAGS" ]; then + echo "CPPFLAGS += $CPPFLAGS" >>$CONFIG_MK +fi + +if [ "$CC" = "tcc" ]; then + echo "CFLAGS += -Wno-error" >>$CONFIG_MK +fi + +# +# Check for flock(). +# +func=flock +printf "Checking for $func() ... " +if test -n "$HASFLOCK"; then + echo "yes (cached)." +else + if $XCC configure_tests/try$func.c -o try$func 2>/dev/null; then + echo yes. + HASFLOCK=1 + else + echo no. + fi + rm -f try$func +fi +if test -n "$HASFLOCK"; then + echo "CPPFLAGS += -DHASFLOCK" >> $CONFIG_MK +fi + +# +# Check for sigprocmask(). +# +func=sigprocmask +printf "Checking for $func() ... " +if test -n "$HASSIGPROCMASK"; then + echo "yes (cached)." +else + if $XCC configure_tests/try$func.c -o try$func 2>/dev/null; then + echo yes. + HASSIGPROCMASK=1 + else + echo no. + fi + rm -f try$func +fi +if test -n "$HASSIGPROCMASK"; then + echo "CPPFLAGS += -DHASSIGPROCMASK" >> $CONFIG_MK +fi + +# +# Check for mkfifo(). +# +func="mkfifo" +printf "Checking for $func() ... " +if test -n "$HASMKFIFO"; then + echo "yes (cached)." +else + if $XCC configure_tests/try$func.c -o try$func 2>/dev/null; then + echo yes. + HASMKFIFO=1 + else + echo no. + fi + rm -f try$func +fi +if test -n "$HASMKFIFO"; then + echo "CPPFLAGS += -DHASMKFIFO" >> $CONFIG_MK +fi + +# +# Check for sigaction(). +# +func=sigaction +printf "Checking for $func() ... " +if test -n "$HASSIGACTION"; then + echo "yes (cached)." +else + if $XCC configure_tests/try$func.c -o try$func 2>/dev/null; then + echo yes. + HASSIGACTION=1 + else + echo no. + fi + rm -f try$func +fi +if test -n "$HASSIGACTION"; then + echo "CPPFLAGS += -DHASSIGACTION" >> $CONFIG_MK +fi + +# +# Check for waitpid(). +# +func=waitpid +printf "Checking for $func() ... " +if test -n "$HASWAITPID"; then + echo "yes (cached)." +else + if $XCC configure_tests/try$func.c -o try$func 2>/dev/null; then + echo yes. + HASWAITPID=1 + else + echo no. + fi + rm -f try$func +fi +if test -n "$HASWAITPID"; then + echo "CPPFLAGS += -DHASWAITPID" >> $CONFIG_MK +fi + +# +# Check for utmpx/utmp. +# +printf "Checking for utmpx ... " +if test -n "$HASUTMPX"; then + echo "$HASUTMPX (cached)." +else + if $XCC configure_tests/tryuwtmpx.c -o tryuwtmpx 2>/dev/null; then + HASUTMPX=1 + echo yes. + else + echo no. + fi + rm -f tryuwtmpx +fi + +printf "Checking for utmp ... " +if test -n "$HASUTMP"; then + echo "$HASUTMP (cached)." +else + if $XCC configure_tests/tryuwtmp.c -o tryuwtmp 2>/dev/null; then + HASUTMP=1 + echo yes. + else + echo no. + fi + rm -f tryuwtmp +fi + +if test -n "$HASUTMPX"; then + echo "Using utmpx" + echo "CPPFLAGS += -DHASUTMPX" >> $CONFIG_MK +elif test -n "$HASUTMP"; then + echo "Using utmp" +else + echo "Cannot find utmpx or utmp!" + exit 1 +fi + +# +# Check for dirent.h. +# +func=dirent +printf "Checking for $func.h ... " +if test -n "$HASDIRENT"; then + echo "yes (cached)." +else + if $XCC configure_tests/try$func.c -o try$func 2>/dev/null; then + echo yes. + HASDIRENT=1 + else + echo no. + fi + rm -f try$func +fi +if test -n "$HASDIRENT"; then + echo "CPPFLAGS += -DHASDIRENT" >> $CONFIG_MK +fi + +# +# Check for one argument reboot(). +# +printf "Checking for one argument reboot() ... " +if test -n "$HASONEARGREBOOT"; then + echo "yes (cached)." +else + if $XCC configure_tests/tryreboot.c -o tryreboot 2>/dev/null; then + echo yes. + HASONEARGREBOOT=1 + else + echo no. + fi + rm -f tryreboot +fi +if test -n "$HASONEARGREBOOT"; then + echo "CPPFLAGS += -DHASONEARGREBOOT" >> $CONFIG_MK +fi + +# If --enable-static enabled, build static binaries. +if [ "$BUILD_STATIC" = "yes" ]; then + echo "BUILD_STATIC = -static" >>$CONFIG_MK + BUILD_STATIC_VALUE=yes +else + echo "BUILD_STATIC = " >>$CONFIG_MK + BUILD_STATIC_VALUE=no +fi + +if [ -n "$SILENT" ]; then + echo "SILENT = @" >>$CONFIG_MK +else + echo "SILENT =" >>$CONFIG_MK +fi + +echo +echo " runit has been configured with the following options:" +echo +echo " PREFIX = $PREFIX" +echo " EPREFIX = $EPREFIX" +echo " BINDIR = $BINDIR" +echo " SYSCONFDIR = $SYSCONFDIR" +echo " SHAREDIR = $SHAREDIR" +echo " MANDIR = $MANDIR" +echo " SERVICEDIR = $SERVICEDIR" +echo " CFLAGS = $CFLAGS" +echo " LDFLAGS = $LDFLAGS" +echo +echo " Build programs as PIE = $BUILD_PIE_VALUE" +echo " Build static programs = $BUILD_STATIC_VALUE" +echo " Build with debugging = $DEBUG" +echo +echo " You can now run make && make install clean." +echo + +exit 0 diff --git a/src/trydrent.c b/configure_tests/trydirent.c similarity index 89% rename from src/trydrent.c rename to configure_tests/trydirent.c index 3333ac0..b8befd0 100644 --- a/src/trydrent.c +++ b/configure_tests/trydirent.c @@ -3,7 +3,7 @@ #include #include -void foo() +void main() { DIR *dir; struct dirent *d; diff --git a/src/tryflock.c b/configure_tests/tryflock.c similarity index 100% rename from src/tryflock.c rename to configure_tests/tryflock.c diff --git a/src/trymkffo.c b/configure_tests/trymkfifo.c similarity index 100% rename from src/trymkffo.c rename to configure_tests/trymkfifo.c diff --git a/src/tryreboot.c b/configure_tests/tryreboot.c similarity index 100% rename from src/tryreboot.c rename to configure_tests/tryreboot.c diff --git a/src/trysgact.c b/configure_tests/trysigaction.c similarity index 100% rename from src/trysgact.c rename to configure_tests/trysigaction.c diff --git a/src/trysgprm.c b/configure_tests/trysigprocmask.c similarity index 100% rename from src/trysgprm.c rename to configure_tests/trysigprocmask.c diff --git a/src/tryuwtmp.c b/configure_tests/tryuwtmp.c similarity index 100% rename from src/tryuwtmp.c rename to configure_tests/tryuwtmp.c diff --git a/src/tryuwtmpx.c b/configure_tests/tryuwtmpx.c similarity index 100% rename from src/tryuwtmpx.c rename to configure_tests/tryuwtmpx.c diff --git a/src/trywaitp.c b/configure_tests/trywaitpid.c similarity index 100% rename from src/trywaitp.c rename to configure_tests/trywaitpid.c diff --git a/man/Makefile b/man/Makefile new file mode 100644 index 0000000..07e2d4b --- /dev/null +++ b/man/Makefile @@ -0,0 +1,20 @@ +-include ../config.mk + +MANPAGES = chpst.8 runit-init.8 runit.8 svlogd.8 runsvdir.8 +MANPAGES_IN = runsvchdir.8 sv.8 runsv.8 utmpset.8 + +.PHONY: all install clean + +all: $(MANPAGES) $(MANPAGES_IN) + +$(MANPAGES_IN): + $(SED) -e "s|@@SERVICEDIR@@|${SERVICEDIR}|g" $@.in > $@ + +install: all + install -d $(DESTDIR)$(MANDIR)/man8 + for page in $(MANPAGES) $(MANPAGES_IN); do \ + install -m644 $$page $(DESTDIR)$(MANDIR)/man8; \ + done + +clean: + rm -f $(MANPAGES_IN) diff --git a/man/runsv.8 b/man/runsv.8.in similarity index 97% rename from man/runsv.8 rename to man/runsv.8.in index 53f1b1b..7c75759 100644 --- a/man/runsv.8 +++ b/man/runsv.8.in @@ -157,9 +157,9 @@ This command is ignored if it is given to .IR service /log/supervise/control. .P Example: to send a TERM signal to the socklog-unix service, either do - # sv term /var/service/socklog-unix + # sv term @@SERVICEDIR@@/socklog-unix or - # printf t >/var/service/socklog-unix/supervise/control + # printf t >@@SERVICEDIR@@/socklog-unix/supervise/control .P .BR printf (1) usually blocks if no diff --git a/man/runsvchdir.8 b/man/runsvchdir.8.in similarity index 95% rename from man/runsvchdir.8 rename to man/runsvchdir.8.in index 793d653..325b60c 100644 --- a/man/runsvchdir.8 +++ b/man/runsvchdir.8.in @@ -27,13 +27,13 @@ with a symlink pointing to .IR dir . .P Normally -.I /var/service +.I @@SERVICEDIR@@ is a symlink to .IR current , and .BR runsvdir (8) is running -.IR /var/service/ . +.IR @@SERVICEDIR@@/ . .SH EXIT CODES .B runsvchdir prints an error message and exits 111 on error. diff --git a/man/sv.8 b/man/sv.8.in similarity index 99% rename from man/sv.8 rename to man/sv.8.in index 58f1c07..3743ec9 100644 --- a/man/sv.8 +++ b/man/sv.8.in @@ -30,7 +30,7 @@ If .I service doesn't start with a dot or slash and doesn't end with a slash, it is searched in the default services directory -.IR /var/service/ , +.IR @@SERVICEDIR@@/ , otherwise relative to the current directory. .P .I command @@ -232,7 +232,7 @@ This option implies .TP .B SVDIR The environment variable $SVDIR overrides the default services directory -.IR /var/service/ . +.IR @@SERVICEDIR@@/ . .TP .B SVWAIT The environment variable $SVWAIT overrides the default 7 seconds to wait diff --git a/man/utmpset.8 b/man/utmpset.8.in similarity index 96% rename from man/utmpset.8 rename to man/utmpset.8.in index 4f9b4ef..6bfb829 100644 --- a/man/utmpset.8 +++ b/man/utmpset.8.in @@ -34,7 +34,7 @@ to the .I finish scripts, e.g.: .P - $ cat /service/getty-5/finish + $ cat @@SERVICEDIR@@/getty-5/finish #!/bin/sh exec utmpset \-w tty5 $ diff --git a/package/Makefile.historic b/package/Makefile.historic new file mode 100644 index 0000000..d9ba92b --- /dev/null +++ b/package/Makefile.historic @@ -0,0 +1,51 @@ +# This is the former top-level Makefile + +DESTDIR= + +PACKAGE=runit-2.1.2 +DIRS=doc man etc package src +MANPAGES=runit.8 runit-init.8 runsvdir.8 runsv.8 sv.8 utmpset.8 \ + runsvchdir.8 svlogd.8 chpst.8 + +all: clean .manpages $(PACKAGE).tar.gz + +.manpages: + for i in $(MANPAGES); do \ + rman -S -f html -r '' < man/$$i | \ + sed -e "s}name='sect\([0-9]*\)' href='#toc[0-9]*'>\(.*\)}name='sect\1'>\2}g ; \ + s}Table of Contents}G. Pape
runit
}g ; \ + s}}}g" \ + > doc/$$i.html ; \ + done ; \ + echo 'fix up html manually...' + echo 'patch -p0 compile/home -test -h compile/src || ln -s $here/src compile/src - -echo 'Linking ./src/* into ./compile...' -for i in `ls src`; do - test -h compile/$i || ln -s src/$i compile/$i -done - -echo 'Compiling everything in ./compile...' -sh -cxe 'cd compile; exec make' - -echo 'Copying commands into ./command...' -for i in `cat package/commands`; do - rm -f command/$i'{new}' - cp -p compile/$i command/$i'{new}' - mv -f command/$i'{new}' command/$i -done diff --git a/package/install b/package/install deleted file mode 100755 index 4e3c468..0000000 --- a/package/install +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -set -e - -package/compile -package/check -package/upgrade diff --git a/package/install-man b/package/install-man deleted file mode 100755 index cd49048..0000000 --- a/package/install-man +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -set -e - -umask 022 -test -d package || sh -cx '! : Wrong working directory.' -test -d man || sh -cx '! : Wrong working directory.' - -here=`env - PATH=$PATH pwd` -parent=`dirname $here` - -echo 'Compressing manpages...' -for i in man/*.[1-8]; do - gzip -c $i >${i}.gz -done - -echo 'Making manpage links in /usr/local/man...' -cd man -for i in 8; do - mkdir -p /usr/local/man/man$i - for j in *.$i; do - rm -f /usr/local/man/man$i/$j.gz'{new}' - ln -s $parent/runit/man/$j.gz /usr/local/man/man$i/$j.gz'{new}' - mv -f /usr/local/man/man$i/$j.gz'{new}' /usr/local/man/man$i/$j.gz - done -done -cd .. diff --git a/package/upgrade b/package/upgrade deleted file mode 100755 index fac8902..0000000 --- a/package/upgrade +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -set -e - -umask 022 -test -d package || sh -cx '! : Wrong working directory.' -test -d src || sh -cx '! : Wrong working directory.' - -here=`env - PATH=$PATH pwd` -parent=`dirname $here` - -echo 'Creating symlink runit -> runit-2.1.2...' -rm -f runit -ln -s runit-2.1.2 runit -mv -f runit .. - -echo 'Making command links in /command...' -mkdir -p /command -for i in `cat package/commands`; do - rm -f /command/$i'{new}' - ln -s $parent/runit/command/$i /command/$i'{new}' - mv -f /command/$i'{new}' /command/$i -done -echo 'Making compatibility links in /usr/local/bin...' -mkdir -p /usr/local/bin -for i in `cat package/commands`; do - rm -f /usr/local/bin/$i'{new}' - ln -s /command/$i /usr/local/bin/$i'{new}' - mv -f /usr/local/bin/$i'{new}' /usr/local/bin/$i -done diff --git a/src/Makefile b/src/Makefile index d9624de..2aa59fc 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,468 +1,84 @@ -IT=chpst runit runit-init runsv runsvchdir runsvdir sv svlogd utmpset +-include ../config.mk -default: sysdeps $(IT) +PROGS=chpst runit runit-init runsv runsvchdir runsvdir sv svlogd utmpset -check: $(IT) - ./check-local $(IT) +.PHONY: all check install clean -runit: load runit.o unix.a byte.a - ./load runit unix.a byte.a -static +all: $(PROGS) -runit-init: load runit-init.o unix.a byte.a - ./load runit-init unix.a byte.a -static +check: $(PROGS) + ./check-local $(PROGS) -runsv: load runsv.o unix.a byte.a time.a - ./load runsv unix.a byte.a time.a - -runsvdir: load runsvdir.o unix.a byte.a time.a - ./load runsvdir unix.a byte.a time.a - -runsvstat: load runsvstat.o unix.a byte.a time.a - ./load runsvstat unix.a byte.a time.a - -runsvctrl: load runsvctrl.o unix.a byte.a - ./load runsvctrl unix.a byte.a - -sv: load sv.o unix.a byte.a time.a - ./load sv unix.a byte.a time.a - -svwaitup: load svwaitup.o unix.a byte.a time.a - ./load svwaitup unix.a byte.a time.a - -svwaitdown: load svwaitdown.o unix.a byte.a time.a - ./load svwaitdown unix.a byte.a time.a - -utmpset: load utmpset.o unix.a byte.a - ./load utmpset unix.a byte.a - -runsvchdir: load runsvchdir.o unix.a byte.a - ./load runsvchdir unix.a byte.a - -svlogd: load svlogd.o pmatch.o fmt_ptime.o unix.a byte.a time.a socket.lib - ./load svlogd pmatch.o fmt_ptime.o unix.a byte.a time.a \ - `cat socket.lib` - -chpst: load chpst.o uidgid.o unix.a byte.a - ./load chpst uidgid.o unix.a byte.a - -runit.o: compile sysdeps runit.c - ./compile runit.c - -runit-init.o: compile runit-init.c - ./compile runit-init.c - -runsv.o: compile sysdeps runsv.c - ./compile runsv.c - -runsvdir.o: compile sysdeps runsvdir.c - ./compile runsvdir.c - -runsvstat.o: compile sysdeps runsvstat.c - ./compile runsvstat.c - -runsvctrl.o: compile runsvctrl.c - ./compile runsvctrl.c - -sv.o: compile sysdeps sv.c - ./compile sv.c - -svwaitup.o: compile sysdeps svwaitup.c - ./compile svwaitup.c - -svwaitdown.o: compile sysdeps svwaitdown.c - ./compile svwaitdown.c - -utmpset.o: compile sysdeps utmpset.c - ./compile utmpset.c - -runsvchdir.o: compile runsvchdir.c - ./compile runsvchdir.c - -svlogd.o: compile sysdeps svlogd.c - ./compile svlogd.c - -chpst.o: compile sysdeps chpst.c - ./compile chpst.c - - -uidgid.o: compile uidgid.c uidgid.h - ./compile uidgid.c - -pmatch.o: compile pmatch.c - ./compile pmatch.c - -fmt_ptime.o: compile sysdeps fmt_ptime.c - ./compile fmt_ptime.c - -reboot_system.h: choose compile reboot_system.h1 reboot_system.h2 - ./choose c tryreboot reboot_system.h1 reboot_system.h2 > \ - reboot_system.h - -uw_tmp.h: compile uw_tmp.h1 uw_tmp.h2 - ( ./compile tryuwtmpx.c 2>/dev/null && cat uw_tmp.h2 >uw_tmp.h ) || \ - ( ./compile tryuwtmp.c 2>/dev/null && cat uw_tmp.h1 >uw_tmp.h ) - rm -f tryuwtmp.o tryuwtmpx.o - -socket.lib: compile load trysocketlib.c - ./compile trysocketlib.c - ( ./load trysocketlib >/dev/null 2>&1 || \ - ( ./load trysocketlib -lxnet >/dev/null 2>&1 && echo '-lxnet' ) || \ - ( ./load trysocketlib -lsocket -lnsl >/dev/null 2>&1 && \ - echo '-lsocket -lnsl' ) \ - ) >socket.lib - rm -f trysocketlib.o trysocketlib +install: all + install -d $(DESTDIR)$(SBINDIR) + @for prog in $(PROGS); do \ + install -m 755 $$prog $(DESTDIR)$(SBINDIR); \ + done clean: - find . -name \*~ -exec rm -f {} \; - find . -name .??*~ -exec rm -f {} \; - find . -name \#?* -exec rm -f {} \; - rm -f `cat TARGETS` - -alloc.o: alloc.c alloc.h compile error.h - ./compile alloc.c + rm -f *.o *.a $(PROGS) *.local -alloc_re.o: alloc.h alloc_re.c byte.h compile - ./compile alloc_re.c +runit: runit.o unix.a byte.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) -static -o $@ -buffer.o: buffer.c buffer.h compile - ./compile buffer.c +runit-init: runit-init.o unix.a byte.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) -static -o $@ -buffer_0.o: buffer.h buffer_0.c compile - ./compile buffer_0.c +runsv: runsv.o unix.a byte.a time.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ -buffer_1.o: buffer.h buffer_1.c compile - ./compile buffer_1.c +runsvdir: runsvdir.o unix.a byte.a time.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ -buffer_2.o: buffer.h buffer_2.c compile - ./compile buffer_2.c +sv: sv.o unix.a byte.a time.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ -buffer_get.o: buffer.h buffer_get.c byte.h compile error.h - ./compile buffer_get.c +utmpset: utmpset.o unix.a byte.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ -buffer_put.o: buffer.h buffer_put.c byte.h compile error.h str.h - ./compile buffer_put.c +runsvchdir: runsvchdir.o unix.a byte.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ -buffer_read.o: buffer.h buffer_read.c compile - ./compile buffer_read.c +svlogd: svlogd.o pmatch.o fmt_ptime.o unix.a byte.a time.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ -buffer_write.o: buffer.h buffer_write.c compile - ./compile buffer_write.c +chpst: chpst.o uidgid.o unix.a byte.a + @printf " [CCLD]\t\t$@\n" + ${SILENT}$(CC) $^ $(LDFLAGS) $(BUILD_STATIC) -o $@ byte.a: byte_chr.o byte_copy.o byte_cr.o byte_diff.o byte_rchr.o \ -fmt_uint.o fmt_uint0.o fmt_ulong.o makelib scan_ulong.o str_chr.o \ +fmt_uint.o fmt_uint0.o fmt_ulong.o scan_ulong.o str_chr.o \ str_diff.o str_len.o str_start.o - ./makelib byte.a byte_chr.o byte_copy.o byte_cr.o byte_diff.o \ - byte_rchr.o fmt_uint.o fmt_uint0.o fmt_ulong.o scan_ulong.o str_chr.o \ - str_diff.o str_len.o str_start.o - -byte_chr.o: byte.h byte_chr.c compile - ./compile byte_chr.c - -byte_copy.o: byte.h byte_copy.c compile - ./compile byte_copy.c - -byte_cr.o: byte.h byte_cr.c compile - ./compile byte_cr.c - -byte_diff.o: byte.h byte_diff.c compile - ./compile byte_diff.c - -byte_rchr.o: byte.h byte_rchr.c compile - ./compile byte_rchr.c - -chkshsgr: chkshsgr.o load - ./load chkshsgr - -chkshsgr.o: chkshsgr.c compile - ./compile chkshsgr.c - -choose: choose.sh warn-auto.sh - rm -f choose - cat warn-auto.sh choose.sh \ - > choose - chmod 555 choose - -coe.o: coe.c coe.h compile - ./compile coe.c - -compile: conf-cc print-cc.sh systype warn-auto.sh - rm -f compile - sh print-cc.sh > compile - chmod 555 compile - -direntry.h: choose compile direntry.h1 direntry.h2 trydrent.c - ./choose c trydrent direntry.h1 direntry.h2 > direntry.h - -env.o: compile env.c env.h str.h - ./compile env.c - -error.o: compile error.c error.h - ./compile error.c - -error_str.o: compile error.h error_str.c - ./compile error_str.c - -fd_copy.o: compile fd.h fd_copy.c - ./compile fd_copy.c - -fd_move.o: compile fd.h fd_move.c - ./compile fd_move.c - -fifo.o: compile fifo.c fifo.h hasmkffo.h - ./compile fifo.c - -fmt_uint.o: compile fmt.h fmt_uint.c - ./compile fmt_uint.c - -fmt_uint0.o: compile fmt.h fmt_uint0.c - ./compile fmt_uint0.c - -fmt_ulong.o: compile fmt.h fmt_ulong.c - ./compile fmt_ulong.c - -hasflock.h: choose compile hasflock.h1 hasflock.h2 load tryflock.c - ./choose cl tryflock hasflock.h1 hasflock.h2 > hasflock.h - -hasmkffo.h: choose compile hasmkffo.h1 hasmkffo.h2 load trymkffo.c - ./choose cl trymkffo hasmkffo.h1 hasmkffo.h2 > hasmkffo.h - -hassgact.h: choose compile hassgact.h1 hassgact.h2 load trysgact.c - ./choose cl trysgact hassgact.h1 hassgact.h2 > hassgact.h - -hassgprm.h: choose compile hassgprm.h1 hassgprm.h2 load trysgprm.c - ./choose cl trysgprm hassgprm.h1 hassgprm.h2 > hassgprm.h - -hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \ -tryshsgr.c warn-shsgr - ./chkshsgr || ( cat warn-shsgr; exit 1 ) - ./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h - -haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c - ./choose cl trywaitp haswaitp.h1 haswaitp.h2 > haswaitp.h + @printf " [AR]\t\t$@\n" + ${SILENT}$(AR) $@ $^ -iopause.h: choose compile iopause.h1 iopause.h2 load trypoll.c - ./choose clr trypoll iopause.h1 iopause.h2 > iopause.h - -iopause.o: compile iopause.c iopause.h select.h tai.h taia.h uint64.h - ./compile iopause.c - -load: conf-ld print-ld.sh systype warn-auto.sh - rm -f load - sh print-ld.sh > load - chmod 555 load - -lock_ex.o: compile hasflock.h lock.h lock_ex.c - ./compile lock_ex.c - -lock_exnb.o: compile hasflock.h lock.h lock_exnb.c - ./compile lock_exnb.c - -makelib: print-ar.sh systype warn-auto.sh - rm -f makelib - sh print-ar.sh > makelib - chmod 555 makelib - -ndelay_off.o: compile ndelay.h ndelay_off.c - ./compile ndelay_off.c - -ndelay_on.o: compile ndelay.h ndelay_on.c - ./compile ndelay_on.c - -open_append.o: compile open.h open_append.c - ./compile open_append.c - -open_read.o: compile open.h open_read.c - ./compile open_read.c - -open_trunc.o: compile open.h open_trunc.c - ./compile open_trunc.c - -open_write.o: compile open.h open_write.c - ./compile open_write.c - -openreadclose.o: compile error.h gen_alloc.h open.h openreadclose.c \ -openreadclose.h readclose.h stralloc.h - ./compile openreadclose.c - -pathexec_env.o: alloc.h byte.h compile env.h gen_alloc.h pathexec.h \ -pathexec_env.c str.h stralloc.h - ./compile pathexec_env.c - -pathexec_run.o: compile env.h error.h gen_alloc.h pathexec.h \ -pathexec_run.c str.h stralloc.h - ./compile pathexec_run.c - -prot.o: compile hasshsgr.h prot.c prot.h - ./compile prot.c - -readclose.o: compile error.h gen_alloc.h readclose.c readclose.h \ -stralloc.h - ./compile readclose.c - -scan_ulong.o: compile scan.h scan_ulong.c - ./compile scan_ulong.c - -seek_set.o: compile seek.h seek_set.c - ./compile seek_set.c - -select.h: choose compile select.h1 select.h2 trysysel.c - ./choose c trysysel select.h1 select.h2 > select.h - -sgetopt.o: buffer.h compile sgetopt.c sgetopt.h subgetopt.h - ./compile sgetopt.c - -sig.o: compile sig.c sig.h - ./compile sig.c - -sig_block.o: compile hassgprm.h sig.h sig_block.c - ./compile sig_block.c - -sig_catch.o: compile hassgact.h sig.h sig_catch.c - ./compile sig_catch.c - -sig_pause.o: compile hassgprm.h sig.h sig_pause.c - ./compile sig_pause.c - -str_chr.o: compile str.h str_chr.c - ./compile str_chr.c - -str_diff.o: compile str.h str_diff.c - ./compile str_diff.c - -str_len.o: compile str.h str_len.c - ./compile str_len.c - -str_start.o: compile str.h str_start.c - ./compile str_start.c - -stralloc_cat.o: byte.h compile gen_alloc.h stralloc.h stralloc_cat.c - ./compile stralloc_cat.c - -stralloc_catb.o: byte.h compile gen_alloc.h stralloc.h \ -stralloc_catb.c - ./compile stralloc_catb.c - -stralloc_cats.o: byte.h compile gen_alloc.h str.h stralloc.h \ -stralloc_cats.c - ./compile stralloc_cats.c - -stralloc_eady.o: alloc.h compile gen_alloc.h gen_allocdefs.h \ -stralloc.h stralloc_eady.c - ./compile stralloc_eady.c - -stralloc_opyb.o: byte.h compile gen_alloc.h stralloc.h \ -stralloc_opyb.c - ./compile stralloc_opyb.c - -stralloc_opys.o: byte.h compile gen_alloc.h str.h stralloc.h \ -stralloc_opys.c - ./compile stralloc_opys.c - -stralloc_pend.o: alloc.h compile gen_alloc.h gen_allocdefs.h \ -stralloc.h stralloc_pend.c - ./compile stralloc_pend.c - -strerr_die.o: buffer.h compile strerr.h strerr_die.c - ./compile strerr_die.c - -strerr_sys.o: compile error.h strerr.h strerr_sys.c - ./compile strerr_sys.c - -subgetopt.o: compile subgetopt.c subgetopt.h - ./compile subgetopt.c - -sysdeps: compile direntry.h hasflock.h hasmkffo.h hassgact.h \ -hassgprm.h hasshsgr.h haswaitp.h iopause.h load select.h systype \ -uint64.h reboot_system.h uw_tmp.h socket.lib - rm -f sysdeps - cat systype compile load socket.lib >>sysdeps - grep sysdep direntry.h >>sysdeps - grep sysdep haswaitp.h >>sysdeps - grep sysdep hassgact.h >>sysdeps - grep sysdep hassgprm.h >>sysdeps - grep sysdep select.h >>sysdeps - grep sysdep uint64.h >>sysdeps - grep sysdep iopause.h >>sysdeps - grep sysdep hasmkffo.h >>sysdeps - grep sysdep hasflock.h >>sysdeps - grep sysdep hasshsgr.h >>sysdeps - grep sysdep reboot_system.h >>sysdeps - grep sysdep uw_tmp.h >>sysdeps - cat sysdeps - -systype: find-systype.sh trycpp.c x86cpuid.c - sh find-systype.sh > systype - -tai_now.o: compile tai.h tai_now.c uint64.h - ./compile tai_now.c - -tai_pack.o: compile tai.h tai_pack.c uint64.h - ./compile tai_pack.c - -tai_sub.o: compile tai.h tai_sub.c uint64.h - ./compile tai_sub.c - -tai_unpack.o: compile tai.h tai_unpack.c uint64.h - ./compile tai_unpack.c - -taia_add.o: compile tai.h taia.h taia_add.c uint64.h - ./compile taia_add.c - -taia_approx.o: compile tai.h taia.h taia_approx.c uint64.h - ./compile taia_approx.c - -taia_frac.o: compile tai.h taia.h taia_frac.c uint64.h - ./compile taia_frac.c - -taia_less.o: compile tai.h taia.h taia_less.c uint64.h - ./compile taia_less.c - -taia_now.o: compile tai.h taia.h taia_now.c uint64.h - ./compile taia_now.c - -taia_pack.o: compile tai.h taia.h taia_pack.c uint64.h - ./compile taia_pack.c - -taia_sub.o: compile tai.h taia.h taia_sub.c uint64.h - ./compile taia_sub.c - -taia_uint.o: compile tai.h taia.h taia_uint.c uint64.h - ./compile taia_uint.c - -time.a: iopause.o makelib tai_now.o tai_pack.o tai_sub.o tai_unpack.o \ +time.a: iopause.o tai_now.o tai_pack.o tai_sub.o tai_unpack.o \ taia_add.o taia_approx.o taia_frac.o taia_less.o taia_now.o \ taia_pack.o taia_sub.o taia_uint.o - ./makelib time.a iopause.o tai_now.o tai_pack.o tai_sub.o \ - tai_unpack.o taia_add.o taia_approx.o taia_frac.o taia_less.o \ - taia_now.o taia_pack.o taia_sub.o taia_uint.o - -uint64.h: choose compile load tryulong64.c uint64.h1 uint64.h2 - ./choose clr tryulong64 uint64.h1 uint64.h2 > uint64.h + @printf " [AR]\t\t$@\n" + ${SILENT}$(AR) $@ $^ unix.a: alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o buffer_2.o \ buffer_get.o buffer_put.o buffer_read.o buffer_write.o coe.o env.o \ error.o error_str.o fd_copy.o fd_move.o fifo.o lock_ex.o lock_exnb.o \ -makelib ndelay_off.o ndelay_on.o open_append.o open_read.o \ +ndelay_off.o ndelay_on.o open_append.o open_read.o \ open_trunc.o open_write.o openreadclose.o pathexec_env.o \ -pathexec_run.o prot.o readclose.o seek_set.o sgetopt.o sig.o \ +pathexec_run.o readclose.o seek_set.o sgetopt.o sig.o \ sig_block.o sig_catch.o sig_pause.o stralloc_cat.o stralloc_catb.o \ stralloc_cats.o stralloc_eady.o stralloc_opyb.o stralloc_opys.o \ stralloc_pend.o strerr_die.o strerr_sys.o subgetopt.o wait_nohang.o \ wait_pid.o - ./makelib unix.a alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o \ - buffer_2.o buffer_get.o buffer_put.o buffer_read.o buffer_write.o \ - coe.o env.o error.o error_str.o fd_copy.o fd_move.o fifo.o lock_ex.o \ - lock_exnb.o ndelay_off.o ndelay_on.o open_append.o open_read.o \ - open_trunc.o open_write.o openreadclose.o pathexec_env.o \ - pathexec_run.o prot.o readclose.o seek_set.o sgetopt.o sig.o \ - sig_block.o sig_catch.o sig_pause.o stralloc_cat.o stralloc_catb.o \ - stralloc_cats.o stralloc_eady.o stralloc_opyb.o stralloc_opys.o \ - stralloc_pend.o strerr_die.o strerr_sys.o subgetopt.o wait_nohang.o \ - wait_pid.o - -wait_nohang.o: compile haswaitp.h wait_nohang.c - ./compile wait_nohang.c - -wait_pid.o: compile error.h haswaitp.h wait_pid.c - ./compile wait_pid.c + @printf " [AR]\t\t$@\n" + ${SILENT}$(AR) $@ $^ +%.o: %.c + @printf " [CC]\t\t$@\n" + ${SILENT}$(CC) $(CFLAGS) $(CPPFLAGS) -c $< diff --git a/src/TARGETS b/src/TARGETS deleted file mode 100644 index 46981ce..0000000 --- a/src/TARGETS +++ /dev/null @@ -1,143 +0,0 @@ -runit -runit.o -runit-init -runit-init.o -runsv -runsv.o -runsvdir -runsvdir.o -runsvstat -runsvstat.o -runsvctrl -runsvctrl.o -sv -sv.o -svwaitdown -svwaitdown.o -svwaitup -svwaitup.o -utmpset -utmpset.o -runsvchdir -runsvchdir.o -svlogd -svlogd.o -chpst -chpst.o -pmatch.o -fmt_ptime.o -uidgid.o -reboot_system.h -uw_tmp.h -socket.lib -trysocketlib -trysocketlib.o -check -alloc.o -alloc_re.o -buffer.o -buffer_0.o -buffer_1.o -buffer_2.o -buffer_get.o -buffer_put.o -buffer_read.o -buffer_write.o -byte.a -byte_chr.o -byte_copy.o -byte_cr.o -byte_diff.o -byte_rchr.o -chkshsgr -chkshsgr.o -choose -coe.o -compile -direntry.h -env.o -error.o -error_str.o -fd_copy.o -fd_move.o -fifo.o -fmt_uint.o -fmt_uint0.o -fmt_ulong.o -hasflock.h -hasmkffo.h -hassgact.h -hassgprm.h -hasshsgr.h -haswaitp.h -iopause.h -iopause.o -load -lock_ex.o -lock_exnb.o -makelib -ndelay_off.o -ndelay_on.o -open_append.o -open_read.o -open_trunc.o -open_write.o -openreadclose.o -pathexec_env.o -pathexec_run.o -prot.o -readclose.o -scan_ulong.o -seek_set.o -select.h -sgetopt.o -sig.o -sig_block.o -sig_catch.o -sig_pause.o -str_chr.o -str_diff.o -str_len.o -str_start.o -stralloc_cat.o -stralloc_catb.o -stralloc_cats.o -stralloc_eady.o -stralloc_opyb.o -stralloc_opys.o -stralloc_pend.o -strerr_die.o -strerr_sys.o -subgetopt.o -sysdeps -systype -tai_now.o -tai_pack.o -tai_sub.o -tai_unpack.o -taia_add.o -taia_approx.o -taia_frac.o -taia_less.o -taia_now.o -taia_pack.o -taia_sub.o -taia_uint.o -time.a -uint64.h -unix.a -wait_nohang.o -wait_pid.o -chpst.local -runit-init.local -runit.local -runsv.local -runsvchdir.local -runsvctrl.local -runsvdir.local -runsvstat.local -sv.local -svlogd.local -svwaitdown.local -svwaitup.local -utmpset.local diff --git a/src/chkshsgr.c b/src/chkshsgr.c deleted file mode 100644 index 31eda67..0000000 --- a/src/chkshsgr.c +++ /dev/null @@ -1,13 +0,0 @@ -/* Public domain. */ - -#include -#include - -int main() -{ - gid_t x[4]; - - x[0] = x[1] = 0; - if (getgroups(1,x) == 0) if (setgroups(1,x) == -1) _exit(1); - _exit(0); -} diff --git a/src/choose.sh b/src/choose.sh deleted file mode 100644 index feff2da..0000000 --- a/src/choose.sh +++ /dev/null @@ -1,18 +0,0 @@ - -result="$4" - -case "$1" in - *c*) ./compile $2.c >/dev/null 2>&1 || result="$3" ;; -esac - -case "$1" in - *l*) ./load $2 >/dev/null 2>&1 || result="$3" ;; -esac - -case "$1" in - *r*) ./$2 >/dev/null 2>&1 || result="$3" ;; -esac - -rm -f $2.o $2 - -exec cat "$result" diff --git a/src/chpst.c b/src/chpst.c index d597b68..86bc607 100644 --- a/src/chpst.c +++ b/src/chpst.c @@ -3,12 +3,13 @@ #include #include #include +#include #include "sgetopt.h" #include "error.h" #include "strerr.h" #include "str.h" +#include "strquote.h" #include "uidgid.h" -#include "prot.h" #include "strerr.h" #include "scan.h" #include "fmt.h" @@ -80,7 +81,7 @@ void suidgid(char *user, unsigned int ext) { } if (setgroups(ugid.gids, ugid.gid) == -1) fatal("unable to setgroups"); if (setgid(*ugid.gid) == -1) fatal("unable to setgid"); - if (prot_uid(ugid.uid) == -1) fatal("unable to setuid"); + if (setuid(ugid.uid) == -1) fatal("unable to setuid"); } void euidgid(char *user, unsigned int ext) { @@ -327,7 +328,7 @@ int main(int argc, const char **argv) { case '0': nostdin =1; break; case '1': nostdout =1; break; case '2': nostderr =1; break; - case 'V': strerr_warn1("$Id$", 0); + case 'V': strerr_warn1(STR(VERSION), 0); case '?': usage(); } argv +=optind; diff --git a/src/chpst.check b/src/chpst.check index 384113e..4510693 100755 --- a/src/chpst.check +++ b/src/chpst.check @@ -3,8 +3,6 @@ rm -rf "${ctmp}" chpst echo $? -chpst -V -echo $? # -u # -U diff --git a/src/chpst.dist b/src/chpst.dist index 6779bfd..bfeaa11 100644 --- a/src/chpst.dist +++ b/src/chpst.dist @@ -1,8 +1,4 @@ -usage: chpst [-vP012] [-u user[:group]] [-U user[:group]] [-b argv0] [-e dir] [-/ root] [-n nice] [-l|-L lock] [-m n] [-d n] [-o n] [-p n] [-f n] [-c n] prog - -100 -$Id: f279d44141c981dd7535a12260efcf1ef7beed26 $ -usage: chpst [-vP012] [-u user[:group]] [-U user[:group]] [-b argv0] [-e dir] [-/ root] [-n nice] [-l|-L lock] [-m n] [-d n] [-o n] [-p n] [-f n] [-c n] prog +usage: chpst [-vP012] [-u user[:group]] [-U user[:group]] [-b argv0] [-e dir] [-/ root] [-C pwd] [-n nice] [-l|-L lock] [-m n] [-d n] [-o n] [-p n] [-f n] [-c n] prog 100 test=1 diff --git a/src/conf-cc b/src/conf-cc deleted file mode 100644 index 984024f..0000000 --- a/src/conf-cc +++ /dev/null @@ -1,5 +0,0 @@ -gcc -O2 -Wall - -gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings - -This will be used to compile .c files. diff --git a/src/conf-ld b/src/conf-ld deleted file mode 100644 index 59a0de7..0000000 --- a/src/conf-ld +++ /dev/null @@ -1,3 +0,0 @@ -gcc -s - -This will be used to link .o files into an executable. diff --git a/src/direntry.h1 b/src/direntry.h similarity index 63% rename from src/direntry.h1 rename to src/direntry.h index 6cb088d..cc61610 100644 --- a/src/direntry.h1 +++ b/src/direntry.h @@ -3,10 +3,18 @@ #ifndef DIRENTRY_H #define DIRENTRY_H -/* sysdep: -dirent */ - #include + +#ifdef HASDIRENT + +#include +#define direntry struct dirent + +#else + #include #define direntry struct direct #endif + +#endif diff --git a/src/direntry.h2 b/src/direntry.h2 deleted file mode 100644 index bfd4d19..0000000 --- a/src/direntry.h2 +++ /dev/null @@ -1,12 +0,0 @@ -/* Public domain. */ - -#ifndef DIRENTRY_H -#define DIRENTRY_H - -/* sysdep: +dirent */ - -#include -#include -#define direntry struct dirent - -#endif diff --git a/src/fifo.c b/src/fifo.c index c14f683..f3817a5 100644 --- a/src/fifo.c +++ b/src/fifo.c @@ -2,7 +2,6 @@ #include #include -#include "hasmkffo.h" #include "fifo.h" #ifdef HASMKFIFO diff --git a/src/find-systype.sh b/src/find-systype.sh deleted file mode 100644 index 9f6e565..0000000 --- a/src/find-systype.sh +++ /dev/null @@ -1,143 +0,0 @@ -# oper-:arch-:syst-:chip-:kern- -# oper = operating system type; e.g., sunos-4.1.4 -# arch = machine language; e.g., sparc -# syst = which binaries can run; e.g., sun4 -# chip = chip model; e.g., micro-2-80 -# kern = kernel version; e.g., sun4m -# dependence: arch --- chip -# \ \ -# oper --- syst --- kern -# so, for example, syst is interpreted in light of oper, but chip is not. -# anyway, no slashes, no extra colons, no uppercase letters. -# the point of the extra -'s is to ease parsing: can add hierarchies later. -# e.g., *:i386-*:*:pentium-*:* would handle pentium-100 as well as pentium, -# and i386-486 (486s do have more instructions, you know) as well as i386. -# the idea here is to include ALL useful available information. - -exec 2>/dev/null - -sys="`uname -s | tr '/:[A-Z]' '..[a-z]'`" -if [ x"$sys" != x ] -then - unamer="`uname -r | tr /: ..`" - unamem="`uname -m | tr /: ..`" - unamev="`uname -v | tr /: ..`" - - case "$sys" in - bsd.os|freebsd|netbsd|openbsd) - # in bsd 4.4, uname -v does not have useful info. - # in bsd 4.4, uname -m is arch, not chip. - oper="$sys-$unamer" - arch="$unamem" - syst="" - chip="`sysctl -n hw.model`" # hopefully - kern="" - ;; - linux) - # as in bsd 4.4, uname -v does not have useful info. - oper="$sys-$unamer" - syst="" - chip="$unamem" - kern="" - case "$chip" in - i386|i486|i586|i686) - arch="i386" - ;; - alpha) - arch="alpha" - ;; - esac - ;; - aix) - # naturally IBM has to get uname -r and uname -v backwards. dorks. - oper="$sys-$unamev-$unamer" - arch="`arch | tr /: ..`" - syst="" - chip="$unamem" - kern="" - ;; - sunos) - oper="$sys-$unamer-$unamev" - arch="`(uname -p || mach) | tr /: ..`" - syst="`arch | tr /: ..`" - chip="$unamem" # this is wrong; is there any way to get the real info? - kern="`arch -k | tr /: ..`" - ;; - unix_sv) - oper="$sys-$unamer-$unamev" - arch="`uname -m`" - syst="" - chip="$unamem" - kern="" - ;; - *) - oper="$sys-$unamer-$unamev" - arch="`arch | tr /: ..`" - syst="" - chip="$unamem" - kern="" - ;; - esac -else - gcc -c trycpp.c - gcc -o trycpp trycpp.o - case `./trycpp` in - nextstep) - oper="nextstep-`hostinfo | sed -n 's/^[ ]*NeXT Mach \([^:]*\):.*$/\1/p'`" - arch="`hostinfo | sed -n 's/^Processor type: \(.*\) (.*)$/\1/p' | tr /: ..`" - syst="" - chip="`hostinfo | sed -n 's/^Processor type: .* (\(.*\))$/\1/p' | tr ' /:' '...'`" - kern="" - ;; - *) - oper="unknown" - arch="" - syst="" - chip="" - kern="" - ;; - esac - rm -f trycpp.o trycpp -fi - -case "$chip" in -80486) - # let's try to be consistent here. (BSD/OS) - chip=i486 - ;; -i486DX) - # respect the hyphen hierarchy. (FreeBSD) - chip=i486-dx - ;; -i486.DX2) - # respect the hyphen hierarchy. (FreeBSD) - chip=i486-dx2 - ;; -Intel.586) - # no, you nitwits, there is no such chip. (NeXTStep) - chip=pentium - ;; -i586) - # no, you nitwits, there is no such chip. (Linux) - chip=pentium - ;; -i686) - # STOP SAYING THAT! (Linux) - chip=ppro -esac - -if gcc -c x86cpuid.c -then - if gcc -o x86cpuid x86cpuid.o - then - x86cpuid="`./x86cpuid | tr /: ..`" - case "$x86cpuid" in - ?*) - chip="$x86cpuid" - ;; - esac - fi -fi -rm -f x86cpuid x86cpuid.o - -echo "$oper-:$arch-:$syst-:$chip-:$kern-" | tr ' [A-Z]' '.[a-z]' diff --git a/src/hasflock.h1 b/src/hasflock.h1 deleted file mode 100644 index ac7dfc3..0000000 --- a/src/hasflock.h1 +++ /dev/null @@ -1,3 +0,0 @@ -/* Public domain. */ - -/* sysdep: -flock */ diff --git a/src/hasflock.h2 b/src/hasflock.h2 deleted file mode 100644 index 1878f64..0000000 --- a/src/hasflock.h2 +++ /dev/null @@ -1,4 +0,0 @@ -/* Public domain. */ - -/* sysdep: +flock */ -#define HASFLOCK 1 diff --git a/src/hasmkffo.h1 b/src/hasmkffo.h1 deleted file mode 100644 index a562451..0000000 --- a/src/hasmkffo.h1 +++ /dev/null @@ -1,3 +0,0 @@ -/* Public domain. */ - -/* sysdep: -mkfifo */ diff --git a/src/hasmkffo.h2 b/src/hasmkffo.h2 deleted file mode 100644 index 8ac8943..0000000 --- a/src/hasmkffo.h2 +++ /dev/null @@ -1,4 +0,0 @@ -/* Public domain. */ - -/* sysdep: +mkfifo */ -#define HASMKFIFO 1 diff --git a/src/hassgact.h1 b/src/hassgact.h1 deleted file mode 100644 index 7639d24..0000000 --- a/src/hassgact.h1 +++ /dev/null @@ -1,3 +0,0 @@ -/* Public domain. */ - -/* sysdep: -sigaction */ diff --git a/src/hassgact.h2 b/src/hassgact.h2 deleted file mode 100644 index 60ff776..0000000 --- a/src/hassgact.h2 +++ /dev/null @@ -1,4 +0,0 @@ -/* Public domain. */ - -/* sysdep: +sigaction */ -#define HASSIGACTION 1 diff --git a/src/hassgprm.h1 b/src/hassgprm.h1 deleted file mode 100644 index ef3eee9..0000000 --- a/src/hassgprm.h1 +++ /dev/null @@ -1,3 +0,0 @@ -/* Public domain. */ - -/* sysdep: -sigprocmask */ diff --git a/src/hassgprm.h2 b/src/hassgprm.h2 deleted file mode 100644 index be9d0d7..0000000 --- a/src/hassgprm.h2 +++ /dev/null @@ -1,4 +0,0 @@ -/* Public domain. */ - -/* sysdep: +sigprocmask */ -#define HASSIGPROCMASK 1 diff --git a/src/hasshsgr.h1 b/src/hasshsgr.h1 deleted file mode 100644 index 3806277..0000000 --- a/src/hasshsgr.h1 +++ /dev/null @@ -1,3 +0,0 @@ -/* Public domain. */ - -/* sysdep: -shortsetgroups */ diff --git a/src/hasshsgr.h2 b/src/hasshsgr.h2 deleted file mode 100644 index 5624ed0..0000000 --- a/src/hasshsgr.h2 +++ /dev/null @@ -1,4 +0,0 @@ -/* Public domain. */ - -/* sysdep: +shortsetgroups */ -#define HASSHORTSETGROUPS 1 diff --git a/src/haswaitp.h1 b/src/haswaitp.h1 deleted file mode 100644 index 0d6f82c..0000000 --- a/src/haswaitp.h1 +++ /dev/null @@ -1,3 +0,0 @@ -/* Public domain. */ - -/* sysdep: -waitpid */ diff --git a/src/haswaitp.h2 b/src/haswaitp.h2 deleted file mode 100644 index 015413f..0000000 --- a/src/haswaitp.h2 +++ /dev/null @@ -1,4 +0,0 @@ -/* Public domain. */ - -/* sysdep: +waitpid */ -#define HASWAITPID 1 diff --git a/src/iopause.c b/src/iopause.c index ea5a426..9eb6eb8 100644 --- a/src/iopause.c +++ b/src/iopause.c @@ -1,7 +1,6 @@ /* Public domain. */ #include "taia.h" -#include "select.h" #include "iopause.h" void iopause(iopause_fd *x,unsigned int len,struct taia *deadline,struct taia *stamp) @@ -24,55 +23,9 @@ void iopause(iopause_fd *x,unsigned int len,struct taia *deadline,struct taia *s for (i = 0;i < len;++i) x[i].revents = 0; -#ifdef IOPAUSE_POLL - poll(x,len,millisecs); /* XXX: some kernels apparently need x[0] even if len is 0 */ /* XXX: how to handle EAGAIN? are kernels really this dumb? */ /* XXX: how to handle EINVAL? when exactly can this happen? */ -#else -{ - - struct timeval tv; - fd_set rfds; - fd_set wfds; - int nfds; - int fd; - - FD_ZERO(&rfds); - FD_ZERO(&wfds); - - nfds = 1; - for (i = 0;i < len;++i) { - fd = x[i].fd; - if (fd < 0) continue; - if (fd >= 8 * sizeof(fd_set)) continue; /*XXX*/ - - if (fd >= nfds) nfds = fd + 1; - if (x[i].events & IOPAUSE_READ) FD_SET(fd,&rfds); - if (x[i].events & IOPAUSE_WRITE) FD_SET(fd,&wfds); - } - - tv.tv_sec = millisecs / 1000; - tv.tv_usec = 1000 * (millisecs % 1000); - - if (select(nfds,&rfds,&wfds,(fd_set *) 0,&tv) <= 0) - return; - /* XXX: for EBADF, could seek out and destroy the bad descriptor */ - - for (i = 0;i < len;++i) { - fd = x[i].fd; - if (fd < 0) continue; - if (fd >= 8 * sizeof(fd_set)) continue; /*XXX*/ - - if (x[i].events & IOPAUSE_READ) - if (FD_ISSET(fd,&rfds)) x[i].revents |= IOPAUSE_READ; - if (x[i].events & IOPAUSE_WRITE) - if (FD_ISSET(fd,&wfds)) x[i].revents |= IOPAUSE_WRITE; - } - -} -#endif - } diff --git a/src/iopause.h2 b/src/iopause.h similarity index 87% rename from src/iopause.h2 rename to src/iopause.h index 8e58452..b425282 100644 --- a/src/iopause.h2 +++ b/src/iopause.h @@ -3,9 +3,6 @@ #ifndef IOPAUSE_H #define IOPAUSE_H -/* sysdep: +poll */ -#define IOPAUSE_POLL - #include #include diff --git a/src/iopause.h1 b/src/iopause.h1 deleted file mode 100644 index 5c53de7..0000000 --- a/src/iopause.h1 +++ /dev/null @@ -1,21 +0,0 @@ -/* Public domain. */ - -#ifndef IOPAUSE_H -#define IOPAUSE_H - -/* sysdep: -poll */ - -typedef struct { - int fd; - short events; - short revents; -} iopause_fd; - -#define IOPAUSE_READ 1 -#define IOPAUSE_WRITE 4 - -#include "taia.h" - -extern void iopause(iopause_fd *,unsigned int,struct taia *,struct taia *); - -#endif diff --git a/src/lock_ex.c b/src/lock_ex.c index b75a764..93487a8 100644 --- a/src/lock_ex.c +++ b/src/lock_ex.c @@ -3,7 +3,6 @@ #include #include #include -#include "hasflock.h" #include "lock.h" #ifdef HASFLOCK diff --git a/src/lock_exnb.c b/src/lock_exnb.c index 9ec2b9c..4691fd1 100644 --- a/src/lock_exnb.c +++ b/src/lock_exnb.c @@ -3,7 +3,6 @@ #include #include #include -#include "hasflock.h" #include "lock.h" #ifdef HASFLOCK diff --git a/src/print-ar.sh b/src/print-ar.sh deleted file mode 100644 index 99bc116..0000000 --- a/src/print-ar.sh +++ /dev/null @@ -1,14 +0,0 @@ -cat warn-auto.sh -echo 'main="$1"; shift' -echo 'rm -f "$main"' -echo 'ar cr "$main" ${1+"$@"}' -case "`cat systype`" in - sunos-5.*) ;; - unix_sv*) ;; - irix64-*) ;; - irix-*) ;; - dgux-*) ;; - hp-ux-*) ;; - sco*) ;; - *) echo 'ranlib "$main"' ;; -esac diff --git a/src/print-cc.sh b/src/print-cc.sh deleted file mode 100644 index 31f4ed3..0000000 --- a/src/print-cc.sh +++ /dev/null @@ -1,5 +0,0 @@ -cc="`head -n1 conf-cc`" -systype="`cat systype`" - -cat warn-auto.sh -echo exec "$cc" '-c ${1+"$@"}' diff --git a/src/print-ld.sh b/src/print-ld.sh deleted file mode 100644 index 59489a8..0000000 --- a/src/print-ld.sh +++ /dev/null @@ -1,6 +0,0 @@ -ld="`head -n1 conf-ld`" -systype="`cat systype`" - -cat warn-auto.sh -echo 'main="$1"; shift' -echo exec "$ld" '-o "$main" "$main".o ${1+"$@"}' diff --git a/src/prot.c b/src/prot.c deleted file mode 100644 index 66cdc05..0000000 --- a/src/prot.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Public domain. */ - -#include "hasshsgr.h" -#include "prot.h" - -#include -#include -#include - -int prot_gid(gid_t gid) -{ -#ifdef HASSHORTSETGROUPS - short x[2]; - x[0] = gid; x[1] = 73; /* catch errors */ - if (setgroups(1,x) == -1) return -1; -#else - if (setgroups(1,&gid) == -1) return -1; -#endif - return setgid(gid); /* _should_ be redundant, but on some systems it isn't */ -} - -int prot_uid(uid_t uid) -{ - return setuid(uid); -} diff --git a/src/prot.h b/src/prot.h deleted file mode 100644 index b9fa6c8..0000000 --- a/src/prot.h +++ /dev/null @@ -1,11 +0,0 @@ -/* Public domain. */ - -#ifndef PROT_H -#define PROT_H - -#include - -extern int prot_gid(gid_t); -extern int prot_uid(uid_t); - -#endif diff --git a/src/reboot_system.h1 b/src/reboot_system.h1 deleted file mode 100644 index d4950c9..0000000 --- a/src/reboot_system.h1 +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -/* sysdep: -std reboot */ - -int reboot_system(int what) { - return(reboot(what, (char *)0)); -} diff --git a/src/reboot_system.h2 b/src/reboot_system.h2 deleted file mode 100644 index b30d1e9..0000000 --- a/src/reboot_system.h2 +++ /dev/null @@ -1,8 +0,0 @@ -#include -#include - -/* sysdep: +std reboot */ - -int reboot_system(int what) { - return(reboot(what)); -} diff --git a/src/runit-init.c b/src/runit-init.c index f075d98..bf199ea 100644 --- a/src/runit-init.c +++ b/src/runit-init.c @@ -67,7 +67,7 @@ int main (int argc, const char * const *argv, char * const *envp) { break; case '-': if ((*argv)[1] == 'V') - strerr_warn1("$Id$\n", 0); + strerr_warn1(STR(VERSION), 0); default: usage(); } diff --git a/src/runit.c b/src/runit.c index 25da3b8..342dce8 100644 --- a/src/runit.c +++ b/src/runit.c @@ -14,7 +14,6 @@ #include "ndelay.h" #include "wait.h" #include "open.h" -#include "reboot_system.h" /* #define DEBUG */ @@ -22,10 +21,18 @@ #define WARNING "- runit: warning: " #define FATAL "- runit: fatal: " +static int reboot_system(int what) { + #ifdef HASONEARGREBOOT + return(reboot(what)); + #else + return(reboot(what, (char *)0)); + #endif +} + const char * const stage[3] ={ - "/etc/runit/1", - "/etc/runit/2", - "/etc/runit/3" }; + STR(SYSCONFDIR) "/runit/1", + STR(SYSCONFDIR) "/runit/2", + STR(SYSCONFDIR) "/runit/3" }; int selfpipe[2]; int sigc =0; @@ -47,10 +54,6 @@ int main (int argc, const char * const *argv, char * const *envp) { int wstat; int st; iopause_fd x; -#ifndef IOPAUSE_POLL - fd_set rfds; - struct timeval t; -#endif char ch; int ttyfd; struct stat s; @@ -90,7 +93,7 @@ int main (int argc, const char * const *argv, char * const *envp) { if (RB_DISABLE_CAD == 0) reboot_system(0); #endif - strerr_warn3(INFO, "$Id$", + strerr_warn3(INFO, STR(VERSION), ": booting.", 0); /* runit */ @@ -145,14 +148,7 @@ int main (int argc, const char * const *argv, char * const *envp) { sig_unblock(sig_child); sig_unblock(sig_cont); sig_unblock(sig_int); -#ifdef IOPAUSE_POLL poll(&x, 1, 14000); -#else - t.tv_sec =14; t.tv_usec =0; - FD_ZERO(&rfds); - FD_SET(x.fd, &rfds); - select(x.fd +1, &rfds, (fd_set*)0, (fd_set*)0, &t); -#endif sig_block(sig_cont); sig_block(sig_child); sig_block(sig_int); diff --git a/src/runit.h b/src/runit.h index ba98386..6e61a0c 100644 --- a/src/runit.h +++ b/src/runit.h @@ -1,4 +1,6 @@ -#define RUNIT "/sbin/runit" -#define STOPIT "/etc/runit/stopit" -#define REBOOT "/etc/runit/reboot" -#define CTRLALTDEL "/etc/runit/ctrlaltdel" +#include "strquote.h" + +#define RUNIT STR(SBINDIR) "/runit" +#define STOPIT STR(SYSCONFDIR) "/runit/stopit" +#define REBOOT STR(SYSCONFDIR) "/runit/reboot" +#define CTRLALTDEL STR(SYSCONFDIR) "/runit/ctrlaltdel" diff --git a/src/runsv.c b/src/runsv.c index ecf4677..c9a13df 100644 --- a/src/runsv.c +++ b/src/runsv.c @@ -22,8 +22,6 @@ #define USAGE " dir" -#define VERSION "$Id$" - char *progname; int selfpipe[2]; diff --git a/src/runsvchdir.c b/src/runsvchdir.c index 9bf17f7..51397eb 100644 --- a/src/runsvchdir.c +++ b/src/runsvchdir.c @@ -3,13 +3,12 @@ #include #include #include "strerr.h" +#include "strquote.h" #include "error.h" #include "buffer.h" #define USAGE " dir" -#define SVDIR "/etc/runit/runsvdir" - -#define VERSION "$Id$" +#define SVDIR STR(SYSCONFDIR) "/runit/runsvdir" char *progname; char *new; diff --git a/src/runsvctrl.c b/src/runsvctrl.c deleted file mode 100644 index ccf8fc8..0000000 --- a/src/runsvctrl.c +++ /dev/null @@ -1,82 +0,0 @@ -#include -#include "strerr.h" -#include "error.h" -#include "open.h" - -#define USAGE " u|d|o|p|c|h|a|i|q|1|2|t|k|x|e service ..." - -#define VERSION "$Id$" - -#define FATAL "runsvctrl: fatal: " -#define WARNING "runsvctrl: warning: " - -char *progname; -unsigned int rc =0; - -void usage() { strerr_die4x(1, "usage: ", progname, USAGE, "\n"); } - -void fatal(char *m1) { strerr_die3sys(111, FATAL, m1, ": "); } -void warn(char *m1, char *m2) { - rc++; - strerr_warn5(WARNING, m1, ": ", m2, ": ", &strerr_sys); -} -void warnx(char *m1, char *m2) { - rc++; - strerr_warn4(WARNING, m1, ": ", m2, 0); -} - -int ctrl(char *name, char c) { - int fd; - - if ((fd =open_write("supervise/control")) == -1) { - if (errno == error_nodevice) - warnx(name, "runsv not running."); - else - warn(name, "unable to open supervise/control"); - return(-1); - } - if (write(fd, &c, 1) != 1) { - warn(name, "unable to write to supervise/control"); - return(-1); - } - return(1); -} - -int main(int argc, char **argv) { - char **dir; - int curdir; - char c; - - progname =*argv++; - - if (! argv || ! *argv) usage(); - - switch ((c =**argv)) { - case 'e': c ='x'; - case 'u': case 'd': case 'o': case 'x': case 'p': case 'c': case 'h': - case 'a': case 'i': case 't': case 'k': case 'q': case '1': case '2': - break; - default: - usage(); - } - dir =++argv; - if (! dir || ! *dir) usage(); - - if ((curdir =open_read(".")) == -1) { - rc =100; - fatal("unable to open current directory"); - } - for (; dir && *dir; dir++) { - if (chdir(*dir) == -1) { - warn(*dir, "unable to change directory"); - continue; - } - ctrl(*dir, c); - if (fchdir(curdir) == -1) { - rc =100; - fatal("unable to change directory"); - } - } - if (rc > 100) rc =100; - _exit(rc); -} diff --git a/src/runsvctrl.check b/src/runsvctrl.check deleted file mode 100755 index 7911074..0000000 --- a/src/runsvctrl.check +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -rm -rf "${ctmp}" - -runsvctrl -echo $? - -mkdir "${ctmp}" -echo '#!/bin/sh' >"${ctmp}"/run -echo 'echo starting' >>"${ctmp}"/run -echo 'exec sleep 14' >>"${ctmp}"/run -chmod 700 "${ctmp}"/run -runsv "${ctmp}" & -sleep 1 -test -r "${ctmp}"/supervise/stat || sleep 2 -runsvctrl down "${ctmp}" -echo $? -sleep 1 -cat "${ctmp}"/supervise/stat -runsvctrl exit "${ctmp}" -echo $? -wait -echo $? -rm -rf "${ctmp}" diff --git a/src/runsvctrl.dist b/src/runsvctrl.dist deleted file mode 100644 index b07cf8a..0000000 --- a/src/runsvctrl.dist +++ /dev/null @@ -1,8 +0,0 @@ -usage: runsvctrl u|d|o|p|c|h|a|i|q|1|2|t|k|x|e service ... - -1 -starting -0 -down -0 -0 diff --git a/src/runsvdir.c b/src/runsvdir.c index ecebd0a..561093c 100644 --- a/src/runsvdir.c +++ b/src/runsvdir.c @@ -17,7 +17,6 @@ #include "ndelay.h" #define USAGE " [-P] dir" -#define VERSION "$Id$" #define MAXSERVICES 1000 @@ -233,7 +232,7 @@ int main(int argc, char **argv) { dev =s.st_dev; ino =s.st_ino; check =0; - if (now.sec.x <= (4611686018427387914ULL +(uint64)mtime)) + if (now.sec.x <= (4611686018427387914ULL +(uint64_t)mtime)) sleep(1); runsvdir(); while (fchdir(curdir) == -1) { diff --git a/src/runsvstat.c b/src/runsvstat.c deleted file mode 100644 index c17bbd3..0000000 --- a/src/runsvstat.c +++ /dev/null @@ -1,167 +0,0 @@ -#include -#include -#include -#include "strerr.h" -#include "error.h" -#include "sgetopt.h" -#include "open.h" -#include "buffer.h" -#include "tai.h" -#include "fmt.h" - -#define USAGE " [ -l ] service ..." - -#define VERSION "$Id$" - -#define FATAL "runsvstat: fatal: " -#define WARNING "runsvstat: warning: " - -const char *progname; -unsigned int rc =0; -struct stat s; -int showlog =0; - -void usage() { strerr_die4x(1, "usage: ", progname, USAGE, "\n"); } - -void fatal(char *m1) { strerr_die3sys(111, FATAL, m1, ": "); } -void warn(char *m1, char *m2) { - rc++; - strerr_warn5(WARNING, m1, ": ", m2, ": ", &strerr_sys); -} -void warnx(char *m1, char *m2) { - rc++; - strerr_warn4(WARNING, m1, ": ", m2, 0); -} - -int show_status(char *name) { - char status[20]; - int pid; - int fd; - int normallyup =0; - char sulong[FMT_ULONG]; - struct tai when; - struct tai now; - - if (stat("down", &s) == -1) { - if (errno != error_noent) { - warn(name, "unable to stat down"); - return(-1); - } - normallyup = 1; - } - if ((fd =open_write("supervise/ok")) == -1) { - if (errno == error_nodevice) - warnx(name, "runsv not running."); - else - warn(name, "unable to open supervise/ok"); - return(-1); - } - close(fd); - if ((fd =open_read("supervise/status")) == -1) { - warn(name, "unable to open supervise/status"); - return(-1); - } - switch(read(fd, status, 20)) { - case 20: break; - case -1: - warn(name, "unable to read supervise/status"); - return(-1); - default: - warnx(name, "unable to read supervise/status: bad format."); - return(-1); - } - pid =(unsigned char) status[15]; - pid <<=8; pid +=(unsigned char)status[14]; - pid <<=8; pid +=(unsigned char)status[13]; - pid <<=8; pid +=(unsigned char)status[12]; - - tai_unpack(status,&when); - tai_now(&now); - if (tai_less(&now,&when)) when =now; - tai_sub(&when,&now,&when); - - buffer_puts(buffer_1, name); - buffer_puts(buffer_1, ": "); - if (pid) { - switch (status[19]) { - case 1: buffer_puts(buffer_1, "run "); break; - case 2: buffer_puts(buffer_1, "finish "); break; - } - buffer_puts(buffer_1, "(pid "); - buffer_put(buffer_1, sulong, fmt_ulong(sulong, pid)); - buffer_puts(buffer_1, ") "); - } - else - buffer_puts(buffer_1, "down "); - buffer_put(buffer_1, sulong, fmt_ulong(sulong, tai_approx(&when))); - buffer_puts(buffer_1, " seconds"); - if (pid && !normallyup) buffer_puts(buffer_1,", normally down"); - if (!pid && normallyup) buffer_puts(buffer_1,", normally up"); - if (pid && status[16]) buffer_puts(buffer_1,", paused"); - if (!pid && (status[17] == 'u')) buffer_puts(buffer_1,", want up"); - if (pid && (status[17] == 'd')) buffer_puts(buffer_1,", want down"); - if (pid && status[18]) buffer_puts(buffer_1, ", got TERM"); - /* buffer_putsflush(buffer_1, "\n"); */ - return(1); -} - -int main(int argc, char **argv) { - int opt; - int curdir; - char **dir; - - progname =*argv; - - while ((opt =getopt(argc, (const char * const *)argv, "lV")) != opteof) { - switch(opt) { - case 'l': - showlog =1; - break; - case 'V': - strerr_warn1(VERSION, 0); - case '?': - usage(); - } - } - argv +=optind; - - dir =argv; - if (! dir || ! *dir) usage(); - - if ((curdir =open_read(".")) == -1) { - rc =100; - fatal("unable to open current directory"); - } - for (; dir && *dir; dir++) { - if (chdir(*dir) == -1) { - warn(*dir, "unable to change directory"); - continue; - } - if (show_status(*dir) == 1) { - if (showlog) { - if (stat("log", &s) == -1) { - if (errno != error_noent) - warn("unable to stat()", "./log"); - } - else { - if (! S_ISDIR(s.st_mode)) - warnx("./log", "not a directory."); - else { - if (chdir("log") == -1) { - warn(*dir, "unable to change directory"); - continue; - } - show_status("\n log"); - } - } - } - buffer_puts(buffer_1, "\n"); buffer_flush(buffer_1); - } - if (fchdir(curdir) == -1) { - rc =100; - fatal("unable to change directory"); - } - } - if (rc > 100) rc =100; - _exit(rc); -} diff --git a/src/runsvstat.check b/src/runsvstat.check deleted file mode 100755 index 6ccde11..0000000 --- a/src/runsvstat.check +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -rm -rf "${ctmp}" - -runsvstat -echo $? -runsvstat -V -echo $? - -mkdir "${ctmp}" -echo '#!/bin/sh' >"${ctmp}"/run -echo 'echo starting' >>"${ctmp}"/run -echo 'exec sleep 14' >>"${ctmp}"/run -chmod 700 "${ctmp}"/run -chpst -2 runsvstat "${ctmp}" -echo $? -runsv "${ctmp}" & -sleep 1 -test -r "${ctmp}"/supervise/stat || sleep 2 -chpst -1 runsvstat "${ctmp}" -echo $? -runsvctrl exit "${ctmp}" -wait -echo $? -chpst -2 runsvstat "${ctmp}" -echo $? -rm -rf "${ctmp}" diff --git a/src/runsvstat.dist b/src/runsvstat.dist deleted file mode 100644 index 24b9ed4..0000000 --- a/src/runsvstat.dist +++ /dev/null @@ -1,12 +0,0 @@ -usage: runsvstat [ -l ] service ... - -1 -$Id$ -usage: runsvstat [ -l ] service ... - -1 -1 -starting -0 -0 -1 diff --git a/src/select.h1 b/src/select.h1 deleted file mode 100644 index 68e971f..0000000 --- a/src/select.h1 +++ /dev/null @@ -1,12 +0,0 @@ -/* Public domain. */ - -#ifndef SELECT_H -#define SELECT_H - -/* sysdep: -sysselect */ - -#include -#include -extern int select(); - -#endif diff --git a/src/select.h2 b/src/select.h2 deleted file mode 100644 index 4bd4fcf..0000000 --- a/src/select.h2 +++ /dev/null @@ -1,13 +0,0 @@ -/* Public domain. */ - -#ifndef SELECT_H -#define SELECT_H - -/* sysdep: +sysselect */ - -#include -#include -#include -extern int select(); - -#endif diff --git a/src/sig_block.c b/src/sig_block.c index a46c860..3db3a04 100644 --- a/src/sig_block.c +++ b/src/sig_block.c @@ -2,7 +2,6 @@ #include #include "sig.h" -#include "hassgprm.h" void sig_block(int sig) { diff --git a/src/sig_catch.c b/src/sig_catch.c index 7b5bd89..7297be0 100644 --- a/src/sig_catch.c +++ b/src/sig_catch.c @@ -2,7 +2,6 @@ #include #include "sig.h" -#include "hassgact.h" void sig_catch(int sig,void (*f)()) { diff --git a/src/sig_pause.c b/src/sig_pause.c index 3d1a793..551d670 100644 --- a/src/sig_pause.c +++ b/src/sig_pause.c @@ -2,7 +2,6 @@ #include #include "sig.h" -#include "hassgprm.h" void sig_pause(void) { diff --git a/src/strquote.h b/src/strquote.h new file mode 100644 index 0000000..d7be336 --- /dev/null +++ b/src/strquote.h @@ -0,0 +1,10 @@ +/* public domain */ + +#ifndef STRQUOTE_H +#define STRQUOTE_H + +// convenience macros for stringifying defined values +#define __QUOTE(v) #v +#define STR(v) __QUOTE(v) + +#endif diff --git a/src/sv.c b/src/sv.c index e076bd6..0f5b1e8 100644 --- a/src/sv.c +++ b/src/sv.c @@ -3,6 +3,7 @@ #include #include "str.h" #include "strerr.h" +#include "strquote.h" #include "error.h" #include "sgetopt.h" #include "open.h" @@ -17,8 +18,6 @@ #define USAGE " [-v] [-w sec] command service ..." #define USAGELSB " [-w sec] command" -#define VERSION "$Id$" - #define FATAL "fatal: " #define FAIL "fail: " #define WARN "warning: " @@ -32,7 +31,7 @@ char *progname; char *action; char *acts; -char *varservice ="/var/service/"; +char *varservice = STR(SERVICEDIR); char **service; char **servicex; unsigned int services; @@ -285,7 +284,7 @@ int main(int argc, char **argv) { switch(i) { case 'w': scan_ulong(optarg, &wait); case 'v': verbose =1; break; - case 'V': strerr_warn1(VERSION, 0); + case 'V': strerr_warn1(STR(VERSION), 0); case '?': usage(); } } diff --git a/src/sv.check b/src/sv.check index d3c277c..a778719 100755 --- a/src/sv.check +++ b/src/sv.check @@ -4,8 +4,6 @@ trap 'rm -rf "${ctmp}"' EXIT sv echo $? -sv -V -echo $? mkdir "${ctmp}" cat >"${ctmp}"/run <<-\EOT diff --git a/src/sv.dist b/src/sv.dist index 5b6c3ee..d0d86ca 100644 --- a/src/sv.dist +++ b/src/sv.dist @@ -1,9 +1,5 @@ usage: sv [-v] [-w sec] command service ... -100 -$Id: 900314260c6d52c986c5357673bea2f3bd3f4698 $ -usage: sv [-v] [-w sec] command service ... - 100 starting 0 diff --git a/src/svlogd.c b/src/svlogd.c index 8c68c73..aa0d978 100644 --- a/src/svlogd.c +++ b/src/svlogd.c @@ -14,6 +14,7 @@ #include "alloc.h" #include "stralloc.h" #include "strerr.h" +#include "strquote.h" #include "buffer.h" #include "sig.h" #include "env.h" @@ -35,7 +36,6 @@ #include "iopause.h" #define USAGE " [-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir ..." -#define VERSION "$Id$" #define FATAL "svlogd: fatal: " #define WARNING "svlogd: warning: " @@ -693,7 +693,7 @@ int main(int argc, const char **argv) { case 'v': ++verbose; break; - case 'V': strerr_warn1(VERSION, 0); + case 'V': strerr_warn1(STR(VERSION), 0); case '?': usage(); } } diff --git a/src/svlogd.check b/src/svlogd.check index 7d926ef..383f930 100755 --- a/src/svlogd.check +++ b/src/svlogd.check @@ -3,8 +3,6 @@ rm -rf "${ctmp}" svlogd echo $? -svlogd -V -echo $? mkdir "${ctmp}" echo foo |svlogd "${ctmp}" diff --git a/src/svlogd.dist b/src/svlogd.dist index b3329e6..d29b1e6 100644 --- a/src/svlogd.dist +++ b/src/svlogd.dist @@ -1,9 +1,5 @@ usage: svlogd [-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir ... -111 -$Id: 5e55a90e0a1b35ec47fed3021453c50675ea1117 $ -usage: svlogd [-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir ... - 111 0 foo diff --git a/src/svwaitdown.c b/src/svwaitdown.c deleted file mode 100644 index 6cd3efc..0000000 --- a/src/svwaitdown.c +++ /dev/null @@ -1,177 +0,0 @@ -#include -#include "strerr.h" -#include "error.h" -#include "sgetopt.h" -#include "scan.h" -#include "open.h" -#include "tai.h" -#include "buffer.h" - -#define FATAL "svwaitdown: fatal: " -#define WARN "svwaitdown: warning: " -#define INFO "svwaitdown: " -#define USAGE " [-v] [-t 1..6000] service ..." - -#define VERSION "$Id$" - -const char *progname; -const char * const *dir; -unsigned int rc =0; - -void fatal(const char *m) { strerr_die3sys(111, FATAL, m, ": "); } -void warn(const char *s1, const char *s2, struct strerr *e) { - dir++; rc++; - strerr_warn3(WARN, s1, s2, e); -} -void usage() { strerr_die4x(1, "usage: ", progname, USAGE, "\n"); } - -int main(int argc, const char * const *argv) { - int opt; - unsigned long sec =600; - int verbose =0; - int doexit =0; - int dokill =0; - int wdir; - int fd; - char status[20]; - int r; - unsigned long pid; - struct tai start; - struct tai now; - - progname =*argv; - - while ((opt =getopt(argc, argv, "t:xkvV")) != opteof) { - switch(opt) { - case 't': - scan_ulong(optarg, &sec); - if ((sec < 1) || (sec > 6000)) usage(); - break; - case 'x': - doexit =1; - break; - case 'k': - dokill =1; - break; - case 'v': - verbose =1; - break; - case 'V': - strerr_warn1(VERSION, 0); - case '?': - usage(); - } - } - argv +=optind; - if (! argv || ! *argv) usage(); - - if ((wdir =open_read(".")) == -1) - fatal("unable to open current working directory"); - - for (dir =argv; *dir; ++dir) { - if (dir != argv) - if (fchdir(wdir) == -1) fatal("unable to switch to starting directory"); - if (chdir(*dir) == -1) continue; /* bummer */ - if ((fd =open_write("supervise/control")) == -1) continue; /* bummer */ - if (write(fd, "dx", 1 +doexit) != (1 +doexit)) { - close(fd); continue; /* bummer */ - } - close(fd); - } - dir =argv; - - tai_now(&start); - while (*dir) { - if (fchdir(wdir) == -1) fatal("unable to switch to starting directory"); - if (chdir(*dir) == -1) { - warn(*dir, ": unable to change directory: ", &strerr_sys); - continue; - } - if ((fd =open_write("supervise/ok")) == -1) { - if (errno == error_nodevice) { - if (verbose) strerr_warn3(INFO, *dir, ": runsv not running.", 0); - dir++; - } - else - warn(*dir, ": unable to open supervise/ok: ", &strerr_sys); - continue; - } - close(fd); - - if ((fd =open_read("supervise/status")) == -1) { - warn(*dir, "unable to open supervise/status: ", &strerr_sys); - continue; - } - r =buffer_unixread(fd, status, 20); - close(fd); - if ((r < 18) || (r == 19)) { /* supervise compatibility */ - if (r == -1) - warn(*dir, "unable to read supervise/status: ", &strerr_sys); - else - warn(*dir, ": unable to read supervise/status: bad format.", 0); - continue; - } - pid =(unsigned char)status[15]; - pid <<=8; pid +=(unsigned char)status[14]; - pid <<=8; pid +=(unsigned char)status[13]; - pid <<=8; pid +=(unsigned char)status[12]; - - if (! doexit && ! pid) { - /* ok, service is down */ - if (verbose) strerr_warn3(INFO, *dir, ": down.", 0); - dir++; - continue; - } - - if (status[17] != 'd') { /* catch previous failures */ - if ((fd =open_write("supervise/control")) == -1) { - warn(*dir, ": unable to open supervise/control: ", &strerr_sys); - continue; - } - if (write(fd, "dx", 1 +doexit) != (1 +doexit)) { - warn(*dir, ": unable to write to supervise/control: ", &strerr_sys); - close(fd); - continue; - } - close(fd); - } - - tai_now(&now); - tai_sub(&now, &now, &start); - if (tai_approx(&now) >= sec) { - /* timeout */ - if (verbose) strerr_warn2(INFO, "timeout.", 0); - if (dokill) { - if (chdir(*dir) == -1) { - warn(*dir, ": unable to change directory: ", &strerr_sys); - continue; - } - if ((fd =open_write("supervise/control")) == -1) { - if (errno == error_nodevice) { - if (verbose) - strerr_warn3(INFO, *dir, ": runsv not running.", 0); - dir++; - } - else - warn(*argv, ": unable to open supervise/control: ", &strerr_sys); - continue; - } - if (write(fd, "k", 1) != 1) - warn(*argv, ": unable to write to supervise/control: ", &strerr_sys); - else - strerr_warn3(INFO, *dir, ": killed.", 0); - close(fd); - dir++; - if (! *dir) _exit(111); - continue; - } - _exit(111); - } - sleep(1); - } - if (fchdir(wdir) == -1) - strerr_warn2(WARN, "unable to switch to starting directory: ", &strerr_sys); - close(wdir); - if (rc > 100) rc =100; - _exit(rc); -} diff --git a/src/svwaitdown.check b/src/svwaitdown.check deleted file mode 100755 index 5cf6c21..0000000 --- a/src/svwaitdown.check +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -rm -rf "${ctmp}" - -svwaitdown -echo $? -svwaitdown -V -echo $? - -mkdir "${ctmp}" -echo '#!/bin/sh' >"${ctmp}"/run -echo 'echo starting' >>"${ctmp}"/run -echo 'exec sleep 14' >>"${ctmp}"/run -chmod 700 "${ctmp}"/run -runsv "${ctmp}" & -sleep 1 -test -r "${ctmp}"/supervise/stat || sleep 2 -svwaitdown "${ctmp}" -echo $? -svwaitdown -x "${ctmp}" -echo $? -cat "${ctmp}"/supervise/stat -wait -echo $? -rm -rf "${ctmp}" diff --git a/src/svwaitdown.dist b/src/svwaitdown.dist deleted file mode 100644 index 2d83839..0000000 --- a/src/svwaitdown.dist +++ /dev/null @@ -1,12 +0,0 @@ -usage: svwaitdown [-v] [-t 1..6000] service ... - -1 -$Id$ -usage: svwaitdown [-v] [-t 1..6000] service ... - -1 -starting -0 -0 -down -0 diff --git a/src/svwaitup.c b/src/svwaitup.c deleted file mode 100644 index e2d6c57..0000000 --- a/src/svwaitup.c +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include "strerr.h" -#include "error.h" -#include "sgetopt.h" -#include "scan.h" -#include "open.h" -#include "tai.h" -#include "buffer.h" -#include "fmt.h" - -#define FATAL "svwaitup: fatal: " -#define WARN "svwaitup: warning: " -#define INFO "svwaitup: " -#define USAGE " [-v] [-s 1..600] service ..." - -const char *progname; -unsigned long sec =2; -unsigned int rc =0; -const char * const *dir; - -void fatal(const char *m) { strerr_die3sys(111, FATAL, m, ": "); } -void warn(const char *s1, const char *s2, struct strerr *e) { - dir++; rc++; - strerr_warn3(WARN, s1, s2, e); -} -void usage() { strerr_die4x(1, "usage: ", progname, USAGE, "\n"); } - -int main(int argc, const char * const *argv) { - int opt; - int verbose =0; - char status[18]; - int fd; - int is; - int r; - int wdir; - unsigned long pid; - struct tai when; - struct tai now; - char sulong[FMT_ULONG]; - - progname =*argv; - - while ((opt =getopt(argc, argv, "s:vV")) != opteof) { - switch(opt) { - case 's': - scan_ulong(optarg, &sec); - if ((sec < 1) || (sec > 600)) usage(); - break; - case 'v': - verbose =1; - break; - case 'V': - strerr_warn1("$Id$", 0); - case '?': - usage(); - } - } - argv +=optind; - if (! argv || ! *argv) usage(); - - if ((wdir =open_read(".")) == -1) - fatal("unable to open current working directory"); - - dir =argv; - while (*dir) { - if (dir != argv) - if (fchdir(wdir) == -1) fatal("unable to switch to starting directory"); - if (chdir(*dir) == -1) { - warn(*dir, ": unable to change directory: ", &strerr_sys); - continue; - } - if ((fd =open_write("supervise/ok")) == -1) { - if (errno == error_nodevice) - warn(*dir, ": runsv not running.", 0); - else - warn(*dir, ": unable to open supervise/ok: ", &strerr_sys); - continue; - } - close(fd); - - if ((fd =open_read("supervise/status")) == -1) { - warn(*dir, "unable to open supervise/status: ", &strerr_sys); - continue; - } - r =buffer_unixread(fd, status, sizeof status); - close(fd); - if (r < sizeof status) { - if (r == -1) - warn(*dir, "unable to read supervise/status: ", &strerr_sys); - else - warn(*dir, ": unable to read supervise/status: bad format.", 0); - continue; - } - - pid =(unsigned char)status[15]; - pid <<=8; pid +=(unsigned char)status[14]; - pid <<=8; pid +=(unsigned char)status[13]; - pid <<=8; pid +=(unsigned char)status[12]; - if (! pid) { - warn(*dir, ": is down.", 0); - continue; - } - - tai_unpack(status, &when); - tai_now(&now); - if (tai_less(&now, &when)) when =now; - tai_sub(&when, &now, &when); - is =tai_approx(&when); - - if (is >= sec) { - /* ok */ - if (verbose) { - sulong[fmt_ulong(sulong, is)] =0; - strerr_warn5(INFO, *dir, ": is up (", sulong, " seconds)", 0); - } - dir++; - continue; - } - sleep(sec -is); - } - if (fchdir(wdir) == -1) - strerr_warn2(WARN, "unable to switch to starting directory: ", &strerr_sys); - close(wdir); - if (rc > 100) rc =100; - _exit(rc); -} diff --git a/src/svwaitup.check b/src/svwaitup.check deleted file mode 100755 index a1be802..0000000 --- a/src/svwaitup.check +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -rm -rf "${ctmp}" - -svwaitup -echo $? -svwaitup -V -echo $? - -mkdir "${ctmp}" -echo '#!/bin/sh' >"${ctmp}"/run -echo 'echo starting' >>"${ctmp}"/run -echo 'exec sleep 14' >>"${ctmp}"/run -chmod 700 "${ctmp}"/run -runsv "${ctmp}" & -sleep 1 -test -r "${ctmp}"/supervise/stat || sleep 2 -svwaitup "${ctmp}" -echo $? -cat "${ctmp}"/supervise/stat -svwaitup -s2 "${ctmp}" -echo $? -cat "${ctmp}"/supervise/stat -runsvctrl exit "${ctmp}" -wait -echo $? -chpst -2 svwaitup -s2 "${ctmp}" -echo $? -rm -rf "${ctmp}" diff --git a/src/svwaitup.dist b/src/svwaitup.dist deleted file mode 100644 index 692990f..0000000 --- a/src/svwaitup.dist +++ /dev/null @@ -1,14 +0,0 @@ -usage: svwaitup [-v] [-s 1..600] service ... - -1 -$Id$ -usage: svwaitup [-v] [-s 1..600] service ... - -1 -starting -0 -run -0 -run -0 -1 diff --git a/src/tai.h b/src/tai.h index 1839f76..67ef0fe 100644 --- a/src/tai.h +++ b/src/tai.h @@ -3,13 +3,13 @@ #ifndef TAI_H #define TAI_H -#include "uint64.h" +#include struct tai { - uint64 x; + uint64_t x; } ; -#define tai_unix(t,u) ((void) ((t)->x = 4611686018427387914ULL + (uint64) (u))) +#define tai_unix(t,u) ((void) ((t)->x = 4611686018427387914ULL + (uint64_t) (u))) extern void tai_now(struct tai *); diff --git a/src/tai_pack.c b/src/tai_pack.c index 641fa5b..e73eaca 100644 --- a/src/tai_pack.c +++ b/src/tai_pack.c @@ -4,7 +4,7 @@ void tai_pack(char *s,const struct tai *t) { - uint64 x; + uint64_t x; x = t->x; s[7] = x & 255; x >>= 8; diff --git a/src/tai_unpack.c b/src/tai_unpack.c index 4541ff5..10c6d20 100644 --- a/src/tai_unpack.c +++ b/src/tai_unpack.c @@ -4,7 +4,7 @@ void tai_unpack(const char *s,struct tai *t) { - uint64 x; + uint64_t x; x = (unsigned char) s[0]; x <<= 8; x += (unsigned char) s[1]; diff --git a/src/trycpp.c b/src/trycpp.c deleted file mode 100644 index e4503d4..0000000 --- a/src/trycpp.c +++ /dev/null @@ -1,9 +0,0 @@ -/* Public domain. */ - -int main() -{ -#ifdef NeXT - printf("nextstep\n"); exit(0); -#endif - printf("unknown\n"); exit(0); -} diff --git a/src/trypoll.c b/src/trypoll.c deleted file mode 100644 index 6506617..0000000 --- a/src/trypoll.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Public domain. */ - -#include -#include -#include - -int main() -{ - struct pollfd x; - - x.fd = open("trypoll.c",O_RDONLY); - if (x.fd == -1) _exit(111); - x.events = POLLIN; - if (poll(&x,1,10) == -1) _exit(1); - if (x.revents != POLLIN) _exit(1); - - /* XXX: try to detect and avoid poll() imitation libraries */ - - _exit(0); -} diff --git a/src/tryshsgr.c b/src/tryshsgr.c deleted file mode 100644 index c5ed6d6..0000000 --- a/src/tryshsgr.c +++ /dev/null @@ -1,16 +0,0 @@ -/* Public domain. */ - -int main() -{ - short x[4]; - - x[0] = x[1] = 1; - if (getgroups(1,x) == 0) if (setgroups(1,x) == -1) _exit(1); - - if (getgroups(1,x) == -1) _exit(1); - if (x[1] != 1) _exit(1); - x[1] = 2; - if (getgroups(1,x) == -1) _exit(1); - if (x[1] != 2) _exit(1); - _exit(0); -} diff --git a/src/trysocketlib.c b/src/trysocketlib.c deleted file mode 100644 index 0fe5d06..0000000 --- a/src/trysocketlib.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include -#include -#include - -int main(void) { - int s; - - s =socket(AF_INET, SOCK_STREAM, 0); - return(close(s)); -} diff --git a/src/trysysel.c b/src/trysysel.c deleted file mode 100644 index 5be862d..0000000 --- a/src/trysysel.c +++ /dev/null @@ -1,11 +0,0 @@ -/* Public domain. */ - -#include -#include -#include -#include /* SVR4 silliness */ - -void foo() -{ - ; -} diff --git a/src/tryulong64.c b/src/tryulong64.c deleted file mode 100644 index 003548a..0000000 --- a/src/tryulong64.c +++ /dev/null @@ -1,13 +0,0 @@ -/* Public domain. */ - -int main() -{ - unsigned long u; - u = 1; - u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; - u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; - u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; - u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u; - if (!u) _exit(1); - _exit(0); -} diff --git a/src/uint64.h1 b/src/uint64.h1 deleted file mode 100644 index 486a380..0000000 --- a/src/uint64.h1 +++ /dev/null @@ -1,10 +0,0 @@ -/* Public domain. */ - -#ifndef UINT64_H -#define UINT64_H - -/* sysdep: -ulong64 */ - -typedef unsigned long long uint64; - -#endif diff --git a/src/uint64.h2 b/src/uint64.h2 deleted file mode 100644 index 8869e43..0000000 --- a/src/uint64.h2 +++ /dev/null @@ -1,10 +0,0 @@ -/* Public domain. */ - -#ifndef UINT64_H -#define UINT64_H - -/* sysdep: +ulong64 */ - -typedef unsigned long uint64; - -#endif diff --git a/src/utmpset.c b/src/utmpset.c index 2011f1d..ddb8884 100644 --- a/src/utmpset.c +++ b/src/utmpset.c @@ -6,6 +6,7 @@ #include #include "uw_tmp.h" #include "strerr.h" +#include "strquote.h" #include "sgetopt.h" #include "seek.h" #include "str.h" @@ -97,7 +98,7 @@ int main (int argc, const char * const *argv, const char * const *envp) { wtmp =1; break; case 'V': - strerr_warn1("$Id$", 0); + strerr_warn1(STR(VERSION), 0); case '?': usage(); } diff --git a/src/utmpset.check b/src/utmpset.check index 51cf1a4..f68f01f 100755 --- a/src/utmpset.check +++ b/src/utmpset.check @@ -1,5 +1,3 @@ #!/bin/sh utmpset echo $? -utmpset -V -echo $? diff --git a/src/utmpset.dist b/src/utmpset.dist index d5c0370..2340829 100644 --- a/src/utmpset.dist +++ b/src/utmpset.dist @@ -1,7 +1,3 @@ usage: utmpset [-w] line 1 -$Id: cb399098f794012a7f5e6a3a7090b2d53b86c08c $ -usage: utmpset [-w] line - -1 diff --git a/src/uw_tmp.h1 b/src/uw_tmp.h similarity index 57% rename from src/uw_tmp.h1 rename to src/uw_tmp.h index 2d5e994..c668fc8 100644 --- a/src/uw_tmp.h1 +++ b/src/uw_tmp.h @@ -1,7 +1,24 @@ +#ifndef UW_TMP_H +#define UW_TMP_H + #include -#include -/* sysdep: -utmpx */ +#ifdef HASUTMPX + +#include + +#define UW_TMP_UFILE _UTMPX_FILE +#define UW_TMP_WFILE _WTMPX_FILE + +#ifndef ut_time +#define ut_time ut_tv.tv_sec +#endif + +typedef struct futmpx uw_tmp; + +#else + +#include #ifdef _PATH_UTMP #define UW_TMP_UFILE _PATH_UTMP @@ -17,3 +34,7 @@ #endif typedef struct utmp uw_tmp; + +#endif + +#endif diff --git a/src/uw_tmp.h2 b/src/uw_tmp.h2 deleted file mode 100644 index ae9542e..0000000 --- a/src/uw_tmp.h2 +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -/* sysdep: +utmpx */ - -#define UW_TMP_UFILE _UTMPX_FILE -#define UW_TMP_WFILE _WTMPX_FILE - -#ifndef ut_time -#define ut_time ut_tv.tv_sec -#endif - -typedef struct futmpx uw_tmp; diff --git a/src/wait_nohang.c b/src/wait_nohang.c index 5c9c53d..bddd9a9 100644 --- a/src/wait_nohang.c +++ b/src/wait_nohang.c @@ -2,7 +2,6 @@ #include #include -#include "haswaitp.h" int wait_nohang(wstat) int *wstat; { diff --git a/src/wait_pid.c b/src/wait_pid.c index c2869b8..eb47630 100644 --- a/src/wait_pid.c +++ b/src/wait_pid.c @@ -3,7 +3,6 @@ #include #include #include "error.h" -#include "haswaitp.h" #ifdef HASWAITPID diff --git a/src/warn-auto.sh b/src/warn-auto.sh deleted file mode 100644 index 36d2313..0000000 --- a/src/warn-auto.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -# WARNING: This file was auto-generated. Do not edit! diff --git a/src/warn-shsgr b/src/warn-shsgr deleted file mode 100644 index 37c351e..0000000 --- a/src/warn-shsgr +++ /dev/null @@ -1,3 +0,0 @@ -Oops. Your getgroups() returned 0, and setgroups() failed; this means -that I can't reliably do my shsgr test. Please either ``make'' as root -or ``make'' while you're in one or more supplementary groups. diff --git a/src/x86cpuid.c b/src/x86cpuid.c deleted file mode 100644 index f81c593..0000000 --- a/src/x86cpuid.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Public domain. */ - -#include - -void nope() -{ - exit(1); -} - -int main() -{ - unsigned long x[4]; - unsigned long y[4]; - int i; - int j; - char c; - - signal(SIGILL,nope); - - x[0] = 0; - x[1] = 0; - x[2] = 0; - x[3] = 0; - - asm volatile(".byte 15;.byte 162" : "=a"(x[0]),"=b"(x[1]),"=c"(x[3]),"=d"(x[2]) : "0"(0) ); - if (!x[0]) return 0; - asm volatile(".byte 15;.byte 162" : "=a"(y[0]),"=b"(y[1]),"=c"(y[2]),"=d"(y[3]) : "0"(1) ); - - for (i = 1;i < 4;++i) - for (j = 0;j < 4;++j) { - c = x[i] >> (8 * j); - if (c < 32) c = 32; - if (c > 126) c = 126; - putchar(c); - } - - printf("-%08x-%08x\n",y[0],y[3]); - - return 0; -}