Mahlet-Inc / hobbits

A multi-platform GUI for bit-based analysis, processing, and visualization
https://mahlet-inc.github.io
MIT License
655 stars 47 forks source link

Add deb and rpm distribution to CI #22

Open hello-adam opened 4 years ago

hello-adam commented 4 years ago

It would be nice to have hobbits packaged in a way that let plugin developers update the application/headers/library easily using a package manager. We could provide the following packages:

A few non-trivial things that might need to be addressed:

@KOLANICH

KOLANICH commented 4 years ago

Moved from https://github.com/Mahlet-Inc/hobbits/issues/13#issuecomment-598418790

Do you have any recommendations for how/where to host packages for the various platforms?

Not quite. I currently use GitLab CI on gitlab.com for building some packages (pipeline creates a repo, and that repo is available via GitLab Pages because GL pipelines can create GL pages). But I am dissatisfied with 2 things: 1 GitLab is doing bad things and continues doing them. It may make sense to stay away of GitLab. 2 CIs run Turing-complete code, and it cannot be sandboxed reliably. GL CI runs code from anyone. GL uses hw virt to harden the security, but there were multiple vulnrs in various hw virt solutions allowing to compromise the host. Once host is compromised, one can compromise all the VMs and infect all the software built in them with malware. One of the means to reduce probability of this scenario is to build on machines not shared with anyone in the world wishing it. It is not a panacea though: on the same machines other software is built and run, and when done without proper care the code run may be infected. So the ideal variant is a dedicated physical machine.

So, the best variant is to bring it to the official repos and trigger the builds using HTTP hooks. It may make sense to make the pipelines to check the signatures on commits.

KOLANICH commented 4 years ago

We could provide the following packages

CMake + CPack introduced in #16 does something like this (and even a bit more, each module goes into an own package). Also please note that usual naming convention (at least in Debian-based distros) is that packages with libs have lib in their names (usually as a prefix, so libhobbits and libhobbits-dev).

hobbits-devel (everything) I guess doesn't match the way distros use to separate software into packages.

Also we need separate packages for wizards.

hello-adam commented 4 years ago

looks like packages can be hosted on BinTray with a free open source plan: https://bintray.com/

KOLANICH commented 4 years ago

Yes, it can, KS for example hosts nightly packages there. But IMHO

hello-adam commented 3 years ago

I'm sort of tempted to just publish 2 packages - hobbits and hobbits-dev(el). Sure, there are multiple binaries, and maybe even use-cases for the core library by itself, but I don't think the potential disk space savings outweigh the maintenance/documentation/troubleshooting headache caused by complicated installation permutations.