summary refs log tree commit diff
AgeCommit message (Collapse)Author
2022-07-28ripple/minitrace: mark file descriptor parametersedef
This doesn't specifically handle * the distinction between borrowed/owned file descriptors (in non-return positions, that only applies to `close`) * "nullable" fd parameters (-1 for not-present) * other sentinel fds, like AT_FDCWD * fd validity in general Change-Id: I00fa68ec94b8f24e28c661d0c007becb37c0a5f3
2022-07-27ripple/minitrace: remove GRND_ prefix from GrndFlagsedef
Change-Id: Icfcab2fccc1c152a694dfba3ba1e272cdacdbfab
2022-07-27ripple/minitrace: parse mmap flags strictlyedef
Change-Id: I56731f205e065bf501fd31a69c71c10aa7a2f720
2022-07-27ripple/minitrace: mmap fd is an i32, not u64edef
Change-Id: I092d4f47231d560a0c4ac023e63051def34c2c92
2022-07-27ripple/minitrace: better errors for invalid syscall argsedef
Change-Id: I26356c9b88c838e3c87e4083ac17f958c7c57bb7
2022-07-27ripple/minitrace: introduce syscall_bitflags!edef
Squeeze the bitflags / SyscallArg impl boilerplate into one macro. Change-Id: I5b5213b6f3ee11bc61b6f8439ceb2510ef6dffec
2022-07-27ripple/minitrace: implement SyscallArg for bitflagsedef
Change-Id: I1b4e7e01b5d5c840ac2e94f9637552f71e61ed04
2022-07-27ripple/minitrace: disable dead_code lint on SyscallArgsedef
Every single syscall arg producing a warning is just noisy. Change-Id: I339260886110e2982217ebbf9d29cb1cf91c747c
2022-07-27ripple/minitrace: refactor syscall interpretationV
We separate type-based parsing of syscall arguments from more detailed validation based on multiple parameters or on specific values. The former is implemented with a macro that takes syscall signatures and generates the relevant enum variant and parsing code. Co-authored-by: edef <edef@unfathomable.blue> Change-Id: I7e334d3e128e7b1461bfd6fae7c8ec5dd6ada0a8
2022-07-27ripple/minitrace: fix newfstatat dirfd handlingedef
Same bug as Ied63822001c8700fc71c89ec16d18036fbc33972, hiding missing behaviour around dirfd. newfstatat(AT_FDCWD, path, …) is used, as is newfstatat(fd, "", …). Change-Id: I03b9dc5118d7a47514abef82c4a577e8362fbb4d
2022-07-08ripple/minitrace: convert openat dirfd correctlyedef
Our conversion always mangled it, *and* our comparison was inverted, so both bugs remained hidden. Change-Id: Ied63822001c8700fc71c89ec16d18036fbc33972
2022-06-20fleet/pkgs/naut: clean up formattingedef
Change-Id: I74844b6a35fe1fd76af87fe994a346ee92eb3ccb
2022-06-20fleet/pkgs/naut: use Rust 2021edef
Change-Id: I53feb0e3f20c4e9d59407d17612551be4db06177
2022-06-20fleet/pkgs/naut: filter down to commits touching the ripple subtreeedef
This is a bit crude, and it'll behave incorrectly on orphan branches, but it'll do the trick for now. Change-Id: Id5424dc4e8480ba65a029ffe2100de0c975e14a1
2022-06-20fleet/pkgs/naut: simplify down to a single channel and a single repoedef
We have a single repository (the monorepo), and a single project channel worth reporting to (Ripple's). Change-Id: I17d84b610639d7eed422d6a7032908d21143a582
2022-06-20fleet/test: work with clean trees tooedef
Change-Id: Ia01dd3e8f8548030d407c3afd1116a5c9eff6ec7
2022-06-20fleet/test: run builds with --keep-goingedef
Change-Id: I41e2932131c31346a421761d45fdc9d2a9b6ff3d
2022-06-20fleet/test: don't rely on SSH config and repo remotesedef
Change-Id: I066a1fdbeabef0c2c38dcb0740c89eb056bb62f5
2022-06-20fleet: it's monorepo time!V
Change-Id: I4670dd7930a9b6227993c1caf92c5877918f982d
2022-06-19ripple/minitrace: fix syscall ABIV
The fourth argument is passed in r10, not rcx, which is merely clobbered by syscalls. Change-Id: I0c7210c621f6955deccf21348ce6f495424555cc
2022-06-19githooks: add SPDX headersedef
There ought to be a git hook for this.. Change-Id: I111c6150f024782838e40a1855d0d303c6ddbc93
2022-06-19githooks/commit-msg: use git-interpret-trailers --in-placeedef
Change-Id: I31567a95f4d55e7cee526eb5432201087aaa3a1a
2022-06-19githooks/commit-msg: don't inhibit git's empty commit message behaviouredef
Change-Id: I9e800f347cfb5440c384766f0be55aba4a40c94f
2022-06-19Make rustfmt.toml globaledef
Change-Id: I9ef820d2c22d54c6d8d6b259c2eea3f27d6459ac
2022-06-19fleet/pkgs/naut: point source URL at the monorepoedef
Change-Id: I107a0402464f13afe318bfb91229dfeacda61806
2022-06-19ripple/fossil: box the bao decoderedef
Shuffling 3k around on the stack doesn't make anyone happy. Change-Id: I444fc22267380d9b99ca63ca148b9a9e85238b5a
2022-06-19githooks: add Change-Id commit-msg hookedef
This adds a randomly generated Change-Id to every commit message that doesn't have one yet. Change-Id: Ic0d1bb74dc60633cd70550e0dde6b0b8340c89bd
2022-06-18githooks: initedef
A place for git hooks to live, with an installation script that wires up core.hooksPath correctly. Change-Id: Icf6250764cf580067871580d74f6d5ddc52820eb
2022-06-17ripple/minitrace: add set_tid_address, set_robust_list, and getrandomV
With this, minitrace has all the syscalls needed to run cc1. Change-Id: Iaeef58769f69d64e192af2270eb520e891daec94
2022-06-13ripple/fossil: use std::os::unix::preludeedef
We were accidentally grabbing things from the prelude module already, and this is the cleaner fix. Change-Id: I2c6b669164df11f467eae495d109e096eb267b59
2022-06-12ripple/fossil/chunker: use hex_literal rather than hex escapesedef
A little more explicit, and a bit more readable. Change-Id: Id462c46236e1de547aabd36409260bd1c99f6f88
2022-06-12third_party/cachunker: initedef
This is the BuzHash content-defined chunker extracted from Lennart Poettering's casync, almost verbatim, along with Rust bindings so we can actually use it safely. The bindings are a little bit constrained, since they don't support streaming use, unlike the code they are wrapping. This suffices for our use case: performance and correctness comparison to our native Rust implementation, which should behave identically and perform better. Change-Id: Iee4296f661b036620bafef5a6c6671fe1a750bb6
2022-06-12ripple/website: add SPDX annotationsedef
We haven't picked a license for our web content yet, so this is LicenseRef-NONE for now. Change-Id: Iabfc35860cb8ad0025624161214b1cbb6574e0c5
2022-06-12ripple/shell.nix: provide a wrapper for SUID fusermount(1)edef
fusermount(1) gets shadowed by pkgs.fuse, but we actually need the SUID-root one in the system PATH. This adds a wrapper script that hunts down a SUID-root binary from PATH. Change-Id: Icc5c6789d7b74bf8f6e3c50529333eb6b894527f
2022-06-06fleet/hosts/trieste/web: fix homepage 404ingV
Unless Caddy recently changed how it resolves directives, this has been broken since the initial deployment. `error` directives are processed before `respond` directives[1], and unlike CSS, matcher precision does not impact directive precedence. Sticking a `route` directive around the two of them makes things work as expected. [1]: https://caddyserver.com/docs/caddyfile/directives#directive-order Change-Id: Ic05c6ba9a7143c3a58c2bf7ccd0498a7337257f8
2022-06-06fleet/hosts/trieste/cgit: switch implementation to cgit-pinkV
cgit-pink purports to be actively maintained, unlike its upstream. Change-Id: I4d76324ddb24f5fd3e53aeed6fa6ed17713ee15d
2022-06-04fleet: upgrade to NixOS 22.05V
Change-Id: Ie5542d079ee7b2de06e0faed52343905b3287b39
2022-05-30fleet/hosts/{kaikou,trieste,vityaz}: add my SSH certificateV
This will live alongside the existing keys until I'm completely comfortable with the new setup. Change-Id: Ia26299c0a1ff60fff37104c0fb8eaf31f17a3df5
2022-05-14fleet/modules/web: drop Content-Security-Policy header, for nowV
Blocking inline scripts was causing Gerrit to load fonts from Google's CDN. Rather than adding the appropriate exception for this one instance, and giving myself a false sense of safety (which will inevitably result in me running into other subtle issues of this kind in the future), I'm going to disable the entire thing until I have time to set up reporting. Change-Id: I7c48e4f7d113ecc15dec0bb930918ccc691b124f
2022-05-14fleet/hosts/kaikou: add skeleton Gerrit configV
Change-Id: Ibf68b5b4d7377ea5863315ffd5b6ed24c2874961
2022-05-11fleet/hosts/kaikou: a build automation serverV
This will host a Gerrit instance and run CI jobs for us. Change-Id: Ida683bfa910843cc4bcc8a96f2872364067a17ea
2022-05-10ripple/fossil: permit importing trees from git reposedef
Change-Id: I8329f14bddaaa2d141e82c087821e4602bd1259a
2022-05-05ripple/fossil/mount: document how . and .. workedef
Change-Id: I6c4d471b2840613d30ee95efe14547f2f9c0db6b
2022-05-05ripple/fossil/Cargo.toml: sort depsedef
Change-Id: I0710d80e34bcad1d4b1406731f2d790a0e6972f4
2022-05-05ripple/fossil/mount: terminate out-of-bounds Node::find earlyedef
Node::find would walk the tree all the way down and to the right if given an out of bounds index. This doesn't affect the return value (None), but it does waste some cycles walking down all the way to the deepest rightmost leaf. Change-Id: Ic2f72aa96291a25819fc6c3c2f060fe0182a7663
2022-05-04ripple/fossil/mount: don't allocate on readdiredef
Change-Id: I319a2de0da0ff71f0f337e5a17ef199f23254b11
2022-05-04ripple/fossil/mount: back memtree with a single Vecedef
A single linear array does everything we need here, since we don't actually use the cheap writes the BTreeMaps would permit us, and we save ourselves the hassle of maintaining two parallel lookup structures. Change-Id: I418b0aaa7a3191fab3195f36f2c68ac0f5f0382b
2022-05-03ripple/fossil: handle missing blobs more gracefullyedef
Change-Id: I8a928b57ecc81bea31d757e73b9ece9474628db4
2022-05-03ripple/fossil/mount: expose arbitrary directories by digestedef
This makes the filesystem more like eg /nix/store. ~/src/ripple> ./target/release/add fossil puma5z7rnb4tmnqk8ixgryobay9ifg8txh69635snkgx8dis6quo ~/src/ripple> ./target/release/mount & ~/src/ripple> ls mnt/puma5z7rnb4tmnqk8ixgryobay9ifg8txh69635snkgx8dis6quo benches build.rs Cargo.toml src Change-Id: Ic35f81ffec521f49ce2e4a414919e1ff717d7041
2022-05-03ripple/fossil/mount: make node references more flexibleedef
Essentially, memtree::Node becomes more of a NodeRef, and Node gets renamed to NodeBuf. This permits calling Node::find with an arbitrary owned Directory, without having to move it into the enum. Change-Id: I93838932a00f2e2073e3c7ddf7ce8d302ed4ed59