bbd4056045
As part of https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin, programs are moved from /usr/sbin/alternatives to /usr/bin/alternatives. Provisions have been made to create a compat symlink on traditional systems, so that both paths work and packages that use paths under /usr/sbin do not need to be rebuilt. Unfortunately, on ostree systems, the compat symlinks are missing, so using absolute paths causes problems (https://bodhi.fedoraproject.org/updates/FEDORA-2024-3aafcac6a8). There is no reason for or benefit from specifying the full path to binaries in scriptlets because the scriptlets are called with a well-defined $PATH. When we drop the full path, they work fine no matter where exactly the binary is installed. An additional problem with full paths is that they are specified using macros, and the macro works fine within a package, but they is no guarantee that different builds of different packages at different times use the same definition of %_sbindir. I also changed /bin/echo → echo. The shell builtin is good enough, we don't need to spawn a separate process. Related: RHEL-54303 |
||
---|---|---|
.fmf | ||
plans | ||
tests | ||
.gitignore | ||
booleans-minimum.conf | ||
booleans-mls.conf | ||
booleans-targeted.conf | ||
booleans.subs_dist | ||
COPYING | ||
customizable_types | ||
file_contexts.subs_dist | ||
gating.yaml | ||
ifndefy.py | ||
make-rhat-patches.sh | ||
Makefile.devel | ||
modules-minimum.conf | ||
modules-mls-base.conf | ||
modules-mls-contrib.conf | ||
modules-targeted-base.conf | ||
modules-targeted-contrib.conf | ||
modules-targeted.conf | ||
permissivedomains.cil | ||
README.md | ||
rpm.macros | ||
securetty_types-minimum | ||
securetty_types-mls | ||
securetty_types-targeted | ||
selinux-check-proper-disable.service | ||
selinux-policy.conf | ||
selinux-policy.spec | ||
setrans-minimum.conf | ||
setrans-mls.conf | ||
setrans-targeted.conf | ||
sources | ||
users-minimum | ||
users-mls | ||
users-targeted | ||
varrun-convert.sh |
Purpose
SELinux Fedora Policy is a fork of the SELinux reference policy. The fedora-selinux/selinux-policy repo makes Fedora packaging simpler and more transparent for packagers, upstream developers, and users. It is used for applying downstream Fedora fixes, for communication about proposed/committed changes, and for communication with upstream and the community. It reflects the upstream repository structure to make submitting patches to upstream easy.
Structure
GitHub
On GitHub, we have one repository containing the policy sources.
$ cd selinux-policy
$ git remote -v
origin git@github.com:fedora-selinux/selinux-policy.git (fetch)
$ git branch -r
origin/HEAD -> origin/master
origin/f27
origin/f28
origin/master
origin/rawhide
Note: As opposed to dist-git, the Rawhide content resides in the rawhide branch rather than master.
dist-git
Package sources in dist-git are composed from the selinux-policy repository snapshot tarball, container-selinux policy files snapshot, the macro-expander script snapshot, and from other config files.
Build process
-
Clone the fedora-selinux/selinux-policy repository.
$ cd ~/devel/github $ git clone git@github.com:fedora-selinux/selinux-policy.git $ cd selinux-policy
-
Create, backport, or cherry-pick needed changes to a particular branch and push them.
-
Clone the selinux-policy dist-git repository.
$ cd ~/devel/dist-git $ fedpkg clone selinux-policy $ cd selinux-policy
-
Download the latest snapshot from the selinux-policy GitHub repository.
$ ./make-rhat-patches.sh
-
Add changes to the dist-git repository, bump release, create a changelog entry, commit, and push.
-
Build the package.
$ fedpkg build