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-09-13T21:58:17Z" 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.5s

#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:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee
#6 resolve docker.io/library/ubuntu:latest@sha256:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee done
#6 sha256:d35dfc2fe3ef66bcc085ca00d3152b482e6cafb23cdda1864154caf3b19094ba 424B / 424B done
#6 sha256:edbfe74c41f8a3501ce542e137cf28ea04dd03e6df8c9d66519b6ad761c2598a 2.30kB / 2.30kB done
#6 sha256:31e907dcc94a592a57796786399eb004dcbba714389fa615f5efa05a91316356 7.34MB / 29.71MB 0.1s
#6 sha256:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee 1.34kB / 1.34kB done
#6 sha256:31e907dcc94a592a57796786399eb004dcbba714389fa615f5efa05a91316356 19.92MB / 29.71MB 0.2s
#6 sha256:31e907dcc94a592a57796786399eb004dcbba714389fa615f5efa05a91316356 29.71MB / 29.71MB 0.3s done
#6 extracting sha256:31e907dcc94a592a57796786399eb004dcbba714389fa615f5efa05a91316356
#6 extracting sha256:31e907dcc94a592a57796786399eb004dcbba714389fa615f5efa05a91316356 0.8s done
#6 DONE 1.2s

#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.165 
#8 0.165 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#8 0.165 
#8 0.251 Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
#8 0.408 Get:2 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
#8 0.451 Get:3 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [402 kB]
#8 0.562 Get:4 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [439 kB]
#8 0.583 Get:5 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [13.7 kB]
#8 0.584 Get:6 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [357 kB]
#8 0.923 Get:7 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
#8 1.050 Get:8 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
#8 1.178 Get:9 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1808 kB]
#8 1.471 Get:10 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [117 kB]
#8 1.479 Get:11 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [19.3 MB]
#8 2.142 Get:12 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [331 kB]
#8 2.153 Get:13 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [636 kB]
#8 2.170 Get:14 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [488 kB]
#8 2.182 Get:15 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [402 kB]
#8 2.201 Get:16 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [17.8 kB]
#8 2.201 Get:17 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [11.9 kB]
#8 2.815 Fetched 25.0 MB in 3s (9491 kB/s)
#8 2.815 Reading package lists...
#8 3.367 Building dependency tree...
#8 3.493 Reading state information...
#8 3.506 29 packages can be upgraded. Run 'apt list --upgradable' to see them.
#8 3.511 
#8 3.511 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#8 3.511 
#8 3.513 Reading package lists...
#8 4.058 Building dependency tree...
#8 4.194 Reading state information...
#8 4.337 The following additional packages will be installed:
#8 4.337   adduser binutils binutils-common binutils-x86-64-linux-gnu build-essential
#8 4.337   bzip2 ca-certificates cpp cpp-13 cpp-13-x86-64-linux-gnu
#8 4.337   cpp-x86-64-linux-gnu dirmngr dpkg dpkg-dev fakeroot fontconfig-config
#8 4.337   fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu
#8 4.337   g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
#8 4.337   gcc-x86-64-linux-gnu gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#8 4.337   gpg-wks-client gpgconf gpgsm javascript-common keyboxd
#8 4.337   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
#8 4.337   libaom3 libasan8 libatomic1 libbinutils libbrotli1 libbsd0 libbz2-1.0
#8 4.338   libc-bin libc-dev-bin libc-devtools libc6 libc6-dev libcc1-0 libcrypt-dev
#8 4.338   libctf-nobfd0 libctf0 libde265-0 libdeflate0 libdpkg-perl libexpat1
#8 4.338   libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
#8 4.338   libgcc-13-dev libgd3 libgdbm-compat4t64 libgdbm6t64 libgomp1 libgprofng0
#8 4.338   libheif-plugin-aomdec libheif-plugin-aomenc libheif-plugin-libde265 libheif1
#8 4.338   libhwasan0 libisl23 libitm1 libjansson4 libjbig0 libjpeg-turbo8 libjpeg8
#8 4.338   libjs-jquery libjs-sphinxdoc libjs-underscore libksba8 libldap-common
#8 4.338   libldap2 liblerc4 liblocale-gettext-perl liblsan0 liblzma5 libmpc3 libmpfr6
#8 4.338   libperl5.38t64 libpng16-16t64 libpython3-dev libpython3-stdlib
#8 4.338   libpython3.12-dev libpython3.12-minimal libpython3.12-stdlib
#8 4.338   libpython3.12t64 libquadmath0 libreadline8t64 libsasl2-2 libsasl2-modules
#8 4.338   libsasl2-modules-db libsframe1 libsharpyuv0 libsqlite3-0 libssl3t64
#8 4.338   libstdc++-13-dev libtiff6 libtsan2 libubsan1 libwebp7 libx11-6 libx11-data
#8 4.338   libxau6 libxcb1 libxdmcp6 libxpm4 linux-libc-dev lto-disabled-list make
#8 4.338   manpages manpages-dev media-types netbase openssl patch perl
#8 4.338   perl-modules-5.38 pinentry-curses python3-dev python3-minimal
#8 4.338   python3-pkg-resources python3-setuptools python3-wheel python3.12
#8 4.339   python3.12-dev python3.12-minimal readline-common rpcsvc-proto tzdata
#8 4.339   xz-utils zlib1g zlib1g-dev
#8 4.339 Suggested packages:
#8 4.339   cron quota ecryptfs-utils binutils-doc gprofng-gui bzip2-doc cpp-doc
#8 4.339   gcc-13-locales cpp-13-doc dbus-user-session libpam-systemd pinentry-gnome3
#8 4.339   tor debsig-verify debian-keyring g++-multilib g++-13-multilib gcc-13-doc
#8 4.339   gcc-multilib autoconf automake libtool flex bison gdb gcc-doc
#8 4.339   gcc-13-multilib gdb-x86-64-linux-gnu parcimonie xloadimage gpg-wks-server
#8 4.339   scdaemon apache2 | lighttpd | httpd glibc-doc locales libnss-nis
#8 4.339   libnss-nisplus git bzr libgd-tools gdbm-l10n libheif-plugin-x265
#8 4.339   libheif-plugin-ffmpegdec libheif-plugin-jpegdec libheif-plugin-jpegenc
#8 4.339   libheif-plugin-j2kdec libheif-plugin-j2kenc libheif-plugin-rav1e
#8 4.339   libheif-plugin-svtenc libsasl2-modules-gssapi-mit
#8 4.339   | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp
#8 4.339   libsasl2-modules-sql libstdc++-13-doc make-doc man-browser ed diffutils-doc
#8 4.339   perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl
#8 4.339   libtap-harness-archive-perl pinentry-doc python3-doc python3-tk python3-venv
#8 4.339   python-setuptools-doc python3.12-venv python3.12-doc binfmt-support
#8 4.339   readline-doc
#8 4.492 The following NEW packages will be installed:
#8 4.492   adduser binutils binutils-common binutils-x86-64-linux-gnu build-essential
#8 4.492   bzip2 ca-certificates cpp cpp-13 cpp-13-x86-64-linux-gnu
#8 4.492   cpp-x86-64-linux-gnu dirmngr dpkg-dev fakeroot fontconfig-config
#8 4.493   fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu
#8 4.493   g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
#8 4.493   gcc-x86-64-linux-gnu gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#8 4.493   gpg-wks-client gpgconf gpgsm javascript-common keyboxd
#8 4.493   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
#8 4.493   libaom3 libasan8 libatomic1 libbinutils libbrotli1 libbsd0 libc-dev-bin
#8 4.493   libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0
#8 4.493   libde265-0 libdeflate0 libdpkg-perl libexpat1 libexpat1-dev libfakeroot
#8 4.493   libfile-fcntllock-perl libfontconfig1 libfreetype6 libgcc-13-dev libgd3
#8 4.493   libgdbm-compat4t64 libgdbm6t64 libgomp1 libgprofng0 libheif-plugin-aomdec
#8 4.493   libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23
#8 4.493   libitm1 libjansson4 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery
#8 4.493   libjs-sphinxdoc libjs-underscore libksba8 libldap-common libldap2 liblerc4
#8 4.493   liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libperl5.38t64
#8 4.493   libpng16-16t64 libpython3-dev libpython3-stdlib libpython3.12-dev
#8 4.493   libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 libquadmath0
#8 4.493   libreadline8t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libsframe1
#8 4.493   libsharpyuv0 libsqlite3-0 libstdc++-13-dev libtiff6 libtsan2 libubsan1
#8 4.493   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
#8 4.493   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
#8 4.494   netbase openssl patch perl perl-modules-5.38 pinentry-curses python3
#8 4.494   python3-dev python3-minimal python3-pip python3-pkg-resources
#8 4.494   python3-setuptools python3-wheel python3.12 python3.12-dev
#8 4.494   python3.12-minimal readline-common rpcsvc-proto tzdata xz-utils zlib1g-dev
#8 4.494 The following packages will be upgraded:
#8 4.495   dpkg libbz2-1.0 libc-bin libc6 liblzma5 libssl3t64 zlib1g
#8 4.739 7 upgraded, 143 newly installed, 0 to remove and 22 not upgraded.
#8 4.739 Need to get 122 MB of archives.
#8 4.739 After this operation, 437 MB of additional disk space will be used.
#8 4.739 Get:1 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg amd64 1.22.6ubuntu6.1 [1283 kB]
#8 5.474 Get:2 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6 amd64 2.39-0ubuntu8.3 [3265 kB]
#8 5.661 Get:3 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-bin amd64 2.39-0ubuntu8.3 [722 kB]
#8 5.679 Get:4 http://archive.ubuntu.com/ubuntu noble/main amd64 liblocale-gettext-perl amd64 1.07-6ubuntu5 [15.8 kB]
#8 5.679 Get:5 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libssl3t64 amd64 3.0.13-0ubuntu3.4 [1940 kB]
#8 5.753 Get:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12-minimal amd64 3.12.3-1ubuntu0.1 [832 kB]
#8 5.771 Get:7 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libexpat1 amd64 2.6.1-2ubuntu0.1 [87.1 kB]
#8 5.775 Get:8 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 zlib1g amd64 1:1.3.dfsg-3.1ubuntu2.1 [62.9 kB]
#8 5.776 Get:9 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3.12-minimal amd64 3.12.3-1ubuntu0.1 [2334 kB]
#8 5.859 Get:10 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-minimal amd64 3.12.3-0ubuntu2 [27.4 kB]
#8 5.859 Get:11 http://archive.ubuntu.com/ubuntu noble/main amd64 media-types all 10.1.0 [27.5 kB]
#8 5.860 Get:12 http://archive.ubuntu.com/ubuntu noble/main amd64 netbase all 6.4 [13.1 kB]
#8 5.860 Get:13 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 tzdata all 2024a-3ubuntu1.1 [273 kB]
#8 5.864 Get:14 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libbz2-1.0 amd64 1.0.8-5.1build0.1 [34.4 kB]
#8 5.865 Get:15 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liblzma5 amd64 5.6.1+really5.4.5-1build0.1 [127 kB]
#8 5.944 Get:16 http://archive.ubuntu.com/ubuntu noble/main amd64 readline-common all 8.2-4build1 [56.5 kB]
#8 5.945 Get:17 http://archive.ubuntu.com/ubuntu noble/main amd64 libreadline8t64 amd64 8.2-4build1 [153 kB]
#8 5.947 Get:18 http://archive.ubuntu.com/ubuntu noble/main amd64 libsqlite3-0 amd64 3.45.1-1ubuntu2 [701 kB]
#8 6.038 Get:19 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12-stdlib amd64 3.12.3-1ubuntu0.1 [2069 kB]
#8 6.061 Get:20 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3.12 amd64 3.12.3-1ubuntu0.1 [651 kB]
#8 6.068 Get:21 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3-stdlib amd64 3.12.3-0ubuntu2 [10.0 kB]
#8 6.068 Get:22 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3 amd64 3.12.3-0ubuntu2 [23.0 kB]
#8 6.069 Get:23 http://archive.ubuntu.com/ubuntu noble/main amd64 perl-modules-5.38 all 5.38.2-3.2build2 [3110 kB]
#8 6.229 Get:24 http://archive.ubuntu.com/ubuntu noble/main amd64 libgdbm6t64 amd64 1.23-5.1build1 [34.4 kB]
#8 6.230 Get:25 http://archive.ubuntu.com/ubuntu noble/main amd64 libgdbm-compat4t64 amd64 1.23-5.1build1 [6710 B]
#8 6.230 Get:26 http://archive.ubuntu.com/ubuntu noble/main amd64 libperl5.38t64 amd64 5.38.2-3.2build2 [4873 kB]
#8 6.347 Get:27 http://archive.ubuntu.com/ubuntu noble/main amd64 perl amd64 5.38.2-3.2build2 [231 kB]
#8 6.349 Get:28 http://archive.ubuntu.com/ubuntu noble/main amd64 adduser all 3.137ubuntu1 [101 kB]
#8 6.350 Get:29 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 openssl amd64 3.0.13-0ubuntu3.4 [1003 kB]
#8 6.423 Get:30 http://archive.ubuntu.com/ubuntu noble/main amd64 ca-certificates all 20240203 [159 kB]
#8 6.425 Get:31 http://archive.ubuntu.com/ubuntu noble/main amd64 libbsd0 amd64 0.12.1-1build1 [41.2 kB]
#8 6.426 Get:32 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-pkg-resources all 68.1.2-2ubuntu1.1 [168 kB]
#8 6.428 Get:33 http://archive.ubuntu.com/ubuntu noble/main amd64 libjansson4 amd64 2.14-2build2 [32.8 kB]
#8 6.428 Get:34 http://archive.ubuntu.com/ubuntu noble/main amd64 libpng16-16t64 amd64 1.6.43-5build1 [187 kB]
#8 6.430 Get:35 http://archive.ubuntu.com/ubuntu noble/main amd64 libxau6 amd64 1:1.0.9-1build6 [7160 B]
#8 6.512 Get:36 http://archive.ubuntu.com/ubuntu noble/main amd64 libxdmcp6 amd64 1:1.1.3-0ubuntu6 [10.3 kB]
#8 6.512 Get:37 http://archive.ubuntu.com/ubuntu noble/main amd64 libxcb1 amd64 1.15-1ubuntu2 [47.7 kB]
#8 6.513 Get:38 http://archive.ubuntu.com/ubuntu noble/main amd64 libx11-data all 2:1.8.7-1build1 [115 kB]
#8 6.606 Get:39 http://archive.ubuntu.com/ubuntu noble/main amd64 libx11-6 amd64 2:1.8.7-1build1 [650 kB]
#8 6.613 Get:40 http://archive.ubuntu.com/ubuntu noble/main amd64 manpages all 6.7-2 [1384 kB]
#8 6.628 Get:41 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 xz-utils amd64 5.6.1+really5.4.5-1build0.1 [267 kB]
#8 6.630 Get:42 http://archive.ubuntu.com/ubuntu noble/main amd64 binutils-common amd64 2.42-4ubuntu2 [239 kB]
#8 6.633 Get:43 http://archive.ubuntu.com/ubuntu noble/main amd64 libsframe1 amd64 2.42-4ubuntu2 [14.8 kB]
#8 6.634 Get:44 http://archive.ubuntu.com/ubuntu noble/main amd64 libbinutils amd64 2.42-4ubuntu2 [572 kB]
#8 6.703 Get:45 http://archive.ubuntu.com/ubuntu noble/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2 [97.1 kB]
#8 6.704 Get:46 http://archive.ubuntu.com/ubuntu noble/main amd64 libctf0 amd64 2.42-4ubuntu2 [94.5 kB]
#8 6.705 Get:47 http://archive.ubuntu.com/ubuntu noble/main amd64 libgprofng0 amd64 2.42-4ubuntu2 [851 kB]
#8 6.715 Get:48 http://archive.ubuntu.com/ubuntu noble/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2 [2469 kB]
#8 6.805 Get:49 http://archive.ubuntu.com/ubuntu noble/main amd64 binutils amd64 2.42-4ubuntu2 [18.0 kB]
#8 6.806 Get:50 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-dev-bin amd64 2.39-0ubuntu8.3 [60.8 kB]
#8 6.806 Get:51 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-libc-dev amd64 6.8.0-44.44 [1698 kB]
#8 6.825 Get:52 http://archive.ubuntu.com/ubuntu noble/main amd64 libcrypt-dev amd64 1:4.4.36-4build1 [112 kB]
#8 6.888 Get:53 http://archive.ubuntu.com/ubuntu noble/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu7 [67.4 kB]
#8 6.889 Get:54 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6-dev amd64 2.39-0ubuntu8.3 [2164 kB]
#8 6.916 Get:55 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-13-base amd64 13.2.0-23ubuntu4 [49.0 kB]
#8 6.917 Get:56 http://archive.ubuntu.com/ubuntu noble/main amd64 libisl23 amd64 0.26-3build1 [680 kB]
#8 6.984 Get:57 http://archive.ubuntu.com/ubuntu noble/main amd64 libmpfr6 amd64 4.2.1-1build1 [355 kB]
#8 6.988 Get:58 http://archive.ubuntu.com/ubuntu noble/main amd64 libmpc3 amd64 1.3.1-1build1 [54.5 kB]
#8 6.989 Get:59 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [11.2 MB]
#8 7.364 Get:60 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-13 amd64 13.2.0-23ubuntu4 [1032 B]
#8 7.364 Get:61 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B]
#8 7.365 Get:62 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]
#8 7.365 Get:63 http://archive.ubuntu.com/ubuntu noble/main amd64 libcc1-0 amd64 14-20240412-0ubuntu1 [47.7 kB]
#8 7.366 Get:64 http://archive.ubuntu.com/ubuntu noble/main amd64 libgomp1 amd64 14-20240412-0ubuntu1 [147 kB]
#8 7.367 Get:65 http://archive.ubuntu.com/ubuntu noble/main amd64 libitm1 amd64 14-20240412-0ubuntu1 [28.9 kB]
#8 7.368 Get:66 http://archive.ubuntu.com/ubuntu noble/main amd64 libatomic1 amd64 14-20240412-0ubuntu1 [10.4 kB]
#8 7.368 Get:67 http://archive.ubuntu.com/ubuntu noble/main amd64 libasan8 amd64 14-20240412-0ubuntu1 [3024 kB]
#8 7.463 Get:68 http://archive.ubuntu.com/ubuntu noble/main amd64 liblsan0 amd64 14-20240412-0ubuntu1 [1313 kB]
#8 7.479 Get:69 http://archive.ubuntu.com/ubuntu noble/main amd64 libtsan2 amd64 14-20240412-0ubuntu1 [2736 kB]
#8 7.573 Get:70 http://archive.ubuntu.com/ubuntu noble/main amd64 libubsan1 amd64 14-20240412-0ubuntu1 [1175 kB]
#8 7.648 Get:71 http://archive.ubuntu.com/ubuntu noble/main amd64 libhwasan0 amd64 14-20240412-0ubuntu1 [1632 kB]
#8 7.666 Get:72 http://archive.ubuntu.com/ubuntu noble/main amd64 libquadmath0 amd64 14-20240412-0ubuntu1 [153 kB]
#8 7.668 Get:73 http://archive.ubuntu.com/ubuntu noble/main amd64 libgcc-13-dev amd64 13.2.0-23ubuntu4 [2688 kB]
#8 7.762 Get:74 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [21.9 MB]
#8 8.508 Get:75 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-13 amd64 13.2.0-23ubuntu4 [482 kB]
#8 8.513 Get:76 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B]
#8 8.513 Get:77 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B]
#8 8.514 Get:78 http://archive.ubuntu.com/ubuntu noble/main amd64 libstdc++-13-dev amd64 13.2.0-23ubuntu4 [2399 kB]
#8 8.600 Get:79 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-13-x86-64-linux-gnu amd64 13.2.0-23ubuntu4 [12.5 MB]
#8 8.995 Get:80 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-13 amd64 13.2.0-23ubuntu4 [14.5 kB]
#8 8.996 Get:81 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [964 B]
#8 8.996 Get:82 http://archive.ubuntu.com/ubuntu noble/main amd64 g++ amd64 4:13.2.0-7ubuntu1 [1100 B]
#8 8.996 Get:83 http://archive.ubuntu.com/ubuntu noble/main amd64 make amd64 4.3-4.1build2 [180 kB]
#8 8.998 Get:84 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdpkg-perl all 1.22.6ubuntu6.1 [269 kB]
#8 9.058 Get:85 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 bzip2 amd64 1.0.8-5.1build0.1 [34.5 kB]
#8 9.058 Get:86 http://archive.ubuntu.com/ubuntu noble/main amd64 patch amd64 2.7.6-7build3 [104 kB]
#8 9.059 Get:87 http://archive.ubuntu.com/ubuntu noble/main amd64 lto-disabled-list all 47 [12.4 kB]
#8 9.060 Get:88 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg-dev all 1.22.6ubuntu6.1 [1074 kB]
#8 9.090 Get:89 http://archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]
#8 9.184 Get:90 http://archive.ubuntu.com/ubuntu noble/main amd64 gpgconf amd64 2.4.4-2ubuntu17 [103 kB]
#8 9.185 Get:91 http://archive.ubuntu.com/ubuntu noble/main amd64 libksba8 amd64 1.6.6-1build1 [122 kB]
#8 9.186 Get:92 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-5ubuntu3.1 [20.4 kB]
#8 9.187 Get:93 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-5ubuntu3.1 [53.2 kB]
#8 9.187 Get:94 http://archive.ubuntu.com/ubuntu noble/main amd64 libldap2 amd64 2.6.7+dfsg-1~exp1ubuntu8 [195 kB]
#8 9.189 Get:95 http://archive.ubuntu.com/ubuntu noble/main amd64 dirmngr amd64 2.4.4-2ubuntu17 [323 kB]
#8 9.193 Get:96 http://archive.ubuntu.com/ubuntu noble/main amd64 libfakeroot amd64 1.33-1 [32.4 kB]
#8 9.193 Get:97 http://archive.ubuntu.com/ubuntu noble/main amd64 fakeroot amd64 1.33-1 [67.2 kB]
#8 9.194 Get:98 http://archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB]
#8 9.277 Get:99 http://archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-core all 2.37-8 [835 kB]
#8 9.371 Get:100 http://archive.ubuntu.com/ubuntu noble/main amd64 fontconfig-config amd64 2.15.0-1.1ubuntu2 [37.3 kB]
#8 9.372 Get:101 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg-utils amd64 2.4.4-2ubuntu17 [108 kB]
#8 9.659 Get:102 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg amd64 2.4.4-2ubuntu17 [565 kB]
#8 10.28 Get:103 http://archive.ubuntu.com/ubuntu noble/main amd64 pinentry-curses amd64 1.2.1-3ubuntu5 [35.2 kB]
#8 10.28 Get:104 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg-agent amd64 2.4.4-2ubuntu17 [227 kB]
#8 10.31 Get:105 http://archive.ubuntu.com/ubuntu noble/main amd64 gpgsm amd64 2.4.4-2ubuntu17 [232 kB]
#8 10.34 Get:106 http://archive.ubuntu.com/ubuntu noble/main amd64 keyboxd amd64 2.4.4-2ubuntu17 [78.3 kB]
#8 10.35 Get:107 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg all 2.4.4-2ubuntu17 [359 kB]
#8 10.41 Get:108 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg-l10n all 2.4.4-2ubuntu17 [65.9 kB]
#8 10.42 Get:109 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg-wks-client amd64 2.4.4-2ubuntu17 [70.9 kB]
#8 10.43 Get:110 http://archive.ubuntu.com/ubuntu noble/main amd64 javascript-common all 11+nmu1 [5936 B]
#8 10.43 Get:111 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-perl all 1.201-1 [41.8 kB]
#8 10.44 Get:112 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-xs-perl amd64 0.04-8build3 [11.2 kB]
#8 10.47 Get:113 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-merge-perl all 0.08-5 [11.4 kB]
#8 10.47 Get:114 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libaom3 amd64 3.8.2-2ubuntu0.1 [1941 kB]
#8 10.58 Get:115 http://archive.ubuntu.com/ubuntu noble/main amd64 libbrotli1 amd64 1.1.0-2build2 [331 kB]
#8 10.59 Get:116 http://archive.ubuntu.com/ubuntu noble/main amd64 libfreetype6 amd64 2.13.2+dfsg-1build3 [402 kB]
#8 10.61 Get:117 http://archive.ubuntu.com/ubuntu noble/main amd64 libfontconfig1 amd64 2.15.0-1.1ubuntu2 [139 kB]
#8 10.61 Get:118 http://archive.ubuntu.com/ubuntu noble/main amd64 libsharpyuv0 amd64 1.3.2-0.4build3 [15.8 kB]
#8 10.61 Get:119 http://archive.ubuntu.com/ubuntu noble/main amd64 libheif-plugin-aomdec amd64 1.17.6-1ubuntu4 [10.3 kB]
#8 10.61 Get:120 http://archive.ubuntu.com/ubuntu noble/main amd64 libde265-0 amd64 1.0.15-1build3 [166 kB]
#8 10.62 Get:121 http://archive.ubuntu.com/ubuntu noble/main amd64 libheif-plugin-libde265 amd64 1.17.6-1ubuntu4 [8158 B]
#8 10.62 Get:122 http://archive.ubuntu.com/ubuntu noble/main amd64 libheif1 amd64 1.17.6-1ubuntu4 [276 kB]
#8 10.65 Get:123 http://archive.ubuntu.com/ubuntu noble/main amd64 libjpeg-turbo8 amd64 2.1.5-2ubuntu2 [150 kB]
#8 10.75 Get:124 http://archive.ubuntu.com/ubuntu noble/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B]
#8 10.75 Get:125 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdeflate0 amd64 1.19-1build1.1 [43.9 kB]
#8 10.75 Get:126 http://archive.ubuntu.com/ubuntu noble/main amd64 libjbig0 amd64 2.1-6.1ubuntu2 [29.7 kB]
#8 10.75 Get:127 http://archive.ubuntu.com/ubuntu noble/main amd64 liblerc4 amd64 4.0.0+ds-4ubuntu2 [179 kB]
#8 10.75 Get:128 http://archive.ubuntu.com/ubuntu noble/main amd64 libwebp7 amd64 1.3.2-0.4build3 [230 kB]
#8 10.76 Get:129 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libtiff6 amd64 4.5.1+git230720-4ubuntu2.2 [199 kB]
#8 10.76 Get:130 http://archive.ubuntu.com/ubuntu noble/main amd64 libxpm4 amd64 1:3.5.17-1build2 [36.5 kB]
#8 10.76 Get:131 http://archive.ubuntu.com/ubuntu noble/main amd64 libgd3 amd64 2.3.3-9ubuntu5 [128 kB]
#8 10.76 Get:132 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-devtools amd64 2.39-0ubuntu8.3 [69.7 kB]
#8 10.84 Get:133 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libexpat1-dev amd64 2.6.1-2ubuntu0.1 [139 kB]
#8 10.86 Get:134 http://archive.ubuntu.com/ubuntu noble/main amd64 libfile-fcntllock-perl amd64 0.22-4ubuntu5 [30.7 kB]
#8 10.86 Get:135 http://archive.ubuntu.com/ubuntu noble/main amd64 libheif-plugin-aomenc amd64 1.17.6-1ubuntu4 [14.7 kB]
#8 10.86 Get:136 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB]
#8 10.86 Get:137 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB]
#8 10.86 Get:138 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB]
#8 10.94 Get:139 http://archive.ubuntu.com/ubuntu noble/main amd64 libldap-common all 2.6.7+dfsg-1~exp1ubuntu8 [31.4 kB]
#8 10.94 Get:140 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12t64 amd64 3.12.3-1ubuntu0.1 [2339 kB]
#8 10.97 Get:141 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 zlib1g-dev amd64 1:1.3.dfsg-3.1ubuntu2.1 [894 kB]
#8 11.04 Get:142 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12-dev amd64 3.12.3-1ubuntu0.1 [5673 kB]
#8 11.23 Get:143 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3-dev amd64 3.12.3-0ubuntu2 [10.3 kB]
#8 11.23 Get:144 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-modules amd64 2.1.28+dfsg1-5ubuntu3.1 [69.9 kB]
#8 11.23 Get:145 http://archive.ubuntu.com/ubuntu noble/main amd64 manpages-dev all 6.7-2 [2013 kB]
#8 11.26 Get:146 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3.12-dev amd64 3.12.3-1ubuntu0.1 [498 kB]
#8 11.32 Get:147 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-dev amd64 3.12.3-0ubuntu2 [26.7 kB]
#8 11.32 Get:148 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-setuptools all 68.1.2-2ubuntu1.1 [396 kB]
#8 11.33 Get:149 http://archive.ubuntu.com/ubuntu noble/universe amd64 python3-wheel all 0.42.0-2 [53.1 kB]
#8 11.33 Get:150 http://archive.ubuntu.com/ubuntu noble/universe amd64 python3-pip all 24.0+dfsg-1ubuntu1 [1316 kB]
#8 11.46 debconf: delaying package configuration, since apt-utils is not installed
#8 11.48 Fetched 122 MB in 7s (17.9 MB/s)
#8 11.49 (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 ... 4376 files and directories currently installed.)
#8 11.50 Preparing to unpack .../dpkg_1.22.6ubuntu6.1_amd64.deb ...
#8 11.50 Unpacking dpkg (1.22.6ubuntu6.1) over (1.22.6ubuntu6) ...
#8 11.61 Setting up dpkg (1.22.6ubuntu6.1) ...
#8 11.73 (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 ... 4376 files and directories currently installed.)
#8 11.73 Preparing to unpack .../libc6_2.39-0ubuntu8.3_amd64.deb ...
#8 11.80 debconf: unable to initialize frontend: Dialog
#8 11.80 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 11.80 debconf: falling back to frontend: Readline
#8 11.80 debconf: unable to initialize frontend: Readline
#8 11.80 debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.38.2 /usr/local/share/perl/5.38.2 /usr/lib/x86_64-linux-gnu/perl5/5.38 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.38 /usr/share/perl/5.38 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8.)
#8 11.80 debconf: falling back to frontend: Teletype
#8 11.83 Unpacking libc6:amd64 (2.39-0ubuntu8.3) over (2.39-0ubuntu8.2) ...
#8 12.20 Setting up libc6:amd64 (2.39-0ubuntu8.3) ...
#8 12.26 debconf: unable to initialize frontend: Dialog
#8 12.26 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 12.26 debconf: falling back to frontend: Readline
#8 12.26 debconf: unable to initialize frontend: Readline
#8 12.26 debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.38.2 /usr/local/share/perl/5.38.2 /usr/lib/x86_64-linux-gnu/perl5/5.38 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.38 /usr/share/perl/5.38 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8.)
#8 12.26 debconf: falling back to frontend: Teletype
#8 13.30 (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 ... 4377 files and directories currently installed.)
#8 13.30 Preparing to unpack .../libc-bin_2.39-0ubuntu8.3_amd64.deb ...
#8 13.31 Unpacking libc-bin (2.39-0ubuntu8.3) over (2.39-0ubuntu8.2) ...
#8 13.37 Setting up libc-bin (2.39-0ubuntu8.3) ...
#8 13.40 Selecting previously unselected package liblocale-gettext-perl.
#8 13.40 (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 ... 4378 files and directories currently installed.)
#8 13.40 Preparing to unpack .../liblocale-gettext-perl_1.07-6ubuntu5_amd64.deb ...
#8 13.41 Unpacking liblocale-gettext-perl (1.07-6ubuntu5) ...
#8 13.42 Preparing to unpack .../libssl3t64_3.0.13-0ubuntu3.4_amd64.deb ...
#8 13.43 Unpacking libssl3t64:amd64 (3.0.13-0ubuntu3.4) over (3.0.13-0ubuntu3.2) ...
#8 13.49 Setting up libssl3t64:amd64 (3.0.13-0ubuntu3.4) ...
#8 13.52 Selecting previously unselected package libpython3.12-minimal:amd64.
#8 13.52 (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 ... 4392 files and directories currently installed.)
#8 13.52 Preparing to unpack .../libpython3.12-minimal_3.12.3-1ubuntu0.1_amd64.deb ...
#8 13.52 Unpacking libpython3.12-minimal:amd64 (3.12.3-1ubuntu0.1) ...
#8 13.60 Selecting previously unselected package libexpat1:amd64.
#8 13.60 Preparing to unpack .../libexpat1_2.6.1-2ubuntu0.1_amd64.deb ...
#8 13.60 Unpacking libexpat1:amd64 (2.6.1-2ubuntu0.1) ...
#8 13.62 Preparing to unpack .../zlib1g_1%3a1.3.dfsg-3.1ubuntu2.1_amd64.deb ...
#8 13.62 Unpacking zlib1g:amd64 (1:1.3.dfsg-3.1ubuntu2.1) over (1:1.3.dfsg-3.1ubuntu2) ...
#8 13.64 Setting up zlib1g:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 13.66 Selecting previously unselected package python3.12-minimal.
#8 13.66 (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 ... 4700 files and directories currently installed.)
#8 13.67 Preparing to unpack .../python3.12-minimal_3.12.3-1ubuntu0.1_amd64.deb ...
#8 13.67 Unpacking python3.12-minimal (3.12.3-1ubuntu0.1) ...
#8 13.72 Setting up libpython3.12-minimal:amd64 (3.12.3-1ubuntu0.1) ...
#8 13.72 Setting up libexpat1:amd64 (2.6.1-2ubuntu0.1) ...
#8 13.73 Setting up python3.12-minimal (3.12.3-1ubuntu0.1) ...
#8 14.40 Selecting previously unselected package python3-minimal.
#8 14.40 (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 ... 4711 files and directories currently installed.)
#8 14.40 Preparing to unpack .../python3-minimal_3.12.3-0ubuntu2_amd64.deb ...
#8 14.40 Unpacking python3-minimal (3.12.3-0ubuntu2) ...
#8 14.42 Selecting previously unselected package media-types.
#8 14.42 Preparing to unpack .../media-types_10.1.0_all.deb ...
#8 14.42 Unpacking media-types (10.1.0) ...
#8 14.44 Selecting previously unselected package netbase.
#8 14.44 Preparing to unpack .../archives/netbase_6.4_all.deb ...
#8 14.44 Unpacking netbase (6.4) ...
#8 14.46 Selecting previously unselected package tzdata.
#8 14.46 Preparing to unpack .../tzdata_2024a-3ubuntu1.1_all.deb ...
#8 14.46 Unpacking tzdata (2024a-3ubuntu1.1) ...
#8 14.56 Preparing to unpack .../libbz2-1.0_1.0.8-5.1build0.1_amd64.deb ...
#8 14.57 Unpacking libbz2-1.0:amd64 (1.0.8-5.1build0.1) over (1.0.8-5.1) ...
#8 14.59 Setting up libbz2-1.0:amd64 (1.0.8-5.1build0.1) ...
#8 14.61 (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 ... 5273 files and directories currently installed.)
#8 14.61 Preparing to unpack .../liblzma5_5.6.1+really5.4.5-1build0.1_amd64.deb ...
#8 14.62 Unpacking liblzma5:amd64 (5.6.1+really5.4.5-1build0.1) over (5.6.1+really5.4.5-1) ...
#8 14.64 Setting up liblzma5:amd64 (5.6.1+really5.4.5-1build0.1) ...
#8 14.66 Selecting previously unselected package readline-common.
#8 14.66 (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 ... 5273 files and directories currently installed.)
#8 14.66 Preparing to unpack .../0-readline-common_8.2-4build1_all.deb ...
#8 14.66 Unpacking readline-common (8.2-4build1) ...
#8 14.68 Selecting previously unselected package libreadline8t64:amd64.
#8 14.68 Preparing to unpack .../1-libreadline8t64_8.2-4build1_amd64.deb ...
#8 14.69 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 14.69 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 14.69 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 14.70 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 14.70 Unpacking libreadline8t64:amd64 (8.2-4build1) ...
#8 14.72 Selecting previously unselected package libsqlite3-0:amd64.
#8 14.72 Preparing to unpack .../2-libsqlite3-0_3.45.1-1ubuntu2_amd64.deb ...
#8 14.72 Unpacking libsqlite3-0:amd64 (3.45.1-1ubuntu2) ...
#8 14.75 Selecting previously unselected package libpython3.12-stdlib:amd64.
#8 14.75 Preparing to unpack .../3-libpython3.12-stdlib_3.12.3-1ubuntu0.1_amd64.deb ...
#8 14.75 Unpacking libpython3.12-stdlib:amd64 (3.12.3-1ubuntu0.1) ...
#8 14.86 Selecting previously unselected package python3.12.
#8 14.86 Preparing to unpack .../4-python3.12_3.12.3-1ubuntu0.1_amd64.deb ...
#8 14.86 Unpacking python3.12 (3.12.3-1ubuntu0.1) ...
#8 14.88 Selecting previously unselected package libpython3-stdlib:amd64.
#8 14.88 Preparing to unpack .../5-libpython3-stdlib_3.12.3-0ubuntu2_amd64.deb ...
#8 14.88 Unpacking libpython3-stdlib:amd64 (3.12.3-0ubuntu2) ...
#8 14.90 Setting up python3-minimal (3.12.3-0ubuntu2) ...
#8 15.02 Selecting previously unselected package python3.
#8 15.02 (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 ... 5716 files and directories currently installed.)
#8 15.03 Preparing to unpack .../0-python3_3.12.3-0ubuntu2_amd64.deb ...
#8 15.03 Unpacking python3 (3.12.3-0ubuntu2) ...
#8 15.05 Selecting previously unselected package perl-modules-5.38.
#8 15.05 Preparing to unpack .../1-perl-modules-5.38_5.38.2-3.2build2_all.deb ...
#8 15.05 Unpacking perl-modules-5.38 (5.38.2-3.2build2) ...
#8 15.33 Selecting previously unselected package libgdbm6t64:amd64.
#8 15.33 Preparing to unpack .../2-libgdbm6t64_1.23-5.1build1_amd64.deb ...
#8 15.33 Unpacking libgdbm6t64:amd64 (1.23-5.1build1) ...
#8 15.35 Selecting previously unselected package libgdbm-compat4t64:amd64.
#8 15.35 Preparing to unpack .../3-libgdbm-compat4t64_1.23-5.1build1_amd64.deb ...
#8 15.35 Unpacking libgdbm-compat4t64:amd64 (1.23-5.1build1) ...
#8 15.37 Selecting previously unselected package libperl5.38t64:amd64.
#8 15.37 Preparing to unpack .../4-libperl5.38t64_5.38.2-3.2build2_amd64.deb ...
#8 15.37 Unpacking libperl5.38t64:amd64 (5.38.2-3.2build2) ...
#8 15.57 Selecting previously unselected package perl.
#8 15.57 Preparing to unpack .../5-perl_5.38.2-3.2build2_amd64.deb ...
#8 15.57 Unpacking perl (5.38.2-3.2build2) ...
#8 15.60 Selecting previously unselected package adduser.
#8 15.60 Preparing to unpack .../6-adduser_3.137ubuntu1_all.deb ...
#8 15.60 Unpacking adduser (3.137ubuntu1) ...
#8 15.62 Setting up adduser (3.137ubuntu1) ...
#8 15.65 Selecting previously unselected package openssl.
#8 15.65 (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 ... 7797 files and directories currently installed.)
#8 15.66 Preparing to unpack .../000-openssl_3.0.13-0ubuntu3.4_amd64.deb ...
#8 15.66 Unpacking openssl (3.0.13-0ubuntu3.4) ...
#8 15.70 Selecting previously unselected package ca-certificates.
#8 15.70 Preparing to unpack .../001-ca-certificates_20240203_all.deb ...
#8 15.70 Unpacking ca-certificates (20240203) ...
#8 15.75 Selecting previously unselected package libbsd0:amd64.
#8 15.75 Preparing to unpack .../002-libbsd0_0.12.1-1build1_amd64.deb ...
#8 15.75 Unpacking libbsd0:amd64 (0.12.1-1build1) ...
#8 15.77 Selecting previously unselected package python3-pkg-resources.
#8 15.77 Preparing to unpack .../003-python3-pkg-resources_68.1.2-2ubuntu1.1_all.deb ...
#8 15.77 Unpacking python3-pkg-resources (68.1.2-2ubuntu1.1) ...
#8 15.80 Selecting previously unselected package libjansson4:amd64.
#8 15.80 Preparing to unpack .../004-libjansson4_2.14-2build2_amd64.deb ...
#8 15.80 Unpacking libjansson4:amd64 (2.14-2build2) ...
#8 15.82 Selecting previously unselected package libpng16-16t64:amd64.
#8 15.82 Preparing to unpack .../005-libpng16-16t64_1.6.43-5build1_amd64.deb ...
#8 15.82 Unpacking libpng16-16t64:amd64 (1.6.43-5build1) ...
#8 15.84 Selecting previously unselected package libxau6:amd64.
#8 15.84 Preparing to unpack .../006-libxau6_1%3a1.0.9-1build6_amd64.deb ...
#8 15.84 Unpacking libxau6:amd64 (1:1.0.9-1build6) ...
#8 15.86 Selecting previously unselected package libxdmcp6:amd64.
#8 15.86 Preparing to unpack .../007-libxdmcp6_1%3a1.1.3-0ubuntu6_amd64.deb ...
#8 15.86 Unpacking libxdmcp6:amd64 (1:1.1.3-0ubuntu6) ...
#8 15.88 Selecting previously unselected package libxcb1:amd64.
#8 15.88 Preparing to unpack .../008-libxcb1_1.15-1ubuntu2_amd64.deb ...
#8 15.88 Unpacking libxcb1:amd64 (1.15-1ubuntu2) ...
#8 15.90 Selecting previously unselected package libx11-data.
#8 15.90 Preparing to unpack .../009-libx11-data_2%3a1.8.7-1build1_all.deb ...
#8 15.90 Unpacking libx11-data (2:1.8.7-1build1) ...
#8 15.96 Selecting previously unselected package libx11-6:amd64.
#8 15.96 Preparing to unpack .../010-libx11-6_2%3a1.8.7-1build1_amd64.deb ...
#8 15.96 Unpacking libx11-6:amd64 (2:1.8.7-1build1) ...
#8 15.98 Selecting previously unselected package manpages.
#8 15.98 Preparing to unpack .../011-manpages_6.7-2_all.deb ...
#8 15.98 Unpacking manpages (6.7-2) ...
#8 16.02 Selecting previously unselected package xz-utils.
#8 16.02 Preparing to unpack .../012-xz-utils_5.6.1+really5.4.5-1build0.1_amd64.deb ...
#8 16.03 Unpacking xz-utils (5.6.1+really5.4.5-1build0.1) ...
#8 16.05 Selecting previously unselected package binutils-common:amd64.
#8 16.05 Preparing to unpack .../013-binutils-common_2.42-4ubuntu2_amd64.deb ...
#8 16.05 Unpacking binutils-common:amd64 (2.42-4ubuntu2) ...
#8 16.08 Selecting previously unselected package libsframe1:amd64.
#8 16.08 Preparing to unpack .../014-libsframe1_2.42-4ubuntu2_amd64.deb ...
#8 16.08 Unpacking libsframe1:amd64 (2.42-4ubuntu2) ...
#8 16.10 Selecting previously unselected package libbinutils:amd64.
#8 16.10 Preparing to unpack .../015-libbinutils_2.42-4ubuntu2_amd64.deb ...
#8 16.10 Unpacking libbinutils:amd64 (2.42-4ubuntu2) ...
#8 16.13 Selecting previously unselected package libctf-nobfd0:amd64.
#8 16.13 Preparing to unpack .../016-libctf-nobfd0_2.42-4ubuntu2_amd64.deb ...
#8 16.13 Unpacking libctf-nobfd0:amd64 (2.42-4ubuntu2) ...
#8 16.15 Selecting previously unselected package libctf0:amd64.
#8 16.15 Preparing to unpack .../017-libctf0_2.42-4ubuntu2_amd64.deb ...
#8 16.15 Unpacking libctf0:amd64 (2.42-4ubuntu2) ...
#8 16.17 Selecting previously unselected package libgprofng0:amd64.
#8 16.17 Preparing to unpack .../018-libgprofng0_2.42-4ubuntu2_amd64.deb ...
#8 16.18 Unpacking libgprofng0:amd64 (2.42-4ubuntu2) ...
#8 16.21 Selecting previously unselected package binutils-x86-64-linux-gnu.
#8 16.21 Preparing to unpack .../019-binutils-x86-64-linux-gnu_2.42-4ubuntu2_amd64.deb ...
#8 16.21 Unpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2) ...
#8 16.28 Selecting previously unselected package binutils.
#8 16.29 Preparing to unpack .../020-binutils_2.42-4ubuntu2_amd64.deb ...
#8 16.29 Unpacking binutils (2.42-4ubuntu2) ...
#8 16.31 Selecting previously unselected package libc-dev-bin.
#8 16.31 Preparing to unpack .../021-libc-dev-bin_2.39-0ubuntu8.3_amd64.deb ...
#8 16.31 Unpacking libc-dev-bin (2.39-0ubuntu8.3) ...
#8 16.33 Selecting previously unselected package linux-libc-dev:amd64.
#8 16.33 Preparing to unpack .../022-linux-libc-dev_6.8.0-44.44_amd64.deb ...
#8 16.33 Unpacking linux-libc-dev:amd64 (6.8.0-44.44) ...
#8 16.53 Selecting previously unselected package libcrypt-dev:amd64.
#8 16.53 Preparing to unpack .../023-libcrypt-dev_1%3a4.4.36-4build1_amd64.deb ...
#8 16.53 Unpacking libcrypt-dev:amd64 (1:4.4.36-4build1) ...
#8 16.55 Selecting previously unselected package rpcsvc-proto.
#8 16.56 Preparing to unpack .../024-rpcsvc-proto_1.4.2-0ubuntu7_amd64.deb ...
#8 16.56 Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ...
#8 16.57 Selecting previously unselected package libc6-dev:amd64.
#8 16.57 Preparing to unpack .../025-libc6-dev_2.39-0ubuntu8.3_amd64.deb ...
#8 16.58 Unpacking libc6-dev:amd64 (2.39-0ubuntu8.3) ...
#8 16.71 Selecting previously unselected package gcc-13-base:amd64.
#8 16.71 Preparing to unpack .../026-gcc-13-base_13.2.0-23ubuntu4_amd64.deb ...
#8 16.71 Unpacking gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
#8 16.73 Selecting previously unselected package libisl23:amd64.
#8 16.73 Preparing to unpack .../027-libisl23_0.26-3build1_amd64.deb ...
#8 16.73 Unpacking libisl23:amd64 (0.26-3build1) ...
#8 16.76 Selecting previously unselected package libmpfr6:amd64.
#8 16.76 Preparing to unpack .../028-libmpfr6_4.2.1-1build1_amd64.deb ...
#8 16.76 Unpacking libmpfr6:amd64 (4.2.1-1build1) ...
#8 16.78 Selecting previously unselected package libmpc3:amd64.
#8 16.78 Preparing to unpack .../029-libmpc3_1.3.1-1build1_amd64.deb ...
#8 16.79 Unpacking libmpc3:amd64 (1.3.1-1build1) ...
#8 16.80 Selecting previously unselected package cpp-13-x86-64-linux-gnu.
#8 16.80 Preparing to unpack .../030-cpp-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
#8 16.80 Unpacking cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 16.95 Selecting previously unselected package cpp-13.
#8 16.95 Preparing to unpack .../031-cpp-13_13.2.0-23ubuntu4_amd64.deb ...
#8 16.95 Unpacking cpp-13 (13.2.0-23ubuntu4) ...
#8 16.97 Selecting previously unselected package cpp-x86-64-linux-gnu.
#8 16.97 Preparing to unpack .../032-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 16.97 Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 16.99 Selecting previously unselected package cpp.
#8 16.99 Preparing to unpack .../033-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 16.99 Unpacking cpp (4:13.2.0-7ubuntu1) ...
#8 17.01 Selecting previously unselected package libcc1-0:amd64.
#8 17.01 Preparing to unpack .../034-libcc1-0_14-20240412-0ubuntu1_amd64.deb ...
#8 17.01 Unpacking libcc1-0:amd64 (14-20240412-0ubuntu1) ...
#8 17.03 Selecting previously unselected package libgomp1:amd64.
#8 17.03 Preparing to unpack .../035-libgomp1_14-20240412-0ubuntu1_amd64.deb ...
#8 17.03 Unpacking libgomp1:amd64 (14-20240412-0ubuntu1) ...
#8 17.04 Selecting previously unselected package libitm1:amd64.
#8 17.05 Preparing to unpack .../036-libitm1_14-20240412-0ubuntu1_amd64.deb ...
#8 17.05 Unpacking libitm1:amd64 (14-20240412-0ubuntu1) ...
#8 17.06 Selecting previously unselected package libatomic1:amd64.
#8 17.06 Preparing to unpack .../037-libatomic1_14-20240412-0ubuntu1_amd64.deb ...
#8 17.06 Unpacking libatomic1:amd64 (14-20240412-0ubuntu1) ...
#8 17.08 Selecting previously unselected package libasan8:amd64.
#8 17.08 Preparing to unpack .../038-libasan8_14-20240412-0ubuntu1_amd64.deb ...
#8 17.08 Unpacking libasan8:amd64 (14-20240412-0ubuntu1) ...
#8 17.15 Selecting previously unselected package liblsan0:amd64.
#8 17.15 Preparing to unpack .../039-liblsan0_14-20240412-0ubuntu1_amd64.deb ...
#8 17.15 Unpacking liblsan0:amd64 (14-20240412-0ubuntu1) ...
#8 17.18 Selecting previously unselected package libtsan2:amd64.
#8 17.18 Preparing to unpack .../040-libtsan2_14-20240412-0ubuntu1_amd64.deb ...
#8 17.18 Unpacking libtsan2:amd64 (14-20240412-0ubuntu1) ...
#8 17.24 Selecting previously unselected package libubsan1:amd64.
#8 17.24 Preparing to unpack .../041-libubsan1_14-20240412-0ubuntu1_amd64.deb ...
#8 17.24 Unpacking libubsan1:amd64 (14-20240412-0ubuntu1) ...
#8 17.27 Selecting previously unselected package libhwasan0:amd64.
#8 17.27 Preparing to unpack .../042-libhwasan0_14-20240412-0ubuntu1_amd64.deb ...
#8 17.27 Unpacking libhwasan0:amd64 (14-20240412-0ubuntu1) ...
#8 17.31 Selecting previously unselected package libquadmath0:amd64.
#8 17.31 Preparing to unpack .../043-libquadmath0_14-20240412-0ubuntu1_amd64.deb ...
#8 17.32 Unpacking libquadmath0:amd64 (14-20240412-0ubuntu1) ...
#8 17.33 Selecting previously unselected package libgcc-13-dev:amd64.
#8 17.33 Preparing to unpack .../044-libgcc-13-dev_13.2.0-23ubuntu4_amd64.deb ...
#8 17.33 Unpacking libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 17.43 Selecting previously unselected package gcc-13-x86-64-linux-gnu.
#8 17.43 Preparing to unpack .../045-gcc-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
#8 17.43 Unpacking gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 17.73 Selecting previously unselected package gcc-13.
#8 17.73 Preparing to unpack .../046-gcc-13_13.2.0-23ubuntu4_amd64.deb ...
#8 17.73 Unpacking gcc-13 (13.2.0-23ubuntu4) ...
#8 17.75 Selecting previously unselected package gcc-x86-64-linux-gnu.
#8 17.75 Preparing to unpack .../047-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 17.75 Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 17.77 Selecting previously unselected package gcc.
#8 17.77 Preparing to unpack .../048-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 17.77 Unpacking gcc (4:13.2.0-7ubuntu1) ...
#8 17.79 Selecting previously unselected package libstdc++-13-dev:amd64.
#8 17.79 Preparing to unpack .../049-libstdc++-13-dev_13.2.0-23ubuntu4_amd64.deb ...
#8 17.79 Unpacking libstdc++-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 18.00 Selecting previously unselected package g++-13-x86-64-linux-gnu.
#8 18.00 Preparing to unpack .../050-g++-13-x86-64-linux-gnu_13.2.0-23ubuntu4_amd64.deb ...
#8 18.00 Unpacking g++-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 18.17 Selecting previously unselected package g++-13.
#8 18.17 Preparing to unpack .../051-g++-13_13.2.0-23ubuntu4_amd64.deb ...
#8 18.17 Unpacking g++-13 (13.2.0-23ubuntu4) ...
#8 18.18 Selecting previously unselected package g++-x86-64-linux-gnu.
#8 18.18 Preparing to unpack .../052-g++-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 18.18 Unpacking g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 18.20 Selecting previously unselected package g++.
#8 18.20 Preparing to unpack .../053-g++_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 18.20 Unpacking g++ (4:13.2.0-7ubuntu1) ...
#8 18.21 Selecting previously unselected package make.
#8 18.22 Preparing to unpack .../054-make_4.3-4.1build2_amd64.deb ...
#8 18.22 Unpacking make (4.3-4.1build2) ...
#8 18.23 Selecting previously unselected package libdpkg-perl.
#8 18.23 Preparing to unpack .../055-libdpkg-perl_1.22.6ubuntu6.1_all.deb ...
#8 18.23 Unpacking libdpkg-perl (1.22.6ubuntu6.1) ...
#8 18.27 Selecting previously unselected package bzip2.
#8 18.27 Preparing to unpack .../056-bzip2_1.0.8-5.1build0.1_amd64.deb ...
#8 18.28 Unpacking bzip2 (1.0.8-5.1build0.1) ...
#8 18.29 Selecting previously unselected package patch.
#8 18.30 Preparing to unpack .../057-patch_2.7.6-7build3_amd64.deb ...
#8 18.30 Unpacking patch (2.7.6-7build3) ...
#8 18.31 Selecting previously unselected package lto-disabled-list.
#8 18.31 Preparing to unpack .../058-lto-disabled-list_47_all.deb ...
#8 18.31 Unpacking lto-disabled-list (47) ...
#8 18.33 Selecting previously unselected package dpkg-dev.
#8 18.33 Preparing to unpack .../059-dpkg-dev_1.22.6ubuntu6.1_all.deb ...
#8 18.33 Unpacking dpkg-dev (1.22.6ubuntu6.1) ...
#8 18.37 Selecting previously unselected package build-essential.
#8 18.37 Preparing to unpack .../060-build-essential_12.10ubuntu1_amd64.deb ...
#8 18.37 Unpacking build-essential (12.10ubuntu1) ...
#8 18.39 Selecting previously unselected package gpgconf.
#8 18.39 Preparing to unpack .../061-gpgconf_2.4.4-2ubuntu17_amd64.deb ...
#8 18.39 Unpacking gpgconf (2.4.4-2ubuntu17) ...
#8 18.40 Selecting previously unselected package libksba8:amd64.
#8 18.41 Preparing to unpack .../062-libksba8_1.6.6-1build1_amd64.deb ...
#8 18.41 Unpacking libksba8:amd64 (1.6.6-1build1) ...
#8 18.42 Selecting previously unselected package libsasl2-modules-db:amd64.
#8 18.42 Preparing to unpack .../063-libsasl2-modules-db_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 18.42 Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 18.44 Selecting previously unselected package libsasl2-2:amd64.
#8 18.44 Preparing to unpack .../064-libsasl2-2_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 18.44 Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 18.46 Selecting previously unselected package libldap2:amd64.
#8 18.46 Preparing to unpack .../065-libldap2_2.6.7+dfsg-1~exp1ubuntu8_amd64.deb ...
#8 18.46 Unpacking libldap2:amd64 (2.6.7+dfsg-1~exp1ubuntu8) ...
#8 18.48 Selecting previously unselected package dirmngr.
#8 18.48 Preparing to unpack .../066-dirmngr_2.4.4-2ubuntu17_amd64.deb ...
#8 18.49 Unpacking dirmngr (2.4.4-2ubuntu17) ...
#8 18.51 Selecting previously unselected package libfakeroot:amd64.
#8 18.51 Preparing to unpack .../067-libfakeroot_1.33-1_amd64.deb ...
#8 18.51 Unpacking libfakeroot:amd64 (1.33-1) ...
#8 18.53 Selecting previously unselected package fakeroot.
#8 18.53 Preparing to unpack .../068-fakeroot_1.33-1_amd64.deb ...
#8 18.53 Unpacking fakeroot (1.33-1) ...
#8 18.55 Selecting previously unselected package fonts-dejavu-mono.
#8 18.55 Preparing to unpack .../069-fonts-dejavu-mono_2.37-8_all.deb ...
#8 18.55 Unpacking fonts-dejavu-mono (2.37-8) ...
#8 18.58 Selecting previously unselected package fonts-dejavu-core.
#8 18.58 Preparing to unpack .../070-fonts-dejavu-core_2.37-8_all.deb ...
#8 18.59 Unpacking fonts-dejavu-core (2.37-8) ...
#8 18.62 Selecting previously unselected package fontconfig-config.
#8 18.63 Preparing to unpack .../071-fontconfig-config_2.15.0-1.1ubuntu2_amd64.deb ...
#8 18.75 Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ...
#8 18.78 Selecting previously unselected package gnupg-utils.
#8 18.78 Preparing to unpack .../072-gnupg-utils_2.4.4-2ubuntu17_amd64.deb ...
#8 18.78 Unpacking gnupg-utils (2.4.4-2ubuntu17) ...
#8 18.80 Selecting previously unselected package gpg.
#8 18.80 Preparing to unpack .../073-gpg_2.4.4-2ubuntu17_amd64.deb ...
#8 18.80 Unpacking gpg (2.4.4-2ubuntu17) ...
#8 18.82 Selecting previously unselected package pinentry-curses.
#8 18.83 Preparing to unpack .../074-pinentry-curses_1.2.1-3ubuntu5_amd64.deb ...
#8 18.83 Unpacking pinentry-curses (1.2.1-3ubuntu5) ...
#8 18.84 Selecting previously unselected package gpg-agent.
#8 18.85 Preparing to unpack .../075-gpg-agent_2.4.4-2ubuntu17_amd64.deb ...
#8 18.85 Unpacking gpg-agent (2.4.4-2ubuntu17) ...
#8 18.87 Selecting previously unselected package gpgsm.
#8 18.87 Preparing to unpack .../076-gpgsm_2.4.4-2ubuntu17_amd64.deb ...
#8 18.87 Unpacking gpgsm (2.4.4-2ubuntu17) ...
#8 18.89 Selecting previously unselected package keyboxd.
#8 18.89 Preparing to unpack .../077-keyboxd_2.4.4-2ubuntu17_amd64.deb ...
#8 18.90 Unpacking keyboxd (2.4.4-2ubuntu17) ...
#8 18.91 Selecting previously unselected package gnupg.
#8 18.92 Preparing to unpack .../078-gnupg_2.4.4-2ubuntu17_all.deb ...
#8 18.92 Unpacking gnupg (2.4.4-2ubuntu17) ...
#8 18.93 Selecting previously unselected package gnupg-l10n.
#8 18.94 Preparing to unpack .../079-gnupg-l10n_2.4.4-2ubuntu17_all.deb ...
#8 18.94 Unpacking gnupg-l10n (2.4.4-2ubuntu17) ...
#8 18.96 Selecting previously unselected package gpg-wks-client.
#8 18.96 Preparing to unpack .../080-gpg-wks-client_2.4.4-2ubuntu17_amd64.deb ...
#8 18.96 Unpacking gpg-wks-client (2.4.4-2ubuntu17) ...
#8 18.98 Selecting previously unselected package javascript-common.
#8 18.98 Preparing to unpack .../081-javascript-common_11+nmu1_all.deb ...
#8 18.99 Unpacking javascript-common (11+nmu1) ...
#8 19.01 Selecting previously unselected package libalgorithm-diff-perl.
#8 19.01 Preparing to unpack .../082-libalgorithm-diff-perl_1.201-1_all.deb ...
#8 19.01 Unpacking libalgorithm-diff-perl (1.201-1) ...
#8 19.03 Selecting previously unselected package libalgorithm-diff-xs-perl:amd64.
#8 19.03 Preparing to unpack .../083-libalgorithm-diff-xs-perl_0.04-8build3_amd64.deb ...
#8 19.03 Unpacking libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
#8 19.06 Selecting previously unselected package libalgorithm-merge-perl.
#8 19.06 Preparing to unpack .../084-libalgorithm-merge-perl_0.08-5_all.deb ...
#8 19.06 Unpacking libalgorithm-merge-perl (0.08-5) ...
#8 19.08 Selecting previously unselected package libaom3:amd64.
#8 19.08 Preparing to unpack .../085-libaom3_3.8.2-2ubuntu0.1_amd64.deb ...
#8 19.08 Unpacking libaom3:amd64 (3.8.2-2ubuntu0.1) ...
#8 19.12 Selecting previously unselected package libbrotli1:amd64.
#8 19.12 Preparing to unpack .../086-libbrotli1_1.1.0-2build2_amd64.deb ...
#8 19.13 Unpacking libbrotli1:amd64 (1.1.0-2build2) ...
#8 19.15 Selecting previously unselected package libfreetype6:amd64.
#8 19.15 Preparing to unpack .../087-libfreetype6_2.13.2+dfsg-1build3_amd64.deb ...
#8 19.15 Unpacking libfreetype6:amd64 (2.13.2+dfsg-1build3) ...
#8 19.17 Selecting previously unselected package libfontconfig1:amd64.
#8 19.17 Preparing to unpack .../088-libfontconfig1_2.15.0-1.1ubuntu2_amd64.deb ...
#8 19.17 Unpacking libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
#8 19.19 Selecting previously unselected package libsharpyuv0:amd64.
#8 19.19 Preparing to unpack .../089-libsharpyuv0_1.3.2-0.4build3_amd64.deb ...
#8 19.20 Unpacking libsharpyuv0:amd64 (1.3.2-0.4build3) ...
#8 19.21 Selecting previously unselected package libheif-plugin-aomdec:amd64.
#8 19.21 Preparing to unpack .../090-libheif-plugin-aomdec_1.17.6-1ubuntu4_amd64.deb ...
#8 19.21 Unpacking libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4) ...
#8 19.23 Selecting previously unselected package libde265-0:amd64.
#8 19.23 Preparing to unpack .../091-libde265-0_1.0.15-1build3_amd64.deb ...
#8 19.23 Unpacking libde265-0:amd64 (1.0.15-1build3) ...
#8 19.26 Selecting previously unselected package libheif-plugin-libde265:amd64.
#8 19.26 Preparing to unpack .../092-libheif-plugin-libde265_1.17.6-1ubuntu4_amd64.deb ...
#8 19.26 Unpacking libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4) ...
#8 19.28 Selecting previously unselected package libheif1:amd64.
#8 19.28 Preparing to unpack .../093-libheif1_1.17.6-1ubuntu4_amd64.deb ...
#8 19.28 Unpacking libheif1:amd64 (1.17.6-1ubuntu4) ...
#8 19.30 Selecting previously unselected package libjpeg-turbo8:amd64.
#8 19.30 Preparing to unpack .../094-libjpeg-turbo8_2.1.5-2ubuntu2_amd64.deb ...
#8 19.30 Unpacking libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
#8 19.32 Selecting previously unselected package libjpeg8:amd64.
#8 19.32 Preparing to unpack .../095-libjpeg8_8c-2ubuntu11_amd64.deb ...
#8 19.32 Unpacking libjpeg8:amd64 (8c-2ubuntu11) ...
#8 19.33 Selecting previously unselected package libdeflate0:amd64.
#8 19.33 Preparing to unpack .../096-libdeflate0_1.19-1build1.1_amd64.deb ...
#8 19.33 Unpacking libdeflate0:amd64 (1.19-1build1.1) ...
#8 19.35 Selecting previously unselected package libjbig0:amd64.
#8 19.35 Preparing to unpack .../097-libjbig0_2.1-6.1ubuntu2_amd64.deb ...
#8 19.35 Unpacking libjbig0:amd64 (2.1-6.1ubuntu2) ...
#8 19.37 Selecting previously unselected package liblerc4:amd64.
#8 19.37 Preparing to unpack .../098-liblerc4_4.0.0+ds-4ubuntu2_amd64.deb ...
#8 19.37 Unpacking liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
#8 19.39 Selecting previously unselected package libwebp7:amd64.
#8 19.39 Preparing to unpack .../099-libwebp7_1.3.2-0.4build3_amd64.deb ...
#8 19.39 Unpacking libwebp7:amd64 (1.3.2-0.4build3) ...
#8 19.41 Selecting previously unselected package libtiff6:amd64.
#8 19.42 Preparing to unpack .../100-libtiff6_4.5.1+git230720-4ubuntu2.2_amd64.deb ...
#8 19.42 Unpacking libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
#8 19.44 Selecting previously unselected package libxpm4:amd64.
#8 19.44 Preparing to unpack .../101-libxpm4_1%3a3.5.17-1build2_amd64.deb ...
#8 19.44 Unpacking libxpm4:amd64 (1:3.5.17-1build2) ...
#8 19.46 Selecting previously unselected package libgd3:amd64.
#8 19.46 Preparing to unpack .../102-libgd3_2.3.3-9ubuntu5_amd64.deb ...
#8 19.46 Unpacking libgd3:amd64 (2.3.3-9ubuntu5) ...
#8 19.48 Selecting previously unselected package libc-devtools.
#8 19.48 Preparing to unpack .../103-libc-devtools_2.39-0ubuntu8.3_amd64.deb ...
#8 19.48 Unpacking libc-devtools (2.39-0ubuntu8.3) ...
#8 19.49 Selecting previously unselected package libexpat1-dev:amd64.
#8 19.50 Preparing to unpack .../104-libexpat1-dev_2.6.1-2ubuntu0.1_amd64.deb ...
#8 19.50 Unpacking libexpat1-dev:amd64 (2.6.1-2ubuntu0.1) ...
#8 19.52 Selecting previously unselected package libfile-fcntllock-perl.
#8 19.52 Preparing to unpack .../105-libfile-fcntllock-perl_0.22-4ubuntu5_amd64.deb ...
#8 19.52 Unpacking libfile-fcntllock-perl (0.22-4ubuntu5) ...
#8 19.54 Selecting previously unselected package libheif-plugin-aomenc:amd64.
#8 19.54 Preparing to unpack .../106-libheif-plugin-aomenc_1.17.6-1ubuntu4_amd64.deb ...
#8 19.54 Unpacking libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4) ...
#8 19.55 Selecting previously unselected package libjs-jquery.
#8 19.55 Preparing to unpack .../107-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
#8 19.56 Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
#8 19.58 Selecting previously unselected package libjs-underscore.
#8 19.58 Preparing to unpack .../108-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ...
#8 19.58 Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
#8 19.60 Selecting previously unselected package libjs-sphinxdoc.
#8 19.60 Preparing to unpack .../109-libjs-sphinxdoc_7.2.6-6_all.deb ...
#8 19.60 Unpacking libjs-sphinxdoc (7.2.6-6) ...
#8 19.62 Selecting previously unselected package libldap-common.
#8 19.62 Preparing to unpack .../110-libldap-common_2.6.7+dfsg-1~exp1ubuntu8_all.deb ...
#8 19.62 Unpacking libldap-common (2.6.7+dfsg-1~exp1ubuntu8) ...
#8 19.63 Selecting previously unselected package libpython3.12t64:amd64.
#8 19.64 Preparing to unpack .../111-libpython3.12t64_3.12.3-1ubuntu0.1_amd64.deb ...
#8 19.64 Unpacking libpython3.12t64:amd64 (3.12.3-1ubuntu0.1) ...
#8 19.68 Selecting previously unselected package zlib1g-dev:amd64.
#8 19.69 Preparing to unpack .../112-zlib1g-dev_1%3a1.3.dfsg-3.1ubuntu2.1_amd64.deb ...
#8 19.69 Unpacking zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 19.71 Selecting previously unselected package libpython3.12-dev:amd64.
#8 19.71 Preparing to unpack .../113-libpython3.12-dev_3.12.3-1ubuntu0.1_amd64.deb ...
#8 19.71 Unpacking libpython3.12-dev:amd64 (3.12.3-1ubuntu0.1) ...
#8 19.86 Selecting previously unselected package libpython3-dev:amd64.
#8 19.86 Preparing to unpack .../114-libpython3-dev_3.12.3-0ubuntu2_amd64.deb ...
#8 19.86 Unpacking libpython3-dev:amd64 (3.12.3-0ubuntu2) ...
#8 19.87 Selecting previously unselected package libsasl2-modules:amd64.
#8 19.88 Preparing to unpack .../115-libsasl2-modules_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 19.88 Unpacking libsasl2-modules:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 19.90 Selecting previously unselected package manpages-dev.
#8 19.90 Preparing to unpack .../116-manpages-dev_6.7-2_all.deb ...
#8 19.90 Unpacking manpages-dev (6.7-2) ...
#8 19.99 Selecting previously unselected package python3.12-dev.
#8 20.00 Preparing to unpack .../117-python3.12-dev_3.12.3-1ubuntu0.1_amd64.deb ...
#8 20.00 Unpacking python3.12-dev (3.12.3-1ubuntu0.1) ...
#8 20.01 Selecting previously unselected package python3-dev.
#8 20.01 Preparing to unpack .../118-python3-dev_3.12.3-0ubuntu2_amd64.deb ...
#8 20.02 Unpacking python3-dev (3.12.3-0ubuntu2) ...
#8 20.03 Selecting previously unselected package python3-setuptools.
#8 20.03 Preparing to unpack .../119-python3-setuptools_68.1.2-2ubuntu1.1_all.deb ...
#8 20.03 Unpacking python3-setuptools (68.1.2-2ubuntu1.1) ...
#8 20.09 Selecting previously unselected package python3-wheel.
#8 20.09 Preparing to unpack .../120-python3-wheel_0.42.0-2_all.deb ...
#8 20.09 Unpacking python3-wheel (0.42.0-2) ...
#8 20.11 Selecting previously unselected package python3-pip.
#8 20.11 Preparing to unpack .../121-python3-pip_24.0+dfsg-1ubuntu1_all.deb ...
#8 20.11 Unpacking python3-pip (24.0+dfsg-1ubuntu1) ...
#8 20.26 Setting up libksba8:amd64 (1.6.6-1build1) ...
#8 20.26 Setting up pinentry-curses (1.2.1-3ubuntu5) ...
#8 20.27 Setting up media-types (10.1.0) ...
#8 20.27 Setting up javascript-common (11+nmu1) ...
#8 20.29 Setting up libsharpyuv0:amd64 (1.3.2-0.4build3) ...
#8 20.29 Setting up libaom3:amd64 (3.8.2-2ubuntu0.1) ...
#8 20.29 Setting up libxau6:amd64 (1:1.0.9-1build6) ...
#8 20.30 Setting up lto-disabled-list (47) ...
#8 20.30 Setting up liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
#8 20.31 Setting up libgdbm6t64:amd64 (1.23-5.1build1) ...
#8 20.31 Setting up libgdbm-compat4t64:amd64 (1.23-5.1build1) ...
#8 20.31 Setting up manpages (6.7-2) ...
#8 20.31 Setting up libbrotli1:amd64 (1.1.0-2build2) ...
#8 20.32 Setting up libsqlite3-0:amd64 (3.45.1-1ubuntu2) ...
#8 20.32 Setting up libsasl2-modules:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 20.33 Setting up binutils-common:amd64 (2.42-4ubuntu2) ...
#8 20.33 Setting up libdeflate0:amd64 (1.19-1build1.1) ...
#8 20.33 Setting up linux-libc-dev:amd64 (6.8.0-44.44) ...
#8 20.34 Setting up libctf-nobfd0:amd64 (2.42-4ubuntu2) ...
#8 20.34 Setting up libgomp1:amd64 (14-20240412-0ubuntu1) ...
#8 20.34 Setting up bzip2 (1.0.8-5.1build0.1) ...
#8 20.35 Setting up libldap-common (2.6.7+dfsg-1~exp1ubuntu8) ...
#8 20.35 Setting up libjbig0:amd64 (2.1-6.1ubuntu2) ...
#8 20.35 Setting up libsframe1:amd64 (2.42-4ubuntu2) ...
#8 20.36 Setting up libfakeroot:amd64 (1.33-1) ...
#8 20.36 Setting up libjansson4:amd64 (2.14-2build2) ...
#8 20.36 Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 20.37 Setting up tzdata (2024a-3ubuntu1.1) ...
#8 20.43 debconf: unable to initialize frontend: Dialog
#8 20.43 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 20.43 debconf: falling back to frontend: Readline
#8 20.44 debconf: unable to initialize frontend: Readline
#8 20.44 debconf: (This frontend requires a controlling tty.)
#8 20.44 debconf: falling back to frontend: Teletype
#8 20.46 Configuring tzdata
#8 20.46 ------------------
#8 20.46 
#8 20.46 Please select the geographic area in which you live. Subsequent configuration
#8 20.46 questions will narrow this down by presenting a list of cities, representing
#8 20.46 the time zones in which they are located.
#8 20.46 
#8 20.46   1. Africa   3. Antarctica  5. Asia      7. Australia  9. Indian    11. Etc
#8 20.46   2. America  4. Arctic      6. Atlantic  8. Europe     10. Pacific
#8 20.47 Geographic area: 
#8 20.47 Use of uninitialized value $_[1] in join or string at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 112.
#8 20.47 
#8 20.47 Current default time zone: '/UTC'
#8 20.47 Local time is now:      Fri Sep 13 21:58:40 UTC 2024.
#8 20.47 Universal Time is now:  Fri Sep 13 21:58:40 UTC 2024.
#8 20.47 Run 'dpkg-reconfigure tzdata' if you wish to change it.
#8 20.47 
#8 20.47 Use of uninitialized value $val in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 84, <GEN6> line 4.
#8 20.47 Use of uninitialized value $val in concatenation (.) or string at /usr/share/perl5/Debconf/Format/822.pm line 85, <GEN6> line 4.
#8 20.48 Setting up fakeroot (1.33-1) ...
#8 20.49 update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
#8 20.49 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 20.49 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 20.49 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 20.49 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 20.49 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 20.49 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 20.49 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 20.49 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 20.49 Setting up rpcsvc-proto (1.4.2-0ubuntu7) ...
#8 20.49 Setting up gcc-13-base:amd64 (13.2.0-23ubuntu4) ...
#8 20.50 Setting up libx11-data (2:1.8.7-1build1) ...
#8 20.50 Setting up make (4.3-4.1build2) ...
#8 20.50 Setting up libmpfr6:amd64 (4.2.1-1build1) ...
#8 20.50 Setting up gnupg-l10n (2.4.4-2ubuntu17) ...
#8 20.51 Setting up xz-utils (5.6.1+really5.4.5-1build0.1) ...
#8 20.51 update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
#8 20.51 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 20.51 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 20.51 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 20.51 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 20.51 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 20.51 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 20.51 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 20.51 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 20.51 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 20.51 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 20.51 Setting up perl-modules-5.38 (5.38.2-3.2build2) ...
#8 20.52 Setting up libquadmath0:amd64 (14-20240412-0ubuntu1) ...
#8 20.52 Setting up fonts-dejavu-mono (2.37-8) ...
#8 20.53 Setting up libpng16-16t64:amd64 (1.6.43-5build1) ...
#8 20.53 Setting up libmpc3:amd64 (1.3.1-1build1) ...
#8 20.53 Setting up libatomic1:amd64 (14-20240412-0ubuntu1) ...
#8 20.54 Setting up patch (2.7.6-7build3) ...
#8 20.54 Setting up fonts-dejavu-core (2.37-8) ...
#8 20.56 Setting up libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
#8 20.56 Setting up libsasl2-2:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 20.57 Setting up libwebp7:amd64 (1.3.2-0.4build3) ...
#8 20.57 Setting up libubsan1:amd64 (14-20240412-0ubuntu1) ...
#8 20.57 Setting up libhwasan0:amd64 (14-20240412-0ubuntu1) ...
#8 20.58 Setting up libcrypt-dev:amd64 (1:4.4.36-4build1) ...
#8 20.58 Setting up libasan8:amd64 (14-20240412-0ubuntu1) ...
#8 20.58 Setting up netbase (6.4) ...
#8 20.59 Setting up libperl5.38t64:amd64 (5.38.2-3.2build2) ...
#8 20.59 Setting up libtsan2:amd64 (14-20240412-0ubuntu1) ...
#8 20.60 Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
#8 20.60 Setting up libbinutils:amd64 (2.42-4ubuntu2) ...
#8 20.61 Setting up libisl23:amd64 (0.26-3build1) ...
#8 20.61 Setting up libde265-0:amd64 (1.0.15-1build3) ...
#8 20.61 Setting up libc-dev-bin (2.39-0ubuntu8.3) ...
#8 20.62 Setting up openssl (3.0.13-0ubuntu3.4) ...
#8 20.62 Setting up libbsd0:amd64 (0.12.1-1build1) ...
#8 20.62 Setting up readline-common (8.2-4build1) ...
#8 20.63 Setting up libcc1-0:amd64 (14-20240412-0ubuntu1) ...
#8 20.63 Setting up libldap2:amd64 (2.6.7+dfsg-1~exp1ubuntu8) ...
#8 20.63 Setting up liblocale-gettext-perl (1.07-6ubuntu5) ...
#8 20.64 Setting up liblsan0:amd64 (14-20240412-0ubuntu1) ...
#8 20.64 Setting up libitm1:amd64 (14-20240412-0ubuntu1) ...
#8 20.64 Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
#8 20.65 Setting up gnupg-utils (2.4.4-2ubuntu17) ...
#8 20.65 Setting up libctf0:amd64 (2.42-4ubuntu2) ...
#8 20.66 Setting up libjpeg8:amd64 (8c-2ubuntu11) ...
#8 20.66 Setting up manpages-dev (6.7-2) ...
#8 20.66 Setting up libxdmcp6:amd64 (1:1.1.3-0ubuntu6) ...
#8 20.66 Setting up libxcb1:amd64 (1.15-1ubuntu2) ...
#8 20.67 Setting up cpp-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 20.67 Setting up fontconfig-config (2.15.0-1.1ubuntu2) ...
#8 20.81 Setting up ca-certificates (20240203) ...
#8 20.88 debconf: unable to initialize frontend: Dialog
#8 20.88 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 20.88 debconf: falling back to frontend: Readline
#8 20.89 debconf: unable to initialize frontend: Readline
#8 20.89 debconf: (This frontend requires a controlling tty.)
#8 20.89 debconf: falling back to frontend: Teletype
#8 21.27 Updating certificates in /etc/ssl/certs...
#8 21.83 146 added, 0 removed; done.
#8 21.85 Setting up perl (5.38.2-3.2build2) ...
#8 21.86 Setting up libgprofng0:amd64 (2.42-4ubuntu2) ...
#8 21.86 Setting up libfreetype6:amd64 (2.13.2+dfsg-1build3) ...
#8 21.86 Setting up libjs-sphinxdoc (7.2.6-6) ...
#8 21.86 Setting up libdpkg-perl (1.22.6ubuntu6.1) ...
#8 21.87 Setting up libreadline8t64:amd64 (8.2-4build1) ...
#8 21.87 Setting up libgcc-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 21.87 Setting up libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
#8 21.88 Setting up gpgconf (2.4.4-2ubuntu17) ...
#8 21.88 Setting up libc6-dev:amd64 (2.39-0ubuntu8.3) ...
#8 21.88 Setting up libx11-6:amd64 (2:1.8.7-1build1) ...
#8 21.88 Setting up libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
#8 21.89 Setting up gpg (2.4.4-2ubuntu17) ...
#8 21.89 Setting up libstdc++-13-dev:amd64 (13.2.0-23ubuntu4) ...
#8 21.89 Setting up binutils-x86-64-linux-gnu (2.42-4ubuntu2) ...
#8 21.89 Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 21.90 Setting up gpg-agent (2.4.4-2ubuntu17) ...
#8 22.30 Setting up libpython3.12-stdlib:amd64 (3.12.3-1ubuntu0.1) ...
#8 22.31 Setting up libxpm4:amd64 (1:3.5.17-1build2) ...
#8 22.31 Setting up cpp-13 (13.2.0-23ubuntu4) ...
#8 22.31 Setting up libfile-fcntllock-perl (0.22-4ubuntu5) ...
#8 22.32 Setting up libalgorithm-diff-perl (1.201-1) ...
#8 22.32 Setting up gcc-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 22.32 Setting up python3.12 (3.12.3-1ubuntu0.1) ...
#8 23.08 Setting up gpgsm (2.4.4-2ubuntu17) ...
#8 23.09 Setting up binutils (2.42-4ubuntu2) ...
#8 23.09 Setting up dpkg-dev (1.22.6ubuntu6.1) ...
#8 23.09 Setting up libpython3.12t64:amd64 (3.12.3-1ubuntu0.1) ...
#8 23.10 Setting up dirmngr (2.4.4-2ubuntu17) ...
#8 23.21 Setting up libexpat1-dev:amd64 (2.6.1-2ubuntu0.1) ...
#8 23.21 Setting up gcc-13 (13.2.0-23ubuntu4) ...
#8 23.22 Setting up keyboxd (2.4.4-2ubuntu17) ...
#8 23.32 Setting up zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 23.32 Setting up cpp (4:13.2.0-7ubuntu1) ...
#8 23.33 Setting up gnupg (2.4.4-2ubuntu17) ...
#8 23.33 Setting up libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
#8 23.34 Setting up libpython3-stdlib:amd64 (3.12.3-0ubuntu2) ...
#8 23.34 Setting up libalgorithm-merge-perl (0.08-5) ...
#8 23.34 Setting up g++-13-x86-64-linux-gnu (13.2.0-23ubuntu4) ...
#8 23.35 Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 23.35 Setting up gpg-wks-client (2.4.4-2ubuntu17) ...
#8 23.35 Setting up python3 (3.12.3-0ubuntu2) ...
#8 23.36 running python rtupdate hooks for python3.12...
#8 23.36 running python post-rtupdate hooks for python3.12...
#8 23.44 Setting up libpython3.12-dev:amd64 (3.12.3-1ubuntu0.1) ...
#8 23.44 Setting up python3-wheel (0.42.0-2) ...
#8 23.57 Setting up gcc (4:13.2.0-7ubuntu1) ...
#8 23.58 Setting up python3.12-dev (3.12.3-1ubuntu0.1) ...
#8 23.58 Setting up g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 23.58 Setting up python3-pkg-resources (68.1.2-2ubuntu1.1) ...
#8 23.75 Setting up g++-13 (13.2.0-23ubuntu4) ...
#8 23.76 Setting up libpython3-dev:amd64 (3.12.3-0ubuntu2) ...
#8 23.76 Setting up python3-setuptools (68.1.2-2ubuntu1.1) ...
#8 24.15 Setting up python3-dev (3.12.3-0ubuntu2) ...
#8 24.16 Setting up python3-pip (24.0+dfsg-1ubuntu1) ...
#8 25.20 Setting up g++ (4:13.2.0-7ubuntu1) ...
#8 25.20 update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
#8 25.20 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 25.21 Setting up build-essential (12.10ubuntu1) ...
#8 25.21 Setting up libheif1:amd64 (1.17.6-1ubuntu4) ...
#8 25.21 Setting up libgd3:amd64 (2.3.3-9ubuntu5) ...
#8 25.22 Setting up libc-devtools (2.39-0ubuntu8.3) ...
#8 25.22 Setting up libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4) ...
#8 25.22 Setting up libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4) ...
#8 25.23 Setting up libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4) ...
#8 25.23 Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
#8 25.24 Processing triggers for ca-certificates (20240203) ...
#8 25.25 Updating certificates in /etc/ssl/certs...
#8 25.68 0 added, 0 removed; done.
#8 25.68 Running hooks in /etc/ca-certificates/update.d...
#8 25.69 done.
#8 DONE 26.6s

#9 [device 4/6] RUN pip3 install BACpypes
#9 0.459 error: externally-managed-environment
#9 0.459 
#9 0.459 × This environment is externally managed
#9 0.459 ╰─> To install Python packages system-wide, try apt install
#9 0.459     python3-xyz, where xyz is the package you are trying to
#9 0.459     install.
#9 0.459     
#9 0.459     If you wish to install a non-Debian-packaged Python package,
#9 0.459     create a virtual environment using python3 -m venv path/to/venv.
#9 0.459     Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
#9 0.459     sure you have python3-full installed.
#9 0.459     
#9 0.459     If you wish to install a non-Debian packaged Python application,
#9 0.459     it may be easiest to use pipx install xyz, which will manage a
#9 0.459     virtual environment for you. Make sure you have pipx installed.
#9 0.459     
#9 0.459     See /usr/share/doc/python3.12/README.venv for more information.
#9 0.459 
#9 0.459 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.459 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.459     sure you have python3-full installed.
0.459     
0.459     If you wish to install a non-Debian packaged Python application,
0.459     it may be easiest to use pipx install xyz, which will manage a
0.459     virtual environment for you. Make sure you have pipx installed.
0.459     
0.459     See /usr/share/doc/python3.12/README.venv for more information.
0.459 
0.459 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.459 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.9/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-09-13 21:59:23,359 - INFO    | Starting BAC0 version 22.9.21 (Lite)
2024-09-13 21:59:23,360 - INFO    | Use BAC0.log_level to adjust verbosity of the app.
2024-09-13 21:59:23,361 - INFO    | Ex. BAC0.log_level('silence') or BAC0.log_level('error')
2024-09-13 21:59:23,361 - INFO    | Starting TaskManager
2024-09-13 21:59:23,363 - 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.9/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.9/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)