{"id":16889514,"url":"https://github.com/thesamesam/sam-gentoo-scripts","last_synced_at":"2025-03-22T08:31:04.214Z","repository":{"id":38419828,"uuid":"469921711","full_name":"thesamesam/sam-gentoo-scripts","owner":"thesamesam","description":"Set of scripts I use for Gentoo development.","archived":false,"fork":false,"pushed_at":"2025-03-07T02:13:39.000Z","size":186,"stargazers_count":20,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-18T10:01:37.720Z","etag":null,"topics":["ebuild","gentoo","scripts"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thesamesam.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":"2022-03-14T22:16:12.000Z","updated_at":"2025-03-13T11:14:12.000Z","dependencies_parsed_at":"2023-11-25T14:22:29.641Z","dependency_job_id":"fa3667e8-fd61-4544-8444-4e91d7370250","html_url":"https://github.com/thesamesam/sam-gentoo-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesamesam%2Fsam-gentoo-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesamesam%2Fsam-gentoo-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesamesam%2Fsam-gentoo-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thesamesam%2Fsam-gentoo-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thesamesam","download_url":"https://codeload.github.com/thesamesam/sam-gentoo-scripts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244931467,"owners_count":20534007,"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":["ebuild","gentoo","scripts"],"created_at":"2024-10-13T16:57:30.882Z","updated_at":"2025-03-22T08:31:04.208Z","avatar_url":"https://github.com/thesamesam.png","language":"Shell","funding_links":[],"categories":["Shell","Gentoo"],"sub_categories":["Quickstart"],"readme":"A collection of scripts for Gentoo development.\n\n### Miscellaneous\n\n#### QA\n\n* `find-new-pkg-by`: list new packages by a maintainer (useful for finding\n   e.g. proxied maintainers who add more packages than they maintain, and possibly\n   directing them to GURU for such bits)\n\n* `find-unmaintained`: find packages nominally maintained but with no commits\n   from their maintainer recently\n\n* `report-bugs-pkgcheck`: report bugs on Bugzilla en-masse for packages\n   triggering a given `pkgcheck` check/warning\n\n#### Keywords\n\n* `at-find-unkeyworded-for-arch`: find packages unkeyworded for `${TARGET_ARCH}`\n  relative to `${BASE_ARCH}` (e.g. suppose trying to get `riscv` parity with `arm64`)\n\n* `find-unkeyworded`: find packages which have an unkeyworded version in ::gentoo\n  for all arches. This sometimes happens and is forgotten about after committing\n  something \"unkeyworded for testing\".\n\n### Maintenance\n\n* `gbump`: bump group of packages (and commits if desired). Calls\n  `bump-generic` under the hood.\n\n* `bump-generic`: bumps package to new version, copying from last visible\n   version in the repository. Used as a basis for other scripts too.\n\n* `bump-go`: bumps Go package to a new version (generates dependency tarball\n   for you).\n\n* `bump-rust`: bumps Rust package to a new version (generates CRATES variable\n   contents for you) (NOTE: deprecated in favour of app-portage/pycargoebuild).\n\n* `git-revbump-all`: revbump all changed packages (NOTE: this needs some fixes\n   first, see comment at top of script)\n\n#### Niche\n\n* `generate-cmake-docs`: generate man page tarball for `dev-util/cmake`\n\n* `generate-libunwind-docs`: generate man page tarball for `sys-libs/libunwind`\n\n* `generate-sshuttle-docs`: generate man page tarball for `net-proxy/sshuttle`\n\n* `generate-qemu-docs`: generate man page tarball for `app-emulation/qemu`\n\n* `generate-pkgdev-docs`: generate man page tarball for `dev-util/pkgdev`\n\n* `generate-libabigail-docs`: generate man page tarball for `dev-util/libabigail`\n\n* `generate-iputils-docs`: generate man page tarball for `net-misc/iputils`\n\n* `generate-ccache-docs`: generate man page tarball for `dev-util/ccache`\n\n* `generate-libnet-docs`: generate man page tarball for `net-libs/libnet`\n\n* `generate-pipewire-docs`: generate man page tarball for `media-video/pipewire`\n\n* `gather-keys`: generate a clean keyring containing keys for a list of\n   given fingerprints after scraping keyservers for them.\n\n### git\n\n#### Assorted scripts\n\n* `check-all-changed-pkgs`: run `ebuild .. clean prepare` (or up to some other\n   phase) on all packages with local pending changes. Useful for ensuring e.g.\n   mass revbumps or other QA fixes haven't broken e.g. applying patches (think\n   of e.g. `${PF}` being used in `PATCHES`)\n\n* `commit-changed-pkgs`: commits each of the local changes per-package with\n   a given commit message\n\n* `sort-branch origin/master my-changes`: sorts commits by commit summary -\n   does all work in a temporary branch and leaves `my-changes` alone. Can\n   choose to throw away the sorted branch if merge conflicts occur\n\n#### rebase-filter-maint\n\nTakes a branch and creates a filtered version based on included/excluded maintainers.\nOptionally can create the inverse too.\n\nSuppose you have a branch with changes across the Gentoo tree affecting a range\nof maintainers.\n\n##### Usage\n\n```\n$ cd ~/git/gentoo\n$ git checkout my-large-change-set\n# Make your changes!\n# Configure the script as appropriate\n$ bash ~/scripts/rebase-filter-maint --maintainer «maintainer regex»\n$ git checkout my-large-change-set-identifier-blacklist\n```\n\nThe `maintainer regex` may also be provided by providing the `maintainers` envvar before the script is called.\n\nBy default the script will operate on your working branch. This may be changed by passing `--minefield «branch name»`\n\nThe default configuration is to blacklist commits (i.e. cherry pick everything that doesn't match your regex). The inverse can be achieved by providing the `--whitelist` flag.\n\n\u003e **Note**:\n\u003e - The script does not currently handle passing both `--whitelist` and `--blacklist`; results may be unpredictable.\n\u003e - When run this script **will** perform a `git reset` on `origin/master`.\n\n##### Example (whitelist)\nOur branch is `controversial` with a load of changes some people might\nwant to discuss, but others you know are okay with.\n\nYou might set the list to be maintainers with whom you have a good rapport\nand choose the whitelist mode.\n\n`rebase-filter-maint` will then create a branch called `controversial-${identifier}-whitelist`\ncontaining all commits affecting those maintainers, so you can push it straight away.\n\nIf you choose, `rebase-filter-maint` will create an inverse branch called\n`controversial-${identifier}-blacklist` containing all commits affecting non-listed\nmaintainers. This is a branch you might have to submit for review or similar.\n\n##### Example (blacklist)\nOur branch is `straightforward` and we think the changes are non-controversial,\nbut we want to leave certain packages maintained by e.g. base-system@ or toolchain@\nbecause those deserve extra care due to their importance.\n\nIn this case, you might want to choose the blacklist mode.\n\n`rebase-filter-maint` will then create a branch called `straightforward-${identifier}-blacklist`\nwhich contains all commits that need more care. This is a branch you might have to\nsubmit for review or similar.\n\nIf you choose, `rebase-filter-maint` will create an inverse branch called\n`straightforward-${identifier}-whitelist` containing all commits affecting\nmaintainers whose packages we can touch. This is a branch you might be\nable to just push.\n\n### gcc\n\n* `generate_snapshot_index.py`: Generates a text file `known_snapshots.txt` which\n   indexes snapshots and the commit they were based on.\n\n* `bisect-gcc`: Unpolished script used for `git bisect run` when bisecting GCC.\n\n* `bisect-binutils`: Ditto.\n\n* `bisect-gdb`: Ditto.\n\n* `miscompile-reduce.sh`: Script for reducing miscompilations w/ cvise.\n\n### llvm\n\n* `build-llvm`: Sets args I usually want for CMake, bit like `bisect-gcc`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesamesam%2Fsam-gentoo-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesamesam%2Fsam-gentoo-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesamesam%2Fsam-gentoo-scripts/lists"}