How to build .deb packages of Natron?


#1

i usully build natron myself, since we have to subcribe to get binary access.
following the instructions for installing Natron from source at GitHub is a little bit fiddly and time consuming, but it sort of works.

this time i wanted to create a little script to automatize the process – not only, to make it more comfortable, but also to produce binaries, which should look and behave like the official binaries as close as possible in a reproducible way. i was studding the the qmake project files and and the travis instructions in the tools folder of the source tree, but i couldn’t figure out, how the offical binaries are finally made?

are there some hidden additional scripts involved, that are not included in the open source distribution, or is just a lack of knowledge or stupidity on my side, that i couldn’t guess a straight forward solution to reproduce this task?

could you please share a few hints, how to handle this process in a similar way as on your side, to produce debian packages, which do not differ from the official ones in any significant aspect.


#2

no anser? – no help?

well – after digging further building more debian like packaging, i finally found:

https://github.com/MrKepzie/Natron/blob/master/.travis.yml#L20

i’m still evaluating different solutions, to use this travis instructions for local debian builds without much superfluous code duplication, but it doesn’t look very promising. to run travis on local docker intallations, you have to download gigantic images. from a practical point of view, this doesn’t make sense for the local processing of .deb-sources.

sure, i understand all the difficulties to manage multi platform project like natron and all the complicated requirements to produce working binaries frequently in an effective manner. therefore i really respect the choice of it’s maintainers to use complex services like travis for this kind of jobs, but GNU licensed code and the debian project are very demanding in this respect:

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. (GPL v2)

a package, that can not be compiled by users themself on their local machine, simply wouldn’t be accepted in the official debian distribution and their strict notion of “open source”.

it’s very complex field of troubles. Guus Sliepen gave an interesting talk about this family of issues recently at FOSDEM:

https://fosdem.org/2017/schedule/event/source_code_are_we_not_forgetting_something/

i’m still working on a solution, to solve this requirements for particular case of natron on debian based distros and it’s compilation/installation requirements.

it would be really helpful, if the involved natron core developers could explain their strategies of packaging a little bit more traceable and share their ideas, how we should add other compiling/packaging options without unnecessary high maintenance code duplication.


#3

Everything on the repositories making up Natron + openfx contains the build scripts to actually reproduce the build: the .pro files in Natron and the Makefiles on OpenFX side.
Deployment code on linux is handled with the Qt installer frame work which is also open-source.
Everything can be reproduced with what is distributed, of course we don’t source control third party binaries and the credentials to our servers.


#4

thanks for this clarification!
i’ll try to reproduce it…


#5

last week i spend some time again to study this issue, but i’m still not able to find any useful information in the source tree, how your .deb packes are really created. :frowning:

this time i stumbled over a section i concerning the “automatic build system” of the documentation and the relates scripts in tool/linux in git history, but both of them became removed on 2016-05-02. since this date it’s utterly intransparent, how the binaries at downloads.natron.fr are made in fact.

[quote=“MrKepzie, post:3, topic:1345”]
Everything on the repositories making up Natron + openfx contains the build scripts to actually reproduce the build: the .pro files in Natron and the Makefiles on OpenFX side.[/quote]

no – i don’t think, anybody outside of natrons core development team is able to reproduce the debian package creation as it is done on your build servers just by code and documentation available in the main natron github repository… but i would be happy, if someone is able to falsify this statement.

sure – i’m quite certain, that you only use open source tools for the build and deployment process of those distribution specific binary packages – that’s not the question --, but how it’s actually done in practice, isn’t retraceable to anyone of us.

we can just guess, that it could by done by utilizing the Natron.spec file and later package translation, or by linuxdeployqt+fpm or some entirely other method… but it’s just guessing! there is no information available, how it is really done resp. how we can do it ourself based on available sources?

it would be really great, if you could give us enough additional info to actually reproduce and understand this process.