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

Improve README.maintainer.md to also explain how to build a custom (new) version of a JLL #615

Open
fingolfin opened this issue Dec 8, 2022 · 4 comments

Comments

@fingolfin
Copy link
Member

fingolfin commented Dec 8, 2022

Requested by @fieker

I think this would amount to something roughly like this (??)

UPDATED based on comments by @thofma

git clone https://github.com/JuliaPackaging/Yggdrasil
cd Yggdrasil

# record the base path
BASEPATH=$(pwd)

# ensure building macOS binaries will work (you can omit this if you only
# want to build for Linux)
export BINARYBUILDER_AUTOMATIC_APPLE=true

# change into the directory containing the `build_tarballs.jl` we want to build
cd PATH/TO/PACKAGE

# ensure BinaryBuilder etc. is installed in the right version
# (ideally use the same Julia version as specified in `.ci/Manifest.toml`)
julia --project=$BASEPATH/.ci -e 'using Pkg; Pkg.instantiate()'

# get list of platforms etc.
julia --project=$BASEPATH/.ci build_tarballs.jl --help

# build and deploy the JLL locally. If you omit the comma-separated
# list of PLATFORMS then it will build for *all* platforms
julia --project=$BASEPATH/.ci build_tarballs.jl PLATFORMS --deploy=local
@thofma
Copy link
Collaborator

thofma commented Dec 8, 2022

looks good

@thofma
Copy link
Collaborator

thofma commented Dec 11, 2022

Ah, no, not quite right. One has to run the build_tarballs.jl from within the P/path_to directory. Because the local patches have a relative path with respect to the build_tarballs.jl. (I always run into this with flint)

And run with BINARYBUILDER_AUTOMATIC_APPLE=true.

@fingolfin
Copy link
Member Author

Updated according to @thofma's helpful comments, thank you

@fingolfin
Copy link
Member Author

Started adding this in PR #667.

But now I thought about it and wonder if we can't also make this (overriding Singular_jll with a custom built variant of Singular) wouldn't be much easier (and faster) if we instead provided instructions and/or a script that follows one of the methods described at https://docs.binarybuilder.org/stable/jll/#Overriding-the-artifacts-in-JLL-packages -- dev_jll() sound pretty nice, and also the use of "preferences".

I mention the possibility for a script just because in order to build Singular in a way that makes it possible to use the result as replacement in the JLL may require to use configure arguments close (or ideally: identical) to what we use in S/Singular/build_tarballs.jl. For that a simple script might be useful...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants