-
-
Notifications
You must be signed in to change notification settings - Fork 699
Add .devcontainer/downstream-{voidlinux-latest,gentoo-overlay}
#36995
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: develop
Are you sure you want to change the base?
Conversation
|
Nice, so you are actually installing the distro package for sagemath... Too much latency for me (i.e. unusable) but nice idea. Most probably I won't be using this, but if there are issues on voidlinux side I can try to help. |
Yes, that's what "downstream" means in the name of this configuration. |
You mean the usability over the network? That's specific to Codespaces. People can also run this locally on their machines (in VS Code -> Open in devcontainer"), then there's no latency. |
Yes, I'm sure it would be better locally (still electron afaik...) |
|
With |
|
|
Adding the following should fix all the problems I see. I have to say |
|
Thanks a lot, this makes the container build succeed! In the next step, connecting to the container fails, but I'll see if I can fix this like I did for voidlinux by installing node.js etc. |
|
If you are interested, advanced use allows you to test a particular PR by setting a couple of variable before building. |
|
Again to mask or to unmask is the question here |
|
Forgot that bit, which is a bit redundant but makes sure that people know what they are doing when using sage-9999. |
|
@kiwifb This gets me to: |
|
Looks to me, like you have an old snapshot of the overlay, prior to 10.3.beta1 cschwan/sage-on-gentoo@38439ec three weeks ago. This particular patch has been changed from |
|
You may want to run a tree and overlay update as part of your container building. If your base container comes with should also do the trick. |
|
Thanks a lot! Turns out it does not have Afterwards, I'm getting another error: |
|
The synchronisation time depends on how long since you last synchronized the main tree. Alternatively, a tarball can be fetched. But this is not what kills things according to your log. I have to add some useflags I did not know about and no one reported on. Or some other things to deal with it by default. And it looks like the jmol flag is not taking. I have to figure out why. |
|
Where can I find documentation on sheerluck stage 4 image. I think something may have masked the jmol flag in there. |
|
@sheerluck Can you help? |
|
I see that in https://codeberg.org/sheerluck/sage-on-gentoo-stage4/src/branch/master/2023/Dockerfile_gentoo-23.12-py10-base#L90 @sheerluck disable the documentation but sage-doc is pulled by the Let's try the following: instead. I took care of |
|
The more I inspect the stage4 from @sheerluck and the more I think we should not start from there. There are certainly a lot of things missing from codeberg if you want to reproduce that stage4 yourself. And quite a few things that I find questionable. And if @sheerluck has an ebuild for coxeter, I would welcome it in the overlay and would create the corresponding |
|
@tornaria - this is the run of |
@kiwifb I'm happy to try out other approaches. In the current run, it seems to be in the middle of bootstrapping a gcc 13.2, which is not what I hoped for |
|
Yes, sheerluck is keywording a lot of stuff in unstable, synchronising made a newer unstable gcc (13.2.1_p20231216) available. |
|
I'll have to learn that ms json idiom to reproduce enough of what is needed as a bootstrap. |
|
https://github.com/gentoo/gentoo-docker-images there is sample Dockerfile to use a gentoo docker to build something else inside. But it has to be adapted to that json format. |
One can use a Dockerfile too; see the other devcontainer config added in this PR. |
I think you need user namespaces for xbps-uunshare to work (this is for the chroot where packages are built). Not sure if you can enable those while running in docker... You can try installing into Maybe that works inside docker (I don't know, maybe it also uses namespaces). The other chroot style that is used in the void linux CI is, I think, that surely works (it's the one used by void CI) but it says "for disposable containers" and I think it will somehow clobber the host system where it is run. I guess the "proper" solution is to launch one docker container just to build the sagemath package, then install the package in another container. See comment in I don't know either if you can run a docker container inside a docker container, if so you could try doing as explained in |
|
I pushed a number of things in the sage-on-gentoo overlay which makes some of the present stuff for Gentoo obsolete. Most of it was clean up. I am adding a few things I think may be useful and debating adding some docker files. sheerluck's containers are supposed to be for building a "stable" version of sage while we are targeting "develop". Sherluck's container is based on some monthly snapshot of Gentoo to build the current stable. Because we are targeting develop, I think I we should always start from the gentoo:latest, which would mean we would not need to update the tree and should always be on top of things in sage-on-gentoo. I'll confess to sometimes leaving a beta release in an unbuildable state from time to time. But I am usually good. |
|
Gentoo dockerfile starting point for sage-on-gentoo Some of the later bits could be transferred to the json file. Note that it is not useful to tell emerge about sage's dependencies as with [edit: change the keyword file from sage, which is for stable sage, and sage-devel which pulls sage's development branch.] |
|
Trying to build a sage-on-gentoo container from kubuntu so I have a good grasp of what tweaks are needed. I have to add a few useflags to the |
|
OK, I managed to almost build a sage-on-gentoo container on my kubuntu laptop with podman. I ran out of space after building the sage documentation. I am posting a slightly more documented dockerfile. It should also need a few less packages (but not much) compared to what I did. rust+python caused troubles for a bit but I tamed it. |
… as done in build/bin/write-dockerfile.sh
… --autounmask-write --autounmask
…on-gentoo into /etc/portage/* as suggested by Francois
…ckages needed by container remote
…suggested by Francois
…nd overlay update as suggested by Francois
…athematics/sage doc jmol' as suggested by Francois
|
Documentation preview for this PR (built with commit 5d4547e; changes) is ready! 🎉 |



To test:
https://github.com/codespaces/new?hide_repo_select=true&ref=voidlinux_devcontainer&repo=598219769&skip_quickstart=true, then select:
and use "Create Codespace"
We also add buttons for launching devcontainers to the installation guide.
Preview: https://deploy-preview-36995--sagemath.netlify.app/html/en/installation/linux
Similar to:
📝 Checklist
⌛ Dependencies