Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up DEB package dependencies. #17680

Merged
merged 2 commits into from
May 22, 2024
Merged

Conversation

Ferroin
Copy link
Member

@Ferroin Ferroin commented May 16, 2024

Summary
  • dpkg is an implicit dependency for all DEB packages by virtue of them being DEB packages, and we do not support any platforms that have an old enough version to be an issue, so we don’t need a versioned dependency on it either, so simply drop the explicit dependency on dpkg.
  • We also don’t support any platforms that ship an old enough version of libcap2-bin to cause us problems, so remove the version constraint on that as well.
  • The lsb-base predepend is only needed if the user is using a non-systemd init system. We don’t fully support this setup with our native packages, and it’s a non-default configuration for Debian and completely unsupported on Ubuntu, so it’s safe to assume that the user knows what they are doing if they need it and not explicitly require this.
  • The apps plugin was missed in Fix DEB package conflict entries. #17584, so fix it’s conflicts line here.
  • The charts.d plugin requires bash to function correctly, so actually depend on it instead of recommending it (this will be a no-op on a vast majority of systems, but is still useful insurance against users doing stupid things).
  • The CUPS and FreeIPMI plugins both pull in all the things they actually need via automatic dependency generation, so there is no reason for us to pull in full installs of CUPS or FreeIPMI as dependencies.
  • Everything in the Go plugin that was using sudo has been converted to use ndsudo instead, so we don’t need to ask for sudo at all for it anymore.
  • The python.d plugin requires Python to function correctly, so actually depend on it instead of recommending it.
Test Plan

Preliminary testing involves confirming that CI passes on this PR.

The packages should also be inspected manually to confirm that the dependencies are correctly listed in the control files.

- dpkg is an implicit dependency for all DEB packages by virtue of them
  being DEB packages, and we do not support any platforms that have an
  old enough version to be an issue, so we don’t need a versioned
  dependency on it either, so simply drop the explicit dependency on
  dpkg.
- We also don’t support any platforms that ship an old enough version of
  libcap2-bin to cause us problems, so remove the version constraint on
  that as well.
- The lsb-base predepend is only needed if the user is using a
  non-systemd init system. We don’t fully support this setup with our
  native packages, and it’s a non-default configuration for Debian and
  completely unsupported on Ubuntu, so it’s safe to assume that the
  user knows what they are doing if they need it and not explicitly
  require this.
- The apps plugin was missed in netdata#17584, so fix it’s conflicts line here.
- The chartsd plugin _requires_ bash to function correctly, so actually
  depend on it instead of recommending it (this will be a no-op on a
  vast majority of systems, but is still useful insurance against users
  doing stupid things).
- The CUPS and FreeIPMI plugins both pull in all the things they
  actually need via automatic dependency generation, so there is no
  reason for us to pull in full installs of CUPS or FreeIPMI as
  dependencies.
- Everything in the Go plugin that was using `sudo` has been converted
  to use `ndsudo` instead, so we don’t need to ask for `sudo` at all for
  it anymore.
- The Python plguin _requires_ Python to function correctly, so actually
  depend on it instead of recommending it.
@github-actions github-actions bot added the area/packaging Packaging and operating systems support label May 16, 2024
@Ferroin Ferroin marked this pull request as ready for review May 16, 2024 15:56
@Ferroin Ferroin requested a review from vkalintiris as a code owner May 16, 2024 15:56
Copy link
Contributor

@vkalintiris vkalintiris left a comment

Choose a reason for hiding this comment

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

The packages should also be inspected manually to confirm that the dependencies are correctly listed in the control files.

They should also be installed in a clean debian image.

@Ferroin Ferroin merged commit e704b91 into netdata:master May 22, 2024
147 of 148 checks passed
@Ferroin Ferroin deleted the deb-dep-cleanup branch May 22, 2024 15:15
lechgu pushed a commit to SaladTechnologies/netdata that referenced this pull request May 23, 2024
* Clean up DEB package dependencies.

- dpkg is an implicit dependency for all DEB packages by virtue of them
  being DEB packages, and we do not support any platforms that have an
  old enough version to be an issue, so we don’t need a versioned
  dependency on it either, so simply drop the explicit dependency on
  dpkg.
- We also don’t support any platforms that ship an old enough version of
  libcap2-bin to cause us problems, so remove the version constraint on
  that as well.
- The lsb-base predepend is only needed if the user is using a
  non-systemd init system. We don’t fully support this setup with our
  native packages, and it’s a non-default configuration for Debian and
  completely unsupported on Ubuntu, so it’s safe to assume that the
  user knows what they are doing if they need it and not explicitly
  require this.
- The apps plugin was missed in netdata#17584, so fix it’s conflicts line here.
- The chartsd plugin _requires_ bash to function correctly, so actually
  depend on it instead of recommending it (this will be a no-op on a
  vast majority of systems, but is still useful insurance against users
  doing stupid things).
- The CUPS and FreeIPMI plugins both pull in all the things they
  actually need via automatic dependency generation, so there is no
  reason for us to pull in full installs of CUPS or FreeIPMI as
  dependencies.
- Everything in the Go plugin that was using `sudo` has been converted
  to use `ndsudo` instead, so we don’t need to ask for `sudo` at all for
  it anymore.
- The Python plguin _requires_ Python to function correctly, so actually
  depend on it instead of recommending it.

* Fix typo.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/packaging Packaging and operating systems support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants