[cmake-developers] Problem with created debian package

Domen Vrankar domen.vrankar at gmail.com
Fri Dec 29 16:25:53 EST 2017


2017-12-29 14:20 GMT+01:00 Kornel Benko <kornel at lyx.org>:

> All of sudden, cmake(cpack) started producing wrong debian packages for
> one project.
>

Did the project change in some way or was it the packaging environment that
changed?
I'd like to know a bit more details even if the solution below works to
determine if this was a regression in CPack or something else.


> This is the output of debian package manager:
>
>         dpkg: warning: downgrading lyx24 from 2.4.0-50424git-g3a4b233 to
> 2.4.0-50422git-gd6fb2ab
>         (Reading database ... 422667 files and directories currently
> installed.)
>         Preparing to unpack lyx24-2.4.0-50422git-Linux.deb ...
>         Unpacking lyx24 (2.4.0-50422git-gd6fb2ab) over
> (2.4.0-50424git-g3a4b233) ...
>         dpkg: error processing archive lyx24-2.4.0-50422git-Linux.deb
> (--install):
>          corrupted filesystem tarfile - corrupted package archive
>         dpkg-deb: error: subprocess paste was killed by signal (Broken
> pipe)
>         Errors were encountered while processing:
>          lyx24-2.4.0-50422git-Linux.deb
>
> Analysing the data.tar.gz gives no hint. What helps is a sequence of
> commands using the system's 'tar'.
>
>         # ar xv  lyx24-2.4.0-50422git-Linux.deb  data.tar.gz
>         # sudo tar axf data.tar.gz
>         # tar cf data.tar ./usr
>         # gzip -f data.tar
>         # ar rv  lyx24-2.4.0-50422git-Linux.deb  data.tar.gz
>
> Now everything is OK.
> Other projects do not show this behaviour.
> This is cmake 3.10.20171229-g3e1f5b11, but the same happens with earlier
> version.
>

I'm surprised that this fixed the problem but from what you're describing
I'd say that some paths in the data tarball are too long for the paxr
version of tar to handle correctly (this is the default tar that is used by
CPack and debian packages as it is the most portable one).
If I'm right you could:

1) shorten the file paths in the archive
2) use gnu tar instead by setting CPACK_DEBIAN_ARCHIVE_TYPE to gnutar

See
https://cmake.org/cmake/help/v3.10/module/CPackDeb.html#variable:CPACK_DEBIAN_ARCHIVE_TYPE

Regards,
Domen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20171229/a8adeed9/attachment.html>


More information about the cmake-developers mailing list