From the Terminal
When you run emerge portage does a series of things to your package in order:
To set up a patch working environment we're going to go ahead and let it do all of that up to prepare. We will do this with the ebuild command:
ebuild file.ebuild fetch ebuild file.ebuild unpack ebuild file.ebuild prepare
Now we copy the work directory to our own directory:
sudo cp -R /var/tmp/portage/www-client/ungoogled-chromium-88.0.4324.150-r2/work ~/Sources/ungoogled-chromium-88.0.4324.150-r2-work sudo chown -R akujin:users /var/tmp/portage/www-client/ungoogled-chromium-88.0.4324.150-r2/work ~/Sources/ungoogled-chromium-88.0.4324.150-r2-work
Now we have our work directory where we can build our patch. The patch will be applied after prepare is done running so that is why we copied the work directory right after prepare was done running. In our copy of the work directory we need to initialize the folder as a git repo so we go ahead and run:
git init git add . git commit
Now we can make the modifications we want to make. After you're done simply stage your changes and run:
sudo sh -c "git diff --staged > /etc/portage/patches/www-client/ungoogled-chromium/macos-hotkeys-on-linux.patch"
You can test your new patch simply by running emerge on your package.