Re: make dist using git archive
От | Tristan Partin |
---|---|
Тема | Re: make dist using git archive |
Дата | |
Msg-id | CYN4PXK5J7KP.247K22MR0MM1G@neon.tech обсуждение исходный текст |
Ответ на | Re: make dist using git archive ("Tristan Partin" <tristan@neon.tech>) |
Ответы |
Re: make dist using git archive
(Peter Eisentraut <peter@eisentraut.org>)
Re: make dist using git archive ("Tristan Partin" <tristan@neon.tech>) |
Список | pgsql-hackers |
On Wed Jan 24, 2024 at 10:18 AM CST, Tristan Partin wrote: > On Tue Jan 23, 2024 at 3:30 AM CST, Peter Eisentraut wrote: > > On 22.01.24 21:04, Tristan Partin wrote: > > > I am not really following why we can't use the builtin Meson dist > > > command. The only difference from my testing is it doesn't use a > > > --prefix argument. > > > > Here are some problems I have identified: > > > > 1. meson dist internally runs gzip without the -n option. That makes > > the tar.gz archive include a timestamp, which in turn makes it not > > reproducible. It doesn't look like Python provides the facilities to affect this. > > 2. Because gzip includes a platform indicator in the archive, the > > produced tar.gz archive is not reproducible across platforms. (I don't > > know if gzip has an option to avoid that. git archive uses an internal > > gzip implementation that handles this.) Same reason as above. > > 3. Meson does not support tar.bz2 archives. Submitted https://github.com/mesonbuild/meson/pull/12770. > > 4. Meson uses git archive internally, but then unpacks and repacks the > > archive, which loses the ability to use git get-tar-commit-id. Because Meson allows projects to distribute arbitrary files via meson.add_dist_script(), and can include subprojects via `meson dist --include-subprojects`, this doesn't seem like an easily solvable problem. > > 5. I have found that the tar archives created by meson and git archive > > include the files in different orders. I suspect that the Python > > tarfile module introduces some either randomness or platform dependency. Seems likely. > > 6. meson dist is also slower because of the additional work. Not easily solvable due to 4. > > 7. meson dist produces .sha256sum files but we have called them .sha256. > > (This is obviously trivial, but it is something that would need to be > > dealt with somehow nonetheless.) > > > > Most or all of these issues are fixable, either upstream in Meson or by > > adjusting our own requirements. But for now this route would have some > > significant disadvantages. > > Thanks Peter. I will bring these up with upstream! I think the solution to point 4 is to not unpack/repack if there are no dist scripts and/or subprojects to distribute. I can take a look at this later. I think this would also solve points 1, 2, 5, and 6 because at that point meson is just calling git-archive. -- Tristan Partin Neon (https://neon.tech)
В списке pgsql-hackers по дате отправления: