-
Notifications
You must be signed in to change notification settings - Fork 292
Open
Labels
linuxOperating system-specificOperating system-specificpackagingRelated to packaging, rather than Yggdrasil itselfRelated to packaging, rather than Yggdrasil itself
Description
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 withconfigure
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.
perguth
Metadata
Metadata
Assignees
Labels
linuxOperating system-specificOperating system-specificpackagingRelated to packaging, rather than Yggdrasil itselfRelated to packaging, rather than Yggdrasil itself