Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package disk-encryption-tool for 
openSUSE:Factory checked in at 2023-12-15 21:47:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/disk-encryption-tool (Old)
 and      /work/SRC/openSUSE:Factory/.disk-encryption-tool.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "disk-encryption-tool"

Fri Dec 15 21:47:23 2023 rev:2 rq:1133050 version:1+git20231214.1708e01

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/disk-encryption-tool/disk-encryption-tool.changes    
    2023-11-17 20:50:31.083291519 +0100
+++ 
/work/SRC/openSUSE:Factory/.disk-encryption-tool.new.25432/disk-encryption-tool.changes
     2023-12-15 21:47:31.570691649 +0100
@@ -1,0 +2,39 @@
+Thu Dec 14 10:05:42 UTC 2023 - lnus...@suse.com
+
+- Update to version 1+git20231214.1708e01:
+  * Add ExclusiveArch for 64-bit EFI architectures
+  * Don't set rw systems ro
+
+-------------------------------------------------------------------
+Wed Dec 13 16:47:45 UTC 2023 - lnus...@suse.com
+
+- Update to version 1+git20231213.cfe4cb3:
+  * Drop the second wipe
+  * Comment where to find the PCRs later
+  * Drop pcr-oracle RSA PEM parameter
+  * Include PCR#9 in the predictions
+  * Drop TPM2 from cryptab
+
+-------------------------------------------------------------------
+Mon Dec 11 07:46:39 UTC 2023 - lnus...@suse.com
+
+- Update to version 1+git20231130.dac7e54:
+  * Silence shellcheck
+  * Drop TPM2 from crypttab
+
+-------------------------------------------------------------------
+Wed Nov 29 13:55:58 UTC 2023 - lnus...@suse.com
+
+- Update to version 1+git20231129.5fb1e1a:
+  * Require tpm2.0-tools
+  * FIDO2 and TPM2 dialog improvements
+  * Fix yesno dialog call o_O
+  * Fix partition resizing on first boot
+  * Add jeos-firstboot-enroll
+  * Requires pcr-enroll
+  * Store generated key as 'cryptenroll' keyring
+  * Update README
+  * Require keyutils
+  * Rename to disk-encryption-tool
+
+-------------------------------------------------------------------

Old:
----
  disk-encryption-tool-1+git20231114.702dff6.obscpio

New:
----
  disk-encryption-tool-1+git20231214.1708e01.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ disk-encryption-tool.spec ++++++
--- /var/tmp/diff_new_pack.jYsabc/_old  2023-12-15 21:47:32.338719722 +0100
+++ /var/tmp/diff_new_pack.jYsabc/_new  2023-12-15 21:47:32.338719722 +0100
@@ -1,7 +1,7 @@
 #
-# spec file for package aaa_base
+# spec file for package disk-encryption-tool
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,6 +16,7 @@
 #
 # icecream 0
 
+
 %if 0%{?_build_in_place}
 %define git_version %(git log '-n1' '--date=format:%Y%m%d' 
'--no-show-signature' "--pretty=format:+git%cd.%h")
 BuildRequires:  git-core
@@ -27,7 +28,7 @@
 %endif
 
 Name:           disk-encryption-tool
-Version:        1+git20231114.702dff6%{git_version}
+Version:        1+git20231214.1708e01%{git_version}
 Release:        0
 Summary:        Tool to reencrypt kiwi raw images
 License:        MIT
@@ -35,6 +36,10 @@
 Source:         disk-encryption-tool-%{version}.tar
 Requires:       cryptsetup
 Requires:       keyutils
+Requires:       pcr-oracle
+# something needs to require it. Can be us.
+Requires:       tpm2.0-tools
+ExclusiveArch:  aarch64 ppc64le riscv64 x86_64
 
 %description
 Convert a plain text kiwi image into one with LUKS full disk
@@ -59,6 +64,7 @@
 install -D -m 644 jeos-firstboot-diskencrypt-override.conf \
        
