BACnet to Brick#

The purpose of this how-to document is to demonstrate the creation of a functional Brick model from a BACnet network. This will be accomplished by using BuildingMOTIF’s “ingresses” to import a BACnet network as a basic Brick model, and then using BuildingMOTIF to augment the basic Brick model with more descriptive metadata.

External Setup#

Make sure you have network access to a BACnet network, and that you are aware on what IP address that BACnet network can be reached. For this tutorial, we will use docker compose to run a virtual BACnet network which we can scan and generate a Brick model for; see the sub-section below.

BACnet Network Setup#

This cell sets up a virtual BACnet network that can be run locally to make the rest of the tutorial work as expected. You do not need to run this if you are connecting to a real BACnet network.

import subprocess
import shlex
with open('virtual_bacnet.py', 'w') as f:
    f.write('''
import random
import sys

from bacpypes.app import BIPSimpleApplication
from bacpypes.consolelogging import ConfigArgumentParser
from bacpypes.core import run
from bacpypes.debugging import ModuleLogger, bacpypes_debugging
from bacpypes.local.device import LocalDeviceObject
from bacpypes.object import AnalogInputObject
from bacpypes.service.device import DeviceCommunicationControlServices
from bacpypes.service.object import ReadWritePropertyMultipleServices

_debug = 0
_log = ModuleLogger(globals())


@bacpypes_debugging
class VirtualBACnetApp(
    BIPSimpleApplication,
    ReadWritePropertyMultipleServices,
    DeviceCommunicationControlServices,
):
    pass


class VirtualDevice:
    def __init__(self, host: str = "0.0.0.0"):
        parser = ConfigArgumentParser(description=__doc__)
        args = parser.parse_args()
        self.device = LocalDeviceObject(ini=args.ini)
        self.application = VirtualBACnetApp(self.device, host)

        # setup points
        self.points = {
            "SupplyTempSensor": AnalogInputObject(
                objectName="VAV-1/SAT",
                objectIdentifier=("analogInput", 0),
                presentValue=random.randint(1, 100),
            ),
            "HeatingSetpoint": AnalogInputObject(
                objectName="VAV-1/HSP",
                objectIdentifier=("analogInput", 1),
                presentValue=random.randint(1, 100),
            ),
            "CoolingSetpoint": AnalogInputObject(
                objectName="VAV-1/CSP",
                objectIdentifier=("analogInput", 2),
                presentValue=random.randint(1, 100),
            ),
            "ZoneTempSensor": AnalogInputObject(
                objectName="VAV-1/Zone",
                objectIdentifier=("analogInput", 3),
                presentValue=random.randint(1, 100),
            ),
        }

        for p in self.points.values():
            self.application.add_object(p)

        run()


if __name__ == "__main__":
    VirtualDevice(sys.argv[1] if len(sys.argv) > 1 else "0.0.0.0")
''')

with open('Dockerfile.bacnet', 'w') as f:
    f.write('''FROM ubuntu:latest as base

WORKDIR /opt

RUN apt update \
    && apt install -y \
    python3 \
    python3-pip \
    && rm -rf /var/lib/apt/lists/*

RUN pip3 install BACpypes

COPY virtual_bacnet.py virtual_bacnet.py
COPY BACpypes.ini .''')

with open('BACpypes.ini', 'w') as f:
    f.write('''[BACpypes]
objectName: VirtualBACnet
#address: 172.17.0.1/24
objectIdentifier: 599
maxApduLengthAccepted: 1024
segmentationSupported: segmentedBoth
vendorIdentifier: 15''')


with open('docker-compose-bacnet.yml','w') as f:
    f.write('''version: "3.4"
services:
  device:
    build:
      dockerfile: Dockerfile.bacnet
    networks:
      bacnet:
        ipv4_address: 172.24.0.3
    command: "python3 virtual_bacnet.py"
networks:
  bacnet:
    ipam:
      driver: default
      config:
        - subnet: "172.24.0.0/16"
          gateway: "172.24.0.1"''')
docker_compose_start = shlex.split("docker compose -f docker-compose-bacnet.yml up -d")
subprocess.run(docker_compose_start)
time="2024-11-19T16:04:29Z" level=warning msg="/home/runner/work/BuildingMOTIF/BuildingMOTIF/docs/guides/docker-compose-bacnet.yml: `version` is obsolete"
#0 building with "default" instance using docker driver

#1 [device internal] load build definition from Dockerfile.bacnet
#1 transferring dockerfile: 276B done
#1 DONE 0.0s

#2 [device auth] library/ubuntu:pull token for registry-1.docker.io
#2 DONE 0.0s

#3 [device internal] load metadata for docker.io/library/ubuntu:latest
#3 DONE 0.4s
#4 [device internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s

#5 [device internal] load build context
#5 transferring context: 2.30kB done
#5 DONE 0.0s

#6 [device 1/6] FROM docker.io/library/ubuntu:latest@sha256:278628f08d4979fb9af9ead44277dbc9c92c2465922310916ad0c46ec9999295
#6 resolve docker.io/library/ubuntu:latest@sha256:278628f08d4979fb9af9ead44277dbc9c92c2465922310916ad0c46ec9999295 done
#6 sha256:278628f08d4979fb9af9ead44277dbc9c92c2465922310916ad0c46ec9999295 6.69kB / 6.69kB done
#6 sha256:f470988096c4d77efac9740a1b6700823681af518a17fad30111430b95dfbffa 424B / 424B done
#6 sha256:fec8bfd95b54439b934c5033dc62d79b946291c327814f2d4df181e1d7536806 2.30kB / 2.30kB done
#6 sha256:afad30e59d72d5c8df4023014c983e457f21818971775c4224163595ec20b69f 2.10MB / 29.75MB 0.1s
#6 sha256:afad30e59d72d5c8df4023014c983e457f21818971775c4224163595ec20b69f 25.17MB / 29.75MB 0.3s
#6 sha256:afad30e59d72d5c8df4023014c983e457f21818971775c4224163595ec20b69f 29.75MB / 29.75MB 0.5s done
#6 extracting sha256:afad30e59d72d5c8df4023014c983e457f21818971775c4224163595ec20b69f 0.1s
#6 extracting sha256:afad30e59d72d5c8df4023014c983e457f21818971775c4224163595ec20b69f 0.8s done
#6 DONE 1.4s

