chore(3p/sources): Bump channels & overlays

Use nixos-unstable-small which fixes CVE-2018-25032
(out of bounds write while compressing).

* //users/grfn/xanthous:

  - Supporting random-fu 0.3 requires considerable changes and patching
    random-extras (https://github.com/aristidb/random-extras/pull/5).

    For now we downgrade random-fu and its dependency rvar to 0.2.*,
    forcing us to build xanthous with GHC 8.10.7, due to random-fu 0.2.*
    not supporting that version.

    Nix expressions for the downgraded packages are checked in to avoid
    the potential need to compile Haskell at pipeline eval time.

  - generic-arbitrary exposes a GenericArbitrary newtype now.
    This means we no longer have to implement it in xanthous
    downstream and patch generic-arbitrary to expose the
    GArbitrary type class.

  - Minor adjustments for lens 5.0:

    Xanthous.Game.Memo: clear needs to use ASetter' instead of Lens'

    Xanthous.Data.EntityMap: TraversableWithIndex no longer has an
    itraversed function.

  - Xanthous.Orphans: adjust for aeson's KeyMap, use KM.size explicitly
    instead of relying on MonoTraversable's length

* //nix/buildLisp: the CCL issue has resurfaced, disabling the
  implementation once again.

* //3p/arion: remove, as depot uses the nixpkgs package of it anyways.

* //users/wpcarro: accomodate GHC 9.0.1's stricter parsing of operators.

* //users/tazjin: disable rustfmt as it stopped respecting settings

* //3p/overlays: upgrade home-manager until fix for serivce generation
  has landed upstream

* //users/grfn/system: remove rr override, as the pinned commit is part
  of the 5.5.0 release shipped by nixpkgs.

Change-Id: If229e7317ba48498f85170b57ee9053f6997ff8a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5428
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: wpcarro <wpcarro@gmail.com>
This commit is contained in:
sterni 2022-03-31 18:40:08 +02:00 committed by clbot
parent 1a2fe4b063
commit 11f9306b9a
24 changed files with 119 additions and 89 deletions

View file

@ -154,7 +154,8 @@ let
let let
implementation = old.implementation or defaultImplementation; implementation = old.implementation or defaultImplementation;
brokenOn = old.brokenOn or [ ]; brokenOn = old.brokenOn or [ ];
targets = lib.subtractLists (brokenOn ++ [ implementation.name ]) # TODO(sterni): https://github.com/Clozure/ccl/issues/405#issuecomment-1085241805
targets = lib.subtractLists (brokenOn ++ [ "ccl" implementation.name ])
(builtins.attrNames impls); (builtins.attrNames impls);
in in
{ {

View file

@ -1,3 +0,0 @@
inherit: true
owners:
- grfn

View file

@ -1,10 +0,0 @@
{ pkgs, ... }:
(import
(pkgs.fetchFromGitHub {
owner = "hercules-ci";
repo = "arion";
rev = "db6d4d7490dff363de60cebbece3ae9361e3ce43";
sha256 = "0d8nqmc7fjshigax2g47ips262v8ml27x0ksq59kmprgb7ckzi5l";
})
{ inherit pkgs; }).arion

View file

@ -0,0 +1 @@
extra-pkgs need to be callPackage-ed

View file

@ -7,13 +7,26 @@
self: super: # overlay parameters for the nixpkgs overlay self: super: # overlay parameters for the nixpkgs overlay
let let
overrides = hsSelf: hsSuper: with super.haskell.lib; { overrides = hsSelf: hsSuper: with self.haskell.lib.compose; {
generic-arbitrary = appendPatch hsSuper.generic-arbitrary # No overrides for the default package set necessary at the moment
[ ./patches/generic-arbitrary-export-garbitrary.patch ];
}; };
in in
{ {
haskellPackages = super.haskellPackages.override { haskellPackages = super.haskellPackages.override {
inherit overrides; inherit overrides;
}; };
haskell = lib.recursiveUpdate super.haskell {
packages.ghc8107 = super.haskell.packages.ghc8107.override {
overrides = hsSelf: hsSuper: with self.haskell.lib.compose; {
# TODO(sterni): TODO(grfn): patch xanthous to work with random-fu 0.3.*,
# so we can use GHC 9.0.2 and benefit from upstream binary cache.
random-fu = hsSelf.callPackage ./extra-pkgs/random-fu-0.2.nix { };
rvar = hsSelf.callPackage ./extra-pkgs/rvar-0.2.nix { };
# TODO(sterni): upstream this
universe-base = addBuildDepend hsSelf.OneTuple hsSuper.universe-base;
};
};
};
} }

View file

@ -0,0 +1,41 @@
{ mkDerivation
, base
, erf
, lib
, math-functions
, monad-loops
, mtl
, random
, random-shuffle
, random-source
, rvar
, syb
, template-haskell
, transformers
, vector
}:
mkDerivation {
pname = "random-fu";
version = "0.2.7.7";
sha256 = "8466bcfb5290bdc30a571c91e1eb526c419ea9773bc118996778b516cfc665ca";
revision = "1";
editedCabalFile = "16nhymfriygqr2by9v72vdzv93v6vhd9z07pgaji4zvv66jikv82";
libraryHaskellDepends = [
base
erf
math-functions
monad-loops
mtl
random
random-shuffle
random-source
rvar
syb
template-haskell
transformers
vector
];
homepage = "https://github.com/mokus0/random-fu";
description = "Random number generation";
license = lib.licenses.publicDomain;
}

View file

@ -0,0 +1,25 @@
{ mkDerivation
, base
, lib
, MonadPrompt
, mtl
, random-source
, transformers
}:
mkDerivation {
pname = "rvar";
version = "0.2.0.6";
sha256 = "01e18875ffde43f9591a8acd9f60c9c51704a026e51c1a6797faecd1c7ae8cd3";
revision = "1";
editedCabalFile = "1jn9ivlj3k65n8d9sfsp882m5lvni1ah79mk0cvkz91pgywvkiyq";
libraryHaskellDepends = [
base
MonadPrompt
mtl
random-source
transformers
];
homepage = "https://github.com/mokus0/random-fu";
description = "Random Variables";
license = lib.licenses.publicDomain;
}

View file

@ -1,12 +0,0 @@
diff --git a/src/Test/QuickCheck/Arbitrary/Generic.hs b/src/Test/QuickCheck/Arbitrary/Generic.hs
index fed6ab3..91f59f1 100644
--- a/src/Test/QuickCheck/Arbitrary/Generic.hs
+++ b/src/Test/QuickCheck/Arbitrary/Generic.hs
@@ -23,6 +23,7 @@ The generated 'arbitrary' method is equivalent to
module Test.QuickCheck.Arbitrary.Generic
( Arbitrary(..)
+ , GArbitrary
, genericArbitrary
, genericShrink
) where

View file

@ -75,21 +75,15 @@ self: super: {
}); });
}); });
# Temporary workaround until the following commit is in channels: # upgrade home-manager until the service-generation fix has landed upstream
# https://github.com/nixos/nixpkgs/commit/5819b99350d7ac6e20f91adce38e7bb22e4d6fc4 # https://github.com/nix-community/home-manager/issues/2846
ocamlPackages = super.ocamlPackages.overrideScope' (oself: osuper: { home-manager = super.home-manager.overrideAttrs (old: rec {
uutf = version = assert super.home-manager.version == "2021-12-25"; "2022-04-08";
let src = self.fetchFromGitHub {
expectedUrls = [ owner = "nix-community";
"https://erratique.ch/software/uutf/releases/uutf-${osuper.uutf.version}.tbz" repo = "home-manager";
]; rev = "f911ebbec927e8e9b582f2e32e2b35f730074cfc";
in sha256 = "07qa2qkbjczj3d0m03jpw85hfj35cbjm48xhifz3viy4khjw88vl";
assert osuper.uutf.src.urls != expectedUrls;
osuper.uutf.overrideAttrs (old: {
src = self.fetchurl {
urls = expectedUrls;
sha256 = old.src.outputHash;
}; };
}); });
});
} }