%{buildroot}/usr/lib/systemd/system/jeos-firstboot.service.d/jeos-firstboot-diskencrypt-override.conf
 install -D -m 644 jeos-firstboot-diskencrypt 
%buildroot/usr/share/jeos-firstboot/modules/diskencrypt
+install -D -m 644 jeos-firstboot-enroll 
%buildroot/usr/share/jeos-firstboot/modules/enroll
 
 %files
 %license LICENSE
@@ -70,6 +76,7 @@
 %dir /usr/share/jeos-firstboot
 %dir /usr/share/jeos-firstboot/modules
 /usr/share/jeos-firstboot/modules/diskencrypt
+/usr/share/jeos-firstboot/modules/enroll
 %dir /usr/lib/systemd/system/jeos-firstboot.service.d
 
/usr/lib/systemd/system/jeos-firstboot.service.d/jeos-firstboot-diskencrypt-override.conf
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.jYsabc/_old  2023-12-15 21:47:32.362720599 +0100
+++ /var/tmp/diff_new_pack.jYsabc/_new  2023-12-15 21:47:32.366720746 +0100
@@ -1,7 +1,7 @@
 <services>
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
-    <param 
name="url">https://github.com/lnussel/disk-encryption-tool.git</param>
+    <param 
name="url">https://github.com/openSUSE/disk-encryption-tool.git</param>
     <param name="revision">master</param>
     <param name="versionformat">1+git%cd.%h</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.jYsabc/_old  2023-12-15 21:47:32.382721330 +0100
+++ /var/tmp/diff_new_pack.jYsabc/_new  2023-12-15 21:47:32.386721477 +0100
@@ -1,6 +1,8 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/lnussel/disk-encryption-tool.git</param>
-              <param 
name="changesrevision">702dff62d37b74244b58b41f78b41cd2befe581b</param></service></servicedata>
+              <param 
name="changesrevision">702dff62d37b74244b58b41f78b41cd2befe581b</param></service><service
 name="tar_scm">
+                <param 
name="url">https://github.com/openSUSE/disk-encryption-tool.git</param>
+              <param 
name="changesrevision">1708e014184aba1d69c3294a990594a35abbe71c</param></service></servicedata>
 (No newline at EOF)
 

++++++ disk-encryption-tool-1+git20231114.702dff6.obscpio -> 
disk-encryption-tool-1+git20231214.1708e01.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disk-encryption-tool-1+git20231114.702dff6/README.md 
new/disk-encryption-tool-1+git20231214.1708e01/README.md
--- old/disk-encryption-tool-1+git20231114.702dff6/README.md    2023-11-14 
17:06:49.000000000 +0100
+++ new/disk-encryption-tool-1+git20231214.1708e01/README.md    2023-12-14 
11:04:59.000000000 +0100
@@ -1,23 +1,36 @@
-Convert a plain text kiwi image into one with LUKS full disk
-encryption. Supports both raw and qcow2 images. It assumes that the
-third partition is the root fs using btrfs.
-After encrypting the disk, the fs is mounted and a new initrd
-created as well as the grub2 config adjusted.
-
-The script can either encrypt the image directly, or alternatively
-add code to the initrd of the image. In the latter case the image
-would encrypt itself on first boot.
+Tool to turn a plain text image into one using LUKS full disk
+encryption. There are three modes:
 