#7 [device 2/6] WORKDIR /opt
#7 DONE 0.1s
#8 [device 3/6] RUN apt update     && apt install -y     python3     python3-pip     && rm -rf /var/lib/apt/lists/*
#8 0.189 
#8 0.189 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#8 0.189 
#8 0.239 Get:1 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
#8 0.258 Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
#8 0.326 Get:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
#8 0.346 Get:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
#8 0.405 Get:5 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1808 kB]
#8 0.446 Get:6 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [15.3 kB]
#8 0.470 Get:7 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [598 kB]
#8 0.475 Get:8 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [117 kB]
#8 0.476 Get:9 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [19.3 MB]
#8 0.515 Get:10 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [615 kB]
#8 0.533 Get:11 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [725 kB]
#8 0.596 Get:12 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [331 kB]
#8 0.618 Get:13 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [598 kB]
#8 0.621 Get:14 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [932 kB]
#8 0.626 Get:15 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [18.4 kB]
#8 0.626 Get:16 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [843 kB]
#8 0.630 Get:17 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [11.8 kB]
#8 1.304 Fetched 26.6 MB in 1s (24.2 MB/s)
#8 1.304 Reading package lists...
#8 1.923 Building dependency tree...
#8 2.072 Reading state information...
#8 2.088 3 packages can be upgraded. Run 'apt list --upgradable' to see them.
#8 2.093 
#8 2.093 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#8 2.093 
#8 2.095 Reading package lists...
#8 2.710 Building dependency tree...
#8 2.865 Reading state information...
#8 3.024 The following additional packages will be installed:
#8 3.024   adduser binutils binutils-common binutils-x86-64-linux-gnu build-essential
#8 3.024   bzip2 ca-certificates cpp cpp-13 cpp-13-x86-64-linux-gnu
#8 3.024   cpp-x86-64-linux-gnu dirmngr dpkg-dev fakeroot fontconfig-config
#8 3.024   fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu
#8 3.024   g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
#8 3.024   gcc-x86-64-linux-gnu gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#8 3.024   gpg-wks-client gpgconf gpgsm javascript-common keyboxd
#8 3.024   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
#8 3.024   libaom3 libasan8 libatomic1 libbinutils libbrotli1 libbsd0 libc-dev-bin
#8 3.024   libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0
#8 3.024   libde265-0 libdeflate0 libdpkg-perl libexpat1 libexpat1-dev libfakeroot
#8 3.024   libfile-fcntllock-perl libfontconfig1 libfreetype6 libgcc-13-dev libgd3
#8 3.024   libgdbm-compat4t64 libgdbm6t64 libgomp1 libgprofng0 libheif-plugin-aomdec
#8 3.024   libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23
#8 3.024   libitm1 libjansson4 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery
#8 3.024   libjs-sphinxdoc libjs-underscore libksba8 libldap-common libldap2 liblerc4
#8 3.024   liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libperl5.38t64
#8 3.024   libpng16-16t64 libpython3-dev libpython3-stdlib libpython3.12-dev
#8 3.024   libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 libquadmath0
#8 3.024   libreadline8t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libsframe1
#8 3.024   libsharpyuv0 libsqlite3-0 libstdc++-13-dev libtiff6 libtsan2 libubsan1
#8 3.025   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
#8 3.025   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
#8 3.025   netbase openssl patch perl perl-modules-5.38 pinentry-curses python3-dev
#8 3.025   python3-minimal python3-pkg-resources python3-setuptools python3-wheel
#8 3.025   python3.12 python3.12-dev python3.12-minimal readline-common rpcsvc-proto
#8 3.025   tzdata xz-utils zlib1g-dev
#8 3.026 Suggested packages:
#8 3.026   cron quota ecryptfs-utils binutils-doc gprofng-gui bzip2-doc cpp-doc
#8 3.026   gcc-13-locales cpp-13-doc dbus-user-session libpam-systemd pinentry-gnome3
#8 3.026   tor debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib
#8 3.026   autoconf automake libtool flex bison gdb gcc-doc gcc-13-multilib
#8 3.026   gdb-x86-64-linux-gnu parcimonie xloadimage gpg-wks-server scdaemon apache2
#8 3.026   | lighttpd | httpd glibc-doc git bzr libgd-tools gdbm-l10n
#8 3.026   libheif-plugin-x265 libheif-plugin-ffmpegdec libheif-plugin-jpegdec
#8 3.026   libheif-plugin-jpegenc libheif-plugin-j2kdec libheif-plugin-j2kenc
#8 3.026   libheif-plugin-rav1e libheif-plugin-svtenc libsasl2-modules-gssapi-mit
#8 3.026   | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp
#8 3.026   libsasl2-modules-sql libstdc++-13-doc make-doc man-browser ed diffutils-doc
#8 3.026   perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl
#8 3.026   libtap-harness-archive-perl pinentry-doc python3-doc python3-tk python3-venv
#8 3.026   python-setuptools-doc python3.12-venv python3.12-doc binfmt-support
#8 3.026   readline-doc
#8 3.170 The following NEW packages will be installed:
#8 3.170   adduser binutils binutils-common binutils-x86-64-linux-gnu build-essential
#8 3.170   bzip2 ca-certificates cpp cpp-13 cpp-13-x86-64-linux-gnu
#8 3.170   cpp-x86-64-linux-gnu dirmngr dpkg-dev fakeroot fontconfig-config
#8 3.170   fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu
#8 3.170   g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
#8 3.170   gcc-x86-64-linux-gnu gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#8 3.170   gpg-wks-client gpgconf gpgsm javascript-common keyboxd
#8 3.170   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
#8 3.170   libaom3 libasan8 libatomic1 libbinutils libbrotli1 libbsd0 libc-dev-bin
#8 3.170   libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0
#8 3.171   libde265-0 libdeflate0 libdpkg-perl libexpat1 libexpat1-dev libfakeroot
#8 3.171   libfile-fcntllock-perl libfontconfig1 libfreetype6 libgcc-13-dev libgd3
#8 3.171   libgdbm-compat4t64 libgdbm6t64 libgomp1 libgprofng0 libheif-plugin-aomdec
#8 3.171   libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23
#8 3.171   libitm1 libjansson4 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery
#8 3.171   libjs-sphinxdoc libjs-underscore libksba8 libldap-common libldap2 liblerc4
#8 3.171   liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libperl5.38t64
#8 3.171   libpng16-16t64 libpython3-dev libpython3-stdlib libpython3.12-dev
#8 3.171   libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 libquadmath0
#8 3.171   libreadline8t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libsframe1
#8 3.171   libsharpyuv0 libsqlite3-0 libstdc++-13-dev libtiff6 libtsan2 libubsan1
#8 3.171   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
#8 3.171   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
#8 3.171   netbase openssl patch perl perl-modules-5.38 pinentry-curses python3
#8 3.171   python3-dev python3-minimal python3-pip python3-pkg-resources
#8 3.171   python3-setuptools python3-wheel python3.12 python3.12-dev
#8 3.171   python3.12-minimal readline-common rpcsvc-proto tzdata xz-utils zlib1g-dev
#8 3.232 0 upgraded, 143 newly installed, 0 to remove and 3 not upgraded.
#8 3.232 Need to get 115 MB of archives.
#8 3.232 After this operation, 437 MB of additional disk space will be used.
#8 3.232 Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 liblocale-gettext-perl amd64 1.07-6ubuntu5 [15.8 kB]
#8 3.234 Get:2 http://security.ubuntu.com/ubuntu noble-security/main amd64 libpython3.12-minimal amd64 3.12.3-1ubuntu0.3 [834 kB]
#8 3.262 Get:3 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libexpat1 amd64 2.6.1-2ubuntu0.1 [87.1 kB]
#8 3.295 Get:4 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-minimal amd64 3.12.3-0ubuntu2 [27.4 kB]
#8 3.298 Get:5 http://archive.ubuntu.com/ubuntu noble/main amd64 media-types all 10.1.0 [27.5 kB]
#8 3.302 Get:6 http://archive.ubuntu.com/ubuntu noble/main amd64 netbase all 6.4 [13.1 kB]
#8 3.305 Get:7 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 tzdata all 2024a-3ubuntu1.1 [273 kB]
#8 3.328 Get:8 http://archive.ubuntu.com/ubuntu noble/main amd64 readline-common all 8.2-4build1 [56.5 kB]
#8 3.330 Get:9 http://archive.ubuntu.com/ubuntu noble/main amd64 libreadline8t64 amd64 8.2-4build1 [153 kB]
#8 3.337 Get:10 http://archive.ubuntu.com/ubuntu noble/main amd64 libsqlite3-0 amd64 3.45.1-1ubuntu2 [701 kB]
#8 3.353 Get:11 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3-stdlib amd64 3.12.3-0ubuntu2 [10.0 kB]
#8 3.353 Get:12 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3 amd64 3.12.3-0ubuntu2 [23.0 kB]
#8 3.354 Get:13 http://archive.ubuntu.com/ubuntu noble/main amd64 perl-modules-5.38 all 5.38.2-3.2build2 [3110 kB]
#8 3.360 Get:14 http://security.ubuntu.com/ubuntu noble-security/main amd64 python3.12-minimal amd64 3.12.3-1ubuntu0.3 [2333 kB]
#8 3.381 Get:15 http://archive.ubuntu.com/ubuntu noble/main amd64 libgdbm6t64 amd64 1.23-5.1build1 [34.4 kB]
#8 3.381 Get:16 http://archive.ubuntu.com/ubuntu noble/main amd64 libgdbm-compat4t64 amd64 1.23-5.1build1 [6710 B]
#8 3.382 Get:17 http://archive.ubuntu.com/ubuntu noble/main amd64 libperl5.38t64 amd64 5.38.2-3.2build2 [4873 kB]
#8 3.401 Get:18 http://security.ubuntu.com/ubuntu noble-security/main amd64 libpython3.12-stdlib amd64 3.12.3-1ubuntu0.3 [2068 kB]
#8 3.412 Get:19 http://archive.ubuntu.com/ubuntu noble/main amd64 perl amd64 5.38.2-3.2build2 [231 kB]
#8 3.414 Get:20 http://archive.ubuntu.com/ubuntu noble/main amd64 adduser all 3.137ubuntu1 [101 kB]
#8 3.415 Get:21 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 openssl amd64 3.0.13-0ubuntu3.4 [1003 kB]
#8 3.416 Get:22 http://security.ubuntu.com/ubuntu noble-security/main amd64 python3.12 amd64 3.12.3-1ubuntu0.3 [651 kB]
#8 3.421 Get:23 http://security.ubuntu.com/ubuntu noble-security/main amd64 libpython3.12t64 amd64 3.12.3-1ubuntu0.3 [2333 kB]
#8 3.421 Get:24 http://archive.ubuntu.com/ubuntu noble/main amd64 ca-certificates all 20240203 [159 kB]
#8 3.423 Get:25 http://archive.ubuntu.com/ubuntu noble/main amd64 libbsd0 amd64 0.12.1-1build1 [41.2 kB]
#8 3.423 Get:26 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-pkg-resources all 68.1.2-2ubuntu1.1 [168 kB]
#8 3.425 Get:27 http://archive.ubuntu.com/ubuntu noble/main amd64 libjansson4 amd64 2.14-2build2 [32.8 kB]
#8 3.425 Get:28 http://archive.ubuntu.com/ubuntu noble/main amd64 libpng16-16t64 amd64 1.6.43-5build1 [187 kB]
#8 3.427 Get:29 http://archive.ubuntu.com/ubuntu noble/main amd64 libxau6 amd64 1:1.0.9-1build6 [7160 B]
#8 3.429 Get:30 http://archive.ubuntu.com/ubuntu noble/main amd64 libxdmcp6 amd64 1:1.1.3-0ubuntu6 [10.3 kB]
#8 3.437 Get:31 http://security.ubuntu.com/ubuntu noble-security/main amd64 libpython3.12-dev amd64 3.12.3-1ubuntu0.3 [5671 kB]
#8 3.443 Get:32 http://archive.ubuntu.com/ubuntu noble/main amd64 libxcb1 amd64 1.15-1ubuntu2 [47.7 kB]
#8 3.444 Get:33 http://archive.ubuntu.com/ubuntu noble/main amd64 libx11-data all 2:1.8.7-1build1 [115 kB]
#8 3.445 Get:34 http://archive.ubuntu.com/ubuntu noble/main amd64 libx11-6 amd64 2:1.8.7-1build1 [650 kB]
#8 3.449 Get:35 http://archive.ubuntu.com/ubuntu noble/main amd64 manpages all 6.7-2 [1384 kB]
#8 3.458 Get:36 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 xz-utils amd64 5.6.1+really5.4.5-1build0.1 [267 kB]
#8 3.460 Get:37 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-common amd64 2.42-4ubuntu2.3 [239 kB]
#8 3.462 Get:38 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsframe1 amd64 2.42-4ubuntu2.3 [14.9 kB]
#8 3.462 Get:39 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libbinutils amd64 2.42-4ubuntu2.3 [575 kB]
#8 3.466 Get:40 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2.3 [97.1 kB]
#8 3.467 Get:41 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf0 amd64 2.42-4ubuntu2.3 [94.5 kB]
#8 3.475 Get:42 http://security.ubuntu.com/ubuntu noble-security/main amd64 python3.12-dev amd64 3.12.3-1ubuntu0.3 [498 kB]
#8 3.479 Get:43 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgprofng0 amd64 2.42-4ubuntu2.3 [849 kB]
#8 3.485 Get:44 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2.3 [2463 kB]
#8 3.499 Get:45 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils amd64 2.42-4ubuntu2.3 [18.1 kB]
#8 3.500 Get:46 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-dev-bin amd64 2.39-0ubuntu8.3 [60.8 kB]
#8 3.500 Get:47 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-libc-dev amd64 6.8.0-49.49 [1716 kB]
#8 3.511 Get:48 http://archive.ubuntu.com/ubuntu noble/main amd64 libcrypt-dev amd64 1:4.4.36-4build1 [112 kB]
#8 3.512 Get:49 http://archive.ubuntu.com/ubuntu noble/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu7 [67.4 kB]
#8 3.513 Get:50 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6-dev amd64 2.39-0ubuntu8.3 [2164 kB]
#8 3.527 Get:51 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-13-base amd64 13.2.0-23ubuntu4 [49.0 kB]
#8 3.527 Get:52 http://archive.ubuntu.com/ubuntu noble/main amd64 libisl23 amd64 0.26-3build1 [680 kB]
#8 3.532 Get:53 http://archive.ubuntu.com/ubuntu noble/main amd64 libmpfr6 amd64 4.2.1-1build1 [355 kB]
#8 3.534 Get:54 http://archive.ubuntu.com/ubuntu noble/main amd64 libmpc3 amd64 1.3.1-1build1 [54.5 kB]
#8 3.535 Get:55 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [11.2 MB]
#8 3.601 Get:56 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-13 amd64 13.2.0-23ubuntu4 [1032 B]
#8 3.601 Get:57 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B]
#8 3.601 Get:58 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]
#8 3.602 Get:59 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04 [48.0 kB]
#8 3.602 Get:60 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04 [148 kB]
#8 3.603 Get:61 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04 [29.7 kB]
#8 3.604 Get:62 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04 [10.5 kB]
#8 3.604 Get:63 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04 [3031 kB]
#8 3.623 Get:64 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04 [1322 kB]
#8 3.632 Get:65 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04 [2772 kB]
#8 3.649 Get:66 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04 [1184 kB]
#8 3.656 Get:67 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04 [1641 kB]
#8 3.666 Get:68 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04 [153 kB]
#8 3.667 Get:69 http://archive.ubuntu.com/ubuntu noble/main amd64 libgcc-13-dev amd64 13.2.0-23ubuntu4 [2688 kB]
#8 3.684 Get:70 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [21.9 MB]
#8 3.813 Get:71 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-13 amd64 13.2.0-23ubuntu4 [482 kB]
#8 3.817 Get:72 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B]
#8 3.817 Get:73 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B]
#8 3.817 Get:74 http://archive.ubuntu.com/ubuntu noble/main amd64 libstdc++-13-dev amd64 13.2.0-23ubuntu4 [2399 kB]
#8 3.833 Get:75 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [12.5 MB]
#8 3.907 Get:76 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-13 amd64 13.2.0-23ubuntu4 [14.5 kB]
#8 3.907 Get:77 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [964 B]
#8 3.908 Get:78 http://archive.ubuntu.com/ubuntu noble/main amd64 g++ amd64 4:13.2.0-7ubuntu1 [1100 B]
#8 3.908 Get:79 http://archive.ubuntu.com/ubuntu noble/main amd64 make amd64 4.3-4.1build2 [180 kB]
#8 3.909 Get:80 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdpkg-perl all 1.22.6ubuntu6.1 [269 kB]
#8 3.911 Get:81 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 bzip2 amd64 1.0.8-5.1build0.1 [34.5 kB]
#8 3.912 Get:82 http://archive.ubuntu.com/ubuntu noble/main amd64 patch amd64 2.7.6-7build3 [104 kB]
#8 3.913 Get:83 http://archive.ubuntu.com/ubuntu noble/main amd64 lto-disabled-list all 47 [12.4 kB]
#8 3.913 Get:84 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg-dev all 1.22.6ubuntu6.1 [1074 kB]
#8 3.922 Get:85 http://archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]
#8 3.937 Get:86 http://archive.ubuntu.com/ubuntu noble/main amd64 gpgconf amd64 2.4.4-2ubuntu17 [103 kB]
#8 3.939 Get:87 http://archive.ubuntu.com/ubuntu noble/main amd64 libksba8 amd64 1.6.6-1build1 [122 kB]
#8 3.940 Get:88 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-5ubuntu3.1 [20.4 kB]
#8 3.940 Get:89 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-5ubuntu3.1 [53.2 kB]
#8 3.941 Get:90 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libldap2 amd64 2.6.7+dfsg-1~exp1ubuntu8.1 [195 kB]
#8 3.943 Get:91 http://archive.ubuntu.com/ubuntu noble/main amd64 dirmngr amd64 2.4.4-2ubuntu17 [323 kB]
#8 3.945 Get:92 http://archive.ubuntu.com/ubuntu noble/main amd64 libfakeroot amd64 1.33-1 [32.4 kB]
#8 3.945 Get:93 http://archive.ubuntu.com/ubuntu noble/main amd64 fakeroot amd64 1.33-1 [67.2 kB]
#8 3.946 Get:94 http://archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB]
#8 3.952 Get:95 http://archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-core all 2.37-8 [835 kB]
#8 3.967 Get:96 http://archive.ubuntu.com/ubuntu noble/main amd64 fontconfig-config amd64 2.15.0-1.1ubuntu2 [37.3 kB]
#8 3.968 Get:97 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg-utils amd64 2.4.4-2ubuntu17 [108 kB]
#8 3.969 Get:98 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg amd64 2.4.4-2ubuntu17 [565 kB]
#8 3.973 Get:99 http://archive.ubuntu.com/ubuntu noble/main amd64 pinentry-curses amd64 1.2.1-3ubuntu5 [35.2 kB]
#8 3.973 Get:100 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg-agent amd64 2.4.4-2ubuntu17 [227 kB]
#8 3.975 Get:101 http://archive.ubuntu.com/ubuntu noble/main amd64 gpgsm amd64 2.4.4-2ubuntu17 [232 kB]
#8 3.976 Get:102 http://archive.ubuntu.com/ubuntu noble/main amd64 keyboxd amd64 2.4.4-2ubuntu17 [78.3 kB]
#8 3.977 Get:103 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg all 2.4.4-2ubuntu17 [359 kB]
#8 3.980 Get:104 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg-l10n all 2.4.4-2ubuntu17 [65.9 kB]
#8 3.982 Get:105 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg-wks-client amd64 2.4.4-2ubuntu17 [70.9 kB]
#8 3.997 Get:106 http://archive.ubuntu.com/ubuntu noble/main amd64 javascript-common all 11+nmu1 [5936 B]
#8 3.998 Get:107 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-perl all 1.201-1 [41.8 kB]
#8 3.998 Get:108 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-xs-perl amd64 0.04-8build3 [11.2 kB]
#8 4.169 Get:109 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-merge-perl all 0.08-5 [11.4 kB]
#8 4.254 Get:110 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libaom3 amd64 3.8.2-2ubuntu0.1 [1941 kB]
#8 4.816 Get:111 http://archive.ubuntu.com/ubuntu noble/main amd64 libbrotli1 amd64 1.1.0-2build2 [331 kB]
#8 4.837 Get:112 http://archive.ubuntu.com/ubuntu noble/main amd64 libfreetype6 amd64 2.13.2+dfsg-1build3 [402 kB]
#8 4.859 Get:113 http://archive.ubuntu.com/ubuntu noble/main amd64 libfontconfig1 amd64 2.15.0-1.1ubuntu2 [139 kB]
#8 4.864 Get:114 http://archive.ubuntu.com/ubuntu noble/main amd64 libsharpyuv0 amd64 1.3.2-0.4build3 [15.8 kB]
#8 4.865 Get:115 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-aomdec amd64 1.17.6-1ubuntu4.1 [10.4 kB]
#8 4.866 Get:116 http://archive.ubuntu.com/ubuntu noble/main amd64 libde265-0 amd64 1.0.15-1build3 [166 kB]
#8 4.873 Get:117 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-libde265 amd64 1.17.6-1ubuntu4.1 [8176 B]
#8 4.873 Get:118 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif1 amd64 1.17.6-1ubuntu4.1 [275 kB]
#8 4.884 Get:119 http://archive.ubuntu.com/ubuntu noble/main amd64 libjpeg-turbo8 amd64 2.1.5-2ubuntu2 [150 kB]
#8 4.900 Get:120 http://archive.ubuntu.com/ubuntu noble/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B]
#8 4.984 Get:121 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdeflate0 amd64 1.19-1build1.1 [43.9 kB]
#8 4.985 Get:122 http://archive.ubuntu.com/ubuntu noble/main amd64 libjbig0 amd64 2.1-6.1ubuntu2 [29.7 kB]
#8 4.985 Get:123 http://archive.ubuntu.com/ubuntu noble/main amd64 liblerc4 amd64 4.0.0+ds-4ubuntu2 [179 kB]
#8 4.988 Get:124 http://archive.ubuntu.com/ubuntu noble/main amd64 libwebp7 amd64 1.3.2-0.4build3 [230 kB]
#8 4.994 Get:125 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libtiff6 amd64 4.5.1+git230720-4ubuntu2.2 [199 kB]
#8 4.996 Get:126 http://archive.ubuntu.com/ubuntu noble/main amd64 libxpm4 amd64 1:3.5.17-1build2 [36.5 kB]
#8 4.997 Get:127 http://archive.ubuntu.com/ubuntu noble/main amd64 libgd3 amd64 2.3.3-9ubuntu5 [128 kB]
#8 4.999 Get:128 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-devtools amd64 2.39-0ubuntu8.3 [69.7 kB]
#8 5.000 Get:129 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libexpat1-dev amd64 2.6.1-2ubuntu0.1 [139 kB]
#8 5.069 Get:130 http://archive.ubuntu.com/ubuntu noble/main amd64 libfile-fcntllock-perl amd64 0.22-4ubuntu5 [30.7 kB]
#8 5.152 Get:131 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-aomenc amd64 1.17.6-1ubuntu4.1 [14.7 kB]
#8 5.152 Get:132 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB]
#8 5.158 Get:133 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB]
#8 5.160 Get:134 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB]
#8 5.162 Get:135 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libldap-common all 2.6.7+dfsg-1~exp1ubuntu8.1 [31.5 kB]
#8 5.163 Get:136 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 zlib1g-dev amd64 1:1.3.dfsg-3.1ubuntu2.1 [894 kB]
#8 5.179 Get:137 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3-dev amd64 3.12.3-0ubuntu2 [10.3 kB]
#8 5.180 Get:138 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-modules amd64 2.1.28+dfsg1-5ubuntu3.1 [69.9 kB]
#8 5.180 Get:139 http://archive.ubuntu.com/ubuntu noble/main amd64 manpages-dev all 6.7-2 [2013 kB]
#8 5.252 Get:140 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-dev amd64 3.12.3-0ubuntu2 [26.7 kB]
#8 5.321 Get:141 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-setuptools all 68.1.2-2ubuntu1.1 [396 kB]
#8 5.325 Get:142 http://archive.ubuntu.com/ubuntu noble/universe amd64 python3-wheel all 0.42.0-2 [53.1 kB]
#8 5.325 Get:143 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-pip all 24.0+dfsg-1ubuntu1.1 [1317 kB]
#8 5.454 debconf: delaying package configuration, since apt-utils is not installed
#8 5.479 Fetched 115 MB in 2s (53.5 MB/s)
#8 5.490 Selecting previously unselected package liblocale-gettext-perl.
#8 5.490 (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 ... 4379 files and directories currently installed.)
#8 5.496 Preparing to unpack .../liblocale-gettext-perl_1.07-6ubuntu5_amd64.deb ...
#8 5.497 Unpacking liblocale-gettext-perl (1.07-6ubuntu5) ...
#8 5.512 Selecting previously unselected package libpython3.12-minimal:amd64.
#8 5.513 Preparing to unpack .../libpython3.12-minimal_3.12.3-1ubuntu0.3_amd64.deb ...
#8 5.514 Unpacking libpython3.12-minimal:amd64 (3.12.3-1ubuntu0.3) ...
#8 5.587 Selecting previously unselected package libexpat1:amd64.
#8 5.588 Preparing to unpack .../libexpat1_2.6.1-2ubuntu0.1_amd64.deb ...
#8 5.590 Unpacking libexpat1:amd64 (2.6.1-2ubuntu0.1) ...
#8 5.606 Selecting previously unselected package python3.12-minimal.
#8 5.607 Preparing to unpack .../python3.12-minimal_3.12.3-1ubuntu0.3_amd64.deb ...
#8 5.610 Unpacking python3.12-minimal (3.12.3-1ubuntu0.3) ...
#8 5.657 Setting up libpython3.12-minimal:amd64 (3.12.3-1ubuntu0.3) ...
#8 5.661 Setting up libexpat1:amd64 (2.6.1-2ubuntu0.1) ...
#8 5.663 Setting up python3.12-minimal (3.12.3-1ubuntu0.3) ...
#8 6.349 Selecting previously unselected package python3-minimal.
#8 6.349 (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 ... 4712 files and directories currently installed.)
#8 6.354 Preparing to unpack .../0-python3-minimal_3.12.3-0ubuntu2_amd64.deb ...
#8 6.355 Unpacking python3-minimal (3.12.3-0ubuntu2) ...
#8 6.369 Selecting previously unselected package media-types.
#8 6.370 Preparing to unpack .../1-media-types_10.1.0_all.deb ...
#8 6.371 Unpacking media-types (10.1.0) ...
#8 6.384 Selecting previously unselected package netbase.
#8 6.385 Preparing to unpack .../2-netbase_6.4_all.deb ...
#8 6.386 Unpacking netbase (6.4) ...
#8 6.401 Selecting previously unselected package tzdata.
#8 6.402 Preparing to unpack .../3-tzdata_2024a-3ubuntu1.1_all.deb ...
#8 6.404 Unpacking tzdata (2024a-3ubuntu1.1) ...
#8 6.493 Selecting previously unselected package readline-common.
#8 6.494 Preparing to unpack .../4-readline-common_8.2-4build1_all.deb ...
#8 6.495 Unpacking readline-common (8.2-4build1) ...
#8 6.511 Selecting previously unselected package libreadline8t64:amd64.
#8 6.512 Preparing to unpack .../5-libreadline8t64_8.2-4build1_amd64.deb ...
#8 6.515 Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64'
#8 6.519 Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64'
#8 6.522 Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64'
#8 6.525 Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64'
#8 6.527 Unpacking libreadline8t64:amd64 (8.2-4build1) ...
#8 6.543 Selecting previously unselected package libsqlite3-0:amd64.
#8 6.544 Preparing to unpack .../6-libsqlite3-0_3.45.1-1ubuntu2_amd64.deb ...
#8 6.546 Unpacking libsqlite3-0:amd64 (3.45.1-1ubuntu2) ...
#8 6.565 Selecting previously unselected package libpython3.12-stdlib:amd64.
#8 6.566 Preparing to unpack .../7-libpython3.12-stdlib_3.12.3-1ubuntu0.3_amd64.deb ...
#8 6.567 Unpacking libpython3.12-stdlib:amd64 (3.12.3-1ubuntu0.3) ...
#8 6.663 Selecting previously unselected package python3.12.
#8 6.664 Preparing to unpack .../8-python3.12_3.12.3-1ubuntu0.3_amd64.deb ...
#8 6.665 Unpacking python3.12 (3.12.3-1ubuntu0.3) ...
#8 6.685 Selecting previously unselected package libpython3-stdlib:amd64.
#8 6.686 Preparing to unpack .../9-libpython3-stdlib_3.12.3-0ubuntu2_amd64.deb ...
#8 6.687 Unpacking libpython3-stdlib:amd64 (3.12.3-0ubuntu2) ...
#8 6.702 Setting up python3-minimal (3.12.3-0ubuntu2) ...
#8 6.825 Selecting previously unselected package python3.
#8 6.825 (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 ... 5717 files and directories currently installed.)
#8 6.829 Preparing to unpack .../0-python3_3.12.3-0ubuntu2_amd64.deb ...
#8 6.832 Unpacking python3 (3.12.3-0ubuntu2) ...
#8 6.847 Selecting previously unselected package perl-modules-5.38.
#8 6.848 Preparing to unpack .../1-perl-modules-5.38_5.38.2-3.2build2_all.deb ...
#8 6.849 Unpacking perl-modules-5.38 (5.38.2-3.2build2) ...
#8 7.132 Selecting previously unselected package libgdbm6t64:amd64.
#8 7.133 Preparing to unpack .../2-libgdbm6t64_1.23-5.1build1_amd64.deb ...
#8 7.134 Unpacking libgdbm6t64:amd64 (1.23-5.1build1) ...
#8 7.149 Selecting previously unselected package libgdbm-compat4t64:amd64.
#8 7.150 Preparing to unpack .../3-libgdbm-compat4t64_1.23-5.1build1_amd64.deb ...
#8 7.151 Unpacking libgdbm-compat4t64:amd64 (1.23-5.1build1) ...
#8 7.166 Selecting previously unselected package libperl5.38t64:amd64.
#8 7.167 Preparing to unpack .../4-libperl5.38t64_5.38.2-3.2build2_amd64.deb ...
#8 7.168 Unpacking libperl5.38t64:amd64 (5.38.2-3.2build2) ...
#8 7.361 Selecting previously unselected package perl.
#8 7.363 Preparing to unpack .../5-perl_5.38.2-3.2build2_amd64.deb ...
#8 7.368 Unpacking perl (5.38.2-3.2build2) ...
#8 7.391 Selecting previously unselected package adduser.
#8 7.392 Preparing to unpack .../6-adduser_3.137ubuntu1_all.deb ...
#8 7.394 Unpacking adduser (3.137ubuntu1) ...
#8 7.415 Setting up adduser (3.137ubuntu1) ...
#8 7.443 Selecting previously unselected package openssl.
#8 7.443 (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 ... 7798 files and directories currently installed.)
#8 7.448 Preparing to unpack .../000-openssl_3.0.13-0ubuntu3.4_amd64.deb ...
#8 7.449 Unpacking openssl (3.0.13-0ubuntu3.4) ...
#8 7.487 Selecting previously unselected package ca-certificates.
#8 7.489 Preparing to unpack .../001-ca-certificates_20240203_all.deb ...
#8 7.490 Unpacking ca-certificates (20240203) ...
#8 7.532 Selecting previously unselected package libbsd0:amd64.
#8 7.534 Preparing to unpack .../002-libbsd0_0.12.1-1build1_amd64.deb ...
#8 7.535 Unpacking libbsd0:amd64 (0.12.1-1build1) ...
#8 7.549 Selecting previously unselected package python3-pkg-resources.
#8 7.550 Preparing to unpack .../003-python3-pkg-resources_68.1.2-2ubuntu1.1_all.deb ...
#8 7.551 Unpacking python3-pkg-resources (68.1.2-2ubuntu1.1) ...
#8 7.574 Selecting previously unselected package libjansson4:amd64.
#8 7.576 Preparing to unpack .../004-libjansson4_2.14-2build2_amd64.deb ...
#8 7.576 Unpacking libjansson4:amd64 (2.14-2build2) ...
#8 7.591 Selecting previously unselected package libpng16-16t64:amd64.
#8 7.592 Preparing to unpack .../005-libpng16-16t64_1.6.43-5build1_amd64.deb ...
#8 7.593 Unpacking libpng16-16t64:amd64 (1.6.43-5build1) ...
#8 7.608 Selecting previously unselected package libxau6:amd64.
#8 7.609 Preparing to unpack .../006-libxau6_1%3a1.0.9-1build6_amd64.deb ...
#8 7.610 Unpacking libxau6:amd64 (1:1.0.9-1build6) ...
#8 7.623 Selecting previously unselected package libxdmcp6:amd64.
#8 7.624 Preparing to unpack .../007-libxdmcp6_1%3a1.1.3-0ubuntu6_amd64.deb ...
#8 7.625 Unpacking libxdmcp6:amd64 (1:1.1.3-0ubuntu6) ...
#8 7.638 Selecting previously unselected package libxcb1:amd64.
#8 7.640 Preparing to unpack .../008-libxcb1_1.15-1ubuntu2_amd64.deb ...
#8 7.640 Unpacking libxcb1:amd64 (1.15-1ubuntu2) ...
#8 7.654 Selecting previously unselected package libx11-data.
#8 7.655 Preparing to unpack .../009-libx11-data_2%3a1.8.7-1build1_all.deb ...
#8 7.656 Unpacking libx11-data (2:1.8.7-1build1) ...
#8 7.709 Selecting previously unselected package libx11-6:amd64.
#8 7.711 Preparing to unpack .../010-libx11-6_2%3a1.8.7-1build1_amd64.deb ...
#8 7.712 Unpacking libx11-6:amd64 (2:1.8.7-1build1) ...
#8 7.732 Selecting previously unselected package manpages.
#8 7.733 Preparing to unpack .../011-manpages_6.7-2_all.deb ...
#8 7.734 Unpacking manpages (6.7-2) ...
#8 7.769 Selecting previously unselected package xz-utils.
#8 7.770 Preparing to unpack .../012-xz-utils_5.6.1+really5.4.5-1build0.1_amd64.deb ...
#8 7.771 Unpacking xz-utils (5.6.1+really5.4.5-1build0.1) ...
#8 7.802 Selecting previously unselected package binutils-common:amd64.
#8 7.804 Preparing to unpack .../013-binutils-common_2.42-4ubuntu2.3_amd64.deb ...
#8 7.805 Unpacking binutils-common:amd64 (2.42-4ubuntu2.3) ...
#8 7.823 Selecting previously unselected package libsframe1:amd64.
#8 7.824 Preparing to unpack .../014-libsframe1_2.42-4ubuntu2.3_amd64.deb ...
#8 7.826 Unpacking libsframe1:amd64 (2.42-4ubuntu2.3) ...
#8 7.840 Selecting previously unselected package libbinutils:amd64.
#8 7.841 Preparing to unpack .../015-libbinutils_2.42-4ubuntu2.3_amd64.deb ...
#8 7.842 Unpacking libbinutils:amd64 (2.42-4ubuntu2.3) ...
#8 7.866 Selecting previously unselected package libctf-nobfd0:amd64.
#8 7.867 Preparing to unpack .../016-libctf-nobfd0_2.42-4ubuntu2.3_amd64.deb ...
#8 7.868 Unpacking libctf-nobfd0:amd64 (2.42-4ubuntu2.3) ...
#8 7.884 Selecting previously unselected package libctf0:amd64.
#8 7.885 Preparing to unpack .../017-libctf0_2.42-4ubuntu2.3_amd64.deb ...
#8 7.886 Unpacking libctf0:amd64 (2.42-4ubuntu2.3) ...
#8 7.902 Selecting previously unselected package libgprofng0:amd64.
#8 7.903 Preparing to unpack .../018-libgprofng0_2.42-4ubuntu2.3_amd64.deb ...
#8 7.904 Unpacking libgprofng0:amd64 (2.42-4ubuntu2.3) ...
#8 7.933 Selecting previously unselected package binutils-x86-64-linux-gnu.
#8 7.935 Preparing to unpack .../019-binutils-x86-64-linux-gnu_2.42-4ubuntu2.3_amd64.deb ...
#8 7.936 Unpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2.3) ...
#8 8.012 Selecting previously unselected package binutils.
#8 8.014 Preparing to unpack .../020-binutils_2.42-4ubuntu2.3_amd64.deb ...
#8 8.014 Unpacking binutils (2.42-4ubuntu2.3) ...
#8 8.031 Selecting previously unselected package libc-dev-bin.
#8 8.033 Preparing to unpack .../021-libc-dev-bin_2.39-0ubuntu8.3_amd64.deb ...
#8 8.033 Unpacking libc-dev-bin (2.39-0ubuntu8.3) ...
#8 8.047 Selecting previously unselected package linux-libc-dev:amd64.
#8 8.048 Preparing to unpack .../022-linux-libc-dev_6.8.0-49.49_amd64.deb ...
#8 8.049 Unpacking linux-libc-dev:amd64 (6.8.0-49.49) ...
#8 8.243 Selecting previously unselected package libcrypt-dev:amd64.
#8 8.244 Preparing to unpack .../023-libcrypt-dev_1%3a4.4.36-4build1_amd64.deb ...
#8 8.250 Unpacking libcrypt-dev:amd64 (1:4.4.36-4build1) ...
#8 8.265 Selecting previously unselected package rpcsvc-proto.
#8 8.266 Preparing to unpack .../024-rpcsvc-proto_1.4.2-0ubuntu7_amd64.deb ...
#8 8.267 Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ...
#8 8.283 Selecting previously unselected package libc6-dev:amd64.
#8 8.284 Preparing to unpack .../025-libc6-dev_2.39-0ubuntu8.3_amd64.deb ...
#8 8.286 Unpacking libc6-dev:amd64 (2.39-0ubuntu8.3) ...
#8 8.435 Selecting previously unselected package gcc-13-base:amd64.
#8 8.437 Preparing to unpack .../026-gcc-13-base_13.2.0-23ubuntu4_amd64.deb ...
#8 8.438 Unpacking gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
#8 8.453 Selecting previously unselected package libisl23:amd64.
#8 8.454 Preparing to unpack .../027-libisl23_0.26-3build1_amd64.deb ...
#8 8.455 Unpacking libisl23:amd64 (0.26-3build1) ...
#8 8.479 Selecting previously unselected package libmpfr6:amd64.
#8 8.480 Preparing to unpack .../028-libmpfr6_4.2.1-1build1_amd64.deb ...
#8 8.481 Unpacking libmpfr6:amd64 (4.2.1-1build1) ...
#8 8.499 Selecting previously unselected package libmpc3:amd64.
#8 8.500 Preparing to unpack .../029-libmpc3_1.3.1-1build1_amd64.deb ...
#8 8.501 Unpacking libmpc3:amd64 (1.3.1-1build1) ...
#8 8.514 Selecting previously unselected package cpp-13-x86-64-linux-gnu.
#8 8.515 Preparing to unpack .../030-cpp-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
#8 8.516 Unpacking cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 8.667 Selecting previously unselected package cpp-13.
#8 8.669 Preparing to unpack .../031-cpp-13_13.2.0-23ubuntu4_amd64.deb ...
#8 8.670 Unpacking cpp-13 (13.2.0-23ubuntu4) ...
#8 8.682 Selecting previously unselected package cpp-x86-64-linux-gnu.
#8 8.684 Preparing to unpack .../032-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 8.685 Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 8.699 Selecting previously unselected package cpp.
#8 8.701 Preparing to unpack .../033-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 8.706 Unpacking cpp (4:13.2.0-7ubuntu1) ...
#8 8.720 Selecting previously unselected package libcc1-0:amd64.
#8 8.722 Preparing to unpack .../034-libcc1-0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.723 Unpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.738 Selecting previously unselected package libgomp1:amd64.
#8 8.740 Preparing to unpack .../035-libgomp1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.741 Unpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.756 Selecting previously unselected package libitm1:amd64.
#8 8.758 Preparing to unpack .../036-libitm1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.759 Unpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.773 Selecting previously unselected package libatomic1:amd64.
#8 8.774 Preparing to unpack .../037-libatomic1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.775 Unpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.791 Selecting previously unselected package libasan8:amd64.
#8 8.793 Preparing to unpack .../038-libasan8_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.794 Unpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.856 Selecting previously unselected package liblsan0:amd64.
#8 8.857 Preparing to unpack .../039-liblsan0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.858 Unpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.889 Selecting previously unselected package libtsan2:amd64.
#8 8.891 Preparing to unpack .../040-libtsan2_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.892 Unpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.943 Selecting previously unselected package libubsan1:amd64.
#8 8.945 Preparing to unpack .../041-libubsan1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.946 Unpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 8.976 Selecting previously unselected package libhwasan0:amd64.
#8 8.978 Preparing to unpack .../042-libhwasan0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 8.979 Unpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 9.018 Selecting previously unselected package libquadmath0:amd64.
#8 9.020 Preparing to unpack .../043-libquadmath0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 9.021 Unpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 9.037 Selecting previously unselected package libgcc-13-dev:amd64.
#8 9.039 Preparing to unpack .../044-libgcc-13-dev_13.2.0-23ubuntu4_amd64.deb ...
#8 9.040 Unpacking libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 9.134 Selecting previously unselected package gcc-13-x86-64-linux-gnu.
#8 9.136 Preparing to unpack .../045-gcc-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
#8 9.136 Unpacking gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 9.430 Selecting previously unselected package gcc-13.
#8 9.431 Preparing to unpack .../046-gcc-13_13.2.0-23ubuntu4_amd64.deb ...
#8 9.432 Unpacking gcc-13 (13.2.0-23ubuntu4) ...
#8 9.450 Selecting previously unselected package gcc-x86-64-linux-gnu.
#8 9.451 Preparing to unpack .../047-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 9.452 Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 9.466 Selecting previously unselected package gcc.
#8 9.467 Preparing to unpack .../048-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 9.468 Unpacking gcc (4:13.2.0-7ubuntu1) ...
#8 9.483 Selecting previously unselected package libstdc++-13-dev:amd64.
#8 9.484 Preparing to unpack .../049-libstdc++-13-dev_13.2.0-23ubuntu4_amd64.deb ...
#8 9.485 Unpacking libstdc++-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 9.692 Selecting previously unselected package g++-13-x86-64-linux-gnu.
#8 9.694 Preparing to unpack .../050-g++-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
#8 9.695 Unpacking g++-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 9.855 Selecting previously unselected package g++-13.
#8 9.857 Preparing to unpack .../051-g++-13_13.2.0-23ubuntu4_amd64.deb ...
#8 9.858 Unpacking g++-13 (13.2.0-23ubuntu4) ...
#8 9.870 Selecting previously unselected package g++-x86-64-linux-gnu.
#8 9.872 Preparing to unpack .../052-g++-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 9.873 Unpacking g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 9.886 Selecting previously unselected package g++.
#8 9.887 Preparing to unpack .../053-g++_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 9.888 Unpacking g++ (4:13.2.0-7ubuntu1) ...
#8 9.900 Selecting previously unselected package make.
#8 9.902 Preparing to unpack .../054-make_4.3-4.1build2_amd64.deb ...
#8 9.902 Unpacking make (4.3-4.1build2) ...
#8 9.919 Selecting previously unselected package libdpkg-perl.
#8 9.921 Preparing to unpack .../055-libdpkg-perl_1.22.6ubuntu6.1_all.deb ...
#8 9.922 Unpacking libdpkg-perl (1.22.6ubuntu6.1) ...
#8 9.956 Selecting previously unselected package bzip2.
#8 9.959 Preparing to unpack .../056-bzip2_1.0.8-5.1build0.1_amd64.deb ...
#8 9.960 Unpacking bzip2 (1.0.8-5.1build0.1) ...
#8 9.975 Selecting previously unselected package patch.
#8 9.977 Preparing to unpack .../057-patch_2.7.6-7build3_amd64.deb ...
#8 9.978 Unpacking patch (2.7.6-7build3) ...
#8 9.992 Selecting previously unselected package lto-disabled-list.
#8 9.994 Preparing to unpack .../058-lto-disabled-list_47_all.deb ...
#8 9.995 Unpacking lto-disabled-list (47) ...
#8 10.01 Selecting previously unselected package dpkg-dev.
#8 10.01 Preparing to unpack .../059-dpkg-dev_1.22.6ubuntu6.1_all.deb ...
#8 10.01 Unpacking dpkg-dev (1.22.6ubuntu6.1) ...
#8 10.05 Selecting previously unselected package build-essential.
#8 10.05 Preparing to unpack .../060-build-essential_12.10ubuntu1_amd64.deb ...
#8 10.05 Unpacking build-essential (12.10ubuntu1) ...
#8 10.06 Selecting previously unselected package gpgconf.
#8 10.06 Preparing to unpack .../061-gpgconf_2.4.4-2ubuntu17_amd64.deb ...
#8 10.07 Unpacking gpgconf (2.4.4-2ubuntu17) ...
#8 10.08 Selecting previously unselected package libksba8:amd64.
#8 10.08 Preparing to unpack .../062-libksba8_1.6.6-1build1_amd64.deb ...
#8 10.08 Unpacking libksba8:amd64 (1.6.6-1build1) ...
#8 10.10 Selecting previously unselected package libsasl2-modules-db:amd64.
#8 10.10 Preparing to unpack .../063-libsasl2-modules-db_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 10.10 Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 10.12 Selecting previously unselected package libsasl2-2:amd64.
#8 10.12 Preparing to unpack .../064-libsasl2-2_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 10.12 Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 10.13 Selecting previously unselected package libldap2:amd64.
#8 10.13 Preparing to unpack .../065-libldap2_2.6.7+dfsg-1~exp1ubuntu8.1_amd64.deb ...
#8 10.14 Unpacking libldap2:amd64 (2.6.7+dfsg-1~exp1ubuntu8.1) ...
#8 10.15 Selecting previously unselected package dirmngr.
#8 10.15 Preparing to unpack .../066-dirmngr_2.4.4-2ubuntu17_amd64.deb ...
#8 10.17 Unpacking dirmngr (2.4.4-2ubuntu17) ...
#8 10.19 Selecting previously unselected package libfakeroot:amd64.
#8 10.19 Preparing to unpack .../067-libfakeroot_1.33-1_amd64.deb ...
#8 10.19 Unpacking libfakeroot:amd64 (1.33-1) ...
#8 10.21 Selecting previously unselected package fakeroot.
#8 10.21 Preparing to unpack .../068-fakeroot_1.33-1_amd64.deb ...
#8 10.21 Unpacking fakeroot (1.33-1) ...
#8 10.23 Selecting previously unselected package fonts-dejavu-mono.
#8 10.23 Preparing to unpack .../069-fonts-dejavu-mono_2.37-8_all.deb ...
#8 10.23 Unpacking fonts-dejavu-mono (2.37-8) ...
#8 10.25 Selecting previously unselected package fonts-dejavu-core.
#8 10.25 Preparing to unpack .../070-fonts-dejavu-core_2.37-8_all.deb ...
#8 10.27 Unpacking fonts-dejavu-core (2.37-8) ...
#8 10.30 Selecting previously unselected package fontconfig-config.
#8 10.31 Preparing to unpack .../071-fontconfig-config_2.15.0-1.1ubuntu2_amd64.deb ...
#8 10.44 Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ...
#8 10.46 Selecting previously unselected package gnupg-utils.
#8 10.46 Preparing to unpack .../072-gnupg-utils_2.4.4-2ubuntu17_amd64.deb ...
#8 10.46 Unpacking gnupg-utils (2.4.4-2ubuntu17) ...
#8 10.48 Selecting previously unselected package gpg.
#8 10.48 Preparing to unpack .../073-gpg_2.4.4-2ubuntu17_amd64.deb ...
#8 10.48 Unpacking gpg (2.4.4-2ubuntu17) ...
#8 10.50 Selecting previously unselected package pinentry-curses.
#8 10.51 Preparing to unpack .../074-pinentry-curses_1.2.1-3ubuntu5_amd64.deb ...
#8 10.51 Unpacking pinentry-curses (1.2.1-3ubuntu5) ...
#8 10.52 Selecting previously unselected package gpg-agent.
#8 10.53 Preparing to unpack .../075-gpg-agent_2.4.4-2ubuntu17_amd64.deb ...
#8 10.53 Unpacking gpg-agent (2.4.4-2ubuntu17) ...
#8 10.55 Selecting previously unselected package gpgsm.
#8 10.55 Preparing to unpack .../076-gpgsm_2.4.4-2ubuntu17_amd64.deb ...
#8 10.55 Unpacking gpgsm (2.4.4-2ubuntu17) ...
#8 10.57 Selecting previously unselected package keyboxd.
#8 10.57 Preparing to unpack .../077-keyboxd_2.4.4-2ubuntu17_amd64.deb ...
#8 10.57 Unpacking keyboxd (2.4.4-2ubuntu17) ...
#8 10.58 Selecting previously unselected package gnupg.
#8 10.59 Preparing to unpack .../078-gnupg_2.4.4-2ubuntu17_all.deb ...
#8 10.59 Unpacking gnupg (2.4.4-2ubuntu17) ...
#8 10.60 Selecting previously unselected package gnupg-l10n.
#8 10.61 Preparing to unpack .../079-gnupg-l10n_2.4.4-2ubuntu17_all.deb ...
#8 10.61 Unpacking gnupg-l10n (2.4.4-2ubuntu17) ...
#8 10.63 Selecting previously unselected package gpg-wks-client.
#8 10.63 Preparing to unpack .../080-gpg-wks-client_2.4.4-2ubuntu17_amd64.deb ...
#8 10.63 Unpacking gpg-wks-client (2.4.4-2ubuntu17) ...
#8 10.65 Selecting previously unselected package javascript-common.
#8 10.65 Preparing to unpack .../081-javascript-common_11+nmu1_all.deb ...
#8 10.66 Unpacking javascript-common (11+nmu1) ...
#8 10.67 Selecting previously unselected package libalgorithm-diff-perl.
#8 10.67 Preparing to unpack .../082-libalgorithm-diff-perl_1.201-1_all.deb ...
#8 10.67 Unpacking libalgorithm-diff-perl (1.201-1) ...
#8 10.69 Selecting previously unselected package libalgorithm-diff-xs-perl:amd64.
#8 10.69 Preparing to unpack .../083-libalgorithm-diff-xs-perl_0.04-8build3_amd64.deb ...
#8 10.69 Unpacking libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
#8 10.72 Selecting previously unselected package libalgorithm-merge-perl.
#8 10.72 Preparing to unpack .../084-libalgorithm-merge-perl_0.08-5_all.deb ...
#8 10.72 Unpacking libalgorithm-merge-perl (0.08-5) ...
#8 10.73 Selecting previously unselected package libaom3:amd64.
#8 10.74 Preparing to unpack .../085-libaom3_3.8.2-2ubuntu0.1_amd64.deb ...
#8 10.74 Unpacking libaom3:amd64 (3.8.2-2ubuntu0.1) ...
#8 10.77 Selecting previously unselected package libbrotli1:amd64.
#8 10.78 Preparing to unpack .../086-libbrotli1_1.1.0-2build2_amd64.deb ...
#8 10.78 Unpacking libbrotli1:amd64 (1.1.0-2build2) ...
#8 10.80 Selecting previously unselected package libfreetype6:amd64.
#8 10.80 Preparing to unpack .../087-libfreetype6_2.13.2+dfsg-1build3_amd64.deb ...
#8 10.80 Unpacking libfreetype6:amd64 (2.13.2+dfsg-1build3) ...
#8 10.82 Selecting previously unselected package libfontconfig1:amd64.
#8 10.82 Preparing to unpack .../088-libfontconfig1_2.15.0-1.1ubuntu2_amd64.deb ...
#8 10.83 Unpacking libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
#8 10.84 Selecting previously unselected package libsharpyuv0:amd64.
#8 10.84 Preparing to unpack .../089-libsharpyuv0_1.3.2-0.4build3_amd64.deb ...
#8 10.84 Unpacking libsharpyuv0:amd64 (1.3.2-0.4build3) ...
#8 10.86 Selecting previously unselected package libheif-plugin-aomdec:amd64.
#8 10.86 Preparing to unpack .../090-libheif-plugin-aomdec_1.17.6-1ubuntu4.1_amd64.deb ...
#8 10.86 Unpacking libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4.1) ...
#8 10.87 Selecting previously unselected package libde265-0:amd64.
#8 10.88 Preparing to unpack .../091-libde265-0_1.0.15-1build3_amd64.deb ...
#8 10.88 Unpacking libde265-0:amd64 (1.0.15-1build3) ...
#8 10.89 Selecting previously unselected package libheif-plugin-libde265:amd64.
#8 10.89 Preparing to unpack .../092-libheif-plugin-libde265_1.17.6-1ubuntu4.1_amd64.deb ...
#8 10.89 Unpacking libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4.1) ...
#8 10.91 Selecting previously unselected package libheif1:amd64.
#8 10.91 Preparing to unpack .../093-libheif1_1.17.6-1ubuntu4.1_amd64.deb ...
#8 10.91 Unpacking libheif1:amd64 (1.17.6-1ubuntu4.1) ...
#8 10.93 Selecting previously unselected package libjpeg-turbo8:amd64.
#8 10.93 Preparing to unpack .../094-libjpeg-turbo8_2.1.5-2ubuntu2_amd64.deb ...
#8 10.93 Unpacking libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
#8 10.95 Selecting previously unselected package libjpeg8:amd64.
#8 10.95 Preparing to unpack .../095-libjpeg8_8c-2ubuntu11_amd64.deb ...
#8 10.95 Unpacking libjpeg8:amd64 (8c-2ubuntu11) ...
#8 10.97 Selecting previously unselected package libdeflate0:amd64.
#8 10.97 Preparing to unpack .../096-libdeflate0_1.19-1build1.1_amd64.deb ...
#8 10.97 Unpacking libdeflate0:amd64 (1.19-1build1.1) ...
#8 10.99 Selecting previously unselected package libjbig0:amd64.
#8 10.99 Preparing to unpack .../097-libjbig0_2.1-6.1ubuntu2_amd64.deb ...
#8 10.99 Unpacking libjbig0:amd64 (2.1-6.1ubuntu2) ...
#8 11.01 Selecting previously unselected package liblerc4:amd64.
#8 11.01 Preparing to unpack .../098-liblerc4_4.0.0+ds-4ubuntu2_amd64.deb ...
#8 11.01 Unpacking liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
#8 11.03 Selecting previously unselected package libwebp7:amd64.
#8 11.03 Preparing to unpack .../099-libwebp7_1.3.2-0.4build3_amd64.deb ...
#8 11.03 Unpacking libwebp7:amd64 (1.3.2-0.4build3) ...
#8 11.05 Selecting previously unselected package libtiff6:amd64.
#8 11.05 Preparing to unpack .../100-libtiff6_4.5.1+git230720-4ubuntu2.2_amd64.deb ...
#8 11.06 Unpacking libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
#8 11.07 Selecting previously unselected package libxpm4:amd64.
#8 11.08 Preparing to unpack .../101-libxpm4_1%3a3.5.17-1build2_amd64.deb ...
#8 11.08 Unpacking libxpm4:amd64 (1:3.5.17-1build2) ...
#8 11.09 Selecting previously unselected package libgd3:amd64.
#8 11.09 Preparing to unpack .../102-libgd3_2.3.3-9ubuntu5_amd64.deb ...
#8 11.10 Unpacking libgd3:amd64 (2.3.3-9ubuntu5) ...
#8 11.11 Selecting previously unselected package libc-devtools.
#8 11.11 Preparing to unpack .../103-libc-devtools_2.39-0ubuntu8.3_amd64.deb ...
#8 11.11 Unpacking libc-devtools (2.39-0ubuntu8.3) ...
#8 11.13 Selecting previously unselected package libexpat1-dev:amd64.
#8 11.13 Preparing to unpack .../104-libexpat1-dev_2.6.1-2ubuntu0.1_amd64.deb ...
#8 11.13 Unpacking libexpat1-dev:amd64 (2.6.1-2ubuntu0.1) ...
#8 11.15 Selecting previously unselected package libfile-fcntllock-perl.
#8 11.15 Preparing to unpack .../105-libfile-fcntllock-perl_0.22-4ubuntu5_amd64.deb ...
#8 11.15 Unpacking libfile-fcntllock-perl (0.22-4ubuntu5) ...
#8 11.17 Selecting previously unselected package libheif-plugin-aomenc:amd64.
#8 11.18 Preparing to unpack .../106-libheif-plugin-aomenc_1.17.6-1ubuntu4.1_amd64.deb ...
#8 11.18 Unpacking libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4.1) ...
#8 11.19 Selecting previously unselected package libjs-jquery.
#8 11.20 Preparing to unpack .../107-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
#8 11.20 Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
#8 11.22 Selecting previously unselected package libjs-underscore.
#8 11.22 Preparing to unpack .../108-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ...
#8 11.22 Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
#8 11.24 Selecting previously unselected package libjs-sphinxdoc.
#8 11.24 Preparing to unpack .../109-libjs-sphinxdoc_7.2.6-6_all.deb ...
#8 11.24 Unpacking libjs-sphinxdoc (7.2.6-6) ...
#8 11.26 Selecting previously unselected package libldap-common.
#8 11.26 Preparing to unpack .../110-libldap-common_2.6.7+dfsg-1~exp1ubuntu8.1_all.deb ...
#8 11.26 Unpacking libldap-common (2.6.7+dfsg-1~exp1ubuntu8.1) ...
#8 11.28 Selecting previously unselected package libpython3.12t64:amd64.
#8 11.28 Preparing to unpack .../111-libpython3.12t64_3.12.3-1ubuntu0.3_amd64.deb ...
#8 11.28 Unpacking libpython3.12t64:amd64 (3.12.3-1ubuntu0.3) ...
#8 11.33 Selecting previously unselected package zlib1g-dev:amd64.
#8 11.33 Preparing to unpack .../112-zlib1g-dev_1%3a1.3.dfsg-3.1ubuntu2.1_amd64.deb ...
#8 11.34 Unpacking zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 11.35 Selecting previously unselected package libpython3.12-dev:amd64.
#8 11.35 Preparing to unpack .../113-libpython3.12-dev_3.12.3-1ubuntu0.3_amd64.deb ...
#8 11.36 Unpacking libpython3.12-dev:amd64 (3.12.3-1ubuntu0.3) ...
#8 11.52 Selecting previously unselected package libpython3-dev:amd64.
#8 11.52 Preparing to unpack .../114-libpython3-dev_3.12.3-0ubuntu2_amd64.deb ...
#8 11.52 Unpacking libpython3-dev:amd64 (3.12.3-0ubuntu2) ...
#8 11.54 Selecting previously unselected package libsasl2-modules:amd64.
#8 11.54 Preparing to unpack .../115-libsasl2-modules_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 11.55 Unpacking libsasl2-modules:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 11.56 Selecting previously unselected package manpages-dev.
#8 11.57 Preparing to unpack .../116-manpages-dev_6.7-2_all.deb ...
#8 11.57 Unpacking manpages-dev (6.7-2) ...
#8 11.66 Selecting previously unselected package python3.12-dev.
#8 11.66 Preparing to unpack .../117-python3.12-dev_3.12.3-1ubuntu0.3_amd64.deb ...
#8 11.66 Unpacking python3.12-dev (3.12.3-1ubuntu0.3) ...
#8 11.68 Selecting previously unselected package python3-dev.
#8 11.68 Preparing to unpack .../118-python3-dev_3.12.3-0ubuntu2_amd64.deb ...
#8 11.68 Unpacking python3-dev (3.12.3-0ubuntu2) ...
#8 11.70 Selecting previously unselected package python3-setuptools.
#8 11.70 Preparing to unpack .../119-python3-setuptools_68.1.2-2ubuntu1.1_all.deb ...
#8 11.70 Unpacking python3-setuptools (68.1.2-2ubuntu1.1) ...
#8 11.75 Selecting previously unselected package python3-wheel.
#8 11.76 Preparing to unpack .../120-python3-wheel_0.42.0-2_all.deb ...
#8 11.76 Unpacking python3-wheel (0.42.0-2) ...
#8 11.78 Selecting previously unselected package python3-pip.
#8 11.78 Preparing to unpack .../121-python3-pip_24.0+dfsg-1ubuntu1.1_all.deb ...
#8 11.78 Unpacking python3-pip (24.0+dfsg-1ubuntu1.1) ...
#8 11.92 Setting up libksba8:amd64 (1.6.6-1build1) ...
#8 11.92 Setting up pinentry-curses (1.2.1-3ubuntu5) ...
#8 11.92 Setting up media-types (10.1.0) ...
#8 11.93 Setting up javascript-common (11+nmu1) ...
#8 11.94 Setting up libsharpyuv0:amd64 (1.3.2-0.4build3) ...
#8 11.95 Setting up libaom3:amd64 (3.8.2-2ubuntu0.1) ...
#8 11.95 Setting up libxau6:amd64 (1:1.0.9-1build6) ...
#8 11.96 Setting up lto-disabled-list (47) ...
#8 11.96 Setting up liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
#8 11.97 Setting up libgdbm6t64:amd64 (1.23-5.1build1) ...
#8 11.97 Setting up libgdbm-compat4t64:amd64 (1.23-5.1build1) ...
#8 11.97 Setting up manpages (6.7-2) ...
#8 11.97 Setting up libbrotli1:amd64 (1.1.0-2build2) ...
#8 11.98 Setting up libsqlite3-0:amd64 (3.45.1-1ubuntu2) ...
#8 11.98 Setting up libsasl2-modules:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 11.99 Setting up binutils-common:amd64 (2.42-4ubuntu2.3) ...
#8 11.99 Setting up libdeflate0:amd64 (1.19-1build1.1) ...
#8 12.00 Setting up linux-libc-dev:amd64 (6.8.0-49.49) ...
#8 12.00 Setting up libctf-nobfd0:amd64 (2.42-4ubuntu2.3) ...
#8 12.00 Setting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.01 Setting up bzip2 (1.0.8-5.1build0.1) ...
#8 12.01 Setting up libldap-common (2.6.7+dfsg-1~exp1ubuntu8.1) ...
#8 12.01 Setting up libjbig0:amd64 (2.1-6.1ubuntu2) ...
#8 12.02 Setting up libsframe1:amd64 (2.42-4ubuntu2.3) ...
#8 12.02 Setting up libfakeroot:amd64 (1.33-1) ...
#8 12.02 Setting up libjansson4:amd64 (2.14-2build2) ...
#8 12.03 Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 12.03 Setting up tzdata (2024a-3ubuntu1.1) ...
#8 12.10 debconf: unable to initialize frontend: Dialog
#8 12.10 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 12.10 debconf: falling back to frontend: Readline
#8 12.10 debconf: unable to initialize frontend: Readline
#8 12.10 debconf: (This frontend requires a controlling tty.)
#8 12.10 debconf: falling back to frontend: Teletype
#8 12.13 Configuring tzdata
#8 12.13 ------------------
#8 12.13 
#8 12.13 Please select the geographic area in which you live. Subsequent configuration
#8 12.13 questions will narrow this down by presenting a list of cities, representing
#8 12.13 the time zones in which they are located.
#8 12.13 
#8 12.13   1. Africa   3. Antarctica  5. Asia      7. Australia  9. Indian    11. Etc
#8 12.13   2. America  4. Arctic      6. Atlantic  8. Europe     10. Pacific
#8 12.13 Geographic area: 
#8 12.13 Use of uninitialized value $_[1] in join or string at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 112.
#8 12.14 
#8 12.14 Current default time zone: '/UTC'
#8 12.14 Local time is now:      Tue Nov 19 16:04:44 UTC 2024.
#8 12.14 Universal Time is now:  Tue Nov 19 16:04:44 UTC 2024.
#8 12.14 Run 'dpkg-reconfigure tzdata' if you wish to change it.
#8 12.14 
#8 12.14 Use of uninitialized value $val in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 84, <GEN6> line 4.
#8 12.14 Use of uninitialized value $val in concatenation (.) or string at /usr/share/perl5/Debconf/Format/822.pm line 85, <GEN6> line 4.
#8 12.15 Setting up fakeroot (1.33-1) ...
#8 12.15 update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/man1/fakeroot.1.gz because associated file /usr/share/man/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/man1/faked.1.gz because associated file /usr/share/man/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/es/man1/fakeroot.1.gz because associated file /usr/share/man/es/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/es/man1/faked.1.gz because associated file /usr/share/man/es/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/fr/man1/fakeroot.1.gz because associated file /usr/share/man/fr/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/fr/man1/faked.1.gz because associated file /usr/share/man/fr/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/sv/man1/fakeroot.1.gz because associated file /usr/share/man/sv/man1/fakeroot-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.15 update-alternatives: warning: skip creation of /usr/share/man/sv/man1/faked.1.gz because associated file /usr/share/man/sv/man1/faked-sysv.1.gz (of link group fakeroot) doesn't exist
#8 12.16 Setting up rpcsvc-proto (1.4.2-0ubuntu7) ...
#8 12.16 Setting up gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
#8 12.16 Setting up libx11-data (2:1.8.7-1build1) ...
#8 12.17 Setting up make (4.3-4.1build2) ...
#8 12.17 Setting up libmpfr6:amd64 (4.2.1-1build1) ...
#8 12.17 Setting up gnupg-l10n (2.4.4-2ubuntu17) ...
#8 12.18 Setting up xz-utils (5.6.1+really5.4.5-1build0.1) ...
#8 12.18 update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzma.1.gz because associated file /usr/share/man/man1/xz.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/unlzma.1.gz because associated file /usr/share/man/man1/unxz.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcat.1.gz because associated file /usr/share/man/man1/xzcat.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzmore.1.gz because associated file /usr/share/man/man1/xzmore.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzless.1.gz because associated file /usr/share/man/man1/xzless.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzdiff.1.gz because associated file /usr/share/man/man1/xzdiff.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzcmp.1.gz because associated file /usr/share/man/man1/xzcmp.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzgrep.1.gz because associated file /usr/share/man/man1/xzgrep.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzegrep.1.gz because associated file /usr/share/man/man1/xzegrep.1.gz (of link group lzma) doesn't exist
#8 12.18 update-alternatives: warning: skip creation of /usr/share/man/man1/lzfgrep.1.gz because associated file /usr/share/man/man1/xzfgrep.1.gz (of link group lzma) doesn't exist
#8 12.18 Setting up perl-modules-5.38 (5.38.2-3.2build2) ...
#8 12.19 Setting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.19 Setting up fonts-dejavu-mono (2.37-8) ...
#8 12.20 Setting up libpng16-16t64:amd64 (1.6.43-5build1) ...
#8 12.20 Setting up libmpc3:amd64 (1.3.1-1build1) ...
#8 12.21 Setting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.21 Setting up patch (2.7.6-7build3) ...
#8 12.21 Setting up fonts-dejavu-core (2.37-8) ...
#8 12.23 Setting up libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
#8 12.24 Setting up libsasl2-2:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 12.24 Setting up libwebp7:amd64 (1.3.2-0.4build3) ...
#8 12.24 Setting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.24 Setting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.25 Setting up libcrypt-dev:amd64 (1:4.4.36-4build1) ...
#8 12.25 Setting up libasan8:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.26 Setting up netbase (6.4) ...
#8 12.26 Setting up libperl5.38t64:amd64 (5.38.2-3.2build2) ...
#8 12.27 Setting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.27 Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
#8 12.28 Setting up libbinutils:amd64 (2.42-4ubuntu2.3) ...
#8 12.28 Setting up libisl23:amd64 (0.26-3build1) ...
#8 12.28 Setting up libde265-0:amd64 (1.0.15-1build3) ...
#8 12.28 Setting up libc-dev-bin (2.39-0ubuntu8.3) ...
#8 12.29 Setting up openssl (3.0.13-0ubuntu3.4) ...
#8 12.29 Setting up libbsd0:amd64 (0.12.1-1build1) ...
#8 12.29 Setting up readline-common (8.2-4build1) ...
#8 12.30 Setting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.30 Setting up libldap2:amd64 (2.6.7+dfsg-1~exp1ubuntu8.1) ...
#8 12.30 Setting up liblocale-gettext-perl (1.07-6ubuntu5) ...
#8 12.31 Setting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.31 Setting up libitm1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.31 Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
#8 12.31 Setting up gnupg-utils (2.4.4-2ubuntu17) ...
#8 12.32 Setting up libctf0:amd64 (2.42-4ubuntu2.3) ...
#8 12.32 Setting up libjpeg8:amd64 (8c-2ubuntu11) ...
#8 12.32 Setting up manpages-dev (6.7-2) ...
#8 12.33 Setting up libxdmcp6:amd64 (1:1.1.3-0ubuntu6) ...
#8 12.33 Setting up libxcb1:amd64 (1.15-1ubuntu2) ...
#8 12.33 Setting up cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 12.33 Setting up fontconfig-config (2.15.0-1.1ubuntu2) ...
#8 12.48 Setting up ca-certificates (20240203) ...
#8 12.55 debconf: unable to initialize frontend: Dialog
#8 12.55 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 12.55 debconf: falling back to frontend: Readline
#8 12.56 debconf: unable to initialize frontend: Readline
#8 12.56 debconf: (This frontend requires a controlling tty.)
#8 12.56 debconf: falling back to frontend: Teletype
#8 12.95 Updating certificates in /etc/ssl/certs...
#8 13.51 146 added, 0 removed; done.
#8 13.53 Setting up perl (5.38.2-3.2build2) ...
#8 13.54 Setting up libgprofng0:amd64 (2.42-4ubuntu2.3) ...
#8 13.54 Setting up libfreetype6:amd64 (2.13.2+dfsg-1build3) ...
#8 13.55 Setting up libjs-sphinxdoc (7.2.6-6) ...
#8 13.55 Setting up libdpkg-perl (1.22.6ubuntu6.1) ...
#8 13.55 Setting up libreadline8t64:amd64 (8.2-4build1) ...
#8 13.55 Setting up libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 13.56 Setting up libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
#8 13.56 Setting up gpgconf (2.4.4-2ubuntu17) ...
#8 13.56 Setting up libc6-dev:amd64 (2.39-0ubuntu8.3) ...
#8 13.56 Setting up libx11-6:amd64 (2:1.8.7-1build1) ...
#8 13.57 Setting up libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
#8 13.57 Setting up gpg (2.4.4-2ubuntu17) ...
#8 13.57 Setting up libstdc++-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 13.57 Setting up binutils-x86-64-linux-gnu (2.42-4ubuntu2.3) ...
#8 13.58 Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 13.58 Setting up gpg-agent (2.4.4-2ubuntu17) ...
#8 13.99 Setting up libpython3.12-stdlib:amd64 (3.12.3-1ubuntu0.3) ...
#8 13.99 Setting up libxpm4:amd64 (1:3.5.17-1build2) ...
#8 14.00 Setting up cpp-13 (13.2.0-23ubuntu4) ...
#8 14.00 Setting up libfile-fcntllock-perl (0.22-4ubuntu5) ...
#8 14.00 Setting up libalgorithm-diff-perl (1.201-1) ...
#8 14.01 Setting up gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 14.01 Setting up python3.12 (3.12.3-1ubuntu0.3) ...
#8 14.78 Setting up gpgsm (2.4.4-2ubuntu17) ...
#8 14.79 Setting up binutils (2.42-4ubuntu2.3) ...
#8 14.79 Setting up dpkg-dev (1.22.6ubuntu6.1) ...
#8 14.79 Setting up libpython3.12t64:amd64 (3.12.3-1ubuntu0.3) ...
#8 14.80 Setting up dirmngr (2.4.4-2ubuntu17) ...
#8 14.91 Setting up libexpat1-dev:amd64 (2.6.1-2ubuntu0.1) ...
#8 14.91 Setting up gcc-13 (13.2.0-23ubuntu4) ...
#8 14.92 Setting up keyboxd (2.4.4-2ubuntu17) ...
#8 15.02 Setting up zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 15.02 Setting up cpp (4:13.2.0-7ubuntu1) ...
#8 15.03 Setting up gnupg (2.4.4-2ubuntu17) ...
#8 15.04 Setting up libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
#8 15.04 Setting up libpython3-stdlib:amd64 (3.12.3-0ubuntu2) ...
#8 15.04 Setting up libalgorithm-merge-perl (0.08-5) ...
#8 15.04 Setting up g++-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 15.05 Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 15.05 Setting up gpg-wks-client (2.4.4-2ubuntu17) ...
#8 15.05 Setting up python3 (3.12.3-0ubuntu2) ...
#8 15.06 running python rtupdate hooks for python3.12...
#8 15.06 running python post-rtupdate hooks for python3.12...
#8 15.14 Setting up libpython3.12-dev:amd64 (3.12.3-1ubuntu0.3) ...
#8 15.14 Setting up python3-wheel (0.42.0-2) ...
#8 15.27 Setting up gcc (4:13.2.0-7ubuntu1) ...
#8 15.27 Setting up python3.12-dev (3.12.3-1ubuntu0.3) ...
#8 15.28 Setting up g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 15.28 Setting up python3-pkg-resources (68.1.2-2ubuntu1.1) ...
#8 15.46 Setting up g++-13 (13.2.0-23ubuntu4) ...
#8 15.46 Setting up libpython3-dev:amd64 (3.12.3-0ubuntu2) ...
#8 15.46 Setting up python3-setuptools (68.1.2-2ubuntu1.1) ...
#8 15.86 Setting up python3-dev (3.12.3-0ubuntu2) ...
#8 15.87 Setting up python3-pip (24.0+dfsg-1ubuntu1.1) ...
#8 16.92 Setting up g++ (4:13.2.0-7ubuntu1) ...
#8 16.92 update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
#8 16.92 update-alternatives: warning: skip creation of /usr/share/man/man1/c++.1.gz because associated file /usr/share/man/man1/g++.1.gz (of link group c++) doesn't exist
#8 16.92 Setting up build-essential (12.10ubuntu1) ...
#8 16.92 Setting up libheif1:amd64 (1.17.6-1ubuntu4.1) ...
#8 16.93 Setting up libgd3:amd64 (2.3.3-9ubuntu5) ...
#8 16.93 Setting up libc-devtools (2.39-0ubuntu8.3) ...
#8 16.93 Setting up libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4.1) ...
#8 16.93 Setting up libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4.1) ...
#8 16.94 Setting up libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4.1) ...
#8 16.94 Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
#8 16.95 Processing triggers for ca-certificates (20240203) ...
#8 16.96 Updating certificates in /etc/ssl/certs...
#8 17.39 0 added, 0 removed; done.
#8 17.39 Running hooks in /etc/ca-certificates/update.d...
#8 17.39 done.
#8 DONE 18.3s

