1
0
forked from brl/citadel

4 Commits

34 changed files with 596 additions and 134 deletions

View File

@ -1,8 +1,6 @@
DEPENDS:append = " citadel-tools-native mtools-native cryptsetup-native coreutils-native"
DEPENDS:append = " make-ext4fs-native citadel-tools-native mtools-native cryptsetup-native coreutils-native"
# Block size must be 4096 or dm-verity won't work
EXTRA_IMAGECMD:ext4 = "-i 4096 -b 4096"
IMAGE_FSTYPES = "ext4"
IMAGE_OVERHEAD_FACTOR = "1.2"
@ -16,7 +14,7 @@ do_citadel_mkimage() {
image-type = "${CITADEL_IMAGE_TYPE}"
channel = "${CITADEL_IMAGE_CHANNEL}"
version = ${CITADEL_IMAGE_VERSION}
timestamp = "${DATETIME}"
timestamp = "${SOURCE_DATE_EPOCH}"
source = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.ext4"
compress = ${CITADEL_IMAGE_COMPRESS}
EOF

View File

@ -0,0 +1,51 @@
inherit image_types
python set_image_size () {
import math
print("LOCAL set_image_size")
blocksize = 50000
rootfs_size = get_rootfs_size(d)
print("LOCAL rootfs_size")
rootfs_size = math.ceil(rootfs_size / blocksize) * blocksize
print("LOCAL rootfs_size")
d.setVar('ROOTFS_SIZE', str(rootfs_size))
d.setVarFlag('ROOTFS_SIZE', 'export', '1')
}
make_repro_ext4fs() {
fstype=ext4
extra_imagecmd=""
if [ $# -gt 1 ]; then
shift
extra_imagecmd=$@
fi
# If generating an empty image the size of the sparse block should be large
# enough to allocate an ext4 filesystem using 4096 bytes per inode, this is
# about 60K, so dd needs a minimum count of 60, with bs=1024 (bytes per IO)
eval local COUNT=\"0\"
eval local MIN_COUNT=\"60\"
if [ $ROOTFS_SIZE -lt $MIN_COUNT ]; then
eval COUNT=\"$MIN_COUNT\"
fi
# Create a sparse image block
bbdebug 1 Executing "dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype count=1 bs=1024"
bbdebug 1 "ROOTFS_SIZE: `${ROOTFS_SIZE}`"
bbdebug 1 Executing "make_ext4fs -vl ${ROOTFS_SIZE}k -T "1712775988" ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype ${IMAGE_ROOTFS}"
make_ext4fs -vl ${ROOTFS_SIZE}k -T "1712775988" ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype ${IMAGE_ROOTFS}
# Error codes 0-3 indicate successfull operation of fsck (no errors or errors corrected)
fsck.ext4 -pvD ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype || [ $? -le 3 ]
# adding f makes it non-reproducible
# delete the lost+found dir's contents
# mount ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype /tmp/image/
# find "-iname" /tmp/image/lost+found -type d -exec rm -r "{}" \;
}

View File

@ -38,6 +38,16 @@
#MACHINE ??= "qemux86-64"
MACHINE ?= "intel-corei7-64"
#
# Binary Reproducibility
#
BUILD_REPRODUCIBLE_BINARIES = "1"
export PYTHONHASHSEED = "0"
export PERL_HASH_SEED = "0"
export TZ = 'UTC'
export SOURCE_DATE_EPOCH ??= "1718285985"
REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1712775988"
DEFAULT_TIMEZONE = "America/New_York"
DEPLOY_DIR_IMAGE = "${TOPDIR}/images"

View File

@ -0,0 +1,4 @@
# For blueprint-compiler-native to work
EXTRA_OEMESON:remove:class-native = "-Dintrospection=disabled"
EXTRA_OEMESON:append:class-native = " -Dintrospection=enabled"

View File

@ -0,0 +1,4 @@
# For blueprint-compiler-native to work
EXTRA_OEMESON:remove:class-native = "-Dintrospection=disabled"
EXTRA_OEMESON:append:class-native = " -Dintrospection=enabled"

View File

@ -1,2 +1,6 @@
# Remove this dependency so it doesn't get dragged in with gtk. These icons are in citadel-extra-image now
GTKBASE_RRECOMMENDS:remove = "adwaita-icon-theme-symbolic"
# For blueprint-compiler-native to work
EXTRA_OEMESON:remove:class-native = "-Dintrospection=disabled"
EXTRA_OEMESON:append:class-native = " -Dintrospection=enabled"

View File

@ -0,0 +1,4 @@
# For blueprint-compiler-native to work
EXTRA_OEMESON:remove:class-native = "-Dintrospection=disabled"
EXTRA_OEMESON:append:class-native = " -Dintrospection=enabled"

View File

@ -0,0 +1,6 @@
# For blueprint-compiler-native to work
EXTRA_OEMESON:remove:class-native = "-Dintrospection=disabled"
EXTRA_OEMESON:append:class-native = " -Dintrospection=enabled"
BBCLASSEXTEND = "native"

View File

@ -0,0 +1,4 @@
# For blueprint-compiler-native to work
EXTRA_OEMESON:remove:class-native = "-Dintrospection=disabled"
EXTRA_OEMESON:append:class-native = " -Dintrospection=enabled"

View File

@ -0,0 +1,21 @@
LICENSE="CLOSED"
SRC_URI = "gitsm://git.subgraph.com/brl/citadel-realms.git;protocol=https;branch=master"
PV = "1.0"
SRCREV = "048002a617d643b61774d69edee1526d4c7adbdf"
S = "${WORKDIR}/git"
APPNAME="com.subgraph.citadel.Realms"
GTKIC_VERSION = "4"
FILES:${PN} += "${datadir}/icons \
${datadir}/${APPNAME} \
"
DEPENDS = "blueprint-compiler-native gjs gtk4 gtk4-native libadwaita-native"
inherit meson gtk-icon-cache

View File

@ -15,7 +15,7 @@ do_realmfs_mkimage() {
image-type = "realmfs"
channel = "${CITADEL_IMAGE_CHANNEL}"
version = 1
timestamp = "${DATETIME}"
timestamp = "${SOURCE_DATE_EPOCH}"
source = "${REALMFS_DIR}/citadel-realmfs.ext4"
realmfs-name = "base"
compress = true

View File

@ -18,7 +18,8 @@ CITADEL_IMAGE_VERSION = "${CITADEL_IMAGE_VERSION_extra}"
CITADEL_IMAGE_TYPE = "extra"
require citadel-image.inc
inherit citadel-image
inherit citadel-image make_repro_ext4fs
IMAGE_CMD:ext4 = "make_repro_ext4fs"
ROOTFS_POSTPROCESS_COMMAND += "write_manifest_file; "

View File

@ -139,8 +139,51 @@ write_boot_image() {
fi
bbdebug 1 Creating ${IMAGE_SIZE} block msdos image at ${IMAGE_PATH}
mkdosfs -n boot -C ${IMAGE_PATH} ${IMAGE_SIZE}
mcopy -i ${IMAGE_PATH} -s ${IMAGE_ROOTFS}/* ::/
mkdosfs --invariant -i 2e24ec82 -n BOOT -C ${IMAGE_PATH} ${IMAGE_SIZE}
###############################################################################
echo "Running mmd and mcopy per file and dir to place files in the final fat32 image reproducibly"
INDIR=${IMAGE_ROOTFS}
# mmd is silly and requires this line to know where the image file is
echo "drive x: file=\"${IMAGE_PATH}\"" > ~/.mtoolsrc
echo ${OUTDIR}
for file in $(ls ${INDIR}/ | sort)
do
if [ -d ${INDIR}/${file} ] ; then
echo "lvl 1 mmd ${file}"
mmd x:/${file}
for file1 in $(ls ${INDIR}/${file}/ | sort)
do
if [ -d ${INDIR}/${file}/${file1} ] ; then
echo "lvl 2 mmd ${file}/${file1}"
mmd x:/${file}/${file1}
for file2 in $(ls ${INDIR}/${file}/${file1}/ | sort)
do
echo "lvl 2 mmd ${file}/${file1}/${file2}"
if [ -d ${INDIR}/${file}/${file1}/${file2} ] ; then
mmd x:/${file}/${file1}/${file2}
else
echo "lvl 4 mcopy ${INDIR}/${file}/${file1}/${file2}"
mcopy -i ${IMAGE_PATH} -vs ${INDIR}/${file}/${file1}/${file2} ::/${file}/${file1}/
fi
done
else
echo "lvl 2 mcopy ${INDIR}/${file}/${file1}"
mcopy -i ${IMAGE_PATH} -vs ${INDIR}/${file}/${file1} ::/${file}/
fi
done
else
echo "lvl 2 mcopy ${INDIR}/${file}"
mcopy -i ${IMAGE_PATH} -vs ${INDIR}/${file} ::/
fi
done
###############################################################################
syslinux --directory syslinux --install ${IMAGE_PATH}
}
@ -160,18 +203,31 @@ write_installer_image() {
bbdebug 1 Creating ${TOTAL_IMAGE_BLOCKS} block empty image file at ${INSTALLER_IMAGE}
truncate -s ${TOTAL_IMAGE_BLOCKS}K ${INSTALLER_IMAGE}
parted -s ${INSTALLER_IMAGE} mklabel msdos
# now set disk Identifier manually to make reproducible
# thank you mook765 @ https://askubuntu.com/questions/1250224/how-to-change-partuuid
bash -c "sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' <<EOF | fdisk ${INSTALLER_IMAGE}
x
i
0x60123f76
r
w
EOF"
offset=32
end=$(expr ${offset} + ${BOOT_IMAGE_SECTORS} - 1)
bbdebug 1 parted -s ${INSTALLER_IMAGE} unit s mkpart fat32 ${offset} ${end}
parted -s ${INSTALLER_IMAGE} unit s mkpart primary fat32 ${offset} ${end}
parted -s ${INSTALLER_IMAGE} set 1 boot on
bbdebug 1 dd if=${BOOT_IMAGE} of=${INSTALLER_IMAGE} seek=${offset} count=${BOOT_IMAGE_SECTORS} conv=sparse,nocreat,notrunc
dd if=${BOOT_IMAGE} of=${INSTALLER_IMAGE} seek=${offset} count=${BOOT_IMAGE_SECTORS} conv=sparse,nocreat,notrunc
dd bs=440 count=1 conv=notrunc if=${RECIPE_SYSROOT}/usr/share/syslinux/mbr.bin of=${INSTALLER_IMAGE}
parted -s ${INSTALLER_IMAGE} unit s print
# thank you Anade @ https://superuser.com/questions/1247972/how-to-change-vfat-partition-uuid
printf "\x"12"\x"34"\x"AB"\x"CD"" | dd bs=1 seek=67 count=4 conv=notrunc of=${INSTALLER_IMAGE}
}
do_fetch[noexec] = "1"

View File

@ -7,7 +7,8 @@ CITADEL_IMAGE_VERSION = "${CITADEL_IMAGE_VERSION_kernel}"
CITADEL_IMAGE_TYPE = "kernel"
require citadel-image.inc
inherit citadel-image
inherit citadel-image make_repro_ext4fs
IMAGE_CMD:ext4 = "make_repro_ext4fs"
do_rootfs[depends] += "citadel-kernel:do_deploy"

View File

@ -15,7 +15,10 @@ CITADEL_IMAGE_VERSION = "${CITADEL_IMAGE_VERSION_rootfs}"
CITADEL_IMAGE_TYPE = "rootfs"
require citadel-image.inc
inherit citadel-image
inherit citadel-image make_repro_ext4fs
IMAGE_CMD:ext4 = "make_repro_ext4fs"
IMAGE_OVERHEAD_FACTOR = "1.34"
set_blank_user_password() {
sed -i 's%^citadel::%citadel:!:%' ${IMAGE_ROOTFS}/etc/shadow
@ -62,4 +65,4 @@ addtask rm_var_link after do_rootfs before do_image_qa
symlink_lib64() {
ln -s /usr/lib ${IMAGE_ROOTFS}/lib64
}
}

View File

@ -29,6 +29,7 @@ RDEPENDS:${PN} = "\
libdrm-amdgpu \
dash-to-panel \
citadel-config-gnome \
citadel-realms \
power-profiles-daemon \
"

View File

@ -8,7 +8,7 @@ inherit cargo systemd gsettings pkgconfig
#
# Update this when changes are pushed to github
#
SRCREV = "24f786cf75d093b617511ef568e3f231b52b320d"
SRCREV = "11b3e8a0164c8b304efbeda5245f4ab6ec48d298"
# get git repo owner from citadel to find the correct citadel-tools repo path
python () {
@ -31,7 +31,6 @@ SRC_URI += " \
crate://crates.io/acl-sys/1.2.2 \
crate://crates.io/addr2line/0.17.0 \
crate://crates.io/adler/1.0.2 \
crate://crates.io/aho-corasick/0.7.18 \
crate://crates.io/anstream/0.6.15 \
crate://crates.io/anstyle-parse/0.2.5 \
crate://crates.io/anstyle-query/1.1.1 \
@ -39,28 +38,37 @@ SRC_URI += " \
crate://crates.io/anstyle/1.0.8 \
crate://crates.io/anyhow/1.0.57 \
crate://crates.io/array-macro/1.0.5 \
crate://crates.io/async-broadcast/0.3.4 \
crate://crates.io/async-channel/1.6.1 \
crate://crates.io/async-executor/1.4.1 \
crate://crates.io/async-io/1.6.0 \
crate://crates.io/async-lock/2.5.0 \
crate://crates.io/async-task/4.2.0 \
crate://crates.io/async-broadcast/0.7.1 \
crate://crates.io/async-channel/2.3.1 \
crate://crates.io/async-executor/1.13.1 \
crate://crates.io/async-fs/2.1.2 \
crate://crates.io/async-io/2.3.4 \
crate://crates.io/async-lock/3.4.0 \
crate://crates.io/async-process/2.2.4 \
crate://crates.io/async-recursion/1.1.1 \
crate://crates.io/async-signal/0.2.10 \
crate://crates.io/async-task/4.7.1 \
crate://crates.io/async-trait/0.1.82 \
crate://crates.io/atk-sys/0.14.0 \
crate://crates.io/atk/0.14.0 \
crate://crates.io/atomic-waker/1.1.2 \
crate://crates.io/autocfg/1.1.0 \
crate://crates.io/backtrace/0.3.65 \
crate://crates.io/bincode/1.3.3 \
crate://crates.io/bitflags/1.2.1 \
crate://crates.io/bitflags/2.6.0 \
crate://crates.io/block-buffer/0.10.4 \
crate://crates.io/block-buffer/0.9.0 \
crate://crates.io/blocking/1.6.1 \
crate://crates.io/blowfish/0.7.0 \
crate://crates.io/byteorder/1.4.3 \
crate://crates.io/cache-padded/1.2.0 \
crate://crates.io/cairo-rs/0.14.9 \
crate://crates.io/cairo-sys-rs/0.14.9 \
crate://crates.io/cc/1.0.73 \
crate://crates.io/cfg-expr/0.8.1 \
crate://crates.io/cfg-if/0.1.10 \
crate://crates.io/cfg-if/1.0.0 \
crate://crates.io/cfg_aliases/0.2.1 \
crate://crates.io/chrono/0.4.19 \
crate://crates.io/cipher/0.2.5 \
crate://crates.io/clap/4.5.17 \
@ -68,44 +76,49 @@ SRC_URI += " \
crate://crates.io/clap_derive/4.5.13 \
crate://crates.io/clap_lex/0.7.2 \
crate://crates.io/colorchoice/1.0.2 \
crate://crates.io/concurrent-queue/1.2.2 \
crate://crates.io/concurrent-queue/2.5.0 \
crate://crates.io/cpufeatures/0.2.2 \
crate://crates.io/crc32fast/1.3.2 \
crate://crates.io/crossbeam-channel/0.3.9 \
crate://crates.io/crossbeam-utils/0.6.6 \
crate://crates.io/crossbeam-utils/0.8.20 \
crate://crates.io/crypto-common/0.1.6 \
crate://crates.io/crypto-mac/0.10.1 \
crate://crates.io/cursive/0.11.0 \
crate://crates.io/dbus/0.6.5 \
crate://crates.io/dbus/0.8.4 \
crate://crates.io/derivative/2.2.0 \
crate://crates.io/digest/0.10.7 \
crate://crates.io/digest/0.9.0 \
crate://crates.io/dtoa/0.4.8 \
crate://crates.io/easy-parallel/3.2.0 \
crate://crates.io/ed25519/1.5.2 \
crate://crates.io/either/1.6.1 \
crate://crates.io/endi/1.1.0 \
crate://crates.io/enum-map-derive/0.4.6 \
crate://crates.io/enum-map-internals/0.1.2 \
crate://crates.io/enum-map/0.5.0 \
crate://crates.io/enumflags2/0.6.4 \
crate://crates.io/enumflags2_derive/0.6.4 \
crate://crates.io/enumflags2/0.7.10 \
crate://crates.io/enumflags2_derive/0.7.10 \
crate://crates.io/enumset/0.3.19 \
crate://crates.io/enumset_derive/0.3.2 \
crate://crates.io/equivalent/1.0.1 \
crate://crates.io/event-listener/2.5.2 \
crate://crates.io/errno/0.3.9 \
crate://crates.io/event-listener-strategy/0.5.2 \
crate://crates.io/event-listener/5.3.1 \
crate://crates.io/failure/0.1.8 \
crate://crates.io/failure_derive/0.1.8 \
crate://crates.io/fastrand/1.7.0 \
crate://crates.io/fastrand/2.1.1 \
crate://crates.io/field-offset/0.3.4 \
crate://crates.io/flate2/1.0.24 \
crate://crates.io/futures-channel/0.3.21 \
crate://crates.io/futures-core/0.3.21 \
crate://crates.io/futures-core/0.3.30 \
crate://crates.io/futures-executor/0.3.21 \
crate://crates.io/futures-io/0.3.21 \
crate://crates.io/futures-lite/1.12.0 \
crate://crates.io/futures-macro/0.3.21 \
crate://crates.io/futures-sink/0.3.21 \
crate://crates.io/futures-task/0.3.21 \
crate://crates.io/futures-util/0.3.21 \
crate://crates.io/futures-io/0.3.30 \
crate://crates.io/futures-lite/2.3.0 \
crate://crates.io/futures-macro/0.3.30 \
crate://crates.io/futures-sink/0.3.30 \
crate://crates.io/futures-task/0.3.30 \
crate://crates.io/futures-util/0.3.30 \
crate://crates.io/gdk-pixbuf-sys/0.14.0 \
crate://crates.io/gdk-pixbuf/0.14.0 \
crate://crates.io/gdk-sys/0.14.0 \
@ -129,6 +142,7 @@ SRC_URI += " \
crate://crates.io/hashbrown/0.14.5 \
crate://crates.io/heck/0.3.3 \
crate://crates.io/heck/0.5.0 \
crate://crates.io/hermit-abi/0.4.0 \
crate://crates.io/hex/0.4.3 \
crate://crates.io/hmac/0.10.1 \
crate://crates.io/indexmap/2.5.0 \
@ -140,16 +154,18 @@ SRC_URI += " \
crate://crates.io/itertools/0.9.0 \
crate://crates.io/itoa/0.3.4 \
crate://crates.io/lazy_static/1.4.0 \
crate://crates.io/libc/0.2.126 \
crate://crates.io/libc/0.2.158 \
crate://crates.io/libdbus-sys/0.2.2 \
crate://crates.io/libsodium-sys/0.2.7 \
crate://crates.io/linux-raw-sys/0.4.14 \
crate://crates.io/log/0.4.17 \
crate://crates.io/md-5/0.9.1 \
crate://crates.io/memchr/2.5.0 \
crate://crates.io/memoffset/0.6.5 \
crate://crates.io/memoffset/0.9.1 \
crate://crates.io/miniz_oxide/0.5.1 \
crate://crates.io/nix/0.17.0 \
crate://crates.io/nix/0.21.2 \
crate://crates.io/nix/0.29.0 \
crate://crates.io/num-complex/0.2.4 \
crate://crates.io/num-integer/0.1.45 \
crate://crates.io/num-iter/0.1.43 \
@ -159,23 +175,26 @@ SRC_URI += " \
crate://crates.io/num/0.2.1 \
crate://crates.io/numtoa/0.1.0 \
crate://crates.io/object/0.28.4 \
crate://crates.io/once_cell/1.10.0 \
crate://crates.io/once_cell/1.19.0 \
crate://crates.io/opaque-debug/0.3.0 \
crate://crates.io/ordered-stream/0.2.0 \
crate://crates.io/owning_ref/0.4.1 \
crate://crates.io/pango-sys/0.10.0 \
crate://crates.io/pango-sys/0.14.0 \
crate://crates.io/pango/0.14.8 \
crate://crates.io/pango/0.9.1 \
crate://crates.io/parking/2.0.0 \
crate://crates.io/parking/2.2.1 \
crate://crates.io/pest/2.1.3 \
crate://crates.io/pin-project-lite/0.2.9 \
crate://crates.io/pin-project-lite/0.2.14 \
crate://crates.io/pin-utils/0.1.0 \
crate://crates.io/piper/0.2.4 \
crate://crates.io/pkg-config/0.3.25 \
crate://crates.io/polling/2.2.0 \
crate://crates.io/polling/3.7.3 \
crate://crates.io/posix-acl/1.0.0 \
crate://crates.io/ppv-lite86/0.2.16 \
crate://crates.io/proc-macro-crate/0.1.5 \
crate://crates.io/proc-macro-crate/1.1.3 \
crate://crates.io/proc-macro-crate/3.2.0 \
crate://crates.io/proc-macro-error-attr/1.0.4 \
crate://crates.io/proc-macro-error/1.0.4 \
crate://crates.io/proc-macro2/0.4.30 \
@ -189,33 +208,28 @@ SRC_URI += " \
crate://crates.io/rand_core/0.6.3 \
crate://crates.io/redox_syscall/0.2.13 \
crate://crates.io/redox_termios/0.1.2 \
crate://crates.io/regex-syntax/0.6.25 \
crate://crates.io/regex/1.5.5 \
crate://crates.io/remove_dir_all/0.5.3 \
crate://crates.io/rpassword/7.3.1 \
crate://crates.io/rtoolbox/0.0.2 \
crate://crates.io/rustc-demangle/0.1.21 \
crate://crates.io/rustc_version/0.3.3 \
crate://crates.io/rustix/0.38.37 \
crate://crates.io/same-file/1.0.6 \
crate://crates.io/scoped-tls/1.0.0 \
crate://crates.io/semver-parser/0.10.2 \
crate://crates.io/semver/0.11.0 \
crate://crates.io/serde/1.0.209 \
crate://crates.io/serde_derive/1.0.209 \
crate://crates.io/serde_json/1.0.1 \
crate://crates.io/serde_repr/0.1.8 \
crate://crates.io/serde_repr/0.1.19 \
crate://crates.io/serde_spanned/0.6.7 \
crate://crates.io/sha-1/0.9.8 \
crate://crates.io/sha1/0.6.1 \
crate://crates.io/sha1_smol/1.0.0 \
crate://crates.io/sha1/0.10.6 \
crate://crates.io/sha2/0.9.9 \
crate://crates.io/signal-hook-registry/1.4.0 \
crate://crates.io/signal-hook/0.1.17 \
crate://crates.io/signature/1.5.0 \
crate://crates.io/slab/0.4.6 \
crate://crates.io/slotmap/1.0.6 \
crate://crates.io/slab/0.4.9 \
crate://crates.io/smallvec/1.8.0 \
crate://crates.io/socket2/0.4.4 \
crate://crates.io/sodiumoxide/0.2.7 \
crate://crates.io/stable_deref_trait/1.2.0 \
crate://crates.io/static_assertions/1.1.0 \
@ -241,8 +255,12 @@ SRC_URI += " \
crate://crates.io/toml/0.8.19 \
crate://crates.io/toml_datetime/0.6.8 \
crate://crates.io/toml_edit/0.22.20 \
crate://crates.io/tracing-attributes/0.1.27 \
crate://crates.io/tracing-core/0.1.32 \
crate://crates.io/tracing/0.1.40 \
crate://crates.io/typenum/1.15.0 \
crate://crates.io/ucd-trie/0.1.3 \
crate://crates.io/uds_windows/1.1.0 \
crate://crates.io/unicode-ident/1.0.0 \
crate://crates.io/unicode-segmentation/1.9.0 \
crate://crates.io/unicode-width/0.1.9 \
@ -253,16 +271,15 @@ SRC_URI += " \
crate://crates.io/version-compare/0.0.11 \
crate://crates.io/version_check/0.9.4 \
crate://crates.io/void/1.0.2 \
crate://crates.io/waker-fn/1.1.0 \
crate://crates.io/walkdir/2.3.2 \
crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
crate://crates.io/wepoll-ffi/0.1.2 \
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi-util/0.1.5 \
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
crate://crates.io/winapi/0.3.9 \
crate://crates.io/windows-sys/0.48.0 \
crate://crates.io/windows-sys/0.52.0 \
crate://crates.io/windows-sys/0.59.0 \
crate://crates.io/windows-targets/0.48.5 \
crate://crates.io/windows-targets/0.52.6 \
crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
@ -281,17 +298,19 @@ SRC_URI += " \
crate://crates.io/windows_x86_64_msvc/0.48.5 \
crate://crates.io/windows_x86_64_msvc/0.52.6 \
crate://crates.io/winnow/0.6.18 \
crate://crates.io/xdg-home/1.3.0 \
crate://crates.io/xi-unicode/0.1.0 \
crate://crates.io/zbus/2.0.0-beta.5 \
crate://crates.io/zbus_macros/2.0.0-beta.5 \
crate://crates.io/zvariant/2.10.0 \
crate://crates.io/zvariant_derive/2.10.0 \
crate://crates.io/zbus/4.4.0 \
crate://crates.io/zbus_macros/4.4.0 \
crate://crates.io/zbus_names/3.0.0 \
crate://crates.io/zvariant/4.2.0 \
crate://crates.io/zvariant_derive/4.2.0 \
crate://crates.io/zvariant_utils/2.1.0 \
"
SRC_URI[acl-sys-1.2.2.sha256sum] = "bbc079f9bdd3124fd18df23c67f7e0f79d24751ae151dcffd095fcade07a3eb2"
SRC_URI[addr2line-0.17.0.sha256sum] = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
SRC_URI[aho-corasick-0.7.18.sha256sum] = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
SRC_URI[anstream-0.6.15.sha256sum] = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
SRC_URI[anstyle-parse-0.2.5.sha256sum] = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
SRC_URI[anstyle-query-1.1.1.sha256sum] = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
@ -299,28 +318,37 @@ SRC_URI[anstyle-wincon-3.0.4.sha256sum] = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6
SRC_URI[anstyle-1.0.8.sha256sum] = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
SRC_URI[anyhow-1.0.57.sha256sum] = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
SRC_URI[array-macro-1.0.5.sha256sum] = "06e97b4e522f9e55523001238ac59d13a8603af57f69980de5d8de4bbbe8ada6"
SRC_URI[async-broadcast-0.3.4.sha256sum] = "90622698a1218e0b2fb846c97b5f19a0831f6baddee73d9454156365ccfa473b"
SRC_URI[async-channel-1.6.1.sha256sum] = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
SRC_URI[async-executor-1.4.1.sha256sum] = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
SRC_URI[async-io-1.6.0.sha256sum] = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
SRC_URI[async-lock-2.5.0.sha256sum] = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
SRC_URI[async-task-4.2.0.sha256sum] = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
SRC_URI[async-broadcast-0.7.1.sha256sum] = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
SRC_URI[async-channel-2.3.1.sha256sum] = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
SRC_URI[async-executor-1.13.1.sha256sum] = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec"
SRC_URI[async-fs-2.1.2.sha256sum] = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
SRC_URI[async-io-2.3.4.sha256sum] = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
SRC_URI[async-lock-3.4.0.sha256sum] = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
SRC_URI[async-process-2.2.4.sha256sum] = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374"
SRC_URI[async-recursion-1.1.1.sha256sum] = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
SRC_URI[async-signal-0.2.10.sha256sum] = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
SRC_URI[async-task-4.7.1.sha256sum] = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
SRC_URI[async-trait-0.1.82.sha256sum] = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
SRC_URI[atk-sys-0.14.0.sha256sum] = "badcf670157c84bb8b1cf6b5f70b650fed78da2033c9eed84c4e49b11cbe83ea"
SRC_URI[atk-0.14.0.sha256sum] = "a83b21d2aa75e464db56225e1bda2dd5993311ba1095acaa8fa03d1ae67026ba"
SRC_URI[atomic-waker-1.1.2.sha256sum] = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
SRC_URI[backtrace-0.3.65.sha256sum] = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61"
SRC_URI[bincode-1.3.3.sha256sum] = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
SRC_URI[bitflags-1.2.1.sha256sum] = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
SRC_URI[bitflags-2.6.0.sha256sum] = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
SRC_URI[block-buffer-0.9.0.sha256sum] = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
SRC_URI[blocking-1.6.1.sha256sum] = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
SRC_URI[blowfish-0.7.0.sha256sum] = "32fa6a061124e37baba002e496d203e23ba3d7b73750be82dbfbc92913048a5b"
SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
SRC_URI[cache-padded-1.2.0.sha256sum] = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
SRC_URI[cairo-rs-0.14.9.sha256sum] = "33b5725979db0c586d98abad2193cdb612dd40ef95cd26bd99851bf93b3cb482"
SRC_URI[cairo-sys-rs-0.14.9.sha256sum] = "b448b876970834fda82ba3aeaccadbd760206b75388fc5c1b02f1e343b697570"
SRC_URI[cc-1.0.73.sha256sum] = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
SRC_URI[cfg-expr-0.8.1.sha256sum] = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e"
SRC_URI[cfg-if-0.1.10.sha256sum] = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
SRC_URI[chrono-0.4.19.sha256sum] = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
SRC_URI[cipher-0.2.5.sha256sum] = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
SRC_URI[clap-4.5.17.sha256sum] = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac"
@ -328,44 +356,49 @@ SRC_URI[clap_builder-4.5.17.sha256sum] = "8cf2dd12af7a047ad9d6da2b6b249759a22a7a
SRC_URI[clap_derive-4.5.13.sha256sum] = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
SRC_URI[clap_lex-0.7.2.sha256sum] = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
SRC_URI[colorchoice-1.0.2.sha256sum] = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
SRC_URI[concurrent-queue-1.2.2.sha256sum] = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
SRC_URI[concurrent-queue-2.5.0.sha256sum] = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
SRC_URI[cpufeatures-0.2.2.sha256sum] = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
SRC_URI[crossbeam-channel-0.3.9.sha256sum] = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa"
SRC_URI[crossbeam-utils-0.6.6.sha256sum] = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
SRC_URI[crossbeam-utils-0.8.20.sha256sum] = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
SRC_URI[crypto-mac-0.10.1.sha256sum] = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
SRC_URI[cursive-0.11.0.sha256sum] = "e50c8961fb6728e44ea668e4133ca6f5bea681cb5e93aaee70a8f452412bbce5"
SRC_URI[dbus-0.6.5.sha256sum] = "48b5f0f36f1eebe901b0e6bee369a77ed3396334bf3f09abd46454a576f71819"
SRC_URI[dbus-0.8.4.sha256sum] = "5cd9e78c210146a1860f897db03412fd5091fd73100778e43ee255cca252cf32"
SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
SRC_URI[digest-0.9.0.sha256sum] = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
SRC_URI[dtoa-0.4.8.sha256sum] = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
SRC_URI[easy-parallel-3.2.0.sha256sum] = "6907e25393cdcc1f4f3f513d9aac1e840eb1cc341a0fccb01171f7d14d10b946"
SRC_URI[ed25519-1.5.2.sha256sum] = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369"
SRC_URI[either-1.6.1.sha256sum] = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
SRC_URI[endi-1.1.0.sha256sum] = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
SRC_URI[enum-map-derive-0.4.6.sha256sum] = "e5c450cf304c9e18d45db562025a14fb1ca0f5c769b6f609309f81d4c31de455"
SRC_URI[enum-map-internals-0.1.2.sha256sum] = "38b0bacf3ea7aba18ce84032efc3f0fa29f5c814048b742ab3e64d07d83ac3e8"
SRC_URI[enum-map-0.5.0.sha256sum] = "ccd9b2d5e0eb5c2ff851791e2af90ab4531b1168cfc239d1c0bf467e60ba3c89"
SRC_URI[enumflags2-0.6.4.sha256sum] = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0"
SRC_URI[enumflags2_derive-0.6.4.sha256sum] = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce"
SRC_URI[enumflags2-0.7.10.sha256sum] = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
SRC_URI[enumflags2_derive-0.7.10.sha256sum] = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
SRC_URI[enumset-0.3.19.sha256sum] = "43bd5effaae6a671efa2032056110916a501bd24128cfb6f44e5a339b5cdb152"
SRC_URI[enumset_derive-0.3.2.sha256sum] = "f73e5c77cf68e532b0e6fdd22c7f8f4d09f6f663692aecca0b3d8ec2e11af723"
SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
SRC_URI[event-listener-2.5.2.sha256sum] = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
SRC_URI[errno-0.3.9.sha256sum] = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
SRC_URI[event-listener-strategy-0.5.2.sha256sum] = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
SRC_URI[event-listener-5.3.1.sha256sum] = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
SRC_URI[failure-0.1.8.sha256sum] = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
SRC_URI[failure_derive-0.1.8.sha256sum] = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
SRC_URI[fastrand-1.7.0.sha256sum] = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
SRC_URI[fastrand-2.1.1.sha256sum] = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
SRC_URI[field-offset-0.3.4.sha256sum] = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92"
SRC_URI[flate2-1.0.24.sha256sum] = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
SRC_URI[futures-channel-0.3.21.sha256sum] = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
SRC_URI[futures-core-0.3.21.sha256sum] = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
SRC_URI[futures-core-0.3.30.sha256sum] = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
SRC_URI[futures-executor-0.3.21.sha256sum] = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
SRC_URI[futures-io-0.3.21.sha256sum] = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
SRC_URI[futures-lite-1.12.0.sha256sum] = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
SRC_URI[futures-macro-0.3.21.sha256sum] = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
SRC_URI[futures-sink-0.3.21.sha256sum] = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
SRC_URI[futures-task-0.3.21.sha256sum] = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
SRC_URI[futures-util-0.3.21.sha256sum] = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
SRC_URI[futures-io-0.3.30.sha256sum] = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
SRC_URI[futures-lite-2.3.0.sha256sum] = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
SRC_URI[futures-macro-0.3.30.sha256sum] = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
SRC_URI[futures-sink-0.3.30.sha256sum] = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
SRC_URI[futures-task-0.3.30.sha256sum] = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
SRC_URI[futures-util-0.3.30.sha256sum] = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
SRC_URI[gdk-pixbuf-sys-0.14.0.sha256sum] = "f097c0704201fbc8f69c1762dc58c6947c8bb188b8ed0bc7e65259f1894fe590"
SRC_URI[gdk-pixbuf-0.14.0.sha256sum] = "534192cb8f01daeb8fab2c8d4baa8f9aae5b7a39130525779f5c2608e235b10f"
SRC_URI[gdk-sys-0.14.0.sha256sum] = "0e091b3d3d6696949ac3b3fb3c62090e5bfd7bd6850bef5c3c5ea701de1b1f1e"
@ -389,6 +422,7 @@ SRC_URI[gtk3-macros-0.14.0.sha256sum] = "21de1da96dc117443fb03c2e270b2d34b7de98d
SRC_URI[hashbrown-0.14.5.sha256sum] = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
SRC_URI[hermit-abi-0.4.0.sha256sum] = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
SRC_URI[hmac-0.10.1.sha256sum] = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
SRC_URI[indexmap-2.5.0.sha256sum] = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
@ -400,16 +434,18 @@ SRC_URI[itertools-0.10.3.sha256sum] = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9
SRC_URI[itertools-0.9.0.sha256sum] = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
SRC_URI[itoa-0.3.4.sha256sum] = "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"
SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
SRC_URI[libc-0.2.126.sha256sum] = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
SRC_URI[libc-0.2.158.sha256sum] = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
SRC_URI[libdbus-sys-0.2.2.sha256sum] = "c185b5b7ad900923ef3a8ff594083d4d9b5aea80bb4f32b8342363138c0d456b"
SRC_URI[libsodium-sys-0.2.7.sha256sum] = "6b779387cd56adfbc02ea4a668e704f729be8d6a6abd2c27ca5ee537849a92fd"
SRC_URI[linux-raw-sys-0.4.14.sha256sum] = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
SRC_URI[md-5-0.9.1.sha256sum] = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
SRC_URI[memoffset-0.6.5.sha256sum] = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
SRC_URI[miniz_oxide-0.5.1.sha256sum] = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
SRC_URI[nix-0.17.0.sha256sum] = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
SRC_URI[nix-0.21.2.sha256sum] = "77d9f3521ea8e0641a153b3cddaf008dcbf26acd4ed739a2517295e0760d12c7"
SRC_URI[nix-0.29.0.sha256sum] = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
SRC_URI[num-complex-0.2.4.sha256sum] = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
SRC_URI[num-iter-0.1.43.sha256sum] = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
@ -419,23 +455,26 @@ SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b2
SRC_URI[num-0.2.1.sha256sum] = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
SRC_URI[numtoa-0.1.0.sha256sum] = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
SRC_URI[object-0.28.4.sha256sum] = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424"
SRC_URI[once_cell-1.10.0.sha256sum] = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
SRC_URI[opaque-debug-0.3.0.sha256sum] = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
SRC_URI[ordered-stream-0.2.0.sha256sum] = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
SRC_URI[owning_ref-0.4.1.sha256sum] = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce"
SRC_URI[pango-sys-0.10.0.sha256sum] = "24d2650c8b62d116c020abd0cea26a4ed96526afda89b1c4ea567131fdefc890"
SRC_URI[pango-sys-0.14.0.sha256sum] = "2367099ca5e761546ba1d501955079f097caa186bb53ce0f718dca99ac1942fe"
SRC_URI[pango-0.14.8.sha256sum] = "546fd59801e5ca735af82839007edd226fe7d3bb06433ec48072be4439c28581"
SRC_URI[pango-0.9.1.sha256sum] = "9937068580bebd8ced19975938573803273ccbcbd598c58d4906efd4ac87c438"
SRC_URI[parking-2.0.0.sha256sum] = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
SRC_URI[parking-2.2.1.sha256sum] = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
SRC_URI[pest-2.1.3.sha256sum] = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
SRC_URI[pin-project-lite-0.2.14.sha256sum] = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
SRC_URI[piper-0.2.4.sha256sum] = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
SRC_URI[pkg-config-0.3.25.sha256sum] = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
SRC_URI[polling-2.2.0.sha256sum] = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
SRC_URI[polling-3.7.3.sha256sum] = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
SRC_URI[posix-acl-1.0.0.sha256sum] = "2ea5dae99e4365fa738533b43f4c649c0450ba7fbb81a984a4fba6a42ce91812"
SRC_URI[ppv-lite86-0.2.16.sha256sum] = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
SRC_URI[proc-macro-crate-0.1.5.sha256sum] = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
SRC_URI[proc-macro-crate-1.1.3.sha256sum] = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
SRC_URI[proc-macro-crate-3.2.0.sha256sum] = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"
SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
SRC_URI[proc-macro2-0.4.30.sha256sum] = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
@ -449,33 +488,28 @@ SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d23
SRC_URI[rand_core-0.6.3.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
SRC_URI[redox_syscall-0.2.13.sha256sum] = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
SRC_URI[redox_termios-0.1.2.sha256sum] = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
SRC_URI[regex-syntax-0.6.25.sha256sum] = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
SRC_URI[regex-1.5.5.sha256sum] = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
SRC_URI[remove_dir_all-0.5.3.sha256sum] = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
SRC_URI[rpassword-7.3.1.sha256sum] = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f"
SRC_URI[rtoolbox-0.0.2.sha256sum] = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e"
SRC_URI[rustc-demangle-0.1.21.sha256sum] = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
SRC_URI[rustc_version-0.3.3.sha256sum] = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
SRC_URI[rustix-0.38.37.sha256sum] = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
SRC_URI[scoped-tls-1.0.0.sha256sum] = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
SRC_URI[semver-parser-0.10.2.sha256sum] = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
SRC_URI[semver-0.11.0.sha256sum] = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
SRC_URI[serde-1.0.209.sha256sum] = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
SRC_URI[serde_derive-1.0.209.sha256sum] = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
SRC_URI[serde_json-1.0.1.sha256sum] = "1c62115693d0a9ed8c32d1c760f0fdbe7d4b05cb13c135b9b54137ac0d59fccb"
SRC_URI[serde_repr-0.1.8.sha256sum] = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed"
SRC_URI[serde_repr-0.1.19.sha256sum] = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
SRC_URI[serde_spanned-0.6.7.sha256sum] = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
SRC_URI[sha-1-0.9.8.sha256sum] = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6"
SRC_URI[sha1-0.6.1.sha256sum] = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
SRC_URI[sha2-0.9.9.sha256sum] = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
SRC_URI[signal-hook-0.1.17.sha256sum] = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729"
SRC_URI[signature-1.5.0.sha256sum] = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4"
SRC_URI[slab-0.4.6.sha256sum] = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
SRC_URI[slotmap-1.0.6.sha256sum] = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
SRC_URI[smallvec-1.8.0.sha256sum] = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
SRC_URI[socket2-0.4.4.sha256sum] = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
SRC_URI[sodiumoxide-0.2.7.sha256sum] = "e26be3acb6c2d9a7aac28482586a7856436af4cfe7100031d219de2d2ecb0028"
SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
@ -501,8 +535,12 @@ SRC_URI[toml-0.5.9.sha256sum] = "8d82e1a7758622a465f8cee077614c73484dac5b836c02f
SRC_URI[toml-0.8.19.sha256sum] = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
SRC_URI[toml_datetime-0.6.8.sha256sum] = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
SRC_URI[toml_edit-0.22.20.sha256sum] = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
SRC_URI[ucd-trie-0.1.3.sha256sum] = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
SRC_URI[uds_windows-1.1.0.sha256sum] = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
SRC_URI[unicode-ident-1.0.0.sha256sum] = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
SRC_URI[unicode-segmentation-1.9.0.sha256sum] = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
SRC_URI[unicode-width-0.1.9.sha256sum] = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
@ -513,16 +551,15 @@ SRC_URI[version-compare-0.0.10.sha256sum] = "d63556a25bae6ea31b52e640d7c41d1ab27
SRC_URI[version-compare-0.0.11.sha256sum] = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b"
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
SRC_URI[void-1.0.2.sha256sum] = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
SRC_URI[waker-fn-1.1.0.sha256sum] = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
SRC_URI[wasi-0.10.2+wasi-snapshot-preview1.sha256sum] = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
SRC_URI[wepoll-ffi-0.1.2.sha256sum] = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
@ -541,11 +578,14 @@ SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b4
SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
SRC_URI[winnow-0.6.18.sha256sum] = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
SRC_URI[xdg-home-1.3.0.sha256sum] = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
SRC_URI[xi-unicode-0.1.0.sha256sum] = "12ea8eda4b1eb72f02d148402e23832d56a33f55d8c1b2d5bcdde91d79d47cb1"
SRC_URI[zbus-2.0.0-beta.5.sha256sum] = "d45f4720326304c291f96f66b6c1131f16964bba6bffe216ac85de2e48321a10"
SRC_URI[zbus_macros-2.0.0-beta.5.sha256sum] = "cf0fa91321143695013cb3fa62a6395dbe14eafd97ab58c2ba73f61d5035b1d9"
SRC_URI[zvariant-2.10.0.sha256sum] = "a68c7b55f2074489b7e8e07d2d0a6ee6b4f233867a653c664d8020ba53692525"
SRC_URI[zvariant_derive-2.10.0.sha256sum] = "e4ca5e22593eb4212382d60d26350065bf2a02c34b85bc850474a74b589a3de9"
SRC_URI[zbus-4.4.0.sha256sum] = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725"
SRC_URI[zbus_macros-4.4.0.sha256sum] = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e"
SRC_URI[zbus_names-3.0.0.sha256sum] = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
SRC_URI[zvariant-4.2.0.sha256sum] = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe"
SRC_URI[zvariant_derive-4.2.0.sha256sum] = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449"
SRC_URI[zvariant_utils-2.1.0.sha256sum] = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
export SODIUM_USE_PKG_CONFIG = "1"

View File

@ -875,6 +875,10 @@ CONFIG_FUNCTION_ALIGNMENT_16B=y
CONFIG_FUNCTION_ALIGNMENT=16
# end of General architecture-dependent options
KBUILD_BUILD_TIMESTAMP="1718377347"
KBUILD_BUILD_USER="citadel"
KBUILD_BUILD_HOST="subgraph"
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULE_SIG_FORMAT=y
@ -888,7 +892,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not set
CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_ALL=n
CONFIG_MODULE_SIG_SHA1=y
# CONFIG_MODULE_SIG_SHA256 is not set
# CONFIG_MODULE_SIG_SHA384 is not set
@ -6825,7 +6829,7 @@ CONFIG_SIGNED_PE_FILE_VERIFICATION=y
#
# Certificates for signature checking
#
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
CONFIG_MODULE_SIG_KEY=""
CONFIG_MODULE_SIG_KEY_TYPE_RSA=y
# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set
CONFIG_SYSTEM_TRUSTED_KEYRING=y

View File

@ -0,0 +1,82 @@
-----BEGIN PRIVATE KEY-----
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
DDvz8/gvqoDgvAWlCrsjmZEffJizVcw=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIFKDCCAxCgAwIBAgIUE6rC+QfVn02trZ7Ead27i9ds4NYwDQYJKoZIhvcNAQEL
BQAwLjEsMCoGA1UEAwwjQnVpbGQgdGltZSBhdXRvZ2VuZXJhdGVkIGtlcm5lbCBr
ZXkwIBcNMjQwMjI4MTk1ODA4WhgPMjEyNDAyMDQxOTU4MDhaMC4xLDAqBgNVBAMM
I0J1aWxkIHRpbWUgYXV0b2dlbmVyYXRlZCBrZXJuZWwga2V5MIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEApivi7G6S/fXLwPGwq25j1HE73DyBdyux044V
gXFg/kF12YRT0bgPMjzh2zo0cj7yG8wimhU6RLsVZHlaMywBITL4g2kAM6Ku12o8
8/a/vrk7tVux8h+oLzS8VZg3b9ndiS2WUDXznz8KpQBrHHTIX4NLChH77KSaEptU
wGnvufxq20Q7HusboXIIZuExN0yW+gkdVZUXMtO6IhKfs0xwFdmk8+DxmmFQJ+U9
RrgUrIqFC3fmm4TdQ/y3GQ+qGOgps2/DwPSi9HyUN9uYjZiflcyYzOxEG0bnZWx6
9F5WEurhvjG1ZdqslrjEp5MQjrqANiVfmTmtHBvKWUThDUqvvyhKHKaik2BMCNVy
gkG0px6+U2cCQ0p1CTbf8hSgH8vLYeFMmqS6cwM67FSnMGOqWUomm9YoOpzs91DV
VesmQG6WHDUZumq0GrsrQKa9/QJSHYe2kybJkOwRB29xoU8/rF+JIBCRMnIltaNh
HOiyweOmTVIo0sGRcZrxwM1lmZtwHuBRAWj6oU0qHOmI2TSnZktc4tDwzdSiuvdh
+LR3cV1FyuczAMDIlPSfWSIHoqkwWIkDElrBFjvgU5azYdA9on24Sp0i9/9eeJuT
mcSCfn8GeK9togxZM2RKAJQVGp9CmDB0Z7jTUKFfhsK1KRn8o6G3kCK10esyjoNB
H6qIwosCAwEAAaM8MDowDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwHQYDVR0O
BBYEFHA0T2bpAZaELFDODMgvpSjwQNCEMA0GCSqGSIb3DQEBCwUAA4ICAQAOvHct
yaAn0kCoxAZbMEs8NYxbqxSydLX0YOcV6iF+mS2LQOGQ1mlyOBiFgExjR3XKo6kB
PRjnd8WuwDcBIHqzK9XBYgm8yCz1oOezVG/J9gvxF47QY3X7EC7M4B0MNGgPpETw
kXTGIl1x8qXwbD/KwvQkdaRJsZ4uoIHQZOYzvy4M85pV0II5xoESAR/MPrCFQO7O
/oqWNWs1LEt7XsRzH7mSZWfZ//mr0Kl6n7865i0ocCPv+4nyyT4CWv/0UEeWIKPK
ChJE+lOpSdiidq2+uyJDN5ali5413nhOx0LY/aziE7JB4x5Ami3DOsGE23y/5Cho
YWwW8EP3+9M5TVVxrji//I7g2MLQvXAtcwvhaucdrQybgKfQDCnjUSKhYi0WeX+e
esDj0uVPVrHgbj5QdFIHeuc9F15beVpt3dBa+qYRUdt5J+XaXYxKS43dhz/RQh20
Z1961O343/Gy023CqI/Ljs8P37CVhhldSWYntlMa39rg7GJPXeQZ1AN/3/2od1ay
ZaC9FRUTcmoD/TiD14aHHJLwf3tvj/vzmxCzp18mzBVtUE3Ts0uKDkE7F7EVnh5y
SWz8gehB8tUtsdZPeZqgIKQGCsWhIqD4Ir3csMpyPw+vGKxE6ZzzMr9TvwQpj/NI
G0wlChzo9EPL58kJEUFhnY0WFhRn1OWfZStiiQ==
-----END CERTIFICATE-----

View File

@ -0,0 +1,16 @@
SUMMARY = "A markup language for GTK user interface files."
LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
SRC_URI = "git://gitlab.gnome.org/jwestman/blueprint-compiler.git;protocol=https;branch=main"
PV = "0.14.0"
SRCREV = "8e10fcf8692108b9d4ab78f41086c5d7773ef864"
S = "${WORKDIR}/git"
DEPENDS = "python3-pygobject"
inherit meson
BBCLASSEXTEND= "native"

View File

@ -7,10 +7,9 @@ SECTION = "devel/lib"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
S = "${WORKDIR}/git"
B = "${S}"
SRCREV = "c9864f4dd03736839f40d225da494cb1eb64e654"
SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master;protocol=https"
SRCREV = "6e83cc6f6dff4f126fc79284e0c3c1c50123380d"
SRC_URI = "git://github.com/storaged-project/libbytesize;branch=main;protocol=https"
inherit gettext autotools pkgconfig python3native

View File

@ -0,0 +1,29 @@
DESCRIPTION = "Ext4 creation utility used here because it outputs reproducible builds"
HOMEPAGE = "https://git.subgraph.com.com/isa/make_ext4"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
SRCREV = "5c201be7d72aff735da27e17c29852e0cefe3e52"
SRC_URI = "git://git.subgraph.com/isa/make_ext4fs.git;protocol=https;branch=master"
DEPENDS = "zlib-native"
inherit pkgconfig native
PACKAGECONFIG = ""
S = "${WORKDIR}/git"
BBCLASSEXTEND = "native"
do_compile () {
export LDFLAGS=""
oe_runmake
}
do_install () {
pwd
ls
install -d ${D}${bindir}
install -m 755 -T ${B}/make_ext4fs ${D}${bindir}/make_ext4fs
}

View File

@ -76,6 +76,7 @@ do_compile:prepend:class-native() {
do_compile() {
export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
export NSS_FIPS_DISABLED
export CROSS_COMPILE=1
export NATIVE_CC="${BUILD_CC}"
@ -247,18 +248,6 @@ do_install:append:class-target() {
PACKAGE_WRITE_DEPS += "nss-native"
pkg_postinst:${PN} () {
for I in $D${libdir}/lib*.chk; do
DN=`dirname $I`
BN=`basename $I .chk`
FN=$DN/$BN.so
shlibsign -i $FN
if [ $? -ne 0 ]; then
echo "shlibsign -i $FN failed"
fi
done
}
PACKAGES =+ "${PN}-smime"
FILES:${PN}-smime = "\
${bindir}/smime \

View File

@ -0,0 +1,73 @@
From cfb9327280c3e173b4cfb0ec3ec3d62e729f1e21 Mon Sep 17 00:00:00 2001
From: Bruce Leidl <bruce@subgraph.com>
Date: Fri, 27 Sep 2024 07:34:13 -0400
Subject: [PATCH] Remove System Bus and close application on quit
To facilitage sandboxing remove dependency on system bus. The
system bus is not needed for any plugin that we are using. Also
close the application rather than just hiding the window when
the user exits the application. Otherwise the sandbox will run
forever.
---
lib/gs-plugin-loader.c | 5 +----
lib/gs-plugin.c | 1 -
src/gs-shell.c | 4 +++-
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
index 6661b73..ac57bdc 100644
--- a/lib/gs-plugin-loader.c
+++ b/lib/gs-plugin-loader.c
@@ -1964,8 +1964,6 @@ gs_plugin_loader_setup_async (GsPluginLoader *plugin_loader,
* time. */
if (plugin_loader->session_bus_connection == NULL)
g_bus_get (G_BUS_TYPE_SESSION, cancellable, get_session_bus_cb, g_object_ref (task));
- if (plugin_loader->system_bus_connection == NULL)
- g_bus_get (G_BUS_TYPE_SYSTEM, cancellable, get_system_bus_cb, g_object_ref (task));
finish_setup_get_bus (task);
}
@@ -2032,8 +2030,7 @@ finish_setup_get_bus (GTask *task)
g_autoptr(GError) local_error = NULL;
/* Wait until weve got all the buses we need. */
- if (plugin_loader->session_bus_connection == NULL ||
- plugin_loader->system_bus_connection == NULL)
+ if (plugin_loader->session_bus_connection == NULL)
return;
/* use the default, but this requires a 'make install' */
diff --git a/lib/gs-plugin.c b/lib/gs-plugin.c
index 97bc47e..514d97a 100644
--- a/lib/gs-plugin.c
+++ b/lib/gs-plugin.c
@@ -1606,7 +1606,6 @@ gs_plugin_constructed (GObject *object)
/* Check all required properties have been set. */
g_assert (priv->session_bus_connection != NULL);
- g_assert (priv->system_bus_connection != NULL);
}
static void
diff --git a/src/gs-shell.c b/src/gs-shell.c
index 5c069e2..13bdcc6 100644
--- a/src/gs-shell.c
+++ b/src/gs-shell.c
@@ -1081,6 +1081,8 @@ main_window_closed_cb (GtkWidget *dialog, gpointer user_data)
/* Free unused memory with GNU extension of malloc.h */
malloc_trim (0);
#endif
+ GApplication *app = g_application_get_default ();
+ g_action_group_activate_action(G_ACTION_GROUP(app), "quit", NULL);
return TRUE;
}
@@ -2505,7 +2507,7 @@ gs_shell_class_init (GsShellClass *klass)
gtk_widget_class_bind_template_callback (widget_class, gs_shell_details_page_metainfo_loaded_cb);
gtk_widget_class_bind_template_callback (widget_class, details_page_app_clicked_cb);
- gtk_widget_class_add_binding_action (widget_class, GDK_KEY_q, GDK_CONTROL_MASK, "window.close", NULL);
+ gtk_widget_class_add_binding_action (widget_class, GDK_KEY_q, GDK_CONTROL_MASK, "app.quit", NULL);
}
static void

