Packaging for linux distribution (.deb)

does anybody know of a good read on creating .deb packages for distribution of an app created with OF?

Is this even possible?

Would appreciate any pointers on where to research, have had a hard time looking for info.

Thanks in advance for any help.

Regards,

Rodrigo

2 Likes

you would need to package all the dependencies first. all the libraries that OF uses and are not in the debian repos: rtAudio, kiss, tess2, poco and assimp. you’ll also need a package for the same OF and then you could create a package tfor your application that depends on those.

I’ve started an ubuntu ppa where i’m creating the packages for all the dependencies but i’m still having some problems with packages not building correctly when i upload them to the ppa:

https://launchpad.net/~arturo-openframeworks/+archive/openframeworks

thanks for your quick reply. I still have quite a lot of development ahead of me before doing this final step, but it is already a good thing to know its possible.

What type of problems are you getting with the building of the packages?

the package is uploaded to the ppa as source and then it creates the dev and binary packages. when creating the dev it should run make install on the package which copies all the headers to usr/include but that step is not being run properly in the ppa servers while on my computer it works without problem

Hi there!

I am on my way to bring OF into the Debian repositories (as you can see in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=606161). I think that it can be interesting to have this software by default in distributions, don’t you think?

I have begun working with an old package made by Miriam Ruiz (https://launchpad.net/~miry/+archive/ppa). Changing one or two things I managed to make a binary package for Debian testing, but it is still a little buggy (well, and it is for OF v0.061… maybe not very modern :P).

I am working now with v0.071… and I have found that problem about missing packages for some libraries used in OF.

Arturo, Furenku: Have you made something new since January about this topic?

Happy hacking!

Jorge

Actually right now I am in the finishinf phase of my app, so I was only about to look into this issue. We should try to improvise a team around this topic, I’ll be available starting October for this :slight_smile:

That would be great. I will try to advance as much as I can until you say something.

Jorge

Hi all,

You can find a very first version of the packages here:
https://github.com/punkto/openFrameworks-0.071-debian-package

With this, I am able to compile almost all the examples in the source code using a Makefile crafted for this packages:
https://github.com/punkto/openFrameworks-0.071-debian-package/blob/master/openframeworks-0.071/debian/examples/particles/Makefile

There is a problem with the audio libraries. OF uses FMOD library which is not free (as in speech) as you can see here http://en.wikipedia.org/wiki/FMOD#Licensing (OK… Wikipedia is not a primary source, If you want the license, you have to download the source code of FMOD here http://www.fmod.org/fmod-downloads.html). There will be nice to have this package in the free section of Debian, so I think that the best will be to take out the sound part of OF from the package. What do you think?

Cheers,

Jorge

PD: I would like to thank Miriam Ruiz and Alberto Garcia, who are helping me in this development.

Hey Jorge

this is great, i’ll take a look at it and try to help with it. as of FMOD we don’t really use it in linux any more so it’s safe to remove it

OK. It’s out now.

Cheers,

Jorge

also i would remove ofFMODSoundPlayer from the packages

I think that I have done it already, ofFMODSoundPlayer should be here
https://github.com/punkto/openFrameworks-0.071-debian-package/tree/master/openframeworks-0.071/libs/openFrameworks/sound as well as all the references to FMOD, isn’t it? If I have lost something, please, tell me.

Regards,

Jorge

Hi again,

Some news,

  • New commit that fixes ofxOsc problems in examples. I have taken out oscpack from source code and now the compilation uses liboscpak Debian package.

  • I have been studying assimp in order to make the same thing, but it is not so easy :slight_smile: as Theodore Watson filed in https://github.com/openframeworks/openFrameworks/issues/1617 OF is using assimp version 2 but latest version (already in Debian) is 3. The library breaks the API between these versions, so the update could not be trivial.

Why taking out all these libraries? Because they are already in Debian and because in OF they come with a “gift” in form of already compiled binary. Any of these two reasons makes a bad source package.

So my idea is doing the following:

  1. Make the changes to make those examples work without taking out assimp
  2. Try to make the version update of assimp for the official OF code

What do you think?

Greetings,

Jorge

currently the Assimp upgrade is milestoned to release 0074, which would mean if it stays that way that it will land in an OF release in approximately 5 months. if you are interested in contributing/working towards this change, you are welcome to help, just write in that issue. this 0074 milestone doesn’t mean that it can only be included in 0074, if it’s finished before that it can also go into 0073.

Hi there,

What is the point with this topic? really would like something functionnal and I’m able to help.
Do punkto interested to continue?

Working towards a package for Debian, Raspbian and Ubuntu would be very beneficial for users and developers of openFrameworks. Not only (human and) compilation time is saved, but also the electrical power needed for that. Also, platform support will improve as automated building of reproducible packages and automatically testing some basic OF applications will surface any conflicts with depending libraries.

What are currently the dependencies that still need packaging? Some have just only recently been packaged by Debian and Ubuntu. Here is an overview of latest stable of these distributions:

tess2

poco

rtAudio

assimp

kiss

  • ???
  • ???
2 Likes

This would be extremely helpful for deployment of OF on Raspbian in my case. I hope we can get there.

1 Like

Is there any updates regarding this matter?
I have an executable file on my app’s bin folder which is generated using make. when I double click it, my app runs.
In my case, do I need to only include files in bin folder(including data) to create a .deb package or do I need to include other OF dependencies too?
I would like to figure out what is needed to distribute OF apps so it can simply run on other computers too.
Thanks in advance.