#9 [device 4/6] RUN pip3 install BACpypes
#9 0.433 error: externally-managed-environment
#9 0.433 
#9 0.433 × This environment is externally managed
#9 0.433 ╰─> To install Python packages system-wide, try apt install
#9 0.433     python3-xyz, where xyz is the package you are trying to
#9 0.433     install.
#9 0.433     
#9 0.433     If you wish to install a non-Debian-packaged Python package,
#9 0.433     create a virtual environment using python3 -m venv path/to/venv.
#9 0.433     Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
#9 0.433     sure you have python3-full installed.
#9 0.433     
#9 0.433     If you wish to install a non-Debian packaged Python application,
#9 0.433     it may be easiest to use pipx install xyz, which will manage a
#9 0.433     virtual environment for you. Make sure you have pipx installed.
#9 0.433     
#9 0.433     See /usr/share/doc/python3.12/README.venv for more information.
#9 0.433 
#9 0.433 note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
#9 0.433 hint: See PEP 668 for the detailed specification.
#9 ERROR: process "/bin/sh -c pip3 install BACpypes" did not complete successfully: exit code: 1
------
 > [device 4/6] RUN pip3 install BACpypes:
0.433     sure you have python3-full installed.
0.433     
0.433     If you wish to install a non-Debian packaged Python application,
0.433     it may be easiest to use pipx install xyz, which will manage a
0.433     virtual environment for you. Make sure you have pipx installed.
0.433     
0.433     See /usr/share/doc/python3.12/README.venv for more information.
0.433 
0.433 note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
0.433 hint: See PEP 668 for the detailed specification.
------
failed to solve: process "/bin/sh -c pip3 install BACpypes" did not complete successfully: exit code: 1
CompletedProcess(args=['docker', 'compose', '-f', 'docker-compose-bacnet.yml', 'up', '-d'], returncode=17)

