Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-03-30 06:01:44 +00:00 committed by GitHub
commit 0a1c5be4ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 2446 additions and 1429 deletions

View file

@ -19,6 +19,8 @@ Because step 1) is quite expensive and takes roughly ~5 minutes the result is ca
{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
@ -32,6 +34,7 @@ import Control.Monad (forM_, (<=<))
import Control.Monad.Trans (MonadIO (liftIO)) import Control.Monad.Trans (MonadIO (liftIO))
import Data.Aeson ( import Data.Aeson (
FromJSON, FromJSON,
FromJSONKey,
ToJSON, ToJSON,
decodeFileStrict', decodeFileStrict',
eitherDecodeStrict', eitherDecodeStrict',
@ -51,6 +54,7 @@ import qualified Data.Set as Set
import Data.Text (Text) import Data.Text (Text)
import qualified Data.Text as Text import qualified Data.Text as Text
import Data.Text.Encoding (encodeUtf8) import Data.Text.Encoding (encodeUtf8)
import qualified Data.Text.IO as Text
import Data.Time (defaultTimeLocale, formatTime, getCurrentTime) import Data.Time (defaultTimeLocale, formatTime, getCurrentTime)
import Data.Time.Clock (UTCTime) import Data.Time.Clock (UTCTime)
import GHC.Generics (Generic) import GHC.Generics (Generic)
@ -90,13 +94,16 @@ import Distribution.Simple.Utils (safeLast, fromUTF8BS)
newtype JobsetEvals = JobsetEvals newtype JobsetEvals = JobsetEvals
{ evals :: Seq Eval { evals :: Seq Eval
} }
deriving (Generic, ToJSON, FromJSON, Show) deriving stock (Generic, Show)
deriving anyclass (ToJSON, FromJSON)
newtype Nixpkgs = Nixpkgs {revision :: Text} newtype Nixpkgs = Nixpkgs {revision :: Text}
deriving (Generic, ToJSON, FromJSON, Show) deriving stock (Generic, Show)
deriving anyclass (ToJSON, FromJSON)
newtype JobsetEvalInputs = JobsetEvalInputs {nixpkgs :: Nixpkgs} newtype JobsetEvalInputs = JobsetEvalInputs {nixpkgs :: Nixpkgs}
deriving (Generic, ToJSON, FromJSON, Show) deriving stock (Generic, Show)
deriving anyclass (ToJSON, FromJSON)
data Eval = Eval data Eval = Eval
{ id :: Int { id :: Int
@ -104,13 +111,42 @@ data Eval = Eval
} }
deriving (Generic, ToJSON, FromJSON, Show) deriving (Generic, ToJSON, FromJSON, Show)
-- | Hydra job name.
--
-- Examples:
-- - @"haskellPackages.lens.x86_64-linux"@
-- - @"haskell.packages.ghc925.cabal-install.aarch64-darwin"@
-- - @"pkgsMusl.haskell.compiler.ghc90.x86_64-linux"@
-- - @"arion.aarch64-linux"@
newtype JobName = JobName { unJobName :: Text }
deriving stock (Generic, Show)
deriving newtype (Eq, FromJSONKey, FromJSON, Ord, ToJSON)
-- | Datatype representing the result of querying the build evals of the
-- haskell-updates Hydra jobset.
--
-- The URL <https://hydra.nixos.org/eval/EVAL_ID/builds> (where @EVAL_ID@ is a
-- value like 1792418) returns a list of 'Build'.
data Build = Build data Build = Build
{ job :: Text { job :: JobName
, buildstatus :: Maybe Int , buildstatus :: Maybe Int
-- ^ Status of the build. See 'getBuildState' for the meaning of each state.
, finished :: Int , finished :: Int
-- ^ Whether or not the build is finished. @0@ if finished, non-zero otherwise.
, id :: Int , id :: Int
, nixname :: Text , nixname :: Text
-- ^ Nix name of the derivation.
--
-- Examples:
-- - @"lens-5.2.1"@
-- - @"cabal-install-3.8.0.1"@
-- - @"lens-static-x86_64-unknown-linux-musl-5.1.1"@
, system :: Text , system :: Text
-- ^ System
--
-- Examples:
-- - @"x86_64-linux"@
-- - @"aarch64-darwin"@
, jobsetevals :: Seq Int , jobsetevals :: Seq Int
} }
deriving (Generic, ToJSON, FromJSON, Show) deriving (Generic, ToJSON, FromJSON, Show)
@ -196,7 +232,7 @@ newtype Maintainers = Maintainers { maintainers :: Maybe Text }
-- --
-- Note that Hydra jobs without maintainers will have an empty string for the -- Note that Hydra jobs without maintainers will have an empty string for the
-- maintainer list. -- maintainer list.
type HydraJobs = Map Text Maintainers type HydraJobs = Map JobName Maintainers
-- | Map of email addresses to GitHub handles. -- | Map of email addresses to GitHub handles.
-- This is built from the file @../../maintainer-list.nix@. -- This is built from the file @../../maintainer-list.nix@.
@ -221,12 +257,12 @@ type EmailToGitHubHandles = Map Text Text
-- , ("conduit.x86_64-darwin", ["snoyb", "webber"]) -- , ("conduit.x86_64-darwin", ["snoyb", "webber"])
-- ] -- ]
-- @@ -- @@
type MaintainerMap = Map Text (NonEmpty Text) type MaintainerMap = Map JobName (NonEmpty Text)
-- | Information about a package which lists its dependencies and whether the -- | Information about a package which lists its dependencies and whether the
-- package is marked broken. -- package is marked broken.
data DepInfo = DepInfo { data DepInfo = DepInfo {
deps :: Set Text, deps :: Set PkgName,
broken :: Bool broken :: Bool
} }
deriving stock (Generic, Show) deriving stock (Generic, Show)
@ -234,23 +270,37 @@ data DepInfo = DepInfo {
-- | Map from package names to their DepInfo. This is the data we get out of a -- | Map from package names to their DepInfo. This is the data we get out of a
-- nix call. -- nix call.
type DependencyMap = Map Text DepInfo type DependencyMap = Map PkgName DepInfo
-- | Map from package names to its broken state, number of reverse dependencies (fst) and -- | Map from package names to its broken state, number of reverse dependencies (fst) and
-- unbroken reverse dependencies (snd). -- unbroken reverse dependencies (snd).
type ReverseDependencyMap = Map Text (Int, Int) type ReverseDependencyMap = Map PkgName (Int, Int)
-- | Calculate the (unbroken) reverse dependencies of a package by transitively -- | Calculate the (unbroken) reverse dependencies of a package by transitively
-- going through all packages if its a dependency of them. -- going through all packages if its a dependency of them.
calculateReverseDependencies :: DependencyMap -> ReverseDependencyMap calculateReverseDependencies :: DependencyMap -> ReverseDependencyMap
calculateReverseDependencies depMap = Map.fromDistinctAscList $ zip keys (zip (rdepMap False) (rdepMap True)) calculateReverseDependencies depMap =
Map.fromDistinctAscList $ zip keys (zip (rdepMap False) (rdepMap True))
where where
-- This code tries to efficiently invert the dependency map and calculate -- This code tries to efficiently invert the dependency map and calculate
-- its transitive closure by internally identifying every pkg with its index -- its transitive closure by internally identifying every pkg with its index
-- in the package list and then using memoization. -- in the package list and then using memoization.
keys :: [PkgName]
keys = Map.keys depMap keys = Map.keys depMap
pkgToIndexMap :: Map PkgName Int
pkgToIndexMap = Map.fromDistinctAscList (zip keys [0..]) pkgToIndexMap = Map.fromDistinctAscList (zip keys [0..])
intDeps = zip [0..] $ (\DepInfo{broken,deps} -> (broken,mapMaybe (`Map.lookup` pkgToIndexMap) $ Set.toList deps)) <$> Map.elems depMap
depInfos :: [DepInfo]
depInfos = Map.elems depMap
depInfoToIdx :: DepInfo -> (Bool, [Int])
depInfoToIdx DepInfo{broken,deps} =
(broken, mapMaybe (`Map.lookup` pkgToIndexMap) $ Set.toList deps)
intDeps :: [(Int, (Bool, [Int]))]
intDeps = zip [0..] (fmap depInfoToIdx depInfos)
rdepMap onlyUnbroken = IntSet.size <$> resultList rdepMap onlyUnbroken = IntSet.size <$> resultList
where where
resultList = go <$> [0..] resultList = go <$> [0..]
@ -267,7 +317,7 @@ getMaintainerMap = do
handlesMap :: EmailToGitHubHandles <- handlesMap :: EmailToGitHubHandles <-
readJSONProcess nixExprCommand ("maintainers/scripts/haskell/maintainer-handles.nix":nixExprParams) "Failed to decode nix output for lookup of github handles: " readJSONProcess nixExprCommand ("maintainers/scripts/haskell/maintainer-handles.nix":nixExprParams) "Failed to decode nix output for lookup of github handles: "
pure $ Map.mapMaybe (splitMaintainersToGitHubHandles handlesMap) hydraJobs pure $ Map.mapMaybe (splitMaintainersToGitHubHandles handlesMap) hydraJobs
where where
-- Split a comma-spearated string of Maintainers into a NonEmpty list of -- Split a comma-spearated string of Maintainers into a NonEmpty list of
-- GitHub handles. -- GitHub handles.
splitMaintainersToGitHubHandles splitMaintainersToGitHubHandles
@ -279,7 +329,10 @@ getMaintainerMap = do
-- script ./dependencies.nix. -- script ./dependencies.nix.
getDependencyMap :: IO DependencyMap getDependencyMap :: IO DependencyMap
getDependencyMap = getDependencyMap =
readJSONProcess nixExprCommand ("maintainers/scripts/haskell/dependencies.nix":nixExprParams) "Failed to decode nix output for lookup of dependencies: " readJSONProcess
nixExprCommand
("maintainers/scripts/haskell/dependencies.nix" : nixExprParams)
"Failed to decode nix output for lookup of dependencies: "
-- | Run a process that produces JSON on stdout and and decode the JSON to a -- | Run a process that produces JSON on stdout and and decode the JSON to a
-- data type. -- data type.
@ -331,16 +384,77 @@ platformIcon (Platform x) = case x of
"aarch64-darwin" -> ":green_apple:" "aarch64-darwin" -> ":green_apple:"
_ -> x _ -> x
platformIsOS :: OS -> Platform -> Bool
platformIsOS os (Platform x) = case (os, x) of
(Linux, "x86_64-linux") -> True
(Linux, "aarch64-linux") -> True
(Darwin, "x86_64-darwin") -> True
(Darwin, "aarch64-darwin") -> True
_ -> False
-- | A package name. This is parsed from a 'JobName'.
--
-- Examples:
--
-- - The 'JobName' @"haskellPackages.lens.x86_64-linux"@ produces the 'PkgName'
-- @"lens"@.
-- - The 'JobName' @"haskell.packages.ghc925.cabal-install.aarch64-darwin"@
-- produces the 'PkgName' @"cabal-install"@.
-- - The 'JobName' @"pkgsMusl.haskell.compiler.ghc90.x86_64-linux"@ produces
-- the 'PkgName' @"ghc90"@.
-- - The 'JobName' @"arion.aarch64-linux"@ produces the 'PkgName' @"arion"@.
--
-- 'PkgName' is also used as a key in 'DependencyMap' and 'ReverseDependencyMap'.
-- In this case, 'PkgName' originally comes from attribute names in @haskellPackages@
-- in Nixpkgs.
newtype PkgName = PkgName Text
deriving stock (Generic, Show)
deriving newtype (Eq, FromJSON, FromJSONKey, Ord, ToJSON)
-- | A package set name. This is parsed from a 'JobName'.
--
-- Examples:
--
-- - The 'JobName' @"haskellPackages.lens.x86_64-linux"@ produces the 'PkgSet'
-- @"haskellPackages"@.
-- - The 'JobName' @"haskell.packages.ghc925.cabal-install.aarch64-darwin"@
-- produces the 'PkgSet' @"haskell.packages.ghc925"@.
-- - The 'JobName' @"pkgsMusl.haskell.compiler.ghc90.x86_64-linux"@ produces
-- the 'PkgSet' @"pkgsMusl.haskell.compiler"@.
-- - The 'JobName' @"arion.aarch64-linux"@ produces the 'PkgSet' @""@.
--
-- As you can see from the last example, 'PkgSet' can be empty (@""@) for
-- top-level jobs.
newtype PkgSet = PkgSet Text
deriving stock (Generic, Show)
deriving newtype (Eq, FromJSON, FromJSONKey, Ord, ToJSON)
data BuildResult = BuildResult {state :: BuildState, id :: Int} deriving (Show, Eq, Ord) data BuildResult = BuildResult {state :: BuildState, id :: Int} deriving (Show, Eq, Ord)
newtype Platform = Platform {platform :: Text} deriving (Show, Eq, Ord) newtype Platform = Platform {platform :: Text} deriving (Show, Eq, Ord)
newtype Table row col a = Table (Map (row, col) a)
data SummaryEntry = SummaryEntry { data SummaryEntry = SummaryEntry {
summaryBuilds :: Table Text Platform BuildResult, summaryBuilds :: Table PkgSet Platform BuildResult,
summaryMaintainers :: Set Text, summaryMaintainers :: Set Text,
summaryReverseDeps :: Int, summaryReverseDeps :: Int,
summaryUnbrokenReverseDeps :: Int summaryUnbrokenReverseDeps :: Int
} }
type StatusSummary = Map Text SummaryEntry type StatusSummary = Map PkgName SummaryEntry
data OS = Linux | Darwin
newtype Table row col a = Table (Map (row, col) a)
singletonTable :: row -> col -> a -> Table row col a
singletonTable row col a = Table $ Map.singleton (row, col) a
unionTable :: (Ord row, Ord col) => Table row col a -> Table row col a -> Table row col a
unionTable (Table l) (Table r) = Table $ Map.union l r
filterWithKeyTable :: (row -> col -> a -> Bool) -> Table row col a -> Table row col a
filterWithKeyTable f (Table t) = Table $ Map.filterWithKey (\(r,c) a -> f r c a) t
nullTable :: Table row col a -> Bool
nullTable (Table t) = Map.null t
instance (Ord row, Ord col, Semigroup a) => Semigroup (Table row col a) where instance (Ord row, Ord col, Semigroup a) => Semigroup (Table row col a) where
Table l <> Table r = Table (Map.unionWith (<>) l r) Table l <> Table r = Table (Map.unionWith (<>) l r)
@ -363,18 +477,45 @@ getBuildState Build{finished, buildstatus} = case (finished, buildstatus) of
(_, Just 11) -> OutputLimitExceeded (_, Just 11) -> OutputLimitExceeded
(_, i) -> Unknown i (_, i) -> Unknown i
buildSummary :: MaintainerMap -> ReverseDependencyMap -> Seq Build -> StatusSummary combineStatusSummaries :: Seq StatusSummary -> StatusSummary
buildSummary maintainerMap reverseDependencyMap = foldl (Map.unionWith unionSummary) Map.empty . fmap toSummary combineStatusSummaries = foldl (Map.unionWith unionSummary) Map.empty
where where
unionSummary (SummaryEntry (Table lb) lm lr lu) (SummaryEntry (Table rb) rm rr ru) = SummaryEntry (Table $ Map.union lb rb) (lm <> rm) (max lr rr) (max lu ru) unionSummary :: SummaryEntry -> SummaryEntry -> SummaryEntry
toSummary build@Build{job, id, system} = Map.singleton name (SummaryEntry (Table (Map.singleton (set, Platform system) (BuildResult (getBuildState build) id))) maintainers reverseDeps unbrokenReverseDeps) unionSummary (SummaryEntry lb lm lr lu) (SummaryEntry rb rm rr ru) =
where SummaryEntry (unionTable lb rb) (lm <> rm) (max lr rr) (max lu ru)
packageName = fromMaybe job (Text.stripSuffix ("." <> system) job)
splitted = nonEmpty $ Text.splitOn "." packageName buildToPkgNameAndSet :: Build -> (PkgName, PkgSet)
name = maybe packageName NonEmpty.last splitted buildToPkgNameAndSet Build{job = JobName jobName, system} = (name, set)
set = maybe "" (Text.intercalate "." . NonEmpty.init) splitted where
maintainers = maybe mempty (Set.fromList . toList) (Map.lookup job maintainerMap) packageName :: Text
(reverseDeps, unbrokenReverseDeps) = Map.findWithDefault (0,0) name reverseDependencyMap packageName = fromMaybe jobName (Text.stripSuffix ("." <> system) jobName)
splitted :: Maybe (NonEmpty Text)
splitted = nonEmpty $ Text.splitOn "." packageName
name :: PkgName
name = PkgName $ maybe packageName NonEmpty.last splitted
set :: PkgSet
set = PkgSet $ maybe "" (Text.intercalate "." . NonEmpty.init) splitted
buildToStatusSummary :: MaintainerMap -> ReverseDependencyMap -> Build -> StatusSummary
buildToStatusSummary maintainerMap reverseDependencyMap build@Build{job, id, system} =
Map.singleton pkgName summaryEntry
where
(pkgName, pkgSet) = buildToPkgNameAndSet build
maintainers :: Set Text
maintainers = maybe mempty (Set.fromList . toList) (Map.lookup job maintainerMap)
(reverseDeps, unbrokenReverseDeps) =
Map.findWithDefault (0,0) pkgName reverseDependencyMap
buildTable :: Table PkgSet Platform BuildResult
buildTable =
singletonTable pkgSet (Platform system) (BuildResult (getBuildState build) id)
summaryEntry = SummaryEntry buildTable maintainers reverseDeps unbrokenReverseDeps
readBuildReports :: IO (Eval, UTCTime, Seq Build) readBuildReports :: IO (Eval, UTCTime, Seq Build)
readBuildReports = do readBuildReports = do
@ -396,19 +537,36 @@ printTable name showR showC showE (Table mapping) = joinTable <$> (name : map sh
rows = toList $ Set.fromList (fst <$> Map.keys mapping) rows = toList $ Set.fromList (fst <$> Map.keys mapping)
cols = toList $ Set.fromList (snd <$> Map.keys mapping) cols = toList $ Set.fromList (snd <$> Map.keys mapping)
printJob :: Int -> Text -> (Table Text Platform BuildResult, Text) -> [Text] printJob :: Int -> PkgName -> (Table PkgSet Platform BuildResult, Text) -> [Text]
printJob evalId name (Table mapping, maintainers) = printJob evalId (PkgName name) (Table mapping, maintainers) =
if length sets <= 1 if length sets <= 1
then map printSingleRow sets then map printSingleRow sets
else ["- [ ] " <> makeJobSearchLink "" name <> " " <> maintainers] <> map printRow sets else ["- [ ] " <> makeJobSearchLink (PkgSet "") name <> " " <> maintainers] <> map printRow sets
where where
printRow set = " - " <> printState set <> " " <> makeJobSearchLink set (if Text.null set then "toplevel" else set) printRow :: PkgSet -> Text
printSingleRow set = "- [ ] " <> printState set <> " " <> makeJobSearchLink set (makePkgName set) <> " " <> maintainers printRow (PkgSet set) =
makePkgName set = (if Text.null set then "" else set <> ".") <> name " - " <> printState (PkgSet set) <> " " <>
printState set = Text.intercalate " " $ map (\pf -> maybe "" (label pf) $ Map.lookup (set, pf) mapping) platforms makeJobSearchLink (PkgSet set) (if Text.null set then "toplevel" else set)
makeJobSearchLink set linkLabel= makeSearchLink evalId linkLabel (makePkgName set)
printSingleRow set =
"- [ ] " <> printState set <> " " <>
makeJobSearchLink set (makePkgName set) <> " " <> maintainers
makePkgName :: PkgSet -> Text
makePkgName (PkgSet set) = (if Text.null set then "" else set <> ".") <> name
printState set =
Text.intercalate " " $ map (\pf -> maybe "" (label pf) $ Map.lookup (set, pf) mapping) platforms
makeJobSearchLink :: PkgSet -> Text -> Text
makeJobSearchLink set linkLabel = makeSearchLink evalId linkLabel (makePkgName set)
sets :: [PkgSet]
sets = toList $ Set.fromList (fst <$> Map.keys mapping) sets = toList $ Set.fromList (fst <$> Map.keys mapping)
platforms :: [Platform]
platforms = toList $ Set.fromList (snd <$> Map.keys mapping) platforms = toList $ Set.fromList (snd <$> Map.keys mapping)
label pf (BuildResult s i) = "[[" <> platformIcon pf <> icon s <> "]](https://hydra.nixos.org/build/" <> showT i <> ")" label pf (BuildResult s i) = "[[" <> platformIcon pf <> icon s <> "]](https://hydra.nixos.org/build/" <> showT i <> ")"
makeSearchLink :: Int -> Text -> Text -> Text makeSearchLink :: Int -> Text -> Text -> Text
@ -425,76 +583,177 @@ details summary content = ["<details><summary>" <> summary <> " </summary>", ""]
evalLine :: Eval -> UTCTime -> Text evalLine :: Eval -> UTCTime -> Text
evalLine Eval{id, jobsetevalinputs = JobsetEvalInputs{nixpkgs = Nixpkgs{revision}}} fetchTime = evalLine Eval{id, jobsetevalinputs = JobsetEvalInputs{nixpkgs = Nixpkgs{revision}}} fetchTime =
"*evaluation [" "*evaluation ["
<> showT id <> showT id
<> "](https://hydra.nixos.org/eval/" <> "](https://hydra.nixos.org/eval/"
<> showT id <> showT id
<> ") of nixpkgs commit [" <> ") of nixpkgs commit ["
<> Text.take 7 revision <> Text.take 7 revision
<> "](https://github.com/NixOS/nixpkgs/commits/" <> "](https://github.com/NixOS/nixpkgs/commits/"
<> revision <> revision
<> ") as of " <> ") as of "
<> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime) <> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
<> "*" <> "*"
printBuildSummary :: Eval -> UTCTime -> StatusSummary -> [(Text, Int)] -> Text printBuildSummary :: Eval -> UTCTime -> StatusSummary -> [(PkgName, Int)] -> Text
printBuildSummary eval@Eval{id} fetchTime summary topBrokenRdeps = printBuildSummary eval@Eval{id} fetchTime summary topBrokenRdeps =
Text.unlines $ Text.unlines $
headline <> [""] <> tldr <> ((" * "<>) <$> (errors <> warnings)) <> [""] headline <> [""] <> tldr <> ((" * "<>) <$> (errors <> warnings)) <> [""]
<> totals <> totals
<> optionalList "#### Maintained packages with build failure" (maintainedList fails) <> optionalList "#### Maintained Linux packages with build failure" (maintainedList (fails summaryLinux))
<> optionalList "#### Maintained packages with failed dependency" (maintainedList failedDeps) <> optionalList "#### Maintained Linux packages with failed dependency" (maintainedList (failedDeps summaryLinux))
<> optionalList "#### Maintained packages with unknown error" (maintainedList unknownErr) <> optionalList "#### Maintained Linux packages with unknown error" (maintainedList (unknownErr summaryLinux))
<> optionalHideableList "#### Unmaintained packages with build failure" (unmaintainedList fails) <> optionalHideableList "#### Maintained Darwin packages with build failure" (maintainedList (fails summaryDarwin))
<> optionalHideableList "#### Unmaintained packages with failed dependency" (unmaintainedList failedDeps) <> optionalHideableList "#### Maintained Darwin packages with failed dependency" (maintainedList (failedDeps summaryDarwin))
<> optionalHideableList "#### Unmaintained packages with unknown error" (unmaintainedList unknownErr) <> optionalHideableList "#### Maintained Darwin packages with unknown error" (maintainedList (unknownErr summaryDarwin))
<> optionalHideableList "#### Top 50 broken packages, sorted by number of reverse dependencies" (brokenLine <$> topBrokenRdeps) <> optionalHideableList "#### Unmaintained packages with build failure" (unmaintainedList (fails summary))
<> ["","*:arrow_heading_up:: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.*",""] <> optionalHideableList "#### Unmaintained packages with failed dependency" (unmaintainedList (failedDeps summary))
<> footer <> optionalHideableList "#### Unmaintained packages with unknown error" (unmaintainedList (unknownErr summary))
where <> optionalHideableList "#### Top 50 broken packages, sorted by number of reverse dependencies" (brokenLine <$> topBrokenRdeps)
footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.hs)*"] <> ["","*:arrow_heading_up:: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.*",""]
headline = <> footer
[ "### [haskell-updates build report from hydra](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates)" where
, evalLine eval fetchTime ] footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.hs)*"]
totals =
[ "#### Build summary" headline =
, "" [ "### [haskell-updates build report from hydra](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates)"
] , evalLine eval fetchTime
<> printTable "Platform" (\x -> makeSearchLink id (platform x <> " " <> platformIcon x) ("." <> platform x)) (\x -> showT x <> " " <> icon x) showT numSummary ]
brokenLine (name, rdeps) = "[" <> name <> "](https://packdeps.haskellers.com/reverse/" <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps) <> " "
numSummary = statusToNumSummary summary totals :: [Text]
jobsByState predicate = Map.filter (predicate . worstState) summary totals =
worstState = foldl' min Success . fmap state . summaryBuilds [ "#### Build summary"
fails = jobsByState (== Failed) , ""
failedDeps = jobsByState (== DependencyFailed) ] <>
unknownErr = jobsByState (\x -> x > DependencyFailed && x < TimedOut) printTable
withMaintainer = Map.mapMaybe (\e -> (summaryBuilds e,) <$> nonEmpty (Set.toList (summaryMaintainers e))) "Platform"
withoutMaintainer = Map.mapMaybe (\e -> if Set.null (summaryMaintainers e) then Just e else Nothing) (\x -> makeSearchLink id (platform x <> " " <> platformIcon x) ("." <> platform x))
optionalList heading list = if null list then mempty else [heading] <> list (\x -> showT x <> " " <> icon x)
optionalHideableList heading list = if null list then mempty else [heading] <> details (showT (length list) <> " job(s)") list showT
maintainedList = showMaintainedBuild <=< Map.toList . withMaintainer numSummary
unmaintainedList = showBuild <=< sortOn (\(snd -> x) -> (negate (summaryUnbrokenReverseDeps x), negate (summaryReverseDeps x))) . Map.toList . withoutMaintainer
showBuild (name, entry) = printJob id name (summaryBuilds entry, Text.pack (if summaryReverseDeps entry > 0 then " :arrow_heading_up: " <> show (summaryUnbrokenReverseDeps entry) <>" | "<> show (summaryReverseDeps entry) else "")) brokenLine :: (PkgName, Int) -> Text
showMaintainedBuild (name, (table, maintainers)) = printJob id name (table, Text.intercalate " " (fmap ("@" <>) (toList maintainers))) brokenLine (PkgName name, rdeps) =
tldr = case (errors, warnings) of "[" <> name <> "](https://packdeps.haskellers.com/reverse/" <> name <>
([],[]) -> [":green_circle: **Ready to merge** (if there are no [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"] ") :arrow_heading_up: " <> Text.pack (show rdeps) <> " "
([],_) -> [":yellow_circle: **Potential issues** (and possibly [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
_ -> [":red_circle: **Branch not mergeable**"] numSummary = statusToNumSummary summary
warnings =
if' (Unfinished > maybe Success worstState maintainedJob) "`maintained` jobset failed." <> summaryLinux :: StatusSummary
if' (Unfinished == maybe Success worstState mergeableJob) "`mergeable` jobset is not finished." <> summaryLinux = withOS Linux summary
if' (Unfinished == maybe Success worstState maintainedJob) "`maintained` jobset is not finished."
errors = summaryDarwin :: StatusSummary
if' (isNothing mergeableJob) "No `mergeable` job found." <> summaryDarwin = withOS Darwin summary
if' (isNothing maintainedJob) "No `maintained` job found." <>
if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <> -- Remove all BuildResult from the Table that have Platform that isn't for
if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too many outstanding jobs on x86_64-linux." <> -- the given OS.
if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too many outstanding jobs on aarch64-linux." <> tableForOS :: OS -> Table PkgSet Platform BuildResult -> Table PkgSet Platform BuildResult
if' (outstandingJobs (Platform "aarch64-darwin") > 100) "Too many outstanding jobs on aarch64-darwin." tableForOS os = filterWithKeyTable (\_ platform _ -> platformIsOS os platform)
if' p e = if p then [e] else mempty
outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m -- Remove all BuildResult from the StatusSummary that have a Platform that
maintainedJob = Map.lookup "maintained" summary -- isn't for the given OS. Completely remove all PkgName from StatusSummary
mergeableJob = Map.lookup "mergeable" summary -- that end up with no BuildResults.
withOS
:: OS
-> StatusSummary
-> StatusSummary
withOS os =
Map.mapMaybe
(\e@SummaryEntry{summaryBuilds} ->
let buildsForOS = tableForOS os summaryBuilds
in if nullTable buildsForOS then Nothing else Just e { summaryBuilds = buildsForOS }
)
jobsByState :: (BuildState -> Bool) -> StatusSummary -> StatusSummary
jobsByState predicate = Map.filter (predicate . worstState)
worstState :: SummaryEntry -> BuildState
worstState = foldl' min Success . fmap state . summaryBuilds
fails :: StatusSummary -> StatusSummary
fails = jobsByState (== Failed)
failedDeps :: StatusSummary -> StatusSummary
failedDeps = jobsByState (== DependencyFailed)
unknownErr :: StatusSummary -> StatusSummary
unknownErr = jobsByState (\x -> x > DependencyFailed && x < TimedOut)
withMaintainer :: StatusSummary -> Map PkgName (Table PkgSet Platform BuildResult, NonEmpty Text)
withMaintainer =
Map.mapMaybe
(\e -> (summaryBuilds e,) <$> nonEmpty (Set.toList (summaryMaintainers e)))
withoutMaintainer :: StatusSummary -> StatusSummary
withoutMaintainer = Map.mapMaybe (\e -> if Set.null (summaryMaintainers e) then Just e else Nothing)
optionalList :: Text -> [Text] -> [Text]
optionalList heading list = if null list then mempty else [heading] <> list
optionalHideableList :: Text -> [Text] -> [Text]
optionalHideableList heading list = if null list then mempty else [heading] <> details (showT (length list) <> " job(s)") list
maintainedList :: StatusSummary -> [Text]
maintainedList = showMaintainedBuild <=< Map.toList . withMaintainer
summaryEntryGetReverseDeps :: SummaryEntry -> (Int, Int)
summaryEntryGetReverseDeps sumEntry =
( negate $ summaryUnbrokenReverseDeps sumEntry
, negate $ summaryReverseDeps sumEntry
)
sortOnReverseDeps :: [(PkgName, SummaryEntry)] -> [(PkgName, SummaryEntry)]
sortOnReverseDeps = sortOn (\(_, sumEntry) -> summaryEntryGetReverseDeps sumEntry)
unmaintainedList :: StatusSummary -> [Text]
unmaintainedList = showBuild <=< sortOnReverseDeps . Map.toList . withoutMaintainer
showBuild :: (PkgName, SummaryEntry) -> [Text]
showBuild (name, entry) =
printJob
id
name
( summaryBuilds entry
, Text.pack
( if summaryReverseDeps entry > 0
then
" :arrow_heading_up: " <> show (summaryUnbrokenReverseDeps entry) <>
" | " <> show (summaryReverseDeps entry)
else ""
)
)
showMaintainedBuild
:: (PkgName, (Table PkgSet Platform BuildResult, NonEmpty Text)) -> [Text]
showMaintainedBuild (name, (table, maintainers)) =
printJob
id
name
( table
, Text.intercalate " " (fmap ("@" <>) (toList maintainers))
)
tldr = case (errors, warnings) of
([],[]) -> [":green_circle: **Ready to merge** (if there are no [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
([],_) -> [":yellow_circle: **Potential issues** (and possibly [evaluation errors](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates))"]
_ -> [":red_circle: **Branch not mergeable**"]
warnings =
if' (Unfinished > maybe Success worstState maintainedJob) "`maintained` jobset failed." <>
if' (Unfinished == maybe Success worstState mergeableJob) "`mergeable` jobset is not finished." <>
if' (Unfinished == maybe Success worstState maintainedJob) "`maintained` jobset is not finished."
errors =
if' (isNothing mergeableJob) "No `mergeable` job found." <>
if' (isNothing maintainedJob) "No `maintained` job found." <>
if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <>
if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too many outstanding jobs on x86_64-linux." <>
if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too many outstanding jobs on aarch64-linux."
if' p e = if p then [e] else mempty
outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m
maintainedJob = Map.lookup (PkgName "maintained") summary
mergeableJob = Map.lookup (PkgName "mergeable") summary
printEvalInfo :: IO () printEvalInfo :: IO ()
printEvalInfo = do printEvalInfo = do
@ -509,13 +768,18 @@ printMaintainerPing = do
let tops = take 50 . sortOn (negate . snd) . fmap (second fst) . filter (\x -> maybe False broken $ Map.lookup (fst x) depMap) . Map.toList $ rdepMap let tops = take 50 . sortOn (negate . snd) . fmap (second fst) . filter (\x -> maybe False broken $ Map.lookup (fst x) depMap) . Map.toList $ rdepMap
pure (rdepMap, tops) pure (rdepMap, tops)
(eval, fetchTime, buildReport) <- readBuildReports (eval, fetchTime, buildReport) <- readBuildReports
putStrLn (Text.unpack (printBuildSummary eval fetchTime (buildSummary maintainerMap reverseDependencyMap buildReport) topBrokenRdeps)) let statusSummaries =
fmap (buildToStatusSummary maintainerMap reverseDependencyMap) buildReport
buildSum :: StatusSummary
buildSum = combineStatusSummaries statusSummaries
textBuildSummary = printBuildSummary eval fetchTime buildSum topBrokenRdeps
Text.putStrLn textBuildSummary
printMarkBrokenList :: IO () printMarkBrokenList :: IO ()
printMarkBrokenList = do printMarkBrokenList = do
(_, fetchTime, buildReport) <- readBuildReports (_, fetchTime, buildReport) <- readBuildReports
runReq defaultHttpConfig $ forM_ buildReport \build@Build{job, id} -> runReq defaultHttpConfig $ forM_ buildReport \build@Build{job, id} ->
case (getBuildState build, Text.splitOn "." job) of case (getBuildState build, Text.splitOn "." $ unJobName job) of
(Failed, ["haskellPackages", name, "x86_64-linux"]) -> do (Failed, ["haskellPackages", name, "x86_64-linux"]) -> do
-- Fetch build log from hydra to figure out the cause of the error. -- Fetch build log from hydra to figure out the cause of the error.
build_log <- ByteString.lines <$> hydraPlainQuery ["build", showT id, "nixlog", "1", "raw"] build_log <- ByteString.lines <$> hydraPlainQuery ["build", showT id, "nixlog", "1", "raw"]

View file

@ -0,0 +1,69 @@
{ appstream-glib
, blueprint-compiler
, desktop-file-utils
, fetchFromGitLab
, gst_all_1
, gtk4
, lib
, libadwaita
, meson
, ninja
, nix-update-script
, pkg-config
, rustPlatform
, stdenv
, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "identity";
version = "0.5.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "YaLTeR";
repo = "identity";
rev = "v${version}";
sha256 = "sha256-ZBK2Vc2wnohABnWXRtmRdAAOnkTIHt4RriZitu8BW1A=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-5NUnrBHj3INhh9zbdwPink47cP6uJiRyzzdj+yiSVD8=";
};
nativeBuildInputs = [
appstream-glib
blueprint-compiler
desktop-file-utils
meson
ninja
pkg-config
wrapGAppsHook4
] ++ (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [
gst_all_1.gst-libav
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
gtk4
libadwaita
];
passthru.updateScript = nix-update-script { };
meta = {
description = "A program for comparing multiple versions of an image or video";
homepage = "https://gitlab.gnome.org/YaLTeR/identity";
maintainers = [ lib.maintainers.paveloom ];
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
};
}

View file

@ -10,11 +10,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "logseq"; pname = "logseq";
version = "0.9.0"; version = "0.9.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage"; url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
hash = "sha256-5oX1LhqWvNiMF9ZI7BvpHe4bhB3vQp6dsjLYMQ9Jy+o="; hash = "sha256-8jplCIylG1xbpp/VGnU06MwfqWe2E9iVQApZaWbhuVc=";
name = "${pname}-${version}.AppImage"; name = "${pname}-${version}.AppImage";
}; };