View file

@ -5,10 +5,10 @@
"homepage": "", "homepage": "",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "26da73dd9129d267f0c8c26b591ab91050c4cdc9", "rev": "e0f4bc33ca1776c1103d15a63f022e29486d9455",
"sha256": "0sd868br1jqmihgm97ma1jv8r78x1n7s7bqjk5dl4v6s2rhzy3br", "sha256": "1jci75bs4cz46wbkmhlf07sys75i524bi1jgf49b7glp6z8857cw",
"type": "tarball", "type": "tarball",
"url": "https://github.com/nix-community/emacs-overlay/archive/26da73dd9129d267f0c8c26b591ab91050c4cdc9.tar.gz", "url": "https://github.com/nix-community/emacs-overlay/archive/e0f4bc33ca1776c1103d15a63f022e29486d9455.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}, },
"nixpkgs": { "nixpkgs": {
@ -17,10 +17,10 @@
"homepage": "", "homepage": "",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510", "rev": "fd364d268852561223a5ada15caad669fd72800e",
"sha256": "19xfad7pxsp6nkrkjhn36w77w92m60ysq7njn711slw74yj6ibxv", "sha256": "133i5fsx0gix37q4nxm1vfsl9hqbfzv458xykilqhgxmv45jmfl2",
"type": "tarball", "type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510.tar.gz", "url": "https://github.com/NixOS/nixpkgs/archive/fd364d268852561223a5ada15caad669fd72800e.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
@ -29,10 +29,10 @@
"homepage": "", "homepage": "",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9b168e5e62406fa2e55e132f390379a6ba22b402", "rev": "715dc137b08213aabbbe0965b78ab938e5d8d3b7",
"sha256": "16baazcid93afjg75mf8w3hihyc4wilcq0mawxfrilm1xqm52265", "sha256": "1q5pxys0s6nb3h1vbmmcr27frf1i5j8pzgc2gm1908yy0himi9ap",
"type": "tarball", "type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/9b168e5e62406fa2e55e132f390379a6ba22b402.tar.gz", "url": "https://github.com/NixOS/nixpkgs/archive/715dc137b08213aabbbe0965b78ab938e5d8d3b7.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}, },
"rustsec-advisory-db": { "rustsec-advisory-db": {
@ -41,10 +41,10 @@
"homepage": "https://rustsec.org", "homepage": "https://rustsec.org",
"owner": "RustSec", "owner": "RustSec",
"repo": "advisory-db", "repo": "advisory-db",
"rev": "1aca83f114ddf1e94b754a475c40b93fd764a867", "rev": "ce150ef8cbed58f21f235c267cd5f501ffa56756",
"sha256": "1kfrl2qlzg5miwhf83vf63hxizvib9a34h0jlfycfc7zp8sbdy0m", "sha256": "11fmzfnawg2prjl4s8z1p7xans3pnpb4gy91v0qcq3fskhsldahr",
"type": "tarball", "type": "tarball",
"url": "https://github.com/RustSec/advisory-db/archive/1aca83f114ddf1e94b754a475c40b93fd764a867.tar.gz", "url": "https://github.com/RustSec/advisory-db/archive/ce150ef8cbed58f21f235c267cd5f501ffa56756.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
} }
} }