BuildingMOTIF Setup#

Like the previous tutorial, we’ll create an in-memory BuildingMOTIF instance and load some libraries.

import logging
from rdflib import Namespace
from buildingmotif import BuildingMOTIF
from buildingmotif.dataclasses import Model, Library
from buildingmotif.namespaces import BRICK # import this to make writing URIs easier

# in-memory instance
bm = BuildingMOTIF("sqlite://", log_level=logging.ERROR)

# create the namespace for the building
BLDG = Namespace('urn:bldg/')

# create the building model
model = Model.create(BLDG, description="This is a test model for a simple building")

# load some libraries we will use later
brick = Library.load(ontology_graph="https://github.com/BrickSchema/Brick/releases/download/nightly/Brick.ttl")
/opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/pyshacl/extras/__init__.py:46: Warning: Extra "js" is not satisfied because requirement pyduktape2 is not installed.
  warn(Warning(f"Extra \"{extra_name}\" is not satisfied because requirement {req} is not installed."))

Pulling in BACnet Metadata#

We use the buildingmotif.ingresses.bacnet.BACnetNetwork ingress module to pull structured information from the BACnet network. The ingress module scrapes the BACnet network and produces a set of “records” which correspond to the individual BACnet Devices and Objects discovered in the network.

from buildingmotif.ingresses.bacnet import BACnetNetwork

