purpleidea / mgmt

Next generation distributed, event-driven, parallel config management!
https://purpleidea.com/tags/mgmtconfig/
GNU General Public License v3.0
3.62k stars 314 forks source link

Upload mgmt to the Debian archive #580

Open drebs opened 4 years ago

drebs commented 4 years ago

I think it would be great for mgmt community and Debian users to have mgmt in the Debian archive, because then it can be easily installed with apt install mgmt. This would probably increase testing and adoption of mgmt and make users like me happy because we'd get cryptographic verification of the binaries and no extra work would be needed to have mgmt running on Debian systems. Another benefit is we'd also get the package into Ubuntu without any extra effort.

One possible workflow to get this done is:

Depending on the state of dependencies packaging, we might have enough time to get this into the next Debian stable (version 11 codename bullseye), which should be released in 2021.

I am willing to help with this, if this is something this community is interested in doing.

purpleidea commented 4 years ago

@drebs We'd love to have official debian packaging. In the interim I build debian packages with fpm which are available here and signed by my personal key: https://github.com/purpleidea/mgmt/releases

If you can help improve this or any other aspect, let us know if you need any information. I should note that mgmt is still changing quite quickly and sadly still contains some bugs, but that doesn't mean any packaging effort isn't appreciated, just expect new versions.

Thanks!

drebs commented 4 years ago

Thanks for the quick response!

Nice, I didn't know about fpm, will take a closer look. Some questions:

purpleidea commented 4 years ago

@drebs The fpm process isn't "proper" debian packaging, we just build the mgmt binary and dump it in a package. It works though =D

Basically the biggest missing hurdle to make the packaging reproducible is this:

We have a bunch of different golang dependencies. We use git master of all of them except those in vendor/ which are git submodules at a specific tag. We are missing a (probably bash) script to upload the local $GOPATH/src/ with the latest version of everything (basically a go get -u ./...) and then store each of those git tags. This could probably be done using the go mod tools, except that we'd like to store that in a sub dir somewhere for later use if we wanted to build that exact version again.

We want to avoid using go mod in git master because: https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#why-arent-you-using-glide-godep-or-go-mod-for-dependency-management

HTH

h0tw1r3 commented 3 years ago

I recently switched some go projects from fpm to nfpm. https://github.com/goreleaser/nfpm A few rough edges, but overall I like it compared to fpm.

purpleidea commented 3 years ago

nFPM: a simpler, 0-dependency, as-little-assumptions-as-possible alternative to fpm

I don't see how it could be usefully simpler than fpm, and I'm not meaningfully suffering from any dependency issue, and it's certainly not blocking us anywhere, so I have no plans to switch. If this is a patch you want to write and/or you think this can solve this issue somehow, you can let me know.

alexmyczko commented 6 months ago

i might help here?

purpleidea commented 6 months ago

Please help yourself!

As a side note, I also have some manual scripts that I try to keep updated when doing releases. (In the main Makefile.) In case you'd like to test them out.

Uncomment here: https://github.com/purpleidea/mgmt/blob/master/releases/debian-stable.release#L1 and test make release if you want to try that.

Cheers

alexmyczko commented 6 months ago

@purpleidea ok thanks. couldn't find RFP nor ITP yet. will consider