{"id":17252182,"url":"https://github.com/eagletmt/guzuta","last_synced_at":"2025-07-19T14:35:00.026Z","repository":{"id":15584053,"uuid":"78429459","full_name":"eagletmt/guzuta","owner":"eagletmt","description":"Custom repository manager for ArchLinux pacman","archived":false,"fork":false,"pushed_at":"2024-11-03T10:17:25.000Z","size":535,"stargazers_count":32,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-15T04:26:53.081Z","etag":null,"topics":["archlinux","pacman"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"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/eagletmt.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-01-09T13:04:26.000Z","updated_at":"2024-11-03T10:17:30.000Z","dependencies_parsed_at":"2024-03-04T18:02:59.241Z","dependency_job_id":"74b4d975-b7b5-4d60-b57a-2273f2a785fe","html_url":"https://github.com/eagletmt/guzuta","commit_stats":{"total_commits":134,"total_committers":5,"mean_commits":26.8,"dds":0.02985074626865669,"last_synced_commit":"bb4f51abc77271725daf9e0d30c412c0ca668c4e"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/eagletmt/guzuta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eagletmt%2Fguzuta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eagletmt%2Fguzuta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eagletmt%2Fguzuta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eagletmt%2Fguzuta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eagletmt","download_url":"https://codeload.github.com/eagletmt/guzuta/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eagletmt%2Fguzuta/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265947510,"owners_count":23853382,"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":["archlinux","pacman"],"created_at":"2024-10-15T06:53:15.502Z","updated_at":"2025-07-19T14:34:59.949Z","avatar_url":"https://github.com/eagletmt.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# guzuta\nCustom repository manager for ArchLinux pacman\n\n## Usage\n### Build a package and store it to a repository\nBasic usage: build foo x86_64 package for bar repository.\n\n```\n% ls foo\nPKGBUILD\n% mkarchroot chroot/root base-devel\n% mkdir -p repo/x86_64\n% guzuta build foo --repo-dir repo/x86_64 --repo-name bar --arch x86_64 --chroot-dir chroot\n(snip)\n% ls repo/x86_64\nbar.db  bar.files  foo-1.0.0-1-x86_64.pkg.tar.zst\n```\n\nWith full options:\n```\n% guzuta build --chroot-dir /var/cache/guzuta/chroot-x86_64 --repo-dir repo/x86_64 --repo-name bar --arch x86_64 --package-key $GPGKEY --repo-key $GPGKEY --srcdest sources --logdest logs foo\n(snip)\n% ls repo/x86_64\nbar.db  bar.db.sig  bar.files  bar.files.sig  foo-1.0.0-1-x86_64.pkg.tar.zst  foo-1.0.0-1-x86_64.pkg.tar.zst.sig\n% ls sources\nfoo-1.0.0.tar.gz\n% ls logs\nfoo-1.0.0-1-x86_64-build.log  foo-1.0.0-1-x86_64-package.log\n```\n\n## Omakase mode\nOmakase mode supports a typical situation managing the custom repository.\n\n### Initialize a repository\n\nSee also https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot#Classic_Way\n\n```\n% sudo mkarchroot -C /path/to/pacman.conf -M /path/to/makepkg.conf /path/to/chroot-x86_64/root base base-devel\n% cat \u003e .guzuta.yml\nname: foo\npackage_key: C48DBD97\nrepo_key: C48DBD97\nsrcdest: sources\nlogdest: logs\npkgbuild: PKGBUILDs\nbuilds:\n  x86_64:\n    chroot: /path/to/chroot-x86_64\n% mkdir foo sources logs PKGBUILDs\n```\n\n### Build a package\nWrite a PKGBUILD in `PKGBUILDs/#{pkgname}` directory.\n\n```\n% mkdir PKGBUILDs/bar\n% vim PKGBUILDs/bar/PKGBUILD\n```\n\nThen build the package.\n\n```\n% guzuta omakase build bar\n(snip)\n% tree foo\nfoo\n`-- os\n    `-- x86_64\n        |-- bar-1.0.0-1-x86_64.pkg.tar.zst\n        |-- bar-1.0.0-1-x86_64.pkg.tar.zst.sig\n        |-- foo.db\n        |-- foo.db.sig\n        `-- foo.files\n```\n\n### Publish the repository\nFor the server, serve files under the foo directory by HTTP server like nginx or Apache.\n\nFor clients, add the server's repository configuration to /etc/pacman.conf like below.\n\n```\n[foo]\nSigLevel = Required\nServer = http://example.com/$repo/os/$arch\n```\n\n### Publish the repository (Amazon S3)\nConfigure .guzuta.yml for S3.\n\n```yaml\ns3:\n  bucket: foo-packages\n  region: ap-northeast-1\n```\n\nEach time you execute `guzuta omakase build`:\n\n1. Download repository databases (not including packages)\n2. Build a package\n3. Upload the built package and repository databases.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feagletmt%2Fguzuta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feagletmt%2Fguzuta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feagletmt%2Fguzuta/lists"}