Why does this man page have today's date?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
9
down vote

favorite
1












Why would a specific man page (in my case, for the nc command) have today's date without me doing any updates to the system ? Also, why doesn't the "unattended update" log show any specific activity for that day?



2018-03-14 07:47:38,124 INFO Initial blacklisted packages:
2018-03-14 07:47:38,135 INFO Starting unattended upgrades script
2018-03-14 07:47:38,135 INFO Allowed origins are: ['o=LinuxMint,a=qiana-security', 'o=LinuxMintESM,a=qiana']
2018-03-14 07:47:51,767 INFO No packages found that can be upgraded unattended and no pending auto-removals


This is footer for the nc man page:



BSD March 14, 2018 BSD


That's on Linux Mint 17 (qiana), based on Ubuntu 14.04 (trusty) with groff 1.22.2 and man-db 2.6.7.1.



EDIT



Requested commands outputs :




  1. man -aw nc



    /usr/share/man/man1/nc_openbsd.1.gz



  2. ls -ld $(man -aw nc)



    -rw-r--r-- 1 root root 5.7K Dec 4 2012 /usr/share/man/man1/nc_openbsd.1.gz


Which is weird...




  1. dpkg -S $(man -aw nc)?



    netcat-openbsd: /usr/share/man/man1/nc_openbsd.1.gz



  2. type -a man



    man is /usr/bin/man



  3. zgrep docdate $(man -aw nc)



    .Dd $Mdocdate: February 7 2012 $



  4. ADDED FOOTER strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'



    ychaouche#ychaouche-PC 14:31:15 ~ $ strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'
    execve("/usr/bin/man", ["man", "nc"], [/* 87 vars */]) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    access("/usr/share/man/man1/nc.1.gz", R_OK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    stat("/usr/share/man/man1/nc.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/cat1/nc.1.gz", 0x7fffa49c0940) = -1 ENOENT (No such file or directory)
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    [pid 3878] stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    [pid 3878] access("/usr/share/man/man1/nc_openbsd.1.gz", R_OK <unfinished ...>
    BSD March 20, 2018 BSD



  5. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*"' | sort -u | grep -v /dev/ | xargs sh -c 'zgrep "March 14" "$@"' sh 2> /dev/null



     no output


    it seems the date isn't hardcoded. Could be a macro generating today's date.




  6. env | grep -e ROFF -e MAN -e GRO



    SESSION_MANAGER=local/ychaouche-PC:@/tmp/.ICE-unix/2915,unix/ychaouche-PC:/tmp/.ICE-unix/2915
    MANDATORY_PATH=/usr/share/gconf/default.mandatory.path


  7. env -i man nc shows today's date (March 20th 2018)



  8. zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD



    ychaouche#ychaouche-PC 06:59:53 ~ $ zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD
    NC(1) BSD General Commands Manual NC(1)
    BSD March 20, 2018 BSD
    ychaouche#ychaouche-PC 07:01:41 ~ $



  9. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd



    ychaouche#ychaouche-PC 17:26:08 /usr/share/man/man1 $ unalias ls
    ychaouche#ychaouche-PC 17:26:12 /usr/share/man/man1 $ unalias xargs
    ychaouche#ychaouche-PC 17:26:14 /usr/share/man/man1 $ unalias grep
    ychaouche#ychaouche-PC 17:26:16 /usr/share/man/man1 $ strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd
    -rw-r--r-- 1 root root 4065 Jan 22 2014 /usr/share/groff/1.22.2/tmac/papersize.tmac
    -rw-r--r-- 1 root root 1860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/andoc.tmac
    -rw-r--r-- 1 root root 71 Jan 22 2014 /usr/share/groff/1.22.2/tmac/unicode.tmac
    -rw-r--r-- 1 root root 1552 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty.tmac
    -rw-r--r-- 1 root root 5183 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty-char.tmac
    -rw-r--r-- 1 root root 1145 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc-end
    -rw-r--r-- 1 root root 1387 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc
    -rw-r--r-- 1 root root 4729 Jan 22 2014 /usr/share/groff/1.22.2/tmac/pspic.tmac
    -rw-r--r-- 1 root root 22042 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-syms
    -rw-r--r-- 1 root root 4048 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-nroff
    -rw-r--r-- 1 root root 29284 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-common
    -rw-r--r-- 1 root root 2250 Jan 22 2014 /usr/share/groff/1.22.2/tmac/latin1.tmac
    -rw-r--r-- 1 root root 27860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphen.us
    -rw-r--r-- 1 root root 15678 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphenex.us
    -rw-r--r-- 1 root root 1362 Jan 22 2014 /usr/share/groff/1.22.2/tmac/fallbacks.tmac
    -rw-r--r-- 1 root root 73807 Jan 22 2014 /usr/share/groff/1.22.2/tmac/doc.tmac
    -rw-r--r-- 1 root root 537 Jan 22 2014 /usr/share/groff/1.22.2/tmac/composite.tmac
    -rw-r--r-- 1 root root 704 Jan 22 2014 /usr/share/groff/site-tmac/mdoc.local
    ychaouche#ychaouche-PC 17:26:18 /usr/share/man/man1 $







share|improve this question






















  • It was today yesterday. I updated the post description to include the requested commands output.
    – ychaouche
    Mar 15 at 12:59










  • The manpage’s source code is visible here (in the version apparently installed on the OP’s system).
    – Stephen Kitt
    Mar 15 at 17:41











  • Is ‘man’ aliased or overridden? type -a man output would help.
    – Jeff Schaller
    Mar 15 at 23:20






  • 2




    @Kiwy, well, that's an intriguing problem. And could be caused by a bigger problem.
    – Stéphane Chazelas
    Mar 19 at 9:50






  • 1




    -0 and --delimiter='n' make little sense together (one sets the delimiter to NUL, the other to LF)
    – Stéphane Chazelas
    Mar 20 at 16:52















up vote
9
down vote

favorite
1












Why would a specific man page (in my case, for the nc command) have today's date without me doing any updates to the system ? Also, why doesn't the "unattended update" log show any specific activity for that day?



2018-03-14 07:47:38,124 INFO Initial blacklisted packages:
2018-03-14 07:47:38,135 INFO Starting unattended upgrades script
2018-03-14 07:47:38,135 INFO Allowed origins are: ['o=LinuxMint,a=qiana-security', 'o=LinuxMintESM,a=qiana']
2018-03-14 07:47:51,767 INFO No packages found that can be upgraded unattended and no pending auto-removals


This is footer for the nc man page:



BSD March 14, 2018 BSD


That's on Linux Mint 17 (qiana), based on Ubuntu 14.04 (trusty) with groff 1.22.2 and man-db 2.6.7.1.



EDIT



Requested commands outputs :




  1. man -aw nc



    /usr/share/man/man1/nc_openbsd.1.gz



  2. ls -ld $(man -aw nc)



    -rw-r--r-- 1 root root 5.7K Dec 4 2012 /usr/share/man/man1/nc_openbsd.1.gz


Which is weird...




  1. dpkg -S $(man -aw nc)?



    netcat-openbsd: /usr/share/man/man1/nc_openbsd.1.gz



  2. type -a man



    man is /usr/bin/man



  3. zgrep docdate $(man -aw nc)



    .Dd $Mdocdate: February 7 2012 $



  4. ADDED FOOTER strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'



    ychaouche#ychaouche-PC 14:31:15 ~ $ strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'
    execve("/usr/bin/man", ["man", "nc"], [/* 87 vars */]) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    access("/usr/share/man/man1/nc.1.gz", R_OK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    stat("/usr/share/man/man1/nc.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/cat1/nc.1.gz", 0x7fffa49c0940) = -1 ENOENT (No such file or directory)
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    [pid 3878] stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    [pid 3878] access("/usr/share/man/man1/nc_openbsd.1.gz", R_OK <unfinished ...>
    BSD March 20, 2018 BSD



  5. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*"' | sort -u | grep -v /dev/ | xargs sh -c 'zgrep "March 14" "$@"' sh 2> /dev/null



     no output


    it seems the date isn't hardcoded. Could be a macro generating today's date.




  6. env | grep -e ROFF -e MAN -e GRO



    SESSION_MANAGER=local/ychaouche-PC:@/tmp/.ICE-unix/2915,unix/ychaouche-PC:/tmp/.ICE-unix/2915
    MANDATORY_PATH=/usr/share/gconf/default.mandatory.path


  7. env -i man nc shows today's date (March 20th 2018)



  8. zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD



    ychaouche#ychaouche-PC 06:59:53 ~ $ zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD
    NC(1) BSD General Commands Manual NC(1)
    BSD March 20, 2018 BSD
    ychaouche#ychaouche-PC 07:01:41 ~ $



  9. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd



    ychaouche#ychaouche-PC 17:26:08 /usr/share/man/man1 $ unalias ls
    ychaouche#ychaouche-PC 17:26:12 /usr/share/man/man1 $ unalias xargs
    ychaouche#ychaouche-PC 17:26:14 /usr/share/man/man1 $ unalias grep
    ychaouche#ychaouche-PC 17:26:16 /usr/share/man/man1 $ strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd
    -rw-r--r-- 1 root root 4065 Jan 22 2014 /usr/share/groff/1.22.2/tmac/papersize.tmac
    -rw-r--r-- 1 root root 1860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/andoc.tmac
    -rw-r--r-- 1 root root 71 Jan 22 2014 /usr/share/groff/1.22.2/tmac/unicode.tmac
    -rw-r--r-- 1 root root 1552 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty.tmac
    -rw-r--r-- 1 root root 5183 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty-char.tmac
    -rw-r--r-- 1 root root 1145 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc-end
    -rw-r--r-- 1 root root 1387 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc
    -rw-r--r-- 1 root root 4729 Jan 22 2014 /usr/share/groff/1.22.2/tmac/pspic.tmac
    -rw-r--r-- 1 root root 22042 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-syms
    -rw-r--r-- 1 root root 4048 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-nroff
    -rw-r--r-- 1 root root 29284 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-common
    -rw-r--r-- 1 root root 2250 Jan 22 2014 /usr/share/groff/1.22.2/tmac/latin1.tmac
    -rw-r--r-- 1 root root 27860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphen.us
    -rw-r--r-- 1 root root 15678 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphenex.us
    -rw-r--r-- 1 root root 1362 Jan 22 2014 /usr/share/groff/1.22.2/tmac/fallbacks.tmac
    -rw-r--r-- 1 root root 73807 Jan 22 2014 /usr/share/groff/1.22.2/tmac/doc.tmac
    -rw-r--r-- 1 root root 537 Jan 22 2014 /usr/share/groff/1.22.2/tmac/composite.tmac
    -rw-r--r-- 1 root root 704 Jan 22 2014 /usr/share/groff/site-tmac/mdoc.local
    ychaouche#ychaouche-PC 17:26:18 /usr/share/man/man1 $







share|improve this question






















  • It was today yesterday. I updated the post description to include the requested commands output.
    – ychaouche
    Mar 15 at 12:59










  • The manpage’s source code is visible here (in the version apparently installed on the OP’s system).
    – Stephen Kitt
    Mar 15 at 17:41











  • Is ‘man’ aliased or overridden? type -a man output would help.
    – Jeff Schaller
    Mar 15 at 23:20






  • 2




    @Kiwy, well, that's an intriguing problem. And could be caused by a bigger problem.
    – Stéphane Chazelas
    Mar 19 at 9:50






  • 1




    -0 and --delimiter='n' make little sense together (one sets the delimiter to NUL, the other to LF)
    – Stéphane Chazelas
    Mar 20 at 16:52













up vote
9
down vote

favorite
1









up vote
9
down vote

favorite
1






1





Why would a specific man page (in my case, for the nc command) have today's date without me doing any updates to the system ? Also, why doesn't the "unattended update" log show any specific activity for that day?



2018-03-14 07:47:38,124 INFO Initial blacklisted packages:
2018-03-14 07:47:38,135 INFO Starting unattended upgrades script
2018-03-14 07:47:38,135 INFO Allowed origins are: ['o=LinuxMint,a=qiana-security', 'o=LinuxMintESM,a=qiana']
2018-03-14 07:47:51,767 INFO No packages found that can be upgraded unattended and no pending auto-removals


This is footer for the nc man page:



BSD March 14, 2018 BSD


That's on Linux Mint 17 (qiana), based on Ubuntu 14.04 (trusty) with groff 1.22.2 and man-db 2.6.7.1.



EDIT



Requested commands outputs :




  1. man -aw nc



    /usr/share/man/man1/nc_openbsd.1.gz



  2. ls -ld $(man -aw nc)



    -rw-r--r-- 1 root root 5.7K Dec 4 2012 /usr/share/man/man1/nc_openbsd.1.gz


Which is weird...




  1. dpkg -S $(man -aw nc)?



    netcat-openbsd: /usr/share/man/man1/nc_openbsd.1.gz



  2. type -a man



    man is /usr/bin/man



  3. zgrep docdate $(man -aw nc)



    .Dd $Mdocdate: February 7 2012 $



  4. ADDED FOOTER strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'



    ychaouche#ychaouche-PC 14:31:15 ~ $ strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'
    execve("/usr/bin/man", ["man", "nc"], [/* 87 vars */]) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    access("/usr/share/man/man1/nc.1.gz", R_OK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    stat("/usr/share/man/man1/nc.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/cat1/nc.1.gz", 0x7fffa49c0940) = -1 ENOENT (No such file or directory)
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    [pid 3878] stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    [pid 3878] access("/usr/share/man/man1/nc_openbsd.1.gz", R_OK <unfinished ...>
    BSD March 20, 2018 BSD



  5. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*"' | sort -u | grep -v /dev/ | xargs sh -c 'zgrep "March 14" "$@"' sh 2> /dev/null



     no output


    it seems the date isn't hardcoded. Could be a macro generating today's date.




  6. env | grep -e ROFF -e MAN -e GRO



    SESSION_MANAGER=local/ychaouche-PC:@/tmp/.ICE-unix/2915,unix/ychaouche-PC:/tmp/.ICE-unix/2915
    MANDATORY_PATH=/usr/share/gconf/default.mandatory.path


  7. env -i man nc shows today's date (March 20th 2018)



  8. zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD



    ychaouche#ychaouche-PC 06:59:53 ~ $ zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD
    NC(1) BSD General Commands Manual NC(1)
    BSD March 20, 2018 BSD
    ychaouche#ychaouche-PC 07:01:41 ~ $



  9. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd



    ychaouche#ychaouche-PC 17:26:08 /usr/share/man/man1 $ unalias ls
    ychaouche#ychaouche-PC 17:26:12 /usr/share/man/man1 $ unalias xargs
    ychaouche#ychaouche-PC 17:26:14 /usr/share/man/man1 $ unalias grep
    ychaouche#ychaouche-PC 17:26:16 /usr/share/man/man1 $ strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd
    -rw-r--r-- 1 root root 4065 Jan 22 2014 /usr/share/groff/1.22.2/tmac/papersize.tmac
    -rw-r--r-- 1 root root 1860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/andoc.tmac
    -rw-r--r-- 1 root root 71 Jan 22 2014 /usr/share/groff/1.22.2/tmac/unicode.tmac
    -rw-r--r-- 1 root root 1552 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty.tmac
    -rw-r--r-- 1 root root 5183 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty-char.tmac
    -rw-r--r-- 1 root root 1145 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc-end
    -rw-r--r-- 1 root root 1387 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc
    -rw-r--r-- 1 root root 4729 Jan 22 2014 /usr/share/groff/1.22.2/tmac/pspic.tmac
    -rw-r--r-- 1 root root 22042 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-syms
    -rw-r--r-- 1 root root 4048 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-nroff
    -rw-r--r-- 1 root root 29284 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-common
    -rw-r--r-- 1 root root 2250 Jan 22 2014 /usr/share/groff/1.22.2/tmac/latin1.tmac
    -rw-r--r-- 1 root root 27860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphen.us
    -rw-r--r-- 1 root root 15678 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphenex.us
    -rw-r--r-- 1 root root 1362 Jan 22 2014 /usr/share/groff/1.22.2/tmac/fallbacks.tmac
    -rw-r--r-- 1 root root 73807 Jan 22 2014 /usr/share/groff/1.22.2/tmac/doc.tmac
    -rw-r--r-- 1 root root 537 Jan 22 2014 /usr/share/groff/1.22.2/tmac/composite.tmac
    -rw-r--r-- 1 root root 704 Jan 22 2014 /usr/share/groff/site-tmac/mdoc.local
    ychaouche#ychaouche-PC 17:26:18 /usr/share/man/man1 $







share|improve this question














Why would a specific man page (in my case, for the nc command) have today's date without me doing any updates to the system ? Also, why doesn't the "unattended update" log show any specific activity for that day?



2018-03-14 07:47:38,124 INFO Initial blacklisted packages:
2018-03-14 07:47:38,135 INFO Starting unattended upgrades script
2018-03-14 07:47:38,135 INFO Allowed origins are: ['o=LinuxMint,a=qiana-security', 'o=LinuxMintESM,a=qiana']
2018-03-14 07:47:51,767 INFO No packages found that can be upgraded unattended and no pending auto-removals


This is footer for the nc man page:



BSD March 14, 2018 BSD


That's on Linux Mint 17 (qiana), based on Ubuntu 14.04 (trusty) with groff 1.22.2 and man-db 2.6.7.1.



EDIT



Requested commands outputs :




  1. man -aw nc



    /usr/share/man/man1/nc_openbsd.1.gz



  2. ls -ld $(man -aw nc)



    -rw-r--r-- 1 root root 5.7K Dec 4 2012 /usr/share/man/man1/nc_openbsd.1.gz


Which is weird...




  1. dpkg -S $(man -aw nc)?



    netcat-openbsd: /usr/share/man/man1/nc_openbsd.1.gz



  2. type -a man



    man is /usr/bin/man



  3. zgrep docdate $(man -aw nc)



    .Dd $Mdocdate: February 7 2012 $



  4. ADDED FOOTER strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'



    ychaouche#ychaouche-PC 14:31:15 ~ $ strace -f man nc 2>&1 | grep -e '^BSD' -e '"/.*nc'
    execve("/usr/bin/man", ["man", "nc"], [/* 87 vars */]) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    access("/usr/share/man/man1/nc.1.gz", R_OK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    lstat("/usr/share/man/man1/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/usr/share/man/man1/nc.1.gz", "/etc/alternatives/nc.1.gz", 4095) = 25
    lstat("/etc/alternatives/nc.1.gz", st_mode=S_IFLNK) = 0
    readlink("/etc/alternatives/nc.1.gz", "/usr/share/man/man1/nc_openbsd.1"..., 4095) = 35
    lstat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    stat("/usr/share/man/man1/nc.1.gz", 0644, st_size=5756, ...) = 0
    stat("/usr/share/man/cat1/nc.1.gz", 0x7fffa49c0940) = -1 ENOENT (No such file or directory)
    stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    open("/usr/share/man/man1/nc_openbsd.1.gz", O_RDONLY) = 3
    [pid 3878] stat("/usr/share/man/man1/nc_openbsd.1.gz", 0644, st_size=5756, ...) = 0
    [pid 3878] access("/usr/share/man/man1/nc_openbsd.1.gz", R_OK <unfinished ...>
    BSD March 20, 2018 BSD



  5. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*"' | sort -u | grep -v /dev/ | xargs sh -c 'zgrep "March 14" "$@"' sh 2> /dev/null



     no output


    it seems the date isn't hardcoded. Could be a macro generating today's date.




  6. env | grep -e ROFF -e MAN -e GRO



    SESSION_MANAGER=local/ychaouche-PC:@/tmp/.ICE-unix/2915,unix/ychaouche-PC:/tmp/.ICE-unix/2915
    MANDATORY_PATH=/usr/share/gconf/default.mandatory.path


  7. env -i man nc shows today's date (March 20th 2018)



  8. zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD



    ychaouche#ychaouche-PC 06:59:53 ~ $ zcat /usr/share/man/man1/nc_openbsd.1.gz | nroff -mandoc | grep BSD
    NC(1) BSD General Commands Manual NC(1)
    BSD March 20, 2018 BSD
    ychaouche#ychaouche-PC 07:01:41 ~ $



  9. strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd



    ychaouche#ychaouche-PC 17:26:08 /usr/share/man/man1 $ unalias ls
    ychaouche#ychaouche-PC 17:26:12 /usr/share/man/man1 $ unalias xargs
    ychaouche#ychaouche-PC 17:26:14 /usr/share/man/man1 $ unalias grep
    ychaouche#ychaouche-PC 17:26:16 /usr/share/man/man1 $ strace -f man nc 2>&1 | grep -vwe -1 | grep -o '"/[^"]*tmac/[^"]*"' | sort -u | xargs ls -lrtd
    -rw-r--r-- 1 root root 4065 Jan 22 2014 /usr/share/groff/1.22.2/tmac/papersize.tmac
    -rw-r--r-- 1 root root 1860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/andoc.tmac
    -rw-r--r-- 1 root root 71 Jan 22 2014 /usr/share/groff/1.22.2/tmac/unicode.tmac
    -rw-r--r-- 1 root root 1552 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty.tmac
    -rw-r--r-- 1 root root 5183 Jan 22 2014 /usr/share/groff/1.22.2/tmac/tty-char.tmac
    -rw-r--r-- 1 root root 1145 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc-end
    -rw-r--r-- 1 root root 1387 Jan 22 2014 /usr/share/groff/1.22.2/tmac/troffrc
    -rw-r--r-- 1 root root 4729 Jan 22 2014 /usr/share/groff/1.22.2/tmac/pspic.tmac
    -rw-r--r-- 1 root root 22042 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-syms
    -rw-r--r-- 1 root root 4048 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-nroff
    -rw-r--r-- 1 root root 29284 Jan 22 2014 /usr/share/groff/1.22.2/tmac/mdoc/doc-common
    -rw-r--r-- 1 root root 2250 Jan 22 2014 /usr/share/groff/1.22.2/tmac/latin1.tmac
    -rw-r--r-- 1 root root 27860 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphen.us
    -rw-r--r-- 1 root root 15678 Jan 22 2014 /usr/share/groff/1.22.2/tmac/hyphenex.us
    -rw-r--r-- 1 root root 1362 Jan 22 2014 /usr/share/groff/1.22.2/tmac/fallbacks.tmac
    -rw-r--r-- 1 root root 73807 Jan 22 2014 /usr/share/groff/1.22.2/tmac/doc.tmac
    -rw-r--r-- 1 root root 537 Jan 22 2014 /usr/share/groff/1.22.2/tmac/composite.tmac
    -rw-r--r-- 1 root root 704 Jan 22 2014 /usr/share/groff/site-tmac/mdoc.local
    ychaouche#ychaouche-PC 17:26:18 /usr/share/man/man1 $









share|improve this question













share|improve this question




share|improve this question








edited Mar 20 at 16:28

























asked Mar 15 at 8:36









ychaouche

431218




431218











  • It was today yesterday. I updated the post description to include the requested commands output.
    – ychaouche
    Mar 15 at 12:59










  • The manpage’s source code is visible here (in the version apparently installed on the OP’s system).
    – Stephen Kitt
    Mar 15 at 17:41











  • Is ‘man’ aliased or overridden? type -a man output would help.
    – Jeff Schaller
    Mar 15 at 23:20






  • 2




    @Kiwy, well, that's an intriguing problem. And could be caused by a bigger problem.
    – Stéphane Chazelas
    Mar 19 at 9:50






  • 1




    -0 and --delimiter='n' make little sense together (one sets the delimiter to NUL, the other to LF)
    – Stéphane Chazelas
    Mar 20 at 16:52

















  • It was today yesterday. I updated the post description to include the requested commands output.
    – ychaouche
    Mar 15 at 12:59










  • The manpage’s source code is visible here (in the version apparently installed on the OP’s system).
    – Stephen Kitt
    Mar 15 at 17:41











  • Is ‘man’ aliased or overridden? type -a man output would help.
    – Jeff Schaller
    Mar 15 at 23:20






  • 2




    @Kiwy, well, that's an intriguing problem. And could be caused by a bigger problem.
    – Stéphane Chazelas
    Mar 19 at 9:50






  • 1




    -0 and --delimiter='n' make little sense together (one sets the delimiter to NUL, the other to LF)
    – Stéphane Chazelas
    Mar 20 at 16:52
















It was today yesterday. I updated the post description to include the requested commands output.
– ychaouche
Mar 15 at 12:59




It was today yesterday. I updated the post description to include the requested commands output.
– ychaouche
Mar 15 at 12:59












The manpage’s source code is visible here (in the version apparently installed on the OP’s system).
– Stephen Kitt
Mar 15 at 17:41





The manpage’s source code is visible here (in the version apparently installed on the OP’s system).
– Stephen Kitt
Mar 15 at 17:41













Is ‘man’ aliased or overridden? type -a man output would help.
– Jeff Schaller
Mar 15 at 23:20




Is ‘man’ aliased or overridden? type -a man output would help.
– Jeff Schaller
Mar 15 at 23:20




2




2




@Kiwy, well, that's an intriguing problem. And could be caused by a bigger problem.
– Stéphane Chazelas
Mar 19 at 9:50




@Kiwy, well, that's an intriguing problem. And could be caused by a bigger problem.
– Stéphane Chazelas
Mar 19 at 9:50




1




1




-0 and --delimiter='n' make little sense together (one sets the delimiter to NUL, the other to LF)
– Stéphane Chazelas
Mar 20 at 16:52





-0 and --delimiter='n' make little sense together (one sets the delimiter to NUL, the other to LF)
– Stéphane Chazelas
Mar 20 at 16:52











1 Answer
1






active

oldest

votes

















up vote
10
down vote



accepted










GNU roff used not to support those:



 .Dd $Mdocdate: February 7 2012 $


OpenBSD extension (here that $Mdocdate: ...$ being a CVS/RCS keyword expanded by CVS (which OpenBSD uses to version control their code) with the date of the manual revision), resulting in the current date to be expanded instead of the one specified. I can reproduce it on Ubuntu 14.04 for all man pages that have such a Mdocdate.



See https://savannah.gnu.org/bugs/?42968 implemented in https://lists.gnu.org/archive/html/groff-commit/2014-10/msg00092.html (groff version 1.22.3).




For man pages from MirBSD (now MirOS) like your paxcpio or mksh, which use the same $Mdocdate: ...$ CVS keyword, you'll find the man pages redefine (wrap) the .Dd mdoc macro themselves, so the roff system macros don't have to support it:




."
." Implement .Dd with the Mdocdate RCS keyword
."
.rn Dd xD
.de Dd
.ie ^G\$1^G$Mdocdate:^G
. xD \$2 \$3, \$4
.
.el .xD \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8
..
."
." .Dd must come before definition of .Mx, because when called
." with -mandoc, it might implement .Mx itself, but we want to
." use our own definition. And .Dd must come *first*, always.
."
.Dd $Mdocdate: August 16 2017 $






share|improve this answer


















  • 1




    That was one brilliant debugging. Thanks a lot.
    – ychaouche
    Mar 20 at 12:24






  • 1




    @ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
    – Stéphane Chazelas
    Mar 20 at 12:27










  • Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
    – ychaouche
    Mar 20 at 16:20










  • man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
    – Stéphane Chazelas
    Mar 20 at 16:51






  • 1




    @ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
    – Stéphane Chazelas
    Mar 21 at 9:28











Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f430344%2fwhy-does-this-man-page-have-todays-date%23new-answer', 'question_page');

);

Post as a guest






























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
10
down vote



accepted










GNU roff used not to support those:



 .Dd $Mdocdate: February 7 2012 $


OpenBSD extension (here that $Mdocdate: ...$ being a CVS/RCS keyword expanded by CVS (which OpenBSD uses to version control their code) with the date of the manual revision), resulting in the current date to be expanded instead of the one specified. I can reproduce it on Ubuntu 14.04 for all man pages that have such a Mdocdate.



See https://savannah.gnu.org/bugs/?42968 implemented in https://lists.gnu.org/archive/html/groff-commit/2014-10/msg00092.html (groff version 1.22.3).




For man pages from MirBSD (now MirOS) like your paxcpio or mksh, which use the same $Mdocdate: ...$ CVS keyword, you'll find the man pages redefine (wrap) the .Dd mdoc macro themselves, so the roff system macros don't have to support it:




."
." Implement .Dd with the Mdocdate RCS keyword
."
.rn Dd xD
.de Dd
.ie ^G\$1^G$Mdocdate:^G
. xD \$2 \$3, \$4
.
.el .xD \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8
..
."
." .Dd must come before definition of .Mx, because when called
." with -mandoc, it might implement .Mx itself, but we want to
." use our own definition. And .Dd must come *first*, always.
."
.Dd $Mdocdate: August 16 2017 $






share|improve this answer


















  • 1




    That was one brilliant debugging. Thanks a lot.
    – ychaouche
    Mar 20 at 12:24






  • 1




    @ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
    – Stéphane Chazelas
    Mar 20 at 12:27










  • Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
    – ychaouche
    Mar 20 at 16:20










  • man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
    – Stéphane Chazelas
    Mar 20 at 16:51






  • 1




    @ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
    – Stéphane Chazelas
    Mar 21 at 9:28















up vote
10
down vote



accepted










GNU roff used not to support those:



 .Dd $Mdocdate: February 7 2012 $


OpenBSD extension (here that $Mdocdate: ...$ being a CVS/RCS keyword expanded by CVS (which OpenBSD uses to version control their code) with the date of the manual revision), resulting in the current date to be expanded instead of the one specified. I can reproduce it on Ubuntu 14.04 for all man pages that have such a Mdocdate.



See https://savannah.gnu.org/bugs/?42968 implemented in https://lists.gnu.org/archive/html/groff-commit/2014-10/msg00092.html (groff version 1.22.3).




For man pages from MirBSD (now MirOS) like your paxcpio or mksh, which use the same $Mdocdate: ...$ CVS keyword, you'll find the man pages redefine (wrap) the .Dd mdoc macro themselves, so the roff system macros don't have to support it:




."
." Implement .Dd with the Mdocdate RCS keyword
."
.rn Dd xD
.de Dd
.ie ^G\$1^G$Mdocdate:^G
. xD \$2 \$3, \$4
.
.el .xD \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8
..
."
." .Dd must come before definition of .Mx, because when called
." with -mandoc, it might implement .Mx itself, but we want to
." use our own definition. And .Dd must come *first*, always.
."
.Dd $Mdocdate: August 16 2017 $






share|improve this answer


















  • 1




    That was one brilliant debugging. Thanks a lot.
    – ychaouche
    Mar 20 at 12:24






  • 1




    @ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
    – Stéphane Chazelas
    Mar 20 at 12:27










  • Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
    – ychaouche
    Mar 20 at 16:20










  • man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
    – Stéphane Chazelas
    Mar 20 at 16:51






  • 1




    @ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
    – Stéphane Chazelas
    Mar 21 at 9:28













up vote
10
down vote



accepted







up vote
10
down vote



accepted






GNU roff used not to support those:



 .Dd $Mdocdate: February 7 2012 $


OpenBSD extension (here that $Mdocdate: ...$ being a CVS/RCS keyword expanded by CVS (which OpenBSD uses to version control their code) with the date of the manual revision), resulting in the current date to be expanded instead of the one specified. I can reproduce it on Ubuntu 14.04 for all man pages that have such a Mdocdate.



See https://savannah.gnu.org/bugs/?42968 implemented in https://lists.gnu.org/archive/html/groff-commit/2014-10/msg00092.html (groff version 1.22.3).




For man pages from MirBSD (now MirOS) like your paxcpio or mksh, which use the same $Mdocdate: ...$ CVS keyword, you'll find the man pages redefine (wrap) the .Dd mdoc macro themselves, so the roff system macros don't have to support it:




."
." Implement .Dd with the Mdocdate RCS keyword
."
.rn Dd xD
.de Dd
.ie ^G\$1^G$Mdocdate:^G
. xD \$2 \$3, \$4
.
.el .xD \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8
..
."
." .Dd must come before definition of .Mx, because when called
." with -mandoc, it might implement .Mx itself, but we want to
." use our own definition. And .Dd must come *first*, always.
."
.Dd $Mdocdate: August 16 2017 $






share|improve this answer














GNU roff used not to support those:



 .Dd $Mdocdate: February 7 2012 $


OpenBSD extension (here that $Mdocdate: ...$ being a CVS/RCS keyword expanded by CVS (which OpenBSD uses to version control their code) with the date of the manual revision), resulting in the current date to be expanded instead of the one specified. I can reproduce it on Ubuntu 14.04 for all man pages that have such a Mdocdate.



See https://savannah.gnu.org/bugs/?42968 implemented in https://lists.gnu.org/archive/html/groff-commit/2014-10/msg00092.html (groff version 1.22.3).




For man pages from MirBSD (now MirOS) like your paxcpio or mksh, which use the same $Mdocdate: ...$ CVS keyword, you'll find the man pages redefine (wrap) the .Dd mdoc macro themselves, so the roff system macros don't have to support it:




."
." Implement .Dd with the Mdocdate RCS keyword
."
.rn Dd xD
.de Dd
.ie ^G\$1^G$Mdocdate:^G
. xD \$2 \$3, \$4
.
.el .xD \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8
..
."
." .Dd must come before definition of .Mx, because when called
." with -mandoc, it might implement .Mx itself, but we want to
." use our own definition. And .Dd must come *first*, always.
."
.Dd $Mdocdate: August 16 2017 $







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 21 at 9:34

























answered Mar 20 at 8:14









Stéphane Chazelas

280k53515847




280k53515847







  • 1




    That was one brilliant debugging. Thanks a lot.
    – ychaouche
    Mar 20 at 12:24






  • 1




    @ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
    – Stéphane Chazelas
    Mar 20 at 12:27










  • Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
    – ychaouche
    Mar 20 at 16:20










  • man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
    – Stéphane Chazelas
    Mar 20 at 16:51






  • 1




    @ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
    – Stéphane Chazelas
    Mar 21 at 9:28













  • 1




    That was one brilliant debugging. Thanks a lot.
    – ychaouche
    Mar 20 at 12:24






  • 1




    @ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
    – Stéphane Chazelas
    Mar 20 at 12:27










  • Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
    – ychaouche
    Mar 20 at 16:20










  • man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
    – Stéphane Chazelas
    Mar 20 at 16:51






  • 1




    @ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
    – Stéphane Chazelas
    Mar 21 at 9:28








1




1




That was one brilliant debugging. Thanks a lot.
– ychaouche
Mar 20 at 12:24




That was one brilliant debugging. Thanks a lot.
– ychaouche
Mar 20 at 12:24




1




1




@ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
– Stéphane Chazelas
Mar 20 at 12:27




@ychaouche, now looking backward, that should have been one of the few things to look at, but for some reason I thought your Mint Qiana was based on Ubuntu 16.04 instead of 14.04 and couldn't reproduce it on 16.04
– Stéphane Chazelas
Mar 20 at 12:27












Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
– ychaouche
Mar 20 at 16:20




Using zgrep as shown in your comment, I made a list of all the man pages that had this "bug" : gist.github.com/ychaouche/fabe43225d1692dc325826d2be521bc4. I manually verified some of them, the bug is there. But it seems to have been fixed in Debian 8 (using 8.10 on one of the servers, bug not there.)
– ychaouche
Mar 20 at 16:20












man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
– Stéphane Chazelas
Mar 20 at 16:51




man ssh shows the current date on a Debian 8.10 system here with groff 1.22.2-8. Maybe you get the groff package from a newer release (stretch has 1.22.3). See apt-cache policy groff.
– Stéphane Chazelas
Mar 20 at 16:51




1




1




@ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
– Stéphane Chazelas
Mar 21 at 9:28





@ychaouche, it's not really a bug, it's that OpenBSD added a new format for the .Dd mdoc macro (which otherwise accepts Month day, year), so they could use CVS keyword in it (here $Mdocdate: ... $ which is expanded by CVS to the date of the document revision). They updated their own mdoc macros for that and those modifcations were later merged into groff so that OpenBSD man pages could be properly formatted on other systems.
– Stéphane Chazelas
Mar 21 at 9:28













 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f430344%2fwhy-does-this-man-page-have-todays-date%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

How to check contact read email or not when send email to Individual?

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?