89luca89 / distrobox

Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
https://distrobox.it/
GNU General Public License v3.0
9.87k stars 406 forks source link

enter: make log_timestamp date format universally compatible #1343

Closed JamiKettunen closed 5 months ago

JamiKettunen commented 5 months ago

Tested as working on Chimera Linux with FreeBSD date(1) and Alpine Linux with busybox date(1) which both cannot report nanoseconds or timezone with : separator only supported on GNU coreutils which handles these extensions via a strftime() wrapper in gnulib.

Digging deeper in https://github.com/mirror/busybox/blob/master/coreutils/date.c technically busybox can support at least nanoseconds if the Alpine one was compiled with CONFIG_ENABLE_FEATURE_DATE_NANO=y, but it's not and %N is still not portable. Besides I can't think of a situation where reading log output would need sub-second accuracy so in my eyes this should be perfectly fine.

https://docs.podman.io/en/stable/markdown/podman-logs.1.html#since-timestamp lists some of the other supported formats, I basically picked one of the ISO 8601 options listed on https://ijmacd.github.io/rfc3339-iso8601/ while accounting for timezone offset by always dealing in UTC timestamps.

89luca89 commented 5 months ago

Thanks a lot for this! It is always good to have broader compatibiltiy :) thanks a lot!