-Example to encrypt an image:
+* Directly encrypt a disk image on a host system. The image can then
+  be deployed somewhere else
+* Prime a disk image by adding code to the initrd of the image that
+  encrypts the image on first boot
+* Include the initrd code already when building an image. The image
+  would then encrypt itself on first boot.
+
+In general the tool is developed with [kiwi](https://github.com/OSInside/kiwi)
+in mind. It assumes that the image contains a single root fs using btrfs in the
+third partition. Both grub2 and systemd-boot are supported. The tool generates
+a
+
+Example to directly encrypt an image:
 
     disk-encryption-tool -v SLE-Micro.x86_64-5.4.0-Default-GM.raw
 
-Example to encrypt on first boot:
+Example to prime a plain text image to encrypt on first boot:
 
     disk-encryption-tool -v --prime SLE-Micro.x86_64-5.4.0-Default-GM.raw
 
+
+When run on first boot the tool integrates with
+[jeos-firstboot](https://github.com/openSUSE/jeos-firstboot/). The encryption
+in initrd deploys an automatically generated recovery key, compatible with
+[systemd-cryptenroll](https://www.freedesktop.org/software/systemd/man/latest/systemd-cryptenroll.html).
+Later in the real root a jeos-firsboot module then offers to deploy
+either the root password or another custom passphrase as well.
+
 Parameters for cryptsetup-reencrypt(8) can be passed via
-/etc/encrypt_options. One option per line, e.g.
+`/etc/encrypt_options`. One option per line, e.g.
 
    --type=luks1
    --iter-time=2000
@@ -28,7 +41,7 @@
     #!/bin/bash
     # combustion: encrypt
     if [ "$1" = "--encrypt" ]; then
-        echo 12345 | disk-encryption-tool -v
+        echo 12345 | disk-encryption-tool -v --gen-key
     else
         echo root:12345 | chpasswd
     fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disk-encryption-tool-1+git20231114.702dff6/disk-encryption-tool 
new/disk-encryption-tool-1+git20231214.1708e01/disk-encryption-tool
--- old/disk-encryption-tool-1+git20231114.702dff6/disk-encryption-tool 
2023-11-14 17:06:49.000000000 +0100
+++ new/disk-encryption-tool-1+git20231214.1708e01/disk-encryption-tool 
2023-12-14 11:04:59.000000000 +0100
@@ -208,6 +208,9 @@
 
 make_rw()
 {
+       local prop
+       read -r prop < <(btrfs prop get -t s "$mp" ro)
+       [ "$prop" = "ro=true" ] || return 0
        log_info "switch to rw"
        btrfs prop set -t s "$mp" ro false
        switched_rw=1
@@ -355,7 +358,9 @@
 if [ -n "$gen_key" ]; then
        read -r password < <(generate-recovery-key)
        echo -e "Recovery key: \e[1m$password\e[m"
-       read -r key_id < <(echo -n "$password" | keyctl padd user 
disk-encryption-tool-recovery-key @u)
+       if [ -e /etc/initrd-release ]; then
+               read -r key_id < <(echo -n "$password" | keyctl padd user 
cryptenroll @u)
+       fi
 fi
 
 echo "Encrypting..."
@@ -363,6 +368,16 @@
 
 log_info "grow partition again"
 echo ", +" | sfdisk --no-reread -q -N "$partno" "$blkdev"
+if [ -e /etc/initrd-release ]; then
+       # seems to be the only way to tell the kernel about a specific 
partition change
+       partx -u --nr "$partno" "$blkdev" || :
+       # now resize the mapping. For some reason cryptsetup wants a 
passphrase. Hack
+       # around this by installing a token that makes it read the key we 
installed
+       # before, then remove the token again o_O
+       cryptsetup token add --key-slot 0 --key-description cryptenroll 
--token-id 9 "$blkpart"
+       cryptsetup resize "$cr_name" < /dev/null
+       cryptsetup token remove --token-id 9 "$blkpart"
+fi
 
 if [ -z "$mounted" ]; then
        mount -o rw "$cr_dev" "/mnt"
@@ -383,13 +398,13 @@
 
 make_rw
 
-crypttab_options="x-initrd.attach"
-# this triggers dracut to add tpm2 code. should actually look at tokens
-if [ -e "/sys/class/tpm/tpm0" ]; then
-       crypttab_options+=",tpm2-device=auto"
-fi
+declare loop_UUID
 eval "$(blkid -c /dev/null -o export "$blkpart"|sed 's/^/loop_/')"
-echo "$cr_name /dev/disk/by-uuid/$loop_UUID none $crypttab_options" > 
"$mp"/etc/crypttab
+if [ -n "$loop_UUID" ]; then
+       echo "$cr_name /dev/disk/by-uuid/$loop_UUID none x-initrd.attach" > 
"$mp"/etc/crypttab
+else
+       warn "Can't determine device UUID. Can't generate crypttab"
+fi
 
 mountstuff
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disk-encryption-tool-1+git20231114.702dff6/disk-encryption-tool-dracut.service
 
new/disk-encryption-tool-1+git20231214.1708e01/disk-encryption-tool-dracut.service
--- 
old/disk-encryption-tool-1+git20231114.702dff6/disk-encryption-tool-dracut.service
  2023-11-14 17:06:49.000000000 +0100
+++ 
new/disk-encryption-tool-1+git20231214.1708e01/disk-encryption-tool-dracut.service
  2023-12-14 11:04:59.000000000 +0100
@@ -29,6 +29,7 @@
 
 [Service]
 Type=oneshot
+KeyringMode=shared
 ExecStart=/usr/bin/disk-encryption-tool-dracut
 
 [Install]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disk-encryption-tool-1+git20231114.702dff6/disk-encryption-tool.spec 
new/disk-encryption-tool-1+git20231214.1708e01/disk-encryption-tool.spec
--- old/disk-encryption-tool-1+git20231114.702dff6/disk-encryption-tool.spec    
2023-11-14 17:06:49.000000000 +0100
+++ new/disk-encryption-tool-1+git20231214.1708e01/disk-encryption-tool.spec    
2023-12-14 11:04:59.000000000 +0100
@@ -35,6 +35,10 @@
 Source:         disk-encryption-tool-%{version}.tar
 Requires:       cryptsetup
 Requires:       keyutils
+Requires:       pcr-oracle
+# something needs to require it. Can be us.
+Requires:       tpm2.0-tools
+ExclusiveArch:  aarch64 ppc64le riscv64 x86_64
 
 %description
 Convert a plain text kiwi image into one with LUKS full disk
@@ -59,6 +63,7 @@
 install -D -m 644 jeos-firstboot-diskencrypt-override.conf \
        
%{buildroot}/usr/lib/systemd/system/jeos-firstboot.service.d/jeos-firstboot-diskencrypt-override.conf
 install -D -m 644 jeos-firstboot-diskencrypt 
%buildroot/usr/share/jeos-firstboot/modules/diskencrypt
+install -D -m 644 jeos-firstboot-enroll 
%buildroot/usr/share/jeos-firstboot/modules/enroll
 
 %files
 %license LICENSE
@@ -70,6 +75,7 @@
 %dir /usr/share/jeos-firstboot
 %dir /usr/share/jeos-firstboot/modules
 /usr/share/jeos-firstboot/modules/diskencrypt
+/usr/share/jeos-firstboot/modules/enroll
 %dir /usr/lib/systemd/system/jeos-firstboot.service.d
 
/usr/lib/systemd/system/jeos-firstboot.service.d/jeos-firstboot-diskencrypt-override.conf
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disk-encryption-tool-1+git20231114.702dff6/jeos-firstboot-diskencrypt 
new/disk-encryption-tool-1+git20231214.1708e01/jeos-firstboot-diskencrypt
--- old/disk-encryption-tool-1+git20231114.702dff6/jeos-firstboot-diskencrypt   
2023-11-14 17:06:49.000000000 +0100
+++ new/disk-encryption-tool-1+git20231214.1708e01/jeos-firstboot-diskencrypt   
2023-12-14 11:04:59.000000000 +0100
@@ -5,7 +5,7 @@
 crypt_devs=()
 
 diskencrypt_systemd_firstboot() {
-       crypt_keyid="$(keyctl search @u user disk-encryption-tool-recovery-key)"
+       crypt_keyid="$(keyctl id %user:cryptenroll)"
        [ -n "$crypt_keyid" ] || return 0
        local dev
        while read -r dev fstype; do
@@ -18,7 +18,7 @@
                return 0
        fi
 
-       if [ -n "$password" ] && d --yesno $"Use root password as encryption 
password?" 0 0; then
+       if [ -n "$password" ] && dialog $dialog_alternate_screen --backtitle 
"$PRETTY_NAME" --yesno $"Use root password as encryption password?" 0 0; then
                crypt_pw="$password"
        else
                while true; do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disk-encryption-tool-1+git20231114.702dff6/jeos-firstboot-enroll 
new/disk-encryption-tool-1+git20231214.1708e01/jeos-firstboot-enroll
--- old/disk-encryption-tool-1+git20231114.702dff6/jeos-firstboot-enroll        
1970-01-01 01:00:00.000000000 +0100
+++ new/disk-encryption-tool-1+git20231214.1708e01/jeos-firstboot-enroll        
2023-12-14 11:04:59.000000000 +0100
@@ -0,0 +1,136 @@
+#!/bin/bash
+
+crypt_keyid=""
+with_fido2=
+with_tpm2=
+
+# After the enrolling, other tools can find this list in the LUKS
+# header
+pcrs="0,2,4,7,9"
+
+enroll_systemd_firstboot() {
+    crypt_keyid="$(keyctl id %user:cryptenroll)"
+    [ -n "$crypt_keyid" ] || return 0
+    [ -e /usr/bin/systemd-cryptenroll ] || return 0
+
+    local has_fido2=${JEOS_HAS_FIDO2:-}
+    local has_tpm2=
+
+    [ -z "$(systemd-cryptenroll --fido2-device=list 2>/dev/null)" ] || 
has_fido2=1
+    [ -e '/sys/class/tpm/tpm0' ] && has_tpm2=1
+
+   # For now seems that if a FIDO2 key is enrolled, it will take
+   # precedence over the TPM2 and the key will be asked to be present
+   # in subsequent boots.
+   if [ "$has_fido2" = '1' ] && [ "$has_tpm2" = '1' ]; then
+       local list=('FIDO2' 'FIDO2' 'TPM2' 'TPM2' 'none' $"Skip")
+       d --no-tags --default-item 'FIDO2' --menu $"Select unlock device" 0 0 
"$(menuheight ${#list[@]})" "${list[@]}"
+       [ "$result" = 'FIDO2' ] && with_fido2=1
+       [ "$result" = 'TPM2' ] && with_tpm2=1
+    elif [ "$has_fido2" ]; then
+       dialog $dialog_alternate_screen --backtitle "$PRETTY_NAME" --yesno 
$"Unlock encrypted disk via FIDO2 token?" 0 0 && with_fido2=1
+    elif [ "$has_tpm2" ]; then
+       dialog $dialog_alternate_screen --backtitle "$PRETTY_NAME" --yesno 
$"Unlock encrypted disk via TPM?" 0 0 && with_tpm2=1
+    fi
+    return 0
+}
+
+enroll_fido2() {
+    local dev="$1"
+
+    echo "Enrolling with FIDO2: $dev"
+
+    # The password is read from "cryptenroll" kernel keyring
+    run systemd-cryptenroll --fido2-device=auto "$dev"
+}
+
+generate_key() {
+    [ -z "$dry" ] && mkdir -p /etc/systemd
+    run pcr-oracle \
+       --rsa-generate-key \
+       --private-key /etc/systemd/tpm2-pcr-private-key.pem \
+       --public-key /etc/systemd/tpm2-pcr-public-key.pem \
+       store-public-key
+}
+
+enroll_tpm2() {
+    local dev="$1"
+
+    echo "Enrolling with TPM2: $dev"
+
+    # The password is read from "cryptenroll" kernel keyring
+    # XXX: Wipe is separated by now (possible systemd bug)
+    run systemd-cryptenroll \
+       --wipe-slot=tpm2 \
+       "$dev"
+
+    run systemd-cryptenroll \
+       --tpm2-device=auto \
+       --tpm2-public-key=/etc/systemd/tpm2-pcr-public-key.pem \
+       --tpm2-public-key-pcrs="$pcrs" \
+       "$dev"
+}
+
+update_crypttab_options() {
+    # This version will share the same options for all crypto_LUKS
+    # devices.  This imply that all of them will be unlocked by the
+    # same TPM2, or the same FIDO2 key
+    local options="$1"
+
+    # TODO: this needs to be unified with disk-encryption-tool
+    local crypttab
+    if [ -z "$dry" ]; then
+           crypttab="$(mktemp -t disk-encryption-tool.crypttab.XXXXXX)"
+    else
+           crypttab=/dev/stdout
+    fi
+    echo "# File created by jeos-firstboot-enroll.  Comments will be removed" 
> "$crypttab"
+
+    local name
+    local device
+    local key
+    local opts
+    while read -r name device key opts; do
+       [[ "$name" = \#* ]] && continue
+       echo "$name $device $key $options" >> "$crypttab"
+    done < /etc/crypttab
+
+    run mv "$crypttab" /etc/crypttab
+    run chmod 644 /etc/crypttab
+}
+
+enroll_post() {
+    [ -n "$crypt_keyid" ] || return 0
+    [ -e /usr/bin/systemd-cryptenroll ] || return 0
+
+    local dev
+    local fstype
+    if [ -z "$crypt_devs" ]; then
+           while read -r dev fstype; do
+               [ "$fstype" = 'crypto_LUKS' ] || continue
+               crypt_devs+=("$dev")
+           done < <(lsblk --noheadings -o PATH,FSTYPE)
+    fi
+
+    crypttab_options="x-initrd.attach"
+
+    if [ "$with_fido2" = '1' ]; then
+       for dev in "${crypt_devs[@]}"; do
+           enroll_fido2 "$dev"
+       done
+       crypttab_options+=",fido2-device=auto"
+    fi
+
+    if [ "$with_tpm2" = '1' ]; then
+       generate_key
+       
+       for dev in "${crypt_devs[@]}"; do
+           enroll_tpm2 "$dev"
+       done
+       crypttab_options+=",tpm2-device=auto"
+    fi
+
+    update_crypttab_options "$crypttab_options"
+
+    run sdbootutil add-all-kernels --no-reuse-initrd
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disk-encryption-tool-1+git20231114.702dff6/module-setup.sh 
new/disk-encryption-tool-1+git20231214.1708e01/module-setup.sh
--- old/disk-encryption-tool-1+git20231114.702dff6/module-setup.sh      
2023-11-14 17:06:49.000000000 +0100
+++ new/disk-encryption-tool-1+git20231214.1708e01/module-setup.sh      
2023-12-14 11:04:59.000000000 +0100
@@ -15,7 +15,7 @@
 # called by dracut
 install() {
        inst_multiple -o cryptsetup-reencrypt
-       inst_multiple cryptsetup btrfs mktemp getopt mountpoint findmnt sfdisk 
tac sed hexdump keyctl
+       inst_multiple cryptsetup btrfs mktemp getopt mountpoint findmnt sfdisk 
tac sed hexdump keyctl partx
 
        inst_script "$moddir"/disk-encryption-tool /usr/bin/disk-encryption-tool
        inst_script "$moddir"/disk-encryption-tool-dracut 
/usr/bin/disk-encryption-tool-dracut

++++++ disk-encryption-tool.obsinfo ++++++
--- /var/tmp/diff_new_pack.jYsabc/_old  2023-12-15 21:47:32.466724400 +0100
+++ /var/tmp/diff_new_pack.jYsabc/_new  2023-12-15 21:47:32.470724547 +0100
@@ -1,5 +1,5 @@
 name: disk-encryption-tool
-version: 1+git20231114.702dff6
-mtime: 1699978009
-commit: 702dff62d37b74244b58b41f78b41cd2befe581b
+version: 1+git20231214.1708e01
+mtime: 1702548299
+commit: 1708e014184aba1d69c3294a990594a35abbe71c
 

Reply via email to