View File

@ -28,6 +28,7 @@ RDEPENDS:${PN} = "iso-codes"
EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
SRC_URI += " file://0001-Remove-System-Bus-and-close-application-on-quit.patch"
SRC_URI[archive.sha256sum] = "b6eeb789100de94b50ebe2e77f16b26be4c2db15489905f198d060c425e19076"
PACKAGECONFIG ?= "flatpak"

View File

@ -0,0 +1,28 @@
From 805d67b57d1b229f8fafc942df51e7a3b830889a Mon Sep 17 00:00:00 2001
From: isa <isa@subgraph.com>
Date: Thu, 7 Mar 2024 22:06:04 +0000
Subject: [PATCH] Fix reproducibility issue
---
src/daemon/Makefile.am | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
index e7eb1f2..d486819 100644
--- a/src/daemon/Makefile.am
+++ b/src/daemon/Makefile.am
@@ -13,10 +13,10 @@
##
AM_CPPFLAGS = $(LIBGTOP_CFLAGS) @AM_CPPFLAGS@ -D_BSD \
- -DLIBGTOP_COMPILE_SYSTEM="\"`uname -s`\"" \
- -DLIBGTOP_COMPILE_RELEASE="\"`uname -r`\"" \
- -DLIBGTOP_COMPILE_VERSION="\"`uname -v`\"" \
- -DLIBGTOP_COMPILE_MACHINE="\"`uname -m`\""
+ -DLIBGTOP_COMPILE_SYSTEM="\"Linux\"" \
+ -DLIBGTOP_COMPILE_RELEASE="\"6.7.4\"" \
+ -DLIBGTOP_COMPILE_VERSION="\"SMP PREEMPT_DYNAMIC\"" \
+ -DLIBGTOP_COMPILE_MACHINE="\"x86_64\""
if LIBGTOP_NEED_SERVER
suid_sysdeps = $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps_suid-2.0.la