bacnet = BACnetNetwork("172.24.0.1/32") # don't change this if you are using the docker compose setup
for rec in bacnet.records:
    print(rec)
2024-11-19 16:05:30,750 - INFO    | Starting BAC0 version 22.9.21 (Lite)
2024-11-19 16:05:30,750 - INFO    | Use BAC0.log_level to adjust verbosity of the app.
2024-11-19 16:05:30,751 - INFO    | Ex. BAC0.log_level('silence') or BAC0.log_level('error')
2024-11-19 16:05:30,752 - INFO    | Starting TaskManager
2024-11-19 16:05:30,753 - INFO    | Using ip : 172.24.0.1
---------------------------------------------------------------------------
InitializationError                       Traceback (most recent call last)
Cell In[3], line 3
      1 from buildingmotif.ingresses.bacnet import BACnetNetwork
----> 3 bacnet = BACnetNetwork("172.24.0.1/32") # don't change this if you are using the docker compose setup
      4 for rec in bacnet.records:
      5     print(rec)

File ~/work/BuildingMOTIF/BuildingMOTIF/buildingmotif/ingresses/bacnet.py:36, in BACnetNetwork.__init__(self, ip)
     27 """
     28 Reads a BACnet network to discover the devices and objects therein
     29 
   (...)
     32 :type ip: Optional[str], optional
     33 """
     34 # create the network object; this will handle scans
     35 # Be a good net citizen: do not ping BACnet devices
