chore(3p/sources): bump channels & overlays (2024-09-01)

Included changes:

* users/aspen: explicitly use open-source nvidia driver

  This now has to be specified explicitly, otherwise evaluation fails with an
  error.
* users/aspen: nixfmt -> nixfmt-classic
* users/aspen: fixes for renamed packages & options
* users/tazjin: fixes for renamed packages & options
* 3p/overlays: remove cbtemulator patch (merged upstream)
* tvix/shell: remove unnecessary patches (merged upstream)
* 3p/rust-crates: mark libgit2_sys as broken
* users/Profpatsch: mark git-db as broken
* 3p/overlays: pick `mypaint` from stable channel
* tvix: fix comments that clippy doesn't like anymore
* tvix/glue: disable a misfiring clippy lint (applying its suggestion breaks
  code below)

Change-Id: I6d3fc027694bbe7425a2d25dc53d65467a44f3b0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12403
Tested-by: BuildkiteCI
Reviewed-by: aspen <root@gws.fyi>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: tazjin <tazjin@tvl.su>
This commit is contained in:
Vincent Ambo 2024-09-01 01:03:16 +03:00 committed by clbot
parent 200d49a0e1
commit 609b68031b
19 changed files with 56 additions and 198 deletions

View file

@ -23,7 +23,6 @@ let
{ name
, dependencies ? [ ]
, doCheck ? true
,
}: src:
(if doCheck then testRustSimple else pkgs.lib.id)
(pkgs.buildRustCrate ({

View file

@ -58,6 +58,9 @@ let
# the big lis package change breaks everything in //3p/lisp, undo it for now.
lispPackages = stableNixpkgs.lispPackages;
# mypaint is broken on stable (2024-09-05)
mypaint = stableNixpkgs.mypaint;
};
# Overlay to expose the nixpkgs commits we are using to other Nix code.

View file

@ -1,140 +0,0 @@
commit 1397e10225d8c6fd079a86fccd58fb5d0f4200bc
Author: Florian Klink <flokli@flokli.de>
Date: Fri Mar 29 10:06:34 2024 +0100
feat(bigtable/emulator): allow listening on Unix Domain Sockets
cbtemulator listening on unix domain sockets is much easier than trying
to allocate free TCP ports, especially if many cbtemulators are run at
the same time in integration tests.
This adds an additional flag, address, which has priority if it's set,
rather than host:port.
`NewServer` already takes a `laddr string`, so we simply check for it to
contain slashes, and if so, listen on unix, rather than TCP.
diff --git a/bigtable/bttest/inmem.go b/bigtable/bttest/inmem.go
index 556abc2a85..33e4bf2667 100644
--- a/bttest/inmem.go
+++ b/bttest/inmem.go
@@ -40,6 +40,7 @@ import (
"math"
"math/rand"
"net"
+ "os"
"regexp"
"sort"
"strings"
@@ -106,7 +107,15 @@ type server struct {
// The Server will be listening for gRPC connections, without TLS,
// on the provided address. The resolved address is named by the Addr field.
func NewServer(laddr string, opt ...grpc.ServerOption) (*Server, error) {
- l, err := net.Listen("tcp", laddr)
+ var l net.Listener
+ var err error
+
+ // If the address contains slashes, listen on a unix domain socket instead.
+ if strings.Contains(laddr, "/") {
+ l, err = net.Listen("unix", laddr)
+ } else {
+ l, err = net.Listen("tcp", laddr)
+ }
if err != nil {
return nil, err
}
diff --git a/bigtable/cmd/emulator/cbtemulator.go b/bigtable/cmd/emulator/cbtemulator.go
index 144c09ffb1..deaf69b717 100644
--- a/cmd/emulator/cbtemulator.go
+++ b/cmd/emulator/cbtemulator.go
@@ -27,8 +27,9 @@ import (
)
var (
- host = flag.String("host", "localhost", "the address to bind to on the local machine")
- port = flag.Int("port", 9000, "the port number to bind to on the local machine")
+ host = flag.String("host", "localhost", "the address to bind to on the local machine")
+ port = flag.Int("port", 9000, "the port number to bind to on the local machine")
+ address = flag.String("address", "", "address:port number or unix socket path to listen on. Has priority over host/port")
)
const (
@@ -42,7 +43,15 @@ func main() {
grpc.MaxRecvMsgSize(maxMsgSize),
grpc.MaxSendMsgSize(maxMsgSize),
}
- srv, err := bttest.NewServer(fmt.Sprintf("%s:%d", *host, *port), opts...)
+
+ var laddr string
+ if *address != "" {
+ laddr = *address
+ } else {
+ laddr = fmt.Sprintf("%s:%d", *host, *port)
+ }
+
+ srv, err := bttest.NewServer(laddr, opts...)
if err != nil {
log.Fatalf("failed to start emulator: %v", err)
}
commit ce16f843d6c93159d86b3807c6d9ff66e43aac67
Author: Florian Klink <flokli@flokli.de>
Date: Fri Mar 29 11:53:15 2024 +0100
feat(bigtable): clean up unix socket on close
Call srv.Close when receiving an interrupt, and delete the unix domain
socket in that function.
diff --git a/bigtable/bttest/inmem.go b/bigtable/bttest/inmem.go
index 33e4bf2667..0dc96024b1 100644
--- a/bttest/inmem.go
+++ b/bttest/inmem.go
@@ -148,6 +148,11 @@ func (s *Server) Close() {
s.srv.Stop()
s.l.Close()
+
+ // clean up unix socket
+ if strings.Contains(s.Addr, "/") {
+ _ = os.Remove(s.Addr)
+ }
}
func (s *server) CreateTable(ctx context.Context, req *btapb.CreateTableRequest) (*btapb.Table, error) {
diff --git a/bigtable/cmd/emulator/cbtemulator.go b/bigtable/cmd/emulator/cbtemulator.go
index deaf69b717..5a9e8f7a8c 100644
--- a/cmd/emulator/cbtemulator.go
+++ b/cmd/emulator/cbtemulator.go
@@ -18,9 +18,12 @@ cbtemulator launches the in-memory Cloud Bigtable server on the given address.
package main
import (
+ "context"
"flag"
"fmt"
"log"
+ "os"
+ "os/signal"
"cloud.google.com/go/bigtable/bttest"
"google.golang.org/grpc"
@@ -51,11 +54,18 @@ func main() {
laddr = fmt.Sprintf("%s:%d", *host, *port)
}
+ ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
+ defer stop()
+
srv, err := bttest.NewServer(laddr, opts...)
if err != nil {
log.Fatalf("failed to start emulator: %v", err)
}
fmt.Printf("Cloud Bigtable emulator running on %s\n", srv.Addr)
- select {}
+ select {
+ case <-ctx.Done():
+ srv.Close()
+ stop()
+ }
}

View file

@ -90,13 +90,6 @@ depot.nix.readTree.drvTargets {
};
}));
# https://github.com/googleapis/google-cloud-go/pull/9665
cbtemulator = super.cbtemulator.overrideAttrs (old: {
patches = old.patches or [ ] ++ [
./patches/cbtemulator-uds.patch
];
});
crate2nix = super.crate2nix.overrideAttrs (old: {
patches = old.patches or [ ] ++ [
# TODO(Kranzes): Remove in next release.

View file

@ -321,6 +321,7 @@ depot.nix.readTree.drvTargets rec{
pkg-config
];
env.LIBGIT2_NO_VENDOR = "1";
meta.broken = true; # TODO(profpatsch): fix git version mismatch
};
matches = buildRustCrate {
@ -417,5 +418,6 @@ depot.nix.readTree.drvTargets rec{
log
url
];
meta.broken = true; # TODO(Profpatsch): see libgit2-sys
};
}

View file

@ -29,10 +29,10 @@
"homepage": "https://nix-community.github.io/home-manager/",
"owner": "nix-community",
"repo": "home-manager",
"rev": "086f619dd991a4d355c07837448244029fc2d9ab",
"sha256": "1vlfxqma4g20vffn2ysw1jwd7kwhyc655765dz6af6k15392gg7p",
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
"sha256": "1wq1cn8r4igs5bb3fgcn8ima65rk427kkxkl25a0n6adabg35nah",
"type": "tarball",
"url": "https://github.com/nix-community/home-manager/archive/086f619dd991a4d355c07837448244029fc2d9ab.tar.gz",
"url": "https://github.com/nix-community/home-manager/archive/c2cd2a52e02f1dfa1c88f95abeb89298d46023be.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"impermanence": {
@ -41,10 +41,10 @@
"homepage": "",
"owner": "nix-community",
"repo": "impermanence",
"rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a",
"sha256": "1c99hc2mv0f5rjxj97wcypyrpi5i3xmpi3sd2fnw2481jxgqn5h3",
"rev": "c7f5b394397398c023000cf843986ee2571a1fd7",
"sha256": "0znd8asz61l1dm5qnjcqcznjr138ywwwkpqyla571s9z0s3jybvv",
"type": "tarball",
"url": "https://github.com/nix-community/impermanence/archive/23c1f06316b67cb5dabdfe2973da3785cfe9c34a.tar.gz",
"url": "https://github.com/nix-community/impermanence/archive/c7f5b394397398c023000cf843986ee2571a1fd7.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"naersk": {
@ -77,10 +77,10 @@
"homepage": "",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a58bc8ad779655e790115244571758e8de055e3d",
"sha256": "0gnmmn1wc09z1q4bb8jkqi2f8vxl26kaa3xrs664q9i651am2mkl",
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
"sha256": "1b47065q41ar9585ra4akb4s4kjwcs3p3g4chrpps8704vz7nx0s",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/a58bc8ad779655e790115244571758e8de055e3d.tar.gz",
"url": "https://github.com/NixOS/nixpkgs/archive/71e91c409d1e654808b2621f28a327acfdad8dc2.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"nixpkgs-stable": {
@ -101,10 +101,10 @@
"homepage": "",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ea0bf33a11a26a62c60123c49d96011da396602c",
"sha256": "1z21v8c2dyf2rs6nqvgq8vhmw73hidi7byzfxhpzjn7x544yiyb7",
"rev": "87b6cffc276795b46ef544d7ed8d7fed6ad9c8e4",
"sha256": "01gf3m4a0ljzkxf65lkcvr5kwcjr3mbpjbpppf0djk82mm98qbh4",
"type": "tarball",
"url": "https://github.com/oxalica/rust-overlay/archive/ea0bf33a11a26a62c60123c49d96011da396602c.tar.gz",
"url": "https://github.com/oxalica/rust-overlay/archive/87b6cffc276795b46ef544d7ed8d7fed6ad9c8e4.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"rustsec-advisory-db": {
@ -113,10 +113,10 @@
"homepage": "https://rustsec.org",
"owner": "RustSec",
"repo": "advisory-db",
"rev": "1d209d3f18c740f104380e988b5aa8eb360190d1",
"sha256": "1fgnjlfkb5zmhyif0s442pl4dalvs663y96mvx4l1mvshnwdxx23",
"rev": "fe4d5979b34444815287d61bd2a4e193cebbc7a6",
"sha256": "07zfq1bhghxmh5k5wiflnjw105b3fdg1315qkhp4in6qxmhzps66",
"type": "tarball",
"url": "https://github.com/RustSec/advisory-db/archive/1d209d3f18c740f104380e988b5aa8eb360190d1.tar.gz",
"url": "https://github.com/RustSec/advisory-db/archive/fe4d5979b34444815287d61bd2a4e193cebbc7a6.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
}

View file

@ -449,8 +449,8 @@ where
/// stack. In this case, the frame is not returned to the frame stack.
///
/// 2. The code encounters a generator, in which case the frame in its
/// current state is pushed back on the stack, and the generator is left on
/// top of it for the outer loop to execute.
/// current state is pushed back on the stack, and the generator is left
/// on top of it for the outer loop to execute.
///
/// 3. An error is encountered.
///

View file

@ -230,7 +230,10 @@ where
break;
}
}
#[allow(clippy::needless_borrows_for_generic_args)] // misfiring lint (breaks code below)
this.scanner.scan(&this.buffer);
Poll::Ready(Ok(&this.buffer[*this.consumed..]))
}

View file

@ -29,9 +29,11 @@ struct ArchiveReader<'a, 'r> {
inner: &'a mut Reader<'r>,
/// In debug mode, also track when we need to abandon this archive reader.
///
/// The archive reader must be abandoned when:
/// * An error is encountered at any point
/// * A file or directory reader is dropped before being read entirely.
///
/// All of these checks vanish in release mode.
status: ArchiveReaderStatus<'a>,
}

View file

@ -72,7 +72,8 @@ impl CAHash {
/// - `text:sha256:$nixbase32sha256digest`
/// - `fixed:r:$algo:$nixbase32digest`
/// - `fixed:$algo:$nixbase32digest`
/// which is the format that's used in the NARInfo for example.
///
/// These formats are used in NARInfo, for example.
pub fn from_nix_hex_str(s: &str) -> Option<Self> {
let (tag, s) = s.split_once(':')?;
@ -108,11 +109,13 @@ impl CAHash {
/// know whether we have a invalid or a missing NixHashWithMode structure in another structure,
/// e.g. Output.
/// This means we have this combinatorial situation:
///
/// - no hash, no hashAlgo: no [CAHash] so we return Ok(None).
/// - present hash, missing hashAlgo: invalid, we will return missing_field
/// - missing hash, present hashAlgo: same
/// - present hash, present hashAlgo: either we return ourselves or a type/value validation
/// error.
///
/// This function is for internal consumption regarding those needs until we have a better
/// solution. Now this is said, let's explain how this works.
///

View file

@ -10,13 +10,6 @@
depot.third_party.sources = import ./sources { };
additionalOverlays = [
(self: super: {
# https://github.com/googleapis/google-cloud-go/pull/9665
cbtemulator = super.cbtemulator.overrideAttrs (old: {
patches = old.patches or [ ] ++ [
./nixpkgs/cbtemulator-uds.patch
];
});
# macFUSE bump containing fix for https://github.com/osxfuse/osxfuse/issues/974
# https://github.com/NixOS/nixpkgs/pull/320197
fuse =

View file

@ -1,10 +1,12 @@
{ depot, pkgs, lib, ... }:
depot.nix.writers.rustSimple
(depot.nix.writers.rustSimple
{
name = "git-db";
dependencies = [
depot.third_party.rust-crates.git2
];
}
(builtins.readFile ./git-db.rs)
(builtins.readFile ./git-db.rs)) // {
meta.broken = true;
}

View file

@ -34,7 +34,7 @@ in
openssl
# Nix things
nixfmt
nixfmt-classic
nix-prefetch-github
nixpkgs-review
cachix

View file

@ -43,7 +43,7 @@
openssl
# Nix things
nixfmt
nixfmt-classic
nix-prefetch-github
nixpkgs-review
cachix

View file

@ -83,6 +83,7 @@
vSync = true;
};
hardware.graphics.enable32Bit = true;
hardware.nvidia.open = true;
services.postgresql = {
enable = true;
@ -90,8 +91,8 @@
authentication = "host all all 0.0.0.0/0 md5";
dataDir = "/data/postgresql";
package = pkgs.postgresql_15;
port = 5431;
settings = {
port = 5431;
wal_level = "logical";
};
};

View file

@ -66,8 +66,6 @@ in
mouse.naturalScrolling = false;
mouse.disableWhileTyping = true;
};
# services.xserver.libinput.touchpad.clickMethod = "clickfinger";
# services.xserver.libinput.touchpad.tapping = false;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
system.stateVersion = "24.11";

View file

@ -14,11 +14,7 @@
libinput.enable = true;
xserver = {
enable = true;
xkb.layout = "us";
xkb.options = "caps:super";
displayManager.sessionPackages = [ pkgs.niri ];
enable = true; # wayland doesn't work otherwise ...?!
displayManager.gdm = {
enable = true;
wayland = true;
@ -26,6 +22,8 @@
};
};
services.displayManager.sessionPackages = [ pkgs.niri ];
programs.xwayland.enable = true;
environment.systemPackages = with pkgs; [

View file

@ -74,8 +74,8 @@ in
graphics.enable = true;
};
services.xserver.libinput.touchpad.clickMethod = "clickfinger";
services.xserver.libinput.touchpad.tapping = false;
services.libinput.touchpad.clickMethod = "clickfinger";
services.libinput.touchpad.tapping = false;
services.avahi.enable = true;
services.tailscale.enable = true;

View file

@ -50,13 +50,14 @@ in
interval = "1d";
};
xserver = {
enable = true;
libinput = {
enable = true;
touchpad.naturalScrolling = false;
touchpad.tapping = false;
};
xserver = {
enable = true;
xkb.layout = "us";
xkb.options = "caps:escape";
displayManager = {