VSCode SDK Container not building anymore

Hi!

Yesterday I was developing a Qt C++/QML app with VSCode (on Linux), and after adding a library to the dev container, I tried to rebuild the SDK (for the first time after some days without adding any library) but it failed. I tried with a new project, but the error was the same. Today, I am using a different computer (Windows), and after creating a new basic Qt QML project, it fails with the same error:

Step 1/4 : FROM torizon/debian-cross-toolchain-arm64:2-bullseye


 ---> f278eed1d519

Step 2/4 : RUN HOLD_PKGS='libdrm-common libdrm-amdgpu1:arm64 libdrm2:arm64'     && apt-get -y update     && apt-get -y upgrade     && for P in $HOLD_PKGS ; do     echo ${P}=$(apt-cache show $P | sed -r -e '/^Version:/!d' -e 's/.* //' -e '/toradex/d' -e 'q') ;     done | xargs -r apt-get install -y --no-install-recommends     && apt-mark hold $HOLD_PKGS     && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*


 ---> Running in cce134e603b4

Get:1 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye InRelease [142 kB]

Get:2 https://feeds.toradex.com/debian/snapshots/20210525T091852Z testing InRelease [13.0 kB]

Get:3 https://feeds.toradex.com/debian/snapshots/20210525T091852Z testing/non-free arm64 Packages [13.1 kB]

Get:4 https://feeds.toradex.com/debian/snapshots/20210525T091852Z testing/main arm64 Packages [135 kB]

Get:5 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye-updates InRelease [40.1 kB]

Get:6 http://snapshot.debian.org/archive/debian-security/20210408T000000Z bullseye-security InRelease [44.1 kB]

Get:7 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 Packages [8088 kB]

Get:8 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main amd64 Packages [8201 kB]

Get:9 http://snapshot.debian.org/archive/debian-security/20210408T000000Z bullseye-security/main arm64 Packages [808 B]

Get:10 http://snapshot.debian.org/archive/debian-security/20210408T000000Z bullseye-security/main amd64 Packages [812 B]

Fetched 16.7 MB in 35s (474 kB/s)
Reading package lists...


Reading package lists...


Building dependency tree...

Reading state information...


Calculating upgrade...


0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Reading package lists...


Building dependency tree...

Reading state information...


The following additional packages will be installed:

  gcc-10-base:arm64 libc6:arm64 libcrypt1:arm64 libgcc-s1:arm64

Suggested packages:
  glibc-doc:arm64 libc-l10n:arm64 locales:arm64
Recommended packages:
  libidn2-0:arm64 libnss-nis:arm64 libnss-nisplus:arm64

The following NEW packages will be installed:

  gcc-10-base:arm64 libc6:arm64 libcrypt1:arm64 libdrm-amdgpu1:arm64

  libdrm-common libdrm2:arm64 libgcc-s1:arm64

0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 2869 kB of archives.
After this operation, 11.4 MB of additional disk space will be used.
Get:1 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 gcc-10-base arm64 10.2.1-6 [201 kB]

Get:2 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 libgcc-s1 arm64 10.2.1-6 [34.6 kB]

Get:3 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 libcrypt1 arm64 1:4.4.17-1 [89.3 kB]

Get:4 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 libc6 arm64 2.31-11 [2460 kB]

Get:5 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main amd64 libdrm-common all 2.4.104-1 [14.9 kB]

Get:6 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 libdrm2 arm64 2.4.104-1 [41.3 kB]

Get:7 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 libdrm-amdgpu1 arm64 2.4.104-1 [28.0 kB]

