[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [cmake][multipackaging] best practices



My experience with upstream CMake projects is that a lot are using CPack to provide a ubiquitous packaging solution.

However what upstream "thinks" as a reasonable binary package decomposition may not agree with the Debian policy. For instance, upstream may decide to put the documentation in the -dev package instead of a separate -doc package. Or automatically strip all binaries from debugging symbols for performance reasons. Debian also requires harder build flags for security reasons and supports multi-arch paths, which upstream rarely take into account in writing their install targets.

And this is just speaking for Debian. The policy is likely to be different for another distribution, like Fedora.

With that in mind, writing a one-fit-all pure CMake solution should be plainly avoided. Besides, provided your CMake is not too exotic, the packaging rules are fairly easy to write with the right example to start with. Please have a look at the c.d.n [1] and search for one.

[1] https://codesearch.debian.net/

Hope this helps,

Ghis


On 04/11/15 08:50, Gianfranco Costamagna wrote:
Hi, generating debian files from cmake is not trivial, and I'm not sure I can answer here.

Furthermore, in Debian we don't have this need, and generating them (autogenerating) is source
of problems with official packages.

So I'm afraid (while I like the opportunity), nobody will be interested in this list :(

(BTW you seem to produce an old style rules file, without the new dh calls, and the control
file has no shlibs:Depends, python:Depends and so on.)

(but I did a really quick look)

cheers,

G.





Il Mercoledì 4 Novembre 2015 9:16, Raffi Enficiaud <raffi.enficiaud@mines-paris.org> ha scritto:
Le 02/11/15 11:04, Raffi Enficiaud a écrit :
Hi,

Recently I pushed a couple of changes to the cmake project that allow
cmake to run on Launchpad. Those changes were targeted at making cmake
able to create Debian packages directly (before that, it was unable to
create Debian packages in fakeroot, and packages definitions were too
rough).

I am now able to package my project properly in Launchpad, without going
through any install step. My source code produces several .deb files,
and all of them is managed by cmake directly because I want the split of
the project be done in all platforms the same way.

I have some open questions and doubts about how I implemented this, and
I wanted to have feedbacks on the debian/rule and debian/control file I
wrote. Also I am not sure if those are correct wrt. the packages created
by cmake (will explain below).

[snip]

Hi,

No one? Maybe I sent this to the wrong list?


Thanks,
Raffi



Reply to: