{"id":15715618,"url":"https://github.com/homebrew/glibc-bootstrap","last_synced_at":"2025-10-20T04:30:40.787Z","repository":{"id":56761274,"uuid":"524462031","full_name":"Homebrew/glibc-bootstrap","owner":"Homebrew","description":"🥾 Bootstrap binaries for compiling glibc from source","archived":false,"fork":false,"pushed_at":"2024-10-16T18:59:08.000Z","size":107,"stargazers_count":9,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-29T12:25:30.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Homebrew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Homebrew","open_collective":"homebrew","patreon":"homebrew"}},"created_at":"2022-08-13T17:16:53.000Z","updated_at":"2024-10-16T18:59:11.000Z","dependencies_parsed_at":"2024-11-08T11:37:00.832Z","dependency_job_id":"014f67b4-bb83-40b1-9957-3a3b3ddb00fc","html_url":"https://github.com/Homebrew/glibc-bootstrap","commit_stats":{"total_commits":72,"total_committers":5,"mean_commits":14.4,"dds":0.4305555555555556,"last_synced_commit":"e87fd11f5ff1c0cb86188197121c52dd820e5739"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Homebrew%2Fglibc-bootstrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Homebrew%2Fglibc-bootstrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Homebrew%2Fglibc-bootstrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Homebrew%2Fglibc-bootstrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Homebrew","download_url":"https://codeload.github.com/Homebrew/glibc-bootstrap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237261778,"owners_count":19281310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T21:42:11.522Z","updated_at":"2025-10-20T04:30:40.451Z","avatar_url":"https://github.com/Homebrew.png","language":"Shell","funding_links":["https://github.com/sponsors/Homebrew","https://opencollective.com/homebrew","https://patreon.com/homebrew"],"categories":[],"sub_categories":[],"readme":"# glibc-bootstrap\n\nBootstrap binaries for compiling `glibc` from source.\n\n## Requirements\n\nTo run the binaries built by this workflow:\n\nFor x86-64 Linux: `glibc` 2.13 or newer, and x86-64 CPU architecture with support for `-march=core2` (defined [here](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html)).\n\nFor ARM64 (AArch64) Linux: `glibc` 2.17 or newer.\n\nTo build the binaries:\n\nA host machine capable of building and running Linux x86-64 or ARM64 Docker images.\n\n## Installation\n\nThe bootstrap binaries are downloaded automatically when building the `glibc` formula from source.  This will happen if the user is in a non-default prefix and has a host `glibc` that is older than the one in our CI image we use to build bottles on Linux.\n\n## Building binaries outside of GitHub Actions\n\nGitHub Actions is used to build the binaries in CI.  To build them locally:\n```\n# Clone the repository\ngit clone https://github.com/Homebrew/glibc-bootstrap\ncd glibc-bootstrap\n\n# Build the Docker image.\n# For ARM64, use Dockerfile.arm64 instead.\ndocker build --tag glibc-bootstrap --file Dockerfile.x86_64 .\n\n# Start the Docker image and leave it running the background so the binaries\n# can easily be copied out after they are built.\ndocker run --rm --detach --user linuxbrew --name glibc-bootstrap \\\n  --workdir /home/linuxbrew --volume $(pwd):/home/linuxbrew/glibc-bootstrap glibc-bootstrap sleep inf\n\n# Call a build-*.sh script to build a specific binary.  We use build-make.sh as an example.\ndocker exec glibc-bootstrap /bin/bash -c \"/home/linuxbrew/glibc-bootstrap/build-make.sh\"\n\n# Copy the binaries out of the container after they have been compiled.\ndocker cp glibc-bootstrap:/home/linuxbrew/bootstrap-binaries .\n```\n\n## Motivation\n\nThe `glibc` bottle is not relocatable and must be built from source if the user is in a non-default prefix.  While `glibc` has no runtime dependencies, it does have build dependencies which may be too new or unavailable to users without root access.  Rather than requiring the user to build these dependencies from source, we build them with GitHub Actions in this repository using a Linux image with an older version of `glibc` and a prefix of `/tmp/homebrew`.  Assuming the user has write access to `/tmp`, this approach guarantees that all users on actively maintained versions of `glibc` can install and run these binaries. The build dependency binaries are installed as resources to `/tmp/homebrew` and used to build `glibc` instead of the host toolchain.\n\n## Copyright\nCopyright (c) Homebrew maintainers.  See LICENSE.txt for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomebrew%2Fglibc-bootstrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhomebrew%2Fglibc-bootstrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhomebrew%2Fglibc-bootstrap/lists"}