From 3d0386f27ca66379acf50199e1d1298386eeeeb8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 6 May 2024 02:55:53 +0200 Subject: Adding upstream version 3.2.1. Signed-off-by: Daniel Baumann --- tests/deckard/contrib/libfaketime/man/Makefile | 14 ++++ tests/deckard/contrib/libfaketime/man/Makefile.OSX | 15 ++++ tests/deckard/contrib/libfaketime/man/faketime.1 | 82 ++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 tests/deckard/contrib/libfaketime/man/Makefile create mode 100644 tests/deckard/contrib/libfaketime/man/Makefile.OSX create mode 100644 tests/deckard/contrib/libfaketime/man/faketime.1 (limited to 'tests/deckard/contrib/libfaketime/man') diff --git a/tests/deckard/contrib/libfaketime/man/Makefile b/tests/deckard/contrib/libfaketime/man/Makefile new file mode 100644 index 0000000..807c157 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/man/Makefile @@ -0,0 +1,14 @@ +INSTALL ?= install + +PREFIX ?= /usr/local + +all: + +install: + $(INSTALL) -Dm0644 faketime.1 "${DESTDIR}${PREFIX}/share/man/man1/faketime.1" + gzip -f "${DESTDIR}${PREFIX}/share/man/man1/faketime.1" + +uninstall: + rm -f "${DESTDIR}${PREFIX}/share/man/man1/faketime.1.gz" + +.PHONY: all install uninstall diff --git a/tests/deckard/contrib/libfaketime/man/Makefile.OSX b/tests/deckard/contrib/libfaketime/man/Makefile.OSX new file mode 100644 index 0000000..5451acd --- /dev/null +++ b/tests/deckard/contrib/libfaketime/man/Makefile.OSX @@ -0,0 +1,15 @@ +INSTALL ?= install + +PREFIX ?= /usr/local + +all: + +install: + $(INSTALL) -dm0755 "${DESTDIR}${PREFIX}/share/man/man1" + $(INSTALL) -m0644 faketime.1 "${DESTDIR}${PREFIX}/share/man/man1/faketime.1" + gzip -f "${DESTDIR}${PREFIX}/share/man/man1/faketime.1" + +uninstall: + rm -f "${DESTDIR}${PREFIX}/share/man/man1/faketime.1.gz" + +.PHONY: all install uninstall diff --git a/tests/deckard/contrib/libfaketime/man/faketime.1 b/tests/deckard/contrib/libfaketime/man/faketime.1 new file mode 100644 index 0000000..89c279d --- /dev/null +++ b/tests/deckard/contrib/libfaketime/man/faketime.1 @@ -0,0 +1,82 @@ +.TH FAKETIME "1" "November 2017" "faketime 0.9.7" wolfcw +.SH NAME +faketime \- manipulate the system time for a given command +.SH SYNOPSIS +.B faketime +\fI[options] timestamp program [arguments...]\fR +.SH DESCRIPTION +.\" \fIfaketime\fR will trick the given program into seeing the specified timestamp as its starting date and time. +.PP +The given command will be tricked into believing that the current system time is the one specified in the timestamp. Filesystem timestamps will also be +reported relative to this timestamp. The wall clock will continue to run from this date and time unless specified otherwise (see advanced options). +Actually, faketime is a simple wrapper for libfaketime, which uses the LD_PRELOAD mechanism to load a small library which intercepts system calls to +functions such as \fItime(2)\fR and \fIfstat(2)\fR. This wrapper exposes only a subset of libfaketime's functionality; please refer to the README file +that came with faketime for more details and advanced options, or have a look at http://github.com/wolfcw/libfaketime +.SH OPTIONS +.TP +\fB\-\-help\fR +show usage information and quit. +.TP +\fB\-\-version\fR +show version information and quit. +.TP +\fB\-m\fR +use the multi-threading variant of libfaketime. +.TP +\fB\-f\fR +use the advanced timestamp specification format. +.TP +\fB\--exclude-monotonic\fR +Do not fake time when the program makes a call to clock_gettime with a CLOCK_MONOTONIC clock. + +.SH EXAMPLES +.nf +faketime 'last Friday 5 pm' /bin/date +faketime '2008-12-24 08:15:42' /bin/date +faketime -f '+2,5y x10,0' /bin/bash -c 'date; while true; do echo $SECONDS ; sleep 1 ; done' +faketime -f '+2,5y x0,50' /bin/bash -c 'date; while true; do echo $SECONDS ; sleep 1 ; done' +faketime -f '+2,5y i2,0' /bin/bash -c 'while true; do date ; sleep 1 ; done' +In this single case all spawned processes will use the same global clock without restarting it at the start of each process. + +(Please note that it depends on your locale settings whether . or , has to be used for fractional offsets) +.fi +.SH ADVANCED TIMESTAMP FORMAT +The simple timestamp format used by default applies the \fB/bin/date -d\fR command to parse user-friendly specifications such as 'last friday'. When using +the faketime option \fB\-f\fR, the timestamp specified on the command line is directly passed to libfaketime, which enables a couple of additional features +such as speeding the clock up or slowing it down for the target program. It is strongly recommended that you have a look at the libfaketime documentation. Summary: +.TP +Freeze clock at absolute timestamp: \fB"YYYY-MM-DD hh:mm:ss"\fR +If you want to specify an absolute point in time, exactly this format must be used. Please note that freezing the clock is usually not what you want and may break the application. Only use if you know what you're doing! +.TP +Relative time offset: \fB"[+/-]123[m/h/d/y]\fR, e.g. "+60m", "+2y" +This is the most often used format and specifies the faked time relatively to the current real time. The first character of the format string \fBmust\fR be a + or a -. The numeric value by default represents seconds, but the modifiers m, h, d, and y can be used to specify minutes, hours, days, or years, respectively. For example, "-2y" means "two years ago". Fractional time offsets can be used, e.g. "+2,5y", which means "two and a half years in the future". Please note that the fraction delimiter depends on your locale settings, so if "+2,5y" does not work, you might want to try "+2.5y". +.TP +Start-at timestamps: \fB"@YYYY-MM-DD hh:mm:ss"\fR +The wall clock will start counting at the given timestamp for the program. This can be used for specifying absolute timestamps without freezing the clock. +.SH ADVANCED USAGE +When using relative time offsets or start-at timestamps (see ADVANCED TIMESTAMP FORMAT above and option \fB\-f\fR), the clock speed can be adjusted, i.e. time may run faster or slower for the executed program. For example, \fB"+5y x10"\fR will set the faked time 5 years into the future and make the time pass 10 times as fast (one real second equals 10 seconds measured by the program). Similarly, the flow of time can be slowed, e.g. using \fB"-7d x0,2"\fR, which will set the faked time 7 days in the past and set the clock speed to 20 percent, i.e. it takes five real world seconds for one second measured by the program. Again, depending on your locale, either "x2.0" or "x2,0" may be required regarding the delimiter. You can also make faketime to advance the reported time by a preset interval upon each time() call independently from the system's time using \fB"-7d i2,0"\fR, where +\fB"i"\fR is followed by the increase interval in seconds. +.PP +Faking times for multiple programs or even system-wide can be simplified by using ~/.faketimerc files and /etc/faketimerc. Please refer to the README that came with faketime for warnings and details. +.PP +Faking of filesystem timestamps may be disabled by setting the NO_FAKE_STAT environment variable to a non-empty value. +.SH AUTHOR +Please see the README and NEWS files for contributors. +.SH BUGS +Due to limitations of the LD_PRELOAD mechanism, faketime will not work with suidroot and statically linked programs. +While timestamps and time offsets will work for child processes, speeding the clock up or slowing it down might not +work for child processes spawned by the executed program as expected; a new instance of libfaketime is used for each +child process, which means that the libfaketime start time, which is used in speed adjustments, will also be +re-initialized. Some programs may dynamically load system libraries, such as librt, at run-time and therefore bypass libfaketime. You may report programs that do not work with libfaketime, but only if they are available as open source. +.SH "REPORTING BUGS" +Please use https://github.com/wolfcw/libfaketime/issues +.SH COPYRIGHT +Copyright \(co 2003-2013 by the libfaketime authors. +.PP +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. You may redistribute copies of faketime under the +terms of the GNU General Public License. +.br +For more information about these matters, see the file named COPYING. +.SH "SEE ALSO" +ld.so(1), time(2), fstat(2) -- cgit v1.2.3