Am Freitag, 29. Dezember 2017 um 22:25:53, schrieb Domen Vrankar <domen.vran...@gmail.com> > 2017-12-29 14:20 GMT+01:00 Kornel Benko <kor...@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.
Not that I were aware of. > > > 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 Thanks, this is really nice. Meanwhile I found out what was going wrong. The package manager seems to not understand the way some filenames containing non-ascii chars are coded by cpack. I prepared a minimal example showing the effect here. 1.) Create a dir and copy the attached to it 2.) mkdir build; cd bild 3.) cmake .. -DCPACK_BINARY_DEB:BOOL=ON 4.) sudo dpkg -i wrongfilename-0.1.1-Linux.deb (Reading database ... 422665 files and directories currently installed.) Preparing to unpack wrongfilename-0.1.1-Linux.deb ... Unpacking wrongfilename (0.1.1) ... dpkg: error processing archive wrongfilename-0.1.1-Linux.deb (--install): corrupted filesystem tarfile - corrupted package archive Errors were encountered while processing: wrongfilename-0.1.1-Linux.deb > See > https://cmake.org/cmake/help/v3.10/module/CPackDeb.html#variable:CPACK_DEBIAN_ARCHIVE_TYPE > > Regards, > Domen Kornel
signature.asc
Description: This is a digitally signed message part.
cmake_minimum_required(VERSION 2.6.4) project(wrongfilename) set(FN "novýsúbor.txt") install(FILES ${FN} DESTINATION "share") set(CPACK_PACKAGE_CONTACT "Kornel.Benko") include(CPack)
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake-developers