summary refs log tree commit diff
path: root/ripple
AgeCommit message (Collapse)Author
2022-02-08ripple/minitrace: log access(2) pathsedef
Co-authored-by: V <v@unfathomable.blue> Change-Id: I26603ca7de3ac4a21b64390e4fc3d9f44a6c172a
2022-02-08ripple/minitrace: consistently use .. for arg matchingedef
Change-Id: Iadaebe17f1362460bf5b7b5770da3b94afbca237
2022-02-08ripple/minitrace: clear child environment variablesedef
Change-Id: If55273931055ff9033aca2e274b6cf7b4a510ec2
2022-02-08ripple/minitrace: enforce openat flagsedef
Co-authored-by: V <v@unfathomable.blue> Change-Id: Id848249e6b4a3de612d298d434c59889ba93b300
2022-02-08ripple/minitrace: log openat pathsedef
Co-authored-by: V <v@unfathomable.blue> Change-Id: Idcb3c29c4761158be788511f5f4bdb3003edf909
2022-02-08ripple/minitrace: ensure openat calls use AT_FDCWD onlyedef
Co-authored-by: V <v@unfathomable.blue> Change-Id: I32ca1947fc9278bdee1b0a8acdc8d5d66b61d736
2022-02-07ripple/shell.nix: make cc1 available for minitrace testingedef
Change-Id: Ie88130942865aa73bbdd9a3ddd71d9f5ef5914ab
2022-02-07ripple/minitrace: use anyhow::Result unqualifiededef
Result<T, E> keeps the same meaning, so there's no need to qualify it. Change-Id: I22872860ff18e75c01be01e0d4c8030bfc4133bb
2022-02-03ripple/minitrace: don't permit tracee escape if the tracer diesedef
Change-Id: If2c0262b82e072a600f9b8dfe7efdf3556f0e16a
2022-02-03ripple/Cargo.lock: resyncedef
We should probably have a CI lint for this. Change-Id: Ibff833dd4e3a428b1c96aa659cfd046f7e177a23
2022-02-03ripple/minitrace: only disable ASLR in traceeedef
Change-Id: I6df0596ecc0ba9514c04339dbd80469880e30f4c
2022-02-03ripple/minitrace: take care of our own ptrace bringupedef
Change-Id: I2602d7bb751b6a7415832308843cb334b6f24aa2
2021-12-28ripple/minitrace: disable ASLRedef
Change-Id: I7e34fd965b46f33a38821bca196c8774206ee037
2021-12-28ripple: upgrade nix crate to 0.23.1edef
Change-Id: Ie477bbd96109b4ce9ddcee221addb49733259d5a
2021-12-28ripple/minitrace: enforce arguments for arch_prctl, prlimit64, ioctl, mmapedef
Change-Id: Ifb5939b9088de3096da7a1bdc6e0bc6e6a6ba94f
2021-12-27ripple/website/pages/syscalls: document the syscalls we need to support for ↵edef
our MVP Change-Id: I651816d004ee5c5049569ddcf157d492cbcc0b2a
2021-12-27ripple/minitrace: enforce permitted syscall numbersedef
This doesn't discriminate between muxed syscalls yet, but at least bounds the available syscalls to the ones `cc1 hello.c` invokes. Change-Id: I1965f27746b509b32d5e86510e803038765c11dd
2021-12-27ripple/minitrace: initedef
Minimal PTRACE_SYSCALL tracer for further narrowing down the syscalls we need to support. Change-Id: I562ee6e88e52d7deeee6de588ef00dfc1c38a71a
2021-12-23ripple/website/nix: fix deploymentV
Our post-update deployment hook expects a callPackage-able default.nix in the root of the repository. Let's fix that! I'm moving the nixpkgs wrapper to another file, so it's still easy to build. Placeholder page until we've actually got content. Change-Id: I5e3ecabe0025c2361e15e31b3c520be6410281ce
2021-12-22ripple/data: add syscalls-gcc.logedef
A trace of `gcc hello.c -o hello` on Arch Linux, using //tools/driver.pl. Change-Id: I0af3d4896cb1bc530b3781fc3c48090b4c212316
2021-12-22ripple/data: add hello.cedef
Bog standard C hello world. The license info, insofar relevant, is kept separately because it's an unnecessary contaminant. Change-Id: Icf48e11fa44618a7f265f8b083e8a02dc6387711
2021-08-22ripple/fossil: prefer anonymous type parametersedef
This is mostly a stylistic distinction, but it helps with readability. Change-Id: Ia6b3dca53638f12bcfd498b5f36e7abf16fd061a
2021-08-14ripple/fossil: a basic content-addressable storeedef
Fossil stores content-addressed blobs of file contents and Protobuf-encoded directory listings, backed by Sled. Change-Id: I8b49de6342218ca00755cec980b1d0cfb18878a7
2021-08-14ripple/nix: build everything with naerskV
Yes, it really is that simple. Naersk is great! Change-Id: I183f5bd0d2547a368f32bbc42fddf03e7cb03331
2021-08-14ripple: create the project skeletonV
Change-Id: I4e50d2990fea76097ee61f8c98d65f2e4e44d765
2021-08-14ripple: add a basic development shell and .envrcV
Let's start with some basic build tooling, and some extra dependencies to let us use rust-analyzer with the pinned version of Rust. Change-Id: I1dd59277d29680ba89efdc7672668b3b095ef4a7
2021-08-14ripple/nix: add rustfmt `imports_granularity = "One"` patchV
This lets us use an unreleased formatting variant that merges all use statements into a single block. Change-Id: I0ff9fb960171c9af3dbd3a841e35e17a4965a246
2021-08-12ripple/nix: initialize nixpkgs pinV
We're using an unstable branch over releases, as biannual package updates are too infrequent for tools with short release cycles. We're specifically using nixos-unstable, as this has more thorough testing than nixpkgs-unstable does (at the cost of lagging behind, slightly). Change-Id: Iaa5101f40148d2d85e8258cf73576bf7f531d4c1
2021-07-10ripple: move tools to their own directoryV
Change-Id: I693b9b9c5b9aff8c96b1b81f1ff7b7f2b92eabcb
2021-05-29ripple/driver.pl: fix bpftrace argument passingedef
bpftrace takes a single argument to -c, and then simply does a naive split_string(cmd, ' ') on that. This unfortunately makes it impossible to pass arguments containing spaces to subprocesses. Change-Id: Ib18a19f858b5acd87e54e00927173ccd4fe6ee49
2021-05-28ripple/fakefakeroot: a fakeroot shimedef
Package managers and build systems love running install phases under fakeroot, which generates a lot of spurious syscalls for us. This shim takes care of that without patching build systems. The included Arch Linux PKGBUILD provides it as a replacement package for fakeroot itself. It does not attempt to fully comply with packaging guidelines, nor does it need to, since it isn't intended to be upstreamable anyway. Reviewed-by: V <v@unfathomable.blue> Change-Id: Ie9bf87d066f9bb2de7624d705b1e4527cca14d9a
2021-05-26ripple/driver.pl: a basic syscall tracing driveredef
This program spawns a child in a new cgroup (using systemd-run) under bpftrace and counts syscall invocations for each (syscall, comm) pair. It outputs a TSV of (syscall, comm, count) tuples to STDERR. This makes it easy to assess which system calls a build process uses, segmented by a useful approximation of the invoking programs. Change-Id: I9ab7a34fda82245d3fa22b47840de16d1decf719
2021-02-25ripple/website: initV
This contains the source to Ripple's website, as it was published on 2020-10-07. Change-Id: I4c871be79d8841b277d23ea741c8728ec5da8cc8