celenity/Phoenix
8
198
Fork
You've already forked Phoenix
18

[OTHER] Can't reproduce SHA256 hash for tarballs #314

Closed
opened 2026年06月11日 06:33:50 +02:00 by koru · 3 comments
Contributor
Copy link

Please explain your inquiry.

How to tarballs:

> git clone --depth=1 git@codeberg.org:celenity/Phoenix.git Phoenix
> cd Phoenix
> git checkout 2026年06月10日.1
> bash +x scripts/get_sources.sh && bash +x scripts/build.sh
> cd outputs/
> sha256sum -- phoenix-2026年06月10日.1-linux.tar.xz
3b9a000ef7a86df9e6b21a6b4d446dd6e25d1ab23c872f5b77a8b92b8a0391b9 phoenix-2026年06月10日.1-linux.tar.xz

Remote:

> wget https://releases.celenity.dev/phoenix/releases/2026.06.10.1/linux/phoenix-2026年06月10日.1-linux.tar.xz
> sha256sum -- phoenix-2026年06月10日.1-linux.tar.xz 
eba5f8073524a07681291adf354c7a59779ff43011f00bafb7de189836558599 phoenix-2026年06月10日.1-linux.tar.xz

How to universal config:

# build...
> cd outputs/universal/
> sha256sum -- phoenix-2026年06月10日.1-universal.cfg 
718099003340f228c115115db765c3e4ed22041debe8732faa7dc4640d514585 phoenix-2026年06月10日.1-universal.cfg

Remote:

> wget https://releases.celenity.dev/phoenix/releases/2026.06.10.1/universal/phoenix-2026年06月10日.1-universal.cfg
> sha256sum -- phoenix-2026年06月10日.1-universal.cfg 
718099003340f228c115115db765c3e4ed22041debe8732faa7dc4640d514585 phoenix-2026年06月10日.1-universal.cfg

Also see: https://codeberg.org/celenity/Phoenix/src/branch/dev/docs/build.md

I think there issue related to archive/tarball compression or am I missing something?

### Please explain your inquiry. How to tarballs: ```bash > git clone --depth=1 git@codeberg.org:celenity/Phoenix.git Phoenix > cd Phoenix > git checkout 2026年06月10日.1 > bash +x scripts/get_sources.sh && bash +x scripts/build.sh > cd outputs/ > sha256sum -- phoenix-2026年06月10日.1-linux.tar.xz 3b9a000ef7a86df9e6b21a6b4d446dd6e25d1ab23c872f5b77a8b92b8a0391b9 phoenix-2026年06月10日.1-linux.tar.xz ``` Remote: ```bash > wget https://releases.celenity.dev/phoenix/releases/2026.06.10.1/linux/phoenix-2026年06月10日.1-linux.tar.xz > sha256sum -- phoenix-2026年06月10日.1-linux.tar.xz eba5f8073524a07681291adf354c7a59779ff43011f00bafb7de189836558599 phoenix-2026年06月10日.1-linux.tar.xz ``` How to universal config: ```bash # build... > cd outputs/universal/ > sha256sum -- phoenix-2026年06月10日.1-universal.cfg 718099003340f228c115115db765c3e4ed22041debe8732faa7dc4640d514585 phoenix-2026年06月10日.1-universal.cfg ``` Remote: ```bash > wget https://releases.celenity.dev/phoenix/releases/2026.06.10.1/universal/phoenix-2026年06月10日.1-universal.cfg > sha256sum -- phoenix-2026年06月10日.1-universal.cfg 718099003340f228c115115db765c3e4ed22041debe8732faa7dc4640d514585 phoenix-2026年06月10日.1-universal.cfg ``` Also see: https://codeberg.org/celenity/Phoenix/src/branch/dev/docs/build.md I think there issue related to archive/tarball compression or am I missing something?

https://www.gnu.org/software/tar/manual/html_node/Reproducibility.html

Release archives are presumably done using GNU tar on osx, some of the recommended GNU extension flags could be included here. Piping to xz/gzip with specific XZ_FLAGS /GZIP_FLAGS, instead of tar -z / tar -J, might be needed as well.
Or, if GNU tar is not to be presumed, setting the (ancient) --format=ustar instead of pax/posix to skip pax headers altogether, might also be enough.

