enh(build): generate .deb instead of archive when packaging linux apps
Description
Currently, we generate .tar.zstd
archive file when we package an application on Linux.
This isn't very convenient, since the application cannot be updated automatically.
CPack can package linux application using .deb generator we should use it.
Proposal
- Add .deb generator to package linux applications.
- Remove .tar.zstd generator.
Functional specifications
- Applications should be installable and removable using the standard Debian installation program.
- Applications should be updatable using the same program (as .deb for gitkraken for example)
- Deb files should contain a list of dependencies, and shouldn't be installable if something is missing.
- Behavior of
ninja <target>_package
should remain the same, it should produce at least a<target_name>-<target_version>.deb
file - CI will also be updated to push .deb files on owncloud.
- If possible .deb should also install .desktop shortcut of GUI application (in Science category), a template of .desktop should be created.
- Debug package will not be considered for at first step.
Technical specifications
- Replace tar.zstd generator by .deb generator
- Following the official documentation for Debian generator options: https://cmake.org/cmake/help/latest/cpack_gen/deb.html
- Create a .desktop template for GUI apps with basics info (Name, Exec, Icons, Category, Version...)
- Control file can be used from sight-debian repo.
Test plan
-
Generates well package (.deb) for a well known application (sightViewer) -
install it through the standard installation program -
Launch it -
Try to update it with a different version -
Try to uninstall it -
Try a sample/tuto -
Try a CLI app