• Bug#1106209: Incorrect dependencies on two "Architecture: all" packages

    From Daniel Richard G.@21:1/5 to All on Wed May 21 10:10:01 2025
    Package: nodejs
    Version: 20.19.2+dfsg-1

    The nodejs and libnode115 packages have dependencies on node-corepack
    and node-minimatch, respectively. The latter two are "Architecture:
    all". However, the dependency appears to be implicitly on native-arch
    versions of the packages, rather than the "all" ones. I encountered this
    issue in a somewhat unusual scenario:

    I am running a Docker container of debian:unstable for armhf, using
    qemu-user on an amd64 system. For speed, I am replacing several armhf
    packages in the container with their amd64 equivalents, after running
    "dpkg --add-architecture amd64". One of these packages is nodejs.

    To illustrate the problem, I first install the two dependency packages.
    (Note that nodejs is also pulled in, specifically nodejs:armhf):

    + apt-get -y install node-corepack node-minimatch
    Reading package lists...
    Building dependency tree...
    Reading state information...
    The following additional packages will be installed:
    libcares2 libicu76 libnode115 libuv1t64 node-acorn node-balanced-match
    node-brace-expansion node-cjs-module-lexer node-undici node-xtend nodejs
    nodejs-doc
    Suggested packages:
    npm
    The following NEW packages will be installed:
    libcares2 libicu76 libnode115 libuv1t64 node-acorn node-balanced-match
    node-brace-expansion node-cjs-module-lexer node-corepack node-minimatch
    node-undici node-xtend nodejs nodejs-doc
    0 upgraded, 14 newly installed, 0 to remove and 2 not upgraded.
    Need to get 27.5 MB of archives.
    After this operation, 110 MB of additional disk space will be used.
    [...]


    Now, I install the amd64 build of nodejs:

    + apt-get -y install nodejs:amd64
    Reading package lists...
    Building dependency tree...
    Reading state information...
    Solving dependencies...
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    nodejs:amd64 : Depends: libnode115:amd64 (= 20.19.2+dfsg-1) but it is not going to be installed
    Depends: node-corepack:amd64 but it is not installable
    E: Unable to correct problems, you have held broken packages.
    E: The following information from --solver 3.0 may provide additional context:
    Unable to satisfy dependencies. Reached two conflicting decisions:
    1. nodejs:amd64=20.19.2+dfsg-1 is selected for install
    2. nodejs:amd64 Depends node-corepack:amd64
    but none of the choices are installable:
    [no choices]


    There is no node-corepack:amd64, of course, and node-corepack:all is
    already installed.

    I worked around the error by building a metapackage with
    "Provides: node-corepack:amd64 (= 9.9.9)", and then I get this:

    + apt-get -y install nodejs:amd64
    Reading package lists...
    Building dependency tree...
    Reading state information...
    Solving dependencies...
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    libnode115:amd64 : Depends: node-minimatch:amd64 (>= 9.0.3-5) but it is not installable
    E: Unable to correct problems, you have held broken packages.
    E: The following information from --solver 3.0 may provide additional context:
    Unable to satisfy dependencies. Reached two conflicting decisions:
    1. libnode115:amd64 is selected for install because:
    1. nodejs:amd64=20.19.2+dfsg-1 is selected for install
    2. nodejs:amd64 Depends libnode115:amd64 (= 20.19.2+dfsg-1)
    2. libnode115:amd64 Depends node-minimatch:amd64 (>= 9.0.3-5)
    but none of the choices are installable:
    [no choices]

    Once I Provides: the two ersatz packages, I am able to install
    nodejs:amd64 without issue.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?SsOpcsOpbXkgTGFs?=@21:1/5 to All on Wed May 21 11:20:01 2025
    Le mer. 21 mai 2025 à 10:00, Daniel Richard G. <skunk@iskunk.org> a écrit :

    Package: nodejs
    Version: 20.19.2+dfsg-1

    The nodejs and libnode115 packages have dependencies on node-corepack
    and node-minimatch, respectively. The latter two are "Architecture:
    all". However, the dependency appears to be implicitly on native-arch versions of the packages, rather than the "all" ones. I encountered this issue in a somewhat unusual scenario:

    I am running a Docker container of debian:unstable for armhf, using
    qemu-user on an amd64 system. For speed, I am replacing several armhf packages in the container with their amd64 equivalents, after running
    "dpkg --add-architecture amd64". One of these packages is nodejs.

    To illustrate the problem, I first install the two dependency packages.
    (Note that nodejs is also pulled in, specifically nodejs:armhf):

    + apt-get -y install node-corepack node-minimatch
    Reading package lists...
    Building dependency tree...
    Reading state information...
    The following additional packages will be installed:
    libcares2 libicu76 libnode115 libuv1t64 node-acorn node-balanced-match
    node-brace-expansion node-cjs-module-lexer node-undici node-xtend nodejs
    nodejs-doc
    Suggested packages:
    npm
    The following NEW packages will be installed:
    libcares2 libicu76 libnode115 libuv1t64 node-acorn node-balanced-match
    node-brace-expansion node-cjs-module-lexer node-corepack node-minimatch
    node-undici node-xtend nodejs nodejs-doc
    0 upgraded, 14 newly installed, 0 to remove and 2 not upgraded.
    Need to get 27.5 MB of archives.
    After this operation, 110 MB of additional disk space will be used.
    [...]


    Now, I install the amd64 build of nodejs:

    + apt-get -y install nodejs:amd64
    Reading package lists...
    Building dependency tree...
    Reading state information...
    Solving dependencies...
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    nodejs:amd64 : Depends: libnode115:amd64 (= 20.19.2+dfsg-1) but it is not going to be installed
    Depends: node-corepack:amd64 but it is not installable
    E: Unable to correct problems, you have held broken packages.
    E: The following information from --solver 3.0 may provide additional context:
    Unable to satisfy dependencies. Reached two conflicting decisions:
    1. nodejs:amd64=20.19.2+dfsg-1 is selected for install
    2. nodejs:amd64 Depends node-corepack:amd64
    but none of the choices are installable:
    [no choices]


    There is no node-corepack:amd64, of course, and node-corepack:all is
    already installed.

    I worked around the error by building a metapackage with
    "Provides: node-corepack:amd64 (= 9.9.9)", and then I get this:

    + apt-get -y install nodejs:amd64
    Reading package lists...
    Building dependency tree...
    Reading state information...
    Solving dependencies...
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    libnode115:amd64 : Depends: node-minimatch:amd64 (>= 9.0.3-5) but it is
    not installable
    E: Unable to correct problems, you have held broken packages.
    E: The following information from --solver 3.0 may provide additional context:
    Unable to satisfy dependencies. Reached two conflicting decisions:
    1. libnode115:amd64 is selected for install because:
    1. nodejs:amd64=20.19.2+dfsg-1 is selected for install
    2. nodejs:amd64 Depends libnode115:amd64 (= 20.19.2+dfsg-1)
    2. libnode115:amd64 Depends node-minimatch:amd64 (>= 9.0.3-5)
    but none of the choices are installable:
    [no choices]

    Once I Provides: the two ersatz packages, I am able to install
    nodejs:amd64 without issue.



    I don't understand - at all - how those Arch: all packages (node-minimatch, node-corepack) became Arch: amd64 on your system.
    For example, node-corepack:amd64 never existed.
    It is probably an issue with Multiarch flags, but I need help on this.

    <div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">Le mer. 21 mai 2025 à 10:00, Daniel Richard G. &lt;<a href="mailto:skunk@iskunk.org">skunk@iskunk.org</a>&gt; a écrit :<br></
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Package: nodejs<br>
    Version: 20.19.2+dfsg-1<br>

    The nodejs and libnode115 packages have dependencies on node-corepack<br>
    and node-minimatch, respectively. The latter two are &quot;Architecture:<br> all&quot;. However, the dependency appears to be implicitly on native-arch<br> versions of the packages, rather than the &quot;all&quot; ones. I encountered this<br>
    issue in a somewhat unusual scenario:<br>

    I am running a Docker container of debian:unstable for armhf, using<br> qemu-user on an amd64 system. For speed, I am replacing several armhf<br> packages in the container with their amd64 equivalents, after running<br> &quot;dpkg --add-architecture amd64&quot;. One of these packages is nodejs.<br>

    To illustrate the problem, I first install the two dependency packages.<br> (Note that nodejs is also pulled in, specifically nodejs:armhf):<br>

    + apt-get -y install node-corepack node-minimatch<br>
    Reading package lists...<br>
    Building dependency tree...<br>
    Reading state information...<br>
    The following additional packages will be installed:<br>
      libcares2 libicu76 libnode115 libuv1t64 node-acorn node-balanced-match<br>   node-brace-expansion node-cjs-module-lexer node-undici node-xtend nodejs<br>   nodejs-doc<br>
    Suggested packages:<br>
      npm<br>
    The following NEW packages will be installed:<br>
      libcares2 libicu76 libnode115 libuv1t64 node-acorn node-balanced-match<br>   node-brace-expansion node-cjs-module-lexer node-corepack node-minimatch<br>   node-undici node-xtend nodejs nodejs-doc<br>
    0 upgraded, 14 newly installed, 0 to remove and 2 not upgraded.<br>
    Need to get 27.5 MB of archives.<br>
    After this operation, 110 MB of additional disk space will be used.<br> [...]<br>


    Now, I install the amd64 build of nodejs:<br>

    + apt-get -y install nodejs:amd64<br>
    Reading package lists...<br>
    Building dependency tree...<br>
    Reading state information...<br>
    Solving dependencies...<br>
    Some packages could not be installed. This may mean that you have<br>
    requested an impossible situation or if you are using the unstable<br> distribution that some required packages have not yet been created<br>
    or been moved out of Incoming.<br>
    The following information may help to resolve the situation:<br>

    The following packages have unmet dependencies:<br>
     nodejs:amd64 : Depends: libnode115:amd64 (= 20.19.2+dfsg-1) but it is not going to be installed<br>
                    Depends: node-corepack:amd64 but it is not installable<br>
    E: Unable to correct problems, you have held broken packages.<br>
    E: The following information from --solver 3.0 may provide additional context:<br>
       Unable to satisfy dependencies. Reached two conflicting decisions:<br>
       1. nodejs:amd64=20.19.2+dfsg-1 is selected for install<br>
       2. nodejs:amd64 Depends node-corepack:amd64<br>
          but none of the choices are installable:<br>
          [no choices]<br>


    There is no node-corepack:amd64, of course, and node-corepack:all is<br> already installed.<br>

    I worked around the error by building a metapackage with<br>
    &quot;Provides: node-corepack:amd64 (= 9.9.9)&quot;, and then I get this:<br>

    + apt-get -y install nodejs:amd64<br>
    Reading package lists...<br>
    Building dependency tree...<br>
    Reading state information...<br>
    Solving dependencies...<br>
    Some packages could not be installed. This may mean that you have<br>
    requested an impossible situation or if you are using the unstable<br> distribution that some required packages have not yet been created<br>
    or been moved out of Incoming.<br>
    The following information may help to resolve the situation:<br>

    The following packages have unmet dependencies:<br>
     libnode115:amd64 : Depends: node-minimatch:amd64 (&gt;= 9.0.3-5) but it is not installable<br>
    E: Unable to correct problems, you have held broken packages.<br>
    E: The following information from --solver 3.0 may provide additional context:<br>
       Unable to satisfy dependencies. Reached two conflicting decisions:<br>
       1. libnode115:amd64 is selected for install because:<br>
          1. nodejs:amd64=20.19.2+dfsg-1 is selected for install<br>
          2. nodejs:amd64 Depends libnode115:amd64 (= 20.19.2+dfsg-1)<br>
       2. libnode115:amd64 Depends node-minimatch:amd64 (&gt;= 9.0.3-5)<br>
          but none of the choices are installable:<br>
          [no choices]<br>

    Once I Provides: the two ersatz packages, I am able to install<br>
    nodejs:amd64 without issue.</blockquote><div><br></div><div><br></div><div>I don&#39;t understand - at all - how those Arch: all packages (node-minimatch, node-corepack) became Arch: amd64 on your system.</div><div>For example, node-corepack:amd64 never
    existed.</div><div>It is probably an issue with Multiarch flags, but I need help on this.</div><div> </div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?SsOpcsOpbXkgTGFs?=@21:1/5 to All on Wed May 21 11:50:01 2025
    Le mer. 21 mai 2025 à 11:39, Daniel Richard G. <skunk@iskunk.org> a écrit :

    (Apologies, didn't see your second message before my previous reply)

    On Wed, 2025 May 21 05:13-04:00, Jérémy Lal wrote:

    https://launchpad.net/ubuntu/plucky/+package/node-corepack
    doesn't mention any Arch: all version of the package.
    I suppose Ubuntu did things differently ?

    I filed a similar bug in Launchpad that I (coincidentally) encountered
    on plucky:

    https://bugs.launchpad.net/bugs/2111189

    There, only node-minimatch was an issue, because Ubuntu's nodejs package
    has no dependency on node-corepack.

    But their node-corepack package is also "Arch: all" like Debian's:

    https://packages.ubuntu.com/plucky/node-corepack

    The arch specifiers on the page you linked seem to describe the build systems, although I don't see why they'd need more than one build of
    that package...



    Both packages are missing
    Multi-Arch: foreign

    Fixing it...

    <div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">Le mer. 21 mai 2025 à 11:39, Daniel Richard G. &lt;<a href="mailto:skunk@iskunk.org">skunk@iskunk.org</a>&gt; a écrit :<br></
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">(Apologies, didn&#39;t see your second message before my previous reply)<br>

    On Wed, 2025 May 21 05:13-04:00, Jérémy Lal wrote:<br>
    &gt;<br>
    &gt; <a href="https://launchpad.net/ubuntu/plucky/+package/node-corepack" rel="noreferrer" target="_blank">https://launchpad.net/ubuntu/plucky/+package/node-corepack</a><br>
    &gt; doesn&#39;t mention any Arch: all version of the package.<br>
    &gt; I suppose Ubuntu did things differently ?<br>

    I filed a similar bug in Launchpad that I (coincidentally) encountered<br>
    on plucky:<br>

        <a href="https://bugs.launchpad.net/bugs/2111189" rel="noreferrer" target="_blank">https://bugs.launchpad.net/bugs/2111189</a><br>

    There, only node-minimatch was an issue, because Ubuntu&#39;s nodejs package<br>
    has no dependency on node-corepack.<br>

    But their node-corepack package is also &quot;Arch: all&quot; like Debian&#39;s:<br>

        <a href="https://packages.ubuntu.com/plucky/node-corepack" rel="noreferrer" target="_blank">https://packages.ubuntu.com/plucky/node-corepack</a><br>

    The arch specifiers on the page you linked seem to describe the build<br> systems, although I don&#39;t see why they&#39;d need more than one build of<br>
    that package...<br></blockquote><div><br></div><div><br></div><div>Both packages are missing</div><div>Multi-Arch: foreign</div><div><br></div><div>Fixing it... </div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)