https://www.gnu.org/software/tar/manual/html_node/Reproducibility.html Release archives are presumably done using [GNU tar on osx](https://codeberg.org/celenity/Phoenix/src/commit/c1a177801e6cb37bf8978a0ec343521cf0c72e44/scripts/env_common.sh#L164-L174), some of the recommended GNU extension flags could be included [here](https://codeberg.org/celenity/Phoenix/src/commit/c1a177801e6cb37bf8978a0ec343521cf0c72e44/scripts/fly.sh#L626). Piping to `xz`/`gzip` with specific `XZ_FLAGS` /`GZIP_FLAGS`, instead of `tar -z` / `tar -J`, might be needed as well. Or, if GNU tar is not to be presumed, setting the (ancient) [`--format=ustar`](https://stackoverflow.com/a/52817819) instead of `pax`/`posix` to skip pax headers altogether, might also be enough.

https://wiki.debian.org/ReproducibleBuilds/TimestampsInZip

also, for the Windows zip. At least -X/--no-extra should be included here, but that will likely not be enough; all files (*) to be zipped should probably be TZ=C touch-ed recursively to some static timestamp. -o/--latest-time only passed to zip would not help, since git cloned directories will have a different "latest" timestamps local vs. remote.

https://wiki.debian.org/ReproducibleBuilds/TimestampsInZip also, for the Windows zip. At least `-X`/`--no-extra` should be included [here](https://codeberg.org/celenity/Phoenix/src/commit/c1a177801e6cb37bf8978a0ec343521cf0c72e44/scripts/fly.sh#L624), but that will likely not be enough; all files (`*`) to be zipped should probably be `TZ=C touch`-ed recursively to some static timestamp. `-o`/`--latest-time` only passed to `zip` would not help, since `git clone`d directories will have a different "latest" timestamps local vs. remote.

Thank you for filing this @koru, and thank you for sharing that extremely useful information @degausser!

This should now be fixed - it at least appears to be working/creating matching archives on my system, but please let me know if there's still any issues.

Thank you for filing this @koru, and thank you for sharing that extremely useful information @degausser! This should now be fixed - it at least appears to be working/creating matching archives on my system, but please let me know if there's still any issues.
Sign in to join this conversation.
No Branch/Tag specified
dev
pages
2026年07月08日.1
2026年06月10日.1
2026年05月21日.2
2026年05月21日.1
2026年04月27日.1
2026年03月31日.1
2026年03月30日.1
2026年02月23日.1
2026年02月16日.1
2026年01月21日.1
2025年12月23日.1
2025年11月27日.1
2025年11月07日.1
2025年10月26日.1
2025年10月12日.1
2025年10月03日.1
2025年09月07日.1
2025年08月06日.1
2025年07月30日.1
2025年07月11日.1
2025年06月24日.1
2025年06月12日.1
2025年06月10日.1
2025年06月06日.1
2025年06月02日.2
2025年06月02日.1
2025年05月11日.1
2025年04月27日.1
2025年04月15日.1
2025年04月11日.1
2025年04月02日.1
2025年03月25日.1
2025年03月20日.1
2025年03月12日.1
2025年03月05日.1
2025年02月28日.1
2025年02月21日.1
2024年02月18日.1
2025年02月14日.1
2025年02月13日.1
2025年02月01日.1
2025年01月30日.1
2025年01月27日.1
2025年01月24日.1
2025年01月22日.2
2025年01月22日.1
2025年01月20日.2
2025年01月20日.1
2025年01月19日.1
2025年01月14日.1
2025年01月13日.1
2025年01月12日.2
2025年01月12日.1
2025年01月06日.1
05January2025v1
20240103.2
20250103.1
20241229-1
20241225-1
20241216-1
20241211-1
20241204-1
20241203-1
31November2024v1
20241103-1
20240924-1
20240914-1
20240907-1
20240902-1
20240831-1
20240825-1
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
celenity/Phoenix#314
Reference in a new issue
celenity/Phoenix
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?