---> 36 self.network = BAC0.connect(ip=ip, ping=False)
     37 # initiate discovery of BACnet networks
     38 self.network.discover()

File /opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/BAC0/scripts/Lite.py:152, in Lite.__init__(self, ip, port, mask, bbmdAddress, bbmdTTL, bdtable, ping, ping_delay, db_params, **params)
    150     ip_addr = Address("{}/{}:{}".format(ip, mask, port))
    151 self._log.info("Using ip : {ip_addr}".format(ip_addr=ip_addr))
--> 152 Base.__init__(
    153     self,
    154     localIPAddr=ip_addr,
    155     bbmdAddress=bbmdAddress,
    156     bbmdTTL=bbmdTTL,
    157     bdtable=bdtable,
    158     **params
    159 )
    161 self.bokehserver = False
    162 self._points_to_trend = weakref.WeakValueDictionary()

File /opt/hostedtoolcache/Python/3.11.10/x64/lib/python3.11/site-packages/BAC0/scripts/Base.py:147, in Base.__init__(self, localIPAddr, localObjName, deviceId, firmwareRevision, maxAPDULengthAccepted, maxSegmentsAccepted, segmentationSupported, bbmdAddress, bbmdTTL, bdtable, modelName, vendorId, vendorName, description, spin)
    145     self.localIPAddr = localIPAddr
    146 else:
