JuliaPackaging / Yggdrasil
git clone https://github.com/JuliaPackaging/Yggdrasil.git
LLVMBootstrap-v23.1.1 · 1mo ago
🔥 on GitHub Trending today
Collection of builder repositories for BinaryBuilder.jl
+0
stars, 24h · #576
+0
stars, 7 days · #1,653
+1
stars, 30 days · #10,071
406
★ total
775
forks · 92 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageFortran
License—
Created2018-09-13 (8y ago)
Last pushtoday
Watchers9
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #5 daily in fortran
- 2026-10-20 — #3 monthly in fortran · +1 ★
- 2026-10-20 — #4 weekly in fortran
GitHub topics
Links
- GitHub: github.com/JuliaPackaging/Yggdrasil
- Homepage: https://binarybuilder.org
- Releases · Issues · Hacker News mentions
README excerpt
# Yggdrasil This repository contains recipes for building binaries for Julia packages using BinaryBuilder.jl. ## Contributing For detailed information about contributing, go to "CONTRIBUTING.md". For a quick overview, continue reading. To update the version to build for an existing recipe, simply open a PR to this repository making the required tweaks. This can be as simple as updating the version number and the source (e.g. for github-hosted resources, update the URL and hash for an archive, or the revision for a repository) of the relevant `build_tarballs.jl` file. Note that in some cases more changes may be needed. A real example for updating the version of a github-hosted resource, see this PR. The version number should be easy to find, and the URL + hash can be found by clicking the release, clicking the final commit in the release, and copying the information from the URL bar. To contribute a new recipe, you can either * use `BinaryBuilder.run_wizard()`, which will automatically open a pull request to this repository after a successful build for all requested platforms * Copy another build recipe using it as a template, and then open a manual pull request to this repository Yggdrasil builds the tarballs using `master` version of BinaryBuilder.jl, which requires Julia 1.3.0 or later versions. Note that this BinaryBuilder.jl version has some differences compared to v0.1.4 and the builders generated are slightly different. You are welcome to contribute builders written for BinaryBuilder.jl v0.1.4, but they will likely need minor adjustements. Buildkite CI is used to test that the builders can successfully produce the tarballs. If you prefer to test your manual buildscript before opening the pull request, we suggest installing `BinaryBuilder.jl` on Julia 1.3 or any following release and running `julia --color=yes build_tarballs.jl --verbose --debug` locally. On MacOS, you will need to have `docker` installed for this to work. ## Using the generated tarballs ### JLL packages The last versions of BinaryBuilder make use of the `Artifacts` system shipping in Julia 1.3. This means that BinaryBuilder no longer generates `build.jl` files that are placed into your Julia package's `deps/` folder, but instead generates whole Julia packages (known colloquially as "jll" packages) that are placed within the JuliaBinaryWrappers organization. Merged pull requests to Yggdrasil result in new versions of these wrapper packages being generated, uploaded and registered, allowing your client Julia code to simply invoke `using LibFoo_jll` to get ahold of your binaries with no need for a `Pkg.build()` step. (This will, of course, only be the case for Julia 1.3+). We encourage Julia developers to use JLL packages for their libraries. Read the documention of BinaryBuilder to learn how to use them. Here are a few examples of pull requests of Julia packages switching to using JLL package to provide the prebuilt binaries to the users: * Cairo.jl * FFTW.jl * GSL.jl * Gtk.j