Skip to content
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

RFC: make package build reproducible #20629

Closed
wants to merge 1 commit into from

Conversation

bmwiedemann
Copy link

@bmwiedemann bmwiedemann commented Dec 30, 2020

without this patch, spack-0.16.0/lib/spack/docs/_build/texinfo/Spack.texi
varied in

@deffn {Data} spack.config.config_defaults = @{'config': @{'build_jobs': 4, 'build_stage': '$tempdir/spack@w{-}stage', 'checksum': True, 'concretizer': 'original', 'connect_timeout': 10, 'debug': False, 'dirty': False, 'verify_ssl': True@}@}

that caused resulting Spack.info and spack.1 files to differ as well.

It would probably be more appropriate to drop the build_jobs
default value when generating the Spack.texi file
but this code was hard to locate.

This PR was done while working on reproducible builds for openSUSE.

without this patch, spack-0.16.0/lib/spack/docs/_build/texinfo/Spack.texi
varied in
@deffn {Data} spack.config.config_defaults = @{'config': @{'build_jobs': 4, 'build_stage': '$tempdir/spack@w{-}stage', 'checksum': True, 'concretizer': 'original', 'connect_timeout': 10, 'debug': False, 'dirty': False, 'verify_ssl': True@}@}

that caused resulting Spack.info and spack.1 files to differ as well.

It would probably be more appropriate to drop the `build_jobs`
default value when generating the .texi file
but this code was hard to locate.
Copy link
Member

@adamjstewart adamjstewart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this change is something that we want, as it changes the default parallelism for all users on all systems.

@bmwiedemann
Copy link
Author

Maybe you know how/where the Spack.texi file is generated, so we could strip this number out?

@adamjstewart
Copy link
Member

It looks like this file is generated when you run:

$ cd spack-0.16.0/lib/spack/docs
$ make texinfo

I'm not familiar with OpenSUSE's Reproducible Builds effort, maybe you can give me more info on what its goal is. When you say "package build", do you mean installation of Spack, or the usage of Spack as a package manager to install other software? Building the documentation certainly isn't necessary for running Spack, so if you could remove that then that would be an easy way to resolve the unreproducible problem.

@bmwiedemann
Copy link
Author

We 'build' the spack sources into an openSUSE rpm package.
I think, our users appreciate having documentation. And it is probably not hard to have reproducible docs, when you look at this 1-line-patch. Worst case, we could do post-processing of the output, though the result would be more brittle.

@adamjstewart
Copy link
Member

adamjstewart commented Feb 11, 2021

Thanks for the explanation!

And it is probably not hard to have reproducible docs, when you look at this 1-line-patch.

This 1-line-patch completely breaks Spack's ability to adapt to different platforms. While my laptop has 4 cores, my supercomputer may have 64 or 128 cores, and I would like to take advantage of them when building software.

@becker33 @alalazo @scheibelp I recall some talk of removing this variable and instead relying on the config files to avoid config duplication. Another option would be to make this a hidden variable so it doesn't end up in the documentation. Thoughts on this?

@alalazo
Copy link
Member

alalazo commented Jun 12, 2021

Closing as stale. Feel free to reopen if you want to continue the discussion on this.

@alalazo alalazo closed this Jun 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants