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="2025-02-26T15:06:09Z" level=warning msg="/home/runner/work/BuildingMOTIF/BuildingMOTIF/docs/guides/docker-compose-bacnet.yml: `version` is obsolete"
#0 building with "default" instance using docker driver

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

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

#3 [device internal] load metadata for docker.io/library/ubuntu:latest
#3 DONE 0.4s

#4 [device internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s

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

#6 [device 1/6] FROM docker.io/library/ubuntu:latest@sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782
#6 resolve docker.io/library/ubuntu:latest@sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782 done
#6 sha256:3afff29dffbc200d202546dc6c4f614edc3b109691e7ab4aa23d02b42ba86790 424B / 424B done
#6 sha256:a04dc4851cbcbb42b54d1f52a41f5f9eca6a5fd03748c3f6eb2cbeb238ca99bd 2.30kB / 2.30kB done
#6 sha256:5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040 9.44MB / 29.75MB 0.1s
#6 sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782 6.69kB / 6.69kB done
#6 sha256:5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040 29.75MB / 29.75MB 0.3s
#6 sha256:5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040 29.75MB / 29.75MB 0.3s done
#6 extracting sha256:5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040 0.1s
#6 extracting sha256:5a7813e071bfadf18aaa6ca8318be4824a9b6297b3240f2cc84c1db6f4113040 0.8s done
#6 DONE 1.3s

