-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
zopen-build: Generate a zstd-compressed asset, use sha256 checksum, change package naming convention #628
base: main
Are you sure you want to change the base?
Conversation
IgorTodorovskiIBM
commented
Dec 11, 2023
- Adds code to build a zstd compressed asset based on discussion in Use better compression algorithm for pax files #613 (comment)
- Changes metadata.json to specify an array of assets, now including pax.Z and .zst
- changes the package naming convention to ${PACKAGE_NAME}-${versionString}-${date}.zos.pax" so that we include the correct version string
The 'date' part can be found from the file's creation/modification time, right? current: linux/s390x: zos/s390x: Makes me wonder... do we need to pax before running zstd on it? The |
That makes sense, I was a little confused by what to put under "release" so that helps! I think until we add support for maintaining attributes like file tags in zstd and others, we should continue to use pax as the container format. |
It should look like this now:
Ideally, release would be N.zos24, and N would increment from the last published release. We can probably use zopen list to query the latest release. |
By adding in the release, are we now publishing 3 versions (2.4/2.5/3.1) ?? Linux platforms add in the os release as they do publish different releases for those os's. Eg. Fedora 39 has python3-productmd-1.37-1.fc39_1.38-1.fc39.noarch.drpm and released similar for fc38. The normal expectation for a user would be that if the package has a z/OS 2.4/2.5/3.1, then it will only apply to that version, not that it applies to that and later versions. |
Setting up for it, hopefully. And dropping 2.4... soon. I'm not entirely sure if, similarly, we need to keep separate builds for Go programs built in 1.19, 1.20, 1.21, etc.
In this case, it may be a deltarpm file, that contains just the stuff to go from 1.37 to 1.39 in fc39.
Yup, a package for a particular OS. GOOS-GOARCH is 24/31/64 - 😱 - this is indeed an additional term we may need to add, assuming these refer to ports that run in 31-bit. |
Last 2 sentences of previous comment... I wonder... does that mean 31-bit builds should be called |
For C/C++ we're still targeting V2R4 (https://github.com/ZOSOpenTools/comp_clangport/blob/main/buildenv#L84).
Right now we're targeting 2.4 in our C/C++ builds: https://github.com/ZOSOpenTools/comp_clangport/blob/main/buildenv#L84 . Newer OS levels for z/OS are backwards compatible. So for us, this means the min OS level is 2.4, but it should work for 2.5, 3.1 as well. Perhaps we can use just "zos" as the release for now until we decide to add builds for each version? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're last comment indicated to use zos as the release - the code seems to still be using zos24:
osRelease="zos24" #TODO: change based on build target
paxFileName="${PACKAGE_NAME}-${versionString}-${osRelease}.s390x.pax"
Otherwise, LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Does anything need to go in before this, @IgorTodorovskiIBM? |
Don't think so, I'll need to the sync the branch and do further testing to make sure I'm not breaking anything |