--> 147     raise InitializationError(
    148         "IP Address provided ({}) invalid. Check if another software is using port 47808 on this network interface. If so, you can define multiple IP per interface. Or specify another IP using BAC0.lite(ip='IP/mask')".format(
    149             localIPAddr
    150         )
    151     )
    153 self.Boid = (
    154     int(deviceId) if deviceId else (3056177 + int(random.uniform(0, 1000)))
    155 )
    157 self.segmentationSupported = segmentationSupported

InitializationError: IP Address provided (172.24.0.1) invalid. Check if another software is using port 47808 on this network interface. If so, you can define multiple IP per interface. Or specify another IP using BAC0.lite(ip='IP/mask')

Each of these records has an rtype field, which is used by the ingress implementation to differentiate between different kinds of records; here it differentiates between BACnet Devices and BACnet Objects, which have different expressions in Brick. The fields attribute cotnains arbitrary key-value pairs, again defined by the ingress implementation, which can be interpreted by another ingress module.

BACnet to Brick: an Initial Model#

We use the buildingmotif.ingresses.brick.BACnetToBrickIngress ingress module to turn the Records from the BACnetNetwork ingress into a Brick model. This is as simple as choosing a namespace for the entities (this is usually just the same namespace used for the Model, i.e. BLDG above) and connecting our new ingress module instance to the existing BACnet network ingress module.