View File

@ -7,6 +7,7 @@ inherit gnomebase lib_package gtk-doc gobject-introspection gettext upstream-ver
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
SRC_URI += " file://0001-Fix-reproducibility-issue.patch"
SRC_URI[archive.sha256sum] = "775676df958e2ea2452f7568f28b2ea581063d312773dd5c0b7624c1b9b2da8c"
DEPENDS = "glib-2.0 libxau"

View File

@ -1 +1 @@
PACKAGES="man manpages neovim iputils-ping tmux vifm gnome-terminal firefox nautilus eog evince unzip x264 yelp"
PACKAGES="man manpages neovim iputils-ping tmux vifm gnome-terminal firefox-esr nautilus eog evince unzip x264 yelp"

View File

@ -26,7 +26,7 @@ PACKAGES="man manpages vim-nox iputils-ping tmux gnome-terminal firefox nautilus
# they can just be deleted. Or you can keep them, the result will be the same.
#
DEBIAN_RELEASE="bullseye"
DEBIAN_RELEASE="bookworm"
DEBIAN_MIRROR="https://deb.debian.org/debian"
#

View File

@ -1,6 +1,6 @@
: ${DEBIAN_MIRROR:="https://deb.debian.org/debian"}
: ${DEBIAN_RELEASE:="bullseye"}
: ${DEBIAN_RELEASE:="bookworm"}
BASE_PACKAGES="iproute2 less xz-utils sudo dbus libpam-systemd openssh-client packagekit-gtk3-module libcanberra-gtk3-module libpulse0 fonts-roboto-hinted bash-completion"

