Skip to content

Commit

Permalink
Enable RPM sysusers integration
Browse files Browse the repository at this point in the history
  • Loading branch information
nikromen committed Aug 5, 2024
1 parent b9d77f4 commit 927d25f
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 9 deletions.
2 changes: 0 additions & 2 deletions mock-core-configs/mock-core-configs.spec
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ Rocky Linux and various other specific or combined chroots.


%install
mkdir -p %{buildroot}%{_sysusersdir}

mkdir -p %{buildroot}%{_sysconfdir}/mock/eol/templates
mkdir -p %{buildroot}%{_sysconfdir}/mock/templates
cp -a etc/mock/*.cfg %{buildroot}%{_sysconfdir}/mock
Expand Down
File renamed without changes.
20 changes: 13 additions & 7 deletions mock/mock.spec
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
%bcond_with lint
%bcond_without tests

# mock group id allocate for Fedora
%global mockgid 135

%global __python %{__python3}
%global python_sitelib %{python3_sitelib}

Expand Down Expand Up @@ -146,6 +143,9 @@ Mock plugin that preprocesses spec files using rpmautospec.
%package filesystem
Summary: Mock filesystem layout
Requires(pre): shadow-utils
BuildRequires: systemd-rpm-macros

%{?sysusers_requires_compat}

%description filesystem
Filesystem layout and group for Mock.
Expand All @@ -169,6 +169,9 @@ done

./precompile-bash-completion "mock.complete"

# this is what %%sysusers_create_compat will expand to
%{_rpmconfigdir}/sysusers.generate-pre.sh mock.conf > sysusers_script

%install
#base filesystem
mkdir -p %{buildroot}%{_sysconfdir}/mock/eol/templates
Expand Down Expand Up @@ -213,13 +216,15 @@ install -d %{buildroot}/var/cache/mock
mkdir -p %{buildroot}%{_pkgdocdir}
install -p -m 0644 docs/site-defaults.cfg %{buildroot}%{_pkgdocdir}

mkdir -p %{buildroot}%{_sysusersdir}
install -p -D -m 0644 %{name}.conf %{buildroot}%{_sysusersdir}

sed -i 's/^_MOCK_NVR = None$/_MOCK_NVR = "%name-%version-%release"/' \
%{buildroot}%{_libexecdir}/mock/mock

%pre filesystem
# check for existence of mock group, create it if not found
getent group mock > /dev/null || groupadd -f -g %mockgid -r mock
exit 0

%pre filesystem -f sysusers_script


%check
%if %{with lint}
Expand Down Expand Up @@ -257,6 +262,7 @@ pylint-3 py/mockbuild/ py/*.py py/mockbuild/plugins/* || :
%config(noreplace) %{_sysconfdir}/%{name}/*.ini
%config(noreplace) %{_sysconfdir}/pam.d/%{name}
%config(noreplace) %{_sysconfdir}/security/console.apps/%{name}
%config(noreplace) %{_sysusersdir}/mock.conf

# directory for personal gpg keys
%dir %{_sysconfdir}/pki/mock
Expand Down
3 changes: 3 additions & 0 deletions releng/release-notes-next/sysusers-handled-by-rpm.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
New Mock RPM package provides the systemd-sysusers drop-in configuration file for automatic
`mock 135` group ID allocation.
https://rpm-software-management.github.io/rpm/manual/users_and_groups.html

0 comments on commit 927d25f

Please sign in to comment.