#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.145 
#8 0.145 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#8 0.145 
#8 0.329 Get:1 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
#8 0.414 Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
#8 0.754 Get:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
#8 0.857 Get:4 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [798 kB]
#8 0.860 Get:5 http://archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
#8 0.964 Get:6 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages [1808 kB]
#8 1.194 Get:7 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages [24.2 kB]
#8 1.196 Get:8 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1053 kB]
#8 1.209 Get:9 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages [117 kB]
#8 1.215 Get:10 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages [19.3 MB]
#8 1.286 Get:11 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [822 kB]
#8 1.610 Get:12 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages [331 kB]
#8 1.611 Get:13 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages [28.8 kB]
#8 1.612 Get:14 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1331 kB]
#8 1.641 Get:15 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1119 kB]
#8 1.659 Get:16 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [863 kB]
#8 1.673 Get:17 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [16.0 kB]
#8 2.336 Fetched 28.3 MB in 2s (13.0 MB/s)
#8 2.336 Reading package lists...
#8 2.925 Building dependency tree...
#8 3.037 Reading state information...
#8 3.049 18 packages can be upgraded. Run 'apt list --upgradable' to see them.
#8 3.053 
#8 3.053 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
#8 3.053 
#8 3.055 Reading package lists...
#8 3.648 Building dependency tree...
#8 3.760 Reading state information...
#8 3.897 The following additional packages will be installed:
#8 3.897   adduser binutils binutils-common binutils-x86-64-linux-gnu build-essential
#8 3.897   bzip2 ca-certificates cpp cpp-13 cpp-13-x86-64-linux-gnu
#8 3.897   cpp-x86-64-linux-gnu dirmngr dpkg-dev fakeroot fontconfig-config
#8 3.897   fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu
#8 3.897   g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
#8 3.897   gcc-x86-64-linux-gnu gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#8 3.897   gpg-wks-client gpgconf gpgsm javascript-common keyboxd
#8 3.897   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
#8 3.897   libaom3 libasan8 libatomic1 libbinutils libbrotli1 libbsd0 libc-bin
#8 3.897   libc-dev-bin libc-devtools libc6 libc6-dev libcc1-0 libcrypt-dev
#8 3.897   libctf-nobfd0 libctf0 libde265-0 libdeflate0 libdpkg-perl libexpat1
#8 3.897   libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfreetype6
#8 3.897   libgcc-13-dev libgd3 libgdbm-compat4t64 libgdbm6t64 libgomp1 libgprofng0
#8 3.897   libheif-plugin-aomdec libheif-plugin-aomenc libheif-plugin-libde265 libheif1
#8 3.897   libhwasan0 libisl23 libitm1 libjansson4 libjbig0 libjpeg-turbo8 libjpeg8
#8 3.897   libjs-jquery libjs-sphinxdoc libjs-underscore libksba8 libldap-common
#8 3.897   libldap2 liblerc4 liblocale-gettext-perl liblsan0 libmpc3 libmpfr6
#8 3.897   libperl5.38t64 libpng16-16t64 libpython3-dev libpython3-stdlib
#8 3.897   libpython3.12-dev libpython3.12-minimal libpython3.12-stdlib
#8 3.898   libpython3.12t64 libquadmath0 libreadline8t64 libsasl2-2 libsasl2-modules
#8 3.898   libsasl2-modules-db libsframe1 libsharpyuv0 libsqlite3-0 libssl3t64
#8 3.898   libstdc++-13-dev libtiff6 libtsan2 libubsan1 libwebp7 libx11-6 libx11-data
#8 3.898   libxau6 libxcb1 libxdmcp6 libxpm4 linux-libc-dev lto-disabled-list make
#8 3.898   manpages manpages-dev media-types netbase openssl patch perl perl-base
#8 3.898   perl-modules-5.38 pinentry-curses python3-dev python3-minimal
#8 3.898   python3-pkg-resources python3-setuptools python3-wheel python3.12
#8 3.898   python3.12-dev python3.12-minimal readline-common rpcsvc-proto tzdata
#8 3.898   xz-utils zlib1g-dev
#8 3.899 Suggested packages:
#8 3.899   cron quota ecryptfs-utils binutils-doc gprofng-gui bzip2-doc cpp-doc
#8 3.899   gcc-13-locales cpp-13-doc dbus-user-session libpam-systemd pinentry-gnome3
#8 3.899   tor debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib
#8 3.899   autoconf automake libtool flex bison gdb gcc-doc gcc-13-multilib
#8 3.899   gdb-x86-64-linux-gnu parcimonie xloadimage gpg-wks-server scdaemon apache2
#8 3.899   | lighttpd | httpd glibc-doc locales libnss-nis libnss-nisplus git bzr
#8 3.899   libgd-tools gdbm-l10n libheif-plugin-x265 libheif-plugin-ffmpegdec
#8 3.899   libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec
#8 3.899   libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc
#8 3.899   libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
#8 3.899   libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql
#8 3.899   libstdc++-13-doc make-doc man-browser ed diffutils-doc perl-doc
#8 3.899   libterm-readline-gnu-perl | libterm-readline-perl-perl
#8 3.899   libtap-harness-archive-perl pinentry-doc python3-doc python3-tk python3-venv
#8 3.899   python-setuptools-doc python3.12-venv python3.12-doc binfmt-support
#8 3.899   readline-doc
#8 4.068 The following NEW packages will be installed:
#8 4.068   adduser binutils binutils-common binutils-x86-64-linux-gnu build-essential
#8 4.068   bzip2 ca-certificates cpp cpp-13 cpp-13-x86-64-linux-gnu
#8 4.068   cpp-x86-64-linux-gnu dirmngr dpkg-dev fakeroot fontconfig-config
#8 4.068   fonts-dejavu-core fonts-dejavu-mono g++ g++-13 g++-13-x86-64-linux-gnu
#8 4.068   g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu
#8 4.068   gcc-x86-64-linux-gnu gnupg gnupg-l10n gnupg-utils gpg gpg-agent
#8 4.068   gpg-wks-client gpgconf gpgsm javascript-common keyboxd
#8 4.068   libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
#8 4.068   libaom3 libasan8 libatomic1 libbinutils libbrotli1 libbsd0 libc-dev-bin
#8 4.068   libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0
#8 4.068   libde265-0 libdeflate0 libdpkg-perl libexpat1 libexpat1-dev libfakeroot
#8 4.068   libfile-fcntllock-perl libfontconfig1 libfreetype6 libgcc-13-dev libgd3
#8 4.068   libgdbm-compat4t64 libgdbm6t64 libgomp1 libgprofng0 libheif-plugin-aomdec
#8 4.068   libheif-plugin-aomenc libheif-plugin-libde265 libheif1 libhwasan0 libisl23
#8 4.068   libitm1 libjansson4 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery
#8 4.068   libjs-sphinxdoc libjs-underscore libksba8 libldap-common libldap2 liblerc4
#8 4.068   liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libperl5.38t64
#8 4.068   libpng16-16t64 libpython3-dev libpython3-stdlib libpython3.12-dev
#8 4.068   libpython3.12-minimal libpython3.12-stdlib libpython3.12t64 libquadmath0
#8 4.069   libreadline8t64 libsasl2-2 libsasl2-modules libsasl2-modules-db libsframe1
#8 4.069   libsharpyuv0 libsqlite3-0 libstdc++-13-dev libtiff6 libtsan2 libubsan1
#8 4.069   libwebp7 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxpm4
#8 4.069   linux-libc-dev lto-disabled-list make manpages manpages-dev media-types
#8 4.069   netbase openssl patch perl perl-modules-5.38 pinentry-curses python3
#8 4.069   python3-dev python3-minimal python3-pip python3-pkg-resources
#8 4.069   python3-setuptools python3-wheel python3.12 python3.12-dev
#8 4.069   python3.12-minimal readline-common rpcsvc-proto tzdata xz-utils zlib1g-dev
#8 4.070 The following packages will be upgraded:
#8 4.070   libc-bin libc6 libssl3t64 perl-base
#8 4.149 4 upgraded, 143 newly installed, 0 to remove and 14 not upgraded.
#8 4.149 Need to get 122 MB of archives.
#8 4.149 After this operation, 420 MB of additional disk space will be used.
#8 4.149 Get:1 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 perl-base amd64 5.38.2-3.2build2.1 [1823 kB]
#8 4.252 Get:2 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6 amd64 2.39-0ubuntu8.4 [3264 kB]
#8 4.273 Get:3 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-bin amd64 2.39-0ubuntu8.4 [682 kB]
#8 4.278 Get:4 http://archive.ubuntu.com/ubuntu noble/main amd64 liblocale-gettext-perl amd64 1.07-6ubuntu5 [15.8 kB]
#8 4.278 Get:5 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libssl3t64 amd64 3.0.13-0ubuntu3.5 [1940 kB]
#8 4.289 Get:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12-minimal amd64 3.12.3-1ubuntu0.5 [835 kB]
#8 4.294 Get:7 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libexpat1 amd64 2.6.1-2ubuntu0.2 [87.4 kB]
#8 4.295 Get:8 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3.12-minimal amd64 3.12.3-1ubuntu0.5 [2342 kB]
#8 4.308 Get:9 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-minimal amd64 3.12.3-0ubuntu2 [27.4 kB]
#8 4.309 Get:10 http://archive.ubuntu.com/ubuntu noble/main amd64 media-types all 10.1.0 [27.5 kB]
#8 4.309 Get:11 http://archive.ubuntu.com/ubuntu noble/main amd64 netbase all 6.4 [13.1 kB]
#8 4.310 Get:12 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 tzdata all 2024b-0ubuntu0.24.04.1 [274 kB]
#8 4.312 Get:13 http://archive.ubuntu.com/ubuntu noble/main amd64 readline-common all 8.2-4build1 [56.5 kB]
#8 4.312 Get:14 http://archive.ubuntu.com/ubuntu noble/main amd64 libreadline8t64 amd64 8.2-4build1 [153 kB]
#8 4.313 Get:15 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsqlite3-0 amd64 3.45.1-1ubuntu2.1 [701 kB]
#8 4.318 Get:16 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12-stdlib amd64 3.12.3-1ubuntu0.5 [2069 kB]
#8 4.329 Get:17 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3.12 amd64 3.12.3-1ubuntu0.5 [651 kB]
#8 4.333 Get:18 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3-stdlib amd64 3.12.3-0ubuntu2 [10.0 kB]
#8 4.334 Get:19 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3 amd64 3.12.3-0ubuntu2 [23.0 kB]
#8 4.334 Get:20 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 perl-modules-5.38 all 5.38.2-3.2build2.1 [3110 kB]
#8 4.352 Get:21 http://archive.ubuntu.com/ubuntu noble/main amd64 libgdbm6t64 amd64 1.23-5.1build1 [34.4 kB]
#8 4.352 Get:22 http://archive.ubuntu.com/ubuntu noble/main amd64 libgdbm-compat4t64 amd64 1.23-5.1build1 [6710 B]
#8 4.353 Get:23 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libperl5.38t64 amd64 5.38.2-3.2build2.1 [4867 kB]
#8 4.380 Get:24 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 perl amd64 5.38.2-3.2build2.1 [231 kB]
#8 4.382 Get:25 http://archive.ubuntu.com/ubuntu noble/main amd64 adduser all 3.137ubuntu1 [101 kB]
#8 4.383 Get:26 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 openssl amd64 3.0.13-0ubuntu3.5 [1002 kB]
#8 4.389 Get:27 http://archive.ubuntu.com/ubuntu noble/main amd64 ca-certificates all 20240203 [159 kB]
#8 4.390 Get:28 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libbsd0 amd64 0.12.1-1build1.1 [41.2 kB]
#8 4.390 Get:29 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-pkg-resources all 68.1.2-2ubuntu1.1 [168 kB]
#8 4.392 Get:30 http://archive.ubuntu.com/ubuntu noble/main amd64 libjansson4 amd64 2.14-2build2 [32.8 kB]
#8 4.392 Get:31 http://archive.ubuntu.com/ubuntu noble/main amd64 libpng16-16t64 amd64 1.6.43-5build1 [187 kB]
#8 4.393 Get:32 http://archive.ubuntu.com/ubuntu noble/main amd64 libxau6 amd64 1:1.0.9-1build6 [7160 B]
#8 4.394 Get:33 http://archive.ubuntu.com/ubuntu noble/main amd64 libxdmcp6 amd64 1:1.1.3-0ubuntu6 [10.3 kB]
#8 4.406 Get:34 http://archive.ubuntu.com/ubuntu noble/main amd64 libxcb1 amd64 1.15-1ubuntu2 [47.7 kB]
#8 4.406 Get:35 http://archive.ubuntu.com/ubuntu noble/main amd64 libx11-data all 2:1.8.7-1build1 [115 kB]
#8 4.407 Get:36 http://archive.ubuntu.com/ubuntu noble/main amd64 libx11-6 amd64 2:1.8.7-1build1 [650 kB]
#8 4.411 Get:37 http://archive.ubuntu.com/ubuntu noble/main amd64 manpages all 6.7-2 [1384 kB]
#8 4.419 Get:38 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 xz-utils amd64 5.6.1+really5.4.5-1build0.1 [267 kB]
#8 4.421 Get:39 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-common amd64 2.42-4ubuntu2.3 [239 kB]
#8 4.423 Get:40 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsframe1 amd64 2.42-4ubuntu2.3 [14.9 kB]
#8 4.423 Get:41 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libbinutils amd64 2.42-4ubuntu2.3 [575 kB]
#8 4.427 Get:42 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf-nobfd0 amd64 2.42-4ubuntu2.3 [97.1 kB]
#8 4.427 Get:43 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libctf0 amd64 2.42-4ubuntu2.3 [94.5 kB]
#8 4.430 Get:44 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgprofng0 amd64 2.42-4ubuntu2.3 [849 kB]
#8 4.435 Get:45 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.42-4ubuntu2.3 [2463 kB]
#8 4.449 Get:46 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 binutils amd64 2.42-4ubuntu2.3 [18.1 kB]
#8 4.449 Get:47 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-dev-bin amd64 2.39-0ubuntu8.4 [20.4 kB]
#8 4.450 Get:48 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 linux-libc-dev amd64 6.8.0-54.56 [1795 kB]
#8 4.460 Get:49 http://archive.ubuntu.com/ubuntu noble/main amd64 libcrypt-dev amd64 1:4.4.36-4build1 [112 kB]
#8 4.461 Get:50 http://archive.ubuntu.com/ubuntu noble/main amd64 rpcsvc-proto amd64 1.4.2-0ubuntu7 [67.4 kB]
#8 4.462 Get:51 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc6-dev amd64 2.39-0ubuntu8.4 [2124 kB]
#8 4.474 Get:52 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13-base amd64 13.3.0-6ubuntu2~24.04 [51.5 kB]
#8 4.475 Get:53 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libisl23 amd64 0.26-3build1.1 [680 kB]
#8 4.479 Get:54 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpfr6 amd64 4.2.1-1build1.1 [353 kB]
#8 4.481 Get:55 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpc3 amd64 1.3.1-1build1.1 [54.6 kB]
#8 4.483 Get:56 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 cpp-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [10.7 MB]
#8 4.544 Get:57 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 cpp-13 amd64 13.3.0-6ubuntu2~24.04 [1038 B]
#8 4.544 Get:58 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [5326 B]
#8 4.544 Get:59 http://archive.ubuntu.com/ubuntu noble/main amd64 cpp amd64 4:13.2.0-7ubuntu1 [22.4 kB]
#8 4.545 Get:60 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libcc1-0 amd64 14.2.0-4ubuntu2~24.04 [48.0 kB]
#8 4.545 Get:61 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgomp1 amd64 14.2.0-4ubuntu2~24.04 [148 kB]
#8 4.546 Get:62 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libitm1 amd64 14.2.0-4ubuntu2~24.04 [29.7 kB]
#8 4.547 Get:63 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libatomic1 amd64 14.2.0-4ubuntu2~24.04 [10.5 kB]
#8 4.547 Get:64 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libasan8 amd64 14.2.0-4ubuntu2~24.04 [3031 kB]
#8 4.565 Get:65 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liblsan0 amd64 14.2.0-4ubuntu2~24.04 [1322 kB]
#8 4.572 Get:66 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libtsan2 amd64 14.2.0-4ubuntu2~24.04 [2772 kB]
#8 4.588 Get:67 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libubsan1 amd64 14.2.0-4ubuntu2~24.04 [1184 kB]
#8 4.596 Get:68 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libhwasan0 amd64 14.2.0-4ubuntu2~24.04 [1641 kB]
#8 4.605 Get:69 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libquadmath0 amd64 14.2.0-4ubuntu2~24.04 [153 kB]
#8 4.606 Get:70 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcc-13-dev amd64 13.3.0-6ubuntu2~24.04 [2681 kB]
#8 4.622 Get:71 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [21.1 MB]
#8 4.747 Get:72 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-13 amd64 13.3.0-6ubuntu2~24.04 [494 kB]
#8 4.750 Get:73 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [1212 B]
#8 4.751 Get:74 http://archive.ubuntu.com/ubuntu noble/main amd64 gcc amd64 4:13.2.0-7ubuntu1 [5018 B]
#8 4.751 Get:75 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libstdc++-13-dev amd64 13.3.0-6ubuntu2~24.04 [2420 kB]
#8 4.765 Get:76 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 g++-13-x86-64-linux-gnu amd64 13.3.0-6ubuntu2~24.04 [12.2 MB]
#8 4.833 Get:77 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 g++-13 amd64 13.3.0-6ubuntu2~24.04 [16.1 kB]
#8 4.833 Get:78 http://archive.ubuntu.com/ubuntu noble/main amd64 g++-x86-64-linux-gnu amd64 4:13.2.0-7ubuntu1 [964 B]
#8 4.834 Get:79 http://archive.ubuntu.com/ubuntu noble/main amd64 g++ amd64 4:13.2.0-7ubuntu1 [1100 B]
#8 4.834 Get:80 http://archive.ubuntu.com/ubuntu noble/main amd64 make amd64 4.3-4.1build2 [180 kB]
#8 4.835 Get:81 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdpkg-perl all 1.22.6ubuntu6.1 [269 kB]
#8 4.837 Get:82 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 bzip2 amd64 1.0.8-5.1build0.1 [34.5 kB]
#8 4.838 Get:83 http://archive.ubuntu.com/ubuntu noble/main amd64 patch amd64 2.7.6-7build3 [104 kB]
#8 4.838 Get:84 http://archive.ubuntu.com/ubuntu noble/main amd64 lto-disabled-list all 47 [12.4 kB]
#8 4.839 Get:85 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dpkg-dev all 1.22.6ubuntu6.1 [1074 kB]
#8 4.845 Get:86 http://archive.ubuntu.com/ubuntu noble/main amd64 build-essential amd64 12.10ubuntu1 [4928 B]
#8 4.858 Get:87 http://archive.ubuntu.com/ubuntu noble/main amd64 gpgconf amd64 2.4.4-2ubuntu17 [103 kB]
#8 4.859 Get:88 http://archive.ubuntu.com/ubuntu noble/main amd64 libksba8 amd64 1.6.6-1build1 [122 kB]
#8 4.861 Get:89 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-5ubuntu3.1 [20.4 kB]
#8 4.861 Get:90 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-5ubuntu3.1 [53.2 kB]
#8 4.862 Get:91 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libldap2 amd64 2.6.7+dfsg-1~exp1ubuntu8.2 [196 kB]
#8 4.864 Get:92 http://archive.ubuntu.com/ubuntu noble/main amd64 dirmngr amd64 2.4.4-2ubuntu17 [323 kB]
#8 4.866 Get:93 http://archive.ubuntu.com/ubuntu noble/main amd64 libfakeroot amd64 1.33-1 [32.4 kB]
#8 4.866 Get:94 http://archive.ubuntu.com/ubuntu noble/main amd64 fakeroot amd64 1.33-1 [67.2 kB]
#8 4.867 Get:95 http://archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-mono all 2.37-8 [502 kB]
#8 4.870 Get:96 http://archive.ubuntu.com/ubuntu noble/main amd64 fonts-dejavu-core all 2.37-8 [835 kB]
#8 4.882 Get:97 http://archive.ubuntu.com/ubuntu noble/main amd64 fontconfig-config amd64 2.15.0-1.1ubuntu2 [37.3 kB]
#8 4.882 Get:98 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg-utils amd64 2.4.4-2ubuntu17 [108 kB]
#8 4.884 Get:99 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg amd64 2.4.4-2ubuntu17 [565 kB]
#8 4.887 Get:100 http://archive.ubuntu.com/ubuntu noble/main amd64 pinentry-curses amd64 1.2.1-3ubuntu5 [35.2 kB]
#8 4.888 Get:101 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg-agent amd64 2.4.4-2ubuntu17 [227 kB]
#8 5.044 Get:102 http://archive.ubuntu.com/ubuntu noble/main amd64 gpgsm amd64 2.4.4-2ubuntu17 [232 kB]
#8 5.454 Get:103 http://archive.ubuntu.com/ubuntu noble/main amd64 keyboxd amd64 2.4.4-2ubuntu17 [78.3 kB]
#8 5.473 Get:104 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg all 2.4.4-2ubuntu17 [359 kB]
#8 5.583 Get:105 http://archive.ubuntu.com/ubuntu noble/main amd64 gnupg-l10n all 2.4.4-2ubuntu17 [65.9 kB]
#8 5.590 Get:106 http://archive.ubuntu.com/ubuntu noble/main amd64 gpg-wks-client amd64 2.4.4-2ubuntu17 [70.9 kB]
#8 5.605 Get:107 http://archive.ubuntu.com/ubuntu noble/main amd64 javascript-common all 11+nmu1 [5936 B]
#8 5.606 Get:108 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-perl all 1.201-1 [41.8 kB]
#8 5.611 Get:109 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-diff-xs-perl amd64 0.04-8build3 [11.2 kB]
#8 5.612 Get:110 http://archive.ubuntu.com/ubuntu noble/main amd64 libalgorithm-merge-perl all 0.08-5 [11.4 kB]
#8 5.614 Get:111 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libaom3 amd64 3.8.2-2ubuntu0.1 [1941 kB]
#8 5.756 Get:112 http://archive.ubuntu.com/ubuntu noble/main amd64 libbrotli1 amd64 1.1.0-2build2 [331 kB]
#8 5.775 Get:113 http://archive.ubuntu.com/ubuntu noble/main amd64 libfreetype6 amd64 2.13.2+dfsg-1build3 [402 kB]
#8 5.789 Get:114 http://archive.ubuntu.com/ubuntu noble/main amd64 libfontconfig1 amd64 2.15.0-1.1ubuntu2 [139 kB]
#8 5.793 Get:115 http://archive.ubuntu.com/ubuntu noble/main amd64 libsharpyuv0 amd64 1.3.2-0.4build3 [15.8 kB]
#8 5.794 Get:116 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-aomdec amd64 1.17.6-1ubuntu4.1 [10.4 kB]
#8 5.794 Get:117 http://archive.ubuntu.com/ubuntu noble/main amd64 libde265-0 amd64 1.0.15-1build3 [166 kB]
#8 5.800 Get:118 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-libde265 amd64 1.17.6-1ubuntu4.1 [8176 B]
#8 5.801 Get:119 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif1 amd64 1.17.6-1ubuntu4.1 [275 kB]
#8 5.807 Get:120 http://archive.ubuntu.com/ubuntu noble/main amd64 libjpeg-turbo8 amd64 2.1.5-2ubuntu2 [150 kB]
#8 5.842 Get:121 http://archive.ubuntu.com/ubuntu noble/main amd64 libjpeg8 amd64 8c-2ubuntu11 [2148 B]
#8 5.918 Get:122 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdeflate0 amd64 1.19-1build1.1 [43.9 kB]
#8 5.919 Get:123 http://archive.ubuntu.com/ubuntu noble/main amd64 libjbig0 amd64 2.1-6.1ubuntu2 [29.7 kB]
#8 5.919 Get:124 http://archive.ubuntu.com/ubuntu noble/main amd64 liblerc4 amd64 4.0.0+ds-4ubuntu2 [179 kB]
#8 5.922 Get:125 http://archive.ubuntu.com/ubuntu noble/main amd64 libwebp7 amd64 1.3.2-0.4build3 [230 kB]
#8 5.924 Get:126 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libtiff6 amd64 4.5.1+git230720-4ubuntu2.2 [199 kB]
#8 5.927 Get:127 http://archive.ubuntu.com/ubuntu noble/main amd64 libxpm4 amd64 1:3.5.17-1build2 [36.5 kB]
#8 5.928 Get:128 http://archive.ubuntu.com/ubuntu noble/main amd64 libgd3 amd64 2.3.3-9ubuntu5 [128 kB]
#8 5.930 Get:129 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libc-devtools amd64 2.39-0ubuntu8.4 [29.3 kB]
#8 5.930 Get:130 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libexpat1-dev amd64 2.6.1-2ubuntu0.2 [998 kB]
#8 5.994 Get:131 http://archive.ubuntu.com/ubuntu noble/main amd64 libfile-fcntllock-perl amd64 0.22-4ubuntu5 [30.7 kB]
#8 6.070 Get:132 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libheif-plugin-aomenc amd64 1.17.6-1ubuntu4.1 [14.7 kB]
#8 6.071 Get:133 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [328 kB]
#8 6.074 Get:134 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [118 kB]
#8 6.076 Get:135 http://archive.ubuntu.com/ubuntu noble/main amd64 libjs-sphinxdoc all 7.2.6-6 [149 kB]
#8 6.078 Get:136 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libldap-common all 2.6.7+dfsg-1~exp1ubuntu8.2 [31.7 kB]
#8 6.079 Get:137 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12t64 amd64 3.12.3-1ubuntu0.5 [2339 kB]
#8 6.112 Get:138 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 zlib1g-dev amd64 1:1.3.dfsg-3.1ubuntu2.1 [894 kB]
#8 6.123 Get:139 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3.12-dev amd64 3.12.3-1ubuntu0.5 [5675 kB]
#8 6.236 Get:140 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpython3-dev amd64 3.12.3-0ubuntu2 [10.3 kB]
#8 6.236 Get:141 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsasl2-modules amd64 2.1.28+dfsg1-5ubuntu3.1 [69.9 kB]
#8 6.236 Get:142 http://archive.ubuntu.com/ubuntu noble/main amd64 manpages-dev all 6.7-2 [2013 kB]
#8 6.264 Get:143 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3.12-dev amd64 3.12.3-1ubuntu0.5 [498 kB]
#8 6.270 Get:144 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-dev amd64 3.12.3-0ubuntu2 [26.7 kB]
#8 6.270 Get:145 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-setuptools all 68.1.2-2ubuntu1.1 [396 kB]
#8 6.275 Get:146 http://archive.ubuntu.com/ubuntu noble/universe amd64 python3-wheel all 0.42.0-2 [53.1 kB]
#8 6.276 Get:147 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-pip all 24.0+dfsg-1ubuntu1.1 [1317 kB]
#8 6.426 debconf: delaying package configuration, since apt-utils is not installed
#8 6.451 Fetched 122 MB in 2s (54.8 MB/s)
#8 6.464 (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 ... 4383 files and directories currently installed.)
#8 6.469 Preparing to unpack .../perl-base_5.38.2-3.2build2.1_amd64.deb ...
#8 6.481 Unpacking perl-base (5.38.2-3.2build2.1) over (5.38.2-3.2build2) ...
#8 7.102 Setting up perl-base (5.38.2-3.2build2.1) ...
#8 7.132 (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 ... 4383 files and directories currently installed.)
#8 7.136 Preparing to unpack .../libc6_2.39-0ubuntu8.4_amd64.deb ...
#8 7.198 debconf: unable to initialize frontend: Dialog
#8 7.198 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 7.198 debconf: falling back to frontend: Readline
#8 7.198 debconf: unable to initialize frontend: Readline
#8 7.198 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 7.198 debconf: falling back to frontend: Teletype
#8 7.232 Unpacking libc6:amd64 (2.39-0ubuntu8.4) over (2.39-0ubuntu8.3) ...
#8 7.586 Setting up libc6:amd64 (2.39-0ubuntu8.4) ...
#8 7.646 debconf: unable to initialize frontend: Dialog
#8 7.646 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 7.646 debconf: falling back to frontend: Readline
#8 7.646 debconf: unable to initialize frontend: Readline
#8 7.646 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 7.646 debconf: falling back to frontend: Teletype
#8 8.687 (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 ... 4382 files and directories currently installed.)
#8 8.692 Preparing to unpack .../libc-bin_2.39-0ubuntu8.4_amd64.deb ...
#8 8.695 Unpacking libc-bin (2.39-0ubuntu8.4) over (2.39-0ubuntu8.3) ...
#8 8.754 Setting up libc-bin (2.39-0ubuntu8.4) ...
#8 8.780 Selecting previously unselected package liblocale-gettext-perl.
#8 8.780 (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 ... 4381 files and directories currently installed.)
#8 8.785 Preparing to unpack .../liblocale-gettext-perl_1.07-6ubuntu5_amd64.deb ...
#8 8.786 Unpacking liblocale-gettext-perl (1.07-6ubuntu5) ...
#8 8.805 Preparing to unpack .../libssl3t64_3.0.13-0ubuntu3.5_amd64.deb ...
#8 8.809 Unpacking libssl3t64:amd64 (3.0.13-0ubuntu3.5) over (3.0.13-0ubuntu3.4) ...
#8 8.872 Setting up libssl3t64:amd64 (3.0.13-0ubuntu3.5) ...
#8 8.889 Selecting previously unselected package libpython3.12-minimal:amd64.
#8 8.889 (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 ... 4395 files and directories currently installed.)
#8 8.894 Preparing to unpack .../libpython3.12-minimal_3.12.3-1ubuntu0.5_amd64.deb ...
#8 8.895 Unpacking libpython3.12-minimal:amd64 (3.12.3-1ubuntu0.5) ...
#8 8.972 Selecting previously unselected package libexpat1:amd64.
#8 8.973 Preparing to unpack .../libexpat1_2.6.1-2ubuntu0.2_amd64.deb ...
#8 8.974 Unpacking libexpat1:amd64 (2.6.1-2ubuntu0.2) ...
#8 8.991 Selecting previously unselected package python3.12-minimal.
#8 8.992 Preparing to unpack .../python3.12-minimal_3.12.3-1ubuntu0.5_amd64.deb ...
#8 8.995 Unpacking python3.12-minimal (3.12.3-1ubuntu0.5) ...
#8 9.039 Setting up libpython3.12-minimal:amd64 (3.12.3-1ubuntu0.5) ...
#8 9.043 Setting up libexpat1:amd64 (2.6.1-2ubuntu0.2) ...
#8 9.046 Setting up python3.12-minimal (3.12.3-1ubuntu0.5) ...
#8 9.714 Selecting previously unselected package python3-minimal.
#8 9.714 (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 ... 4714 files and directories currently installed.)
#8 9.718 Preparing to unpack .../0-python3-minimal_3.12.3-0ubuntu2_amd64.deb ...
#8 9.719 Unpacking python3-minimal (3.12.3-0ubuntu2) ...
#8 9.737 Selecting previously unselected package media-types.
#8 9.738 Preparing to unpack .../1-media-types_10.1.0_all.deb ...
#8 9.739 Unpacking media-types (10.1.0) ...
#8 9.756 Selecting previously unselected package netbase.
#8 9.757 Preparing to unpack .../2-netbase_6.4_all.deb ...
#8 9.758 Unpacking netbase (6.4) ...
#8 9.773 Selecting previously unselected package tzdata.
#8 9.773 Preparing to unpack .../3-tzdata_2024b-0ubuntu0.24.04.1_all.deb ...
#8 9.774 Unpacking tzdata (2024b-0ubuntu0.24.04.1) ...
#8 9.865 Selecting previously unselected package readline-common.
#8 9.866 Preparing to unpack .../4-readline-common_8.2-4build1_all.deb ...
#8 9.867 Unpacking readline-common (8.2-4build1) ...
#8 9.883 Selecting previously unselected package libreadline8t64:amd64.
#8 9.883 Preparing to unpack .../5-libreadline8t64_8.2-4build1_amd64.deb ...
#8 9.887 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 9.891 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 9.894 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 9.897 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 9.898 Unpacking libreadline8t64:amd64 (8.2-4build1) ...
#8 9.914 Selecting previously unselected package libsqlite3-0:amd64.
#8 9.915 Preparing to unpack .../6-libsqlite3-0_3.45.1-1ubuntu2.1_amd64.deb ...
#8 9.916 Unpacking libsqlite3-0:amd64 (3.45.1-1ubuntu2.1) ...
#8 9.936 Selecting previously unselected package libpython3.12-stdlib:amd64.
#8 9.937 Preparing to unpack .../7-libpython3.12-stdlib_3.12.3-1ubuntu0.5_amd64.deb ...
#8 9.938 Unpacking libpython3.12-stdlib:amd64 (3.12.3-1ubuntu0.5) ...
#8 10.04 Selecting previously unselected package python3.12.
#8 10.04 Preparing to unpack .../8-python3.12_3.12.3-1ubuntu0.5_amd64.deb ...
#8 10.04 Unpacking python3.12 (3.12.3-1ubuntu0.5) ...
#8 10.06 Selecting previously unselected package libpython3-stdlib:amd64.
#8 10.06 Preparing to unpack .../9-libpython3-stdlib_3.12.3-0ubuntu2_amd64.deb ...
#8 10.06 Unpacking libpython3-stdlib:amd64 (3.12.3-0ubuntu2) ...
#8 10.08 Setting up python3-minimal (3.12.3-0ubuntu2) ...
#8 10.19 Selecting previously unselected package python3.
#8 10.19 (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 ... 5719 files and directories currently installed.)
#8 10.20 Preparing to unpack .../0-python3_3.12.3-0ubuntu2_amd64.deb ...
#8 10.20 Unpacking python3 (3.12.3-0ubuntu2) ...
#8 10.22 Selecting previously unselected package perl-modules-5.38.
#8 10.22 Preparing to unpack .../1-perl-modules-5.38_5.38.2-3.2build2.1_all.deb ...
#8 10.22 Unpacking perl-modules-5.38 (5.38.2-3.2build2.1) ...
#8 10.50 Selecting previously unselected package libgdbm6t64:amd64.
#8 10.50 Preparing to unpack .../2-libgdbm6t64_1.23-5.1build1_amd64.deb ...
#8 10.50 Unpacking libgdbm6t64:amd64 (1.23-5.1build1) ...
#8 10.52 Selecting previously unselected package libgdbm-compat4t64:amd64.
#8 10.52 Preparing to unpack .../3-libgdbm-compat4t64_1.23-5.1build1_amd64.deb ...
#8 10.52 Unpacking libgdbm-compat4t64:amd64 (1.23-5.1build1) ...
#8 10.53 Selecting previously unselected package libperl5.38t64:amd64.
#8 10.54 Preparing to unpack .../4-libperl5.38t64_5.38.2-3.2build2.1_amd64.deb ...
#8 10.54 Unpacking libperl5.38t64:amd64 (5.38.2-3.2build2.1) ...
#8 10.71 Selecting previously unselected package perl.
#8 10.71 Preparing to unpack .../5-perl_5.38.2-3.2build2.1_amd64.deb ...
#8 10.72 Unpacking perl (5.38.2-3.2build2.1) ...
#8 10.74 Selecting previously unselected package adduser.
#8 10.74 Preparing to unpack .../6-adduser_3.137ubuntu1_all.deb ...
#8 10.74 Unpacking adduser (3.137ubuntu1) ...
#8 10.76 Setting up adduser (3.137ubuntu1) ...
#8 10.79 Selecting previously unselected package openssl.
#8 10.79 (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 ... 7800 files and directories currently installed.)
#8 10.79 Preparing to unpack .../000-openssl_3.0.13-0ubuntu3.5_amd64.deb ...
#8 10.80 Unpacking openssl (3.0.13-0ubuntu3.5) ...
#8 10.83 Selecting previously unselected package ca-certificates.
#8 10.83 Preparing to unpack .../001-ca-certificates_20240203_all.deb ...
#8 10.83 Unpacking ca-certificates (20240203) ...
#8 10.87 Selecting previously unselected package libbsd0:amd64.
#8 10.87 Preparing to unpack .../002-libbsd0_0.12.1-1build1.1_amd64.deb ...
#8 10.88 Unpacking libbsd0:amd64 (0.12.1-1build1.1) ...
#8 10.89 Selecting previously unselected package python3-pkg-resources.
#8 10.89 Preparing to unpack .../003-python3-pkg-resources_68.1.2-2ubuntu1.1_all.deb ...
#8 10.89 Unpacking python3-pkg-resources (68.1.2-2ubuntu1.1) ...
#8 10.91 Selecting previously unselected package libjansson4:amd64.
#8 10.91 Preparing to unpack .../004-libjansson4_2.14-2build2_amd64.deb ...
#8 10.92 Unpacking libjansson4:amd64 (2.14-2build2) ...
#8 10.93 Selecting previously unselected package libpng16-16t64:amd64.
#8 10.93 Preparing to unpack .../005-libpng16-16t64_1.6.43-5build1_amd64.deb ...
#8 10.93 Unpacking libpng16-16t64:amd64 (1.6.43-5build1) ...
#8 10.95 Selecting previously unselected package libxau6:amd64.
#8 10.95 Preparing to unpack .../006-libxau6_1%3a1.0.9-1build6_amd64.deb ...
#8 10.95 Unpacking libxau6:amd64 (1:1.0.9-1build6) ...
#8 10.97 Selecting previously unselected package libxdmcp6:amd64.
#8 10.97 Preparing to unpack .../007-libxdmcp6_1%3a1.1.3-0ubuntu6_amd64.deb ...
#8 10.97 Unpacking libxdmcp6:amd64 (1:1.1.3-0ubuntu6) ...
#8 10.98 Selecting previously unselected package libxcb1:amd64.
#8 10.99 Preparing to unpack .../008-libxcb1_1.15-1ubuntu2_amd64.deb ...
#8 10.99 Unpacking libxcb1:amd64 (1.15-1ubuntu2) ...
#8 11.00 Selecting previously unselected package libx11-data.
#8 11.00 Preparing to unpack .../009-libx11-data_2%3a1.8.7-1build1_all.deb ...
#8 11.00 Unpacking libx11-data (2:1.8.7-1build1) ...
#8 11.05 Selecting previously unselected package libx11-6:amd64.
#8 11.05 Preparing to unpack .../010-libx11-6_2%3a1.8.7-1build1_amd64.deb ...
#8 11.06 Unpacking libx11-6:amd64 (2:1.8.7-1build1) ...
#8 11.07 Selecting previously unselected package manpages.
#8 11.07 Preparing to unpack .../011-manpages_6.7-2_all.deb ...
#8 11.08 Unpacking manpages (6.7-2) ...
#8 11.11 Selecting previously unselected package xz-utils.
#8 11.11 Preparing to unpack .../012-xz-utils_5.6.1+really5.4.5-1build0.1_amd64.deb ...
#8 11.11 Unpacking xz-utils (5.6.1+really5.4.5-1build0.1) ...
#8 11.13 Selecting previously unselected package binutils-common:amd64.
#8 11.13 Preparing to unpack .../013-binutils-common_2.42-4ubuntu2.3_amd64.deb ...
#8 11.14 Unpacking binutils-common:amd64 (2.42-4ubuntu2.3) ...
#8 11.15 Selecting previously unselected package libsframe1:amd64.
#8 11.15 Preparing to unpack .../014-libsframe1_2.42-4ubuntu2.3_amd64.deb ...
#8 11.21 Unpacking libsframe1:amd64 (2.42-4ubuntu2.3) ...
#8 11.22 Selecting previously unselected package libbinutils:amd64.
#8 11.23 Preparing to unpack .../015-libbinutils_2.42-4ubuntu2.3_amd64.deb ...
#8 11.23 Unpacking libbinutils:amd64 (2.42-4ubuntu2.3) ...
#8 11.25 Selecting previously unselected package libctf-nobfd0:amd64.
#8 11.25 Preparing to unpack .../016-libctf-nobfd0_2.42-4ubuntu2.3_amd64.deb ...
#8 11.25 Unpacking libctf-nobfd0:amd64 (2.42-4ubuntu2.3) ...
#8 11.26 Selecting previously unselected package libctf0:amd64.
#8 11.27 Preparing to unpack .../017-libctf0_2.42-4ubuntu2.3_amd64.deb ...
#8 11.27 Unpacking libctf0:amd64 (2.42-4ubuntu2.3) ...
#8 11.28 Selecting previously unselected package libgprofng0:amd64.
#8 11.28 Preparing to unpack .../018-libgprofng0_2.42-4ubuntu2.3_amd64.deb ...
#8 11.28 Unpacking libgprofng0:amd64 (2.42-4ubuntu2.3) ...
#8 11.31 Selecting previously unselected package binutils-x86-64-linux-gnu.
#8 11.31 Preparing to unpack .../019-binutils-x86-64-linux-gnu_2.42-4ubuntu2.3_amd64.deb ...
#8 11.32 Unpacking binutils-x86-64-linux-gnu (2.42-4ubuntu2.3) ...
#8 11.39 Selecting previously unselected package binutils.
#8 11.39 Preparing to unpack .../020-binutils_2.42-4ubuntu2.3_amd64.deb ...
#8 11.39 Unpacking binutils (2.42-4ubuntu2.3) ...
#8 11.41 Selecting previously unselected package libc-dev-bin.
#8 11.41 Preparing to unpack .../021-libc-dev-bin_2.39-0ubuntu8.4_amd64.deb ...
#8 11.41 Unpacking libc-dev-bin (2.39-0ubuntu8.4) ...
#8 11.42 Selecting previously unselected package linux-libc-dev:amd64.
#8 11.42 Preparing to unpack .../022-linux-libc-dev_6.8.0-54.56_amd64.deb ...
#8 11.42 Unpacking linux-libc-dev:amd64 (6.8.0-54.56) ...
#8 11.61 Selecting previously unselected package libcrypt-dev:amd64.
#8 11.61 Preparing to unpack .../023-libcrypt-dev_1%3a4.4.36-4build1_amd64.deb ...
#8 11.62 Unpacking libcrypt-dev:amd64 (1:4.4.36-4build1) ...
#8 11.64 Selecting previously unselected package rpcsvc-proto.
#8 11.64 Preparing to unpack .../024-rpcsvc-proto_1.4.2-0ubuntu7_amd64.deb ...
#8 11.64 Unpacking rpcsvc-proto (1.4.2-0ubuntu7) ...
#8 11.66 Selecting previously unselected package libc6-dev:amd64.
#8 11.66 Preparing to unpack .../025-libc6-dev_2.39-0ubuntu8.4_amd64.deb ...
#8 11.66 Unpacking libc6-dev:amd64 (2.39-0ubuntu8.4) ...
#8 11.79 Selecting previously unselected package gcc-13-base:amd64.
#8 11.79 Preparing to unpack .../026-gcc-13-base_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 11.79 Unpacking gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04) ...
#8 11.81 Selecting previously unselected package libisl23:amd64.
#8 11.81 Preparing to unpack .../027-libisl23_0.26-3build1.1_amd64.deb ...
#8 11.81 Unpacking libisl23:amd64 (0.26-3build1.1) ...
#8 11.83 Selecting previously unselected package libmpfr6:amd64.
#8 11.84 Preparing to unpack .../028-libmpfr6_4.2.1-1build1.1_amd64.deb ...
#8 11.84 Unpacking libmpfr6:amd64 (4.2.1-1build1.1) ...
#8 11.86 Selecting previously unselected package libmpc3:amd64.
#8 11.86 Preparing to unpack .../029-libmpc3_1.3.1-1build1.1_amd64.deb ...
#8 11.86 Unpacking libmpc3:amd64 (1.3.1-1build1.1) ...
#8 11.88 Selecting previously unselected package cpp-13-x86-64-linux-gnu.
#8 11.88 Preparing to unpack .../030-cpp-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 11.88 Unpacking cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ...
#8 12.01 Selecting previously unselected package cpp-13.
#8 12.01 Preparing to unpack .../031-cpp-13_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 12.01 Unpacking cpp-13 (13.3.0-6ubuntu2~24.04) ...
#8 12.02 Selecting previously unselected package cpp-x86-64-linux-gnu.
#8 12.02 Preparing to unpack .../032-cpp-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 12.03 Unpacking cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 12.04 Selecting previously unselected package cpp.
#8 12.04 Preparing to unpack .../033-cpp_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 12.05 Unpacking cpp (4:13.2.0-7ubuntu1) ...
#8 12.06 Selecting previously unselected package libcc1-0:amd64.
#8 12.06 Preparing to unpack .../034-libcc1-0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.06 Unpacking libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.08 Selecting previously unselected package libgomp1:amd64.
#8 12.08 Preparing to unpack .../035-libgomp1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.08 Unpacking libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.10 Selecting previously unselected package libitm1:amd64.
#8 12.10 Preparing to unpack .../036-libitm1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.10 Unpacking libitm1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.11 Selecting previously unselected package libatomic1:amd64.
#8 12.11 Preparing to unpack .../037-libatomic1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.11 Unpacking libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.13 Selecting previously unselected package libasan8:amd64.
#8 12.13 Preparing to unpack .../038-libasan8_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.13 Unpacking libasan8:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.18 Selecting previously unselected package liblsan0:amd64.
#8 12.19 Preparing to unpack .../039-liblsan0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.19 Unpacking liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.22 Selecting previously unselected package libtsan2:amd64.
#8 12.22 Preparing to unpack .../040-libtsan2_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.22 Unpacking libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.27 Selecting previously unselected package libubsan1:amd64.
#8 12.27 Preparing to unpack .../041-libubsan1_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.27 Unpacking libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.30 Selecting previously unselected package libhwasan0:amd64.
#8 12.30 Preparing to unpack .../042-libhwasan0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.30 Unpacking libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.34 Selecting previously unselected package libquadmath0:amd64.
#8 12.34 Preparing to unpack .../043-libquadmath0_14.2.0-4ubuntu2~24.04_amd64.deb ...
#8 12.34 Unpacking libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 12.36 Selecting previously unselected package libgcc-13-dev:amd64.
#8 12.36 Preparing to unpack .../044-libgcc-13-dev_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 12.36 Unpacking libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ...
#8 12.44 Selecting previously unselected package gcc-13-x86-64-linux-gnu.
#8 12.45 Preparing to unpack .../045-gcc-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 12.45 Unpacking gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ...
#8 12.69 Selecting previously unselected package gcc-13.
#8 12.69 Preparing to unpack .../046-gcc-13_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 12.69 Unpacking gcc-13 (13.3.0-6ubuntu2~24.04) ...
#8 12.71 Selecting previously unselected package gcc-x86-64-linux-gnu.
#8 12.71 Preparing to unpack .../047-gcc-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 12.71 Unpacking gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 12.72 Selecting previously unselected package gcc.
#8 12.73 Preparing to unpack .../048-gcc_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 12.73 Unpacking gcc (4:13.2.0-7ubuntu1) ...
#8 12.74 Selecting previously unselected package libstdc++-13-dev:amd64.
#8 12.74 Preparing to unpack .../049-libstdc++-13-dev_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 12.74 Unpacking libstdc++-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ...
#8 12.96 Selecting previously unselected package g++-13-x86-64-linux-gnu.
#8 12.96 Preparing to unpack .../050-g++-13-x86-64-linux-gnu_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 12.96 Unpacking g++-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ...
#8 13.10 Selecting previously unselected package g++-13.
#8 13.10 Preparing to unpack .../051-g++-13_13.3.0-6ubuntu2~24.04_amd64.deb ...
#8 13.10 Unpacking g++-13 (13.3.0-6ubuntu2~24.04) ...
#8 13.12 Selecting previously unselected package g++-x86-64-linux-gnu.
#8 13.12 Preparing to unpack .../052-g++-x86-64-linux-gnu_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 13.12 Unpacking g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 13.13 Selecting previously unselected package g++.
#8 13.13 Preparing to unpack .../053-g++_4%3a13.2.0-7ubuntu1_amd64.deb ...
#8 13.13 Unpacking g++ (4:13.2.0-7ubuntu1) ...
#8 13.15 Selecting previously unselected package make.
#8 13.15 Preparing to unpack .../054-make_4.3-4.1build2_amd64.deb ...
#8 13.15 Unpacking make (4.3-4.1build2) ...
#8 13.16 Selecting previously unselected package libdpkg-perl.
#8 13.16 Preparing to unpack .../055-libdpkg-perl_1.22.6ubuntu6.1_all.deb ...
#8 13.17 Unpacking libdpkg-perl (1.22.6ubuntu6.1) ...
#8 13.20 Selecting previously unselected package bzip2.
#8 13.20 Preparing to unpack .../056-bzip2_1.0.8-5.1build0.1_amd64.deb ...
#8 13.21 Unpacking bzip2 (1.0.8-5.1build0.1) ...
#8 13.22 Selecting previously unselected package patch.
#8 13.22 Preparing to unpack .../057-patch_2.7.6-7build3_amd64.deb ...
#8 13.22 Unpacking patch (2.7.6-7build3) ...
#8 13.24 Selecting previously unselected package lto-disabled-list.
#8 13.24 Preparing to unpack .../058-lto-disabled-list_47_all.deb ...
#8 13.24 Unpacking lto-disabled-list (47) ...
#8 13.25 Selecting previously unselected package dpkg-dev.
#8 13.26 Preparing to unpack .../059-dpkg-dev_1.22.6ubuntu6.1_all.deb ...
#8 13.26 Unpacking dpkg-dev (1.22.6ubuntu6.1) ...
#8 13.29 Selecting previously unselected package build-essential.
#8 13.29 Preparing to unpack .../060-build-essential_12.10ubuntu1_amd64.deb ...
#8 13.29 Unpacking build-essential (12.10ubuntu1) ...
#8 13.31 Selecting previously unselected package gpgconf.
#8 13.31 Preparing to unpack .../061-gpgconf_2.4.4-2ubuntu17_amd64.deb ...
#8 13.31 Unpacking gpgconf (2.4.4-2ubuntu17) ...
#8 13.33 Selecting previously unselected package libksba8:amd64.
#8 13.33 Preparing to unpack .../062-libksba8_1.6.6-1build1_amd64.deb ...
#8 13.33 Unpacking libksba8:amd64 (1.6.6-1build1) ...
#8 13.34 Selecting previously unselected package libsasl2-modules-db:amd64.
#8 13.35 Preparing to unpack .../063-libsasl2-modules-db_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 13.35 Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 13.36 Selecting previously unselected package libsasl2-2:amd64.
#8 13.36 Preparing to unpack .../064-libsasl2-2_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 13.36 Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 13.38 Selecting previously unselected package libldap2:amd64.
#8 13.38 Preparing to unpack .../065-libldap2_2.6.7+dfsg-1~exp1ubuntu8.2_amd64.deb ...
#8 13.38 Unpacking libldap2:amd64 (2.6.7+dfsg-1~exp1ubuntu8.2) ...
#8 13.40 Selecting previously unselected package dirmngr.
#8 13.40 Preparing to unpack .../066-dirmngr_2.4.4-2ubuntu17_amd64.deb ...
#8 13.41 Unpacking dirmngr (2.4.4-2ubuntu17) ...
#8 13.44 Selecting previously unselected package libfakeroot:amd64.
#8 13.44 Preparing to unpack .../067-libfakeroot_1.33-1_amd64.deb ...
#8 13.44 Unpacking libfakeroot:amd64 (1.33-1) ...
#8 13.46 Selecting previously unselected package fakeroot.
#8 13.46 Preparing to unpack .../068-fakeroot_1.33-1_amd64.deb ...
#8 13.46 Unpacking fakeroot (1.33-1) ...
#8 13.48 Selecting previously unselected package fonts-dejavu-mono.
#8 13.48 Preparing to unpack .../069-fonts-dejavu-mono_2.37-8_all.deb ...
#8 13.48 Unpacking fonts-dejavu-mono (2.37-8) ...
#8 13.50 Selecting previously unselected package fonts-dejavu-core.
#8 13.51 Preparing to unpack .../070-fonts-dejavu-core_2.37-8_all.deb ...
#8 13.52 Unpacking fonts-dejavu-core (2.37-8) ...
#8 13.55 Selecting previously unselected package fontconfig-config.
#8 13.55 Preparing to unpack .../071-fontconfig-config_2.15.0-1.1ubuntu2_amd64.deb ...
#8 13.68 Unpacking fontconfig-config (2.15.0-1.1ubuntu2) ...
#8 13.70 Selecting previously unselected package gnupg-utils.
#8 13.70 Preparing to unpack .../072-gnupg-utils_2.4.4-2ubuntu17_amd64.deb ...
#8 13.70 Unpacking gnupg-utils (2.4.4-2ubuntu17) ...
#8 13.72 Selecting previously unselected package gpg.
#8 13.72 Preparing to unpack .../073-gpg_2.4.4-2ubuntu17_amd64.deb ...
#8 13.72 Unpacking gpg (2.4.4-2ubuntu17) ...
#8 13.74 Selecting previously unselected package pinentry-curses.
#8 13.74 Preparing to unpack .../074-pinentry-curses_1.2.1-3ubuntu5_amd64.deb ...
#8 13.74 Unpacking pinentry-curses (1.2.1-3ubuntu5) ...
#8 13.76 Selecting previously unselected package gpg-agent.
#8 13.76 Preparing to unpack .../075-gpg-agent_2.4.4-2ubuntu17_amd64.deb ...
#8 13.76 Unpacking gpg-agent (2.4.4-2ubuntu17) ...
#8 13.78 Selecting previously unselected package gpgsm.
#8 13.78 Preparing to unpack .../076-gpgsm_2.4.4-2ubuntu17_amd64.deb ...
#8 13.78 Unpacking gpgsm (2.4.4-2ubuntu17) ...
#8 13.80 Selecting previously unselected package keyboxd.
#8 13.80 Preparing to unpack .../077-keyboxd_2.4.4-2ubuntu17_amd64.deb ...
#8 13.80 Unpacking keyboxd (2.4.4-2ubuntu17) ...
#8 13.82 Selecting previously unselected package gnupg.
#8 13.82 Preparing to unpack .../078-gnupg_2.4.4-2ubuntu17_all.deb ...
#8 13.82 Unpacking gnupg (2.4.4-2ubuntu17) ...
#8 13.84 Selecting previously unselected package gnupg-l10n.
#8 13.84 Preparing to unpack .../079-gnupg-l10n_2.4.4-2ubuntu17_all.deb ...
#8 13.84 Unpacking gnupg-l10n (2.4.4-2ubuntu17) ...
#8 13.86 Selecting previously unselected package gpg-wks-client.
#8 13.86 Preparing to unpack .../080-gpg-wks-client_2.4.4-2ubuntu17_amd64.deb ...
#8 13.86 Unpacking gpg-wks-client (2.4.4-2ubuntu17) ...
#8 13.88 Selecting previously unselected package javascript-common.
#8 13.88 Preparing to unpack .../081-javascript-common_11+nmu1_all.deb ...
#8 13.89 Unpacking javascript-common (11+nmu1) ...
#8 13.91 Selecting previously unselected package libalgorithm-diff-perl.
#8 13.91 Preparing to unpack .../082-libalgorithm-diff-perl_1.201-1_all.deb ...
#8 13.91 Unpacking libalgorithm-diff-perl (1.201-1) ...
#8 13.92 Selecting previously unselected package libalgorithm-diff-xs-perl:amd64.
#8 13.93 Preparing to unpack .../083-libalgorithm-diff-xs-perl_0.04-8build3_amd64.deb ...
#8 13.93 Unpacking libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
#8 13.95 Selecting previously unselected package libalgorithm-merge-perl.
#8 13.96 Preparing to unpack .../084-libalgorithm-merge-perl_0.08-5_all.deb ...
#8 13.96 Unpacking libalgorithm-merge-perl (0.08-5) ...
#8 13.97 Selecting previously unselected package libaom3:amd64.
#8 13.97 Preparing to unpack .../085-libaom3_3.8.2-2ubuntu0.1_amd64.deb ...
#8 13.97 Unpacking libaom3:amd64 (3.8.2-2ubuntu0.1) ...
#8 14.01 Selecting previously unselected package libbrotli1:amd64.
#8 14.01 Preparing to unpack .../086-libbrotli1_1.1.0-2build2_amd64.deb ...
#8 14.01 Unpacking libbrotli1:amd64 (1.1.0-2build2) ...
#8 14.03 Selecting previously unselected package libfreetype6:amd64.
#8 14.03 Preparing to unpack .../087-libfreetype6_2.13.2+dfsg-1build3_amd64.deb ...
#8 14.03 Unpacking libfreetype6:amd64 (2.13.2+dfsg-1build3) ...
#8 14.05 Selecting previously unselected package libfontconfig1:amd64.
#8 14.06 Preparing to unpack .../088-libfontconfig1_2.15.0-1.1ubuntu2_amd64.deb ...
#8 14.06 Unpacking libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
#8 14.08 Selecting previously unselected package libsharpyuv0:amd64.
#8 14.08 Preparing to unpack .../089-libsharpyuv0_1.3.2-0.4build3_amd64.deb ...
#8 14.08 Unpacking libsharpyuv0:amd64 (1.3.2-0.4build3) ...
#8 14.09 Selecting previously unselected package libheif-plugin-aomdec:amd64.
#8 14.09 Preparing to unpack .../090-libheif-plugin-aomdec_1.17.6-1ubuntu4.1_amd64.deb ...
#8 14.10 Unpacking libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4.1) ...
#8 14.11 Selecting previously unselected package libde265-0:amd64.
#8 14.11 Preparing to unpack .../091-libde265-0_1.0.15-1build3_amd64.deb ...
#8 14.11 Unpacking libde265-0:amd64 (1.0.15-1build3) ...
#8 14.13 Selecting previously unselected package libheif-plugin-libde265:amd64.
#8 14.13 Preparing to unpack .../092-libheif-plugin-libde265_1.17.6-1ubuntu4.1_amd64.deb ...
#8 14.13 Unpacking libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4.1) ...
#8 14.15 Selecting previously unselected package libheif1:amd64.
#8 14.15 Preparing to unpack .../093-libheif1_1.17.6-1ubuntu4.1_amd64.deb ...
#8 14.15 Unpacking libheif1:amd64 (1.17.6-1ubuntu4.1) ...
#8 14.17 Selecting previously unselected package libjpeg-turbo8:amd64.
#8 14.17 Preparing to unpack .../094-libjpeg-turbo8_2.1.5-2ubuntu2_amd64.deb ...
#8 14.17 Unpacking libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
#8 14.19 Selecting previously unselected package libjpeg8:amd64.
#8 14.19 Preparing to unpack .../095-libjpeg8_8c-2ubuntu11_amd64.deb ...
#8 14.19 Unpacking libjpeg8:amd64 (8c-2ubuntu11) ...
#8 14.20 Selecting previously unselected package libdeflate0:amd64.
#8 14.20 Preparing to unpack .../096-libdeflate0_1.19-1build1.1_amd64.deb ...
#8 14.20 Unpacking libdeflate0:amd64 (1.19-1build1.1) ...
#8 14.22 Selecting previously unselected package libjbig0:amd64.
#8 14.22 Preparing to unpack .../097-libjbig0_2.1-6.1ubuntu2_amd64.deb ...
#8 14.22 Unpacking libjbig0:amd64 (2.1-6.1ubuntu2) ...
#8 14.24 Selecting previously unselected package liblerc4:amd64.
#8 14.24 Preparing to unpack .../098-liblerc4_4.0.0+ds-4ubuntu2_amd64.deb ...
#8 14.24 Unpacking liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
#8 14.26 Selecting previously unselected package libwebp7:amd64.
#8 14.27 Preparing to unpack .../099-libwebp7_1.3.2-0.4build3_amd64.deb ...
#8 14.27 Unpacking libwebp7:amd64 (1.3.2-0.4build3) ...
#8 14.29 Selecting previously unselected package libtiff6:amd64.
#8 14.29 Preparing to unpack .../100-libtiff6_4.5.1+git230720-4ubuntu2.2_amd64.deb ...
#8 14.29 Unpacking libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
#8 14.30 Selecting previously unselected package libxpm4:amd64.
#8 14.31 Preparing to unpack .../101-libxpm4_1%3a3.5.17-1build2_amd64.deb ...
#8 14.31 Unpacking libxpm4:amd64 (1:3.5.17-1build2) ...
#8 14.32 Selecting previously unselected package libgd3:amd64.
#8 14.32 Preparing to unpack .../102-libgd3_2.3.3-9ubuntu5_amd64.deb ...
#8 14.32 Unpacking libgd3:amd64 (2.3.3-9ubuntu5) ...
#8 14.34 Selecting previously unselected package libc-devtools.
#8 14.34 Preparing to unpack .../103-libc-devtools_2.39-0ubuntu8.4_amd64.deb ...
#8 14.34 Unpacking libc-devtools (2.39-0ubuntu8.4) ...
#8 14.36 Selecting previously unselected package libexpat1-dev:amd64.
#8 14.36 Preparing to unpack .../104-libexpat1-dev_2.6.1-2ubuntu0.2_amd64.deb ...
#8 14.36 Unpacking libexpat1-dev:amd64 (2.6.1-2ubuntu0.2) ...
#8 14.38 Selecting previously unselected package libfile-fcntllock-perl.
#8 14.38 Preparing to unpack .../105-libfile-fcntllock-perl_0.22-4ubuntu5_amd64.deb ...
#8 14.38 Unpacking libfile-fcntllock-perl (0.22-4ubuntu5) ...
#8 14.40 Selecting previously unselected package libheif-plugin-aomenc:amd64.
#8 14.40 Preparing to unpack .../106-libheif-plugin-aomenc_1.17.6-1ubuntu4.1_amd64.deb ...
#8 14.40 Unpacking libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4.1) ...
#8 14.42 Selecting previously unselected package libjs-jquery.
#8 14.42 Preparing to unpack .../107-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
#8 14.42 Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
#8 14.44 Selecting previously unselected package libjs-underscore.
#8 14.44 Preparing to unpack .../108-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ...
#8 14.44 Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
#8 14.46 Selecting previously unselected package libjs-sphinxdoc.
#8 14.46 Preparing to unpack .../109-libjs-sphinxdoc_7.2.6-6_all.deb ...
#8 14.46 Unpacking libjs-sphinxdoc (7.2.6-6) ...
#8 14.48 Selecting previously unselected package libldap-common.
#8 14.48 Preparing to unpack .../110-libldap-common_2.6.7+dfsg-1~exp1ubuntu8.2_all.deb ...
#8 14.48 Unpacking libldap-common (2.6.7+dfsg-1~exp1ubuntu8.2) ...
#8 14.49 Selecting previously unselected package libpython3.12t64:amd64.
#8 14.50 Preparing to unpack .../111-libpython3.12t64_3.12.3-1ubuntu0.5_amd64.deb ...
#8 14.50 Unpacking libpython3.12t64:amd64 (3.12.3-1ubuntu0.5) ...
#8 14.54 Selecting previously unselected package zlib1g-dev:amd64.
#8 14.54 Preparing to unpack .../112-zlib1g-dev_1%3a1.3.dfsg-3.1ubuntu2.1_amd64.deb ...
#8 14.55 Unpacking zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 14.56 Selecting previously unselected package libpython3.12-dev:amd64.
#8 14.56 Preparing to unpack .../113-libpython3.12-dev_3.12.3-1ubuntu0.5_amd64.deb ...
#8 14.56 Unpacking libpython3.12-dev:amd64 (3.12.3-1ubuntu0.5) ...
#8 14.71 Selecting previously unselected package libpython3-dev:amd64.
#8 14.71 Preparing to unpack .../114-libpython3-dev_3.12.3-0ubuntu2_amd64.deb ...
#8 14.71 Unpacking libpython3-dev:amd64 (3.12.3-0ubuntu2) ...
#8 14.73 Selecting previously unselected package libsasl2-modules:amd64.
#8 14.73 Preparing to unpack .../115-libsasl2-modules_2.1.28+dfsg1-5ubuntu3.1_amd64.deb ...
#8 14.73 Unpacking libsasl2-modules:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 14.75 Selecting previously unselected package manpages-dev.
#8 14.75 Preparing to unpack .../116-manpages-dev_6.7-2_all.deb ...
#8 14.76 Unpacking manpages-dev (6.7-2) ...
#8 14.84 Selecting previously unselected package python3.12-dev.
#8 14.85 Preparing to unpack .../117-python3.12-dev_3.12.3-1ubuntu0.5_amd64.deb ...
#8 14.85 Unpacking python3.12-dev (3.12.3-1ubuntu0.5) ...
#8 14.86 Selecting previously unselected package python3-dev.
#8 14.86 Preparing to unpack .../118-python3-dev_3.12.3-0ubuntu2_amd64.deb ...
#8 14.86 Unpacking python3-dev (3.12.3-0ubuntu2) ...
#8 14.88 Selecting previously unselected package python3-setuptools.
#8 14.88 Preparing to unpack .../119-python3-setuptools_68.1.2-2ubuntu1.1_all.deb ...
#8 14.88 Unpacking python3-setuptools (68.1.2-2ubuntu1.1) ...
#8 14.93 Selecting previously unselected package python3-wheel.
#8 14.94 Preparing to unpack .../120-python3-wheel_0.42.0-2_all.deb ...
#8 14.94 Unpacking python3-wheel (0.42.0-2) ...
#8 14.96 Selecting previously unselected package python3-pip.
#8 14.96 Preparing to unpack .../121-python3-pip_24.0+dfsg-1ubuntu1.1_all.deb ...
#8 14.96 Unpacking python3-pip (24.0+dfsg-1ubuntu1.1) ...
#8 15.10 Setting up libksba8:amd64 (1.6.6-1build1) ...
#8 15.10 Setting up pinentry-curses (1.2.1-3ubuntu5) ...
#8 15.11 Setting up media-types (10.1.0) ...
#8 15.12 Setting up javascript-common (11+nmu1) ...
#8 15.13 Setting up libsharpyuv0:amd64 (1.3.2-0.4build3) ...
#8 15.14 Setting up libaom3:amd64 (3.8.2-2ubuntu0.1) ...
#8 15.14 Setting up libxau6:amd64 (1:1.0.9-1build6) ...
#8 15.14 Setting up lto-disabled-list (47) ...
#8 15.14 Setting up liblerc4:amd64 (4.0.0+ds-4ubuntu2) ...
#8 15.15 Setting up libgdbm6t64:amd64 (1.23-5.1build1) ...
#8 15.15 Setting up libgdbm-compat4t64:amd64 (1.23-5.1build1) ...
#8 15.15 Setting up manpages (6.7-2) ...
#8 15.15 Setting up libbrotli1:amd64 (1.1.0-2build2) ...
#8 15.16 Setting up libsqlite3-0:amd64 (3.45.1-1ubuntu2.1) ...
#8 15.16 Setting up libsasl2-modules:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 15.17 Setting up binutils-common:amd64 (2.42-4ubuntu2.3) ...
#8 15.17 Setting up libdeflate0:amd64 (1.19-1build1.1) ...
#8 15.17 Setting up linux-libc-dev:amd64 (6.8.0-54.56) ...
#8 15.17 Setting up libctf-nobfd0:amd64 (2.42-4ubuntu2.3) ...
#8 15.18 Setting up libgomp1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.18 Setting up bzip2 (1.0.8-5.1build0.1) ...
#8 15.18 Setting up libldap-common (2.6.7+dfsg-1~exp1ubuntu8.2) ...
#8 15.19 Setting up libjbig0:amd64 (2.1-6.1ubuntu2) ...
#8 15.19 Setting up libsframe1:amd64 (2.42-4ubuntu2.3) ...
#8 15.19 Setting up libfakeroot:amd64 (1.33-1) ...
#8 15.20 Setting up libjansson4:amd64 (2.14-2build2) ...
#8 15.20 Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 15.20 Setting up tzdata (2024b-0ubuntu0.24.04.1) ...
#8 15.27 debconf: unable to initialize frontend: Dialog
#8 15.27 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 15.27 debconf: falling back to frontend: Readline
#8 15.28 debconf: unable to initialize frontend: Readline
#8 15.28 debconf: (This frontend requires a controlling tty.)
#8 15.28 debconf: falling back to frontend: Teletype
#8 15.30 Configuring tzdata
#8 15.30 ------------------
#8 15.30 
#8 15.30 Please select the geographic area in which you live. Subsequent configuration
#8 15.30 questions will narrow this down by presenting a list of cities, representing
#8 15.30 the time zones in which they are located.
#8 15.30 
#8 15.30   1. Africa      4. Arctic    7. Australia  10. Pacific
#8 15.30   2. America     5. Asia      8. Europe     11. Etc
#8 15.30   3. Antarctica  6. Atlantic  9. Indian     12. Legacy
#8 15.30 Geographic area: 
#8 15.30 Use of uninitialized value $_[1] in join or string at /usr/share/perl5/Debconf/DbDriver/Stack.pm line 112.
#8 15.31 
#8 15.31 Current default time zone: '/UTC'
#8 15.31 Local time is now:      Wed Feb 26 15:06:26 UTC 2025.
#8 15.31 Universal Time is now:  Wed Feb 26 15:06:26 UTC 2025.
#8 15.31 Run 'dpkg-reconfigure tzdata' if you wish to change it.
#8 15.31 
#8 15.31 Use of uninitialized value $val in substitution (s///) at /usr/share/perl5/Debconf/Format/822.pm line 84, <GEN6> line 4.
#8 15.31 Use of uninitialized value $val in concatenation (.) or string at /usr/share/perl5/Debconf/Format/822.pm line 85, <GEN6> line 4.
#8 15.32 Setting up fakeroot (1.33-1) ...
#8 15.32 update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
#8 15.32 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 15.32 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 15.32 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 15.32 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 15.32 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 15.32 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 15.32 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 15.32 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 15.33 Setting up rpcsvc-proto (1.4.2-0ubuntu7) ...
#8 15.33 Setting up gcc-13-base:amd64 (13.3.0-6ubuntu2~24.04) ...
#8 15.33 Setting up libx11-data (2:1.8.7-1build1) ...
#8 15.34 Setting up make (4.3-4.1build2) ...
#8 15.34 Setting up libmpfr6:amd64 (4.2.1-1build1.1) ...
#8 15.34 Setting up gnupg-l10n (2.4.4-2ubuntu17) ...
#8 15.35 Setting up xz-utils (5.6.1+really5.4.5-1build0.1) ...
#8 15.35 update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
#8 15.35 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 15.35 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 15.35 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 15.35 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 15.35 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 15.35 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 15.35 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 15.35 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 15.35 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 15.35 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 15.36 Setting up perl-modules-5.38 (5.38.2-3.2build2.1) ...
#8 15.36 Setting up libquadmath0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.36 Setting up fonts-dejavu-mono (2.37-8) ...
#8 15.37 Setting up libpng16-16t64:amd64 (1.6.43-5build1) ...
#8 15.38 Setting up libmpc3:amd64 (1.3.1-1build1.1) ...
#8 15.38 Setting up libatomic1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.38 Setting up patch (2.7.6-7build3) ...
#8 15.39 Setting up fonts-dejavu-core (2.37-8) ...
#8 15.41 Setting up libjpeg-turbo8:amd64 (2.1.5-2ubuntu2) ...
#8 15.41 Setting up libsasl2-2:amd64 (2.1.28+dfsg1-5ubuntu3.1) ...
#8 15.42 Setting up libwebp7:amd64 (1.3.2-0.4build3) ...
#8 15.42 Setting up libubsan1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.42 Setting up libhwasan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.42 Setting up libcrypt-dev:amd64 (1:4.4.36-4build1) ...
#8 15.43 Setting up libasan8:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.43 Setting up netbase (6.4) ...
#8 15.44 Setting up libperl5.38t64:amd64 (5.38.2-3.2build2.1) ...
#8 15.44 Setting up libtsan2:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.45 Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
#8 15.46 Setting up libbinutils:amd64 (2.42-4ubuntu2.3) ...
#8 15.46 Setting up libisl23:amd64 (0.26-3build1.1) ...
#8 15.46 Setting up libde265-0:amd64 (1.0.15-1build3) ...
#8 15.47 Setting up libc-dev-bin (2.39-0ubuntu8.4) ...
#8 15.47 Setting up openssl (3.0.13-0ubuntu3.5) ...
#8 15.48 Setting up libbsd0:amd64 (0.12.1-1build1.1) ...
#8 15.48 Setting up readline-common (8.2-4build1) ...
#8 15.48 Setting up libcc1-0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.49 Setting up libldap2:amd64 (2.6.7+dfsg-1~exp1ubuntu8.2) ...
#8 15.49 Setting up liblocale-gettext-perl (1.07-6ubuntu5) ...
#8 15.49 Setting up liblsan0:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.49 Setting up libitm1:amd64 (14.2.0-4ubuntu2~24.04) ...
#8 15.50 Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
#8 15.50 Setting up gnupg-utils (2.4.4-2ubuntu17) ...
#8 15.50 Setting up libctf0:amd64 (2.42-4ubuntu2.3) ...
#8 15.51 Setting up libjpeg8:amd64 (8c-2ubuntu11) ...
#8 15.51 Setting up manpages-dev (6.7-2) ...
#8 15.51 Setting up libxdmcp6:amd64 (1:1.1.3-0ubuntu6) ...
#8 15.52 Setting up libxcb1:amd64 (1.15-1ubuntu2) ...
#8 15.52 Setting up cpp-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ...
#8 15.52 Setting up fontconfig-config (2.15.0-1.1ubuntu2) ...
#8 15.66 Setting up ca-certificates (20240203) ...
#8 15.73 debconf: unable to initialize frontend: Dialog
#8 15.73 debconf: (TERM is not set, so the dialog frontend is not usable.)
#8 15.73 debconf: falling back to frontend: Readline
#8 15.74 debconf: unable to initialize frontend: Readline
#8 15.74 debconf: (This frontend requires a controlling tty.)
#8 15.74 debconf: falling back to frontend: Teletype
#8 16.13 Updating certificates in /etc/ssl/certs...
#8 16.66 146 added, 0 removed; done.
#8 16.67 Setting up perl (5.38.2-3.2build2.1) ...
#8 16.69 Setting up libgprofng0:amd64 (2.42-4ubuntu2.3) ...
#8 16.69 Setting up libfreetype6:amd64 (2.13.2+dfsg-1build3) ...
#8 16.69 Setting up libjs-sphinxdoc (7.2.6-6) ...
#8 16.69 Setting up libdpkg-perl (1.22.6ubuntu6.1) ...
#8 16.70 Setting up libreadline8t64:amd64 (8.2-4build1) ...
#8 16.70 Setting up libgcc-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ...
#8 16.70 Setting up libtiff6:amd64 (4.5.1+git230720-4ubuntu2.2) ...
#8 16.71 Setting up gpgconf (2.4.4-2ubuntu17) ...
#8 16.71 Setting up libc6-dev:amd64 (2.39-0ubuntu8.4) ...
#8 16.71 Setting up libx11-6:amd64 (2:1.8.7-1build1) ...
#8 16.72 Setting up libfontconfig1:amd64 (2.15.0-1.1ubuntu2) ...
#8 16.72 Setting up gpg (2.4.4-2ubuntu17) ...
#8 16.72 Setting up libstdc++-13-dev:amd64 (13.3.0-6ubuntu2~24.04) ...
#8 16.72 Setting up binutils-x86-64-linux-gnu (2.42-4ubuntu2.3) ...
#8 16.73 Setting up cpp-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 16.73 Setting up gpg-agent (2.4.4-2ubuntu17) ...
#8 17.13 Setting up libpython3.12-stdlib:amd64 (3.12.3-1ubuntu0.5) ...
#8 17.14 Setting up libxpm4:amd64 (1:3.5.17-1build2) ...
#8 17.14 Setting up cpp-13 (13.3.0-6ubuntu2~24.04) ...
#8 17.14 Setting up libfile-fcntllock-perl (0.22-4ubuntu5) ...
#8 17.15 Setting up libalgorithm-diff-perl (1.201-1) ...
#8 17.15 Setting up gcc-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ...
#8 17.15 Setting up python3.12 (3.12.3-1ubuntu0.5) ...
#8 17.92 Setting up gpgsm (2.4.4-2ubuntu17) ...
#8 17.92 Setting up binutils (2.42-4ubuntu2.3) ...
#8 17.92 Setting up dpkg-dev (1.22.6ubuntu6.1) ...
#8 17.93 Setting up libpython3.12t64:amd64 (3.12.3-1ubuntu0.5) ...
#8 17.93 Setting up dirmngr (2.4.4-2ubuntu17) ...
#8 18.05 Setting up libexpat1-dev:amd64 (2.6.1-2ubuntu0.2) ...
#8 18.05 Setting up gcc-13 (13.3.0-6ubuntu2~24.04) ...
#8 18.05 Setting up keyboxd (2.4.4-2ubuntu17) ...
#8 18.16 Setting up zlib1g-dev:amd64 (1:1.3.dfsg-3.1ubuntu2.1) ...
#8 18.16 Setting up cpp (4:13.2.0-7ubuntu1) ...
#8 18.17 Setting up gnupg (2.4.4-2ubuntu17) ...
#8 18.17 Setting up libalgorithm-diff-xs-perl:amd64 (0.04-8build3) ...
#8 18.18 Setting up libpython3-stdlib:amd64 (3.12.3-0ubuntu2) ...
#8 18.18 Setting up libalgorithm-merge-perl (0.08-5) ...
#8 18.18 Setting up g++-13-x86-64-linux-gnu (13.3.0-6ubuntu2~24.04) ...
#8 18.18 Setting up gcc-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 18.19 Setting up gpg-wks-client (2.4.4-2ubuntu17) ...
#8 18.19 Setting up python3 (3.12.3-0ubuntu2) ...
#8 18.20 running python rtupdate hooks for python3.12...
#8 18.20 running python post-rtupdate hooks for python3.12...
#8 18.28 Setting up libpython3.12-dev:amd64 (3.12.3-1ubuntu0.5) ...
#8 18.28 Setting up python3-wheel (0.42.0-2) ...
#8 18.40 Setting up gcc (4:13.2.0-7ubuntu1) ...
#8 18.41 Setting up python3.12-dev (3.12.3-1ubuntu0.5) ...
#8 18.41 Setting up g++-x86-64-linux-gnu (4:13.2.0-7ubuntu1) ...
#8 18.42 Setting up python3-pkg-resources (68.1.2-2ubuntu1.1) ...
#8 18.59 Setting up g++-13 (13.3.0-6ubuntu2~24.04) ...
#8 18.59 Setting up libpython3-dev:amd64 (3.12.3-0ubuntu2) ...
#8 18.60 Setting up python3-setuptools (68.1.2-2ubuntu1.1) ...
#8 18.99 Setting up python3-dev (3.12.3-0ubuntu2) ...
#8 19.00 Setting up python3-pip (24.0+dfsg-1ubuntu1.1) ...
#8 20.04 Setting up g++ (4:13.2.0-7ubuntu1) ...
#8 20.04 update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
#8 20.04 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 20.05 Setting up build-essential (12.10ubuntu1) ...
#8 20.05 Setting up libheif1:amd64 (1.17.6-1ubuntu4.1) ...
#8 20.05 Setting up libgd3:amd64 (2.3.3-9ubuntu5) ...
#8 20.06 Setting up libc-devtools (2.39-0ubuntu8.4) ...
#8 20.06 Setting up libheif-plugin-aomdec:amd64 (1.17.6-1ubuntu4.1) ...
#8 20.06 Setting up libheif-plugin-libde265:amd64 (1.17.6-1ubuntu4.1) ...
#8 20.06 Setting up libheif-plugin-aomenc:amd64 (1.17.6-1ubuntu4.1) ...
#8 20.07 Processing triggers for libc-bin (2.39-0ubuntu8.4) ...
#8 20.08 Processing triggers for ca-certificates (20240203) ...
#8 20.09 Updating certificates in /etc/ssl/certs...
#8 20.51 0 added, 0 removed; done.
#8 20.51 Running hooks in /etc/ca-certificates/update.d...
#8 20.51 done.
#8 DONE 21.4s

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