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

Re: Packaging a project using cmake



On Sat, Jun 7, 2008 at 8:28 PM, Sune Vuorela <nospam@vuorela.dk> wrote:
> On 2008-06-07, Mathieu Malaterre <mathieu.malaterre@gmail.com> wrote:
>>>> What do you mean ? Indeed I want the whole process from src to .deb
>>>> handled by cmake.
>>>
>>> Then please forget it. That doesn't make proper debs.
>>
>> because...
>
> Because they doesn't use
>  - dpkg-shlibdeps

I cannot figure out how to get this thing working. It keeps on
complaining when fed with an exe that I just build :
dpkg-shlibdeps: failure: no dependency information found for
/tmp/local/lib/libgdcmjpeg12.so.62.1 (used by
/tmp/local/bin/gdcmdump).

>  - python-support|python-central for python stuff

That's the thing I as asking for in the first place, will look into it, thanks.

>  - running ldconfig in postinst

AFAIK that's not always required...

>  - interacting with postinst/preinst in other ways

I can tell cmake to package my own postinst/preinst file, eg:

http://gdcm.svn.sourceforge.net/viewvc/gdcm/Sandbox/gdcmreadahead/

>>> And this is where the cmake folks are wrong (I once wrote them a long
>>> email about it).
>>
>> link, please ?
>
> To Alex Neundorff and Bill Hoffmann.

I originally wrote the deb plugin, Alex simply integrated in cmake. If
you've lost the email, I'll check with them.

>> Well thanks ! That was a good bug report, indeed I forgot to duplicate
>> cmake stuff into the equivalent debian file. I'll fix ASAP. But it
>> should read:
>>
>>   SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libstdc++6 (>= 4.0.2-4),
>> libuuid1, zlib1g (>= 1:1.2.1), libgcc1 (>= 1:4.0.2), libexpat1, swig")
>
> you do this *manually* ?

I had to look at what packages I had installed on my machine. Using
ldd I just selected a couple of them (I might be missing some).
As I said I could not figure out what tool was used to dump that
particular line in the control file.

>>   Everytime I look at a debian package, it seems that those values are
>> somehow hardcoded. I would think that a human is actually checking
>> those versions, correct ? Or is there a tool that would say:
>>
>> $ superdupertool libfoo.so
>>=> this lib requires libstdc++6 at least version 4.0.2
>
> dpkg-shlibdeps run during build does that and then dpkg-gencontrol
> replaces the ${shlibs:Depends} in control file

ok

All this is kindda new to me. When I was looking at debian package
that use cmake to be build, I assumed the value in the control files
where hardcoded.

So, I changed my mind, I am not looking into deb-packaging my project
directly, but instead have the minimum debian specific files that
start cmake and in the end produce a valid/consistant .deb file. I was
suggest libopensync, is this a good start ?

Thanks again,
-- 
Mathieu
Ps: I had the discussion with Alex whether or not we should rely on
the dpkg-* tool to build a .deb file, since it appeared to me as being
only simply a 'ar' file , I assumed we could bypass them. Anyway
dpkg-shlibdeps seems to be a much more complex tool than just objdump
or ldd on the lib, this will be difficult to avoid.


Reply to: