summaryrefslogtreecommitdiffstats
path: root/network/sntpc
diff options
context:
space:
mode:
Diffstat (limited to 'network/sntpc')
-rw-r--r--network/sntpc/README4
-rw-r--r--network/sntpc/compilefix.diff45
-rw-r--r--network/sntpc/git2tarxz.sh44
-rw-r--r--network/sntpc/slack-desc19
-rw-r--r--network/sntpc/sntpc.898
-rw-r--r--network/sntpc/sntpc.SlackBuild77
-rw-r--r--network/sntpc/sntpc.info10
-rw-r--r--network/sntpc/sntpc.rst87
8 files changed, 384 insertions, 0 deletions
diff --git a/network/sntpc/README b/network/sntpc/README
new file mode 100644
index 0000000000..97fd73a838
--- /dev/null
+++ b/network/sntpc/README
@@ -0,0 +1,4 @@
+sntpc (simple Network Time Protocol client)
+
+This client queries an NTP server for the current time, and sets the
+local clock to the time reported by the server.
diff --git a/network/sntpc/compilefix.diff b/network/sntpc/compilefix.diff
new file mode 100644
index 0000000000..e56b2a70a7
--- /dev/null
+++ b/network/sntpc/compilefix.diff
@@ -0,0 +1,45 @@
+diff -Naur sntpc-20181113_1ca1d00/sntpc.c sntpc-20181113_1ca1d00.patched/sntpc.c
+--- sntpc-20181113_1ca1d00/sntpc.c 2022-01-26 14:17:03.000000000 -0500
++++ sntpc-20181113_1ca1d00.patched/sntpc.c 2022-01-26 14:29:36.384241954 -0500
+@@ -7,9 +7,12 @@
+ #include <strings.h>
+ #include <sys/select.h>
+ #include <sys/socket.h>
++#include <time.h>
+ #include <sys/time.h>
+ #include <unistd.h>
+
++extern uint32_t arc4random(void);
++
+ #define SECONDS_1900_1970 (25567 * 86400U)
+
+ #pragma pack(1)
+@@ -56,10 +59,6 @@
+ errx(1, "Structure size mismatch (got %lu, expected 68)", sizeof(struct ntp_packet_t));
+ }
+
+- if (pledge("stdio inet dns settime", NULL) < 0) {
+- err(1, "pledge");
+- }
+-
+ int ch;
+ while ((ch = getopt(argc, argv, "bhnp:s:t:v")) != -1) {
+ switch (ch) {
+@@ -184,7 +183,7 @@
+
+ time_t local_now = time(NULL);
+ if (verbose) {
+- printf("sntpc: local clock %lld (%.24s)\n", local_now, ctime(&local_now));
++ printf("sntpc: local clock %ld (%.24s)\n", local_now, ctime(&local_now));
+ }
+ if (local_now > seconds_since_1970 && !backwards) {
+ errx(1, "not stepping clock backwards (use -b to allow this)");
+@@ -205,7 +204,7 @@
+ err(1, "settimeofday");
+ }
+ if (verbose) {
+- printf("sntpc: local clock set to %lld (%.24s)\n", new_clock.tv_sec, ctime(&new_clock.tv_sec));
++ printf("sntpc: local clock set to %ld (%.24s)\n", new_clock.tv_sec, ctime(&new_clock.tv_sec));
+ }
+ } else {
+ printf("sntpc: not setting clock because of -n\n");
diff --git a/network/sntpc/git2tarxz.sh b/network/sntpc/git2tarxz.sh
new file mode 100644
index 0000000000..08bbd6a489
--- /dev/null
+++ b/network/sntpc/git2tarxz.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# Create source tarball from git repo, with generated version
+# number.
+
+# Note that this script doesn't need to be run as root. It does
+# need to be able to write to the current directory it's run from.
+
+# Takes one optional argument, which is the commit or tag to create
+# a tarball of. With no arg, HEAD is used.
+
+PRGNAM=sntpc
+CLONE_URL=https://github.com/ghewgill/sntpc
+
+set -e
+
+GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
+rm -rf $GITDIR
+git clone $CLONE_URL $GITDIR
+
+CWD="$( pwd )"
+cd $GITDIR
+
+if [ "$1" != "" ]; then
+ git reset --hard "$1" || exit 1
+fi
+
+GIT_SHA=$( git rev-parse --short HEAD )
+
+DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 )
+
+VERSION=${DATE}_${GIT_SHA}
+
+rm -rf .git
+find . -name .gitignore -print0 | xargs -0 rm -f
+
+cd "$CWD"
+rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
+mv $GITDIR $PRGNAM-$VERSION
+tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
+
+echo
+echo "Created tarball: $PRGNAM-$VERSION.tar.xz"
+echo "VERSION=$VERSION"
diff --git a/network/sntpc/slack-desc b/network/sntpc/slack-desc
new file mode 100644
index 0000000000..20b8d8bd67
--- /dev/null
+++ b/network/sntpc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+sntpc: sntpc (simple Network Time Protocol client)
+sntpc:
+sntpc: This client queries an NTP server for the current time, and sets the
+sntpc: local clock to the time reported by the server.
+sntpc:
+sntpc:
+sntpc:
+sntpc:
+sntpc:
+sntpc:
+sntpc:
diff --git a/network/sntpc/sntpc.8 b/network/sntpc/sntpc.8
new file mode 100644
index 0000000000..26c7401115
--- /dev/null
+++ b/network/sntpc/sntpc.8
@@ -0,0 +1,98 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "SNTPC" 1 "2022-01-28" "20181113_1ca1d00" "SlackBuilds.org"
+.SH NAME
+sntpc \- Network Time Protocol client
+.\" RST source for sntpc(8) man page. Convert with:
+.
+.\" rst2man.py sntpc.rst > sntpc.8
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+sntpc [\fB\-bhnv\fP] [\fB\-p\fP \fIport\fP] [\fB\-s\fP \fIserver\fP] [\fB\-t\fP \fIthreshold\fP]
+.SH DESCRIPTION
+.sp
+\fBsntpc\fP queries an NTP server for the current time, and sets the
+local clock to the time reported by the server. It\(aqs a standalone
+binary, with no config file and no dependency on the \fIntp\fP package.
+.sp
+\fBsntpc\fP does not run as a daemon like \fBntpd\fP does. To keep
+the time in sync, you can run \fBsntpc\fP from root\(aqs \fBcrontab\fP(1)
+every 30 minutes (or however often it\(aqs necessary).
+.sp
+\fBsntpc\fP requires root access to actually set the local clock,
+although it can be run with \fB\-n\fP by non\-privileged users (e.g. with
+\fB\-v\fP to simply check the local time against the server\(aqs time).
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \-b
+Allow time shift backwards (default: forward only).
+.TP
+.B \-h
+Show built\-in help message.
+.TP
+.B \-n
+No set time (dry run).
+.TP
+.B \-p
+Set server port number (default: 123).
+.TP
+.B \-s
+Set server name or IPv4 address (default: pool.ntp.org).
+.TP
+.B \-t
+Set maximum time offset threshold (default: 300 seconds). This can
+be set to a ludicrously high value such as 40000000000 (over 1,000 years)
+to effectively disable the threshold.
+.TP
+.B \-v
+Verbose (default: silent)
+.UNINDENT
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/sntpc\-20181113_1ca1d00/LICENSE.txt for license information.
+.SH AUTHORS
+.sp
+sntpc was written by Greg Hewgill.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBntpd\fP(1)
+.sp
+\fI\%https://www.ntp.org\fP
+.sp
+The sntpc homepage: \fI\%https://github.com/ghewgill/sntpc\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/network/sntpc/sntpc.SlackBuild b/network/sntpc/sntpc.SlackBuild
new file mode 100644
index 0000000000..13090c2602
--- /dev/null
+++ b/network/sntpc/sntpc.SlackBuild
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# Slackware build script for sntpc
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=sntpc
+VERSION=${VERSION:-20181113_1ca1d00}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+chmod 644 *
+
+# Linux doesn't have BSD's pledge() syscall... also fix compile warnings.
+patch -p1 < $CWD/compilefix.diff
+
+make CFLAGS="$SLKCFLAGS -Wall -Wl,-s" LDFLAGS="-lbsd"
+
+mkdir -p $PKG/usr/sbin $PKG/usr/man/man8
+cp -a $PRGNAM $PKG/usr/sbin
+gzip -9c < $CWD/$PRGNAM.8 > $PKG/usr/man/man8/$PRGNAM.8.gz
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+cp -a *.md *.txt $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/sntpc/sntpc.info b/network/sntpc/sntpc.info
new file mode 100644
index 0000000000..a3b274fd50
--- /dev/null
+++ b/network/sntpc/sntpc.info
@@ -0,0 +1,10 @@
+PRGNAM="sntpc"
+VERSION="20181113_1ca1d00"
+HOMEPAGE="https://github.com/ghewgill/sntpc"
+DOWNLOAD="https://slackware.uk/~urchlay/src/sntpc-20181113_1ca1d00.tar.xz"
+MD5SUM="21640d86c27e27838966f0b620399cca"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="libbsd"
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"
diff --git a/network/sntpc/sntpc.rst b/network/sntpc/sntpc.rst
new file mode 100644
index 0000000000..7b326eb1b5
--- /dev/null
+++ b/network/sntpc/sntpc.rst
@@ -0,0 +1,87 @@
+.. RST source for sntpc(8) man page. Convert with:
+.. rst2man.py sntpc.rst > sntpc.8
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 20181113_1ca1d00
+.. |date| date::
+
+=====
+sntpc
+=====
+
+----------------------------
+Network Time Protocol client
+----------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+sntpc [**-bhnv**] [**-p** *port*] [**-s** *server*] [**-t** *threshold*]
+
+DESCRIPTION
+===========
+
+**sntpc** queries an NTP server for the current time, and sets the
+local clock to the time reported by the server. It's a standalone
+binary, with no config file and no dependency on the *ntp* package.
+
+**sntpc** does not run as a daemon like **ntpd** does. To keep
+the time in sync, you can run **sntpc** from root's **crontab**\(1)
+every 30 minutes (or however often it's necessary).
+
+**sntpc** requires root access to actually set the local clock,
+although it can be run with **-n** by non-privileged users (e.g. with
+**-v** to simply check the local time against the server's time).
+
+OPTIONS
+=======
+
+-b
+ Allow time shift backwards (default: forward only).
+
+-h
+ Show built-in help message.
+
+-n
+ No set time (dry run).
+
+-p
+ Set server port number (default: 123).
+
+-s
+ Set server name or IPv4 address (default: pool.ntp.org).
+
+-t
+ Set maximum time offset threshold (default: 300 seconds). This can
+ be set to a ludicrously high value such as 40000000000 (over 1,000 years)
+ to effectively disable the threshold.
+
+-v
+ Verbose (default: silent)
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/sntpc-|version|/LICENSE.txt for license information.
+
+AUTHORS
+=======
+
+sntpc was written by Greg Hewgill.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**ntpd**\(1)
+
+https://www.ntp.org
+
+The sntpc homepage: https://github.com/ghewgill/sntpc