overlay-funroll

I run a local overlay called funroll ⇗.

Below I'll explain how I...

  1. use it.
  2. made it.
  3. actively develop it (sccache, metagen, pycargoebuild...).

how I use it

Instead of syncing from Git, I sync from my own machine. It's a weird intermediary method I find convenient for developing.

/etc/portage/repos.conf/funroll.conf
[funroll]
location = /var/db/repos/funroll
sync-type = git
sync-uri = /home/user/git/overlay-funroll

"Gentoo overlays must mark themselves with ~amd64" blah blah blah blah

/etc/portage/package.accept_keywords/overlays
*/*::guru ~amd64
*/*::funroll ~amd64
*/*::gentoo-zh
*/*::benzene-overlay

how I made it

Though the wiki describes making your own overlay ⇗, I actually used a different method versus the wiki.

That is, I made an ebuild skeleton git repo on my local user then synced from that.

# Prepare a git repository
mkdir overlay-funroll
cd overlay-funroll
git init

# Manually set up repo skeleton stuff
mkdir metadata profiles
echo funroll > profiles/repo_name
echo 8 > profiles/eapi
cat >> metadata/layout.conf << EOF
masters = gentoo
thin-manifests = true
sign-manifests = false
EOF

# say hi to the world
nvim README.md

# save changes
git add --all
git commit -m init

how I develop it

TODO: Finish writing this section

https://devmanual.gentoo.org/general-concepts/manifest/

https://devmanual.gentoo.org/ebuild-writing/variables/index.html

https://devmanual.gentoo.org/ebuild-writing/functions/

pkgdev manifest -m

Ebuild devs need stuff like pkgcheck, cargo license, pycargoebuild, metagen, blah blah

/etc/portage/package.accept_keywords/ebuild-dev
dev-util/cargo-license ~amd64

I work with Rust often so I need a way to cache stuff lol

I use dev-util/sccache

/etc/portage/package.accept_keywords/ebuild-dev
dev-util/sccache ~amd64
/etc/sandbox.d/20sccache
# Allow write access to sccache cache directory
SANDBOX_WRITE="/var/cache/sccache/"
/etc/portage/env/sccache-enabled
# when you're working on some kind of
#     `ebuild abc/defg merge`
# you will need to add it to package.env :)
RUSTC_WRAPPER=/usr/bin/sccache
SCCACHE_DIR=/var/cache/sccache
SCCACHE_MAX_FRAME_LENGTH=104857600