Skip to content

msolve tarball got ./configure - sha*s are changed #40094

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

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

dimpase
Copy link
Member

@dimpase dimpase commented May 13, 2025

As reported by @mezzarobba on #39738 (comment)

Upstream was quick to update the tarball

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

@mezzarobba
Copy link
Member

Now it installs correctly if I manually download the upstream tarball, but (since the version number hasn't changed) sage -i finds an old tarball from sage 10.6 and stops there. I am still giving positive review to this ticket since my understanding is that this issue will solve itself with the 10.7 release, but this is not ideal.

[msolve-0.7.5] WARNING [tarball|download:164]: Invalid checksum; ignoring cached file /home/marc/co/sage/upstream/msolve-0.7.5.tar.gz
[msolve-0.7.5] Attempting to download package msolve-0.7.5.tar.gz from mirrors
[msolve-0.7.5] https://github.com/sagemath/sage/releases/download/10.7/msolve-0.7.5.tar.gz
[msolve-0.7.5] [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
[msolve-0.7.5] ERROR [transfer|run:135]: [Errno socket error] [Errno 404] Not Found: '//github.com/sagemath/sage/releases/download/10.7/msolve-0.7.5.tar.gz'
[msolve-0.7.5] Exception ignored in: <http.client.HTTPResponse object at 0x7f6f7befe590>
[msolve-0.7.5] Traceback (most recent call last):
[msolve-0.7.5]   File "/usr/lib/python3.13/http/client.py", line 432, in close
[msolve-0.7.5]     super().close() # set "closed" flag
[msolve-0.7.5]   File "/usr/lib/python3.13/http/client.py", line 445, in flush
[msolve-0.7.5]     self.fp.flush()
[msolve-0.7.5] ValueError: I/O operation on closed file.
[msolve-0.7.5] https://github.com/sagemath/sage/releases/download/10.6/msolve-0.7.5.tar.gz
[msolve-0.7.5] [Exception ignored in: <http.client.HTTPResponse object at 0x7f6f7bd56230>
[msolve-0.7.5] Traceback (most recent call last):
[msolve-0.7.5]   File "/usr/lib/python3.13/http/client.py", line 432, in close
[msolve-0.7.5]     super().close() # set "closed" flag
[msolve-0.7.5]   File "/usr/lib/python3.13/http/client.py", line 445, in flush
[msolve-0.7.5]     self.fp.flush()
[msolve-0.7.5] ValueError: I/O operation on closed file.
[msolve-0.7.5] ......................................................................]
[msolve-0.7.5] Traceback (most recent call last):
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/sage-package", line 40, in <module>
[msolve-0.7.5]     run()
[msolve-0.7.5]     ~~~^^
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/../sage_bootstrap/cmdline.py", line 538, in run
[msolve-0.7.5]     app.download_cls(*args.package_class,
[msolve-0.7.5]     ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]                      has_files=args.has_files, no_files=args.no_files,
[msolve-0.7.5]                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]                      exclude=args.exclude,
[msolve-0.7.5]                      ^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]                      allow_upstream=args.allow_upstream,
[msolve-0.7.5]                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]                      on_error=args.on_error)
[msolve-0.7.5]                      ^^^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/../sage_bootstrap/app.py", line 337, in download_cls
[msolve-0.7.5]     pc.apply(download_with_args)
[msolve-0.7.5]     ~~~~~~~~^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/../sage_bootstrap/expand_class.py", line 126, in apply
[msolve-0.7.5]     function(package_name, *args, **kwds)
[msolve-0.7.5]     ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/../sage_bootstrap/app.py", line 329, in download_with_args
[msolve-0.7.5]     self.download(package, allow_upstream=allow_upstream)
[msolve-0.7.5]     ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/../sage_bootstrap/app.py", line 315, in download
[msolve-0.7.5]     package.tarball.download(allow_upstream=allow_upstream)
[msolve-0.7.5]     ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[msolve-0.7.5]   File "/home/marc/co/sage/build/bin/../sage_bootstrap/tarball.py", line 191, in download
[msolve-0.7.5]     raise ChecksumError('checksum does not match')
[msolve-0.7.5] sage_bootstrap.tarball.ChecksumError: checksum does not match
[msolve-0.7.5] ************************************************************************
[msolve-0.7.5] Error downloading tarball of msolve
[msolve-0.7.5] ************************************************************************

@dimpase
Copy link
Member Author

dimpase commented May 16, 2025

If we manually replace old msolve tarball we host with the new one, then Sage 10.6 will throw an error, of a different type. Another option is to host the new tarball elsewhere, bump the package version, etc - but this is proliferating different kind of a headache.

