From e1a0508f2355d307b01a1c0d498e8241d9694b07 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Wed, 31 Mar 2021 18:44:34 -0400
Subject: [PATCH] Replace all of our overlays with use of a forked nixpkgs

The nixpkgs fork already contains all of the changes our overlays were
responsible for - but as direct nixpkgs changes instead.
---
 nixos/modules/issuer.nix                |  4 +-
 nixos/modules/leasereport-repo.nix      |  9 ----
 nixos/modules/leasereport.nix           | 12 ------
 nixos/modules/overlays.nix              | 56 -------------------------
 nixos/modules/private-storage.nix       |  5 +--
 nixos/modules/pspkgs.nix                |  4 --
 nixos/modules/tests/private-storage.nix |  4 +-
 nixos/modules/tests/tahoe.nix           |  2 +-
 nixos/modules/zkap-overlay.nix          |  4 --
 nixos/pkgs/tahoe-lafs-repo.nix          |  9 ----
 nixos/pkgs/tahoe-lafs.nix               |  5 ---
 nixos/pkgs/twisted.nix                  | 11 -----
 nixos/pkgs/twisted.patch                | 23 ----------
 nixos/pkgs/zkapauthorizer-repo.nix      |  9 ----
 nixos/pkgs/zkapauthorizer.nix           |  1 -
 nixos/pkgs/zkapissuer-repo.nix          |  9 ----
 nixos/pkgs/zkapissuer.nix               |  5 ---
 nixpkgs.json                            |  4 +-
 shell.nix                               |  2 +-
 19 files changed, 8 insertions(+), 170 deletions(-)
 delete mode 100644 nixos/modules/leasereport-repo.nix
 delete mode 100644 nixos/modules/leasereport.nix
 delete mode 100644 nixos/modules/overlays.nix
 delete mode 100644 nixos/modules/pspkgs.nix
 delete mode 100644 nixos/modules/zkap-overlay.nix
 delete mode 100644 nixos/pkgs/tahoe-lafs-repo.nix
 delete mode 100644 nixos/pkgs/tahoe-lafs.nix
 delete mode 100644 nixos/pkgs/twisted.nix
 delete mode 100644 nixos/pkgs/twisted.patch
 delete mode 100644 nixos/pkgs/zkapauthorizer-repo.nix
 delete mode 100644 nixos/pkgs/zkapauthorizer.nix
 delete mode 100644 nixos/pkgs/zkapissuer-repo.nix
 delete mode 100644 nixos/pkgs/zkapissuer.nix

diff --git a/nixos/modules/issuer.nix b/nixos/modules/issuer.nix
index 7654bf1f..6ad4f1b8 100644
--- a/nixos/modules/issuer.nix
+++ b/nixos/modules/issuer.nix
@@ -1,8 +1,6 @@
 # A NixOS module which can run a Ristretto-based issuer for PrivateStorage
 # ZKAPs.
 { lib, pkgs, config, ... }: let
