about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2021-03-26 r/2347 feat(ops/nixos/whitby): add flokli userFlorian Klink2-0/+13
Change-Id: Ibdb5b498f8bbc837fffdb38cdf95499b279773aa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2683 Reviewed-by: lukegb <lukegb@tvl.fyi> Tested-by: BuildkiteCI
2021-03-26 r/2346 chore(flokli): init user folderFlorian Klink1-0/+3
Change-Id: Id19eafb3f2cc7dfa1ec8c47cbe9c5766ac491516 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2682 Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-03-26 r/2345 chore(ops/users): Purge some inactive users from LDAPVincent Ambo1-15/+0
Change-Id: Iab2d2d6b7096ef302ea2fd8b051041426c6c8ca6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2670 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-26 r/2344 feat(gs/home): Update discord to 0.0.14Griffin Smith1-2/+2
Change-Id: I115ffcf22f7a3bdbc2641d4a9f7858fd0e049248 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2681 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-03-26 r/2343 feat(ops/users): Add flokli to usersFlorian Klink1-0/+5
Change-Id: I87ca0f20663ff858237f641ef2245778601e0416 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2671 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-26 r/2342 feat(ops/dns): Configure email settings for tvl.su.Vincent Ambo1-1/+10
Change-Id: Ida5beca7b4efd39fad15ba220dc1fc887ed79b4c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2669 Tested-by: BuildkiteCI Reviewed-by: adisbladis <adisbladis@gmail.com>
2021-03-26 r/2341 feat(ops/dns): Add Google Workspace verification for tvl.su.Vincent Ambo1-1/+4
Change-Id: I44db2bca7aa5814bbefd8943d727cc66ab800fd5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2668 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-26 r/2340 feat(tverskoy): Enable moshVincent Ambo1-0/+1
Change-Id: I18fa98aa6ba5892729ab130336f6a5d597865bf4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2667 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-26 r/2339 fix(gs/home): Set dunst max icon size to 45Griffin Smith1-0/+1
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
2021-03-26 r/2338 feat(gs/yeren): Install digimend device driversGriffin Smith1-1/+4
Change-Id: Ib8d589bd2110eb23d26a789a9f069f80815dadf3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2665 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-03-26 r/2337 feat(gs/yeren): Enable tailscaleGriffin Smith1-0/+2
Change-Id: Ibe48761b3161b1dfa6989dd25ec25593b7fe98ec Reviewed-on: https://cl.tvl.fyi/c/depot/+/2664 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-03-26 r/2336 fix(nix/runTestsuite): use s6-portable-utilsProfpatsch1-2/+3
Same as 221698c603dcb318c609b4d21cb2a9fada44a14c 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: Iaf9e542952ca36c02208a3f067f575ba978272b4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2663 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-03-26 r/2335 fix(users/Profpatsch/writers): use s6-portable-utilsProfpatsch1-6/+7
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>
2021-03-26 r/2334 fix(users/Profpatsch/writers): fail on rust test failureProfpatsch1-1/+1
`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>
2021-03-26 r/2333 chore(3p): use haskell-language-server from nixpkgssterni5-301/+2
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>
2021-03-26 r/2332 fix(ops/whitby): Set tcp congestion control to bbrGriffin Smith1-0/+4
Some quick testing shows that this improves my data transfer speed to whitby by roughly 200%. Change-Id: Id94de975b1ae0930f8d0fe038582dbac0037676c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2659 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: ben <tvl@benjojo.co.uk>
2021-03-26 r/2331 chore(users/gs/owothia): remove unnecessary overrides, simplifysterni4-39/+18
* 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>
2021-03-26 r/2330 chore(3p): bump NixOS channels to 2021-03-25sterni5-10/+13
OpenSSL released an update which fixes two severity high security issues: * https://mta.openssl.org/pipermail/openssl-announce/2021-March/000197.html * https://mta.openssl.org/pipermail/openssl-announce/2021-March/000198.html Update to the nixpkgs (currently still master) commits updating OpenSSL. Other changes: * Use GHC 8.8.4 for haskell-language-server as GHC 8.8.3 got removed from nixpkgs last friday. Change-Id: Ic1b2f49284e78193a4330da4bb4b718a797f5ab1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2653 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-25 r/2329 refactor: Replace some uses of builtins.toFile with pkgs.writeTextVincent Ambo3-10/+8
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
2021-03-25 r/2328 chore(3p): Clean up unused third-party packagesVincent Ambo79-3842/+0
Removes the following currently unused packages: * terraform-gcp * cpp.googleapis * nixery Change-Id: I02c38f0e6d23b1b9008706ca5a3b9db51cc9b689 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2650 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-24 r/2327 fix(gemma): Fix build by backporting Elm 0.18Vincent Ambo2-7/+21
Backports an old version of the Elm language (before the release where they made everyone rewrite their programs), from the same old nixpkgs commit as was previously used in overrides (see CL/2646). Change-Id: I0ae4cc611aa40269b290651ab982c1db93518d8a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2649 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-24 r/2326 chore(amsterdump): Remove projectVincent Ambo4-2472/+0
This has looong outlived its purpose. Change-Id: I66cff438dd05f0113b4a9a9bf9023d0f72238c9f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2651 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-23 r/2325 chore: Remove //overrides from depotVincent Ambo4-32/+5
This mechanism wasn't actually used for anything other than a minor external compatibility thing for buildGo.nix, which can also be solved with a function parameter. This breaks //fun/gemma because it means that the elmPackages used to build it are no longer reachable from depot. We'll sort this out later. Change-Id: I1bf2240435e869cdc4e99bdd1a138fdd2e76f96e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2646 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-23 r/2324 chore(tazjin/tverskoy): Set git.init.defaultBranch = "canon"Vincent Ambo1-0/+1
Change-Id: Ic03668c152e6d306a47ccc222d2c98901e12dfda Reviewed-on: https://cl.tvl.fyi/c/depot/+/2648 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-23 r/2323 chore(3p/gopkgs): 'depot.buildGo' -> 'depot.nix.buildGo'Vincent Ambo31-31/+31
This makes it possible to deprecate the previous alias. Change-Id: I6efe73a21dc771cfa28094bbac434a188aebfd45 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2647 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-23 r/2322 feat(tazjin/emacs): Configurable screen lock & brightness adjustmentVincent Ambo1-10/+15
Change-Id: I749ce827c7d53ecf8dec66c1f62481e6ef44791d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2645 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-23 r/2321 feat(tazjin/tverskoy): Enable automatic screen lockingVincent Ambo1-0/+19
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
2021-03-23 r/2320 fix(tazjin/tverskoy): Forcefully set nix.nixPathVincent Ambo1-0/+6
The out-of-sync channel was previously causing OpenGL applications in nix-shells to fail. Change-Id: Ie527ef70b49468dfb62091abfa878ba1b361fc6d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2643 Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Tested-by: BuildkiteCI
2021-03-22 r/2319 feat(users/Profpatsch): add imap-idleProfpatsch3-0/+235
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>
2021-03-22 r/2318 chore(ops/nixos): Update Sourcegraph to 3.26.0Vincent Ambo1-1/+1
Reading through the changelogs, this includes the following two changes that may require us to do something: * For users of single-image Sourcegraph instance, please delete the secret key file /var/lib/sourcegraph/token inside the container before attempting to upgrade to 3.21.x. * A campaigns.restrictToAdmins site configuration option has been added to prevent non site-admin users from using campaigns. Change-Id: Ieacf85a9059ad5222800f8d7d4a43435f489a39f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2638 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-22 r/2317 chore(tazjin/tverskoy): Install dnsutils and moshVincent Ambo1-0/+2
Change-Id: I3d3a7543dbd09f68890d9daa6ac38c9afa49d35d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2639 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-22 r/2316 feat(ops/dns): Add status subdomainVincent Ambo2-16/+18
I want to host something like Vigil[0] on this to show the status of Gerrit, SourceGraph and maybe other components. (Yes, the status page will be on the same infrastructure ... but this is mostly for service failure cases). [0]: https://github.com/valeriansaliou/vigil Change-Id: If71496300b94035976a685d9bf166d525d89fc5e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2637 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-21 r/2315 chore(tazjin/keys): Add tverskoy, comment out frogVincent Ambo1-4/+4
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>
2021-03-21 r/2314 chore(whitby): Remove SSH key from rootVincent Ambo1-4/+0
This was a leftover from the time we were installing. Change-Id: Id875b907d7f76081a45e7f8f2666b7fba6aefc86 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2632 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-03-21 r/2313 fix(tazjin/tverskoy): Persist Mullvad settings & rustup downloadsVincent Ambo1-2/+4
Change-Id: I6ce75bff1d2e6ed318af9edc878cc59604b7a597 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2635 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-21 r/2312 fix(tazjin/tverskoy): Ensure 'pactl' command is availableVincent Ambo1-0/+1
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
2021-03-21 r/2311 fix(tazjin/tverskoy): Persist ~/.config/mimeapps.listVincent Ambo1-0/+1
Change-Id: Ifd14d4eb0bdfaee6713219f46bac4257d3d72f51 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2633 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-03-21 r/2310 chore(tazjin/emacs): Use `light` instead of `xbacklight`Vincent Ambo1-2/+2
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>
2021-03-21 r/2309 fix(tazjin/tverskoy): Configure git to always rebaseVincent Ambo1-0/+3
Change-Id: I2682e350c74a830682ebca12102d00b7e85093f8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2627 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2308 fix(tazjin/tverskoy): Add myself to the 'video' groupVincent Ambo1-1/+1
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>
2021-03-21 r/2307 chore(tazjin/tverskoy): Enable SSH agent, Spotify, mullvad, ...Vincent Ambo1-0/+6
Just a few more missing things. Change-Id: I54b633296d91c6f8dce72d900d7d38b8af4ae419 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2625 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2306 feat(tazjin/tverskoy): Enable redshift & geoclue2Vincent Ambo1-3/+4
... also nuke that Bluetooth headset daemon, it doesn't work anyways. Change-Id: Iee884046a2bf2718767442ec62b2f731e14e39e8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2624 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2305 feat(tazjin/tverskoy): Configure ephemeral home bind-mountsVincent Ambo1-1/+44
Uses the impermanence module to configure the bind-mounts for the few applications that are allowed to persist stuff between boots. For now this setup uses ZFS rollbacks to get /home back into a clean state, where the `tazjin-clean` snapshot is a partition with only the `/home/tazjin` folder and the correct partitions on it. This gives me enough scratch space to e.g. download stuff larger than my RAM without accumulating state. Change-Id: I7cdb2276f087ea62201690cb8b36ae074203f87c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2623 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2304 chore(3p/gerrit_plugins): Build plugins separately in CIVincent Ambo1-2/+1
Change-Id: I76aeaa879e43b1fd08440f60a4f320bb7b48c6ab Reviewed-on: https://cl.tvl.fyi/c/depot/+/2630 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-03-21 r/2303 chore(3p/gerrit): Update pinned dependency hashVincent Ambo2-3/+3
Change-Id: I1807ac1771d23b00e3a78cc36fb2f82a12900993 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2629 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-21 r/2302 fix(gs/emacs): Drop explicit load of slackGriffin Smith1-2/+0
This is getting loaded by use-package now Change-Id: I591629ed26ffac71a0df04d51c10b9290ebd76ff Reviewed-on: https://cl.tvl.fyi/c/depot/+/2428 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-03-21 r/2301 fix(tazjin/emacs): Ensure company is installedVincent Ambo1-0/+1
I don't know where this went. Change-Id: I82d27e273e38ffeffe683d6ff2236d383c7b1fcf Reviewed-on: https://cl.tvl.fyi/c/depot/+/2622 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2300 feat(tazjin/tverskoy): Configure impermanence moduleVincent Ambo1-0/+17
This module is responsible for mounting persistent storage into the ephemeral root disk of this machine. Currently only very basic configuration and data are retained, and hopefully that won't change. Change-Id: If800cbee60b7b3c5b8c457b9b332a0c05c33f20e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2621 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2299 feat(tazjin/nixos): Initial check in of new host (tverskoy)Vincent Ambo3-1/+206
This is my new X13 AMD Thinkpad, on which many fun things will be done. Change-Id: I4de114a8c5ebb37d2f4844f407d2dc0e7cc9557e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2620 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-03-21 r/2298 fix(tazjin/emacs): Use ace-window from MELPA instead of ELPAVincent Ambo1-1/+1
This package definition is broken for ELPA in nixpkgs, but adisbladis is working on it. Change-Id: Ibe140a2daf7a3a294dae4c6340be33db05a47a44 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2619 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>