These raw log messages are meant to help Ambient developers figure out problems. You can ignore them.
{
"type": "executor_starts",
"name": "ambient-execute-plan",
"version": "0.13.1@52633e5",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 363490886
},
"log_source": "Plan"
}{
"type": "runnable_plan",
"steps": [
{
"action": "mkdir",
"pathname": "/ci"
},
{
"action": "mkdir",
"pathname": "/ci/artifacts"
},
{
"action": "tar_extract",
"archive": "/dev/vdc",
"directory": "/ci/src"
},
{
"action": "tar_extract",
"archive": "/dev/vdf",
"directory": "/ci/deps"
},
{
"action": "tar_extract",
"archive": "/dev/vde",
"directory": "/ci/cache"
},
{
"action": "shell",
"shell": "ln -sf /ci /workspace"
},
{
"action": "shell",
"shell": "git config --global user.name 'Ambient CI'"
},
{
"action": "shell",
"shell": "git config --global user.email ambient@example.com"
},
{
"action": "cargo_clippy"
},
{
"action": "cargo_build"
},
{
"action": "cargo_test"
},
{
"action": "shell",
"shell": "export PATH=/root/.cargo/bin:/bin:/sbin\nls -l \"$CARGO_TARGET_DIR\"\nmake TARGET= subplot doc\nfind doc -ls\nmkdir -p /ci/artifacts/rsync\ncp obnam.html doc/*.html /ci/artifacts/rsync\n"
},
{
"action": "custom",
"name": "dch",
"args": {
"debfullname": "Lars Wirzenius",
"debemail": "liw@liw.fi"
}
},
{
"action": "deb",
"packages": "debian"
},
{
"action": "tar_create",
"archive": "/dev/vde",
"directory": "/ci/cache"
},
{
"action": "tar_create",
"archive": "/dev/vdd",
"directory": "/ci/artifacts"
}
],
"executor_drive": "/dev/vdb",
"source_drive": "/dev/vdc",
"artifact_drive": "/dev/vdd",
"cache_drive": "/dev/vde",
"deps_drive": "/dev/vdf",
"workspace_dir": "/ci",
"source_dir": "/ci/src",
"deps_dir": "/ci/deps",
"cache_dir": "/ci/cache",
"artifacts_dir": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 368090523
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "mkdir",
"pathname": "/ci",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 402137077
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "mkdir",
"pathname": "/ci",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 402810102
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "mkdir",
"pathname": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 403009787
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "mkdir",
"pathname": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 403372279
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_extract",
"archive": "/dev/vdc",
"directory": "/ci/src",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 403919343
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_extract",
"archive": "/dev/vdc",
"directory": "/ci/src",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 452164535
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_extract",
"archive": "/dev/vdf",
"directory": "/ci/deps",
"timestamp": {
"secs_since_epoch": 1774373000,
"nanos_since_epoch": 452217462
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_extract",
"archive": "/dev/vdf",
"directory": "/ci/deps",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 474957256
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_extract",
"archive": "/dev/vde",
"directory": "/ci/cache",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 479292787
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_extract",
"archive": "/dev/vde",
"directory": "/ci/cache",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 486599278
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "ln -sf /ci /workspace",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 490919274
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
98,
97,
115,
104
]
},
{
"Unix": [
45,
99
]
},
{
"Unix": [
115,
101,
116,
32,
45,
120,
101,
117,
111,
32,
112,
105,
112,
101,
102,
97,
105,
108,
10,
108,
110,
32,
45,
115,
102,
32,
47,
99,
105,
32,
47,
119,
111,
114,
107,
115,
112,
97,
99,
101,
10
]
}
],
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 494745060
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": "+ ln -sf /ci /workspace\n",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 509515944
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "ln -sf /ci /workspace",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 513806487
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "git config --global user.name 'Ambient CI'",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 517714175
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
98,
97,
115,
104
]
},
{
"Unix": [
45,
99
]
},
{
"Unix": [
115,
101,
116,
32,
45,
120,
101,
117,
111,
32,
112,
105,
112,
101,
102,
97,
105,
108,
10,
103,
105,
116,
32,
99,
111,
110,
102,
105,
103,
32,
45,
45,
103,
108,
111,
98,
97,
108,
32,
117,
115,
101,
114,
46,
110,
97,
109,
101,
32,
39,
65,
109,
98,
105,
101,
110,
116,
32,
67,
73,
39,
10
]
}
],
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 521996493
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": "+ git config --global user.name 'Ambient CI'\n",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 550713965
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "git config --global user.name 'Ambient CI'",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 555728298
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "git config --global user.email ambient@example.com",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 560093451
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
98,
97,
115,
104
]
},
{
"Unix": [
45,
99
]
},
{
"Unix": [
115,
101,
116,
32,
45,
120,
101,
117,
111,
32,
112,
105,
112,
101,
102,
97,
105,
108,
10,
103,
105,
116,
32,
99,
111,
110,
102,
105,
103,
32,
45,
45,
103,
108,
111,
98,
97,
108,
32,
117,
115,
101,
114,
46,
101,
109,
97,
105,
108,
32,
97,
109,
98,
105,
101,
110,
116,
64,
101,
120,
97,
109,
112,
108,
101,
46,
99,
111,
109,
10
]
}
],
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 565510672
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": "+ git config --global user.email ambient@example.com\n",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 581662885
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "git config --global user.email ambient@example.com",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 581766235
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "cargo_clippy",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 581779323
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 581792313
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "cargo 1.94.0 (85eff7c80 2026-01-15)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 717848565
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
99,
108,
105,
112,
112,
121
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 721990016
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "clippy 0.1.94 (4a4ef493e3 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 942505150
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
114,
117,
115,
116,
99
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373002,
"nanos_since_epoch": 947078609
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "rustc 1.94.0 (4a4ef493e 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373003,
"nanos_since_epoch": 44354332
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
99,
108,
105,
112,
112,
121
]
},
{
"Unix": [
45,
45,
111,
102,
102,
108,
105,
110,
101
]
},
{
"Unix": [
45,
45,
108,
111,
99,
107,
101,
100
]
},
{
"Unix": [
45,
45,
119,
111,
114,
107,
115,
112,
97,
99,
101
]
},
{
"Unix": [
45,
45,
97,
108,
108,
45,
116,
97,
114,
103,
101,
116,
115
]
},
{
"Unix": [
45,
45,
110,
111,
45,
100,
101,
112,
115
]
},
{
"Unix": [
45,
45
]
},
{
"Unix": [
45,
45,
100,
101,
110,
121
]
},
{
"Unix": [
119,
97,
114,
110,
105,
110,
103,
115
]
}
],
"timestamp": {
"secs_since_epoch": 1774373003,
"nanos_since_epoch": 44425326
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": " Compiling libc v0.2.177\n Compiling proc-macro2 v1.0.103\n Compiling unicode-ident v1.0.22\n Compiling quote v1.0.42\n Checking cfg-if v1.0.4\n Compiling syn v2.0.110\n Compiling serde_core v1.0.228\n Checking itoa v1.0.15\n Checking memchr v2.7.6\n Compiling version_check v0.9.5\n Compiling serde v1.0.228\n Compiling typenum v1.19.0\n Compiling generic-array v0.14.7\n Checking bitflags v2.10.0\n Checking once_cell v1.21.3\n Compiling rustix v1.1.2\n Compiling getrandom v0.3.4\n Compiling zmij v1.0.18\n Compiling serde_derive v1.0.228\n Checking linux-raw-sys v0.11.0\n Checking log v0.4.28\n Checking aho-corasick v1.1.4\n Checking getrandom v0.2.16\n Compiling serde_json v1.0.149\n Checking subtle v2.6.1\n Compiling thiserror v2.0.17\n Checking pin-project-lite v0.2.16\n Checking utf8parse v0.2.2\n Checking regex-syntax v0.8.8\n Checking anstyle-parse v0.2.7\n Checking rand_core v0.6.4\n Compiling thiserror-impl v2.0.17\n Checking regex-automata v0.4.13\n Compiling time-core v0.1.6\n Checking is_terminal_polyfill v1.70.2\n Checking futures-core v0.3.31\n Checking colorchoice v1.0.4\n Checking anstyle-query v1.1.5\n Compiling num-conv v0.1.0\n Checking anstyle v1.0.13\n Checking ryu v1.0.20\n Checking smallvec v1.15.1\n Compiling powerfmt v0.2.0\n Compiling deranged v0.5.5\n Checking regex v1.12.2\n Checking anstream v0.6.21\n Compiling time-macros v0.2.24\n Checking crypto-common v0.1.7\n Checking zeroize v1.8.2\n Checking hashbrown v0.16.0\n Checking winnow v0.7.13\n Checking bytes v1.11.1\n Checking equivalent v1.0.2\n Checking indexmap v2.12.0\n Checking toml_parser v1.0.4\n Checking http v1.4.0\n Compiling time v0.3.44\n Checking terminal_size v0.4.3\n Checking serde_spanned v1.0.3\n Checking toml_datetime v0.7.3\n Checking dirs-sys-next v0.1.2\n Compiling heck v0.5.0\n Checking toml_writer v1.0.4\n Checking strsim v0.11.1\n Checking fastrand v2.3.0\n Checking clap_lex v0.7.6\n Checking unsafe-libyaml-norway v0.2.15\n Compiling git-testament-derive v0.2.1\n Checking serde_norway v0.9.42\n Checking tempfile v3.23.0\n Checking clap_builder v4.5.51\n Checking toml v0.9.8\n Compiling clap_derive v4.5.49\n Checking directories-next v2.0.0\n Checking http-body v1.0.1\n Checking env_filter v0.1.4\n Compiling tokio-macros v2.6.0\n Checking mio v1.1.0\n Checking socket2 v0.6.2\n Checking pin-utils v0.1.0\n Compiling httparse v1.10.1\n Compiling mutants v0.0.3\n Checking jiff v0.2.16\n Compiling semver v1.0.27\n Compiling rustc_version v0.4.1\n Checking clap v4.5.51\n Checking clingwrap v0.6.0\n Checking tokio v1.49.0\n Checking env_logger v0.11.8\n Checking git-testament v0.2.6\n Checking inout v0.1.4\n Checking tracing-core v0.1.36\n Checking tower-service v0.3.3\n Compiling pkg-config v0.3.32\n Compiling vcpkg v0.2.15\n Checking scopeguard v1.2.0\n Checking lock_api v0.4.14\n Checking tracing v0.1.44\n Checking cipher v0.4.4\n Compiling libsqlite3-sys v0.35.0\n Compiling heapless v0.7.17\n Checking futures-channel v0.3.31\n Checking byteorder v1.5.0\n Checking sync_wrapper v1.0.2\n Compiling crc32fast v1.5.0\n Checking atomic-waker v1.1.2\n Checking futures-task v0.3.31\n Checking foldhash v0.1.5\n Checking percent-encoding v2.3.2\n Checking tower-layer v0.3.3\n Checking httpdate v1.0.3\n Checking cpufeatures v0.2.17\n Checking hyper v1.8.1\n Checking form_urlencoded v1.2.2\n Checking hashbrown v0.15.5\n Checking futures-util v0.3.31\n Checking hash32 v0.2.1\n Checking spin v0.9.8\n Checking http-body-util v0.1.3\n Checking universal-hash v0.5.1\n Checking fiat-crypto v0.3.0\n Checking adler2 v2.0.1\n Checking simd-adler32 v0.3.8\n Checking mime v0.3.17\n Checking opaque-debug v0.3.1\n Checking stable_deref_trait v1.2.1\n Checking polyval v0.6.2\n Checking axum-core v0.5.6\n Checking miniz_oxide v0.8.9\n Checking tower v0.5.3\n Checking hashlink v0.10.0\n Checking serde_urlencoded v0.7.1\n Checking hyper-util v0.1.20\n Checking orion v0.17.12\n Checking aes v0.8.4\n Checking ctr v0.9.2\n Checking aead v0.5.2\n Checking cobs v0.3.0\n Checking ed25519-compact v2.2.0\n Compiling axum-macros v0.5.0\n Checking serde_path_to_error v0.1.20\n Checking ct-codecs v1.1.6\n Checking fallible-streaming-iterator v0.1.9\n Checking matchit v0.8.4\n Checking fallible-iterator v0.3.0\n Checking rusqlite v0.37.0\n Checking pasetors v0.7.7\n Checking axum v0.8.8\n Checking postcard v1.1.3\n Checking aes-gcm-siv v0.11.1\n Checking flate2 v1.1.8\n Checking uuid v1.20.0\n Checking hostname v0.4.2\n Checking obnam v0.10.0 (/ci/src/obnam)\n Checking obnam-server v0.1.0 (/ci/src/obnam-server)\n Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s\n",
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 30535537
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "cargo_clippy",
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 156659095
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "cargo_build",
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 159978055
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 163075548
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "cargo 1.94.0 (85eff7c80 2026-01-15)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 248775260
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
99,
108,
105,
112,
112,
121
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 248847846
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "clippy 0.1.94 (4a4ef493e3 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 441375530
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
114,
117,
115,
116,
99
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 448540181
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "rustc 1.94.0 (4a4ef493e 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 542103189
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
98,
117,
105,
108,
100
]
},
{
"Unix": [
45,
45,
111,
102,
102,
108,
105,
110,
101
]
},
{
"Unix": [
45,
45,
108,
111,
99,
107,
101,
100
]
},
{
"Unix": [
45,
45,
119,
111,
114,
107,
115,
112,
97,
99,
101
]
},
{
"Unix": [
45,
45,
97,
108,
108,
45,
116,
97,
114,
103,
101,
116,
115
]
}
],
"timestamp": {
"secs_since_epoch": 1774373082,
"nanos_since_epoch": 546532455
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": " Compiling libc v0.2.177\n Compiling cfg-if v1.0.4\n Compiling itoa v1.0.15\n Compiling serde_core v1.0.228\n Compiling memchr v2.7.6\n Compiling bitflags v2.10.0\n Compiling once_cell v1.21.3\n Compiling typenum v1.19.0\n Compiling serde v1.0.228\n Compiling linux-raw-sys v0.11.0\n Compiling log v0.4.28\n Compiling time-core v0.1.6\n Compiling num-conv v0.1.0\n Compiling powerfmt v0.2.0\n Compiling rustix v1.1.2\n Compiling deranged v0.5.5\n Compiling generic-array v0.14.7\n Compiling getrandom v0.3.4\n Compiling aho-corasick v1.1.4\n Compiling getrandom v0.2.16\n Compiling utf8parse v0.2.2\n Compiling subtle v2.6.1\n Compiling regex-syntax v0.8.8\n Compiling pin-project-lite v0.2.16\n Compiling anstyle-parse v0.2.7\n Compiling regex-automata v0.4.13\n Compiling rand_core v0.6.4\n Compiling zmij v1.0.18\n Compiling futures-core v0.3.31\n Compiling smallvec v1.15.1\n Compiling anstyle-query v1.1.5\n Compiling anstyle v1.0.13\n Compiling ryu v1.0.20\n Compiling is_terminal_polyfill v1.70.2\n Compiling colorchoice v1.0.4\n Compiling anstream v0.6.21\n Compiling regex v1.12.2\n Compiling thiserror v2.0.17\n Compiling serde_json v1.0.149\n Compiling crypto-common v0.1.7\n Compiling time-macros v0.2.24\n Compiling equivalent v1.0.2\n Compiling zeroize v1.8.2\n Compiling winnow v0.7.13\n Compiling bytes v1.11.1\n Compiling hashbrown v0.16.0\n Compiling indexmap v2.12.0\n Compiling toml_parser v1.0.4\n Compiling http v1.4.0\n Compiling time v0.3.44\n Compiling terminal_size v0.4.3\n Compiling toml_datetime v0.7.3\n Compiling serde_spanned v1.0.3\n Compiling dirs-sys-next v0.1.2\n Compiling strsim v0.11.1\n Compiling clap_lex v0.7.6\n Compiling unsafe-libyaml-norway v0.2.15\n Compiling fastrand v2.3.0\n Compiling toml_writer v1.0.4\n Compiling git-testament-derive v0.2.1\n Compiling serde_norway v0.9.42\n Compiling toml v0.9.8\n Compiling tempfile v3.23.0\n Compiling clap_builder v4.5.51\n Compiling directories-next v2.0.0\n Compiling http-body v1.0.1\n Compiling env_filter v0.1.4\n Compiling mio v1.1.0\n Compiling socket2 v0.6.2\n Compiling pin-utils v0.1.0\n Compiling jiff v0.2.16\n Compiling clap v4.5.51\n Compiling clingwrap v0.6.0\n Compiling tokio v1.49.0\n Compiling env_logger v0.11.8\n Compiling git-testament v0.2.6\n Compiling inout v0.1.4\n Compiling tracing-core v0.1.36\n Compiling scopeguard v1.2.0\n Compiling tower-service v0.3.3\n Compiling lock_api v0.4.14\n Compiling tracing v0.1.44\n Compiling cipher v0.4.4\n Compiling httparse v1.10.1\n Compiling futures-channel v0.3.31\n Compiling atomic-waker v1.1.2\n Compiling sync_wrapper v1.0.2\n Compiling byteorder v1.5.0\n Compiling tower-layer v0.3.3\n Compiling foldhash v0.1.5\n Compiling cpufeatures v0.2.17\n Compiling percent-encoding v2.3.2\n Compiling futures-task v0.3.31\n Compiling httpdate v1.0.3\n Compiling futures-util v0.3.31\n Compiling hyper v1.8.1\n Compiling form_urlencoded v1.2.2\n Compiling hashbrown v0.15.5\n Compiling hash32 v0.2.1\n Compiling spin v0.9.8\n Compiling http-body-util v0.1.3\n Compiling universal-hash v0.5.1\n Compiling mime v0.3.17\n Compiling opaque-debug v0.3.1\n Compiling adler2 v2.0.1\n Compiling simd-adler32 v0.3.8\n Compiling fiat-crypto v0.3.0\n Compiling stable_deref_trait v1.2.1\n Compiling heapless v0.7.17\n Compiling miniz_oxide v0.8.9\n Compiling axum-core v0.5.6\n Compiling polyval v0.6.2\n Compiling libsqlite3-sys v0.35.0\n Compiling hashlink v0.10.0\n Compiling crc32fast v1.5.0\n Compiling tower v0.5.3\n Compiling serde_urlencoded v0.7.1\n Compiling hyper-util v0.1.20\n Compiling aes v0.8.4\n Compiling ctr v0.9.2\n Compiling aead v0.5.2\n Compiling cobs v0.3.0\n Compiling ed25519-compact v2.2.0\n Compiling orion v0.17.12\n Compiling serde_path_to_error v0.1.20\n Compiling fallible-iterator v0.3.0\n Compiling fallible-streaming-iterator v0.1.9\n Compiling ct-codecs v1.1.6\n Compiling matchit v0.8.4\n Compiling rusqlite v0.37.0\n Compiling axum v0.8.8\n Compiling pasetors v0.7.7\n Compiling postcard v1.1.3\n Compiling aes-gcm-siv v0.11.1\n Compiling flate2 v1.1.8\n Compiling uuid v1.20.0\n Compiling hostname v0.4.2\n Compiling obnam v0.10.0 (/ci/src/obnam)\n Compiling obnam-server v0.1.0 (/ci/src/obnam-server)\n Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 28s\n",
"timestamp": {
"secs_since_epoch": 1774373171,
"nanos_since_epoch": 637243103
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "cargo_build",
"timestamp": {
"secs_since_epoch": 1774373171,
"nanos_since_epoch": 740619233
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "cargo_test",
"timestamp": {
"secs_since_epoch": 1774373171,
"nanos_since_epoch": 744101749
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373171,
"nanos_since_epoch": 747289657
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "cargo 1.94.0 (85eff7c80 2026-01-15)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373171,
"nanos_since_epoch": 845037648
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
99,
108,
105,
112,
112,
121
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373171,
"nanos_since_epoch": 845139079
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "clippy 0.1.94 (4a4ef493e3 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373172,
"nanos_since_epoch": 61886360
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
114,
117,
115,
116,
99
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1774373172,
"nanos_since_epoch": 61972567
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "rustc 1.94.0 (4a4ef493e 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1774373172,
"nanos_since_epoch": 168969120
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
116,
101,
115,
116
]
},
{
"Unix": [
45,
45,
111,
102,
102,
108,
105,
110,
101
]
},
{
"Unix": [
45,
45,
108,
111,
99,
107,
101,
100
]
},
{
"Unix": [
45,
45,
119,
111,
114,
107,
115,
112,
97,
99,
101
]
}
],
"timestamp": {
"secs_since_epoch": 1774373172,
"nanos_since_epoch": 173301343
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "\nrunning 42 tests\ntest chunk::test::chunk_round_trip ... ok\ntest chunk::test::ciphertext_does_not_contain_plaintext ... ok\ntest chunk::test::id ... ok\ntest chunk::test::id_is_comparable_with_itself ... ok\ntest chunk::test::label_display ... ok\ntest chunk::test::label_round_trip ... ok\ntest chunk::test::metadata ... ok\ntest chunk::test::metadata_round_trip ... ok\ntest chunk::test::two_new_chunk_ids_differ ... ok\ntest cipher::test::aead_round_trip ... ok\ntest cipher::test::key_from_string ... ok\ntest cipher::test::key ... ok\ntest client::test::gets_correct_key ... ok\ntest client::test::has_name ... ok\ntest client::test::has_no_keys_initially ... ok\ntest client::test::serialiazion_round_trip ... ok\ntest client::test::sets_old_versions ... ok\ntest config::test::merge_files ... ok\ntest config::test::valideted_config ... ok\ntest client::test::generates_key ... ok\ntest credential::test::roundtrip_sop_method ... ok\ntest plaintext::test::compressed ... ok\ntest plaintext::test::compression_round_trip ... ok\ntest plaintext::test::uncompressed ... ok\ntest sop::tests::cert_display ... ok\ntest sop::tests::key_display ... ok\ntest credential::test::roundtrip_sop_credential ... ok\ntest store::test::cant_init_nonexistent_dir ... ok\ntest store::test::empty_dir_is_not_init ... ok\ntest store::test::adds_chunk ... ok\ntest store::test::finds_chunk_when_labels_match ... ok\ntest store::test::finds_client_chunk ... ok\ntest store::test::finds_no_chunk_in_empty_store ... ok\ntest store::test::finds_credential_chunk ... ok\ntest store::test::finds_no_clients_when_there_are_none ... ok\ntest store::test::finds_no_chunk_when_none_match_label ... ok\ntest store::test::has_no_chunks_initially ... ok\ntest store::test::nonexistent_dir_is_not_init ... ok\ntest store::test::inits_empty_dir ... ok\ntest store::test::opens_client_chunk ... ok\ntest store::test::root_dir_is_not_init ... ok\ntest store::test::removes_chunk ... ok\n\ntest result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest config::test::merges ... ok\n\ntest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest obnam/src/lib.rs - (line 12) ... ok\n\ntest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n\nall doctests ran in 0.82s; merged doctests compilation took 0.80s\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n",
"stderr": " Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s\n Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/obnam-672abc85c43c438c)\n Running unittests src/bin/obnam.rs (/ci/cache/cargo-target/debug/deps/obnam-7b0c81f510d767f4)\n Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/obnam_server-df92be7c5bdc0a7a)\n Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/obnam_server-6cda6653b6b25a14)\n Doc-tests obnam\n Doc-tests obnam_server\n",
"timestamp": {
"secs_since_epoch": 1774373174,
"nanos_since_epoch": 812120570
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "cargo_test",
"timestamp": {
"secs_since_epoch": 1774373174,
"nanos_since_epoch": 812270146
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "export PATH=/root/.cargo/bin:/bin:/sbin\nls -l \"$CARGO_TARGET_DIR\"\nmake TARGET= subplot doc\nfind doc -ls\nmkdir -p /ci/artifacts/rsync\ncp obnam.html doc/*.html /ci/artifacts/rsync\n",
"timestamp": {
"secs_since_epoch": 1774373174,
"nanos_since_epoch": 812280251
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
98,
97,
115,
104
]
},
{
"Unix": [
45,
99
]
},
{
"Unix": [
115,
101,
116,
32,
45,
120,
101,
117,
111,
32,
112,
105,
112,
101,
102,
97,
105,
108,
10,
101,
120,
112,
111,
114,
116,
32,
80,
65,
84,
72,
61,
47,
114,
111,
111,
116,
47,
46,
99,
97,
114,
103,
111,
47,
98,
105,
110,
58,
47,
98,
105,
110,
58,
47,
115,
98,
105,
110,
10,
108,
115,
32,
45,
108,
32,
34,
36,
67,
65,
82,
71,
79,
95,
84,
65,
82,
71,
69,
84,
95,
68,
73,
82,
34,
10,
109,
97,
107,
101,
32,
84,
65,
82,
71,
69,
84,
61,
32,
115,
117,
98,
112,
108,
111,
116,
32,
100,
111,
99,
10,
102,
105,
110,
100,
32,
100,
111,
99,
32,
45,
108,
115,
10,
109,
107,
100,
105,
114,
32,
45,
112,
32,
47,
99,
105,
47,
97,
114,
116,
105,
102,
97,
99,
116,
115,
47,
114,
115,
121,
110,
99,
10,
99,
112,
32,
111,
98,
110,
97,
109,
46,
104,
116,
109,
108,
32,
100,
111,
99,
47,
42,
46,
104,
116,
109,
108,
32,
47,
99,
105,
47,
97,
114,
116,
105,
102,
97,
99,
116,
115,
47,
114,
115,
121,
110,
99,
10,
10
]
}
],
"timestamp": {
"secs_since_epoch": 1774373174,
"nanos_since_epoch": 812299663
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "total 8\n-rw-r--r-- 1 root root 177 Mar 24 17:23 CACHEDIR.TAG\ndrwxr-xr-x 7 root root 4096 Mar 24 17:26 debug\nsubplot docgen obnam.subplot --output obnam.html\nsubplot codegen obnam.subplot --output test.py\nrm -f test.log\npython3 test.py --log test.log \nsrcdir /ci/src\ndatadir /tmp/tmpk3sz_mj9\nscenario: Logging level can be set\n step 1: given an installed obnam\n step 2: when I run obnam config\n step 3: then stderr doesn't contain \"TRACE\"\n step 4: then stderr doesn't contain \"DEBUG\"\n step 5: then stderr contains \"INFO\"\n step 6: then stderr contains \"WARN\"\n step 7: then stderr contains \"ERROR\"\n step 8: when I run env OBNAM_LOG=error obnam config\n step 9: then stderr doesn't contain \"TRACE\"\n step 10: then stderr doesn't contain \"DEBUG\"\n step 11: then stderr doesn't contain \"INFO\"\n step 12: then stderr doesn't contain \"WARN\"\n step 13: then stderr contains \"ERROR\"\n step 14: when I run obnam --log-level=error config\n step 15: then stderr doesn't contain \"TRACE\"\n step 16: then stderr doesn't contain \"DEBUG\"\n step 17: then stderr doesn't contain \"INFO\"\n step 18: then stderr doesn't contain \"WARN\"\n step 19: then stderr contains \"ERROR\"\n step 20: when I run env OBNAM_LOG=error obnam --log-level=trace config\n step 21: then stderr contains \"TRACE\"\n step 22: then stderr contains \"DEBUG\"\n step 23: then stderr contains \"INFO\"\n step 24: then stderr contains \"WARN\"\n step 25: then stderr contains \"ERROR\"\nscenario: Inspect an encrypted chunk using key from client chunk\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: when I create directory mychunks\n step 5: when I run obnam store init\n step 6: when I run obnam --client-key my.secret client init --client-name my.host\n step 7: when I run obnam --client-key my.secret client generate my.host my.key\n step 8: when I run obnam --client-key my.secret chunk encrypt --client-name my.host --key-name my.key --label sticky.tape greeting.txt --output chunk.file\n step 9: when I run obnam --client-key my.secret chunk inspect --filename chunk.file --client-name my.host --key-name my.key\n step 10: then stdout is valid JSON\n step 11: then stdout contains \"\"id\":\"\n step 12: then stdout contains \"\"label\":\"\n step 13: then stdout contains \"\"data\": \"\"\nscenario: Conveniently create a client with an OpenPGP software key credential\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from comfy.yaml\n step 3: when I create directory chunk.store\n step 4: when I run obnam store init\n step 5: when I run obnam client init --credential softy\n step 6: when I run obnam client list\n step 7: then stdout isn't exactly \"\"\nscenario: Inspect an encoded chunk in file\n step 1: given an installed obnam\n step 2: given file greeting.txt\n step 3: when I run obnam chunk encrypt --label sticky.tape --key secret greeting.txt --output chunk.file\n step 4: when I run obnam chunk inspect --filename chunk.file\n step 5: then stdout is valid JSON\n step 6: then stdout contains \"\"id\":\"\n step 7: then stdout contains \"\"label\":\"\n step 8: then stdout contains \"\"data\": null\"\n step 9: when I run obnam chunk inspect --filename chunk.file --key secret\n step 10: then stdout is valid JSON\n step 11: then stdout contains \"\"id\":\"\n step 12: then stdout contains \"\"label\":\"\n step 13: then stdout contains \"\"data\": \"\"\nscenario: Refuses API token made for another server instance\n step 1: given an installed obnam\n step 2: given file server-config.yaml\n step 3: when I run obnam-server --config server-config.yaml init\n step 4: when I run obnam-server --config server-config.yaml token --output token.txt --allow append\n step 5: when I remove file keypair.json\n step 6: when I run obnam-server --config server-config.yaml init\n step 7: when I try to run obnam-server --config server-config.yaml validate --file token.txt\n step 8: then command fails\nscenario: Show client\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: when I create directory mychunks\n step 4: when I run obnam store init\n step 5: when I run obnam --client-key my.secret client init --client-name my.host\n step 6: when I run obnam --client-key my.secret client show --client-name my.host\n step 7: then stdout is valid JSON\nscenario: Get path to chunk in store\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: given a directory mychunks\n step 5: when I run obnam store init\n step 6: when I run obnam chunk encrypt --key secret --label data-chunk --id xyzzy greeting.txt\n step 7: when I run obnam store path xyzzy -o chunk.filename\n step 8: then a file exists whose name is in chunk.filename\nscenario: Extracting a certificate from a key\n step 1: given an installed obnam\n step 2: given file alice.key\n step 3: when I run obnam sop extract-cert rsop alice.key\n step 4: then stdout isn't exactly \"\"\nscenario: Create an OpenPGP software key credential\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file sop-generate\n step 4: when I run bash sop-generate alice.tsk\n step 5: when I create directory mychunks\n step 6: when I run obnam store init\n step 7: when I run obnam credential list\n step 8: then stdout is exactly \"\"\n step 9: when I run obnam --client-key my.secret credential openpgp-soft alice.tsk\n step 10: when I run obnam credential list --all\n step 11: then stdout isn't exactly \"\"\nscenario: List clients\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: when I create directory mychunks\n step 4: when I run obnam store init\n step 5: when I run obnam --client-key my.secret client init --client-name my.host\n step 6: when I run obnam --client-key my.secret client list\n step 7: then stdout is exactly \"my.host\\n\"\nscenario: Conveniently encrypt and decrypt chunk in a store\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from comfy.yaml\n step 3: given file message.txt\n step 4: when I create directory chunk.store\n step 5: when I run obnam store init\n step 6: when I run obnam client init --credential softy\n step 7: when I run obnam chunk encrypt --label data --key-name default --id test.chunk message.txt\n step 8: when I run obnam chunk decrypt --key-name default --id test.chunk --output out.dat\n step 9: then files message.txt and out.dat match\nscenario: Manages chunks via API\n step 1: given an installed obnam\n step 2: given file server-config.yaml\n step 3: given file request.sh\n step 4: when I run obnam-server --config server-config.yaml init\n step 5: when I run obnam-server --config server-config.yaml token --output token.txt --allow append\n step 6: when I run, as a daemon, obnam-server --config server-config.yaml serve\n step 7: when I run bash request.sh GET /chunks/1\n step 8: then stderr contains \"HTTP/1.1 404\"\n step 9: when I run bash request.sh PUT /chunks/1?label=first hello\n step 10: then stderr contains \"HTTP/1.1 201\"\n step 11: when I run bash request.sh GET /chunks/1\n step 12: then stderr contains \"HTTP/1.1 200\"\n step 13: then stdout is exactly \"hello\"\n step 14: when I run bash request.sh GET /chunks?label=first\n step 15: then stdout is exactly \"{\"chunk_ids\":[\"1\"]}\"\n step 16: when I run bash request.sh DELETE /chunks/1\n step 17: then stderr contains \"HTTP/1.1 401\"\n step 18: when I run obnam-server --config server-config.yaml token --output token.txt --allow delete\n step 19: when I run bash request.sh DELETE /chunks/1\n step 20: then stderr contains \"HTTP/1.1 204\"\n step 21: when I run bash request.sh GET /chunks?label=first\n step 22: then stdout is exactly \"{\"chunk_ids\":[]}\"\n cleanup 6: when I run, as a daemon, obnam-server --config server-config.yaml serve\nscenario: Initialize a store\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: then directory mychunks does not exist\n step 4: when I try to run obnam store is\n step 5: then command fails\n step 6: when I create directory mychunks\n step 7: when I try to run obnam store is\n step 8: then command fails\n step 9: when I run obnam store init\n step 10: when I run obnam store is\n step 11: then exit code is 0\nscenario: Generate new key\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: when I create directory mychunks\n step 4: when I run obnam store init\n step 5: when I run obnam --client-key my.secret client init --client-name my.host\n step 6: when I run obnam --client-key my.secret client generate my.host my.key\n step 7: when I run obnam --client-key my.secret client show --client-name my.host\n step 8: then stdout contains \"my.key\"\nscenario: Initialize a client chunk\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config-with-credential.yaml\n step 3: when I create directory mychunks\n step 4: when I run obnam store init\n step 5: when I run obnam client init --client-name my.host\n step 6: then command is successful\nscenario: Remove a chunk from store\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: given a directory mychunks\n step 5: when I run obnam store init\n step 6: when I run obnam chunk encrypt --key secret --label data-chunk --id xyzzy greeting.txt\n step 7: when I run obnam store remove xyzzy\n step 8: when I run obnam store list\n step 9: then stdout doesn't contain \"xyzzy\"\nscenario: Add a chunk to the store.\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: given a directory mychunks\n step 5: when I run obnam store init\n step 6: when I run obnam chunk encrypt --key secret --label data --id xyzzy greeting.txt\n step 7: when I run obnam store list\n step 8: then stdout is exactly \"xyzzy\\n\"\nscenario: Chunk encrypt/decrypt with compression round trip via file\n step 1: given an installed obnam\n step 2: given file greeting.txt\n step 3: when I run obnam chunk encrypt --compress --key secret --label sticky.tape greeting.txt --output chunk.file\n step 4: when I run obnam chunk decrypt --key secret chunk.file\n step 5: then stdout is exactly \"Hello, world.\\n\"\nscenario: Generates and validates API tokens\n step 1: given an installed obnam\n step 2: given file server-config.yaml\n step 3: when I run obnam-server --config server-config.yaml init\n step 4: then file keypair.json exists\n step 5: when I try to run obnam-server --config server-config.yaml init\n step 6: then command fails\n step 7: then stderr contains \"keypair.json\"\n step 8: when I run obnam-server --config server-config.yaml token --output token.txt --allow append\n step 9: then file token.txt contains \"v4.public.\"\n step 10: when I run obnam-server --config server-config.yaml validate --file token.txt\n step 11: then stdout contains \"read_chunks_allowed: true\"\n step 12: then stdout contains \"find_chunks_allowed: true\"\n step 13: then stdout contains \"create_chunk_allowed: true\"\n step 14: then stdout contains \"delete_chunk_allowed: false\"\n step 15: when I run obnam-server --config server-config.yaml token --output token.txt --allow delete\n step 16: then file token.txt contains \"v4.public.\"\n step 17: when I run obnam-server --config server-config.yaml validate --file token.txt\n step 18: then stdout contains \"read_chunks_allowed: true\"\n step 19: then stdout contains \"find_chunks_allowed: true\"\n step 20: then stdout contains \"create_chunk_allowed: true\"\n step 21: then stdout contains \"delete_chunk_allowed: true\"\nscenario: Inspect an encoded chunk in repository\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: when I create directory mychunks\n step 5: when I try to run obnam store init\n step 6: when I run obnam chunk encrypt --label sticky.tape --key secret greeting.txt --id=chunk0\n step 7: when I run obnam chunk inspect --id chunk0\n step 8: then stdout is valid JSON\n step 9: then stdout contains \"\"id\":\"\n step 10: then stdout contains \"\"label\":\"\n step 11: then stdout contains \"\"data\": null\"\n step 12: when I run obnam chunk inspect --key secret --id chunk0\n step 13: then stdout is valid JSON\n step 14: then stdout contains \"\"id\":\"\n step 15: then stdout contains \"\"label\":\"\n step 16: then stdout contains \"\"data\": \"\"\nscenario: Chunk encrypt/decrypt round trip via repository\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: when I create directory mychunks\n step 5: when I try to run obnam store init\n step 6: when I run obnam chunk encrypt --key secret --label sticky.tape greeting.txt --id=chunk0\n step 7: when I run obnam store list\n step 8: when I run obnam chunk decrypt --key secret --id chunk0\n step 9: then stdout is exactly \"Hello, world.\\n\"\nscenario: Chunk encrypt/decrypt round trip via file\n step 1: given an installed obnam\n step 2: given file greeting.txt\n step 3: when I run obnam chunk encrypt --key secret --label sticky.tape greeting.txt --output chunk.file\n step 4: when I run obnam chunk decrypt --key secret chunk.file\n step 5: then stdout is exactly \"Hello, world.\\n\"\nscenario: Validates token via HTTP API\n step 1: given an installed obnam\n step 2: given file server-config.yaml\n step 3: given file request.sh\n step 4: when I run obnam-server --config server-config.yaml init\n step 5: when I run obnam-server --config server-config.yaml token --output token.txt --allow append\n step 6: when I run, as a daemon, obnam-server --config server-config.yaml serve\n step 7: when I run bash request.sh GET /validate\n step 8: then stdout contains \"\"read_chunks_allowed\":true\"\n step 9: then stdout contains \"\"find_chunks_allowed\":true\"\n step 10: then stdout contains \"\"create_chunk_allowed\":true\"\n step 11: then stdout contains \"\"delete_chunk_allowed\":false\"\n cleanup 6: when I run, as a daemon, obnam-server --config server-config.yaml serve\nscenario: Find chunks using labels\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: given a directory mychunks\n step 5: when I run obnam store init\n step 6: when I run obnam chunk encrypt --key secret --label data-chunk --id xyzzy greeting.txt\n step 7: when I run obnam chunk encrypt --key secret --label data-chunk --id plugh greeting.txt\n step 8: when I run obnam chunk encrypt --key secret --label client-chunk --id advent greeting.txt\n step 9: when I run obnam store find missing\n step 10: then stdout is exactly \"\"\n step 11: when I run obnam store find data-chunk\n step 12: then stdout contains \"xyzzy\"\n step 13: then stdout contains \"plugh\"\n step 14: then stdout doesn't contain \"advent\"\n step 15: when I run obnam store find client-chunk\n step 16: then stdout doesn't contain \"xyzzy\"\n step 17: then stdout doesn't contain \"plugh\"\n step 18: then stdout contains \"advent\"\nscenario: Encryption round trip\n step 1: given an installed obnam\n step 2: given file alice.key\n step 3: given file hello.txt\n step 4: when I run obnam sop encrypt rsop alice.key hello.txt -o encrypted\n step 5: when I run ls -l encrypted\n step 6: when I run cat encrypted\n step 7: when I run obnam sop decrypt rsop alice.key encrypted\n step 8: then stdout is exactly \"hello, world\\n\"\nscenario: Avoid client chunks with the same name\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: when I create directory mychunks\n step 4: when I run obnam store init\n step 5: when I run obnam --client-key my.secret client init --client-name my.host\n step 6: then command is successful\n step 7: when I try to run obnam --client-key my.secret client init --client-name my.host\n step 8: then command fails\nscenario: Chunk encrypt/decrypt with compression round trip via repository\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: when I create directory mychunks\n step 5: when I try to run obnam store init\n step 6: when I run obnam chunk encrypt --compress --key secret --label sticky.tape greeting.txt --id=chunk0\n step 7: when I run obnam store list\n step 8: when I run obnam chunk decrypt --key secret --id chunk0\n step 9: then stdout is exactly \"Hello, world.\\n\"\nscenario: Round trip chunk encryption using key from client chunk\n step 1: given an installed obnam\n step 2: given file .config/obnam/config.yaml from config.yaml\n step 3: given file greeting.txt\n step 4: when I create directory mychunks\n step 5: when I run obnam store init\n step 6: when I run obnam --client-key my.secret client init --client-name my.host\n step 7: when I run obnam --client-key my.secret client generate my.host my.key\n step 8: when I run obnam --client-key my.secret chunk encrypt --client-name my.host --key-name my.key --label sticky.tape greeting.txt --output chunk.file\n step 9: when I run obnam --client-key my.secret chunk decrypt --client-name my.host --key-name my.key chunk.file\n step 10: then stdout is exactly \"Hello, world.\\n\"\nOK, all scenarios finished successfully\nenv 'RUSTDOCFLAGS=-D warnings' cargo doc --no-deps\nmake -C doc\nmake[1]: Entering directory '/ci/src/doc'\npandoc -N --toc --standalone --self-contained -o \"arch.html\" \"arch.md\"\npandoc -N --toc --standalone --self-contained -o \"glossary.html\" \"glossary.md\"\nmake[1]: Leaving directory '/ci/src/doc'\n 1179691 4 drwxr-xr-x 2 root root 4096 Mar 24 17:26 doc\n 1198132 8 -rw-r--r-- 1 root root 4303 Mar 24 17:26 doc/glossary.html\n 1179694 4 -rw-r--r-- 1 root root 517 Mar 24 17:23 doc/glossary.md\n 1179695 16 -rw-r--r-- 1 root root 13627 Mar 24 17:23 doc/arch.md\n 1179693 4 -rw-r--r-- 1 root root 540 Mar 24 17:23 doc/keys.pik\n 1179696 4 -rw-r--r-- 1 root root 327 Mar 24 17:23 doc/Makefile\n 1198131 24 -rw-r--r-- 1 root root 24568 Mar 24 17:26 doc/arch.html\n 1179692 4 -rw-r--r-- 1 root root 3885 Mar 24 17:23 doc/keys.svg\n",
"stderr": "+ export PATH=/root/.cargo/bin:/bin:/sbin\n+ PATH=/root/.cargo/bin:/bin:/sbin\n+ ls -l /ci/cache/cargo-target\n+ make TARGET= subplot doc\n INFO Starting Subplot\n INFO Subplot finished successfully\n INFO Starting Subplot\n INFO Subplot finished successfully\n Documenting obnam v0.10.0 (/ci/src/obnam)\n Documenting obnam-server v0.1.0 (/ci/src/obnam-server)\n Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.69s\n Generated /ci/cache/cargo-target/doc/obnam/index.html and 1 other file\n[WARNING] This document format requires a nonempty <title> element.\n Defaulting to 'glossary' as the title.\n To specify a title, use 'title' in metadata or --metadata title=\"...\".\n+ find doc -ls\n+ mkdir -p /ci/artifacts/rsync\n+ cp obnam.html doc/arch.html doc/glossary.html /ci/artifacts/rsync\n",
"timestamp": {
"secs_since_epoch": 1774373181,
"nanos_since_epoch": 50713606
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "export PATH=/root/.cargo/bin:/bin:/sbin\nls -l \"$CARGO_TARGET_DIR\"\nmake TARGET= subplot doc\nfind doc -ls\nmkdir -p /ci/artifacts/rsync\ncp obnam.html doc/*.html /ci/artifacts/rsync\n",
"timestamp": {
"secs_since_epoch": 1774373181,
"nanos_since_epoch": 422787122
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "custom",
"name": "dch",
"args": {
"debemail": "liw@liw.fi",
"debfullname": "Lars Wirzenius"
},
"timestamp": {
"secs_since_epoch": 1774373181,
"nanos_since_epoch": 422968753
},
"log_source": "Plan"
}{
"type": "custom_action_starts",
"source": "/ci/src",
"custom": {
"name": "dch",
"args": {
"debemail": "liw@liw.fi",
"debfullname": "Lars Wirzenius"
}
},
"exe": ".ambient/dch",
"exe_exists": false,
"timestamp": {
"secs_since_epoch": 1774373181,
"nanos_since_epoch": 511751952
},
"log_source": "Plan"
}{
"type": "custom_action_output",
"stdout": [
72,
69,
65,
68,
32,
105,
115,
32,
110,
111,
119,
32,
97,
116,
32,
52,
98,
100,
55,
57,
100,
57,
32,
99,
105,
58,
32,
115,
112,
108,
105,
116,
32,
72,
84,
77,
76,
32,
97,
110,
100,
32,
68,
101,
98,
105,
97,
110,
32,
112,
97,
99,
107,
97,
103,
101,
32,
97,
114,
116,
105,
102,
97,
99,
116,
115,
32,
105,
110,
32,
115,
101,
112,
97,
114,
97,
116,
101,
32,
100,
105,
114,
101,
99,
116,
111,
114,
105,
101,
115,
10,
82,
101,
109,
111,
118,
105,
110,
103,
32,
100,
111,
99,
47,
97,
114,
99,
104,
46,
104,
116,
109,
108,
10,
82,
101,
109,
111,
118,
105,
110,
103,
32,
100,
111,
99,
47,
103,
108,
111,
115,
115,
97,
114,
121,
46,
104,
116,
109,
108,
10,
82,
101,
109,
111,
118,
105,
110,
103,
32,
111,
98,
110,
97,
109,
46,
104,
116,
109,
108,
10,
82,
101,
109,
111,
118,
105,
110,
103,
32,
116,
101,
115,
116,
46,
108,
111,
103,
10,
82,
101,
109,
111,
118,
105,
110,
103,
32,
116,
101,
115,
116,
46,
112,
121,
10
],
"stderr": [
43,
32,
101,
120,
112,
111,
114,
116,
32,
39,
68,
69,
66,
69,
77,
65,
73,
76,
61,
34,
108,
105,
119,
64,
108,
105,
119,
46,
102,
105,
34,
39,
10,
43,
32,
68,
69,
66,
69,
77,
65,
73,
76,
61,
39,
34,
108,
105,
119,
64,
108,
105,
119,
46,
102,
105,
34,
39,
10,
43,
32,
101,
120,
112,
111,
114,
116,
32,
39,
68,
69,
66,
70,
85,
76,
76,
78,
65,
77,
69,
61,
34,
76,
97,
114,
115,
32,
87,
105,
114,
122,
101,
110,
105,
117,
115,
34,
39,
10,
43,
32,
68,
69,
66,
70,
85,
76,
76,
78,
65,
77,
69,
61,
39,
34,
76,
97,
114,
115,
32,
87,
105,
114,
122,
101,
110,
105,
117,
115,
34,
39,
10,
43,
32,
101,
120,
112,
111,
114,
116,
32,
67,
65,
82,
71,
79,
95,
84,
65,
82,
71,
69,
84,
95,
68,
73,
82,
61,
47,
119,
111,
114,
107,
115,
112,
97,
99,
101,
47,
99,
97,
99,
104,
101,
10,
43,
32,
67,
65,
82,
71,
79,
95,
84,
65,
82,
71,
69,
84,
95,
68,
73,
82,
61,
47,
119,
111,
114,
107,
115,
112,
97,
99,
101,
47,
99,
97,
99,
104,
101,
10,
43,
32,
101,
120,
112,
111,
114,
116,
32,
67,
65,
82,
71,
79,
95,
72,
79,
77,
69,
61,
47,
119,
111,
114,
107,
115,
112,
97,
99,
101,
47,
100,
101,
112,
115,
10,
43,
32,
67,
65,
82,
71,
79,
95,
72,
79,
77,
69,
61,
47,
119,
111,
114,
107,
115,
112,
97,
99,
101,
47,
100,
101,
112,
115,
10,
43,
32,
101,
120,
112,
111,
114,
116,
32,
72,
79,
77,
69,
61,
47,
114,
111,
111,
116,
10,
43,
32,
72,
79,
77,
69,
61,
47,
114,
111,
111,
116,
10,
43,
32,
101,
120,
112,
111,
114,
116,
32,
80,
65,
84,
72,
61,
47,
114,
111,
111,
116,
47,
46,
99,
97,
114,
103,
111,
47,
98,
105,
110,
58,
47,
114,
111,
111,
116,
47,
46,
99,
97,
114,
103,
111,
47,
98,
105,
110,
58,
47,
117,
115,
114,
47,
108,
111,
99,
97,
108,
47,
115,
98,
105,
110,
58,
47,
117,
115,
114,
47,
108,
111,
99,
97,
108,
47,
98,
105,
110,
58,
47,
117,
115,
114,
47,
115,
98,
105,
110,
58,
47,
117,
115,
114,
47,
98,
105,
110,
58,
47,
115,
98,
105,
110,
58,
47,
98,
105,
110,
10,
43,
32,
80,
65,
84,
72,
61,
47,
114,
111,
111,
116,
47,
46,
99,
97,
114,
103,
111,
47,
98,
105,
110,
58,
47,
114,
111,
111,
116,
47,
46,
99,
97,
114,
103,
111,
47,
98,
105,
110,
58,
47,
117,
115,
114,
47,
108,
111,
99,
97,
108,
47,
115,
98,
105,
110,
58,
47,
117,
115,
114,
47,
108,
111,
99,
97,
108,
47,
98,
105,
110,
58,
47,
117,
115,
114,
47,
115,
98,
105,
110,
58,
47,
117,
115,
114,
47,
98,
105,
110,
58,
47,
115,
98,
105,
110,
58,
47,
98,
105,
110,
10,
43,
32,
103,
105,
116,
32,
114,
101,
115,
101,
116,
32,
45,
45,
104,
97,
114,
100,
10,
43,
32,
103,
105,
116,
32,
99,
108,
101,
97,
110,
32,
45,
102,
100,
120,
10,
43,
43,
32,
115,
101,
100,
32,
39,
115,
47,
45,
91,
94,
45,
93,
42,
36,
47,
47,
39,
10,
43,
43,
32,
100,
112,
107,
103,
45,
112,
97,
114,
115,
101,
99,
104,
97,
110,
103,
101,
108,
111,
103,
32,
45,
83,
86,
101,
114,
115,
105,
111,
110,
10,
43,
32,
86,
61,
48,
46,
57,
46,
57,
10,
43,
43,
32,
100,
97,
116,
101,
32,
45,
117,
32,
43,
37,
89,
37,
109,
37,
100,
84,
37,
72,
37,
77,
37,
83,
10,
43,
32,
84,
61,
50,
48,
50,
54,
48,
51,
50,
52,
84,
49,
55,
50,
54,
50,
49,
10,
43,
32,
118,
101,
114,
115,
105,
111,
110,
61,
48,
46,
57,
46,
57,
46,
99,
105,
50,
48,
50,
54,
48,
51,
50,
52,
84,
49,
55,
50,
54,
50,
49,
45,
49,
10,
43,
32,
100,
99,
104,
32,
45,
118,
32,
48,
46,
57,
46,
57,
46,
99,
105,
50,
48,
50,
54,
48,
51,
50,
52,
84,
49,
55,
50,
54,
50,
49,
45,
49,
32,
39,
67,
73,
32,
98,
117,
105,
108,
100,
32,
117,
110,
100,
101,
114,
32,
65,
109,
98,
105,
101,
110,
116,
46,
39,
10,
43,
32,
100,
99,
104,
32,
45,
114,
32,
39,
39,
10
],
"timestamp": {
"secs_since_epoch": 1774373181,
"nanos_since_epoch": 950369910
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "custom",
"name": "dch",
"args": {
"debfullname": "Lars Wirzenius",
"debemail": "liw@liw.fi"
},
"timestamp": {
"secs_since_epoch": 1774373182,
"nanos_since_epoch": 25570480
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "deb",
"packages": "debian",
"timestamp": {
"secs_since_epoch": 1774373182,
"nanos_since_epoch": 30345822
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
47,
98,
105,
110,
47,
98,
97,
115,
104
]
},
{
"Unix": [
45,
99
]
},
{
"Unix": [
35,
33,
47,
117,
115,
114,
47,
98,
105,
110,
47,
101,
110,
118,
32,
98,
97,
115,
104,
10,
115,
101,
116,
32,
45,
120,
101,
117,
111,
32,
112,
105,
112,
101,
102,
97,
105,
108,
10,
10,
101,
99,
104,
111,
32,
34,
80,
65,
84,
72,
32,
97,
116,
32,
115,
116,
97,
114,
116,
58,
32,
36,
80,
65,
84,
72,
34,
10,
101,
120,
112,
111,
114,
116,
32,
80,
65,
84,
72,
61,
34,
47,
114,
111,
111,
116,
47,
46,
99,
97,
114,
103,
111,
47,
98,
105,
110,
58,
36,
80,
65,
84,
72,
34,
10,
101,
120,
112,
111,
114,
116,
32,
67,
65,
82,
71,
79,
95,
72,
79,
77,
69,
61,
47,
99,
105,
47,
100,
101,
112,
115,
10,
101,
120,
112,
111,
114,
116,
32,
68,
69,
66,
69,
77,
65,
73,
76,
61,
108,
105,
119,
64,
108,
105,
119,
46,
102,
105,
10,
101,
120,
112,
111,
114,
116,
32,
68,
69,
66,
70,
85,
76,
76,
78,
65,
77,
69,
61,
34,
76,
97,
114,
115,
32,
87,
105,
114,
122,
101,
110,
105,
117,
115,
34,
10,
47,
98,
105,
110,
47,
101,
110,
118,
10,
10,
99,
111,
109,
109,
97,
110,
100,
32,
45,
118,
32,
99,
97,
114,
103,
111,
10,
99,
111,
109,
109,
97,
110,
100,
32,
45,
118,
32,
114,
117,
115,
116,
99,
10,
10,
99,
97,
114,
103,
111,
32,
45,
45,
118,
101,
114,
115,
105,
111,
110,
10,
114,
117,
115,
116,
99,
32,
45,
45,
118,
101,
114,
115,
105,
111,
110,
10,
10,
35,
32,
71,
101,
116,
32,
110,
97,
109,
101,
32,
97,
110,
100,
32,
118,
101,
114,
115,
105,
111,
110,
32,
111,
102,
32,
115,
111,
117,
114,
99,
101,
32,
112,
97,
99,
107,
97,
103,
101,
46,
10,
110,
97,
109,
101,
61,
34,
36,
40,
100,
112,
107,
103,
45,
112,
97,
114,
115,
101,
99,
104,
97,
110,
103,
101,
108,
111,
103,
32,
45,
83,
83,
111,
117,
114,
99,
101,
41,
34,
10,
118,
101,
114,
115,
105,
111,
110,
61,
34,
36,
40,
100,
112,
107,
103,
45,
112,
97,
114,
115,
101,
99,
104,
97,
110,
103,
101,
108,
111,
103,
32,
45,
83,
86,
101,
114,
115,
105,
111,
110,
41,
34,
10,
10,
35,
32,
71,
101,
116,
32,
117,
112,
115,
116,
114,
101,
97,
109,
32,
118,
101,
114,
115,
105,
111,
110,
58,
32,
101,
118,
101,
114,
121,
116,
104,
105,
110,
103,
32,
98,
101,
102,
111,
114,
101,
32,
116,
104,
101,
32,
108,
97,
115,
116,
32,
100,
97,
115,
104,
46,
10,
117,
118,
61,
34,
36,
40,
101,
99,
104,
111,
32,
34,
36,
118,
101,
114,
115,
105,
111,
110,
34,
32,
124,
32,
115,
101,
100,
32,
39,
115,
47,
45,
91,
94,
45,
93,
42,
36,
47,
47,
39,
41,
34,
10,
10,
35,
32,
70,
105,
108,
101,
115,
32,
116,
104,
97,
116,
32,
119,
105,
108,
108,
32,
98,
101,
32,
99,
114,
101,
97,
116,
101,
100,
46,
10,
97,
114,
99,
104,
61,
34,
36,
40,
100,
112,
107,
103,
32,
45,
45,
112,
114,
105,
110,
116,
45,
97,
114,
99,
104,
105,
116,
101,
99,
116,
117,
114,
101,
41,
34,
10,
111,
114,
105,
103,
61,
34,
46,
46,
47,
36,
123,
110,
97,
109,
101,
125,
95,
36,
123,
117,
118,
125,
46,
111,
114,
105,
103,
46,
116,
97,
114,
46,
120,
122,
34,
10,
100,
101,
98,
61,
34,
46,
46,
47,
36,
123,
110,
97,
109,
101,
125,
95,
36,
123,
118,
101,
114,
115,
105,
111,
110,
125,
95,
36,
123,
97,
114,
99,
104,
125,
46,
100,
101,
98,
34,
10,
99,
104,
97,
110,
103,
101,
115,
61,
34,
46,
46,
47,
36,
123,
110,
97,
109,
101,
125,
95,
36,
123,
118,
101,
114,
115,
105,
111,
110,
125,
95,
36,
123,
97,
114,
99,
104,
125,
46,
99,
104,
97,
110,
103,
101,
115,
34,
10,
10,
35,
32,
67,
114,
101,
97,
116,
101,
32,
34,
117,
112,
115,
116,
114,
101,
97,
109,
32,
116,
97,
114,
98,
97,
108,
108,
34,
46,
10,
103,
105,
116,
32,
97,
114,
99,
104,
105,
118,
101,
32,
72,
69,
65,
68,
32,
124,
32,
120,
122,
32,
62,
34,
36,
111,
114,
105,
103,
34,
10,
10,
35,
32,
66,
117,
105,
108,
100,
32,
112,
97,
99,
107,
97,
103,
101,
46,
10,
100,
112,
107,
103,
45,
98,
117,
105,
108,
100,
112,
97,
99,
107,
97,
103,
101,
32,
45,
117,
115,
32,
45,
117,
99,
10,
10,
35,
32,
68,
117,
109,
112,
32,
115,
111,
109,
101,
32,
105,
110,
102,
111,
114,
109,
97,
116,
105,
111,
110,
32,
116,
111,
32,
109,
97,
107,
101,
32,
105,
116,
32,
101,
97,
115,
105,
101,
114,
32,
116,
111,
32,
118,
105,
115,
117,
97,
108,
108,
121,
32,
118,
101,
114,
105,
102,
121,
10,
35,
32,
101,
118,
101,
114,
121,
116,
104,
105,
110,
103,
32,
108,
111,
111,
107,
115,
32,
79,
75,
46,
32,
65,
108,
115,
111,
44,
32,
116,
101,
115,
116,
32,
116,
104,
101,
32,
112,
97,
99,
107,
97,
103,
101,
32,
119,
105,
116,
104,
32,
116,
104,
101,
32,
108,
105,
110,
116,
105,
97,
110,
32,
116,
111,
111,
108,
46,
10,
10,
108,
115,
32,
45,
108,
32,
46,
46,
10,
102,
111,
114,
32,
120,
32,
105,
110,
32,
46,
46,
47,
42,
46,
100,
101,
98,
59,
32,
100,
111,
32,
100,
112,
107,
103,
32,
45,
99,
32,
34,
36,
120,
34,
59,
32,
100,
111,
110,
101,
10,
35,
32,
70,
73,
88,
77,
69,
58,
32,
100,
105,
115,
97,
98,
108,
101,
100,
32,
119,
104,
105,
108,
101,
32,
116,
104,
105,
115,
32,
112,
114,
101,
118,
101,
110,
116,
115,
32,
114,
97,
100,
105,
99,
108,
101,
45,
110,
97,
116,
105,
118,
101,
45,
99,
105,
32,
100,
101,
98,
32,
102,
114,
111,
109,
32,
98,
101,
105,
110,
103,
32,
98,
117,
105,
108,
116,
46,
10,
35,
32,
108,
105,
110,
116,
105,
97,
110,
32,
45,
105,
32,
45,
45,
97,
108,
108,
111,
119,
45,
114,
111,
111,
116,
32,
45,
45,
102,
97,
105,
108,
45,
111,
110,
32,
119,
97,
114,
110,
105,
110,
103,
32,
46,
46,
47,
42,
46,
99,
104,
97,
110,
103,
101,
115,
10,
10,
35,
32,
77,
111,
118,
101,
32,
102,
105,
108,
101,
115,
32,
116,
111,
32,
97,
114,
116,
105,
102,
97,
99,
116,
115,
32,
100,
105,
114,
101,
99,
116,
111,
114,
121,
46,
10,
109,
118,
32,
46,
46,
47,
42,
95,
42,
32,
47,
99,
105,
47,
97,
114,
116,
105,
102,
97,
99,
116,
115,
47,
100,
101,
98,
105,
97,
110,
10,
32,
32,
32,
32,
32,
32,
32,
32
]
}
],
"timestamp": {
"secs_since_epoch": 1774373182,
"nanos_since_epoch": 33997108
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nDEBFULLNAME=Lars Wirzenius\nCARGO_TARGET_DIR=/ci/cache/cargo-target\nPWD=/ci/src\nSYSTEMD_EXEC_PID=281\nHOME=/root\nLANG=C.UTF-8\nCARGO_HOME=/ci/deps\nDEBEMAIL=liw@liw.fi\nINVOCATION_ID=2a634a5e2b774a30940743702eaaed14\nSHLVL=2\nJOURNAL_STREAM=8:15131\nPATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nOLDPWD=/\n_=/bin/env\n/root/.cargo/bin/cargo\n/root/.cargo/bin/rustc\ncargo 1.94.0 (85eff7c80 2026-01-15)\nrustc 1.94.0 (4a4ef493e 2026-03-02)\ndpkg-buildpackage: info: source package obnam\ndpkg-buildpackage: info: source version 0.9.9.ci20260324T172621-1\ndpkg-buildpackage: info: source distribution unstable\ndpkg-buildpackage: info: source changed by \"Lars Wirzenius\" <\"liw@liw.fi\">\ndpkg-buildpackage: info: host architecture amd64\ndh clean\n dh_auto_clean\n dh_clean\ndpkg-source: info: using source format '3.0 (quilt)'\ndpkg-source: info: building obnam using existing ./obnam_0.9.9.ci20260324T172621.orig.tar.xz\ndpkg-source: info: building obnam in obnam_0.9.9.ci20260324T172621-1.debian.tar.xz\ndpkg-source: info: building obnam in obnam_0.9.9.ci20260324T172621-1.dsc\ndh build\n dh_update_autotools_config\n dh_autoreconf\n dh_auto_configure\n debian/rules override_dh_auto_build\nmake[1]: Entering directory '/ci/src'\ncargo build --workspace --release\nmake[1]: Leaving directory '/ci/src'\n debian/rules override_dh_auto_test\nmake[1]: Entering directory '/ci/src'\necho tests are disabled, for now\ntests are disabled, for now\nmake[1]: Leaving directory '/ci/src'\n create-stamp debian/debhelper-build-stamp\ndh binary\n dh_testroot\n dh_prep\n debian/rules override_dh_auto_install\nmake[1]: Entering directory '/ci/src'\ncargo install --offline --locked --path=obnam --root=debian/obnam/usr\nfind debian -name '.crates*.*' -delete\nmake[1]: Leaving directory '/ci/src'\n dh_installdocs\n dh_installchangelogs\n dh_lintian\n dh_perl\n dh_link\n dh_strip_nondeterminism\n dh_compress\n dh_fixperms\n dh_missing\n dh_strip\n dh_makeshlibs\n dh_shlibdeps\n dh_installdeb\n dh_gencontrol\n dh_md5sums\n dh_builddeb\ndpkg-deb: building package 'obnam-dbgsym' in '../obnam-dbgsym_0.9.9.ci20260324T172621-1_amd64.deb'.\ndpkg-deb: building package 'obnam' in '../obnam_0.9.9.ci20260324T172621-1_amd64.deb'.\ndpkg-genchanges: info: including full source code in upload\ndpkg-buildpackage: info: full upload (original source is included)\ntotal 1264\ndrwxr-xr-x 4 root root 4096 Mar 24 17:26 artifacts\ndrwxr-xr-x 3 root root 4096 Mar 24 17:23 cache\ndrwxr-xr-x 3 root root 4096 Mar 24 17:29 deps\n-rw-r--r-- 1 root root 135144 Mar 24 17:31 obnam-dbgsym_0.9.9.ci20260324T172621-1_amd64.deb\n-rw-r--r-- 1 root root 1724 Mar 24 17:26 obnam_0.9.9.ci20260324T172621-1.debian.tar.xz\n-rw-r--r-- 1 root root 900 Mar 24 17:26 obnam_0.9.9.ci20260324T172621-1.dsc\n-rw-r--r-- 1 root root 5655 Mar 24 17:31 obnam_0.9.9.ci20260324T172621-1_amd64.buildinfo\n-rw-r--r-- 1 root root 2296 Mar 24 17:31 obnam_0.9.9.ci20260324T172621-1_amd64.changes\n-rw-r--r-- 1 root root 1051932 Mar 24 17:31 obnam_0.9.9.ci20260324T172621-1_amd64.deb\n-rw-r--r-- 1 root root 68404 Mar 24 17:26 obnam_0.9.9.ci20260324T172621.orig.tar.xz\ndrwxr-xr-x 9 root root 4096 Mar 24 17:26 src\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/lib/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/lib/debug/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/lib/debug/.build-id/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/lib/debug/.build-id/4a/\n-rw-r--r-- root/root 741480 2026-03-24 17:26 ./usr/lib/debug/.build-id/4a/1444043dd619266e91e4ce8b17da7ccecbe8d7.debug\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/doc/\nlrwxrwxrwx root/root 0 2026-03-24 17:26 ./usr/share/doc/obnam-dbgsym -> obnam\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/bin/\n-rwxr-xr-x root/root 3377680 2026-03-24 17:26 ./usr/bin/obnam\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/doc/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/doc/obnam/\n-rw-r--r-- root/root 211 2026-03-24 17:26 ./usr/share/doc/obnam/changelog.Debian.gz\n-rw-r--r-- root/root 371 2026-03-24 17:23 ./usr/share/doc/obnam/copyright\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/lintian/\ndrwxr-xr-x root/root 0 2026-03-24 17:26 ./usr/share/lintian/overrides/\n-rw-r--r-- root/root 48 2026-03-24 17:23 ./usr/share/lintian/overrides/obnam\n",
"stderr": "+ echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'\n+ export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ export CARGO_HOME=/ci/deps\n+ CARGO_HOME=/ci/deps\n+ export DEBEMAIL=liw@liw.fi\n+ DEBEMAIL=liw@liw.fi\n+ export 'DEBFULLNAME=Lars Wirzenius'\n+ DEBFULLNAME='Lars Wirzenius'\n+ /bin/env\n+ command -v cargo\n+ command -v rustc\n+ cargo --version\n+ rustc --version\n++ dpkg-parsechangelog -SSource\n+ name=obnam\n++ dpkg-parsechangelog -SVersion\n+ version=0.9.9.ci20260324T172621-1\n++ sed 's/-[^-]*$//'\n++ echo 0.9.9.ci20260324T172621-1\n+ uv=0.9.9.ci20260324T172621\n++ dpkg --print-architecture\n+ arch=amd64\n+ orig=../obnam_0.9.9.ci20260324T172621.orig.tar.xz\n+ deb=../obnam_0.9.9.ci20260324T172621-1_amd64.deb\n+ changes=../obnam_0.9.9.ci20260324T172621-1_amd64.changes\n+ xz\n+ git archive HEAD\n+ dpkg-buildpackage -us -uc\n dpkg-source --before-build .\n debian/rules clean\n dpkg-source -b .\n debian/rules build\n Compiling libc v0.2.177\n Compiling proc-macro2 v1.0.103\n Compiling quote v1.0.42\n Compiling unicode-ident v1.0.22\n Compiling cfg-if v1.0.4\n Compiling serde_core v1.0.228\n Compiling syn v2.0.110\n Compiling itoa v1.0.15\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling generic-array v0.14.7\n Compiling memchr v2.7.6\n Compiling serde v1.0.228\n Compiling serde_derive v1.0.228\n Compiling getrandom v0.2.16\n Compiling getrandom v0.3.4\n Compiling pin-project-lite v0.2.16\n Compiling once_cell v1.21.3\n Compiling rustix v1.1.2\n Compiling bitflags v2.10.0\n Compiling rand_core v0.6.4\n Compiling log v0.4.28\n Compiling futures-core v0.3.31\n Compiling linux-raw-sys v0.11.0\n Compiling zmij v1.0.18\n Compiling crypto-common v0.1.7\n Compiling aho-corasick v1.1.4\n Compiling serde_json v1.0.149\n Compiling utf8parse v0.2.2\n Compiling regex-syntax v0.8.8\n Compiling subtle v2.6.1\n Compiling bytes v1.11.1\n Compiling thiserror v2.0.17\n Compiling http v1.4.0\n Compiling regex-automata v0.4.13\n Compiling anstyle-parse v0.2.7\n Compiling thiserror-impl v2.0.17\n Compiling num-conv v0.1.0\n Compiling time-core v0.1.6\n Compiling smallvec v1.15.1\n Compiling is_terminal_polyfill v1.70.2\n Compiling ryu v1.0.20\n Compiling anstyle-query v1.1.5\n Compiling colorchoice v1.0.4\n Compiling powerfmt v0.2.0\n Compiling anstyle v1.0.13\n Compiling anstream v0.6.21\n Compiling deranged v0.5.5\n Compiling time-macros v0.2.24\n Compiling regex v1.12.2\n Compiling http-body v1.0.1\n Compiling tokio-macros v2.6.0\n Compiling mio v1.1.0\n Compiling socket2 v0.6.2\n Compiling hashbrown v0.16.0\n Compiling zeroize v1.8.2\n Compiling semver v1.0.27\n Compiling pin-utils v0.1.0\n Compiling winnow v0.7.13\n Compiling equivalent v1.0.2\n Compiling httparse v1.10.1\n Compiling indexmap v2.12.0\n Compiling time v0.3.44\n Compiling toml_parser v1.0.4\n Compiling rustc_version v0.4.1\n Compiling tokio v1.49.0\n Compiling terminal_size v0.4.3\n Compiling tracing-core v0.1.36\n Compiling inout v0.1.4\n Compiling toml_datetime v0.7.3\n Compiling serde_spanned v1.0.3\n Compiling dirs-sys-next v0.1.2\n Compiling vcpkg v0.2.15\n Compiling clap_lex v0.7.6\n Compiling unsafe-libyaml-norway v0.2.15\n Compiling pkg-config v0.3.32\n Compiling tower-service v0.3.3\n Compiling strsim v0.11.1\n Compiling scopeguard v1.2.0\n Compiling heck v0.5.0\n Compiling toml_writer v1.0.4\n Compiling fastrand v2.3.0\n Compiling toml v0.9.8\n Compiling tempfile v3.23.0\n Compiling clap_derive v4.5.49\n Compiling lock_api v0.4.14\n Compiling clap_builder v4.5.51\n Compiling git-testament-derive v0.2.1\n Compiling libsqlite3-sys v0.35.0\n Compiling serde_norway v0.9.42\n Compiling directories-next v2.0.0\n Compiling cipher v0.4.4\n Compiling tracing v0.1.44\n Compiling heapless v0.7.17\n Compiling env_filter v0.1.4\n Compiling futures-channel v0.3.31\n Compiling atomic-waker v1.1.2\n Compiling cpufeatures v0.2.17\n Compiling percent-encoding v2.3.2\n Compiling sync_wrapper v1.0.2\n Compiling jiff v0.2.16\n Compiling byteorder v1.5.0\n Compiling tower-layer v0.3.3\n Compiling httpdate v1.0.3\n Compiling crc32fast v1.5.0\n Compiling mutants v0.0.3\n Compiling foldhash v0.1.5\n Compiling futures-task v0.3.31\n Compiling futures-util v0.3.31\n Compiling env_logger v0.11.8\n Compiling hashbrown v0.15.5\n Compiling clingwrap v0.6.0\n Compiling hyper v1.8.1\n Compiling hash32 v0.2.1\n Compiling form_urlencoded v1.2.2\n Compiling clap v4.5.51\n Compiling git-testament v0.2.6\n Compiling spin v0.9.8\n Compiling http-body-util v0.1.3\n Compiling universal-hash v0.5.1\n Compiling adler2 v2.0.1\n Compiling fiat-crypto v0.3.0\n Compiling stable_deref_trait v1.2.1\n Compiling opaque-debug v0.3.1\n Compiling mime v0.3.17\n Compiling simd-adler32 v0.3.8\n Compiling miniz_oxide v0.8.9\n Compiling axum-core v0.5.6\n Compiling polyval v0.6.2\n Compiling serde_urlencoded v0.7.1\n Compiling hyper-util v0.1.20\n Compiling hashlink v0.10.0\n Compiling tower v0.5.3\n Compiling aes v0.8.4\n Compiling ctr v0.9.2\n Compiling cobs v0.3.0\n Compiling ed25519-compact v2.2.0\n Compiling aead v0.5.2\n Compiling axum-macros v0.5.0\n Compiling orion v0.17.12\n Compiling serde_path_to_error v0.1.20\n Compiling fallible-iterator v0.3.0\n Compiling fallible-streaming-iterator v0.1.9\n Compiling matchit v0.8.4\n Compiling ct-codecs v1.1.6\n Compiling pasetors v0.7.7\n Compiling axum v0.8.8\n Compiling rusqlite v0.37.0\n Compiling aes-gcm-siv v0.11.1\n Compiling postcard v1.1.3\n Compiling flate2 v1.1.8\n Compiling uuid v1.20.0\n Compiling hostname v0.4.2\n Compiling obnam v0.10.0 (/ci/src/obnam)\n Compiling obnam-server v0.1.0 (/ci/src/obnam-server)\n Finished `release` profile [optimized] target(s) in 3m 23s\n debian/rules binary\n Installing obnam v0.10.0 (/ci/src/obnam)\n Compiling syn v2.0.110\n Compiling serde_core v1.0.228\n Compiling memchr v2.7.6\n Compiling serde_derive v1.0.228\n Compiling getrandom v0.3.4\n Compiling thiserror-impl v2.0.17\n Compiling aho-corasick v1.1.4\n Compiling serde v1.0.228\n Compiling regex-syntax v0.8.8\n Compiling regex-automata v0.4.13\n Compiling thiserror v2.0.17\n Compiling serde_json v1.0.149\n Compiling serde_spanned v1.0.3\n Compiling toml_datetime v0.7.3\n Compiling regex v1.12.2\n Compiling once_cell v1.21.3\n Compiling git-testament-derive v0.2.1\n Compiling tempfile v3.23.0\n Compiling toml v0.9.8\n Compiling serde_norway v0.9.42\n Compiling heapless v0.7.17\n Compiling clap_derive v4.5.49\n Compiling env_filter v0.1.4\n Compiling cobs v0.3.0\n Compiling smallvec v1.15.1\n Compiling rusqlite v0.37.0\n Compiling clingwrap v0.6.0\n Compiling env_logger v0.11.8\n Compiling postcard v1.1.3\n Compiling clap v4.5.51\n Compiling git-testament v0.2.6\n Compiling uuid v1.20.0\n Compiling obnam v0.10.0 (/ci/src/obnam)\n Finished `release` profile [optimized] target(s) in 1m 09s\n Installing /ci/src/debian/obnam/usr/bin/obnam\n Installed package `obnam v0.10.0 (/ci/src/obnam)` (executable `obnam`)\nwarning: be sure to add `/ci/src/debian/obnam/usr/bin` to your PATH to be able to run the installed binaries\n dpkg-genbuildinfo -O../obnam_0.9.9.ci20260324T172621-1_amd64.buildinfo\n dpkg-genchanges -O../obnam_0.9.9.ci20260324T172621-1_amd64.changes\n dpkg-source --after-build .\n+ ls -l ..\n+ for x in ../*.deb\n+ dpkg -c ../obnam-dbgsym_0.9.9.ci20260324T172621-1_amd64.deb\n+ for x in ../*.deb\n+ dpkg -c ../obnam_0.9.9.ci20260324T172621-1_amd64.deb\n+ mv ../obnam-dbgsym_0.9.9.ci20260324T172621-1_amd64.deb ../obnam_0.9.9.ci20260324T172621-1.debian.tar.xz ../obnam_0.9.9.ci20260324T172621-1.dsc ../obnam_0.9.9.ci20260324T172621-1_amd64.buildinfo ../obnam_0.9.9.ci20260324T172621-1_amd64.changes ../obnam_0.9.9.ci20260324T172621-1_amd64.deb ../obnam_0.9.9.ci20260324T172621.orig.tar.xz /ci/artifacts/debian\n",
"timestamp": {
"secs_since_epoch": 1774373463,
"nanos_since_epoch": 898897574
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "deb",
"packages": "debian",
"timestamp": {
"secs_since_epoch": 1774373464,
"nanos_since_epoch": 190130985
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_create",
"archive": "/dev/vde",
"directory": "/ci/cache",
"timestamp": {
"secs_since_epoch": 1774373464,
"nanos_since_epoch": 190165271
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_create",
"archive": "/dev/vde",
"directory": "/ci/cache",
"timestamp": {
"secs_since_epoch": 1774373468,
"nanos_since_epoch": 920423102
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_create",
"archive": "/dev/vdd",
"directory": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1774373468,
"nanos_since_epoch": 920485454
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_create",
"archive": "/dev/vdd",
"directory": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1774373468,
"nanos_since_epoch": 946757825
},
"log_source": "Plan"
}{
"type": "plan_succeeded",
"timestamp": {
"secs_since_epoch": 1774373468,
"nanos_since_epoch": 946821360
},
"log_source": "Plan"
}{
"type": "executor_ends_successfully",
"timestamp": {
"secs_since_epoch": 1774373468,
"nanos_since_epoch": 946830665
},
"log_source": "Plan"
}{
"request": "trigger",
"version": 1,
"event_type": "push",
"repository": {
"id": "rad:zbWNQYkQ4QKgdSQcd1tjaemv6d6x",
"name": "obnam",
"description": "Explore implementation of backup fundamentals",
"private": false,
"default_branch": "main",
"delegates": [
"did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"
]
},
"pusher": {
"id": "did:key:z6Mki2ago1X2A5UWgKpoSxyCRLLhyZMwpam4T3EKvRmFTyuy",
"alias": "callisto.liw.fi"
},
"before": "4bd79d9661f3e4dde7043240c8453ee65a360f8f",
"after": "4bd79d9661f3e4dde7043240c8453ee65a360f8f",
"branch": "main",
"commits": [
"4bd79d9661f3e4dde7043240c8453ee65a360f8f"
]
}run CI for rad:zbWNQYkQ4QKgdSQcd1tjaemv6d6x
<empty log>