{"id":37183144,"url":"https://github.com/packagefoundation/yap","last_synced_at":"2026-01-14T21:08:53.917Z","repository":{"id":38021442,"uuid":"421386817","full_name":"PackageFoundation/yap","owner":"PackageFoundation","description":"Package software with ease 📦 Versatile deb, rpm and apk packager fueled by PKGBUILD specfiles and golang","archived":false,"fork":false,"pushed_at":"2024-03-04T04:23:25.000Z","size":201,"stargazers_count":12,"open_issues_count":12,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-19T05:41:09.625Z","etag":null,"topics":["alpine-packaging","apk-packaging","artifacts","debian-packaging","packages","packaging","rpm-packaging","universal-packager","yet-another-packager"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PackageFoundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-26T10:55:14.000Z","updated_at":"2023-12-06T09:42:13.000Z","dependencies_parsed_at":"2023-02-19T04:31:01.433Z","dependency_job_id":"4d7b7c34-cf5d-42cc-928e-1807a3b5237e","html_url":"https://github.com/PackageFoundation/yap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PackageFoundation/yap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PackageFoundation%2Fyap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PackageFoundation%2Fyap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PackageFoundation%2Fyap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PackageFoundation%2Fyap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PackageFoundation","download_url":"https://codeload.github.com/PackageFoundation/yap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PackageFoundation%2Fyap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["alpine-packaging","apk-packaging","artifacts","debian-packaging","packages","packaging","rpm-packaging","universal-packager","yet-another-packager"],"created_at":"2026-01-14T21:08:53.175Z","updated_at":"2026-01-14T21:08:53.907Z","avatar_url":"https://github.com/PackageFoundation.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yap\n\n![yap-logo](https://raw.githubusercontent.com/M0Rf30/yap/main/images/yap.png)\n\n[![report card](https://img.shields.io/badge/report%20card-a%2B-ff3333.svg?style=flat-square)](http://goreportcard.com/report/packagefoundation/yap)\n[![View examples](https://img.shields.io/badge/learn%20by-examples-0077b3.svg?style=flat-square)](https://github.com/packagefoundation/yap/tree/main/examples)\n\nYap allows building packages for multiple GNU/Linux distributions with a\nconsistent package spec format.\n\nBuilds are done on Docker containers without needing to setup any virtual\nmachines or install any software other than Docker.\n\nAll packages are built using a simple format that is similar to\n[PKGBUILD](https://wiki.archlinux.org/index.php/PKGBUILD) from Arch Linux.\n\nEach distribution is different and will still require different build\ninstructions, but a consistent build process and format can be used for all\nbuilds.\n\nDocker only supports 64-bit containers, Yap can't be used to build packages\n32-bit packages.\n\n## Initialize\n\nIt is recommended to build the OCI images locally instead of pulling each image\nfrom the Docker Hub. A script is located in the docker directory to assist with\nthis. Always run the `clean.sh` script to clear any existing yap images.\nBuilding the images can take several hours.\n\n```sh\ncd ~/go/src/github.com/packagefoundation/yap/docker\nsh clean.sh\nsh build.sh\n```\n\n## Format\n\n```sh\nkey=\"example string\"\nkey=`example \"quoted\" string`\nkey=(\"list with one element\")\nkey=(\n    \"list with\"\n    \"multiple elements\"\n)\nkey=\"example ${variable} string\"\nkey__ubuntu=\"this will apply only to Ubuntu  builds\"\n```\n\n## Builtin Variables\n\n| key         | value                                                             |\n| ----------- | ----------------------------------------------------------------- |\n| `${srcdir}` | `Source` directory where all sources are downloaded and extracted |\n| `${pkgdir}` | `Package` directory for the root of the package                   |\n\n## Spec file - the PKGBUILD\n\n| key                | type     | value                                                                                                                                                                                                                                                                                                                          |\n| ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `pkgname`          | `string` | Package name                                                                                                                                                                                                                                                                                                                   |\n| `pkgver`           | `string` | Package version                                                                                                                                                                                                                                                                                                                |\n| `pkgrel`           | `string` | Package release number                                                                                                                                                                                                                                                                                                         |\n| `pkgdesc`          | `string` | Short package description                                                                                                                                                                                                                                                                                                      |\n| `maintainer`       | `string` | Package maintainer                                                                                                                                                                                                                                                                                                             |\n| `arch`             | `list` | Package architecture, can be `all` or `amd64`                                                                                                                                                                                                                                                                                  |\n| `license`          | `list`   | List of licenses for packaged software                                                                                                                                                                                                                                                                                         |\n| `section`          | `string` | Section for package. Built in sections available: `admin` `localization` `mail` `comm` `math` `database` `misc` `debug` `net` `news` `devel` `doc` `editors` `electronics` `embedded` `fonts` `games` `science` `shells` `sound` `graphics` `text` `httpd` `vcs` `interpreters` `video` `web` `kernel` `x11` `libdevel` `libs` |\n| `priority`         | `string` | Package priority, only used for Debian packages                                                                                                                                                                                                                                                                                |\n| `url`              | `string` | Package url                                                                                                                                                                                                                                                                                                                    |\n| `depends`          | `list`   | List of package dependencies                                                                                                                                                                                                                                                                                                   |\n| `optdepends`       | `list`   | List of package optional dependencies                                                                                                                                                                                                                                                                                          |\n| `makedepends`      | `list`   | List of package build dependencies                                                                                                                                                                                                                                                                                             |\n| `provides`         | `list`   | List of packages provided                                                                                                                                                                                                                                                                                                      |\n| `conflicts`        | `list`   | List of packages conflicts                                                                                                                                                                                                                                                                                                     |\n| `sources`          | `list`   | List of packages sources. Sources can be url or paths that are relative to the PKGBUILD                                                                                                                                                                                                                                        |\n| `debconf_config`   | `string` | File used as debconf config, only used for Debian packages                                                                                                                                                                                                                                                                     |\n| `debconf_template` | `string` | File used as debconf template, only used for Debian packages                                                                                                                                                                                                                                                                   |\n| `hashsums`         | `list`   | List of `sha256`/`sha512` hex hashes for sources, hash type is determined by the length of the hash. Use `SKIP` to ignore hash check                                                                                                                                                                                           |\n| `backup`           | `list`   | List of config files that shouldn't be overwritten on upgrades                                                                                                                                                                                                                                                                 |\n| `build`            | `func`   | Function to build the source, starts in srcdir                                                                                                                                                                                                                                                                                 |\n| `package`          | `func`   | Function to package the source into the pkgdir, starts in srcdir                                                                                                                                                                                                                                                               |\n| `preinst`          | `func`   | Function to run before installing                                                                                                                                                                                                                                                                                              |\n| `postinst`         | `func`   | Function to run after installing                                                                                                                                                                                                                                                                                               |\n| `prerm`            | `func`   | Function to run before removing                                                                                                                                                                                                                                                                                                |\n| `postrm`           | `func`   | Function to run after removing                                                                                                                                                                                                                                                                                                 |\n\n### Build targets\n\n| target           | value                     |\n| ---------------- | ------------------------- |\n| `alpine`         | all Alpine Linux releases |\n| `arch`           | all Arch Linux releases   |\n| `astra`          | all Astra Linux releases  |\n| `amazon`         | all Amazon Linux releases |\n| `centos`         | all CentOS releases       |\n| `debian`         | all Debian releases       |\n| `fedora`         | all Fedora releases       |\n| `oracle`         | all Oracle Linux releases |\n| `ubuntu`         | all Ubuntu releases       |\n| `amazon-1`       | Amazon Linux 1            |\n| `amazon-2`       | Amazon Linux 2            |\n| `debian-jessie`  | Debian Jessie             |\n| `debian-stretch` | Debian Stretch            |\n| `debian-buster`  | Debian Buster             |\n| `fedora-35`      | Fedora 35                 |\n| `oracle-8`       | Oracle Linux 8            |\n| `rocky-8`        | Rocky Linux 8             |\n| `ubuntu-bionic`  | Ubuntu Bionic             |\n| `ubuntu-focal`   | Ubuntu Focal              |\n\n### Directives\n\nDirectives are used to specify variables that only apply to a limited set of\nbuild targets.\n\nAll variables can use directives including user defined variables.\n\nTo use directives include the directive after a variable separated by a colon\nsuch as `pkgdesc__ubuntu=\"This description will only apply to Ubuntu packages\"`.\n\nThe directives above are sorted from lowest to the highest priority.\n\n| directive        | value                     |\n| ---------------- | ------------------------- |\n| `apk`            | all apk packages          |\n| `apt`            | all deb packages          |\n| `pacman`         | all pkg packages          |\n| `yum`            | all yum rpm packages      |\n| `alpine`         | all Alpine Linux packages |\n| `arch`           | all Arch Linux releases   |\n| `amazon`         | all Amazon Linux releases |\n| `centos`         | all CentOS releases       |\n| `debian`         | all Debian releases       |\n| `fedora`         | all Fedora releases       |\n| `oracle`         | all Oracle Linux releases |\n| `ubuntu`         | all Ubuntu releases       |\n| `amazon-1`       | Amazon Linux 1            |\n| `amazon-2`       | Amazon Linux 2            |\n| `debian-jessie`  | Debian Jessie             |\n| `debian-stretch` | Debian Stretch            |\n| `debian-buster`  | Debian Buster             |\n| `fedora-35`      | Fedora 35                 |\n| `oracle-8`       | Oracle Linux 8            |\n| `rocky-8`        | Rocky Linux 8             |\n| `ubuntu-bionic`  | Ubuntu Bionic             |\n| `ubuntu-focal`   | Ubuntu Focal              |\n\n## Examples\n\nPlease have a look under the `examples` folder.\n\nYou'll find:\n\n- [the project definition](examples/yap.json)\n- [the spec file](examples/yap/PKGBUILD)\n\n## License\n\nSee [LICENSE](LICENSE) file for details.\n\n## Credits\n\n[Zachary Huff](https://github.com/zachhuff386), for his work on Pacur, on which\nYap is based on.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackagefoundation%2Fyap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpackagefoundation%2Fyap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackagefoundation%2Fyap/lists"}