我正在尝试使用l3build ctan
准备.zip
适合 CTAN 上传的文件。特别是,我希望生成的.zip
文件满足 CTAN 的文件权限要求(在https://ctan.org/file/help/ctan/CTAN-upload-addendum#filepermissions)。相关部分是:
提交给 CTAN 的文件显然是为了发布。这意味着它们应该是“全世界可读的”。(事实上,文件权限的“隐私”过分强调可能会导致安装过程出现严重问题。)
不幸的是,我自己确实使用了更严格的限制umask
,所以我不能依赖“正常工作”的东西。
我研究了三种解决这个问题的可能性。首先,尝试在zip
的一侧处理它,控制zipopts
,但我找不到任何可以做到这一点的选项。其次,看看它本身是否提供了某种“钩子” l3build
,但我也找不到。第三,我考虑构建一个 bash 脚本,它可以同时完成这两件事并将其l3build
作为传递给 。唉,中的zipexe
函数不仅仅是将文件列表传递给,而且还会在 之外的其他参数旁边构建排除项。因此,获取实际传递给 的内容并将其提供给似乎并不是一件容易的事(也许有办法,但我没有看到)。dirzip
l3build-ctan.lua
zipexe
zipopts
zipexe
chmod
既然如此,我如何确保.zip
准备的文件符合l3build ctan
CTAN 上传的“全球可读”要求?
答案1
此问题已在上游报告并修复https://github.com/latex3/l3build/pull/198,现在l3build
可以确保满足 CTAN 文件权限要求,而与本地umask
设置无关。