{"id":13675935,"url":"https://github.com/ieugen/bin-guix","last_synced_at":"2025-08-11T16:09:11.455Z","repository":{"id":142504546,"uuid":"594885666","full_name":"ieugen/bin-guix","owner":"ieugen","description":"Binary packages for guix","archived":false,"fork":false,"pushed_at":"2024-10-15T10:35:33.000Z","size":42,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-21T06:05:00.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ieugen.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}},"created_at":"2023-01-29T23:08:01.000Z","updated_at":"2025-01-22T07:14:57.000Z","dependencies_parsed_at":"2025-03-27T18:45:53.881Z","dependency_job_id":"12b04685-fa36-43ec-b39b-ca1b9dc50cac","html_url":"https://github.com/ieugen/bin-guix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ieugen/bin-guix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ieugen%2Fbin-guix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ieugen%2Fbin-guix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ieugen%2Fbin-guix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ieugen%2Fbin-guix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ieugen","download_url":"https://codeload.github.com/ieugen/bin-guix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ieugen%2Fbin-guix/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269916539,"owners_count":24495924,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-02T12:01:06.134Z","updated_at":"2025-08-11T16:09:11.427Z","avatar_url":"https://github.com/ieugen.png","language":"Scheme","funding_links":[],"categories":["Channels"],"sub_categories":[],"readme":"# binary-guix\n\nBinary packages for guix.\nThis is a guix channel that aims to package binary releases of popular applications to make them available in guix.\n\nPeople should use native guix packages (packages that are built from sources) whenever they get the chance.\nBut let's face it, it's not always possible.\nFor situations when your favorite app is not packages for guix and has linux binary release, bin-guix channel should provide an escape hatch.\n\n## Why binary apps\n\nI do a lot of devops tinkering and I need specific tools that are not available (or up to date) from Guix or the GNU/Linux distribution of choice (Debian in my case).\n\nThis led me to use a bunch of tooling to fix this.\nSome of the tooling I use/used for package installation is in the list bellow: \n- distribution native package manager: apt / apt-get\n- nvm - node version manager to install node.js releases\n- sdkman.io - version manager to install specific java / jdk releases\n- flatpak - for gui apps\n- snaps - I prefer flatpak but sometimes there is no choice\n- docker containers - mostly for services but also for some cli apps \n- manual installation scripts\n\nNOTE: Most packaged apps are (should be) statically linked to work without issues. This is the case with most apps available as a single binary.\n\n I faced issues when working with other people of setting up new computers or servers.\n It's a lot of work to keep every system with all the required tools installed and up to date.\n \n This is especially true when working in a team and you have many developers. \n \n It would be nice to have a single tool that can produce the environment that people can use to get their job done.\n \n I believe that Guix is a tool that can be used for such a thing.\n \n\n## How to use this channel\n\n- Add bin-guix channel to your list of channels\n- Run `guix pull`\n- Install packages\n\nOn Debian, my channels configuration file is in `$HOME/.config/guix/channels.scm`\nIt might be different on your distribution.\nWhen in doubt see https://guix.gnu.org/manual/en/html_node/Specifying-Additional-Channels.html \n\nI believe the order is important and since bin-guix is before `%default-channels` packages \nwill be pulled from bin-guix first if they have the same name.\n\n```scheme\n(cons* \n       ;;  My other channels here\n       (channel\n        (name 'bin-guix)\n        (url \"https://github.com/ieugen/bin-guix\")\n        (branch \"main\")\n        ;;Enable signature verification:\n        ;;TBA\n        )\n       %default-channels)\n```\n\n\n## Development\n\nYou can add new packages as `*.scm` (scheme) files under `bin-guix/packages`. \nSee the definitions for the other packags as examples.\n\nBefore we begin the package, download a release and get the hash:\n\n``` shell\n# Use `guix download` to fetch file and compute hash\nguix download  https://github.com/oras-project/oras/releases/download/v0.16.0/oras_0.16.0_linux_amd64.tar.gz  --hash=sha256\n\n```\n\nThen you can create your `bin-guix/packages/\u003cname\u003e.scm` module that contains the package definition.\nOnce you added a new package, test it works locally then commit and push.\n\n``` shell\n# Build a package from definition, keeping directory if build fails\nguix build -L . -K babashka\n\n# Force rebuild a package\nguix build --check --no-grafts babashka\n\n# To \"clean\" remove the package from guix run:\nguix gc -D \u003cSTORE-PATH\u003e\n\n```\n\nhttps://www.alexandrostheodotou.com/guix-packagers-guide.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fieugen%2Fbin-guix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fieugen%2Fbin-guix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fieugen%2Fbin-guix/lists"}