Skip to content

Fix Debian CI. - #1719

Open
silverhadch wants to merge 2 commits into
shadow-maint:masterfrom
silverhadch:master
Open

Fix Debian CI.#1719
silverhadch wants to merge 2 commits into
shadow-maint:masterfrom
silverhadch:master

Conversation

@silverhadch

Copy link
Copy Markdown
Contributor

make install doesn't want to override /sbin/nologin so we shall force it.

@silverhadch silverhadch changed the title Fixing Debian CI. Fix Debian CI. Aug 21, 2026
Comment thread share/ansible/roles/ci_run/tasks/debian.yml Outdated
Comment thread share/ansible/roles/ci_run/tasks/debian.yml Outdated

@ikerexxe ikerexxe left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this PR is mixing two separate improvements that should be handled differently:

  1. The main fix (addresses the immediate issue):
  • DESTDIR staging to avoid /sbin/nologin collision
  • The new tar-based installation logic
  • Adding the missing configuration files
  1. Error handling modernization (general improvement):
  • Switching from ignore_errors: true to register + failed_when: false
  • Adding stderr redirection to log captures
  • The deferred failure checking at the end

Suggested approach:

  • Separate commit for the error handling improvements, since they're valuable but unrelated to the collision fix
  • Port the error handling changes to other distributions: fedora.yml, alpine.yml and opensuse.yml. They would benefit from the same improved logging and failure detection

This would make the changes easier to review and test.

make install fails with "File exists" on /sbin/nologin, which the base
image already provides.  Install into /tmp/rootfs instead, remove the
files that would be overwritten, and extract the tree over /.

Signed-off-by: Hadi Chokr <hadichokr@icloud.com>
The build steps used ignore_errors, which keeps the play going but also
lets the job report success when configure, make, or make check failed.
Register each step with failed_when: false instead, so the logs are still
collected, and assert at the end that every step returned 0.

Also send stderr to the per-step logs, fetch the new logs, and don't
abort the fetch on a missing one: a log does not exist if the step that
writes it never ran.

Signed-off-by: Hadi Chokr <hadichokr@icloud.com>
Comment on lines -75 to -77
- name: Install
ansible.builtin.command:
make install

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make install fails with "File exists" on /sbin/nologin

Why does it fail? Doesn't make install overwrite whatever is on the system? That's what I'd have expected.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I second these questions. If make install is failing we should fix the root cause in the Makefile itself rather than adding workarounds in the Ansible role. Fixing it at the build level keeps the toolchain clean and independent

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants