{"id":29013012,"url":"https://github.com/redox-os/cookbook","last_synced_at":"2025-06-25T19:05:56.055Z","repository":{"id":47315081,"uuid":"72459953","full_name":"redox-os/cookbook","owner":"redox-os","description":"Mirror of https://gitlab.redox-os.org/redox-os/cookbook","archived":false,"fork":false,"pushed_at":"2025-06-22T17:17:32.000Z","size":6226,"stargazers_count":39,"open_issues_count":7,"forks_count":28,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-06-22T17:27:01.527Z","etag":null,"topics":["automation","bsd","c","cpp","gnu","linux","package-management","package-system","port","porting","posix","programs","recipe","recipes","rust","software-ports"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redox-os.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2016-10-31T17:19:56.000Z","updated_at":"2025-06-22T16:17:35.000Z","dependencies_parsed_at":"2024-03-22T14:46:32.321Z","dependency_job_id":"ac2412da-003d-4a6f-9d1f-fcc53912d1e9","html_url":"https://github.com/redox-os/cookbook","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/redox-os/cookbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fcookbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fcookbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fcookbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fcookbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redox-os","download_url":"https://codeload.github.com/redox-os/cookbook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fcookbook/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261937036,"owners_count":23232846,"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":["automation","bsd","c","cpp","gnu","linux","package-management","package-system","port","porting","posix","programs","recipe","recipes","rust","software-ports"],"created_at":"2025-06-25T19:05:55.104Z","updated_at":"2025-06-25T19:05:56.026Z","avatar_url":"https://github.com/redox-os.png","language":"Rust","readme":"# Cookbook\n\nPackage system of Redox.\n\nThis repository contains the system source code and packages inside the `recipes` folder.\n\n- A recipe can be a software port or system package (they use `pkgar` or `tar.gz` formats).\n\n**Read [this](https://doc.redox-os.org/book/porting-applications.html) page before porting programs to Redox**\n\nIn order for this repository to be useful, it must be set up with an environment\nfrom the [redox](https://gitlab.redox-os.org/redox-os/redox) repository.\n\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n\n- [Recipe Categories](#recipe-categories)\n- [Search Recipes](#search-recipes)\n- [Package Policy](#package-policy)\n    - [Cross-Compilation](#cross-compilation)\n    - [ABI stability](#abi-stability)\n    - [Checksum](#checksum)\n    - [License](#license)\n- [Testing Area](#testing-area)\n    - [Suggestions for TODOs](#suggestions-for-todos)\n- [Repository Layout](#repository-layout)\n- [TODO](#todo)\n\n### Recipe Categories\n\nThe categories inside the `recipes` folder.\n\n- `core` - System components\n- `demos` - Programs with demos and examples\n- `dev` - Programs used for development and programming languages, like compilers and dependency managers\n- `doc` - Programs used for documentation\n- `emulators` - Console emulators or compatibility layers\n- `fonts` - Fonts and programs for fonts\n- `games` - Any kind of game\n- `graphics` - Programs used for graphics processing or production\n- `gui` - Orbital\n- `icons` - Icon packs\n- `libs` - Software with functions for other softwares, like OpenSSL\n- `math` - Programs used for calculations\n- `net` - Networking tools\n- `other` - Software that can't fit on other categories\n- `shells` - Terminal interpreters and extensions\n- `sound` - Software used for sound processing or production\n- `tests` - Software used to test other softwares\n- `tools` - Text editors, terminal tools and any other kind of tools\n- `tui` - Programs with a [terminal user interface](https://en.wikipedia.org/wiki/Text-based_user_interface)\n- `video` - Programs used for video playback, processing and production\n- `web` - World Wide Web browsers and tools\n- `wip` - Software that needs porting or incomplete recipes\n\n### Search Recipes\n\nClick in the button named \"Find file\" on the top of this repository to search for recipe names.\n\n### Package Policy\n\nBefore sending your recipe to upstream (to become a public package), you must follow these rules:\n\n#### Cross-Compilation\n\n- All recipes must use our cross-compilers, a Cookbook [template](https://doc.redox-os.org/book/porting-applications.html#templates) does this automatically but it's not always possible, study the build system of your program or library to find these options or patch the configuration files.\n- Don't hardcode the CPU architecture on the recipe script (this would break the multi-arch support).\n\n#### Tarballs\n\n- Don't use the auto-generated tarballs from GitHub, they aren't static and don't verify the archive integrity.\n\n#### ABI stability\n\n- Respect the ABI separation of the libraries, for example, if `openssl1` is available and some program need `openssl3`, you will create a recipe for `openssl3` and not rename the `openssl1`, as it will break the dependent packages.\n\n#### Checksum\n\n- If your recipe download a tarball, you will need to create a BLAKE3 hash for it. You can learn how to do it [here](https://doc.redox-os.org/book/porting-applications.html#create-a-blake3-hash-for-your-recipe).\n\n#### License\n\n- Don't package programs or libraries lacking a license.\n- Verify if the program has some license violation, in case of doubt ask us on the [chat](https://doc.redox-os.org/book/chat.html).\n- Non-free programs and assets should go to a subcategory of the `nonfree` category and be approved per license.\n\n### Testing Area\n\nWork-in-progress software ports goes to the `wip` category, be aware of these items during your packaging process:\n\n- A recipe is considered ready if it's mostly working inside of Redox.\n- All WIP recipes must have a `#TODO` on the beginning of the `recipe.toml` and explain what is missing.\n- BLAKE3 hashes for tarballs are optional (quick testing workflow)\n- Try to keep the recipe with the latest stable version of the program (the porting process can take months).\n- Once the recipe is ready, add the BLAKE3 hash if needed and move the folder to the appropriate category.\n\n#### Suggestions for TODOs\n\nThese TODOs improve the packagers cooperation and understanding.\n\n- `not compiled or tested` - It means that your recipe is fully configured and don't lack necessary dependencies.\n- `missing script for x, see insert-the-link-for-build-instructions-here` - It means that your recipe is lacking the cross-compilation script for some build system, where `x` is the build system name. After `see` you will insert the link for the build instructions of the program or library, it will help other packagers to insert the script for you.\n- `missing dependencies, see insert-the-link-for-required-dependencies-here` - It means that the `dependencies = []` section is incomplete.\n- `probably wrong script, see insert-the-link-for-build-instructions-here` - It means that you don't know if your script will work.\n- `probably wrong template, see insert-the-link-for-build-instructions-here` - It means that you don't know if the Cookbook template will work.\n- `probably missing dependencies, see insert-the-link-for-required-dependencies-here` - It means that you don't know if the required dependencies are satisfied.\n- `promote` - It means that the recipe is working and should be moved to the equivalent category at `cookbook/recipes`\n\nOther TODOs are specific and won't be covered on this list.\n\n### Repository Layout\n\n- `.cargo` - Cargo configuration.\n- `bin` - LLVM and pkg-config CPU targets.\n- `recipes` - Package configuration files.\n- `src` - Package system source code.\n\n### TODO\n\n- Convert old recipes to TOML, see [this](https://gitlab.redox-os.org/redox-os/cookbook/-/issues/174) tracking issue.\n- Remove the scripts after full TOML conversion.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredox-os%2Fcookbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredox-os%2Fcookbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredox-os%2Fcookbook/lists"}