View file

@ -59,16 +59,7 @@ with lib;
lldb lldb
hyperfine hyperfine
clang-tools_11 clang-tools_11
(rr.overrideAttrs (_: rec { rr
version = "f25671d094edac8059cec56b98d7f10f2c740697";
src = pkgs.fetchFromGitHub {
owner = "rr-debugger";
repo = "rr";
rev = version;
sha256 = "149s4mw8vl8d3nx15sfp62z0izp2dibz99k720j75rjnkwk2bq2z";
fetchSubmodules = true;
};
}))
clj2nix clj2nix
clojure clojure

View file

@ -15,7 +15,7 @@ let
|| builtins.baseNameOf path == "package.yaml"); || builtins.baseNameOf path == "package.yaml");
}; };
# generated by cabal2nix # generated by cabal2nix
basePkg = pkgs.haskellPackages.callPackage ./pkg.nix { }; basePkg = pkgs.haskell.packages.ghc8107.callPackage ./pkg.nix { };
in in
pkgs.haskell.lib.overrideCabal basePkg (default: { pkgs.haskell.lib.overrideCabal basePkg (default: {

View file

@ -4,7 +4,7 @@ let
pkgs = third_party.nixpkgs; pkgs = third_party.nixpkgs;
in in
(pkgs.haskellPackages.extend (pkgs.haskell.lib.packageSourceOverrides { (pkgs.haskell.packages.ghc8107.extend (pkgs.haskell.lib.packageSourceOverrides {
xanthous = third_party.gitignoreSource ./.; xanthous = third_party.gitignoreSource ./.;
})).shellFor { })).shellFor {
packages = p: [ p.xanthous ]; packages = p: [ p.xanthous ];

View file

@ -131,7 +131,6 @@ import Data.Coerce
import Data.Proxy (Proxy(Proxy)) import Data.Proxy (Proxy(Proxy))
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Xanthous.Util (EqEqProp(..), EqProp, between) import Xanthous.Util (EqEqProp(..), EqProp, between)
import Xanthous.Util.QuickCheck (GenericArbitrary(..))
import Xanthous.Orphans () import Xanthous.Orphans ()
import Xanthous.Util.Graphics import Xanthous.Util.Graphics
import qualified Linear.Metric as Metric import qualified Linear.Metric as Metric

View file

@ -133,7 +133,6 @@ instance FunctorWithIndex EntityID EntityMap
instance FoldableWithIndex EntityID EntityMap instance FoldableWithIndex EntityID EntityMap
instance TraversableWithIndex EntityID EntityMap where instance TraversableWithIndex EntityID EntityMap where
itraversed = byID . itraversed . rmap sequenceA . distrib
itraverse = itraverseOf itraversed itraverse = itraverseOf itraversed
type instance Element (EntityMap a) = a type instance Element (EntityMap a) = a

View file

@ -45,7 +45,6 @@ import Test.QuickCheck.Checkers (EqProp)
import Control.Monad.State.Lazy (execState) import Control.Monad.State.Lazy (execState)
import Control.Monad.Trans.State.Lazy (execStateT) import Control.Monad.Trans.State.Lazy (execStateT)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Xanthous.Util.QuickCheck
import Xanthous.Game.State import Xanthous.Game.State
import Xanthous.Entities.Item import Xanthous.Entities.Item
import Xanthous.Entities.Common import Xanthous.Entities.Common

View file

@ -25,7 +25,6 @@ import Test.QuickCheck
import Test.QuickCheck.Arbitrary.Generic import Test.QuickCheck.Arbitrary.Generic
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Xanthous.Data import Xanthous.Data
import Xanthous.Util.QuickCheck
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View file

@ -45,7 +45,7 @@ emptyMemoState :: MemoState
emptyMemoState = MemoState { _characterVisiblePositions = UnMemoized } emptyMemoState = MemoState { _characterVisiblePositions = UnMemoized }
{-# INLINE emptyMemoState #-} {-# INLINE emptyMemoState #-}
clear :: Lens' MemoState (Memoized k v) -> MemoState -> MemoState clear :: ASetter' MemoState (Memoized key val) -> MemoState -> MemoState
clear = flip set UnMemoized clear = flip set UnMemoized
{-# INLINE clear #-} {-# INLINE clear #-}

View file

@ -100,7 +100,6 @@ import qualified Graphics.Vty.Attributes as Vty
import qualified Graphics.Vty.Image as Vty import qualified Graphics.Vty.Image as Vty
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Xanthous.Util (KnownBool(..)) import Xanthous.Util (KnownBool(..))
import Xanthous.Util.QuickCheck (GenericArbitrary(..))
import Xanthous.Data import Xanthous.Data
import Xanthous.Data.App import Xanthous.Data.App
import Xanthous.Data.Levels import Xanthous.Data.Levels

View file

@ -11,7 +11,8 @@ module Xanthous.Orphans
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Xanthous.Prelude hiding (elements, (.=)) import Xanthous.Prelude hiding (elements, (.=))
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
import Data.Aeson import Data.Aeson hiding (Key)
import qualified Data.Aeson.KeyMap as KM
import Data.Aeson.Types (typeMismatch) import Data.Aeson.Types (typeMismatch)
import Data.List.NonEmpty (NonEmpty(..)) import Data.List.NonEmpty (NonEmpty(..))
import Graphics.Vty.Attributes import Graphics.Vty.Attributes
@ -461,7 +462,7 @@ instance forall a. (FromJSON a, Ord a) => FromJSON (Interval a) where
upper <- parseBound $ arr ^?! ix 1 upper <- parseBound $ arr ^?! ix 1
pure $ interval lower upper pure $ interval lower upper
parseBound = withObject "Bound" $ \obj -> do parseBound = withObject "Bound" $ \obj -> do
when (length obj /= 1) $ fail "Expected an object with a single key" when (KM.size obj /= 1) $ fail "Expected an object with a single key"
let [(k, v)] = obj ^@.. ifolded let [(k, v)] = obj ^@.. ifolded
boundary <- case k of boundary <- case k of
"Excluded" -> pure Open "Excluded" -> pure Open

View file

@ -14,7 +14,6 @@ import Test.QuickCheck.Function
import Test.QuickCheck.Instances.ByteString () import Test.QuickCheck.Instances.ByteString ()
import Test.QuickCheck.Arbitrary.Generic import Test.QuickCheck.Arbitrary.Generic
import Data.Aeson import Data.Aeson
import GHC.Generics (Rep)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
newtype FunctionShow a = FunctionShow a newtype FunctionShow a = FunctionShow a
@ -31,12 +30,3 @@ newtype FunctionJSON a = FunctionJSON a
instance (ToJSON a, FromJSON a) => Function (FunctionJSON a) where instance (ToJSON a, FromJSON a) => Function (FunctionJSON a) where
function = functionJSON function = functionJSON
--------------------------------------------------------------------------------
newtype GenericArbitrary a = GenericArbitrary a
deriving newtype Generic
instance (Generic a, GArbitrary rep, Rep a ~ rep)
=> Arbitrary (GenericArbitrary a) where
arbitrary = genericArbitrary

View file

@ -10,6 +10,9 @@ let
in in
rustfmt.overrideAttrs (_: { rustfmt.overrideAttrs (_: {
# rustfmt not respecting config atm, disable
meta.ci.skip = true;
meta.ci.extraSteps.rustfmt = { meta.ci.extraSteps.rustfmt = {
command = rustfmt; command = rustfmt;
}; };

View file

@ -43,7 +43,7 @@ run = do
ctx@T.Context{..} <- ask ctx@T.Context{..} <- ask
ctx ctx
|> server |> server
|> serve (Proxy @ API) |> serve (Proxy @API)
|> cors (const $ Just corsPolicy) |> cors (const $ Just corsPolicy)
|> Warp.run contextServerPort |> Warp.run contextServerPort
|> liftIO |> liftIO

View file

@ -157,4 +157,4 @@ parseInput x =
_ -> Nothing _ -> Nothing
main :: IO () main :: IO ()
main = Warp.run 8000 $ serve (Proxy @ Api) server main = Warp.run 8000 $ serve (Proxy @Api) server