Skip to content

Multiple quality issues with the generated deb #874

@jgoerzen

Description

@jgoerzen

Hi,

This is both a conversation starter and a volunteer to help. The generated .deb is assembled very manually - down to the level of calling ar - and this is causing a number of quality issues.

  • The installed files are owned by uid 3434, group 3434 (corresponding to circleci on the build system) rather than root. If a uid 3434 exists on a system, this is a pretty significant security issue.
  • This also applies to the postinst and prerm files
  • As mentioned in Default .service unit files should reside in /usr/lib/systemd/system (.deb) #820, the systemd files shouldn't be installed to /etc.
    • Furthermore, files installed to /etc should be marked as conffiles so that user edits aren't blown away... but installing these to the correct location would address that.
  • There is no dependency information in the generated .deb, not even for libc.
  • The postinst script doesn't do proper error checking (set -e) and also should only run when called with configure as $1, instead of always.
  • The postinst script shouldn't modify a user's config file, which may blow away their comments and such.
  • The postinst script uses echo to display messages to the user, which the user often will not see (that's why we have debconf and other such things, because if it's in the middle of installing 100 packages, it will just scroll on by.)
  • There is a whole long list of output from lintian of other issues.

Using the Debian native toolchain, including with debhelper, would itself address almost all of these issues, and the rest could be resolved fairly trivially as well.

I am a Debian developer and am considering packaging this up for inclusion in Debian. If so, I will prepare Debian packaging for it. I could also prepare Debian packaging using the native toolchain for the git repo, though that would need to run in a Debian or Ubuntu CircleCI container. I don't know what OS is running in the CircleCI container right now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    linuxOperating system-specificpackagingRelated to packaging, rather than Yggdrasil itself

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions