From 1a2fb898761b796e929ad0600665a3f1badd3176 Mon Sep 17 00:00:00 2001 From: reaper Date: Wed, 26 Aug 2026 21:11:10 -0500 Subject: [PATCH] fix: make PAC archives reproducible --- scripts/archive-directory.cjs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/archive-directory.cjs b/scripts/archive-directory.cjs index 1283416..5e98c80 100644 --- a/scripts/archive-directory.cjs +++ b/scripts/archive-directory.cjs @@ -2,8 +2,9 @@ const { ZipArchive } = require('archiver') const { createWriteStream } = require('fs') -const { lstat, readlink, readdir } = require('fs/promises') +const { lstat, readFile, readlink, readdir } = require('fs/promises') const { join, relative, sep } = require('path') +const archiveDate = new Date('2000-01-01T00:00:00.000Z') function archiveName(root, value) { return relative(root, value).split(sep).join('/') @@ -17,10 +18,10 @@ async function appendDirectory(archive, root, directory) { if (stats.isSymbolicLink()) { archive.symlink(name, await readlink(absolute), stats.mode) } else if (stats.isDirectory()) { - archive.append('', { name: `${name}/` }) + archive.append('', { name: `${name}/`, date: archiveDate }) await appendDirectory(archive, root, absolute) } else if (stats.isFile()) { - archive.file(absolute, { name, mode: stats.mode }) + archive.append(await readFile(absolute), { name, mode: stats.mode, date: archiveDate }) } } }