Red Hat
Personal notes on the use of Red Hat's Linux distributions and their derivatives (RHEL, Fedora, CentOS, Alma, etc.).
Package Development
Preparing a development environment, getting upstream sources to modify, and building.
Environment preparation
Install development tools
Red Hat's term for the usual...
dnf groupinstall "Development Tools" "Development Libraries"
...and the RPM tools.
dnf install rpmdevtools rpmlint
Initialize an RPM build environment
Creates the directory tree under ~/rpmbuild.
rpmdev-setuptree
Install a package's build dependencies
dnf builddep $PACKAGE
Retrieving upstream sources
Using the package manager
dnf can fetch SRPMs from the repository.
dnf download --source $PACKAGE
Extracting the SRPMs will give you a SPEC, a source tarball, and any distribution patches.
rpm2cpio $PACKAGE.src.rpm | cpio -idmv
Using git
Individual git repositories for packages are accessible from Fedora Package Sources.