{"id":13994296,"url":"https://github.com/FreeCAD/homebrew-freecad","last_synced_at":"2025-07-22T19:31:39.841Z","repository":{"id":16034983,"uuid":"18778796","full_name":"FreeCAD/homebrew-freecad","owner":"FreeCAD","description":"Homebrew recipes for FreeCAD","archived":false,"fork":false,"pushed_at":"2024-11-09T23:24:08.000Z","size":34089,"stargazers_count":54,"open_issues_count":21,"forks_count":34,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-09T23:45:13.646Z","etag":null,"topics":["formula","freecad","homebrew","homebrew-freecad","homebrew-recipes","macos","macosx"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FreeCAD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":"audit_exceptions/.gitkeep","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-04-14T22:17:33.000Z","updated_at":"2024-11-09T23:20:00.000Z","dependencies_parsed_at":"2024-01-01T09:09:02.603Z","dependency_job_id":"ce9c76ef-bc35-4a77-aba5-83be44e03a65","html_url":"https://github.com/FreeCAD/homebrew-freecad","commit_stats":{"total_commits":754,"total_committers":23,"mean_commits":32.78260869565217,"dds":0.3275862068965517,"last_synced_commit":"52f707a3506cf8233129ed9e6e750f4288f32945"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2Fhomebrew-freecad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2Fhomebrew-freecad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2Fhomebrew-freecad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2Fhomebrew-freecad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FreeCAD","download_url":"https://codeload.github.com/FreeCAD/homebrew-freecad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227166620,"owners_count":17740950,"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":["formula","freecad","homebrew","homebrew-freecad","homebrew-recipes","macos","macosx"],"created_at":"2024-08-09T14:02:48.564Z","updated_at":"2024-11-29T16:30:57.137Z","avatar_url":"https://github.com/FreeCAD.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"\u003c!-- use html tags to center content --\u003e\n\n\u003ch2 align=\"center\"\u003ehomebrew-freecad\u003c/h2\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003c!-- homebrew logo --\u003e\n\u003cimg src=\"https://brew.sh/assets/img/homebrew.svg\" width=\"48\" alt=\"homebrew logo\"\u003e\n\n\u003c!-- freecad logo --\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/FreeCAD/FreeCAD/main/src/Gui/Icons/freecad.svg\" width=\"48\" alt=\"freecad logo\"\u003e\n\u003c/div\u003e\n\n\u003c!-- add a little spacing --\u003e\n\u003cbr /\u003e\n\n**FreeCAD** is a Free (as in Libre) multiplatform Open Source Parametric 3D CAD software.\u003cbr /\u003e\n**Homebrew** is a MacOSX Package Manager.\n\n## Overview\n\nThe primary and frequent use case for this formula is for developers to conveniently install all the required FreeCAD dependencies to support FreeCAD development.\n\n#### NOTE: If you are looking for the current macOS builds, please download the latest build from [GitHub](https://github.com/FreeCAD/FreeCAD/releases)\n\n\u003e Alternatively there are versions of FreeCAD \u0026 friends built using conda, there are a weekly releases published [**here**](https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds)\n\n## Prerequisites\n\nInstall [homebrew](http://brew.sh)\n\n## Installing FreeCAD dependencies (FreeCAD developers)\n\nDevelopers may find it convenient to simply install the pre-requisites prior to cloning the FreeCAD repo for development builds.\n\n```sh\nbrew tap freecad/freecad\nbrew install --only-dependencies freecad/freecad/freecad\n```\n\n#### Install flags\n\nBy default, freecad is installed as a binary to be launched from a CLI. ~~To also create a .app bundle use `--with-macos-app`.~~\n\n## Building The Current Release Version of FreeCAD\n\n\u003e due to multiple freecad formula being setup from various taps, ie. **homebrew-cask** it's better to explicitly reference the freecad formula from this tap\n\n```sh\nbrew tap freecad/freecad\nbrew install freecad/freecad/freecad\n```\n\n## Building HEAD Version of FreeCAD\n\n```sh\nbrew install --HEAD freecad/freecad/freecad\n```\n\n## Continuous Integration Support\n\nthe formula in this tap are tested with homebrew test-bot using the workflow files defined within this repo.\n\n~~The Travis CI system uses this freecad formula to build and test FreeCAD every time~~\n~~a change is made to the FreeCAD/FreeCAD repo meaning that the formula is very well~~\n~~tested itself.~~\n\n## Contributing 🤝\n\n\u003ca id=\"contributing\"\u003e\u003c/a\u003e\n\nSubmitting PR's for this repo can go along way, that's not to say it's an easy task.\nFollowing the below guidelines will help all that use this repo.\n\n1. when submitting a PR, _rebase_ all commits into a single commit, **please \u0026 thank you** 🙏\n\u003e homebrew test-bot currently will fail ❌ to publish a bottle\n\u003e if a PR contains more than one commit. A quick solution is to rebase, and squash\n\u003e all unneeded commits thus making the brew test-bot happy. [learn more][lnk3]\n2. when submitting a PR that is updating or adding a new formula file, only add or\nchange one formula file in a PR.\n\u003e brew test-bot will fail if a PR contains two distinct formula files being edited\n\u003e and will be unable to publish the bottles for the edited formula.\n  - looking at how upstream homebrew-core manages PRs, each PR only edits one formula\n  file at a time.\n\nNot all PR's require running through the CI, one example would be updating this README file.\nIf a PR does not update a formula file within this repo add the following `[no ci]` to the\ncommit message allowing the PR to be merged into the repo without running CI checks.\n\n## Maintenance 🧹\n\n\u003ca id=\"maintenance\"\u003e\u003c/a\u003e\n\nFor maintainers of this repo, [I][lnk1] have setup this repo using self-hosted runners\nfor macOS _Mojave_, _Catalina_, and _Big Sur_ (Intel only) versions of macOS.\nThese self-hosted runners all run on a late macbook pro 2013 model that runs archlinux\nallowing the virtual machines to be started and stopped thanks to qemu+kvm.\n\nSelf-hosted runners will [**disappear**][lnk2] from a repo on GitHub if they are not used\nwithin **30 days**. However, a new self-hosted runner can be readded\nto this repo using github's web based UI. After the runner is added and labeled\nproperly than the runner can pick up the job, and the status of the job can be viewed\nfrom the _actions_ tab at the top of github web ui.\n\n\u003e [I've][lnk1] had to readd macos vm's several times due to inactivity, but isn't an issue as\n\u003e the self-hosted runner picks up where it left off. More information about this nuance\n\u003e can be provided upon request.\n\nRecently a [CI action][lnk5] has been created to check the online status of the self-hosted runners. An\nemail will be sent to the maintainer designated in the github action.\n\nA great resource for learning how other Operating Systems (GNU+Linux distros) assemble the dependencies for freecad\ncan be seen at [repology.org][lnk6]\n\n[lnk1]: \u003chttps://github.com/ipatch\u003e\n[lnk2]: \u003chttps://docs.github.com/en/actions/hosting-your-own-runners/removing-self-hosted-runners#removing-a-runner-from-a-repository\u003e\n[lnk3]: \u003chttps://github.com/Homebrew/discussions/discussions/3318\u003e\n[lnk5]: \u003chttps://github.com/FreeCAD/homebrew-freecad/blob/ebbc77b7fbf7ff1230ebc5597efe99fbea9c5cf4/.github/workflows/validate_runner_status.yml\u003e\n[lnk6]: \u003chttps://repology.org\u003e\n\n### Maintenance / creating patch files for formula\n\n\u003ca id=\"maintenance-patch-file\"\u003e\u003c/a\u003e\n\nCreating patch files for formula contained within this repo can be a difficult task, so the below steps aim to aid\nin the creation of patch files.\n\n#### .. / .. / example\n\nWhen freecad 0.20.1 was released it did not have support for python 3.11 however a [consolidated commit][lnk7] has been made\nthat should allow the 0.20.1 release to build and run against python 3.11\n\n\u003e the below video demonstrates how I created a patch file for python 3.11 support\n\n\u003c!-- could not figure out how to host the mp4 file in the repo, resorted to using a personal gist --\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cvideo src=\"https://private-user-images.githubusercontent.com/613805/293290218-65e5e959-d3a8-4cc0-98be-45a77eaac632.mp4\" /\u003e\n\u003c/div\u003e\n\n[lnk7]: \u003chttps://github.com/FreeCAD/FreeCAD/commit/639546574e2d4b468f125e0c17d67af73156c9da\u003e\n\n## TODOs\n\n\u003ca id=\"todos\"\u003e\u003c/a\u003e\n\n- [ ] presently i can not get the 0.21.2 freecad release to build using the upstream homebrew-core opencascade at v7.8.x\n- [ ] publish bottles for older versions of macos ie. ~~mojave~~ \u0026 high sierra, there is an active discussion about the topic [here][lnk4]\n\n[lnk4]: \u003chttps://github.com/Homebrew/discussions/discussions/2340\u003e\n\n## Open Issues\n\n\u003ca id=\"open-issues\"\u003e\u003c/a\u003e\n\nSee [GitHub Issues][ghi]\n\n[ghi]: \u003chttps://github.com/FreeCAD/homebrew-freecad/issues\u003e\n\n## Recognition\n\n\u003ca id=\"recognition\"\u003e\u003c/a\u003e\n\n[Sam Nelson](https://github.com/sanelson) originally developed the freecad homebrew recipe repo circa April 2014\nand [transferred it to the FreeCAD organization](https://github.com/FreeCAD/homebrew-freecad/issues/20) in October 2016.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFreeCAD%2Fhomebrew-freecad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFreeCAD%2Fhomebrew-freecad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFreeCAD%2Fhomebrew-freecad/lists"}