from buildingmotif.ingresses.brick import BACnetToBrickIngress

# create the Brick ingress module and connect to the existing bacnet module
brick2bacnet = BACnetToBrickIngress(bm, bacnet)
# creates the graph from the BACnet records
bacnet_network_graph = brick2bacnet.graph(BLDG)
# add the graph to our model
model.add_graph(bacnet_network_graph)

We can now take a look at the resulting graph:

print(model.graph.serialize())

We can now see the devices and their objects represented in the model. However, the metadata is not very descriptive. All of the BACnet objects have been inferred to be instances of brick:Point. In the next step, we will use BuildingMOTIF to incorporate our other knowledge about the building to augment this Brick model with more descriptive metadata.

Augmenting the Initial Model: Our Strategy#

There is existing documentation on techniques for inferring Brick metadata from point labels. Below, we will show how a simple Python-based point type inference module can be implemented by extending BuildingMOTIF’s existing ingress module implementation. Then, we will use BuildingMOTIF’s templates to incorporate the inferred points into a bigger model.

Point Type Inference#

For completeness, here are the names of the 4 points in the BACnet network scanned above (these will be different if you are not using the provided docker compose setup):

  • VAV-1/SAT

  • VAV-1/HSP

  • VAV-1/CSP

  • VAV-1/Zone

Squinting at these point names, we might see how we can divide each name into sections: {equip name} / {point type}. Let’s write Python code to pull out the Brick metadata we can from these labels.

from rdflib import Graph, URIRef
from buildingmotif.namespaces import RDF, BRICK
def parse_label(label: str, output: Graph):
    """Parses the label and puts the resulting triples in the provided graph."""
    parts = label.split('/')
    equip_name, point_type = parts

    if point_type == 'SAT':
        brick_class = BRICK.Supply_Air_Temperature_Sensor
    elif point_type == 'HSP':
        brick_class = BRICK.Zone_Air_Heating_Temperature_Setpoint
    elif point_type == 'CSP':
        brick_class = BRICK.Zone_Air_Cooling_Temperature_Setpoint
    elif point_type == 'Zone':
        brick_class = BRICK.Zone_Air_Temperature_Sensor
    else:
        raise Exception(f"Unknown point type! {point_type}")

    output.add((BLDG[label], RDF.type, brick_class))
    output.add((BLDG[equip_name], BRICK.hasPoint, BLDG[label]))
    output.add((BLDG[equip_name], RDF.type, BRICK.Equipment)) # not sure what type this is yet, choose 'Equipment' for now

We can wrap this function in an ingress module so it is easy to reuse later. This just requires a little bit of moving some code around

from rdflib import Graph, URIRef
from buildingmotif.namespaces import RDF, BRICK
from buildingmotif.ingresses.base import GraphIngressHandler

class MyPointParser(GraphIngressHandler):
    def __init__(self, bm: BuildingMOTIF, upstream: GraphIngressHandler):
        self.bm = bm
        self.upstream = upstream # this will point to our BACnetToBrickIngress handler

    def parse_label(self, label: str, entity: URIRef, output: Graph):
        """Parses the label and puts the resulting triples in the provided graph.
        Adds the type to the indicated entity"""
        parts = label.split('/')
        equip_name, point_type = parts

        if point_type == 'SAT':
            brick_class = BRICK.Supply_Air_Temperature_Sensor
        elif point_type == 'HSP':
            brick_class = BRICK.Zone_Air_Heating_Temperature_Setpoint
        elif point_type == 'CSP':
            brick_class = BRICK.Zone_Air_Cooling_Temperature_Setpoint
        elif point_type == 'Zone':
            brick_class = BRICK.Zone_Air_Temperature_Sensor
        else:
            raise Exception(f"Unknown point type! {point_type}")

        output.add((entity, RDF.type, brick_class))
        output.add((BLDG[equip_name], BRICK.hasPoint, entity))
        output.add((BLDG[equip_name], RDF.type, BRICK.Equipment)) # not sure what type this is yet, choose 'Equipment' for now

    def graph(self, ns: Namespace) -> Graph:
        """the method we override to implement a GraphIngressHandler"""
        output_graph = Graph()
        bacnet_graph = self.upstream.graph(ns)
        point_labels = bacnet_graph.query("""
            SELECT ?entity ?label WHERE {
                ?entity <https://brickschema.org/schema/ref#hasExternalReference> ?ref .
                ?ref <http://data.ashrae.org/bacnet/2020#object-name> ?label
            }""")
        for entity, label in point_labels:
            # infer type for each
            self.parse_label(label, entity, output_graph)

        return output_graph

Now we can invoke our ingress module:

# create the Brick ingress module and connect to the existing bacnet module
point_ingress = MyPointParser(bm, brick2bacnet)
# creates the graph from the BACnet records
augmented_graph = point_ingress.graph(BLDG)
# add the graph to our model
model.add_graph(augmented_graph)

and display the resulting model

print(model.graph.serialize())

We can now see that the points in our model have more descriptive Brick types. We have also added the relationship between the points and the equipment.

It is important to note that this particular ingress we have dveloped is specific to the idiosyncratic naming within this particular BACnet network. In the future, BuildingMOTIF will incorporate more sophisticated inference mechanisms; for now, consider the above as an example of how to interact with the BACnet ingress.

Here we teardown the BACnet network we created
docker_compose_stop = shlex.split("docker compose -f docker-compose-bacnet.yml down")
subprocess.run(docker_compose_stop)