View File

@ -1,6 +1,6 @@
info "Creating user account"
useradd -s /bin/bash -m user
echo "user:user" | chpasswd
echo "user:user" | chpasswd -c NONE
usermod -aG sudo user
echo "export DISPLAY=:0" >> /home/user/.bashrc

View File

@ -3,6 +3,5 @@ info "Writing /etc/apt/sources.list"
{
echo "deb ${DEBIAN_MIRROR} ${DEBIAN_RELEASE} main contrib non-free"
echo "deb ${DEBIAN_MIRROR}-security ${DEBIAN_RELEASE}-security main contrib non-free"
echo "deb ${DEBIAN_MIRROR} unstable main"
} > /etc/apt/sources.list

View File

@ -29,22 +29,43 @@ setup_rootfs() {
}
run_debootstrap() {
#[[ -f ${CACHE_DIR}/lock ]] && rm -f ${CACHE_DIR}/lock
#mkdir --parents ${CACHE_DIR} ${ROOTFS}/var/cache/apt/archives
[[ -f ${CACHE_DIR}/lock ]] && rm -f ${CACHE_DIR}/lock
mkdir --parents ${CACHE_DIR} ${ROOTFS}/var/cache/apt/archives
#info "Bind mounting ${CACHE_DIR} to ${ROOTFS}/var/cache/apt/archives"
#mount --bind ${CACHE_DIR} ${ROOTFS}/var/cache/apt/archives
info "Bind mounting ${CACHE_DIR} to ${ROOTFS}/var/cache/apt/archives"
mount --bind ${CACHE_DIR} ${ROOTFS}/var/cache/apt/archives
info "Launching mmdebstrap"
info "Launching debootstrap"
export SOURCE_DATE_EPOCH="1718285985"
debootstrap --verbose --merged-usr --variant=minbase \
--include=systemd-sysv,locales \
${DEBIAN_RELEASE} ${ROOTFS} ${DEBIAN_MIRROR}
mmdebstrap --variant=minbase \
--include=systemd-sysv,locales,ca-certificates \
${DEBIAN_RELEASE} ${ROOTFS} ${DEBIAN_MIRROR}
}
make_reproducible() {
#umount ${ROOTFS}/var/cache/apt/archives
rm -rdf ${ROOTFS}/var/cache/*
rm ${ROOTFS}/var/log/apt/term.log
rm ${ROOTFS}/var/log/apt/history.log
rm ${ROOTFS}/var/log/bootstrap.log || true
rm ${ROOTFS}/var/log/fontconfig.log || true
rm ${ROOTFS}/var/log/dpkg.log
rm ${ROOTFS}/var/log/alternatives.log
rm ${ROOTFS}/var/log/eipp.log.xz || true
rm -rdf ${ROOTFS}/var/lib/apt/lists/*
awk -i inplace -F":" '{OFS=FS}{ $3="1" ; print }' ${ROOTFS}/etc/shadow # do not record date of last password change
echo "bf58db8bc11448788138633a01a06cdd" > ${ROOTFS}/etc/machine-id
echo "bf58db8bc11448788138633a01a06cdd" > ${ROOTFS}/var/lib/dbus/machine-id
echo -e "# Generated during realmfs build\nnameserver 192.168.4.1" > ${ROOTFS}/etc/resolv.conf
echo -e "# File generated during realmfs build\nLC_COLLATE=C\nLANG=en_US.UTF-8" > ${ROOTFS}/etc/default/locale
}
setup_chroot() {
mount chproc ${ROOTFS}/proc -t proc
mount chsys ${ROOTFS}/sys -t sysfs
mount chtmp ${ROOTFS}/tmp -t tmpfs
@ -60,10 +81,11 @@ setup_chroot() {
}
cleanup_chroot() {
make_reproducible
umount ${ROOTFS}/proc
umount ${ROOTFS}/sys
umount ${ROOTFS}/tmp
umount ${ROOTFS}/var/cache/apt/archives
# Remove cache files in case we are creating a tarball for distribution
rm -f ${ROOTFS}/var/cache/apt/pkgcache.bin
@ -71,7 +93,6 @@ cleanup_chroot() {
}
run_chroot_stage() {
setup_chroot
#
@ -103,15 +124,27 @@ generate_tarball() {
echo
}
build_make_ext4fs() {
cd ${WORKDIR}
if [ ! -d "make_ext4fs" ]; then
git clone https://git.subgraph.com/isa/make_ext4fs.git
fi
cd make_ext4fs
git checkout 5c201be7d72aff735da27e17c29852e0cefe3e52
make
cd ../..
}
generate_image() {
# BLOCKS=$(du -ks ${ROOTFS} | cut -f1)
# BLOCKS=$(expr ${BLOCKS} \* 12 / 10)
# SIZE=$(expr ${BLOCKS} \* 1024)
# echo "Size is ${SIZE}"
build_make_ext4fs
BLOCKS=$(expr 440 \* 1024)
# allow online resize up to 32G
dd if=/dev/zero of=${WORKDIR}/citadel-realmfs.ext4 seek=${BLOCKS} count=0 bs=4096
mkfs.ext4 -d ${ROOTFS} -i 4096 -b 4096 -F ${WORKDIR}/citadel-realmfs.ext4 ${BLOCKS} || exit 1
${WORKDIR}/make_ext4fs/make_ext4fs -l 2G -T "1712775988" -b 4096 ${WORKDIR}/citadel-realmfs.ext4 ${ROOTFS} || exit 1
}
usage() {
@ -156,7 +189,6 @@ try_config() {
}
WORKDIR="$(pwd)/realmfs"
BUILDFILE=""
DO_TAR=0
DO_XZ=0
@ -223,7 +255,7 @@ if [ "$EUID" -ne 0 ]; then
exit 1
fi
if [[ -z ${BUILDFILE} ]]; then
if [[ -z ${BUILDFILE-} ]]; then
BUILDFILE=$(try_config "${PWD}/build.conf" || try_config "${REALMFS_BUILDER_BASE}/basic-image.conf") || fatal "Could not find a configuration file to use"
fi
@ -245,7 +277,6 @@ run_debootstrap
run_chroot_stage
info "rootfs build is completed:"
info " $(du -sh ${ROOTFS})"

View File

@ -30,7 +30,8 @@ RUN apt update && apt install -y gawk \
file \
liblz4-tool \
zstd \
xwayland
xwayland \
mmdebstrap
# python
RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
@ -38,6 +39,7 @@ RUN locale-gen
RUN update-locale LANG=en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LC_CTYPE en_US.UTF-8
ENV LC_COLLATE en_US.UTF-8
RUN useradd -ms /bin/bash builder
RUN echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers