Source: libarchive
Version: 3.2.0-1
Severity: important
Tags: upstream
User: debian-bsd@lists.debian.org
Usertags: kfreebsd
X-Debbugs-Cc: debian-bsd@lists.debian.org

As already reported to debian-bsd by the libarchive maintainer,
libarchive 3.2.0 fails to build from source on kFreeBSD due to this
test failure:

 40: test_option_older_than
 tar/test/test_option_older_than.c:70: File should exist: a/b/old.txt
 tar/test/test_option_older_than.c:83: File should exist: a/b/old.txt

This would normally be Severity: serious, but kFreeBSD isn't a release
architecture, so I'm filing it as important instead.

This test creates files named old.txt and middle.txt with mtimes in
sequence, using this pseudocode:

    create old.txt
    while old.txt's mtime in seconds >= time(NULL):
        sleep 1
    create middle.txt
    while middle.txt's mtime in seconds >= time(NULL):
        sleep 1

This looks as though it should work, and result in old.txt being strictly
older than middle.txt (even if timestamps are rounded down to the next
earlier second), which is strictly older than the time at which that
pseudocode ends. However, perhaps there's some kFreeBSD quirk that I'm
not aware of?

Alternatively, this could probably be addressed by artificially aging
old.txt and middle.txt, like I do in ikiwiki's test suite. For example,
it could use utimes() to make old.txt 2 years old and make middle.txt
1 year old. This might not be acceptable to upstream if utimes() is not
portable to all the platforms they care about, but a portable wrapper
could use _utime64() on Windows if desired.

Regards,
    S

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.5.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Reply via email to