View file

@ -13,16 +13,16 @@
buildGoModule rec { buildGoModule rec {
pname = "chart-testing"; pname = "chart-testing";
version = "3.7.1"; version = "3.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "helm"; owner = "helm";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-b8U7zVvzewSxqX7RG7+FMAVytW4s2apNxR3krNJuiro="; hash = "sha256-ccP3t+Q4aZviYw8by2JDiuKHt7o6EKFxBxlhEntmV5A=";
}; };
vendorHash = "sha256-z4hNGswxRMU40qkgwY3n516FiyaoeDaAE+CCla3TMkk="; vendorHash = "sha256-4x/8uDCfrERC+ww+iyP+dHIQ820IOARXj60KnjqeDkM=";
postPatch = '' postPatch = ''
substituteInPlace pkg/config/config.go \ substituteInPlace pkg/config/config.go \

View file

@ -28,13 +28,13 @@
"vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk=" "vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk="
}, },
"aiven": { "aiven": {
"hash": "sha256-wVgfT/1o5Hz7xbX3OOfjF2P5bhV7kPxnXZOU/3erRpk=", "hash": "sha256-dOdq/At0aUTaivvm557sgPwxC9EfRBexYrtpri8tzg4=",
"homepage": "https://registry.terraform.io/providers/aiven/aiven", "homepage": "https://registry.terraform.io/providers/aiven/aiven",
"owner": "aiven", "owner": "aiven",
"repo": "terraform-provider-aiven", "repo": "terraform-provider-aiven",
"rev": "v4.1.3", "rev": "v4.2.0",
"spdx": "MIT", "spdx": "MIT",
"vendorHash": "sha256-wz1Wy/4GI8/Wlu828RX7OE+XJHzCS/X45tW3Jb7Tx3E=" "vendorHash": "sha256-QDO/xE9ZK7+UscjVBV06BMGavExD248PhLIrDB5oROU="
}, },
"akamai": { "akamai": {
"hash": "sha256-j9KQWgcBjZiQrWjRdhQp82GawF/U6Y469MKN5V2R6xU=", "hash": "sha256-j9KQWgcBjZiQrWjRdhQp82GawF/U6Y469MKN5V2R6xU=",
@ -228,13 +228,13 @@
"vendorHash": "sha256-9YmvaKPZVu+Fi0zlmJbKcU2iw2WUdzZJzgWPfkI1C24=" "vendorHash": "sha256-9YmvaKPZVu+Fi0zlmJbKcU2iw2WUdzZJzgWPfkI1C24="
}, },
"cloudfoundry": { "cloudfoundry": {
"hash": "sha256-Js/UBblHkCkfaBVOpYFGyrleOjpNE1mo+Sf3OpXLkfM=", "hash": "sha256-/2MUyn5+lpIp/UeT/7hfwLKF/mXTgtlJSs/B7lzXFys=",
"homepage": "https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry", "homepage": "https://registry.terraform.io/providers/cloudfoundry-community/cloudfoundry",
"owner": "cloudfoundry-community", "owner": "cloudfoundry-community",
"repo": "terraform-provider-cloudfoundry", "repo": "terraform-provider-cloudfoundry",
"rev": "v0.50.5", "rev": "v0.50.6",
"spdx": "MPL-2.0", "spdx": "MPL-2.0",
"vendorHash": "sha256-2ulAzgDBdcYTqGRmEL9+h9MglZ9bt5WRXzNP099g2kk=" "vendorHash": "sha256-nBp/0HhflaoDzdHY6t42/gq3x6092ERIlNKv8ggahKE="
}, },
"cloudinit": { "cloudinit": {
"hash": "sha256-fdtUKD8XC1Y72IzrsCfTZYVYZwLqY3gV2sajiw4Krzw=", "hash": "sha256-fdtUKD8XC1Y72IzrsCfTZYVYZwLqY3gV2sajiw4Krzw=",
@ -382,11 +382,11 @@
"vendorHash": "sha256-E1gzdES/YVxQq2J47E2zosvud2C/ViBeQ8+RfNHMBAg=" "vendorHash": "sha256-E1gzdES/YVxQq2J47E2zosvud2C/ViBeQ8+RfNHMBAg="
}, },
"fastly": { "fastly": {
"hash": "sha256-FO6SXpFk/DxOvDszwYiftB65JVNoN90JG6JFc8zid50=", "hash": "sha256-hJHErQ8vDY9c1uaqiLYdxBns3U3XvAGKsobH8fit4HI=",
"homepage": "https://registry.terraform.io/providers/fastly/fastly", "homepage": "https://registry.terraform.io/providers/fastly/fastly",
"owner": "fastly", "owner": "fastly",
"repo": "terraform-provider-fastly", "repo": "terraform-provider-fastly",
"rev": "v4.1.1", "rev": "v4.1.2",
"spdx": "MPL-2.0", "spdx": "MPL-2.0",
"vendorHash": null "vendorHash": null
}, },
@ -820,13 +820,13 @@
"vendorHash": null "vendorHash": null
}, },
"okta": { "okta": {
"hash": "sha256-O4ZTGYM9r3XFzr2Nx/Tt2Fs7WOqQuQWfo+ZMmZyg+mo=", "hash": "sha256-j4tOWcY3x4FpfCEdB7x5XP7Pqms97tYtEvGDn8Fjst8=",
"homepage": "https://registry.terraform.io/providers/okta/okta", "homepage": "https://registry.terraform.io/providers/okta/okta",
"owner": "okta", "owner": "okta",
"repo": "terraform-provider-okta", "repo": "terraform-provider-okta",
"rev": "v3.44.0", "rev": "v3.45.0",
"spdx": "MPL-2.0", "spdx": "MPL-2.0",
"vendorHash": "sha256-KYOzbbBjE2C7+1St62rs9mlJFhpIlWQJ0reh5V5tQsk=" "vendorHash": "sha256-DkC4BmFfckBtT12lr3rgU9Mg4Nb+7sXjDT/EdfbSFQM="
}, },
"oktaasa": { "oktaasa": {
"hash": "sha256-2LhxgowqKvDDDOwdznusL52p2DKP+UiXALHcs9ZQd0U=", "hash": "sha256-2LhxgowqKvDDDOwdznusL52p2DKP+UiXALHcs9ZQd0U=",
@ -1099,11 +1099,11 @@
"vendorHash": "sha256-GkmUKSnqkabwGCl22/90529BWb0oJaIJHYHlS/h3KNY=" "vendorHash": "sha256-GkmUKSnqkabwGCl22/90529BWb0oJaIJHYHlS/h3KNY="
}, },
"tencentcloud": { "tencentcloud": {
"hash": "sha256-N6x3CKpLL62lc+V038740EGBicjroc07KhkvyCYgn24=", "hash": "sha256-Lf6IKNdl7eiFBdCSbuXaawMno7grlIQBwM99sg75sS0=",
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud", "homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
"owner": "tencentcloudstack", "owner": "tencentcloudstack",
"repo": "terraform-provider-tencentcloud", "repo": "terraform-provider-tencentcloud",
"rev": "v1.79.18", "rev": "v1.79.19",
"spdx": "MPL-2.0", "spdx": "MPL-2.0",
"vendorHash": null "vendorHash": null
}, },

