diff --git a/flake.lock b/flake.lock index 16d06a9f..d2dd1f6c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "fixme": { + "inputs": { + "haskell-flake-utils": "haskell-flake-utils", + "nixpkgs": "nixpkgs", + "suckless-conf": "suckless-conf" + }, + "locked": { + "lastModified": 1675929344, + "narHash": "sha256-iytvSV60QF7xNWZKcljjMknSgU3uwAcqqlNiqGRzRLQ=", + "owner": "voidlizard", + "repo": "fixme", + "rev": "e9bb7ccb97649db13b519aa79d1f36bdd1dda55d", + "type": "github" + }, + "original": { + "owner": "voidlizard", + "repo": "fixme", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1644229661, @@ -30,6 +50,36 @@ "type": "github" } }, + "flake-utils_3": { + "locked": { + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "locked": { + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "haskell-flake-utils": { "inputs": { "flake-utils": "flake-utils" @@ -44,7 +94,6 @@ }, "original": { "owner": "ivanovs-4", - "ref": "master", "repo": "haskell-flake-utils", "type": "github" } @@ -61,6 +110,43 @@ "rev": "896219e5bde6efac72198550454e9dd9b5ed9ac9", "type": "github" }, + "original": { + "owner": "ivanovs-4", + "repo": "haskell-flake-utils", + "type": "github" + } + }, + "haskell-flake-utils_3": { + "inputs": { + "flake-utils": "flake-utils_3" + }, + "locked": { + "lastModified": 1672412555, + "narHash": "sha256-Kaa8F7nQFR3KuS6Y9WRUxeJeZlp6CCubyrRfmiEsW4k=", + "owner": "ivanovs-4", + "repo": "haskell-flake-utils", + "rev": "896219e5bde6efac72198550454e9dd9b5ed9ac9", + "type": "github" + }, + "original": { + "owner": "ivanovs-4", + "ref": "master", + "repo": "haskell-flake-utils", + "type": "github" + } + }, + "haskell-flake-utils_4": { + "inputs": { + "flake-utils": "flake-utils_4" + }, + "locked": { + "lastModified": 1672412555, + "narHash": "sha256-Kaa8F7nQFR3KuS6Y9WRUxeJeZlp6CCubyrRfmiEsW4k=", + "owner": "ivanovs-4", + "repo": "haskell-flake-utils", + "rev": "896219e5bde6efac72198550454e9dd9b5ed9ac9", + "type": "github" + }, "original": { "owner": "ivanovs-4", "repo": "haskell-flake-utils", @@ -70,7 +156,7 @@ }, "hspup": { "inputs": { - "haskell-flake-utils": "haskell-flake-utils_2", + "haskell-flake-utils": "haskell-flake-utils_4", "nixpkgs": [ "nixpkgs" ] @@ -91,25 +177,55 @@ }, "nixpkgs": { "locked": { - "lastModified": 1675237434, - "narHash": "sha256-YoFR0vyEa1HXufLNIFgOGhIFMRnY6aZ0IepZF5cYemo=", + "lastModified": 1675760670, + "narHash": "sha256-do2YGWoNUEPnmE0gWkdGJqsfQ2ARJOkzIfWt+gSpNbA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e63fe191354ccc082199b550980e346597c52282", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1675758091, + "narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1675931149, + "narHash": "sha256-UcsoOsP9tDlENB1KKdr9EgSmA124id6OxpHb7IpHlD8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "285b3ff0660640575186a4086e1f8dc0df2874b5", + "rev": "47773312034cce8fc09ee166df4d61dd47d8e7d9", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-22.11", "repo": "nixpkgs", "type": "github" } }, "root": { "inputs": { - "haskell-flake-utils": "haskell-flake-utils", + "fixme": "fixme", + "haskell-flake-utils": "haskell-flake-utils_3", "hspup": "hspup", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_3", "saltine": "saltine" } }, @@ -129,6 +245,25 @@ "rev": "3d3a54cf46f78b71b4b55653482fb6f4cee6b77d", "type": "github" } + }, + "suckless-conf": { + "inputs": { + "haskell-flake-utils": "haskell-flake-utils_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1675928120, + "narHash": "sha256-vt5i9Ad0wSWbLvRBDqszUgI5+7zSJlGMcXPANC8rH2Q=", + "owner": "voidlizard", + "repo": "suckless-conf", + "rev": "54377068aac95cbfd8c69177a101c434feecff41", + "type": "github" + }, + "original": { + "owner": "voidlizard", + "repo": "suckless-conf", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index bd6a3b3e..08fd1285 100644 --- a/flake.nix +++ b/flake.nix @@ -3,12 +3,15 @@ description = "hbs2"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11"; + nixpkgs.url = "github:nixos/nixpkgs"; # haskell-flake-utils.url = "github:ivanovs-4/haskell-flake-utils"; haskell-flake-utils.url = "github:ivanovs-4/haskell-flake-utils/master"; hspup.url = "github:voidlizard/hspup"; hspup.inputs.nixpkgs.follows = "nixpkgs"; + fixme.url = "github:voidlizard/fixme"; + # fixme.inputs.nixpkgs.follows = "nixpkgs"; + saltine = { url = "github:tel/saltine/3d3a54cf46f78b71b4b55653482fb6f4cee6b77d"; flake = false; @@ -65,6 +68,7 @@ outputs = { self, nixpkgs, haskell-flake-utils, ... }@inputs: haskellPackages.haskell-language-server pkg-config inputs.hspup.packages.${pkgs.system}.default + inputs.fixme.packages.${pkgs.system}.default ]; }; diff --git a/hbs2-core/hbs2-core.cabal b/hbs2-core/hbs2-core.cabal index bca17434..d25c4957 100644 --- a/hbs2-core/hbs2-core.cabal +++ b/hbs2-core/hbs2-core.cabal @@ -103,7 +103,7 @@ library -- other-modules: -- other-extensions: - build-depends: base ^>=4.15.1.0 + build-depends: base , aeson , async , attoparsec @@ -166,7 +166,7 @@ test-suite test hs-source-dirs: test main-is: Main.hs build-depends: - base ^>=4.15.1.0, hbs2-core + base, hbs2-core , async , bytestring , cache diff --git a/hbs2-core/lib/HBS2/Net/Proto/Peer.hs b/hbs2-core/lib/HBS2/Net/Proto/Peer.hs index 5af9dd72..36f8d243 100644 --- a/hbs2-core/lib/HBS2/Net/Proto/Peer.hs +++ b/hbs2-core/lib/HBS2/Net/Proto/Peer.hs @@ -151,7 +151,9 @@ data instance Event e (PeerHandshake e) = KnownPeerEvent (Peer e) (PeerData e) deriving stock (Typeable) -instance Typeable (KnownPeer e) => Hashable (EventKey e (KnownPeer e)) where +instance ( Typeable (KnownPeer e) + , Eq (EventKey e (KnownPeer e)) + ) => Hashable (EventKey e (KnownPeer e)) where hashWithSalt salt _ = hashWithSalt salt (someTypeRep p) where p = Proxy @(KnownPeer e) diff --git a/hbs2-peer/hbs2-peer.cabal b/hbs2-peer/hbs2-peer.cabal index 2d4febbf..97188a1b 100644 --- a/hbs2-peer/hbs2-peer.cabal +++ b/hbs2-peer/hbs2-peer.cabal @@ -18,7 +18,7 @@ common warnings common common-deps build-depends: - base ^>=4.15.1.0, hbs2-core, hbs2-storage-simple + base, hbs2-core, hbs2-storage-simple , async , bytestring , cache @@ -38,7 +38,7 @@ common common-deps , random , random-shuffle , safe - , saltine ^>=0.2.0.1 + , saltine >=0.2.0.1 , serialise , split , stm @@ -108,7 +108,7 @@ executable hbs2-peer , PeerTypes -- other-extensions: - build-depends: base ^>=4.15.1.0 + build-depends: base hs-source-dirs: app default-language: Haskell2010 diff --git a/hbs2-storage-simple/hbs2-storage-simple.cabal b/hbs2-storage-simple/hbs2-storage-simple.cabal index 65af7b04..feb9745c 100644 --- a/hbs2-storage-simple/hbs2-storage-simple.cabal +++ b/hbs2-storage-simple/hbs2-storage-simple.cabal @@ -60,7 +60,7 @@ library , HBS2.Storage.Simple.Extra -- other-modules: -- other-extensions: - build-depends: base ^>=4.15.1.0, hbs2-core + build-depends: base, hbs2-core , async , bytestring , bytestring-mmap @@ -97,7 +97,7 @@ test-suite test main-is: Main.hs build-depends: - base ^>=4.15.1.0, hbs2-storage-simple, hbs2-core + base, hbs2-storage-simple, hbs2-core , async , bytestring , cborg diff --git a/hbs2-tests/hbs2-tests.cabal b/hbs2-tests/hbs2-tests.cabal index 6059517c..011fe9c6 100644 --- a/hbs2-tests/hbs2-tests.cabal +++ b/hbs2-tests/hbs2-tests.cabal @@ -18,7 +18,7 @@ common warnings common common-deps build-depends: - base ^>=4.15.1.0, hbs2-core, hbs2-storage-simple + base, hbs2-core, hbs2-storage-simple , async , bytestring , cache @@ -126,7 +126,7 @@ executable test-udp main-is: TestUDP.hs build-depends: - base ^>=4.15.1.0, hbs2-core, hbs2-storage-simple + base, hbs2-core, hbs2-storage-simple , async , attoparsec , bytestring @@ -176,7 +176,7 @@ executable test-logger main-is: TestLogger.hs build-depends: - base ^>=4.15.1.0, hbs2-core, hbs2-storage-simple + base, hbs2-core, hbs2-storage-simple , async , attoparsec , bytestring diff --git a/hbs2/hbs2.cabal b/hbs2/hbs2.cabal index abac12b4..70f8f29f 100644 --- a/hbs2/hbs2.cabal +++ b/hbs2/hbs2.cabal @@ -61,7 +61,7 @@ executable hbs2 main-is: Main.hs -- other-modules: -- other-extensions: - build-depends: base ^>=4.15.1.0, hbs2-core, hbs2-storage-simple + build-depends: base, hbs2-core, hbs2-storage-simple , aeson , async , base58-bytestring