Project

General

Profile

Actions

Bug #409

open

PaxHeader/+BUILD_INFO in multiple apt packages on 18.04

Added by Guilhem Saurel 8 months ago. Updated 7 months ago.

Status:
Feedback
Priority:
Normal
Assignee:
-

Description

Hi,

It looks like, on 18.04, both robotpkg-omniorb and robotpkg-collada-dom provide the "PaxHeader/+BUILD_INFO" file:

$ apt install robotpkg-py36-qt5-gepetto-viewer-corba
[…]
45.61 Selecting previously unselected package robotpkg-collada-dom.
45.61 Preparing to unpack .../271-robotpkg-collada-dom_2.4.0r1_amd64.deb ...
45.61 Unpacking robotpkg-collada-dom (2.4.0r1) ...
45.85 Selecting previously unselected package robotpkg-omniorb.
45.85 Preparing to unpack .../272-robotpkg-omniorb_4.2.4_amd64.deb ...
45.85 Unpacking robotpkg-omniorb (4.2.4) ...
45.85 dpkg: error processing archive /tmp/apt-dpkg-install-pLI4Nt/272-robotpkg-omniorb_4.2.4_amd64.deb (--unpack):
45.85  trying to overwrite '/opt/openrobots/PaxHeader/+BUILD_INFO', which is also in package robotpkg-collada-dom 2.4.0r1
45.85 dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
45.86 Selecting previously unselected package robotpkg-openscenegraph.
45.87 Preparing to unpack .../273-robotpkg-openscenegraph_3.6.5r3_amd64.deb ...
45.87 Unpacking robotpkg-openscenegraph (3.6.5r3) ...
45.87 dpkg: error processing archive /tmp/apt-dpkg-install-pLI4Nt/273-robotpkg-openscenegraph_3.6.5r3_amd64.deb (--unpack):
45.87  trying to overwrite '/opt/openrobots/PaxHeader/+BUILD_INFO', which is also in package robotpkg-collada-dom 2.4.0r1
45.87 dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
45.88 Selecting previously unselected package robotpkg-py36-omniorbpy.
45.88 Preparing to unpack .../274-robotpkg-py36-omniorbpy_4.2.4_amd64.deb ...
45.88 Unpacking robotpkg-py36-omniorbpy (4.2.4) ...
45.88 dpkg: error processing archive /tmp/apt-dpkg-install-pLI4Nt/274-robotpkg-py36-omniorbpy_4.2.4_amd64.deb (--unpack):
45.88  trying to overwrite '/opt/openrobots/PaxHeader/+BUILD_INFO', which is also in package robotpkg-collada-dom 2.4.0r1
45.88 dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
45.89 Selecting previously unselected package robotpkg-qt5-osgqt.
45.90 Preparing to unpack .../275-robotpkg-qt5-osgqt_3.5.7r3_amd64.deb ...
45.90 Unpacking robotpkg-qt5-osgqt (3.5.7r3) ...
45.90 dpkg: error processing archive /tmp/apt-dpkg-install-pLI4Nt/275-robotpkg-qt5-osgqt_3.5.7r3_amd64.deb (--unpack):
45.90  trying to overwrite '/opt/openrobots/PaxHeader/+BUILD_INFO', which is also in package robotpkg-collada-dom 2.4.0r1
45.91 Selecting previously unselected package robotpkg-py36-qt5-gepetto-viewer.
45.91 Preparing to unpack .../276-robotpkg-py36-qt5-gepetto-viewer_5.0.0_amd64.deb ...
45.91 Unpacking robotpkg-py36-qt5-gepetto-viewer (5.0.0) ...
45.91 dpkg: error processing archive /tmp/apt-dpkg-install-pLI4Nt/276-robotpkg-py36-qt5-gepetto-viewer_5.0.0_amd64.deb (--unpack):
45.91  trying to overwrite '/opt/openrobots/PaxHeader/+BUILD_INFO', which is also in package robotpkg-collada-dom 2.4.0r1
45.91 dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
45.92 Selecting previously unselected package robotpkg-py36-qt5-gepetto-viewer-corba.
45.93 Preparing to unpack .../277-robotpkg-py36-qt5-gepetto-viewer-corba_5.8.0_amd64.deb ...
45.93 Unpacking robotpkg-py36-qt5-gepetto-viewer-corba (5.8.0) ...
45.93 dpkg: error processing archive /tmp/apt-dpkg-install-pLI4Nt/277-robotpkg-py36-qt5-gepetto-viewer-corba_5.8.0_amd64.deb (--unpack):
45.93  trying to overwrite '/opt/openrobots/PaxHeader/+BUILD_INFO', which is also in package robotpkg-collada-dom 2.4.0r1
45.93 dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
45.94 Errors were encountered while processing:
45.94  /tmp/apt-dpkg-install-pLI4Nt/272-robotpkg-omniorb_4.2.4_amd64.deb
45.94  /tmp/apt-dpkg-install-pLI4Nt/273-robotpkg-openscenegraph_3.6.5r3_amd64.deb
45.94  /tmp/apt-dpkg-install-pLI4Nt/274-robotpkg-py36-omniorbpy_4.2.4_amd64.deb
45.94  /tmp/apt-dpkg-install-pLI4Nt/275-robotpkg-qt5-osgqt_3.5.7r3_amd64.deb
45.94  /tmp/apt-dpkg-install-pLI4Nt/276-robotpkg-py36-qt5-gepetto-viewer_5.0.0_amd64.deb
45.94  /tmp/apt-dpkg-install-pLI4Nt/277-robotpkg-py36-qt5-gepetto-viewer-corba_5.8.0_amd64.deb
45.98 E: Sub-process /usr/bin/dpkg returned an error code (1)