View file

@ -6,17 +6,18 @@
, installShellFiles , installShellFiles
, util-linux , util-linux
, nixosTests , nixosTests
, kubernetes
}: }:
buildGoModule rec { buildGoModule rec {
pname = "containerd"; pname = "containerd";
version = "1.6.19"; version = "1.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "containerd"; owner = "containerd";
repo = "containerd"; repo = "containerd";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-Us7NEv2BngV1Q/Bkuv4XOjVjpqThL0LnIH+yciPG3L8="; hash = "sha256-OHgakSNqIbXYDC7cTw2fy0HlElQMilDbSD5SSjbYJhc=";
}; };
vendorHash = null; vendorHash = null;
@ -42,7 +43,7 @@ buildGoModule rec {
runHook postInstall runHook postInstall
''; '';
passthru.tests = { inherit (nixosTests) docker; }; passthru.tests = { inherit (nixosTests) docker; } // kubernetes.tests;
meta = with lib; { meta = with lib; {
changelog = "https://github.com/containerd/containerd/releases/tag/${src.rev}"; changelog = "https://github.com/containerd/containerd/releases/tag/${src.rev}";

View file

@ -71,12 +71,12 @@ let
let let
name = last (builtins.split "/" nameOrPath); name = last (builtins.split "/" nameOrPath);
in in
pkgs.runCommand name (if (types.str.check content) then { pkgs.runCommand name ((if (types.str.check content) then {
inherit content; inherit content;
passAsFile = [ "content" ]; passAsFile = [ "content" ];
} else { } else {
contentPath = content; contentPath = content;
} // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) { }) // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) {
# post-link-hook expects codesign_allocate to be in PATH # post-link-hook expects codesign_allocate to be in PATH
# https://github.com/NixOS/nixpkgs/issues/154203 # https://github.com/NixOS/nixpkgs/issues/154203
# https://github.com/NixOS/nixpkgs/issues/148189 # https://github.com/NixOS/nixpkgs/issues/148189

View file

@ -1,6 +1,6 @@
{ {
"commit": "083bd4855df26eb1db1c38c31fdf79ccf67c2f13", "commit": "4a67d2eace63deeaec7dd3553d04e892b39b63a7",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/083bd4855df26eb1db1c38c31fdf79ccf67c2f13.tar.gz", "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/4a67d2eace63deeaec7dd3553d04e892b39b63a7.tar.gz",
"sha256": "0m0d33xd1zfpcdbyhq7akq73dpgwggi39l1wp99vpfgpi220ad5a", "sha256": "12y659k8qs0rnajcfdwwwwz5ywcnf3ygxi2kmv8b31x4znll1gfs",
"msg": "Update from Hackage at 2023-03-01T16:43:25Z" "msg": "Update from Hackage at 2023-03-13T08:59:39Z"
} }

View file

@ -2,12 +2,12 @@
rebar3Relx rec { rebar3Relx rec {
pname = "erlfmt"; pname = "erlfmt";
version = "1.1.0"; version = "1.2.0";
releaseType = "escript"; releaseType = "escript";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "WhatsApp"; owner = "WhatsApp";
repo = "erlfmt"; repo = "erlfmt";
sha256 = "sha256-diZCyw4eR+h/Pc73HDfnFaXnNXwqu3XabTbeiWVPNPI="; sha256 = "sha256-mma4QH6GlayTG5I9hW9wNZph/IJcCXjiY7Ft3hfxaPg=";
rev = "v${version}"; rev = "v${version}";
}; };
meta = with lib; { meta = with lib; {

View file

@ -20,21 +20,59 @@ with haskellLib;
self: super: { self: super: {
# Make sure that Cabal 3.8.* can be built as-is
Cabal_3_8_1_0 = doDistribute (super.Cabal_3_8_1_0.override ({
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
} // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") {
# Use process core package when possible
process = self.process_1_6_17_0;
}));
# Make sure that Cabal 3.10.* can be built as-is
Cabal_3_10_1_0 = doDistribute (super.Cabal_3_10_1_0.override ({
Cabal-syntax = self.Cabal-syntax_3_10_1_0;
} // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") {
# Use process core package when possible
process = self.process_1_6_17_0;
}));
# cabal-install needs most recent versions of Cabal and Cabal-syntax, # cabal-install needs most recent versions of Cabal and Cabal-syntax,
# so we need to put some extra work for non-latest GHCs # so we need to put some extra work for non-latest GHCs
inherit ( inherit (
let let
# !!! Use cself/csuper inside for the actual overrides # !!! Use cself/csuper inside for the actual overrides
cabalInstallOverlay = cself: csuper: cabalInstallOverlay = cself: csuper:
lib.optionalAttrs (lib.versionOlder self.ghc.version "9.4") { lib.optionalAttrs (lib.versionOlder self.ghc.version "9.6") {
Cabal = cself.Cabal_3_8_1_0; Cabal = cself.Cabal_3_10_1_0;
Cabal-syntax = cself.Cabal-syntax_3_8_1_0; Cabal-syntax = cself.Cabal-syntax_3_10_1_0;
} // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") { } // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.4") {
# GHC 9.2.5 starts shipping 1.6.16.0 # We need at least directory >= 1.3.7.0. Using the latest version
# 1.3.8.* is not an option since it causes very annoying dependencies
# on newer versions of unix and filepath than GHC 9.2 ships
directory = cself.directory_1_3_7_1;
# GHC 9.2.5 starts shipping 1.6.16.0 which is required by
# cabal-install, but we need to recompile process even if the correct
# version is available to prevent inconsistent dependencies:
# process depends on directory.
process = cself.process_1_6_17_0; process = cself.process_1_6_17_0;
} // lib.optionalAttrs (lib.versions.majorMinor self.ghc.version == "8.10") {
# hspec < 2.10 depends on ghc (the library) directly which in turn
# depends on directory, causing a dependency conflict which is practically
# not solvable short of recompiling GHC. Instead of adding
# allowInconsistentDependencies for all reverse dependencies of hspec-core,
# just upgrade to an hspec version without the offending dependency.
hspec-core = cself.hspec-core_2_10_10;
hspec-discover = cself.hspec-discover_2_10_10;
hspec = cself.hspec_2_10_10;
# hspec-discover and hspec-core depend on hspec-meta for testing which
# we need to avoid since it depends on ghc as well. Since hspec*_2_10*
# are overridden to take the versioned attributes as inputs, we need
# to make sure to override the versioned attribute with this fix.
hspec-discover_2_10_10 = dontCheck csuper.hspec-discover_2_10_10;
# Prevent dependency on doctest which causes an inconsistent dependency # Prevent dependency on doctest which causes an inconsistent dependency
# due to depending on ghc-8.10.7 (with bundled process) vs. process 1.6.16.0 # due to depending on ghc which depends on directory etc.
vector = dontCheck csuper.vector; vector = dontCheck csuper.vector;
}; };
in in
@ -62,6 +100,15 @@ self: super: {
guardian guardian
; ;
vector = overrideCabal (old: {
# Too strict bounds on doctest which isn't used, but is part of the configuration
jailbreak = true;
# vector-doctest seems to be broken when executed via ./Setup test
testTarget = lib.concatStringsSep " " [
"vector-tests-O0"
"vector-tests-O2"
];
}) super.vector;
# There are numerical tests on random data, that may fail occasionally # There are numerical tests on random data, that may fail occasionally
lapack = dontCheck super.lapack; lapack = dontCheck super.lapack;
@ -192,10 +239,6 @@ self: super: {
pandoc-cli = throwIfNot (versionOlder super.pandoc.version "3.0.0") "pandoc-cli contains the pandoc executable starting with 3.0, this needs to be considered now." (markBroken (dontDistribute super.pandoc-cli)); pandoc-cli = throwIfNot (versionOlder super.pandoc.version "3.0.0") "pandoc-cli contains the pandoc executable starting with 3.0, this needs to be considered now." (markBroken (dontDistribute super.pandoc-cli));
# sse2 flag due to https://github.com/haskell/vector/issues/47.
# Jailbreak is necessary for QuickCheck dependency.
vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag "--ghc-options=-msse2" super.vector else super.vector);
inline-c-cpp = overrideCabal (drv: { inline-c-cpp = overrideCabal (drv: {
patches = drv.patches or [] ++ [ patches = drv.patches or [] ++ [
(fetchpatch { (fetchpatch {
@ -495,6 +538,10 @@ self: super: {
rematch = dontCheck super.rematch; # https://github.com/tcrayford/rematch/issues/5 rematch = dontCheck super.rematch; # https://github.com/tcrayford/rematch/issues/5
rematch-text = dontCheck super.rematch-text; # https://github.com/tcrayford/rematch/issues/6 rematch-text = dontCheck super.rematch-text; # https://github.com/tcrayford/rematch/issues/6
# Package exists only to be example of documentation, yet it has restrictive
# "base" dependency.
haddock-cheatsheet = doJailbreak super.haddock-cheatsheet;
# no haddock since this is an umbrella package. # no haddock since this is an umbrella package.
cloud-haskell = dontHaddock super.cloud-haskell; cloud-haskell = dontHaddock super.cloud-haskell;
@ -846,12 +893,12 @@ self: super: {
testHaskellDepends = drv.testHaskellDepends or [] ++ [ self.hspec-meta_2_10_5 ]; testHaskellDepends = drv.testHaskellDepends or [] ++ [ self.hspec-meta_2_10_5 ];
testToolDepends = drv.testToolDepends or [] ++ [ pkgs.git ]; testToolDepends = drv.testToolDepends or [] ++ [ pkgs.git ];
}) (super.sensei.override { }) (super.sensei.override {
hspec = self.hspec_2_10_9; hspec = self.hspec_2_10_10;
hspec-wai = self.hspec-wai.override { hspec-wai = self.hspec-wai.override {
hspec = self.hspec_2_10_9; hspec = self.hspec_2_10_10;
}; };
hspec-contrib = self.hspec-contrib.override { hspec-contrib = self.hspec-contrib.override {
hspec-core = self.hspec-core_2_10_9; hspec-core = self.hspec-core_2_10_10;
}; };
fsnotify = self.fsnotify_0_4_1_0; fsnotify = self.fsnotify_0_4_1_0;
}); });
@ -1551,16 +1598,18 @@ self: super: {
servant-openapi3 = dontCheck super.servant-openapi3; servant-openapi3 = dontCheck super.servant-openapi3;
# Give hspec 2.10.* correct dependency versions without overrideScope # Give hspec 2.10.* correct dependency versions without overrideScope
hspec_2_10_9 = doDistribute (super.hspec_2_10_9.override { hspec_2_10_10 = doDistribute (super.hspec_2_10_10.override {
hspec-discover = self.hspec-discover_2_10_9; hspec-discover = self.hspec-discover_2_10_10;
hspec-core = self.hspec-core_2_10_9; hspec-core = self.hspec-core_2_10_10;
}); });
hspec-discover_2_10_9 = super.hspec-discover_2_10_9.override { hspec-discover_2_10_10 = doDistribute (super.hspec-discover_2_10_10.override {
hspec-meta = self.hspec-meta_2_10_5; hspec-meta = self.hspec-meta_2_10_5;
}; });
hspec-core_2_10_9 = super.hspec-core_2_10_9.override { # Need to disable tests to prevent an infinite recursion if hspec-core_2_10_10
# is overlayed to hspec-core.
hspec-core_2_10_10 = doDistribute (dontCheck (super.hspec-core_2_10_10.override {
hspec-meta = self.hspec-meta_2_10_5; hspec-meta = self.hspec-meta_2_10_5;
}; }));
# Point hspec 2.7.10 to correct dependencies # Point hspec 2.7.10 to correct dependencies
hspec_2_7_10 = super.hspec_2_7_10.override { hspec_2_7_10 = super.hspec_2_7_10.override {
@ -1572,12 +1621,6 @@ self: super: {
servant-swagger-ui-core = doJailbreak super.servant-swagger-ui-core; servant-swagger-ui-core = doJailbreak super.servant-swagger-ui-core;
hercules-ci-agent = lib.pipe super.hercules-ci-agent [ hercules-ci-agent = lib.pipe super.hercules-ci-agent [
(appendPatch (fetchpatch {
name = "hercules-ci-agent-support-cachix-1.3.patch";
url = "https://github.com/hercules-ci/hercules-ci-agent/pull/500.diff";
sha256 = "sha256-ErrFvzB1NiIJLpsP2wfx5CX8DnH1x5i/ijQZEeuOzeI=";
relative = "hercules-ci-agent";
}))
(self.generateOptparseApplicativeCompletions [ "hercules-ci-agent" ]) (self.generateOptparseApplicativeCompletions [ "hercules-ci-agent" ])
]; ];
@ -2248,11 +2291,6 @@ self: super: {
# Too strict bounds on chell: https://github.com/fpco/haskell-filesystem/issues/24 # Too strict bounds on chell: https://github.com/fpco/haskell-filesystem/issues/24
system-fileio = doJailbreak super.system-fileio; system-fileio = doJailbreak super.system-fileio;
# Temporarily upgrade haskell-gi until stackage advances
# Fixes build of gi-harfbuzz with harfbuzz >= 7.0
# https://github.com/haskell-gi/haskell-gi/issues/396#issuecomment-1445181362
haskell-gi = doDistribute self.haskell-gi_0_26_3;
# Bounds too strict on base and ghc-prim: https://github.com/tibbe/ekg-core/pull/43 (merged); waiting on hackage release # Bounds too strict on base and ghc-prim: https://github.com/tibbe/ekg-core/pull/43 (merged); waiting on hackage release
ekg-core = assert super.ekg-core.version == "0.1.1.7"; doJailbreak super.ekg-core; ekg-core = assert super.ekg-core.version == "0.1.1.7"; doJailbreak super.ekg-core;
hasura-ekg-core = doJailbreak super.hasura-ekg-core; hasura-ekg-core = doJailbreak super.hasura-ekg-core;
@ -2491,6 +2529,10 @@ self: super: {
editedCabalFile = null; editedCabalFile = null;
}) super.true-name); }) super.true-name);
# ffmpeg-light works against the ffmpeg-4 API, but the default ffmpeg in nixpkgs is ffmpeg-5.
# https://github.com/NixOS/nixpkgs/pull/220972#issuecomment-1484017192
ffmpeg-light = super.ffmpeg-light.override { ffmpeg = pkgs.ffmpeg_4; };
# posix-api has had broken tests since 2020 (until at least 2023-01-11) # posix-api has had broken tests since 2020 (until at least 2023-01-11)
# raehik has a fix pending: https://github.com/andrewthad/posix-api/pull/14 # raehik has a fix pending: https://github.com/andrewthad/posix-api/pull/14
posix-api = dontCheck super.posix-api; posix-api = dontCheck super.posix-api;
@ -2501,4 +2543,8 @@ self: super: {
# 2023-03-05: restrictive bounds on base https://github.com/diagrams/diagrams-gtk/issues/11 # 2023-03-05: restrictive bounds on base https://github.com/diagrams/diagrams-gtk/issues/11
diagrams-gtk = doJailbreak super.diagrams-gtk; diagrams-gtk = doJailbreak super.diagrams-gtk;
# 2023-03-13: restrictive bounds on validation-selective (>=0.1.0 && <0.2).
# Get rid of this in the next release: https://github.com/kowainik/tomland/commit/37f16460a6dfe4606d48b8b86c13635d409442cd
tomland = doJailbreak super.tomland;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View file

@ -118,9 +118,6 @@ self: super: {
ormolu = super.ormolu_0_2_0_0; ormolu = super.ormolu_0_2_0_0;
# vector 0.12.2 indroduced doctest checks that dont work on older compilers
vector = dontCheck super.vector;
ghc-api-compat = doDistribute (unmarkBroken super.ghc-api-compat_8_6); ghc-api-compat = doDistribute (unmarkBroken super.ghc-api-compat_8_6);
mime-string = disableOptimization super.mime-string; mime-string = disableOptimization super.mime-string;

View file

@ -81,7 +81,6 @@ self: super: {
tar = doJailbreak super.tar; tar = doJailbreak super.tar;
time-compat = doJailbreak super.time-compat; time-compat = doJailbreak super.time-compat;
tuple = addBuildDepend self.base-orphans super.tuple; tuple = addBuildDepend self.base-orphans super.tuple;
vector = doJailbreak (dontCheck super.vector);
vector-binary-instances = doJailbreak super.vector-binary-instances; vector-binary-instances = doJailbreak super.vector-binary-instances;
vector-th-unbox = doJailbreak super.vector-th-unbox; vector-th-unbox = doJailbreak super.vector-th-unbox;
zlib = doJailbreak super.zlib; zlib = doJailbreak super.zlib;

View file

@ -60,9 +60,6 @@ self: super: {
# https://mail.haskell.org/pipermail/haskell-cafe/2022-October/135613.html # https://mail.haskell.org/pipermail/haskell-cafe/2022-October/135613.html
language-javascript_0_7_0_0 = dontCheck super.language-javascript_0_7_0_0; language-javascript_0_7_0_0 = dontCheck super.language-javascript_0_7_0_0;
th-desugar = self.th-desugar_1_14;
vector = dontCheck super.vector;
# Apply patches from head.hackage. # Apply patches from head.hackage.
language-haskell-extract = appendPatch (pkgs.fetchpatch { language-haskell-extract = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/language-haskell-extract-0.2.4.patch"; url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/language-haskell-extract-0.2.4.patch";

View file

@ -71,9 +71,7 @@ in {
# Jailbreaks & Version Updates # Jailbreaks & Version Updates
# Jailbreak to allow quickcheck-instances-0.3.28 (too strict lower bound) aeson = doDistribute self.aeson_2_1_2_1;
aeson = doDistribute (doJailbreak self.aeson_2_1_2_1);
assoc = doJailbreak super.assoc; assoc = doJailbreak super.assoc;
async = doJailbreak super.async; async = doJailbreak super.async;
base64-bytestring = doJailbreak super.base64-bytestring; base64-bytestring = doJailbreak super.base64-bytestring;
@ -92,8 +90,6 @@ in {
hashable-time = doJailbreak super.hashable-time; hashable-time = doJailbreak super.hashable-time;
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP); HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms); integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
indexed-traversable = doJailbreak super.indexed-traversable;
indexed-traversable-instances = doJailbreak super.indexed-traversable-instances;
lifted-async = doJailbreak super.lifted-async; lifted-async = doJailbreak super.lifted-async;
lukko = doJailbreak super.lukko; lukko = doJailbreak super.lukko;
lzma-conduit = doJailbreak super.lzma-conduit; lzma-conduit = doJailbreak super.lzma-conduit;
@ -107,15 +103,19 @@ in {
rope-utf16-splay = doDistribute self.rope-utf16-splay_0_4_0_0; rope-utf16-splay = doDistribute self.rope-utf16-splay_0_4_0_0;
shake-cabal = doDistribute self.shake-cabal_0_2_2_3; shake-cabal = doDistribute self.shake-cabal_0_2_2_3;
libmpd = doJailbreak super.libmpd; libmpd = doJailbreak super.libmpd;
base-orphans = dontCheck super.base-orphans; generics-sop = doJailbreak super.generics-sop;
microlens-th = doJailbreak super.microlens-th;
# generically needs base-orphans for 9.4 only
base-orphans = dontCheck (doDistribute super.base-orphans);
generically = addBuildDepend self.base-orphans super.generically;
# Note: Any compilation fixes need to be done on the versioned attributes, # Note: Any compilation fixes need to be done on the versioned attributes,
# since those are used for the internal dependencies between the versioned # since those are used for the internal dependencies between the versioned
# hspec packages in configuration-common.nix. # hspec packages in configuration-common.nix.
hspec = self.hspec_2_10_9; hspec = self.hspec_2_10_10;
hspec-core = self.hspec-core_2_10_9; hspec-core = self.hspec-core_2_10_10;
hspec-meta = self.hspec-meta_2_10_5; hspec-meta = self.hspec-meta_2_10_5;
hspec-discover = self.hspec-discover_2_10_9; hspec-discover = self.hspec-discover_2_10_10;
# the dontHaddock is due to a GHC panic. might be this bug, not sure. # the dontHaddock is due to a GHC panic. might be this bug, not sure.
# https://gitlab.haskell.org/ghc/ghc/-/issues/21619 # https://gitlab.haskell.org/ghc/ghc/-/issues/21619
@ -131,12 +131,12 @@ in {
syb = dontCheck super.syb; syb = dontCheck super.syb;
splitmix = doJailbreak super.splitmix; splitmix = doJailbreak super.splitmix;
th-desugar = self.th-desugar_1_14; th-desugar = doDistribute self.th-desugar_1_15;
th-abstraction = doDistribute self.th-abstraction_0_5_0_0;
time-compat = doJailbreak super.time-compat; time-compat = doJailbreak super.time-compat;
tomland = doJailbreak super.tomland; tomland = doJailbreak super.tomland;
type-equality = doJailbreak super.type-equality; type-equality = doJailbreak super.type-equality;
unordered-containers = doJailbreak super.unordered-containers; unordered-containers = doJailbreak super.unordered-containers;
vector = dontCheck super.vector;
vector-binary-instances = doJailbreak super.vector-binary-instances; vector-binary-instances = doJailbreak super.vector-binary-instances;
hpack = overrideCabal (drv: { hpack = overrideCabal (drv: {
@ -209,6 +209,7 @@ in {
servant-client = doJailbreak super.servant-client; servant-client = doJailbreak super.servant-client;
relude = doJailbreak super.relude; relude = doJailbreak super.relude;
# Fixes compilation failure with GHC >= 9.4 on aarch64-* due to an API change
cborg = appendPatch (pkgs.fetchpatch { cborg = appendPatch (pkgs.fetchpatch {
name = "cborg-support-ghc-9.4.patch"; name = "cborg-support-ghc-9.4.patch";
url = "https://github.com/well-typed/cborg/pull/304.diff"; url = "https://github.com/well-typed/cborg/pull/304.diff";

View file

@ -1,10 +1,15 @@
{ pkgs, haskellLib }: { pkgs, haskellLib }:
with haskellLib;
let let
inherit (pkgs) lib; inherit (pkgs) lib;
in
with haskellLib; jailbreakWhileRevision = rev:
overrideCabal (old: {
jailbreak = assert old.revision or "0" == toString rev; true;
});
in
self: super: { self: super: {
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages; llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@ -47,4 +52,108 @@ self: super: {
transformers = null; transformers = null;
unix = null; unix = null;
xhtml = null; xhtml = null;
#
# Version deviations from Stackage LTS
#
th-desugar = doDistribute self.th-desugar_1_15;
th-abstraction = doDistribute self.th-abstraction_0_5_0_0;
tagged = doDistribute self.tagged_0_8_7; # allows template-haskell-2.20
primitive = doDistribute (dontCheck self.primitive_0_7_4_0); # allows base >= 4.18
indexed-traversable = doDistribute super.indexed-traversable_0_1_2_1; # allows base >= 4.18
OneTuple = doDistribute (dontCheck super.OneTuple_0_4_1_1); # allows base >= 4.18
inspection-testing = doDistribute self.inspection-testing_0_5_0_1; # allows base >= 4.18
tasty-inspection-testing = doDistribute self.tasty-inspection-testing_0_2;
# Too strict bounds on ghc-prim and template-haskell
aeson = doDistribute (doJailbreak self.aeson_2_1_2_1);
# Too strict bounds on ghc-prim
memory = doDistribute self.memory_0_18_0;
ghc-lib = doDistribute self.ghc-lib_9_6_1_20230312;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_6_1_20230312;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_0;
#
# Too strict bounds without upstream fix
#
# Forbids transformers >= 0.6
quickcheck-classes-base = doJailbreak super.quickcheck-classes-base;
# Forbids base >= 4.18
singleton-bool = doJailbreak super.singleton-bool;
# Forbids base >= 4.18
unliftio-core = doJailbreak super.unliftio-core;
# Forbids mtl >= 2.3
ChasingBottoms = doJailbreak super.ChasingBottoms;
# Forbids base >= 4.18
cabal-install-solver = doJailbreak super.cabal-install-solver;
cabal-install = doJailbreak super.cabal-install;
# Forbids base >= 4.18
lukko = doJailbreak super.lukko;
#
# Too strict bounds, waiting on Hackage release in nixpkgs
#
# base >= 4.18 is allowed in those newer versions
boring = assert !(self ? boring_0_2_1); doJailbreak super.boring;
some = assert !(self ? some_1_0_5); doJailbreak super.some;
assoc = assert !(self ? assoc_1_1); doJailbreak super.assoc;
these = assert !(self ? assoc_1_2); doJailbreak super.these;
# Temporarily upgrade manually until the attribute is available
doctest = doDistribute (overrideCabal {
version = "0.21.1";
sha256 = "0vgl89p6iaj2mwnd1gkpq86q1g18shdcws0p3can25algi2sldk3";
} super.doctest_0_21_0);
# XXX: We probably should be using semigroupoids 6.0.1 which is intended for 9.6
semigroupoids = doJailbreak super.semigroupoids;
# XXX: 1.3 supports 9.6 properly, but is intended for bifunctors >= 5.6
semialign = doJailbreak super.semialign;
#
# Too strict bounds, waiting on Revision in nixpkgs
#
# Revision 7 lifts the offending bound on ghc-prim
ed25519 = jailbreakWhileRevision 6 super.ed25519;
# Revision 6 lifts the offending bound on base
tar = jailbreakWhileRevision 5 super.tar;
# Revision 2 lifts the offending bound on base
HTTP = jailbreakWhileRevision 1 super.HTTP;
# Revision 1 lifts the offending bound on base
dec = jailbreakWhileRevision 0 super.dec;
# Revision 2 lifts the offending bound on base
cryptohash-sha256 = jailbreakWhileRevision 1 super.cryptohash-sha256;
# Revision 4 lifts offending template-haskell bound
uuid-types = jailbreakWhileRevision 3 super.uuid-types;
# Revision 1 lifts offending base bound
quickcheck-instances = jailbreakWhileRevision 0 super.quickcheck-instances;
# Revision 1 lifts offending base bound
generically = jailbreakWhileRevision 0 super.generically;
# Revision 3 lifts offending template-haskell bound
hackage-security = jailbreakWhileRevision 2 super.hackage-security;
# Revision 6 lifts offending base bound
parallel = jailbreakWhileRevision 5 super.parallel;
#
# Compilation failure workarounds
#
# Add missing Functor instance for Tuple2
# https://github.com/haskell-foundation/foundation/pull/572
foundation = appendPatches [
(pkgs.fetchpatch {
name = "foundation-pr-572.patch";
url =
"https://github.com/haskell-foundation/foundation/commit/d3136f4bb8b69e273535352620e53f2196941b35.patch";
sha256 = "sha256-oPadhQdCPJHICdCPxn+GsSQUARIYODG8Ed6g2sK+eC4=";
stripLen = 1;
})
] (super.foundation);
# Test suite doesn't compile with base-4.18 / GHC 9.6
# https://github.com/dreixel/syb/issues/40
syb = dontCheck super.syb;
} }

View file

@ -1914,6 +1914,7 @@ broken-packages:
- gtksourceview2 - gtksourceview2
- gtksourceview3 - gtksourceview3
- gtk-toy - gtk-toy
- guardian # transitive dependency uses doctest, but doctest doesn't build with newer Cabal version
- guess-combinator - guess-combinator
- gulcii - gulcii
- gw - gw
@ -1942,7 +1943,6 @@ broken-packages:
- hactor - hactor
- hactors - hactors
- haddock-api - haddock-api
- haddock-cheatsheet
- haddock-leksah - haddock-leksah
- haddock-test - haddock-test
- hadoop-formats - hadoop-formats
@ -1975,6 +1975,7 @@ broken-packages:
- HaLeX - HaLeX
- halfs - halfs
- half-space - half-space
- halide-haskell # failure in compileBuildDriverPhase in job https://hydra.nixos.org/build/212823532 at 2023-03-22
- halipeto - halipeto
- halive - halive
- halma - halma
@ -2246,6 +2247,7 @@ broken-packages:
- hfann - hfann
- HFitUI - HFitUI
- hfmt - hfmt
- hfoil # failure building library in job https://hydra.nixos.org/build/213500290 at 2023-03-26
- hfov - hfov
- HFrequencyQueue - HFrequencyQueue
- hfusion - hfusion
@ -2398,6 +2400,7 @@ broken-packages:
- hops - hops
- hoq - hoq
- horizon - horizon
- horizon-spec # dependency missing in job https://hydra.nixos.org/build/213500294 at 2023-03-26
- horname - horname
- hosc-json - hosc-json
- hosts-server - hosts-server
@ -3035,6 +3038,7 @@ broken-packages:
- leapseconds - leapseconds
- learn - learn
- Learning - Learning
- learn-physics-examples # dependency missing in job https://hydra.nixos.org/build/213500293 at 2023-03-26
- leetify - leetify
- lendingclub - lendingclub
- lens-datetime - lens-datetime
@ -3437,6 +3441,7 @@ broken-packages:
- money - money
- mongodb-queue - mongodb-queue
- monitor - monitor
- monocypher # failure in compileBuildDriverPhase in job https://hydra.nixos.org/build/212811942 at 2023-03-22
- mono-foldable - mono-foldable
- monoid - monoid
- monoid-absorbing - monoid-absorbing
@ -3455,6 +3460,7 @@ broken-packages:
- morphisms-objects - morphisms-objects
- morte - morte
- mortred - mortred
- mosaico-lib # dependency missing in job https://hydra.nixos.org/build/212818174 at 2023-03-22
- motor-reflection - motor-reflection
- mount - mount
- movie-monad - movie-monad
@ -4095,6 +4101,7 @@ broken-packages:
- pong-server - pong-server
- pontarius-xpmn - pontarius-xpmn
- pool - pool
- poolboy # test failure in job https://hydra.nixos.org/build/212819440 at 2023-03-26
- pool-conduit - pool-conduit
- pop3-client - pop3-client
- poppler - poppler
@ -5336,6 +5343,7 @@ broken-packages:
- th-pprint - th-pprint
- threadmanager - threadmanager
- threadscope - threadscope
- thread-supervisor # test failure in job https://hydra.nixos.org/build/214156434 at 2023-03-29
- threepenny-editors - threepenny-editors
- threepenny-gui-contextmenu - threepenny-gui-contextmenu
- threepenny-gui-flexbox - threepenny-gui-flexbox
@ -5929,6 +5937,7 @@ broken-packages:
- YamlReference - YamlReference
- yaml-rpc - yaml-rpc
- yaml-union - yaml-union
- yaml-unscrambler # dependency missing in job https://hydra.nixos.org/build/212821989 at 2023-03-22
- yampa2048 - yampa2048
- yampa-glfw - yampa-glfw
- yampa-gloss - yampa-gloss

View file

@ -44,13 +44,18 @@ default-package-overrides:
- shake-cabal < 0.2.2.3 - shake-cabal < 0.2.2.3
# needed as long as we have pandoc < 3.0, i.e. stackage lts 20 # needed as long as we have pandoc < 3.0, i.e. stackage lts 20
- pandoc-crossref < 0.3.15.0 - pandoc-crossref < 0.3.15.0
# Needs to match hspec which is tracked in stackage
- hspec-api < 2.10
extra-packages: extra-packages:
- Cabal == 2.2.* # required for jailbreak-cabal etc. - Cabal == 2.2.* # required for jailbreak-cabal etc.
- Cabal == 2.4.* # required for cabal-install etc. - Cabal == 2.4.* # required for cabal-install etc.
- Cabal == 3.2.* # required for cabal-install etc. - Cabal == 3.2.* # required for cabal2spec
- Cabal == 3.4.* # required for cabal-install etc. - Cabal == 3.4.* # required for cabal-install etc.
- Cabal == 3.6.* # required for cabal-install-parsers etc. - Cabal == 3.6.*
- Cabal-syntax == 3.8.* # required for cabal-install{,-parsers}
- Cabal == 3.8.* # required for cabal-install{,-parsers}
- directory == 1.3.7.* # required to build cabal-install 3.10.* with GHC 9.2
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729 - Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
- aeson < 2 # required by pantry-0.5.2 - aeson < 2 # required by pantry-0.5.2
- apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2 - apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2
@ -76,15 +81,18 @@ extra-packages:
- ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2 - ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2
- ghc-lib == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7 - ghc-lib == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7
- ghc-lib == 9.2.* # 2022-02-17: preserve for GHC 9.2 - ghc-lib == 9.2.* # 2022-02-17: preserve for GHC 9.2
- ghc-lib == 9.4.* # 2023-03-17: preserve for GHC 9.4
- ghc-lib-parser == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7 - ghc-lib-parser == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7
- ghc-lib-parser == 9.2.* # 2022-02-17: preserve for GHC 9.2 - ghc-lib-parser == 9.2.* # 2022-02-17: preserve for GHC 9.2
- ghc-lib-parser == 9.4.* # 2023-03-17: preserve for GHC 9.4
- ghc-lib-parser-ex == 8.10.* # 2022-02-17: preserve for GHC 8.10.7 - ghc-lib-parser-ex == 8.10.* # 2022-02-17: preserve for GHC 8.10.7
- ghc-lib-parser-ex == 9.2.* # 2022-07-13: preserve for GHC 9.2 - ghc-lib-parser-ex == 9.2.* # 2022-07-13: preserve for GHC 9.2
- ghc-lib-parser-ex >= 9.2.0.3 && < 9.2.1 # 2022-07-13: needed by hlint 3.4.1 - ghc-lib-parser-ex == 9.4.* # 2023-03-17: preserve for GHC 9.4
- haddock == 2.23.* # required on GHC < 8.10.x - haddock == 2.23.* # required on GHC < 8.10.x
- haddock-api == 2.23.* # required on GHC < 8.10.x - haddock-api == 2.23.* # required on GHC < 8.10.x
- haddock-library ==1.7.* # required by stylish-cabal-0.5.0.0 - haddock-library ==1.7.* # required by stylish-cabal-0.5.0.0
- happy == 1.19.12 # for ghcjs - happy == 1.19.12 # for ghcjs
- hermes-json == 0.2.* # 2023-03-22: for nix-output-monitor-2.0.0.5
- hinotify == 0.3.9 # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29 - hinotify == 0.3.9 # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
- hlint == 3.2.8 # 2022-09-21: needed for hls on ghc 8.8 - hlint == 3.2.8 # 2022-09-21: needed for hls on ghc 8.8
- hlint == 3.4.1 # 2022-09-21: needed for hls with ghc-lib-parser 9.2 - hlint == 3.4.1 # 2022-09-21: needed for hls with ghc-lib-parser 9.2
@ -553,6 +561,7 @@ supported-platforms:
hsignal: [ platforms.x86 ] # -msse2 hsignal: [ platforms.x86 ] # -msse2
HFuse: [ platforms.linux ] HFuse: [ platforms.linux ]
HQu: [ platforms.x86 ] # vendored C++ library needs i686/x86_64 HQu: [ platforms.x86 ] # vendored C++ library needs i686/x86_64
hs-swisstable-hashtables-class: [ platforms.x86_64 ] # depends on swisstable, which Needs AVX2
hw-prim-bits: [ platforms.x86 ] # x86 assembler hw-prim-bits: [ platforms.x86 ] # x86 assembler
inline-asm: [ platforms.x86 ] # x86 assembler inline-asm: [ platforms.x86 ] # x86 assembler
keid-core: [ x86_64-linux ] # geomancy (only x86), vulkan (no i686, no darwin, …) keid-core: [ x86_64-linux ] # geomancy (only x86), vulkan (no i686, no darwin, …)

View file

@ -1,4 +1,4 @@
# Stackage LTS 20.12 # Stackage LTS 20.14
# This file is auto-generated by # This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh # maintainers/scripts/haskell/update-stackage.sh
default-package-overrides: default-package-overrides:
@ -134,7 +134,7 @@ default-package-overrides:
- aws-xray-client-persistent ==0.1.0.5 - aws-xray-client-persistent ==0.1.0.5
- aws-xray-client-wai ==0.1.0.2 - aws-xray-client-wai ==0.1.0.2
- backtracking ==0.1.0 - backtracking ==0.1.0
- bank-holidays-england ==0.2.0.8 - bank-holidays-england ==0.2.0.9
- barbies ==2.0.4.0 - barbies ==2.0.4.0
- base16 ==0.3.2.1 - base16 ==0.3.2.1
- base16-bytestring ==1.0.2.0 - base16-bytestring ==1.0.2.0
@ -149,7 +149,7 @@ default-package-overrides:
- base-compat ==0.12.2 - base-compat ==0.12.2
- base-compat-batteries ==0.12.2 - base-compat-batteries ==0.12.2
- basement ==0.0.15 - basement ==0.0.15
- base-orphans ==0.8.7 - base-orphans ==0.8.8.2
- base-prelude ==1.6.1 - base-prelude ==1.6.1
- base-unicode-symbols ==0.2.4.2 - base-unicode-symbols ==0.2.4.2
- basic-prelude ==0.7.0 - basic-prelude ==0.7.0
@ -174,7 +174,7 @@ default-package-overrides:
- between ==0.11.0.0 - between ==0.11.0.0
- bhoogle ==0.1.4.2 - bhoogle ==0.1.4.2
- bibtex ==0.1.0.6 - bibtex ==0.1.0.6
- bifunctors ==5.5.14 - bifunctors ==5.5.15
- bimap ==0.5.0 - bimap ==0.5.0
- bimaps ==0.1.0.2 - bimaps ==0.1.0.2
- bimap-server ==0.1.0.1 - bimap-server ==0.1.0.1
@ -184,9 +184,9 @@ default-package-overrides:
- binaryen ==0.0.6.0 - binaryen ==0.0.6.0
- binary-generic-combinators ==0.4.4.0 - binary-generic-combinators ==0.4.4.0
- binary-ieee754 ==0.1.0.0 - binary-ieee754 ==0.1.0.0
- binary-instances ==1.0.3 - binary-instances ==1.0.4
- binary-list ==1.1.1.2 - binary-list ==1.1.1.2
- binary-orphans ==1.0.3 - binary-orphans ==1.0.4.1
- binary-parser ==0.5.7.3 - binary-parser ==0.5.7.3
- binary-search ==2.0.0 - binary-search ==2.0.0
- binary-shared ==0.8.3 - binary-shared ==0.8.3
@ -215,7 +215,7 @@ default-package-overrides:
- blaze-html ==0.9.1.2 - blaze-html ==0.9.1.2
- blaze-markup ==0.8.2.8 - blaze-markup ==0.8.2.8
- blaze-svg ==0.3.6.1 - blaze-svg ==0.3.6.1
- blaze-textual ==0.2.2.1 - blaze-textual ==0.2.3.1
- bloodhound ==0.21.0.0 - bloodhound ==0.21.0.0
- bm ==0.1.0.2 - bm ==0.1.0.2
- bmp ==1.2.6.3 - bmp ==1.2.6.3
@ -297,7 +297,7 @@ default-package-overrides:
- cairo ==0.13.8.2 - cairo ==0.13.8.2
- calendar-recycling ==0.0.0.1 - calendar-recycling ==0.0.0.1
- call-alloy ==0.4.0.2 - call-alloy ==0.4.0.2
- calligraphy ==0.1.3 - calligraphy ==0.1.4
- call-plantuml ==0.0.1.1 - call-plantuml ==0.0.1.1
- call-stack ==0.4.0 - call-stack ==0.4.0
- can-i-haz ==0.3.1.1 - can-i-haz ==0.3.1.1
@ -332,7 +332,7 @@ default-package-overrides:
- Chart ==1.9.4 - Chart ==1.9.4
- Chart-cairo ==1.9.3 - Chart-cairo ==1.9.3
- Chart-diagrams ==1.9.4 - Chart-diagrams ==1.9.4
- chart-svg ==0.3.2 - chart-svg ==0.3.3
- ChasingBottoms ==1.3.1.12 - ChasingBottoms ==1.3.1.12
- cheapskate ==0.1.1.2 - cheapskate ==0.1.1.2
- cheapskate-highlight ==0.1.0.0 - cheapskate-highlight ==0.1.0.0
@ -383,7 +383,7 @@ default-package-overrides:
- comfort-fftw ==0.0 - comfort-fftw ==0.0
- comfort-graph ==0.0.3.2 - comfort-graph ==0.0.3.2
- commonmark ==0.2.2 - commonmark ==0.2.2
- commonmark-extensions ==0.2.3.3 - commonmark-extensions ==0.2.3.4
- commonmark-pandoc ==0.2.1.3 - commonmark-pandoc ==0.2.1.3
- commutative ==0.0.2 - commutative ==0.0.2
- comonad ==5.0.8 - comonad ==5.0.8
@ -449,7 +449,7 @@ default-package-overrides:
- core-data ==0.3.9.0 - core-data ==0.3.9.0
- core-program ==0.6.5.0 - core-program ==0.6.5.0
- core-telemetry ==0.2.8.0 - core-telemetry ==0.2.8.0
- core-text ==0.3.8.0 - core-text ==0.3.8.1
- countable ==1.2 - countable ==1.2
- country ==0.2.3 - country ==0.2.3
- covariance ==0.2.0.1 - covariance ==0.2.0.1
@ -574,7 +574,7 @@ default-package-overrides:
- deriveJsonNoPrefix ==0.1.0.1 - deriveJsonNoPrefix ==0.1.0.1
- derive-topdown ==0.0.3.0 - derive-topdown ==0.0.3.0
- deriving-aeson ==0.2.9 - deriving-aeson ==0.2.9
- deriving-compat ==0.6.2 - deriving-compat ==0.6.3
- detour-via-sci ==1.0.0 - detour-via-sci ==1.0.0
- df1 ==0.4.1 - df1 ==0.4.1
- dhall ==1.41.2 - dhall ==1.41.2
@ -589,7 +589,7 @@ default-package-overrides:
- diagrams-contrib ==1.4.5 - diagrams-contrib ==1.4.5
- diagrams-core ==1.5.0.1 - diagrams-core ==1.5.0.1
- diagrams-lib ==1.4.5.2 - diagrams-lib ==1.4.5.2
- diagrams-postscript ==1.5.1 - diagrams-postscript ==1.5.1.1
- diagrams-rasterific ==1.4.2.2 - diagrams-rasterific ==1.4.2.2
- diagrams-solve ==0.1.3 - diagrams-solve ==0.1.3
- diagrams-svg ==1.4.3.1 - diagrams-svg ==1.4.3.1
@ -597,7 +597,7 @@ default-package-overrides:
- dictionary-sharing ==0.1.0.0 - dictionary-sharing ==0.1.0.0
- di-df1 ==1.2.1 - di-df1 ==1.2.1
- Diff ==0.4.1 - Diff ==0.4.1
- digest ==0.0.1.5 - digest ==0.0.1.6
- digits ==0.3.1 - digits ==0.3.1
- di-handle ==1.0.1 - di-handle ==1.0.1
- dimensional ==1.5 - dimensional ==1.5
@ -713,7 +713,7 @@ default-package-overrides:
- errors ==2.3.0 - errors ==2.3.0
- errors-ext ==0.4.2 - errors-ext ==0.4.2
- ersatz ==0.4.13 - ersatz ==0.4.13
- esqueleto ==3.5.8.2 - esqueleto ==3.5.9.0
- essence-of-live-coding ==0.2.7 - essence-of-live-coding ==0.2.7
- essence-of-live-coding-gloss ==0.2.7 - essence-of-live-coding-gloss ==0.2.7
- essence-of-live-coding-pulse ==0.2.7 - essence-of-live-coding-pulse ==0.2.7
@ -817,7 +817,7 @@ default-package-overrides:
- ForestStructures ==0.0.1.0 - ForestStructures ==0.0.1.0
- forkable-monad ==0.2.0.3 - forkable-monad ==0.2.0.3
- forma ==1.2.0 - forma ==1.2.0
- formatn ==0.2.1 - formatn ==0.2.2
- format-numbers ==0.1.0.1 - format-numbers ==0.1.0.1
- formatting ==7.1.3 - formatting ==7.1.3
- fortran-src ==0.12.0 - fortran-src ==0.12.0
@ -858,7 +858,7 @@ default-package-overrides:
- generic-constraints ==1.1.1.1 - generic-constraints ==1.1.1.1
- generic-data ==1.0.0.1 - generic-data ==1.0.0.1
- generic-data-surgery ==0.3.0.0 - generic-data-surgery ==0.3.0.0
- generic-deriving ==1.14.2 - generic-deriving ==1.14.3
- generic-functor ==1.1.0.0 - generic-functor ==1.1.0.0
- generic-lens ==2.2.1.0 - generic-lens ==2.2.1.0
- generic-lens-core ==2.2.1.0 - generic-lens-core ==2.2.1.0
@ -914,8 +914,8 @@ default-package-overrides:
- ghci-hexcalc ==0.1.1.0 - ghci-hexcalc ==0.1.1.0
- ghcjs-codemirror ==0.0.0.2 - ghcjs-codemirror ==0.0.0.2
- ghcjs-perch ==0.3.3.3 - ghcjs-perch ==0.3.3.3
- ghc-lib ==9.2.6.20230211 - ghc-lib ==9.2.7.20230228
- ghc-lib-parser ==9.2.6.20230211 - ghc-lib-parser ==9.2.7.20230228
- ghc-lib-parser-ex ==9.2.0.4 - ghc-lib-parser-ex ==9.2.0.4
- ghc-parser ==0.2.4.0 - ghc-parser ==0.2.4.0
- ghc-paths ==0.1.0.12 - ghc-paths ==0.1.0.12
@ -978,7 +978,7 @@ default-package-overrides:
- GLUT ==2.7.0.16 - GLUT ==2.7.0.16
- gmail-simple ==0.1.0.4 - gmail-simple ==0.1.0.4
- gnuplot ==0.5.7 - gnuplot ==0.5.7
- goldplate ==0.2.0 - goldplate ==0.2.1.1
- google-isbn ==1.0.3 - google-isbn ==1.0.3
- gopher-proxy ==0.1.1.3 - gopher-proxy ==0.1.1.3
- gotyno-hs ==1.1.0 - gotyno-hs ==1.1.0
@ -1028,7 +1028,7 @@ default-package-overrides:
- hashmap ==1.3.3 - hashmap ==1.3.3
- hashtables ==1.3.1 - hashtables ==1.3.1
- haskeline ==0.8.2.1 - haskeline ==0.8.2.1
- haskell-gi ==0.26.2 - haskell-gi ==0.26.3
- haskell-gi-base ==0.26.3 - haskell-gi-base ==0.26.3
- haskell-gi-overloading ==1.0 - haskell-gi-overloading ==1.0
- haskell-lexer ==1.1.1 - haskell-lexer ==1.1.1
@ -1046,7 +1046,7 @@ default-package-overrides:
- hasktags ==0.72.0 - hasktags ==0.72.0
- hasql ==1.6.3 - hasql ==1.6.3
- hasql-dynamic-statements ==0.3.1.2 - hasql-dynamic-statements ==0.3.1.2
- hasql-implicits ==0.1.0.5 - hasql-implicits ==0.1.1
- hasql-migration ==0.3.0 - hasql-migration ==0.3.0
- hasql-notifications ==0.2.0.3 - hasql-notifications ==0.2.0.3
- hasql-optparse-applicative ==0.5 - hasql-optparse-applicative ==0.5
@ -1206,7 +1206,7 @@ default-package-overrides:
- HsYAML-aeson ==0.2.0.1 - HsYAML-aeson ==0.2.0.1
- hsyslog ==5.0.2 - hsyslog ==5.0.2
- htaglib ==1.2.0 - htaglib ==1.2.0
- HTF ==0.15.0.0 - HTF ==0.15.0.1
- html ==1.0.1.2 - html ==1.0.1.2
- html-conduit ==1.3.2.2 - html-conduit ==1.3.2.2
- html-email-validate ==0.2.0.0 - html-email-validate ==0.2.0.0
@ -1309,7 +1309,7 @@ default-package-overrides:
- indexed-list-literals ==0.2.1.3 - indexed-list-literals ==0.2.1.3
- indexed-profunctors ==0.1.1 - indexed-profunctors ==0.1.1
- indexed-traversable ==0.1.2 - indexed-traversable ==0.1.2
- indexed-traversable-instances ==0.1.1.1 - indexed-traversable-instances ==0.1.1.2
- infer-license ==0.2.0 - infer-license ==0.2.0
- inflections ==0.4.0.6 - inflections ==0.4.0.6
- influxdb ==1.9.2.2 - influxdb ==1.9.2.2
@ -1333,7 +1333,7 @@ default-package-overrides:
- IntervalMap ==0.6.2.0 - IntervalMap ==0.6.2.0
- intervals ==0.9.2 - intervals ==0.9.2
- intset-imperative ==0.1.0.0 - intset-imperative ==0.1.0.0
- invariant ==0.6 - invariant ==0.6.1
- invert ==1.0.0.2 - invert ==1.0.0.2
- invertible-grammar ==0.1.3.3 - invertible-grammar ==0.1.3.3
- io-machine ==0.2.0.0 - io-machine ==0.2.0.0
@ -1440,6 +1440,7 @@ default-package-overrides:
- leancheck ==0.9.12 - leancheck ==0.9.12
- leancheck-instances ==0.0.5 - leancheck-instances ==0.0.5
- leapseconds-announced ==2017.1.0.1 - leapseconds-announced ==2017.1.0.1
- learn-physics ==0.6.5
- leb128-cereal ==1.2 - leb128-cereal ==1.2
- lens ==5.1.1 - lens ==5.1.1
- lens-action ==0.2.6 - lens-action ==0.2.6
@ -1452,7 +1453,7 @@ default-package-overrides:
- lens-properties ==4.11.1 - lens-properties ==4.11.1
- lens-regex ==0.1.3 - lens-regex ==0.1.3
- lens-regex-pcre ==1.1.0.0 - lens-regex-pcre ==1.1.0.0
- lentil ==1.5.4.2 - lentil ==1.5.5.0
- LetsBeRational ==1.0.0.0 - LetsBeRational ==1.0.0.0
- leveldb-haskell ==0.6.5 - leveldb-haskell ==0.6.5
- lexer-applicative ==2.1.0.2 - lexer-applicative ==2.1.0.2
@ -1712,7 +1713,7 @@ default-package-overrides:
- netwire ==5.0.3 - netwire ==5.0.3
- netwire-input ==0.0.7 - netwire-input ==0.0.7
- netwire-input-glfw ==0.0.11 - netwire-input-glfw ==0.0.11
- network ==3.1.2.7 - network ==3.1.2.8
- network-bsd ==2.8.1.0 - network-bsd ==2.8.1.0
- network-byte-order ==0.1.6 - network-byte-order ==0.1.6
- network-conduit-tls ==1.3.2 - network-conduit-tls ==1.3.2
@ -1747,6 +1748,7 @@ default-package-overrides:
- non-negative ==0.1.2 - non-negative ==0.1.2
- normaldistribution ==1.1.0.3 - normaldistribution ==1.1.0.3
- normalization-insensitive ==2.0.2 - normalization-insensitive ==2.0.2
- not-gloss ==0.7.7.0
- no-value ==1.0.0.0 - no-value ==1.0.0.0
- nowdoc ==0.1.1.0 - nowdoc ==0.1.1.0
- nqe ==0.6.4 - nqe ==0.6.4
@ -1756,9 +1758,9 @@ default-package-overrides:
- numeric-limits ==0.1.0.0 - numeric-limits ==0.1.0.0
- numeric-prelude ==0.4.4 - numeric-prelude ==0.4.4
- numeric-quest ==0.2.0.2 - numeric-quest ==0.2.0.2
- numhask ==0.10.1.0 - numhask ==0.10.1.1
- numhask-array ==0.10.1 - numhask-array ==0.10.2
- numhask-space ==0.10.0.0 - numhask-space ==0.10.0.1
- NumInstances ==1.4 - NumInstances ==1.4
- numtype-dk ==0.5.0.3 - numtype-dk ==0.5.0.3
- nuxeo ==0.3.2 - nuxeo ==0.3.2
@ -1886,7 +1888,7 @@ default-package-overrides:
- persistent-mongoDB ==2.13.0.1 - persistent-mongoDB ==2.13.0.1
- persistent-mysql ==2.13.1.4 - persistent-mysql ==2.13.1.4
- persistent-pagination ==0.1.1.2 - persistent-pagination ==0.1.1.2
- persistent-postgresql ==2.13.5.1 - persistent-postgresql ==2.13.5.2
- persistent-qq ==2.12.0.2 - persistent-qq ==2.12.0.2
- persistent-redis ==2.13.0.1 - persistent-redis ==2.13.0.1
- persistent-refs ==0.4 - persistent-refs ==0.4
@ -2044,7 +2046,7 @@ default-package-overrides:
- quickcheck-classes ==0.6.5.0 - quickcheck-classes ==0.6.5.0
- quickcheck-classes-base ==0.6.2.0 - quickcheck-classes-base ==0.6.2.0
- quickcheck-higherorder ==0.1.0.1 - quickcheck-higherorder ==0.1.0.1
- quickcheck-instances ==0.3.28 - quickcheck-instances ==0.3.29.1
- quickcheck-io ==0.2.0 - quickcheck-io ==0.2.0
- quickcheck-simple ==0.1.1.1 - quickcheck-simple ==0.1.1.1
- quickcheck-special ==0.1.0.6 - quickcheck-special ==0.1.0.6
@ -2091,13 +2093,12 @@ default-package-overrides:
- reactive-banana ==1.3.2.0 - reactive-banana ==1.3.2.0
- read-editor ==0.1.0.2 - read-editor ==0.1.0.2
- read-env-var ==1.0.0.0 - read-env-var ==1.0.0.0
- reanimate-svg ==0.13.0.1
- rebase ==1.16.1 - rebase ==1.16.1
- rec-def ==0.2.1 - rec-def ==0.2.1
- record-dot-preprocessor ==0.2.15 - record-dot-preprocessor ==0.2.16
- record-hasfield ==1.0 - record-hasfield ==1.0
- rec-smallarray ==0.1.0.0 - rec-smallarray ==0.1.0.0
- recursion-schemes ==5.2.2.3 - recursion-schemes ==5.2.2.4
- recv ==0.0.0 - recv ==0.0.0
- redact ==0.4.0.0 - redact ==0.4.0.0
- reddit-scrape ==0.0.1 - reddit-scrape ==0.0.1
@ -2106,7 +2107,7 @@ default-package-overrides:
- refact ==0.3.0.2 - refact ==0.3.0.2
- ref-fd ==0.5 - ref-fd ==0.5
- refined ==0.8 - refined ==0.8
- reflection ==2.1.6 - reflection ==2.1.7
- reform ==0.2.7.5 - reform ==0.2.7.5
- reform-blaze ==0.2.4.4 - reform-blaze ==0.2.4.4
- reform-hamlet ==0.0.5.3 - reform-hamlet ==0.0.5.3
@ -2375,6 +2376,7 @@ default-package-overrides:
- sox ==0.2.3.2 - sox ==0.2.3.2
- spacecookie ==1.0.0.2 - spacecookie ==1.0.0.2
- sparse-linear-algebra ==0.3.1 - sparse-linear-algebra ==0.3.1
- spatial-math ==0.2.7.0
- spdx ==1.0.0.3 - spdx ==1.0.0.3
- special-values ==0.1.0.0 - special-values ==0.1.0.0
- speculate ==0.4.14 - speculate ==0.4.14
@ -2419,7 +2421,7 @@ default-package-overrides:
- stitch ==0.6.0.0 - stitch ==0.6.0.0
- stm-chans ==3.0.0.6 - stm-chans ==3.0.0.6
- stm-conduit ==4.0.1 - stm-conduit ==4.0.1
- stm-containers ==1.2 - stm-containers ==1.2.0.2
- stm-delay ==0.1.1.1 - stm-delay ==0.1.1.1
- stm-extras ==0.1.0.3 - stm-extras ==0.1.0.3
- stm-hamt ==1.2.0.9 - stm-hamt ==1.2.0.9
@ -2600,8 +2602,8 @@ default-package-overrides:
- text-regex-replace ==0.1.1.5 - text-regex-replace ==0.1.1.5
- text-rope ==0.2 - text-rope ==0.2
- text-short ==0.1.5 - text-short ==0.1.5
- text-show ==3.10 - text-show ==3.10.2
- text-show-instances ==3.9.4 - text-show-instances ==3.9.5
- text-zipper ==0.12 - text-zipper ==0.12
- tfp ==1.0.2 - tfp ==1.0.2
- tf-random ==0.5 - tf-random ==0.5
@ -2619,7 +2621,7 @@ default-package-overrides:
- th-expand-syns ==0.4.11.0 - th-expand-syns ==0.4.11.0
- th-extras ==0.0.0.6 - th-extras ==0.0.0.6
- th-lego ==0.3.0.2 - th-lego ==0.3.0.2
- th-lift ==0.8.2 - th-lift ==0.8.3
- th-lift-instances ==0.1.20 - th-lift-instances ==0.1.20
- th-nowq ==0.1.0.5 - th-nowq ==0.1.0.5
- th-orphans ==0.13.14 - th-orphans ==0.13.14
@ -2704,7 +2706,7 @@ default-package-overrides:
- twitter-types ==0.11.0 - twitter-types ==0.11.0
- twitter-types-lens ==0.11.0 - twitter-types-lens ==0.11.0
- typecheck-plugin-nat-simple ==0.1.0.7 - typecheck-plugin-nat-simple ==0.1.0.7
- typed-process ==0.2.10.1 - typed-process ==0.2.11.0
- typed-uuid ==0.2.0.0 - typed-uuid ==0.2.0.0
- type-equality ==1 - type-equality ==1
- type-errors ==0.2.0.1 - type-errors ==0.2.0.1
@ -2767,7 +2769,7 @@ default-package-overrides:
- unix-compat ==0.5.4 - unix-compat ==0.5.4
- unix-time ==0.4.8 - unix-time ==0.4.8
- unjson ==0.15.4 - unjson ==0.15.4
- unliftio ==0.2.23.0 - unliftio ==0.2.24.0
- unliftio-core ==0.2.1.0 - unliftio-core ==0.2.1.0
- unliftio-path ==0.0.2.0 - unliftio-path ==0.0.2.0
- unliftio-pool ==0.2.2.0 - unliftio-pool ==0.2.2.0
@ -2900,7 +2902,7 @@ default-package-overrides:
- Win32-notify ==0.3.0.3 - Win32-notify ==0.3.0.3
- windns ==0.1.0.1 - windns ==0.1.0.1
- witch ==1.1.6.1 - witch ==1.1.6.1
with-compiler: ghc-9.2.6 with-compiler: ghc-9.2.7
- withdependencies ==0.3.0 - withdependencies ==0.3.0
- witherable ==0.4.2 - witherable ==0.4.2
- within ==0.2.0.1 - within ==0.2.0.1
@ -2918,7 +2920,7 @@ with-compiler: ghc-9.2.6
- word-wrap ==0.5 - word-wrap ==0.5
- world-peace ==1.0.2.0 - world-peace ==1.0.2.0
- wrap ==0.0.0 - wrap ==0.0.0
- wreq ==0.5.3.3 - wreq ==0.5.4.0
- wreq-stringless ==0.5.9.1 - wreq-stringless ==0.5.9.1
- writer-cps-exceptions ==0.1.0.1 - writer-cps-exceptions ==0.1.0.1
- writer-cps-mtl ==0.1.1.6 - writer-cps-mtl ==0.1.1.6
@ -2970,12 +2972,12 @@ with-compiler: ghc-9.2.6
- yeshql-core ==4.2.0.0 - yeshql-core ==4.2.0.0
- yesod ==1.6.2.1 - yesod ==1.6.2.1
- yesod-alerts ==0.1.3.0 - yesod-alerts ==0.1.3.0
- yesod-auth ==1.6.11 - yesod-auth ==1.6.11.1
- yesod-auth-basic ==0.1.0.3 - yesod-auth-basic ==0.1.0.3
- yesod-auth-hashdb ==1.7.1.7 - yesod-auth-hashdb ==1.7.1.7
- yesod-auth-oauth2 ==0.7.0.3 - yesod-auth-oauth2 ==0.7.0.3
- yesod-bin ==1.6.2.2 - yesod-bin ==1.6.2.2
- yesod-core ==1.6.24.1 - yesod-core ==1.6.24.2
- yesod-eventsource ==1.6.0.1 - yesod-eventsource ==1.6.0.1
- yesod-fb ==0.6.1 - yesod-fb ==0.6.1
- yesod-form ==1.7.4 - yesod-form ==1.7.4
@ -3006,7 +3008,7 @@ with-compiler: ghc-9.2.6
- zim-parser ==0.2.1.0 - zim-parser ==0.2.1.0
- zio ==0.1.0.2 - zio ==0.1.0.2
- zip ==1.7.2 - zip ==1.7.2
- zip-archive ==0.4.2.2 - zip-archive ==0.4.3
- zipper-extra ==0.1.3.2 - zipper-extra ==0.1.3.2
- zippers ==0.3.2 - zippers ==0.3.2
- zip-stream ==0.2.2.0 - zip-stream ==0.2.2.0

View file

@ -247,7 +247,6 @@ dont-distribute-packages:
- KiCS-debugger - KiCS-debugger
- KiCS-prophecy - KiCS-prophecy
- LDAPv3 - LDAPv3
- LPFP
- LPPaver - LPPaver
- LambdaHack - LambdaHack
- LambdaINet - LambdaINet
@ -679,7 +678,7 @@ dont-distribute-packages:
- ascii-superset_1_3_0_0 - ascii-superset_1_3_0_0
- ascii-table - ascii-table
- ascii-th_1_2_0_0 - ascii-th_1_2_0_0
- ascii_1_6_0_0 - ascii_1_7_0_0
- asic - asic
- asil - asil
- assert4hs-hspec - assert4hs-hspec
@ -741,6 +740,7 @@ dont-distribute-packages:
- babylon - babylon
- backblaze-b2-hs - backblaze-b2-hs
- backdropper - backdropper
- balkon
- ballast - ballast
- bamboo - bamboo
- bamboo-launcher - bamboo-launcher
@ -1285,6 +1285,9 @@ dont-distribute-packages:
- dobutokO3 - dobutokO3
- dobutokO4 - dobutokO4
- doc-review - doc-review
- domain
- domain-aeson
- domain-cereal
- domaindriven - domaindriven
- dormouse-client - dormouse-client
- dovetail - dovetail
@ -2132,7 +2135,6 @@ dont-distribute-packages:
- hexpat-iteratee - hexpat-iteratee
- hfd - hfd
- hfiar - hfiar
- hfoil
- hfractal - hfractal
- hgalib - hgalib
- hgen - hgen
@ -2200,7 +2202,6 @@ dont-distribute-packages:
- hoppy-runtime - hoppy-runtime
- hoppy-std - hoppy-std
- horizon-gen-nix - horizon-gen-nix
- horizon-spec
- horizon-spec-lens - horizon-spec-lens
- horizon-spec-pretty - horizon-spec-pretty
- hotswap - hotswap
@ -2570,8 +2571,6 @@ dont-distribute-packages:
- ldapply - ldapply
- leaky - leaky
- lean - lean
- learn-physics
- learn-physics-examples
- learning-hmm - learning-hmm
- legion - legion
- legion-discovery - legion-discovery
@ -2937,8 +2936,6 @@ dont-distribute-packages:
- nomyx-library - nomyx-library
- nomyx-server - nomyx-server
- nonlinear-optimization-backprop - nonlinear-optimization-backprop
- not-gloss
- not-gloss-examples
- notmuch-web - notmuch-web
- now-haskell - now-haskell
- nri-env-parser - nri-env-parser
@ -3073,6 +3070,10 @@ dont-distribute-packages:
- peyotls - peyotls
- peyotls-codec - peyotls-codec
- pg-entity - pg-entity
- phladiprelio-general-shared
- phladiprelio-general-simple
- phladiprelio-ukrainian-shared
- phladiprelio-ukrainian-simple
- phonetic-languages-common - phonetic-languages-common
- phonetic-languages-constraints - phonetic-languages-constraints
- phonetic-languages-examples - phonetic-languages-examples
@ -3129,7 +3130,12 @@ dont-distribute-packages:
- polh-lexicon - polh-lexicon
- polydata - polydata
- polysemy-RandomFu - polysemy-RandomFu
- polysemy-account
- polysemy-account-api
- polysemy-conc - polysemy-conc
- polysemy-db
- polysemy-hasql
- polysemy-hasql-test
- polysemy-http - polysemy-http
- polysemy-log - polysemy-log
- polysemy-log-co - polysemy-log-co
@ -3692,7 +3698,7 @@ dont-distribute-packages:
- sparser - sparser
- spartacon - spartacon
- spata - spata
- spatial-math - spatial-math_0_5_0_1
- specialize-th - specialize-th
- spectral-clustering - spectral-clustering
- speculation-transformers - speculation-transformers
@ -3708,6 +3714,7 @@ dont-distribute-packages:
- sproxy - sproxy
- sproxy-web - sproxy-web
- sproxy2 - sproxy2
- sqel
- sql-simple-mysql - sql-simple-mysql
- sql-simple-pool - sql-simple-pool
- sql-simple-postgresql - sql-simple-postgresql
@ -4287,6 +4294,7 @@ dont-distribute-packages:
- zerobin - zerobin
- zeromq3-conduit - zeromq3-conduit
- zeroth - zeroth
- zeugma
- zifter-cabal - zifter-cabal
- zifter-git - zifter-git
- zifter-google-java-format - zifter-google-java-format

View file

@ -359,6 +359,13 @@ self: super: builtins.intersectAttrs super {
preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"''; preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"'';
}) super.ghcide; }) super.ghcide;
# Tests execute goldplate
goldplate = overrideCabal (drv: {
preCheck = drv.preCheck or "" + ''
export PATH="$PWD/dist/build/goldplate:$PATH"
'';
}) super.goldplate;
# At least on 1.3.4 version on 32-bit architectures tasty requires # At least on 1.3.4 version on 32-bit architectures tasty requires
# unbounded-delays via .cabal file conditions. # unbounded-delays via .cabal file conditions.
tasty = overrideCabal (drv: { tasty = overrideCabal (drv: {
@ -910,7 +917,7 @@ self: super: builtins.intersectAttrs super {
hercules-ci-agent = super.hercules-ci-agent.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; }; hercules-ci-agent = super.hercules-ci-agent.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; };
hercules-ci-cnix-expr = addTestToolDepend pkgs.git (super.hercules-ci-cnix-expr.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; }); hercules-ci-cnix-expr = addTestToolDepend pkgs.git (super.hercules-ci-cnix-expr.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; });
hercules-ci-cnix-store = (super.hercules-ci-cnix-store.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; }).overrideAttrs (_: { hercules-ci-cnix-store = (super.hercules-ci-cnix-store.override { nix = self.hercules-ci-cnix-store.passthru.nixPackage; }).overrideAttrs (_: {
passthru.nixPackage = pkgs.nixVersions.nix_2_12; passthru.nixPackage = pkgs.nixVersions.nix_2_14;
}); });
# the testsuite fails because of not finding tsc without some help # the testsuite fails because of not finding tsc without some help
@ -1075,14 +1082,6 @@ self: super: builtins.intersectAttrs super {
# Wants to execute cabal-install to (re-)build itself # Wants to execute cabal-install to (re-)build itself
hint = dontCheck super.hint; hint = dontCheck super.hint;
# Make sure that Cabal 3.8.* can be built as-is
Cabal_3_8_1_0 = doDistribute (super.Cabal_3_8_1_0.override ({
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
} // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") {
# Use process core package when possible
process = self.process_1_6_17_0;
}));
# cabal-install switched to build type simple in 3.2.0.0 # cabal-install switched to build type simple in 3.2.0.0
# as a result, the cabal(1) man page is no longer installed # as a result, the cabal(1) man page is no longer installed
# automatically. Instead we need to use the `cabal man` # automatically. Instead we need to use the `cabal man`

File diff suppressed because it is too large Load diff

View file

@ -16,6 +16,14 @@ stdenv.mkDerivation rec {
hash = "sha256-9571d3k8RkzEpMWPuIejZ7njLmYstSwFUaSqT3sk6uQ="; hash = "sha256-9571d3k8RkzEpMWPuIejZ7njLmYstSwFUaSqT3sk6uQ=";
}; };
# Don't search for non-existant gumbo cmake config
# This will mislead cmake that litehtml is not found
# Affects build of pkgs that depend on litehtml
postPatch = ''
substituteInPlace cmake/litehtmlConfig.cmake \
--replace "find_dependency(gumbo)" ""
'';
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
]; ];

View file

@ -8,7 +8,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "fastcore"; pname = "fastcore";
version = "1.5.28"; version = "1.5.29";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "fastai"; owner = "fastai";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-PSqwpDTzEaBXH77c64yv1s2TvQyIiz6It9cgjnCmrhY="; hash = "sha256-yCPOF150TdkPHfLl8Jo2oow+91IzRKgnXo3eQMn5wK0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -34,6 +34,7 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Python module for Fast AI"; description = "Python module for Fast AI";
homepage = "https://github.com/fastai/fastcore"; homepage = "https://github.com/fastai/fastcore";
changelog = "https://github.com/fastai/fastcore/blob/${version}/CHANGELOG.md";
license = with licenses; [ asl20 ]; license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View file

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "yalexs-ble"; pname = "yalexs-ble";
version = "2.1.12"; version = "2.1.14";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "bdraco"; owner = "bdraco";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-+Kae+mqx4ySXX8FlpVPdbXOJ3IsYfgdm7mM5V8f9JOI="; hash = "sha256-aTtcp6u+/fPHRB/FShdzfCv5haja+Vyo/WLm7GLvadw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "goresym"; pname = "goresym";
version = "2.1.1"; version = "2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mandiant"; owner = "mandiant";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Tf/oD0f8XLG2CuiQvduVberzWSetojVRBrSd83snK5Q="; sha256 = "sha256-he71OrOIZ75Z4S3mf7AuQsupnLu/rsLGV2DRXyxRGS4=";
}; };
subPackages = [ "." ]; subPackages = [ "." ];

View file

@ -6,16 +6,16 @@
buildGoModule rec { buildGoModule rec {
pname = "oh-my-posh"; pname = "oh-my-posh";
version = "14.14.3"; version = "14.22.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jandedobbeleer"; owner = "jandedobbeleer";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Rxsc77M30aDuDgOtXWF2sQkzv2Xv4sxZ5JlkaqO/AbI="; hash = "sha256-kyASLWzjTFc10XWDLbc66+kaXjBaYmlgBc0Y8fF23Jk=";
}; };
vendorHash = "sha256-eMmp67B2udc8mhpVq2nHX+v1l1h3dXvjVXenZqCA6m4="; vendorHash = "sha256-MM6WwEs2BMkfpTsDFIqwpIROMs8zbbT5OsP6FXwRvy8=";
sourceRoot = "source/src"; sourceRoot = "source/src";

View file

@ -3,16 +3,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "railway"; pname = "railway";
version = "3.0.13"; version = "3.0.18";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "railwayapp"; owner = "railwayapp";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-ZLzIbA/eIu8cP9F6xSl8exFXDuyw7cYLAy0Zg+dJEzw="; hash = "sha256-CL75WefdcBmGSoqReHM2eecsQPcciRfat7ULhc4TfV4=";
}; };
cargoHash = "sha256-1CqGs1pT/QaA+fFfuhP/O74wpFeVCHFsubIIo+UVLf8="; cargoHash = "sha256-/uiz7dmuuByS99y7rXwyCtFGIR+DIenky4dusJCMFZg=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];

View file

@ -1,17 +1,18 @@
{ lib, rustPlatform, fetchFromGitHub }: { lib
, rustPlatform
, fetchCrate
}:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-all-features"; pname = "cargo-all-features";
version = "1.7.0"; version = "1.9.0";
src = fetchFromGitHub { src = fetchCrate {
owner = "frewsxcv"; inherit pname version;
repo = pname; hash = "sha256-OLnz1SmMLs/yats/lZugqNUlBQHSNR1bOuEmnHGdoN8=";
rev = version;
sha256 = "sha256-p9UQaqytqpD2u9X9zaTPIgVEloU2UbD/AxVERNs1Lt8=";
}; };
cargoSha256 = "sha256-krtuLFQlInqdv7j8v13/X3lL0JdaMsApb9Ga5muThgw="; cargoHash = "sha256-Gg5tF8IvbtIoqR0AKRS7IbcCNOCJO8oxwX0KkUr+l/M=";
meta = with lib; { meta = with lib; {
description = "A Cargo subcommand to build and test all feature flag combinations"; description = "A Cargo subcommand to build and test all feature flag combinations";

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-vet"; pname = "cargo-vet";
version = "0.5.2"; version = "0.6.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mozilla"; owner = "mozilla";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-+Qbq3EARedsaPtSTfR/UCC/1p0b/QmvriG2AIyx8coo="; sha256 = "sha256-PAqpVixBdytHvSUu03OyoA1QGBxmmoeV78x6wCiCemQ=";
}; };
cargoSha256 = "sha256-Vij4vq+04fLpbcDpYVMBVl3QNVZprUYcVLB28mrjUOg="; cargoSha256 = "sha256-dsaDpDa/BNqnL3K4a1mg3uEyM094/UO73MzJD9YaAwE=";
buildInputs = lib.optional stdenv.isDarwin Security; buildInputs = lib.optional stdenv.isDarwin Security;

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "notify_push"; pname = "notify_push";
version = "0.6.1"; version = "0.6.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nextcloud"; owner = "nextcloud";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-0quQmi+SFNVlDFUWJYM2WgOCi22KJ/eBLvxBl9+M3g4="; hash = "sha256-YCIXpCNKqdCSvq7CSPSwoPc2gpCnnda8S7I4FzpezMc=";
}; };
cargoHash = "sha256-jZC71OCexTGVq/CguMiDHIbF7QaulIzUaZW2d0x98nw="; cargoHash = "sha256-l6gMz/iJeLl+RLjOiR9U1m6V/rK+RWM84bQiz4jCFtY=";
passthru = { passthru = {
test_client = rustPlatform.buildRustPackage { test_client = rustPlatform.buildRustPackage {
@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
buildAndTestSubdir = "test_client"; buildAndTestSubdir = "test_client";
cargoHash = "sha256-a8KcWnHr1bCS255ChOC6piXfVo/nJy/yVHNLCuHXoq4="; cargoHash = "sha256-4jQvlxU3S3twTpiLab8BXC6ZSPSWN6ftK3GzfKnjHSE=";
}; };
}; };

View file

@ -5,15 +5,15 @@
, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }: , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2023-03-12"; version = "2023-03-28";
pname = "oh-my-zsh"; pname = "oh-my-zsh";
rev = "72732a224e886933df6b64a49ec6f5e94c884612"; rev = "fcbdc330ff50617c8b84d39ce069cc75df41108f";
src = fetchFromGitHub { src = fetchFromGitHub {
inherit rev; inherit rev;
owner = "ohmyzsh"; owner = "ohmyzsh";
repo = "ohmyzsh"; repo = "ohmyzsh";
sha256 = "L3cItc1DWNE3MRRlJC9mbOwqA1JuD6k8gqrJc7XpJkk="; sha256 = "MadBDgV3a4jOB5vmUVT4WUDJavQEQVjSYTmGUOApQ/s=";
}; };
strictDeps = true; strictDeps = true;

View file

@ -5,6 +5,7 @@
, snapshotPath , snapshotPath
, autoPatchelfHook , autoPatchelfHook
, python3 , python3
, libxcrypt-legacy
, ... , ...
}: }:
@ -167,6 +168,9 @@ let
] ++ lib.optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
autoPatchelfHook autoPatchelfHook
]; ];
buildInputs = [
libxcrypt-legacy
];
passthru = { passthru = {
dependencies = filterForSystem dependencies; dependencies = filterForSystem dependencies;
}; };

View file

@ -8,16 +8,16 @@
buildGoModule rec { buildGoModule rec {
pname = "qovery-cli"; pname = "qovery-cli";
version = "0.55.0"; version = "0.55.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Qovery"; owner = "Qovery";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-3MiKivewGl4J/yQJ+wLTwh8w6HO8XuX9/b6mwtbvW3o="; hash = "sha256-/KWkU9IpUWhVOyiNkYg98PSltS97XNWXaz9haN11Dac=";
}; };
vendorHash = "sha256-V7yPXSN+3H8NkD384MkvKbymNQ/O2Q9HoMO4M8mzVto="; vendorHash = "sha256-1krHpwjs4kGhPMBF5j3iqUBo8TGKs1h+nDCmDmviPu4=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -3,6 +3,7 @@
expect, expect,
haskellPackages, haskellPackages,
installShellFiles, installShellFiles,
lib
}: let }: let
inherit (haskell.lib.compose) justStaticExecutables overrideCabal; inherit (haskell.lib.compose) justStaticExecutables overrideCabal;
overrides = { overrides = {
@ -17,7 +18,14 @@
''; '';
mainProgram = "nom"; mainProgram = "nom";
}; };
nom-pkg = haskellPackages.callPackage ./generated-package.nix { };
nom-pkg-with-scope = nom-pkg.overrideScope (hfinal: hprev: {
hermes-json = hfinal.hermes-json_0_2_0_1;
});
in in
justStaticExecutables lib.pipe
(overrideCabal overrides nom-pkg-with-scope
(haskellPackages.callPackage ./generated-package.nix {})) [
(overrideCabal overrides)
justStaticExecutables
]

View file

@ -30894,6 +30894,8 @@ with pkgs;
ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { }; ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { };
identity = callPackage ../applications/graphics/identity { };
ifenslave = callPackage ../os-specific/linux/ifenslave { }; ifenslave = callPackage ../os-specific/linux/ifenslave { };
ii = callPackage ../applications/networking/irc/ii { ii = callPackage ../applications/networking/irc/ii {
@ -32627,7 +32629,9 @@ with pkgs;
enableDbusUi = false; enableDbusUi = false;
}; };
parsec-bin = callPackage ../applications/misc/parsec/bin.nix { }; parsec-bin = callPackage ../applications/misc/parsec/bin.nix {
ffmpeg = ffmpeg_4;
};
pavucontrol = callPackage ../applications/audio/pavucontrol { }; pavucontrol = callPackage ../applications/audio/pavucontrol { };

View file

@ -43,6 +43,19 @@ let
) jobList; ) jobList;
# names of all subsets of `pkgs.haskell.packages` # names of all subsets of `pkgs.haskell.packages`
#
# compilerNames looks like the following:
#
# ```
# {
# ghc810 = "ghc810";
# ghc8102Binary = "ghc8102Binary";
# ghc8102BinaryMinimal = "ghc8102BinaryMinimal";
# ghc8107 = "ghc8107";
# ghc924 = "ghc924";
# ...
# }
# ```
compilerNames = lib.mapAttrs (name: _: name) pkgs.haskell.packages; compilerNames = lib.mapAttrs (name: _: name) pkgs.haskell.packages;
# list of all compilers to test specific packages on # list of all compilers to test specific packages on
@ -55,9 +68,26 @@ let
ghc926 ghc926
ghc927 ghc927
ghc944 ghc944
ghc961
]; ];
# packagePlatforms applied to `haskell.packages.*` # packagePlatforms applied to `haskell.packages.*`
#
# This returns an attr set that looks like the following, where each Haskell
# package in the compiler attr set has its list of supported platforms as its
# value.
#
# ```
# {
# ghc810 = {
# conduit = [ ... ];
# lens = [ "i686-cygwin" "x86_64-cygwin" ... "x86_64-windows" "i686-windows" ]
# ...
# };
# ghc902 = { ... };
# ...
# }
# ```
compilerPlatforms = lib.mapAttrs compilerPlatforms = lib.mapAttrs
(_: v: packagePlatforms v) (_: v: packagePlatforms v)
pkgs.haskell.packages; pkgs.haskell.packages;
@ -65,16 +95,86 @@ let
# This function lets you specify specific packages # This function lets you specify specific packages
# which are to be tested on a list of specific GHC # which are to be tested on a list of specific GHC
# versions and returns a job set for all specified # versions and returns a job set for all specified
# combinations. See `jobs` below for an example. # combinations.
#
# You can call versionedCompilerJobs like the following:
#
# ```
# versionedCompilerJobs {
# ghc-tags = ["ghc902" "ghc924"];
# }
# ```
#
# This would produce an output like the following:
#
# ```
# {
# haskell.packages = {
# ghc884 = {};
# ghc810 = {};
# ghc902 = {
# ghc-tags = {
# aarch64-darwin = <derivation...>;
# aarch64-linux = <derivation...>;
# ...
# };
# };
# ghc924 = {
# ghc-tags = { ... };
# };
# ...
# };
# }
# ```
versionedCompilerJobs = config: mapTestOn { versionedCompilerJobs = config: mapTestOn {
haskell.packages = haskell.packages =
(lib.mapAttrs ( let
ghc: jobs: # Mapping function that takes an attrset of jobs, and
lib.filterAttrs ( # removes all jobs that are not specified in config.
jobName: platforms: #
lib.elem ghc (config."${jobName}" or []) # For example, imagine a call to onlyConfigJobs like:
) jobs #
) compilerPlatforms); # ```
# onlyConfigJobs
# "ghc902"
# {
# conduit = [ ... ];
# lens = [ "i686-cygwin" "x86_64-cygwin" ... "x86_64-windows" "i686-windows" ];
# }
# ```
#
# onlyConfigJobs pulls out only those jobs that are specified in config.
#
# For instance, if config is `{ lens = [ "ghc902" ]; }`, then the above
# example call to onlyConfigJobs will return:
#
# ```
# { lens = [ "i686-cygwin" "x86_64-cygwin" ... "x86_64-windows" "i686-windows" ]; }
# ```
#
# If config is `{ lens = [ "ghc8107" ]; }`, then the above example call
# to onlyConfigJobs returns `{}`.
#
# onlyConfigJobs will also remove all platforms from a job that are not
# supported by the GHC it is compiled with.
onlyConfigJobs = ghc: jobs:
let
configFilteredJobset =
lib.filterAttrs
(jobName: platforms: lib.elem ghc (config."${jobName}" or []))
jobs;
# Remove platforms from each job that are not supported by GHC.
# This is important so that we don't build jobs for platforms
# where GHC can't be compiled.
jobsetWithGHCPlatforms =
lib.mapAttrs
(_: platforms: lib.intersectLists jobs.ghc platforms)
configFilteredJobset;
in
jobsetWithGHCPlatforms;
in
lib.mapAttrs onlyConfigJobs compilerPlatforms;
}; };
# hydra jobs for `pkgs` of which we import a subset of # hydra jobs for `pkgs` of which we import a subset of
@ -382,16 +482,38 @@ let
cabal-install = released; cabal-install = released;
Cabal_3_6_3_0 = released; Cabal_3_6_3_0 = released;
Cabal_3_8_1_0 = released; Cabal_3_8_1_0 = released;
cabal2nix = released; Cabal-syntax_3_8_1_0 = released;
cabal2nix-unstable = released; Cabal_3_10_1_0 = released;
funcmp = released; Cabal-syntax_3_10_1_0 = released;
haskell-language-server = builtins.filter (x: x != compilerNames.ghc884) released; cabal2nix = lib.subtractLists [
hoogle = released; compilerNames.ghc961
hlint = released; ] released;
hpack = released; cabal2nix-unstable = lib.subtractLists [
compilerNames.ghc961
] released;
funcmp = lib.subtractLists [
compilerNames.ghc961
] released;
haskell-language-server = lib.subtractLists [
# Support ceased as of 1.9.0.0
compilerNames.ghc884
# https://github.com/haskell/haskell-language-server/issues/3502
compilerNames.ghc961
] released;
hoogle = lib.subtractLists [
compilerNames.ghc961
] released;
hlint = lib.subtractLists [
compilerNames.ghc961
] released;
hpack = lib.subtractLists [
compilerNames.ghc961
] released;
hsdns = released; hsdns = released;
jailbreak-cabal = released; jailbreak-cabal = released;
language-nix = released; language-nix = lib.subtractLists [
compilerNames.ghc961
] released;
nix-paths = released; nix-paths = released;
titlecase = released; titlecase = released;
ghc-api-compat = [ ghc-api-compat = [
@ -422,6 +544,7 @@ let
compilerNames.ghc925 compilerNames.ghc925
compilerNames.ghc926 compilerNames.ghc926
compilerNames.ghc927 compilerNames.ghc927
compilerNames.ghc944
]; ];
}) })
{ {
@ -434,34 +557,43 @@ let
''; '';
maintainers = lib.teams.haskell.members; maintainers = lib.teams.haskell.members;
}; };
constituents = accumulateDerivations [ constituents =
# haskell specific tests let
jobs.tests.haskell # Filter out all Darwin derivations. We don't want flakey Darwin
# important top-level packages # derivations and flakey Hydra Darwin builders to block the
jobs.cabal-install # mergeable job from successfully building.
jobs.cabal2nix filterInLinux =
jobs.cachix lib.filter (drv: drv.system == "x86_64-linux" || drv.system == "aarch64-linux");
jobs.darcs in
jobs.haskell-language-server filterInLinux
jobs.hledger (accumulateDerivations [
jobs.hledger-ui # haskell specific tests
jobs.hpack jobs.tests.haskell
jobs.niv # important top-level packages
jobs.pandoc jobs.cabal-install
jobs.stack jobs.cabal2nix
jobs.stylish-haskell jobs.cachix
# important haskell (library) packages jobs.darcs
jobs.haskellPackages.cabal-plan jobs.haskell-language-server
jobs.haskellPackages.distribution-nixpkgs jobs.hledger
jobs.haskellPackages.hackage-db jobs.hledger-ui
jobs.haskellPackages.xmonad jobs.hpack
jobs.haskellPackages.xmonad-contrib jobs.niv
# haskell packages maintained by @peti jobs.pandoc
# imported from the old hydra jobset jobs.stack
jobs.haskellPackages.hopenssl jobs.stylish-haskell
jobs.haskellPackages.hsemail # important haskell (library) packages
jobs.haskellPackages.hsyslog jobs.haskellPackages.cabal-plan
]; jobs.haskellPackages.distribution-nixpkgs
jobs.haskellPackages.hackage-db
jobs.haskellPackages.xmonad
jobs.haskellPackages.xmonad-contrib
# haskell packages maintained by @peti
# imported from the old hydra jobset
jobs.haskellPackages.hopenssl
jobs.haskellPackages.hsemail
jobs.haskellPackages.hsyslog
]);
}; };
maintained = pkgs.releaseTools.aggregate { maintained = pkgs.releaseTools.aggregate {
name = "maintained-haskell-packages"; name = "maintained-haskell-packages";