This makes it possible to pipe json dicts to the program and fully
navigate them.
Change-Id: I18dd8683d6f00c8ea967eb0c8dc89d1e0735fbcb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2863
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
A take at a TUI-based structural editor, which should eventually read
a type definition of a structure and some values, and build a GUI to
edit it.
So far you can only pipe it some restricted json (lists, strings and
floats) and “navigate” through the structure with the arrow keys.
Change-Id: I7c8546459ff86c766fc03723f732c7d9f863ceaa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2862
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
We don't need these in the depot anymore as the Emacs overlay now
provides newer versions of them, or because they are not used anymore.
Change-Id: I393e1580b66450d0bb128213bc79668172dadacc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3005
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
This is currently done ad-hoc in a bunch of our systems, but we should
just do it centrally.
The commit message is a bit of a lie, as this doesn't yet update
grfn's systems.
Change-Id: Ic771c1a1da78ec5de9cffbf94c296dce5e11fd84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3047
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Provide ddcutil and paperlike-go in $PATH. Provide the necessary udev
and kernel module plumbing so they work as non-root.
Icecream-Required-From: Vincent Ambo <mail@tazj.in>
Change-Id: Ic9323a45cdbb75571e8f8b3aca4b9a763c271968
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3029
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Implement tuple expressions, types, and patterns, all the way through
the parser down to the typechecker. In LLVM, these are implemented as
anonymous structs, using an `extract` instruction when they're pattern
matched on to get out the individual fields.
Currently the only limitation here is patterns aren't supported in
function argument position, but you can still do something like
fn xy = let (x, y) = xy in x + y
Change-Id: I357f17e9d4052e741eda8605b6662822f331efde
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3027
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Rather than pinning a nixpkgs in here, just import the relative path to
the depot to load nixpkgs.
Change-Id: I452727d45e4f44ecc99b86d17e88a413c1911c59
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3025
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
I want notmuch to open in a full window, not as a bottom-of-the-screen
popup.
Change-Id: If539ff315fabae94d5a849c526c4322f9bdf8c61
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3024
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This... mostly works! I had to install it from the latest master branch
to get it functioning on my CPU, hopefully once they release a new
version I can remove the override.
Change-Id: I863d2e822b149838c58aa1c1e7dc73a127a0aeb8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3022
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
It is easier to do the inverse of this solution: Filter out the
package on the machines that get it from elsewhere.
Change-Id: I2abe112e4e38822d0fc7a47ea0bcedec1e0a96e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3010
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
... but keep defaulting to standard Emacs27, for $reasons
Change-Id: Ife243ab18a03e6b0270a39c639cc493d71240362
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3007
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Since we need to override random to 1.2.0 globally for xanthous
(otherwise propagation causes two versions of random to be propagated
for xanthous) evaluating haskell related stuff using import from
derivation can be very expensive since utilities like hpack and
cabal2nix need to be built for that. This means that for every channel
bump we potentially need to do a world rebuild of haskellPackages first.
To solve this we check in the cabal2nix-generated nix expressions for
owothia and xanthous.
Change-Id: I8fff70b4b6c303d1920f8bcac53520a09999b206
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2921
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Instead of having two ways of accessing the path to the depot (one of
which was stuttering, depot.depotPath) we settle on only one:
depot.path.
This was mostly used for NixOS module imports.
Co-Authored-By: Florian Klink <flokli@flokli.de>
Change-Id: I2c0db23383fc34f6ca76baaad4cc4af2d9dfae15
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2962
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
As a complementation to builtins.functionArgs this function checks if
the function has a set pattern that contains an ellipsis
(i. e. `{ [arg, [ arg1, [ … ]]] ... }:`). The implementation of this is
pretty cursed however since there is no clean way to do this in vanilla
nix: We need to match on the output of builtins.toXML which does try to
serialize functions by outputting their argument and information about
it (whether it is a normal argument or a attribute set pattern, in the
latter case it also serialize every component of the pattern).
Change-Id: I0f33721811a3180cec205a0c98e6d92e10e92075
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2950
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
I'm not using cloudfront for gws.fyi anymore, so this invalidation step
on deploy is pointless
Change-Id: I153848666dc70acfc456b5dcf276bab2410c4716
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2946
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Looks kinda like rebuild-mugwump, only for home
yes, yes, this could gc halfway through, that's so unlikely that I don't
care
Change-Id: Iab3fdac15796e9f8158a9778b897bc3fe88e536e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2942
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Rename my //users directory and all places that refer to glittershark to
grfn, including nix references and documentation.
This may require some extra attention inside of gerrit's database after
it lands to allow me to actually push things.
Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: glittershark <grfn@gws.fyi>
Splits //ops/nixos into:
* //ops/nixos.nix - utility functions for building systems
* //ops/machines - shared machine definitions (read by readTree)
* //ops/modules - shared NixOS modules (skipped by readTree)
This simplifies working with the configuration fixpoint in whitby, and
is overall a bit more in line with how NixOS systems in user folders
currently work.
Change-Id: I1322ec5cc76c0207c099c05d44828a3df0b3ffc1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2931
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: glittershark <grfn@gws.fyi>
Fixes included:
* exposed gtest in the package set, required for protobuf
* pinned SBCL to version 2.0.8: The channel moved it to >2.1, and a
bunch of warnings seemed to be killing our builds - we should
investigate this later.
* removed kernel patches from //users/tazjin/frog: this machine is
currently out of service anyways, not worth fixing while it's offline
* removed steam & lutris from frog (they're currently broken)
* removed Haskell overrides for hedgehog-classes & hgeometry-combinatorial
* use gRPC sources from upstream and inject Abseil via Nix instead
* fix for renamed grpc import in //third_party/nix
* use libfprint-tod from upstream nixpkgs in glittershark/yeren and
delete glittershark/pkgs/fprintd entirely, since all of the patches used
there are available and working from upstream now (and stopped working
here after the bump)
Change-Id: Ia90e6f774f7b88bc9e60d28351b900ca43ee2695
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2901
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Tested-by: BuildkiteCI
The random_1_2_0 attribute of haskellPackages currently holds random
1.2.0 which is what we want to have. We need to disable tests because
they cause an infinite recursion as basically all testing libraries
depend on random. This has the nice side effect that we no longer need
import from derivation for random 1.2.0 (but owothia and xanthous still
use it).
Re-enable CI for xanthous.
Additinonally we need to deal with the fallout of the haskellPackages
overlay now also being pulled in for some machines since cl/2910 and
let pandoc compile with random 1.2.0.
Change-Id: I78d220e5bd35f3469d80d69e77e712a529f21d33
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2924
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: glittershark <grfn@gws.fyi>
I have two YubiKeys now, and using the older one is more painful. Add the new
one, so I don't have to faff with gpg-agent in order to submit CLs.
Change-Id: I3fcd82cdb53f88dc00025de97666872802e270e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2928
Reviewed-by: eta <eta@theta.eu.org>
Tested-by: BuildkiteCI
This wasn't working because yerenSystem wasn't actually accessing the
`system` attribute (like the other systems), which meant it was just
an attribute set full of stuff.
Change-Id: I0abe56f0a1f18e4e542cb458dfcdf81e8a0ddc01
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2923
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Please read b/108 to make sense of this.
This gets rid of the explicit list of exposed packages from nixpkgs,
and instead makes the entire package set available at
`third_party.nixpkgs`.
To accommodate this, a LOT of things have to be very slightly shuffled
around. Some of this was done in already submitted CLs, but this
change is unfortunately still quite noisy.
Pay extra attention to:
* overlay-like functionality that was partially moved to actual
overlays (partially as in, the minimum required to get a green
build)
* modified uses of the package set path, esp. in NixOS systems
Special notes:
* xanthous has been disabled in CI because of issues with the Haskell
overlay
* //third_party/nix has been disabled because of other unclear
dependency issues
Both of these will be tackled in a followup CL.
Change-Id: I2f9c60a4d275fdb5209264be0addfd7e06c53118
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2910
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
adisbladis fixed the tdlib/telega versioning issues in nixpkgs at some
point, so this isn't required anymore.
Change-Id: Ib98e73d0e4394765f08f5f3741f70adab459c22f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2909
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This should ease migrating to a distinction between depot.third_party
and pkgs (as in nixpkgs) in the future.
Ref cl/2910, b/108.
Change-Id: I53a854071fddd7c0d0526cc4c5b16998202082c6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2913
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Add kolide, the endpoint monitoring system / MDM we're using at work, to
the system derivation for my work computer.
I hate MDMs almost universally, and this one is no different, but SOC2
waits for no one.
Change-Id: I99bcb5341182a81512699d50b279efd9e1b2194b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2903
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
This way we don’t have to explicitely wrap the rust crate with a
`testRustSimple`, but it will be done automatically, unless `doCheck`
is set to `false`.
Change-Id: I32a81821eeff620e7da57332b0873495bb85a843
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2841
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
Instead of ~500 lines, it's about ~50 and you can actually
individually address the lambdas and their colours.
I don't exactly know why I made this rather than going to bed, but it
might come in handy sometime.
Change-Id: I7aa25777ebac4a83fd3febb553fcad773836119b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2815
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Profpatsch and me are basically the only users of
depot.users.Profpatsch.writers.rustSimple*. To pull in the odd
dependency we usually use buildRustCrate which is rather convenient.
However we've picked up the bad habit of inlining these in a let
somewhere instead of managing them in a more central location although
there has been an (unsuccesful) attempt at this in
//users/Profpatsch/rust-crates.nix.
This CL moves all buildRustCrate based derivations into
third_party.rust-crates and deletes any duplicate derivations we have
accumulated in the tree.
Change-Id: I8f68b95ebd546708e9af07dca36d72dba9ca8c77
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2769
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Previously the tvl depot attrset was provided as the config.depot
argument, but to make NixOS modules look more like the rest of the depot
this is being switched to being provided as the "depot" argument
instead.
Change-Id: I7e011fe5c44ac3e4142177afd168f1bbc602d56f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2764
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
The depot.nix module is automatically brought in by systemFor, and
shouldn't be included in user configs, since it's going away.
Change-Id: Ib5b60203978b51dbff1f7bcc287f2ac9eb278823
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2762
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
ops.nixos.nixosFor is intended to provide the "basic" readTree-like
system arguments to NixOS systems; in particular, it provides "depot" as
a module argument, as well as, for the moment, config.depot.
Change-Id: I442c7d79ac0eb2ff8e1bf606f4e083e15eb0a8f4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2761
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
This drops the annoying usage of builtins.currenTime, which means that
my website stops constantly rebuilding.
Change-Id: I44294b06588673846f473beb6533a5fa3410a1bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2767
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Fixes a long-standing todo by adding an additional field for the time
at which a post was updated, and handling this in both site
generation (to note the update date after the publish date) and in
Atom feed generation (by populating both the updated and published
fields).
Change-Id: If80db43459b2a0c77eea4dde7255651b5d6cd64b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2766
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
More or less direct port of https://dotti.me to mdoc(7) with the
following changes:
* Add a RFC3339 column to the EXAMPLES table. RFC3339 is a well
specified subset of ISO8601 whose specification is also more
accessible so this could help someone out.
* Add a SEE ALSO section linking to the web site
* Add an AUTHORS section
Change-Id: I8db00bd402697aa52f6f651f28692617b487f832
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2642
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
nint (short for nix interpreter) is a tiny wrapper around nix-instantiate
which allows to run nix scripts, i. e. nix expressions that conform to
a certain calling convention. A nix script runnable using nint must
conform to the following constraints:
* It must evaluate to a function which has a set pattern with an
ellipsis as the single argument.
* It must produce a string as a return value or fail.
When invoked, a the expression receives the following arguments:
* `currentDir`: the current working directory as a nix path
* `argv`: a list of strings containing `argv` including `argv[0]`
* extra arguments which are manually specified which allows for
passing along dependencies or libraries, for example:
nint --arg depot '(import /depot {})' my-prog.nix [ argv[1] … ]
would pass along depot to be used in `my-prog.nix`.
Such nix scripts are purely functional in a sense: The way inputs can be
taken is very limited and causing effects is also only possible in a
very limited sense (using builtins.fetchurl if TARBALL_TTL is 0,
adding files and directories to the nix store, realising derivations).
As an approximation, a program executed using nint can be thought of
as a function with the following signature:
λ :: environment → working directory → argv → stdout
where environment includes:
* the time at the start of the program (`builtins.currentTime`)
* other information about the machine (`builtins.currentSystem` …)
* environment variables (`builtins.getEnv`)
* the file system (`builtins.readDir`, `builtins.readFile`, …) which
is the biggest input impurity as it may change during evaluation
Additionally import from derivation and builtin fetchers are available
which introduce further impurities to be utilized.
Future work:
* Streaming I/O via lazy lists. This would allow usage of
stdin and output before the program terminates. However this would
require using libexpr directly or writing a custom nix interpreter.
A description of how this would work can be found on the website of the
esoteric programming language Lazy K: https://tromp.github.io/cl/lazy-k.html
* An effect system beyond stdin / stdout.
* Better error handling, support setting exit codes etc.
These features would require either using an alternative or custom
interpreter for nix (tvix or hnix) or to link against libexpr directly
to have more control over evaluation.
Change-Id: I61528516eb418740df355852f23425acc4d0656a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2745
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
The way this loads the api key is a hack, but also... I don't care!
Change-Id: I4d417b1a824007620661188b60b21a1f73867dca
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2747
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
We use builtins.split directly as it should be a bit more efficient as
lib.splitStrings. Also its returning of a list for every regex match is
useful to update the state while parsing the tokens:
* The tokens are obtained by splitting the string at every '%'
* Everytime we see a boundary (that is a list in the returned
list of builtins.split), we know that the first two chars of
the next string are a percent encoded character.
One implementation flaw is that it will currently crash if it encounters
mal-formed URLs (since int.fromHex chrashes if it encounters any non
hex digit characters) and accepts some malformed urlencoding like
"foo %A".
Change-Id: I90d08d7a71b16b4f4a4879214abd7aeff46c20c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2744
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
In order to arbitrarily split netencode over multiple reads, we need
to make the parser completely streaming, so that it recognizes all
cases where it needs more input.
Luckily, this is fairly trivial, after working around a bunch of
overeager parsing.
The tricky part was the giant `alt`, where inner parsers would start
consuming input and thus become incomplete when they fail afterwards.
Sinc the format *always* starts the different types with one
discriminator char, we can use that to instantly return the parser and
try the next one instead.
The other tricky part was that lists and records would parse all inner
elements and then choke on the empty string after the last element,
because the inner parser would consume at least the descriminator, and
an empty string is always `Incomplete`. We wrap these into a small
combinator which plays nice with `many0` in that regard.
Change-Id: Ib8d15d9a7cab19d432c6b24a35fcad6a5a72b246
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2704
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
I'm only connected to my own tethering nets anyways and I can't be
bothered to figure out all the things I need to open for Chromecasts,
maybe later.
Change-Id: Id1715b205191d4494a5a7001e1fb0f41a89d3de6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2705
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Don't apply the left-margin if the viewport is too narrow too handle it
Change-Id: Ia15641a6f0c94f9b0582f4a48af00b935f3e66bc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2703
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
Expose website as a top-level attribute, and ignore index.html, both to
make test-deving the site easier
Change-Id: Ic056446e322ec5f69583d316998103883fc8d55b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2700
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
Explicitly pass --profile personal to AWS commands, to avoid deploying
this to the wrong aws account on accident
Change-Id: Iff8236967adcfdedfbace8930031db9adf60e3d1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2699
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
Also start to put things under headings, since we have CSS to make that
look decent now
Change-Id: I9ad8c5f5bf32360bcae48fb28e390391fcec0a88
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2698
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
web-brutalism is so 3 years ago, bro
but seriously, I'd like to start putting some actual stuff here, so
let's make it look halfway-decent.
Change-Id: Ic78d725b3755c2307c7ea155af8d0f90e287830c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2697
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
Chupacabra doesn't even exist anymore, plus I want this installed on all
home systems
Change-Id: Id0e5c89797b1ad52b2a24d60ad3ab5e125f60266
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2696
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add support for a zero-sized Unit type. This requires some special at
the codegen level because LLVM (unsurprisingly) only allows Void types
in function return position - to make that a little easier to handle
there's a new pass that strips any unit-only expressions and pulls
unit-only function arguments up to new `let` bindings, so we never have
to actually pass around unit values.
Change-Id: I0fc18a516821f2d69172c42a6a5d246b23471e38
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2695
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
Notifications with images appear to be working now, which is cool, but
they're also *really* large, especially for spotify album art - let's
pull that down a bit.
Change-Id: I825798cccb54ebafd3facc08f3d6f0f4a42cf010
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2666
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
We had a bunch of instances of
https://github.com/NixOS/nix/issues/2176,
where nix would exit with a “killed by signal 9” error.
According to Eelco in that issue, this is perfectly normal behaviour
of course, and appears if the last command in a loop closes `stdout`
or `stdin`, then the builder will SIGKILL it immediately. This is of
course also a perfectly fine error message for that case.
It turns out that mainly GNU coreutils exhibit this behaviour …
Let’s see if using a more sane tool suite fixes that.
Change-Id: If34ab692120e5e299575bf8044aa5802145ab494
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2658
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
`forstdin` iterates over the tests in the test directory, and by
default it does *not* fail if an inner loop returns an error, unless
`-o okcodes` is given, a list of exit codes that indicate success.
Now it fails if a loop returns ≠ 0.
Change-Id: I0b1b2a06cd0a894e5ac4e77ec25019629ce2c077
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2657
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Upstream haskellPackages has a newer haskell-language-server than we had
and it is always in sync with the default GHC version of that package
set which we incidentally use to build all haskell derivations in depot.
I hope this will not cause us more trouble in the future, but I've
gotten the impression that maralorn makes an effort to prevent
haskell-language-server from being broken in haskellPackages, so ideally
we'll never have to worry about hls again. If we do have to, we may need
to switch to easy-hls-nix.
Note that I haven't had the time yet to verify that the shells actually
work since it's kinda late now and the rebuilds are many.
Change-Id: I74c192d57355904cfa45bb76d70346792ba05af5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2662
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
* chatter and its dependencies have been fixed in upstream
haskellPackages, so we can get rid of the packageSet.nix expression:
https://github.com/NixOS/nixpkgs/pull/116803
* Merged default.nix and pkg.nix into one expression and use
callCabal2nix instead of emulating it with nested imports.
* Minor refactor of shell.nix and remove haskell-language-server
until we've redone it or replaced it with the upstream one as now the
GHC versions are out of sync: hls is built with 8.8.4, but
haskellPackages uses 8.10.4
Change-Id: Ie75eaa93ba8bd79e749e2442fb28c855b8a15a1d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2661
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
I'm looking at removing some of these because they can cause
unnecessary build steps during CI pipeline generation.
Change-Id: I84742968918090c050d2eedab8a1b42692632a42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2655
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Defines a small helper script that resets the keyboard layout (to
avoid getting stuck in Russian layout) and locks the screen via
xsecurelock, and configures home-manager to launch this automatically.
Fascinatingly this actually seems to be capable of locking the
screen *on suspend*, not *after suspend*.
Change-Id: Ib6279a445aba18c2fb5bc073b675e6e2598fa228
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2644
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
A small UCSPI client which connects to an IMAP server, authenticates
with username and password (for Christ’s sake, put it in
`s6-tlsclient`), selects the `INBOX` and proceeds to listen for new
mails.
Later it will generate an event on stdout and to be used for push
messaging and triggering a full `mbsync` run on new message.
Currently I’m testing it via
```
env CAFILE=/run/current-system/etc/ssl/certs/ca-bundle.crt \
IMAP_USERNAME=<username> \
backtick -i IMAP_PASSWORD ' pass' ' <password-entry>' '' \
s6-tlsclient -v <imap-server> 993 ./result
```
Change-Id: I221717d374c0efc8d9e05fe0dfccba31798b3c5c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2636
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
frog is in storage and the key shouldn't have privileges while I'm
guaranteed to not use it.
Change-Id: If2ee8278fcb81f425dcfc151b11d207dfb6f45c7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2631
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This is required for my volume modification keyboard shortcuts.
Change-Id: I95e02be5b08e1f8a14746ace61226e903fbc68a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2634
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
The latter doesn't work with AMD devices. This will need some changes
on one of my non-NixOS machines, unfortunately ...
Change-Id: Ib9dfdb9beac67501396a06ea74a0a4371f8ad65e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2628
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This group has access to modifying backlight settings (configured by
the udev rules for `light`).
Change-Id: I1593980757c6265f6822d3d3dce9e19a2473acd8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2626
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>