NixOS/nix

fetchTree: use last-modified HTTP header where possible

Open

#9,067 建立於 2023年9月29日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)C++ (9,803 star) (1,293 fork)batch import
featurefetchinggood first issue

描述

Is your feature request related to a problem? Please describe.

Currently fetchTree with type=tarball+http(s) gets lastModified from the mtime of the tarball contents. Some formats such as zip do not include this metadata, so lastModified ends up being incorrectly set to the current time.

type=file+http(s) does not set lastModified at all.

Describe the solution you'd like

Most webservers, when serving static files, will send a last-modified header set to the mtime of the served file. We could set lastModified to this value, or use it as fallback when mtime of contents is absent.

Describe alternatives you've considered

Do not set lastModified when mtime metadata is not present in archives. This should probably be done anyway when neither mtime nor last-modified is present.

Additional context

Priorities

Add :+1: to issues you find important.

貢獻者指南