@vbraun
Copy link
Member

vbraun commented May 17, 2025

This is bad, it really should be possible to build both 10.6 and 10.7 at the same time. Maybe upstream can be convinced to go with the flow and bump the version when changing the tarball? Otherwise I'd suggest we host our own "upstream" for this. I've uploaded the new (modified) tarball at

$ curl http://files.sagemath.org/spkg/upstream/msolve/msolve-0.7.5-unofficial-p1.tar.gz | sha256sum
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1457k  100 1457k    0     0  1017k      0  0:00:01  0:00:01 --:--:-- 1017k
60c5db22778ebf8b19ee2fb49442be453e259ec6c77c8b2eb2e1b256deb19556  -

and we can that use temporarily in checksums.ini

@dimpase
Copy link
Member Author

dimpase commented May 17, 2025

@vbraun - 10.6 is broken here - do you really suggest a website-side hack to serve a tarball with a different hash than the one asked for?

Because I really don't understand how you are going to fix the unfixable fact that in 10.6 the tarball hash is identifying a tarball which does not work.

This PR doesn't change the fact msolve does not build on 10.6. Your "needs work" requires a time machine, to bring us to pre-10.6 time, to get it done.

@vbraun
Copy link
Member

vbraun commented May 18, 2025

We don't download directly from the source URL unless explictly instructed (or fallback if there is no mirror), rather we download from the sagemath mirrors. Right now you can build 10.6 just fine. If we modify the tarball in place on the mirror network then 10.6 will no longer build.

@dimpase
Copy link
Member Author

dimpase commented May 18, 2025

hmm, how do you build 10.6 ? the checksums are for the tarball without ./configure

this PR fixes the bug in 10.6.

@vbraun
Copy link
Member

vbraun commented May 18, 2025

I mean building 10.6 by cloning the github repo and running ./configure && make, which I presume most do. Including the CI. This then downloads tarballs from the sagemath mirrors.

Downloading the self-contained sagemath tarball would still work of course, though I don't know if many people still do that.

@dimpase
Copy link
Member Author

dimpase commented May 18, 2025

I don't understand how this is possible. 10.6 was released with an unconfigured msolve 0.7.5 tarball, its hash hardwired into checksum.ini.
When you build msolve in Sage, the tarball is downloaded, checksums checked, it's untarred, and built. But the building fails, as the tarball does not have ./configure in it.

msolve in an optional package, so it's not built by default, thus we are not swamped with reports of this error.

@vbraun
Copy link
Member

vbraun commented May 18, 2025

Ah ok, if its an optional package then I don't really care

vbraun pushed a commit to vbraun/sage that referenced this pull request May 18, 2025
sagemathgh-40094: msolve tarball got ./configure - sha*s are changed
    
As reported by @mezzarobba on
sagemath#39738 (comment)

Upstream was quick to update the tarball



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40094
Reported by: Dima Pasechnik
Reviewer(s):
@dimpase
Copy link
Member Author

dimpase commented May 23, 2025

@vbraun - there is a new msolve version out now. Should I update this PR to use it, or do a new PR?

vbraun pushed a commit to vbraun/sage that referenced this pull request May 24, 2025
sagemathgh-40094: msolve tarball got ./configure - sha*s are changed
    
As reported by @mezzarobba on
sagemath#39738 (comment)

Upstream was quick to update the tarball



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40094
Reported by: Dima Pasechnik
Reviewer(s):
vbraun pushed a commit to vbraun/sage that referenced this pull request May 26, 2025
sagemathgh-40094: msolve tarball got ./configure - sha*s are changed
    
As reported by @mezzarobba on
sagemath#39738 (comment)

Upstream was quick to update the tarball



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40094
Reported by: Dima Pasechnik
Reviewer(s):
vbraun pushed a commit to vbraun/sage that referenced this pull request May 28, 2025
sagemathgh-40094: msolve tarball got ./configure - sha*s are changed
    
As reported by @mezzarobba on
sagemath#39738 (comment)

Upstream was quick to update the tarball



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40094
Reported by: Dima Pasechnik
Reviewer(s):
vbraun pushed a commit to vbraun/sage that referenced this pull request May 29, 2025
sagemathgh-40094: msolve tarball got ./configure - sha*s are changed
    
As reported by @mezzarobba on
sagemath#39738 (comment)

Upstream was quick to update the tarball



### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#40094
Reported by: Dima Pasechnik
Reviewer(s):
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.

3 participants