Debian/Linux packaging
Open, LowPublic

Description

Create a package definition for Debian/Linux systems.

  • at least for an OpenCine interface library
  • possibly for OpenCine as a whole (likely to be simpler to do it this way)

In the Linux world, offering a well maintained package makes your application a first class citizen. While there are several packaging systems, the Debian framework has the reputation of a well organised and somewhat demanding quality standard. Thus, if your package makes it through Debian's "linitian check" (automated compliance check), you've probably addressed all the relevant issues and have a solid foundation for other distributions as well. If you have a working DEB, then usually it's just a minor itch to create a RPM spec file (to cover the RedHat-Familiy of distributrions). Moreover, a lot of popular distributions immediately consume, recompile and distribute Debian packages (Ubuntu, Linux Mint,....)

OpenCine uses a portable CMake build system and Debian offers a mature set of scripts and best practices for such. So this task boils down to

  • verify the usual points which could be problematic (licenses, release cycle considerations, special dependencies not available in standard distros)
  • find the existing package names and versions for all required debendencies
  • set up the packaging scripts. My (@Ichthyo) recommendation is to rely on
    • CDBS
    • git-buildpackage

After this is done, you'll be able to deliver new Linux packages for a release with just some git and script invocations (which, after some rehearsal, can be fully automated)

Ichthyo created this task.Nov 7 2015, 11:20 PM
Ichthyo updated the task description. (Show Details)
Ichthyo raised the priority of this task from to Low.
Ichthyo claimed this task.
Ichthyo added a project: Open Cine.
Ichthyo added a comment.EditedNov 10 2015, 3:44 PM

I've played with Docker some time ago, but don't know how it helps to stay "portable" between Linux versions. How would it benefit Lumiera or OC?

you can as well just use a bunch of virtual machines. This is what I've done thus far (for Lumiera). But this does involve quite some manual work, plus the usual installers for Linux distros are UI driven, so basically for each new linux distro, you sit there and hit enter 20 times. And another annoyance with conventional VMs is with system updates (i.e. security updates). After applying such an update against the base system, you have to re-do all the further preparation steps to turn this pristine installation into a build environment. And if you do not apply the incremental security updates, it might happen that people can no longer install the packages you build on a system with these updates installed.

Docker is just a system for running virtual contexts, with improved scriptability, plus you can re-use the existing base images for pristine Linux installations, plus the ability to "stack" several overlays to create the actual image. And on top of all this, you get a nice plug-in for Jenkins.

BAndiT1983 moved this task from Pending tasks to Build on the Open Cine board.Jun 26 2016, 5:55 PM
sebix added a subscriber: sebix.Dec 20 2016, 10:25 PM

I can help with RPM packages and submitting them (for OpenSUSE and Fedora).

aleb added a subscriber: aleb.Jul 17 2018, 5:21 PM