-
Notifications
You must be signed in to change notification settings - Fork 438
Enable testing builds using packit for Fedora #27879
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
base: main
Are you sure you want to change the base?
Conversation
jabraham17
left a comment
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.
I've only taken a cursory look at the new chapel.spec, but I have some other concerns. In general, I am very excited about the prospect of being able to test Chapel rpms on packit/copr and about having Chapel rpms available in standard fedora pacakges. I do have a fedora account that can be used for this
This is a big change in how we do packaging (arguably for the better). I have two big overarching concerns
- maintenance of this rawhide spec
- there are a number of fields in the spec that will need to be update (the version number and some of the pinned dependencies like
clang20) that will need to be updated over time. Who is responsible for doing that (i.e. does this need to be added to our release process)
- there are a number of fields in the spec that will need to be update (the version number and some of the pinned dependencies like
- divergence of packaging builds
- This is very different from how we do the current packaging builds for fedora (see
util/packaging/rpm/fc41/spec.template). While this is probably much better and more thorough in terms of the spec, its also very different (this makes it a maintenance issue more than anything) and has a much smaller feature set (only CHPL_COMM=none, no multi-locale builds). - What can be done to close the gap between these two packaging strategies?
- This is very different from how we do the current packaging builds for fedora (see
| export CHPL_HOST_COMPILER=gnu | ||
| export CHPL_TARGET_COMPILER=gnu | ||
| export CHPL_TARGET_CPU=unknown | ||
| export CHPL_LOCALE_MODEL=flat | ||
| export CHPL_TASKS=fifo | ||
| # gasnet not yet packaged | ||
| export CHPL_COMM=none | ||
| export CHPL_TARGET_MEM=cstdlib | ||
| #export CHPL_TARGET_JEMALLOC=system | ||
| export CHPL_HOST_MEM=cstdlib | ||
| #export CHPL_HOST_MIMALLOC=system | ||
| #export CHPL_HOST_JEMALLOC=system | ||
| #export CHPL_NETWORK_ATOMICS=ofi | ||
| export CHPL_GMP=system | ||
| export CHPL_HWLOC=system | ||
| # No option to use system version, Chapel | ||
| # specific changes not pushed upstream | ||
| export CHPL_RE2=bundled | ||
| export CHPL_AUX_FILESYS=none | ||
| export CHPL_LLVM=system | ||
| export CHPL_LLVM_SUPPORT=system | ||
| export CHPL_UNWIND=system | ||
| export CHPL_LIB_PIC=pic |
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.
I think a better approach here is to write a chplconfig file before running ./configure
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.
I see some changes made to add a chplconfig and want to clarify. I was referring to https://chapel-lang.org/docs/main/usingchapel/chplenv.html#chapel-configuration-files, not a shell script.
| BuildRequires: python3dist(pytest-lsp) | ||
| BuildRequires: python3dist(pyyaml) | ||
| # Not yet packaged | ||
| #BuildRequires: python3dist(scspell3k) |
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.
scspell3k is a development only dependency and is not needed in an rpm
| export CHPL_TARGET_COMPILER=gnu | ||
| export CHPL_TARGET_CPU=unknown | ||
| export CHPL_LOCALE_MODEL=flat | ||
| export CHPL_TASKS=fifo |
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.
CHPL_TASKS=fifo should not be used, this should be qthreads
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.
Will package qthreads.
| %build | ||
| export CHPL_HOST_COMPILER=gnu | ||
| export CHPL_TARGET_COMPILER=gnu | ||
| export CHPL_TARGET_CPU=unknown |
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.
CHPL_TARGET_CPU should be set to none
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.
ok
Signed-off-by: Benson Muite <[email protected]>
This can be automated to some degree, in particular the version number can be bumped whenever there is a release.
libfabric is packaged in Fedora, but the build with this fails for some reason. Trying to figure out why.
A template spec file would ease maintenance. The documentation can also be built within Fedora. The other binaries could also be built once the necessary dependencies are available. |
Signed-off-by: Benson Muite <[email protected]>
|
Generally, this is all looking good to me (pending the implementation of the rest of the feedback).
I would love your help in implementing some of this? How would the version number be automated? Our current processes are pretty manual
Pretty much our policy is we support a platform until it goes EOL for the compiler/runtime. For some other tools, we require slightly higher dependencies (mostly newer Python versions). For binary packages, we currently support FC41, FC42, and EL10 (see https://github.com/chapel-lang/chapel/releases/tag/2.6.0). For fedora, we track whatever is not EOL since fedora moves fast. For EL, we drop the binary package when we can no longer build the binary package (usually when python3 gets too old) I would love to work with you on getting more of our preferred configurations into this spec that are already in the RPMs in our release, and maybe one day have those get replaced by RPMs that are just in the fedora repos. As far as getting this merged to chapel main, I think an important next step is to discuss it in our next project meeting. I think this is a big enough change that community input is important. You can comment on #27886 to queue this up. If you can't make that time, as a fallback I can try and champion this for you |
Additional tests that will make distributing Fedora RPMs easier.
To get it to work, someone with commit access will need to agree to make a Fedora account at:
https://accounts.fedoraproject.org/
and agree to Fedora Code of Conduct, then follow the steps at:
http://packit.dev/docs/guide#1-set-up-packit-integration
Closes #27878