Any clue of what could cause this ?
20.04 is not concerned by this issue, so maybe, instead of debugging too hard, we could decide to drop 18.04 :)

Actions #1

Updated by Anthony Mallet 8 months ago · Edited

This must be happening since the import of pkg_install-20211115
(4f24d65).

When a binary pkg is created by robotpkg_create, there is now a pax
file attribute 'hdrcharset=BINARY' that is set in build.c

As per the POSIX pax format
this is to interpret any pax attribute like gname, linkpath, path or
unme pax headers as raw data. The commit in pkg_install upstream
mentions this:


Always read/write file names in tar archives as binary. While they
are supposed to be UTF-8, locale conversion creates more problems than
it solves here.

Then, those binary packages are extracted with 'pax(1)' to convert
them to .deb packages. pax(1) on ubuntu-18.04 says:


BUGS: The pax file format is not yet supported

Which explains why the pax extended headers containing the
hdrcharset=BINARY attribute are extracted as plain files.

One possible workaround is to use robotpkg/archivers/pax on this
platform. Or, as you said, drop support for it as it is EOL now :)

Actions #2

Updated by Guilhem Saurel 8 months ago · Edited

Hum, I thought it was only in a couple packages, and clearly gepetto-viewer-corba on 18.04 is not the highest priority. but if we have this in all packages, on both 18.04 and 18.04-pal, this will probably break our worflow on talos, so I would be in favor of using our own pax :)

Actions #3

Updated by Anthony Mallet 8 months ago

OK, I'll look into enabling robotpkg pax on ubuntu-18.04 then.

Actions #4

Updated by Anthony Mallet 7 months ago

This is actually more complex than it seemed.
Even robotpkg pax is not able to handle the extended pax attributes.
And even the most recent pax in pkgsrc or netbsd does not handle them
either. (this means that NetBSD binary packages created after 2017
cannot be extracted with pax ... weird).

So, my plan B would be to revert the line in build.c that creates those
extended headers, as we never had any issues with UTF-8 file names.

But I'm still searching for an appropriate plan A, in order to really
fix that.

Actions #5

Updated by Anthony Mallet 7 months ago · Edited

  • Status changed from New to Feedback

See associated revisions for commits hopefully fixing this.
Packages may not be rebuilt automatically though, I'm not sure if the version update of pkgrepo2deb triggers rebuilding of .deb packages...

Actions

Also available in: Atom PDF