-  pspkgs = pkgs.callPackage ./pspkgs.nix { };
-  zkapissuer = pspkgs.callPackage ../pkgs/zkapissuer.nix { };
   cfg = config.services.private-storage-issuer;
 in {
   imports = [
@@ -13,7 +11,7 @@ in {
   options = {
     services.private-storage-issuer.enable = lib.mkEnableOption "PrivateStorage ZKAP Issuer Service";
     services.private-storage-issuer.package = lib.mkOption {
-      default = zkapissuer.components.exes."PaymentServer-exe";
+      default = pkgs.zkapissuer.components.exes."PaymentServer-exe";
       type = lib.types.package;
       example = lib.literalExample "pkgs.zkapissuer.components.exes.\"PaymentServer-exe\"";
       description = ''
diff --git a/nixos/modules/leasereport-repo.nix b/nixos/modules/leasereport-repo.nix
deleted file mode 100644
index a474311b..00000000
--- a/nixos/modules/leasereport-repo.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-let
-  pkgs = import <nixpkgs> {};
-in
-  pkgs.fetchFromGitHub {
-    owner = "PrivateStorageio";
-    repo = "LeaseReport";
-    rev = "92f6567160c1459b5992f1cb8535aee0c23bc093";
-    sha256 = "04k1q170n4dwvakgi9gsc8mbbhqzcnygiw51rqyrf9blrsdh5fma";
-  }
\ No newline at end of file
diff --git a/nixos/modules/leasereport.nix b/nixos/modules/leasereport.nix
deleted file mode 100644
index a44a8d97..00000000
--- a/nixos/modules/leasereport.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ callPackage }:
-let
-  leasereport = import ./leasereport-repo.nix;
-
-  # Pin a particular version of haskell.nix.  The particular version isn't
-  # special.  It's just recent at the time this expression was written and it
-  # is known to work with LeaseReport.  It could be bumped if necessary but
-  # this would probably only happen as a result of bumping the resolver in
-  # stack.yaml.
-  haskellNixSrc = builtins.fetchTarball https://github.com/input-output-hk/haskell.nix/archive/f6663a8449f5e4a7393aa24601600c8f6e352c97.tar.gz;
-in
-  (callPackage "${leasereport}/nix" { inherit haskellNixSrc; }).LeaseReport.components.exes.LeaseReport
diff --git a/nixos/modules/overlays.nix b/nixos/modules/overlays.nix
deleted file mode 100644
index 376ffa56..00000000
--- a/nixos/modules/overlays.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-let
-  # Define a Python packageOverride that puts our version of some Python
-  # packages into python27Packages.
-  pythonPackageOverride = python-self: python-super: rec {
-    # Get our Twisted derivation.  Pass in the old one so it can have pieces
-    # overridden.  It needs to be passed in explicitly because callPackage is
-    # specially crafted to always pull attributes from the fixed-point.  That
-    # is, `python-self.callPackage` and `python-super.callPackage` will *both*
-    # try to pass `python-self.twisted`.  So we take it upon ourselves to pass
-    # the "correct" Twisted (it is correct because we call its override method
-    # and that never converges if it is the fixed point Twisted).
-    twisted = python-self.callPackage ../pkgs/twisted.nix {
-      inherit (python-super) twisted;
-    };
-
-    # Put in our preferred version of tahoe-lafs as well.
-    tahoe-lafs = python-self.callPackage ../pkgs/tahoe-lafs.nix { };
-
-    # This is handy too...
-    zkapauthorizer = python-self.callPackage ../pkgs/zkapauthorizer.nix {
-      # And explicitly configure it with our preferred version of Tahoe-LAFS.
-      inherit tahoe-lafs;
-    };
-  };
-in
-self: super: {
-  leasereport = self.callPackage ./leasereport.nix { };
-
-  # Use self.python27 to get the fixed point of all packages (that is, to
-  # respect all of the overrides).  This is important since we want the
-  # overridden Twisted as a dependency of this env, not the original one.
-  #
-  # This might seem to violate the advice to use super for "library
-  # functionality" but python27.buildEnv should be considered a derivation
-  # instead because it implies a whole mess of derivations (all of the Python
-  # modules available).
-  privatestorage = self.python27.buildEnv.override
-  { # ... for dropin.cache
-    ignoreCollisions = true;
-    extraLibs =
-    [ self.python27Packages.tahoe-lafs
-      self.python27Packages.zkapauthorizer
-    ];
-  };
-
-  # Using super.python27 here causes us to define a python27 that overrides
-  # the value from the previously overlay, not from the fixed point.  This is
-  # important because this override never converges.
-  python27 = super.python27.override (old: {
-    packageOverrides =
-      if old ? packageOverrides then
-        super.lib.composeExtensions old.packageOverrides pythonPackageOverride
-      else
-        pythonPackageOverride;
-  });
-}
diff --git a/nixos/modules/private-storage.nix b/nixos/modules/private-storage.nix
index 0490af1e..52720e61 100644
--- a/nixos/modules/private-storage.nix
+++ b/nixos/modules/private-storage.nix
@@ -2,7 +2,6 @@
 # preferred configuration for the Private Storage grid.
 { pkgs, lib, config, ... }:
 let
-  pspkgs = pkgs.callPackage ./pspkgs.nix { };
   # Grab the configuration for this module for convenient access below.
   cfg = config.services.private-storage;
   storage-node-name = "storage";
@@ -32,7 +31,7 @@ in
   options =
   { services.private-storage.enable = lib.mkEnableOption "private storage service";
     services.private-storage.tahoe.package = lib.mkOption
-    { default = pspkgs.privatestorage;
+    { default = pkgs.privatestorage;
       type = lib.types.package;
       example = lib.literalExample "pkgs.tahoelafs";
       description = ''
@@ -154,7 +153,7 @@ in
 
     environment.systemPackages = [
       # Provide a useful tool for reporting about shares.
-      pspkgs.leasereport
+      pkgs.leasereport
     ];
 
   };
diff --git a/nixos/modules/pspkgs.nix b/nixos/modules/pspkgs.nix
deleted file mode 100644
index 697bc5a0..00000000
--- a/nixos/modules/pspkgs.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-# Derive a brand new version of pkgs which has our overlays applied.  This is
-# where the `privatestorage` derivation is added to nixpkgs.
-{ pkgs }:
-pkgs.extend (import ./overlays.nix)
diff --git a/nixos/modules/tests/private-storage.nix b/nixos/modules/tests/private-storage.nix
index ff771bc1..bf15b397 100644
--- a/nixos/modules/tests/private-storage.nix
+++ b/nixos/modules/tests/private-storage.nix
@@ -1,7 +1,5 @@
 { pkgs }:
 let
-  pspkgs = import ../pspkgs.nix { inherit pkgs; };
-
   sshPrivateKey = ./probeuser_ed25519;
   sshPublicKey = ./probeuser_ed25519.pub;
   sshUsers = {
@@ -100,7 +98,7 @@ in {
           pkgs.daemonize
           # A Tahoe-LAFS configuration capable of using the right storage
           # plugin.
-          pspkgs.privatestorage
+          pkgs.privatestorage
           # Support for the tests we'll run.
           (pkgs.python3.withPackages (ps: [ ps.requests ps.hyperlink ]))
         ];
diff --git a/nixos/modules/tests/tahoe.nix b/nixos/modules/tests/tahoe.nix
index be3d51a0..df7acdf3 100644
--- a/nixos/modules/tests/tahoe.nix
+++ b/nixos/modules/tests/tahoe.nix
@@ -6,7 +6,7 @@
       ];
 
       services.tahoe.nodes.storage = {
-        package = (pkgs.callPackage ../pspkgs.nix { }).privatestorage;
+        package = pkgs.privatestorage;
         sections = {
           node = {
             nickname = "storage";
diff --git a/nixos/modules/zkap-overlay.nix b/nixos/modules/zkap-overlay.nix
deleted file mode 100644
index 167a9b9f..00000000
--- a/nixos/modules/zkap-overlay.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-let
-  src = import ../pkgs/zkapauthorizer-repo.nix;
-in
-  import "${src}/overlays.nix"
diff --git a/nixos/pkgs/tahoe-lafs-repo.nix b/nixos/pkgs/tahoe-lafs-repo.nix
deleted file mode 100644
index dd5ecbb6..00000000
--- a/nixos/pkgs/tahoe-lafs-repo.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-let
-  pkgs = import <nixpkgs> {};
-in
-  pkgs.fetchFromGitHub {
-    owner = "tahoe-lafs";
-    repo = "tahoe-lafs";
-    rev = "23e1223c94330741f5b1dda476c3aeb42c3a012f";
-    sha256 = "1zh37rvkiigciwadgrjvnq9519lap1c260v8593g65qrpc1zwjxz";
-  }
\ No newline at end of file
diff --git a/nixos/pkgs/tahoe-lafs.nix b/nixos/pkgs/tahoe-lafs.nix
deleted file mode 100644
index 3289c5f5..00000000
--- a/nixos/pkgs/tahoe-lafs.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ callPackage }:
-let
-  tahoe-lafs-repo = import ./tahoe-lafs-repo.nix;
-in
-  callPackage "${tahoe-lafs-repo}/nix" { }
diff --git a/nixos/pkgs/twisted.nix b/nixos/pkgs/twisted.nix
deleted file mode 100644
index efa56cd0..00000000
--- a/nixos/pkgs/twisted.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ twisted }:
-twisted.overrideAttrs (old: {
-  prePatch = old.patchPhase;
-  patchPhase = null;
-  # Add a patch which adds more logging to a namer resolver failure case.  The
-  # NixOS system test harness might be setting up a weird semi-broken system
-  # that provokes a weird behavior out of getaddrinfo() that Twisted doesn't
-  # normally handle.  The logging can help with debugging this case.  We
-  # should think about upstreaming something related to this.
-  patches = (if old ? "patches" then old.patches else []) ++ [ ./twisted.patch ];
-})
diff --git a/nixos/pkgs/twisted.patch b/nixos/pkgs/twisted.patch
deleted file mode 100644
index 9f50368c..00000000
--- a/nixos/pkgs/twisted.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/src/twisted/internet/_resolver.py b/src/twisted/internet/_resolver.py
-index 1c16174a2..8c8249db4 100644
---- a/src/twisted/internet/_resolver.py
-+++ b/src/twisted/internet/_resolver.py
-@@ -74,6 +74,8 @@ class GAIResolver(object):
-     L{getaddrinfo} in a thread.
-     """
- 
-+    _log = Logger()
-+
-     def __init__(self, reactor, getThreadPool=None, getaddrinfo=getaddrinfo):
-         """
-         Create a L{GAIResolver}.
-@@ -124,6 +126,9 @@ class GAIResolver(object):
-                                          socketType)
-             except gaierror:
-                 return []
-+            except Exception as e:
-+                self._log.failure("Problem resolving {hostName}", hostName=hostName)
-+                return []
-         d = deferToThreadPool(self._reactor, pool, get)
-         resolution = HostResolution(hostName)
-         resolutionReceiver.resolutionBegan(resolution)
diff --git a/nixos/pkgs/zkapauthorizer-repo.nix b/nixos/pkgs/zkapauthorizer-repo.nix
deleted file mode 100644
index 595e7b4c..00000000
--- a/nixos/pkgs/zkapauthorizer-repo.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-let
-  pkgs = import <nixpkgs> {};
-in
-  pkgs.fetchFromGitHub {
-    owner = "PrivateStorageio";
-    repo = "ZKAPAuthorizer";
-    rev = "e4430a0050cef286b723da7f8013c7affd5a58f7";
-    sha256 = "148d79zppsd6bnyagbx126s9x9yy975dx6rrbm26dh98kl1r8mbh";
-  }
\ No newline at end of file
diff --git a/nixos/pkgs/zkapauthorizer.nix b/nixos/pkgs/zkapauthorizer.nix
deleted file mode 100644
index a76a770e..00000000
--- a/nixos/pkgs/zkapauthorizer.nix
+++ /dev/null
@@ -1 +0,0 @@
-import "${import ./zkapauthorizer-repo.nix}/default.nix"
diff --git a/nixos/pkgs/zkapissuer-repo.nix b/nixos/pkgs/zkapissuer-repo.nix
deleted file mode 100644
index 54242c06..00000000
--- a/nixos/pkgs/zkapissuer-repo.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-let
-  pkgs = import <nixpkgs> {};
-in
-  pkgs.fetchFromGitHub {
-    owner = "PrivateStorageio";
-    repo = "PaymentServer";
-    rev = "139323f403fa0847606f8e58d950b68f0dc59105";
-    sha256 = "0jx5h469hvc8i7k61cj2240z6gwza0l5zlm55wj1kd0dqgigi0lj";
-  }
\ No newline at end of file
diff --git a/nixos/pkgs/zkapissuer.nix b/nixos/pkgs/zkapissuer.nix
deleted file mode 100644
index 2cf44d8f..00000000
--- a/nixos/pkgs/zkapissuer.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ callPackage }:
-let
-  paymentServer = import ./zkapissuer-repo.nix;
-in
-  (callPackage "${paymentServer}/nix" { }).PaymentServer
diff --git a/nixpkgs.json b/nixpkgs.json
index ee46e76d..82873e94 100644
--- a/nixpkgs.json
+++ b/nixpkgs.json
@@ -1,4 +1,4 @@
 { "name": "nixpkgs"
-, "url": "https://github.com/PrivateStorageio/nixpkgs/353333ef340952c05332e3c271dff953264cb017.tar.gz"
-, "sha256": "sha256:0bv34yz892yxhx2kb8a1yr5pm0g8ck5w021yj87r7kfnp416apdh"
+, "url": "https://github.com/PrivateStorageio/nixpkgs/archive/2315cd3f6f875cb6c79179622ee100c3c14d2278.tar.gz"
+, "sha256": "sha256:03yic72sxdij3h4k1df055b2j4wh1wnv3fnvra5fdv1mnvpsgh6j"
 }
diff --git a/shell.nix b/shell.nix
index 26aaad60..0c9c12f9 100644
--- a/shell.nix
+++ b/shell.nix
@@ -15,7 +15,7 @@ let
   morph = pkgs.callPackage (morph-src + "/nix-packaging") { };
 in
 pkgs.mkShell {
-  NIX_PATH = "nixpkgs=${nixpkgs-pin.url}";
+  NIX_PATH = "nixpkgs=${nixpkgs.path}";
   buildInputs = [
     morph
   ];
-- 
GitLab