e[91mdebconf: delaying package configuration, since apt-utils is not installed
e[0m
Fetched 2869 kB in 21s (137 kB/s)

Selecting previously unselected package gcc-10-base:arm64.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 21512 files and directories currently installed.)

Preparing to unpack .../0-gcc-10-base_10.2.1-6_arm64.deb ...

Unpacking gcc-10-base:arm64 (10.2.1-6) ...

Selecting previously unselected package libgcc-s1:arm64.

Preparing to unpack .../1-libgcc-s1_10.2.1-6_arm64.deb ...

Unpacking libgcc-s1:arm64 (10.2.1-6) ...

Selecting previously unselected package libcrypt1:arm64.

Preparing to unpack .../2-libcrypt1_1%3a4.4.17-1_arm64.deb ...

Unpacking libcrypt1:arm64 (1:4.4.17-1) ...

Selecting previously unselected package libc6:arm64.

Preparing to unpack .../3-libc6_2.31-11_arm64.deb ...

Unpacking libc6:arm64 (2.31-11) ...

Selecting previously unselected package libdrm-common.

Preparing to unpack .../4-libdrm-common_2.4.104-1_all.deb ...

Unpacking libdrm-common (2.4.104-1) ...

Selecting previously unselected package libdrm2:arm64.

Preparing to unpack .../5-libdrm2_2.4.104-1_arm64.deb ...

Unpacking libdrm2:arm64 (2.4.104-1) ...

Selecting previously unselected package libdrm-amdgpu1:arm64.

Preparing to unpack .../6-libdrm-amdgpu1_2.4.104-1_arm64.deb ...

Unpacking libdrm-amdgpu1:arm64 (2.4.104-1) ...

Setting up gcc-10-base:arm64 (10.2.1-6) ...

Setting up libdrm-common (2.4.104-1) ...

Setting up libcrypt1:arm64 (1:4.4.17-1) ...

Setting up libgcc-s1:arm64 (10.2.1-6) ...

Setting up libc6:arm64 (2.31-11) ...

Setting up libdrm2:arm64 (2.4.104-1) ...

Setting up libdrm-amdgpu1:arm64 (2.4.104-1) ...

Processing triggers for libc-bin (2.31-11) ...

libdrm-common set on hold.
libdrm-amdgpu1:arm64 set on hold.
libdrm2:arm64 set on hold.

Reading package lists...


Building dependency tree...

Reading state information...


0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

 ---> 66f8644a05c2

Step 3/4 : RUN apt-get -q -y update     && apt-get -q -y install gdb-multiarch procps rsync openssh-client    qt5-qmake:arm64     qtbase5-dev:arm64     qtdeclarative5-dev:arm64 libegl-dev:arm64 libgl-dev:arm64        && rm -rf /var/lib/apt/lists/*


 ---> Running in 96c905f4001c

Get:1 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye InRelease [142 kB]

Get:2 https://feeds.toradex.com/debian/snapshots/20210525T091852Z testing InRelease [13.0 kB]

Get:3 https://feeds.toradex.com/debian/snapshots/20210525T091852Z testing/non-free arm64 Packages [13.1 kB]

Get:4 https://feeds.toradex.com/debian/snapshots/20210525T091852Z testing/main arm64 Packages [135 kB]

Get:5 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye-updates InRelease [40.1 kB]

Get:6 http://snapshot.debian.org/archive/debian-security/20210408T000000Z bullseye-security InRelease [44.1 kB]

Get:7 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main arm64 Packages [8088 kB]

Get:8 http://snapshot.debian.org/archive/debian/20210408T000000Z bullseye/main amd64 Packages [8201 kB]

Get:9 http://snapshot.debian.org/archive/debian-security/20210408T000000Z bullseye-security/main arm64 Packages [808 B]

Get:10 http://snapshot.debian.org/archive/debian-security/20210408T000000Z bullseye-security/main amd64 Packages [812 B]

Fetched 16.7 MB in 58s (287 kB/s)
Reading package lists...


Reading package lists...


Building dependency tree...

Reading state information...


openssh-client is already the newest version (1:8.4p1-5).
openssh-client set to manually installed.
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:

 qtdeclarative5-dev:arm64 : Depends: libqt5qml5:arm64 (= 5.14.2+dfsg-3)
                            Depends: libqt5quick5:arm64 (= 5.14.2+dfsg-3) or
                                     libqt5quick5-gles:arm64 (= 5.14.2+dfsg-2) but it is not going to be installed
                            Depends: libqt5quickparticles5:arm64 (= 5.14.2+dfsg-3) or
                                     libqt5quickparticles5-gles:arm64 (= 5.14.2+dfsg-2) but it is not going to be installed
                            Depends: libqt5quickshapes5:arm64 (= 5.14.2+dfsg-3) but it is not going to be installed
                            Depends: libqt5quicktest5:arm64 (= 5.14.2+dfsg-3)
                            Depends: libqt5quickwidgets5:arm64 (= 5.14.2+dfsg-3)

e[91mE: Unable to correct problems, you have held broken packages.
e[0m
[06-25 12:46:41.939] Local docker exception.
[06-25 12:46:45.439] Error (534) - OS error: [Errno -2] Name or service not known
[06-25 12:46:45.439] OS error.

config.yaml file contents are:

devices:
    common: []
    debug: []
    release: []
dockercomposefile:
    common: ''
    debug: ''
    release: ''
extraparms:
    common: {}
    debug: {}
    release: {}
id: e849f412-6268-4ec5-a82e-b8069fc92b9c
images:
    debug: sha256:d3d1067df1347dc62d54029c48f423691e662e46ef6f2dfafe17348b7d46ef2c
    release: ''
modificationdate: '2021-06-18T21:18:09.120365'
networks:
    common: []
    debug: []
    release: []
platformid: arm64v8-qt5-vivante-no-ssh_bullseye
ports:
    common: {}
    debug: {}
    release: {}
privatekey: '-----BEGIN RSA PRIVATE KEY-----

    MIIEpAIBAAKCAQEA0PZQ/2OhfzE7ZRV/TGyzmckNQ6osvvqXTdzfJi0rB5o9CPSl

    ZNqRjqVnu794rdO+2BvcCUEsxDdEi+r6xd6DoAvPO6Nzie5geA81mxUT5rrW5WuM

    5k9uVCkMVtAs478K8tWNv0ct4pWzH0cyp0VmlExlGOc1EpfK2UQCRQvdnQSUoqLz

    OMNEV9q6EuFBCPvwbZDxFrmE7fBiRaLioAEpWeUH+tyJMyForYG/sxIUIrLQj1kU

    V4x6ksZu7FnFUrkSGUQ6CSYAJd+Qtgit11g/GTa9xciqbtGyKePedHhGB3iNHzdN

    +lYhi4T6c6D5xkIzG+ZvTg6lOQboHeem/6lzRwIDAQABAoIBAGObhrC2xVzkEvP0

    c2HyzwoXlIMUs4+11DoBdz2zejd9hmqmc9DHf2sH3ZLZiqURsn9BiHnA354I2lv3

    /uIjV4sLFhXPrFurjcCtP1hVi88IcTebNOb0JhtoFcGsKjnF72oh8hejznOb+G6I

    edTSeDtozyg3zky2nrNCf/J53YHit9TtbXMXBweLYIfZO0sYb20Ofq6OVLUxLw3+

    /nzamkUEkJVAO6W2PPmwp9kah5uQeQoWACddkNCHRuQwvNcqiNzhQLH9aZZGO18Z

    ShZzK9Zo8e9CQeUw+1TgNM0CZw2RtSrxvlsk/4ez17Q8CWQl5lU2wDWH6mBNwFWp

    0IPJGoECgYEA+0ITgOQ0idKLx0eL4rzN1+KwLsF6U+Jkc0Y0kEm7vL+CLjm1hnBO

    1CEyh5eq5DEclvgAbdUBm2WqRUUi3TYJxAew919Z68mRrbja2onfAXGpXqILG6sz

    FeU8olqf1YD2x5gjWcZolO2IV68qSBKGboFBUm0mncZboEcAywDkZdkCgYEA1Ofk

    dFu7a8xrAZVuYqeJMwxN8keBHXrx+JNotmk1TezuknqsBL6cig8/A5TcVO72wK7j

    nOUHGcy9kZkfbciUjrZvBvrXU3YzY18VO1f8NHasT8wwAr0r4aUfx8KYfPtB9lRY

    hA9zZQw53vK3WlAogbXgAQwbffkgGRHBHQwhTh8CgYEA8/FyWCi4bbtypJdtVEV1

    IQ5hefO1He5nEpht/kzoLlhNPy4edRljH4fftE/nxkd8d4Lvf7NYLRTm3PxD3jxR

    /PZuta3o8wkwHFemfJlxX8iH5W40lLeCENcRKJwOJM9iSeUHJWmCLl30ixVxWqpJ

    xM5PqoR5AqQMX6+wMGh8V/kCgYB3rFlH5oA1GdRUMZC4t39xSEtQEk1LKt50YTeM

    wRqLUNDRWU7z48jN+b/r3XLz8taUfDnI6RvSrrkn7DA0X3jRt041WC5M5bYA92NR

    1iUXwFUfDaE3COpvjYeNm55nMjxjoAmZQa4VcIffAAN8Km56aqcdL5cMekpGjSpF

    j5nw9QKBgQDWcLCs969g/K4yce9S8IzV1zh0nJM9amuBILf3XpXHaybVjLpKrlD+

    3f/vsi6kH6TT+kJSKq03XiP7RUsFOP9e+dRlTaAZ2LFHcPpYzvLDNUzXGQY6OtaP

    bQkfKXG/p6kouFuUG93luWsn8W6c0YAc4fEC8I2bU0eAk02ovDUCJA==

    -----END RSA PRIVATE KEY-----

    '
props:
    common:
        appname: pruebaQt
        arg: ''
        buildcommands: ''
        buildfiles: ''
        command: ''
        devpackages: qtdeclarative5-dev:#%platform.debian-arch%# libegl-dev:#%platform.debian-arch%#
            libgl-dev:#%platform.debian-arch%#
        env: ''
        exename: pruebaQt
        expose: ''
        extrapackages: 'qml-module-qtquick2 qml-module-qtquick-window2 qml-module-qtquick-controls
            qml-module-qtquick-controls2 '
        language: c-cpp-nossh
        preinstallcommands: ''
        sdkpostinstallcommands: ''
        sdkpreinstallcommands: ''
        targetcommands: ''
        targetfiles: ''
    debug:
        arg: 'ARG SSHUSERNAME=#%application.username%#

            '
    release: {}
publickey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ9lD/Y6F/MTtlFX9MbLOZyQ1Dqiy++pdN3N8mLSsHmj0I9KVk2pGOpWe7v3it077YG9wJQSzEN0SL6vrF3oOgC887o3OJ7mB4DzWbFRPmutbla4zmT25UKQxW0Czjvwry1Y2/Ry3ilbMfRzKnRWaUTGUY5zUSl8rZRAJFC92dBJSiovM4w0RX2roS4UEI+/BtkPEWuYTt8GJFouKgASlZ5Qf63IkzIWitgb+zEhQistCPWRRXjHqSxm7sWcVSuRIZRDoJJgAl35C2CK3XWD8ZNr3FyKpu0bIp4950eEYHeI0fN036ViGLhPpzoPnGQjMb5m9ODqU5Bugd56b/qXNH
sdkimages:
    debug: ''
    release: sha256:2a836d8fbe9a0eeeb986dec92ef746b6bdf4f7285abe34ac3e810b4445a64045
sdksshaddress: null
shutdownscript:
    common: ''
    debug: ''
    release: ''
startupscript:
    common: ''
    debug: ''
    release: ''
username: torizon
volumes:
    common: {}
    debug:
        /home/torizon/pruebaQt: /pruebaQt,rw
    release: {}

I suspect there is a problem with Qt libraries, but it was compiling some days ago. Any insight in how can we solve this?

Thank you,
Tomás

Adding manually the unmet dependencies to the devcontainer packages didn’t fix this

Greetings @tomas.ayi,

I was able to reproduce this issue on my side. I know our team is currently in the process of updating many of our containers and the packaging within them. Let me check in with them and see if this is a transition issue or perhaps something we overlooked.

Best Regards,
Jeremias

Hi Jeremias,

Is there a way we can work with an “isolated” workspace, sticking to a fixed tag of containers and libraries? The idea behind this is to be able to continue developing our application if this happens again in the future.

Regards,
Tomás

@tomas.ayi

Quick update it seems the issue was a dependency issue we overlooked with the Qt packages. We’ve resolved this and pushed updated container images. Please clear your old container images and try again.

As for sticking to a fixed version of a container there is a way. As you’ve learned the container image a “tag” points to can be overwritten and thus not constant. However if you work with the image’s “digest hash” instead this is a different story. By using an image’s digest hash it will always refer to a specific version of that container image.

In our extensions though since many things are auto-generated it might be difficult to replace the tag with a hash in the dockerfile. Let me give this back as feedback for our IDE team.

Best Regards,
Jeremias

Hi Jeremias,

Thank you for your time and for the update. Yes, I didn’t mention that but I tried replacing manually the Dockerfile_SDK base container’s tag but the VSCode extension reverts it back. I hope that in the future we can change it

Regards,
Tomás

Another update, it seems the IDE team already has a feature planned for this, though it’s not released yet.

So for now this isn’t quite possible in the IDE yet, but you can always use the IDE to develop then towards the end manually create a Dockerfile based off the IDE project but use image digest hashes instead.

Best Regards,
Jeremias

@jeremias.tx

Nice! We will be waiting for that feature while we continue developing our application.

Last question: when we develop applications, we could pass several years without updating OS or libraries. We only update those when there is something new or a bug fix that we really need. I saw that Torizon uses Toradex debian snapshots, but I think that some day, Toradex will be deleting the oldest ones, and our SDK container wouldn’t build anymore again, and we will be forced to update. Is there a way we can grab a copy of that feed, or a similar alternative?

Thank you

Tomás

Currently our policy is to not un-publish any released software. Though if there’s an particular Toradex maintained snapshot you would like to get your hands on they’re all publicly available here: Index of /debian/snapshots

Best Regards,
Jeremias