summaryrefslogtreecommitdiff
path: root/corebinutils/date/README.md
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:24:20 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:24:20 +0300
commitc800ffec456be2f8f346a3a3f50e1e5fa6ee2f0e (patch)
treee9754c08c193d5706b9ce8b2f7d2aee2db98dad6 /corebinutils/date/README.md
parentd12e80797cf0ae7a0bd3cd0cd7948f532f3181ac (diff)
parentae4c58645a13317bb8540d47f8f7cfa768f17eb2 (diff)
downloadProject-Tick-c800ffec456be2f8f346a3a3f50e1e5fa6ee2f0e.tar.gz
Project-Tick-c800ffec456be2f8f346a3a3f50e1e5fa6ee2f0e.zip
Add 'corebinutils/date/' from commit 'ae4c58645a13317bb8540d47f8f7cfa768f17eb2'
git-subtree-dir: corebinutils/date git-subtree-mainline: d12e80797cf0ae7a0bd3cd0cd7948f532f3181ac git-subtree-split: ae4c58645a13317bb8540d47f8f7cfa768f17eb2
Diffstat (limited to 'corebinutils/date/README.md')
-rw-r--r--corebinutils/date/README.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/corebinutils/date/README.md b/corebinutils/date/README.md
new file mode 100644
index 0000000000..2a60b313e7
--- /dev/null
+++ b/corebinutils/date/README.md
@@ -0,0 +1,27 @@
+# date
+
+Standalone musl-libc-based Linux port of FreeBSD `date` for Project Tick BSD/Linux Distribution.
+
+## Build
+
+```sh
+gmake -f GNUmakefile
+gmake -f GNUmakefile CC=musl-gcc
+```
+
+## Test
+
+```sh
+gmake -f GNUmakefile test
+gmake -f GNUmakefile test CC=musl-gcc
+```
+
+## Notes
+
+- Port strategy is Linux-native syscall/API mapping, not a FreeBSD userland ABI shim.
+- Time reads and writes use `clock_gettime(2)`, `clock_getres(2)`, and `clock_settime(2)`.
+- `-r file` uses Linux `stat(2)` nanosecond timestamps via `st_mtim`.
+- Time zone selection uses the libc `TZ` mechanism (`setenv("TZ", ...)` + `tzset()`), so named zones depend on installed tzdata and POSIX `TZ` strings work without glibc-specific behavior.
+- `%N` formatting, ISO-8601 rendering, and FreeBSD `-v` adjustments are implemented in local project code so the port stays musl-clean.
+- Unsupported semantics are explicit: FreeBSD `-n` is rejected on Linux because there is no equivalent timed/network-set path here.
+- Setting the real-time clock still requires Linux `CAP_SYS_TIME`; the port does not emulate FreeBSD `utmpx`/syslog side effects when the clock changes.