{"id":19979456,"url":"https://github.com/msteinhoff/rpm-docker-buildchain","last_synced_at":"2026-04-09T08:54:55.278Z","repository":{"id":147881781,"uuid":"108052879","full_name":"msteinhoff/rpm-docker-buildchain","owner":"msteinhoff","description":"A Bash/Docker-based buildchain to create and publish RPM packages.","archived":false,"fork":false,"pushed_at":"2017-10-28T20:12:19.000Z","size":184,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-12T10:28:48.094Z","etag":null,"topics":["bash","docker","rpm","rpmbuild"],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/msteinhoff.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":"2017-10-23T23:40:08.000Z","updated_at":"2017-10-23T23:42:21.000Z","dependencies_parsed_at":"2023-05-27T19:30:23.484Z","dependency_job_id":null,"html_url":"https://github.com/msteinhoff/rpm-docker-buildchain","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Frpm-docker-buildchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Frpm-docker-buildchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Frpm-docker-buildchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msteinhoff%2Frpm-docker-buildchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msteinhoff","download_url":"https://codeload.github.com/msteinhoff/rpm-docker-buildchain/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241412987,"owners_count":19958995,"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":["bash","docker","rpm","rpmbuild"],"created_at":"2024-11-13T03:37:50.457Z","updated_at":"2026-04-09T08:54:50.241Z","avatar_url":"https://github.com/msteinhoff.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker RPM buildchain\n\nThis repository contains spec files, sources, and a Bash/Docker-based buildchain\nto create and publish RPM packages.  The buildchain helps with retrieval and\nvalidation of upstream sources, creating new RPM spec files from templates, and\nto build RPM packages in isolated docker containers.\n\n![Design](docs/design.png \"Design\")\n\n# Prerequisites\n\nDocker and Bash.\n\n# Usage\n\nYou should manage spec files under version control.  Either Copy the `build.sh`\nfile and the `rpmbuild` folder to a separate git repository, or if you are e.g.\ndeploying applications, in the same repo as the application.\n\n## Create new RPM package\n\nThe `rpmbuild` directory contains package definitions (`.spec` file) and sources\n(URLs with tar.gz files, service units, config files, etc.)  To create a new\nspec file and source directory for the package `foobar`, run\n\n    $ ./build.sh create-spec foobar\n\nThe spec file will be created at `rpmbuild/SPECS/foobar.spec`, together with its\nsource folder at `rpmbuild/SOURCES/foobar`.\n\nSpec files define URLs where the upstream source(s) can be found.  To prevent\nmalicious code from entering the system, downloaded sources are first\nverified.   When adding URL sources, a `.sha256`-suffixed file must be placed in\nthe package's source directory containing the sha256sum of the file.  The file\nmust be readable by `sha256sum -c`.\n\nAlso, downloaded sources must never be comitted to VCS (and a .gitignore file\nmust be added to each `SOURCES` folder to prevent this).\n\n**TODO**: use custom template with sourcedir/%{name} set\n\n## Download and verify sources for a package\n\nBefore a RPM can be built, its sources must be downloaded and placed in the\npackage's source directory.\n\nTo retrieve the sources for the package `foobar`, run\n\n    $ ./build.sh retrieve-sources foobar\n\nTo retrieve all sources, run\n\n    $ ./build.sh retrieve-sources\n\nAfter download, source files are automatically verified.\n\nOnce downloaded, sources will not be re-downloaded.  To force re-download\nsources for the `foobar` package, clean them first:\n\n    $ ./clean.sh source foobar\n\nThis will only remove files that are placed in the package's source directory\n`.gitignore` file.\n\n## Build package\n\nTo build an RPM for the `foobar` package, run\n\n    $ ./build.sh single-rpm foobar\n\nTo build all RPMs, run\n\n    $ ./build.sh all-rpms\n\n## Kill it with fire\n\nTo remove downloaded sources from all packages:\n\n    ./clean.sh sources\n\nTo remove downloaded sources from the `foobar` package:\n\n    ./clean.sh source foobar\n\nTo remove RPMs:\n\n    ./clean.sh rpms\n\nRemove everything:\n\n    ./clean.sh all\n\n## Using another build image\n\nBy default, rpm commands run in the `msteinhoff/rpm-docker-buildchain:latest`\ndocker image.  To use a different image, pass a custom `IMAGE` variable:\n\n    IMAGE=centos7-rpmcustom ./build.sh\n\n# Credits\n\nThis repo was inspired by Alan Franzoni's [fpm-within-docker][1].\n\n[1]: https://github.com/alanfranz/fpm-within-docker\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsteinhoff%2Frpm-docker-buildchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsteinhoff%2Frpm-docker-buildchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsteinhoff%2Frpm-docker-buildchain/lists"}