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 Jul 29, 2024
1 parent b9d77f4 commit 442074b
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 11 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
2 changes: 0 additions & 2 deletions mock-core-configs/mock.conf

This file was deleted.

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 @@ -156,6 +156,7 @@ for file in py/mock.py py/mock-parse-buildlog.py; do
sed -i 1"s|#!/usr/bin/python3 |#!%{__python} |" $file
done


%build
for i in py/mockbuild/constants.py py/mock-parse-buildlog.py; do
perl -p -i -e 's|^VERSION\s*=.*|VERSION="%{version}"|' $i
Expand All @@ -169,6 +170,8 @@ done

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

%sysusers_create_compat 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}
%{_sysusersdir}/mock.conf

# directory for personal gpg keys
%dir %{_sysconfdir}/pki/mock
Expand Down
6 changes: 6 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,6 @@
This provides users/groups via /usr/lib/sysusers.d. This is going
to be handled by RPM as described in
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_dynamic_allocation

Fixes fedora-copr/copr#2789

0 comments on commit 442074b

Please sign in to comment.