Merge master into staging-next
This commit is contained in:
commit
49b8e6f7d4
@ -24,6 +24,10 @@ Many Erlang/OTP distributions available in `beam.interpreters` have versions wit
|
||||
|
||||
We provide a version of Rebar3, under `rebar3`. We also provide a helper to fetch Rebar3 dependencies from a lockfile under `fetchRebar3Deps`.
|
||||
|
||||
We also provide a version on Rebar3 with plugins included, under `rebar3WithPlugins`. This package is a function which takes two arguments: `plugins`, a list of nix derivations to include as plugins (loaded only when specified in `rebar.config`), and `globalPlugins`, which should always be loaded by rebar3. Example: `rebar3WithPlugins { globalPlugins = [beamPackages.pc]; }`.
|
||||
|
||||
When adding a new plugin it is important that the `packageName` attribute is the same as the atom used by rebar3 to refer to the plugin.
|
||||
|
||||
### Mix & Erlang.mk {#build-tools-other}
|
||||
|
||||
Erlang.mk works exactly as expected. There is a bootstrap process that needs to be run, which is supported by the `buildErlangMk` derivation.
|
||||
|
@ -7429,6 +7429,12 @@
|
||||
githubId = 1538622;
|
||||
name = "Michael Reilly";
|
||||
};
|
||||
onsails = {
|
||||
email = "andrey@onsails.com";
|
||||
github = "onsails";
|
||||
githubId = 107261;
|
||||
name = "Andrey Kuznetsov";
|
||||
};
|
||||
onny = {
|
||||
email = "onny@project-insanity.org";
|
||||
github = "onny";
|
||||
|
321
maintainers/scripts/haskell/hydra-report.hs
Executable file
321
maintainers/scripts/haskell/hydra-report.hs
Executable file
@ -0,0 +1,321 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -p "haskellPackages.ghcWithPackages (p: [p.aeson p.req])"
|
||||
#! nix-shell -p hydra-unstable
|
||||
#! nix-shell -i runhaskell
|
||||
|
||||
{-
|
||||
|
||||
The purpose of this script is
|
||||
|
||||
1) download the state of the nixpkgs/haskell-updates job from hydra (with get-report)
|
||||
2) print a summary of the state suitable for pasting into a github comment (with ping-maintainers)
|
||||
3) print a list of broken packages suitable for pasting into configuration-hackage2nix.yaml
|
||||
|
||||
Because step 1) is quite expensive and takes roughly ~5 minutes the result is cached in a json file in XDG_CACHE.
|
||||
|
||||
-}
|
||||
{-# LANGUAGE BlockArguments #-}
|
||||
{-# LANGUAGE DeriveAnyClass #-}
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DuplicateRecordFields #-}
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
{-# LANGUAGE MultiWayIf #-}
|
||||
{-# LANGUAGE NamedFieldPuns #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE ScopedTypeVariables #-}
|
||||
{-# LANGUAGE TupleSections #-}
|
||||
{-# OPTIONS_GHC -Wall #-}
|
||||
|
||||
import Control.Monad (forM_, (<=<))
|
||||
import Control.Monad.Trans (MonadIO (liftIO))
|
||||
import Data.Aeson (
|
||||
FromJSON,
|
||||
ToJSON,
|
||||
decodeFileStrict',
|
||||
eitherDecodeStrict',
|
||||
encodeFile,
|
||||
)
|
||||
import Data.Foldable (Foldable (toList), foldl')
|
||||
import Data.Function ((&))
|
||||
import Data.Functor ((<&>))
|
||||
import Data.List.NonEmpty (NonEmpty, nonEmpty)
|
||||
import qualified Data.List.NonEmpty as NonEmpty
|
||||
import Data.Map.Strict (Map)
|
||||
import qualified Data.Map.Strict as Map
|
||||
import Data.Maybe (fromMaybe, mapMaybe)
|
||||
import Data.Monoid (Sum (Sum, getSum))
|
||||
import Data.Sequence (Seq)
|
||||
import qualified Data.Sequence as Seq
|
||||
import Data.Set (Set)
|
||||
import qualified Data.Set as Set
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as Text
|
||||
import Data.Text.Encoding (encodeUtf8)
|
||||
import Data.Time (defaultTimeLocale, formatTime, getCurrentTime)
|
||||
import Data.Time.Clock (UTCTime)
|
||||
import GHC.Generics (Generic)
|
||||
import Network.HTTP.Req (
|
||||
GET (GET),
|
||||
NoReqBody (NoReqBody),
|
||||
defaultHttpConfig,
|
||||
header,
|
||||
https,
|
||||
jsonResponse,
|
||||
req,
|
||||
responseBody,
|
||||
responseTimeout,
|
||||
runReq,
|
||||
(/:),
|
||||
)
|
||||
import System.Directory (XdgDirectory (XdgCache), getXdgDirectory)
|
||||
import System.Environment (getArgs)
|
||||
import System.Process (readProcess)
|
||||
import Prelude hiding (id)
|
||||
import qualified Prelude
|
||||
|
||||
newtype JobsetEvals = JobsetEvals
|
||||
{ evals :: Seq Eval
|
||||
}
|
||||
deriving (Generic, ToJSON, FromJSON, Show)
|
||||
|
||||
newtype Nixpkgs = Nixpkgs {revision :: Text}
|
||||
deriving (Generic, ToJSON, FromJSON, Show)
|
||||
|
||||
newtype JobsetEvalInputs = JobsetEvalInputs {nixpkgs :: Nixpkgs}
|
||||
deriving (Generic, ToJSON, FromJSON, Show)
|
||||
|
||||
data Eval = Eval
|
||||
{ id :: Int
|
||||
, jobsetevalinputs :: JobsetEvalInputs
|
||||
}
|
||||
deriving (Generic, ToJSON, FromJSON, Show)
|
||||
|
||||
data Build = Build
|
||||
{ job :: Text
|
||||
, buildstatus :: Maybe Int
|
||||
, finished :: Int
|
||||
, id :: Int
|
||||
, nixname :: Text
|
||||
, system :: Text
|
||||
, jobsetevals :: Seq Int
|
||||
}
|
||||
deriving (Generic, ToJSON, FromJSON, Show)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
args <- getArgs
|
||||
case args of
|
||||
["get-report"] -> getBuildReports
|
||||
["ping-maintainers"] -> printMaintainerPing
|
||||
["mark-broken-list"] -> printMarkBrokenList
|
||||
_ -> putStrLn "Usage: get-report | ping-maintainers | mark-broken-list"
|
||||
|
||||
reportFileName :: IO FilePath
|
||||
reportFileName = getXdgDirectory XdgCache "haskell-updates-build-report.json"
|
||||
|
||||
showT :: Show a => a -> Text
|
||||
showT = Text.pack . show
|
||||
|
||||
getBuildReports :: IO ()
|
||||
getBuildReports = runReq defaultHttpConfig do
|
||||
evalMay <- Seq.lookup 0 . evals <$> myReq (https "hydra.nixos.org" /: "jobset" /: "nixpkgs" /: "haskell-updates" /: "evals") mempty
|
||||
eval@Eval{id} <- maybe (liftIO $ fail "No Evalution found") pure evalMay
|
||||
liftIO . putStrLn $ "Fetching evaluation " <> show id <> " from Hydra. This might take a few minutes..."
|
||||
buildReports :: Seq Build <- myReq (https "hydra.nixos.org" /: "eval" /: showT id /: "builds") (responseTimeout 600000000)
|
||||
liftIO do
|
||||
fileName <- reportFileName
|
||||
putStrLn $ "Finished fetching all builds from Hydra, saving report as " <> fileName
|
||||
now <- getCurrentTime
|
||||
encodeFile fileName (eval, now, buildReports)
|
||||
where
|
||||
myReq query option = responseBody <$> req GET query NoReqBody jsonResponse (header "User-Agent" "hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell)" <> option)
|
||||
|
||||
hydraEvalCommand :: FilePath
|
||||
hydraEvalCommand = "hydra-eval-jobs"
|
||||
hydraEvalParams :: [String]
|
||||
hydraEvalParams = ["-I", ".", "pkgs/top-level/release-haskell.nix"]
|
||||
handlesCommand :: FilePath
|
||||
handlesCommand = "nix-instantiate"
|
||||
handlesParams :: [String]
|
||||
handlesParams = ["--eval", "--strict", "--json", "-"]
|
||||
handlesExpression :: String
|
||||
handlesExpression = "with import ./. {}; with lib; zipAttrsWith (_: builtins.head) (mapAttrsToList (_: v: if v ? github then { \"${v.email}\" = v.github; } else {}) (import maintainers/maintainer-list.nix))"
|
||||
|
||||
newtype Maintainers = Maintainers {maintainers :: Maybe Text} deriving (Generic, ToJSON, FromJSON)
|
||||
|
||||
type HydraJobs = Map Text Maintainers
|
||||
type MaintainerMap = Map Text (NonEmpty Text)
|
||||
|
||||
getMaintainerMap :: IO MaintainerMap
|
||||
getMaintainerMap = do
|
||||
hydraJobs :: HydraJobs <- get hydraEvalCommand hydraEvalParams "" "Failed to decode hydra-eval-jobs output: "
|
||||
handlesMap :: Map Text Text <- get handlesCommand handlesParams handlesExpression "Failed to decode nix output for lookup of github handles: "
|
||||
pure $ hydraJobs & Map.mapMaybe (nonEmpty . mapMaybe (`Map.lookup` handlesMap) . Text.splitOn ", " . fromMaybe "" . maintainers)
|
||||
where
|
||||
get c p i e = readProcess c p i <&> \x -> either (error . (<> " Raw:'" <> take 1000 x <> "'") . (e <>)) Prelude.id . eitherDecodeStrict' . encodeUtf8 . Text.pack $ x
|
||||
|
||||
-- BuildStates are sorted by subjective importance/concerningness
|
||||
data BuildState = Failed | DependencyFailed | OutputLimitExceeded | Unknown (Maybe Int) | TimedOut | Canceled | Unfinished | Success deriving (Show, Eq, Ord)
|
||||
|
||||
icon :: BuildState -> Text
|
||||
icon = \case
|
||||
Failed -> ":x:"
|
||||
DependencyFailed -> ":heavy_exclamation_mark:"
|
||||
OutputLimitExceeded -> ":warning:"
|
||||
Unknown x -> "unknown code " <> showT x
|
||||
TimedOut -> ":hourglass::no_entry_sign:"
|
||||
Canceled -> ":no_entry_sign:"
|
||||
Unfinished -> ":hourglass_flowing_sand:"
|
||||
Success -> ":heavy_check_mark:"
|
||||
|
||||
platformIcon :: Platform -> Text
|
||||
platformIcon (Platform x) = case x of
|
||||
"x86_64-linux" -> ":penguin:"
|
||||
"aarch64-linux" -> ":iphone:"
|
||||
"x86_64-darwin" -> ":apple:"
|
||||
_ -> x
|
||||
|
||||
data BuildResult = BuildResult {state :: BuildState, id :: Int} deriving (Show, Eq, Ord)
|
||||
newtype Platform = Platform {platform :: Text} deriving (Show, Eq, Ord)
|
||||
newtype Table row col a = Table (Map (row, col) a)
|
||||
type StatusSummary = Map Text (Table Text Platform BuildResult, Set Text)
|
||||
|
||||
instance (Ord row, Ord col, Semigroup a) => Semigroup (Table row col a) where
|
||||
Table l <> Table r = Table (Map.unionWith (<>) l r)
|
||||
instance (Ord row, Ord col, Semigroup a) => Monoid (Table row col a) where
|
||||
mempty = Table Map.empty
|
||||
instance Functor (Table row col) where
|
||||
fmap f (Table a) = Table (fmap f a)
|
||||
instance Foldable (Table row col) where
|
||||
foldMap f (Table a) = foldMap f a
|
||||
|
||||
buildSummary :: MaintainerMap -> Seq Build -> StatusSummary
|
||||
buildSummary maintainerMap = foldl (Map.unionWith unionSummary) Map.empty . fmap toSummary
|
||||
where
|
||||
unionSummary (Table l, l') (Table r, r') = (Table $ Map.union l r, l' <> r')
|
||||
toSummary Build{finished, buildstatus, job, id, system} = Map.singleton name (Table (Map.singleton (set, Platform system) (BuildResult state id)), maintainers)
|
||||
where
|
||||
state :: BuildState
|
||||
state = case (finished, buildstatus) of
|
||||
(0, _) -> Unfinished
|
||||
(_, Just 0) -> Success
|
||||
(_, Just 4) -> Canceled
|
||||
(_, Just 7) -> TimedOut
|
||||
(_, Just 2) -> DependencyFailed
|
||||
(_, Just 1) -> Failed
|
||||
(_, Just 11) -> OutputLimitExceeded
|
||||
(_, i) -> Unknown i
|
||||
packageName = fromMaybe job (Text.stripSuffix ("." <> system) job)
|
||||
splitted = nonEmpty $ Text.splitOn "." packageName
|
||||
name = maybe packageName NonEmpty.last splitted
|
||||
set = maybe "" (Text.intercalate "." . NonEmpty.init) splitted
|
||||
maintainers = maybe mempty (Set.fromList . toList) (Map.lookup job maintainerMap)
|
||||
|
||||
readBuildReports :: IO (Eval, UTCTime, Seq Build)
|
||||
readBuildReports = do
|
||||
file <- reportFileName
|
||||
fromMaybe (error $ "Could not decode " <> file) <$> decodeFileStrict' file
|
||||
|
||||
sep :: Text
|
||||
sep = " | "
|
||||
joinTable :: [Text] -> Text
|
||||
joinTable t = sep <> Text.intercalate sep t <> sep
|
||||
|
||||
type NumSummary = Table Platform BuildState Int
|
||||
|
||||
printTable :: (Ord rows, Ord cols) => Text -> (rows -> Text) -> (cols -> Text) -> (entries -> Text) -> Table rows cols entries -> [Text]
|
||||
printTable name showR showC showE (Table mapping) = joinTable <$> (name : map showC cols) : replicate (length cols + sepsInName + 1) "---" : map printRow rows
|
||||
where
|
||||
sepsInName = Text.count "|" name
|
||||
printRow row = showR row : map (\col -> maybe "" showE (Map.lookup (row, col) mapping)) cols
|
||||
rows = toList $ Set.fromList (fst <$> Map.keys mapping)
|
||||
cols = toList $ Set.fromList (snd <$> Map.keys mapping)
|
||||
|
||||
printJob :: Int -> Text -> (Table Text Platform BuildResult, Text) -> [Text]
|
||||
printJob evalId name (Table mapping, maintainers) =
|
||||
if length sets <= 1
|
||||
then map printSingleRow sets
|
||||
else ["- [ ] " <> makeJobSearchLink "" name <> " " <> maintainers] <> map printRow sets
|
||||
where
|
||||
printRow set = " - " <> printState set <> " " <> makeJobSearchLink set (if Text.null set then "toplevel" else set)
|
||||
printSingleRow set = "- [ ] " <> printState set <> " " <> makeJobSearchLink set (makePkgName set) <> " " <> maintainers
|
||||
makePkgName 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 set linkLabel= makeSearchLink evalId linkLabel (makePkgName set <> ".") -- Append '.' to the search query to prevent e.g. "hspec." matching "hspec-golden.x86_64-linux"
|
||||
sets = toList $ Set.fromList (fst <$> 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 <> ")"
|
||||
|
||||
makeSearchLink :: Int -> Text -> Text -> Text
|
||||
makeSearchLink evalId linkLabel query = "[" <> linkLabel <> "](" <> "https://hydra.nixos.org/eval/" <> showT evalId <> "?filter=" <> query <> ")"
|
||||
|
||||
statusToNumSummary :: StatusSummary -> NumSummary
|
||||
statusToNumSummary = fmap getSum . foldMap (fmap Sum . jobTotals)
|
||||
|
||||
jobTotals :: (Table Text Platform BuildResult, a) -> Table Platform BuildState Int
|
||||
jobTotals (Table mapping, _) = getSum <$> Table (Map.foldMapWithKey (\(_, platform) (BuildResult buildstate _) -> Map.singleton (platform, buildstate) (Sum 1)) mapping)
|
||||
|
||||
details :: Text -> [Text] -> [Text]
|
||||
details summary content = ["<details><summary>" <> summary <> " </summary>", ""] <> content <> ["</details>", ""]
|
||||
|
||||
printBuildSummary :: Eval -> UTCTime -> StatusSummary -> Text
|
||||
printBuildSummary
|
||||
Eval{id, jobsetevalinputs = JobsetEvalInputs{nixpkgs = Nixpkgs{revision}}}
|
||||
fetchTime
|
||||
summary =
|
||||
Text.unlines $
|
||||
headline <> totals
|
||||
<> optionalList "#### Maintained packages with build failure" (maintainedList fails)
|
||||
<> optionalList "#### Maintained packages with failed dependency" (maintainedList failedDeps)
|
||||
<> optionalList "#### Maintained packages with unknown error" (maintainedList unknownErr)
|
||||
<> optionalHideableList "#### Unmaintained packages with build failure" (unmaintainedList fails)
|
||||
<> optionalHideableList "#### Unmaintained packages with failed dependency" (unmaintainedList failedDeps)
|
||||
<> optionalHideableList "#### Unmaintained packages with unknown error" (unmaintainedList unknownErr)
|
||||
<> footer
|
||||
where
|
||||
footer = ["*Report generated with [maintainers/scripts/haskell/hydra-report.hs](https://github.com/NixOS/nixpkgs/blob/haskell-updates/maintainers/scripts/haskell/hydra-report.sh)*"]
|
||||
totals =
|
||||
[ "#### Build summary"
|
||||
, ""
|
||||
]
|
||||
<> printTable "Platform" (\x -> makeSearchLink id (platform x <> " " <> platformIcon x) ("." <> platform x)) (\x -> showT x <> " " <> icon x) showT (statusToNumSummary summary)
|
||||
headline =
|
||||
[ "### [haskell-updates build report from hydra](https://hydra.nixos.org/jobset/nixpkgs/haskell-updates)"
|
||||
, "*evaluation ["
|
||||
<> showT id
|
||||
<> "](https://hydra.nixos.org/eval/"
|
||||
<> showT id
|
||||
<> ") of nixpkgs commit ["
|
||||
<> Text.take 7 revision
|
||||
<> "](https://github.com/NixOS/nixpkgs/commits/"
|
||||
<> revision
|
||||
<> ") as of "
|
||||
<> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
|
||||
<> "*"
|
||||
]
|
||||
jobsByState predicate = Map.filter (predicate . foldl' min Success . fmap state . fst) summary
|
||||
fails = jobsByState (== Failed)
|
||||
failedDeps = jobsByState (== DependencyFailed)
|
||||
unknownErr = jobsByState (\x -> x > DependencyFailed && x < TimedOut)
|
||||
withMaintainer = Map.mapMaybe (\(x, m) -> (x,) <$> nonEmpty (Set.toList m))
|
||||
withoutMaintainer = Map.mapMaybe (\(x, m) -> if Set.null m then Just x else Nothing)
|
||||
optionalList heading list = if null list then mempty else [heading] <> list
|
||||
optionalHideableList heading list = if null list then mempty else [heading] <> details (showT (length list) <> " job(s)") list
|
||||
maintainedList = showMaintainedBuild <=< Map.toList . withMaintainer
|
||||
unmaintainedList = showBuild <=< Map.toList . withoutMaintainer
|
||||
showBuild (name, table) = printJob id name (table, "")
|
||||
showMaintainedBuild (name, (table, maintainers)) = printJob id name (table, Text.intercalate " " (fmap ("@" <>) (toList maintainers)))
|
||||
|
||||
printMaintainerPing :: IO ()
|
||||
printMaintainerPing = do
|
||||
maintainerMap <- getMaintainerMap
|
||||
(eval, fetchTime, buildReport) <- readBuildReports
|
||||
putStrLn (Text.unpack (printBuildSummary eval fetchTime (buildSummary maintainerMap buildReport)))
|
||||
|
||||
printMarkBrokenList :: IO ()
|
||||
printMarkBrokenList = do
|
||||
(_, _, buildReport) <- readBuildReports
|
||||
forM_ buildReport \Build{buildstatus, job} ->
|
||||
case (buildstatus, Text.splitOn "." job) of
|
||||
(Just 1, ["haskellPackages", name, "x86_64-linux"]) -> putStrLn $ " - " <> Text.unpack name
|
||||
_ -> pure ()
|
45
maintainers/scripts/haskell/mark-broken.sh
Executable file
45
maintainers/scripts/haskell/mark-broken.sh
Executable file
@ -0,0 +1,45 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p coreutils git -I nixpkgs=.
|
||||
|
||||
# This script uses the data pulled with
|
||||
# maintainers/scripts/haskell/hydra-report.hs get-report to produce a list of
|
||||
# failing builds that get written to the hackage2nix config. Then
|
||||
# hackage-packages.nix gets regenerated and transitive-broken packages get
|
||||
# marked as dont-distribute in the config as well.
|
||||
# This should disable builds for most failing jobs in the haskell-updates jobset.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
broken_config="pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml"
|
||||
|
||||
tmpfile=$(mktemp)
|
||||
trap "rm ${tmpfile}" 0
|
||||
|
||||
echo "Remember that you need to manually run 'maintainers/scripts/haskell/hydra-report.hs get-report' sometime before running this script."
|
||||
echo "Generating a list of broken builds and displaying for manual confirmation ..."
|
||||
maintainers/scripts/haskell/hydra-report.hs mark-broken-list | sort -i > $tmpfile
|
||||
|
||||
$EDITOR $tmpfile
|
||||
|
||||
tail -n +3 "$broken_config" >> "$tmpfile"
|
||||
|
||||
cat > "$broken_config" << EOF
|
||||
broken-packages:
|
||||
# These packages don't compile.
|
||||
EOF
|
||||
|
||||
sort -iu "$tmpfile" >> "$broken_config"
|
||||
maintainers/scripts/haskell/regenerate-hackage-packages.sh
|
||||
maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
|
||||
maintainers/scripts/haskell/regenerate-hackage-packages.sh
|
||||
|
||||
if [[ "${1:-}" == "--do-commit" ]]; then
|
||||
git add $broken_config
|
||||
git add pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
|
||||
git add pkgs/development/haskell-modules/hackage-packages.nix
|
||||
git commit -F - << EOF
|
||||
hackage2nix: Mark failing builds broken
|
||||
|
||||
This commit has been generated by maintainers/scripts/haskell/mark-broken.sh
|
||||
EOF
|
||||
fi
|
@ -1,3 +1,15 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p coreutils nix gnused -I nixpkgs=.
|
||||
echo -e $(nix-instantiate --eval --strict maintainers/scripts/haskell/transitive-broken-packages.nix) | sed 's/\"//' > pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
|
||||
|
||||
config_file=pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
|
||||
|
||||
cat > $config_file << EOF
|
||||
# This file is automatically generated by
|
||||
# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
|
||||
# It is supposed to list all haskellPackages that cannot evaluate because they
|
||||
# depend on a dependency marked as broken.
|
||||
dont-distribute-packages:
|
||||
EOF
|
||||
|
||||
echo "Regenerating list of transitive broken packages ..."
|
||||
echo -e $(nix-instantiate --eval --strict maintainers/scripts/haskell/transitive-broken-packages.nix) | sed 's/\"//' | sort -i >> $config_file
|
||||
|
@ -12,10 +12,5 @@ let
|
||||
(getEvaluating (nixpkgs { config.allowBroken = true; }).haskellPackages);
|
||||
in
|
||||
''
|
||||
# This file is automatically generated by
|
||||
# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
|
||||
# It is supposed to list all haskellPackages that cannot evaluate because they
|
||||
# depend on a dependency marked as broken.
|
||||
dont-distribute-packages:
|
||||
${lib.concatMapStringsSep "\n" (x: " - ${x}") brokenDeps}
|
||||
''
|
||||
|
@ -233,7 +233,10 @@ let
|
||||
# Notes about grub:
|
||||
# * Yes, the grubMenuCfg has to be repeated in all submenus. Otherwise you
|
||||
# will get white-on-black console-like text on sub-menus. *sigh*
|
||||
efiDir = pkgs.runCommand "efi-directory" {} ''
|
||||
efiDir = pkgs.runCommand "efi-directory" {
|
||||
nativeBuildInputs = [ pkgs.buildPackages.grub2_efi ];
|
||||
strictDeps = true;
|
||||
} ''
|
||||
mkdir -p $out/EFI/boot/
|
||||
|
||||
# ALWAYS required modules.
|
||||
@ -263,7 +266,7 @@ let
|
||||
|
||||
# Make our own efi program, we can't rely on "grub-install" since it seems to
|
||||
# probe for devices, even with --skip-fs-probe.
|
||||
${grubPkgs.grub2_efi}/bin/grub-mkimage -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${grubPkgs.grub2_efi.grubTarget} \
|
||||
grub-mkimage --directory=${grubPkgs.grub2_efi}/lib/grub/${grubPkgs.grub2_efi.grubTarget} -o $out/EFI/boot/boot${targetArch}.efi -p /EFI/boot -O ${grubPkgs.grub2_efi.grubTarget} \
|
||||
$MODULES
|
||||
cp ${grubPkgs.grub2_efi}/share/grub/unicode.pf2 $out/EFI/boot/
|
||||
|
||||
@ -388,7 +391,10 @@ let
|
||||
${refind}
|
||||
'';
|
||||
|
||||
efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; }
|
||||
efiImg = pkgs.runCommand "efi-image_eltorito" {
|
||||
nativeBuildInputs = [ pkgs.buildPackages.mtools pkgs.buildPackages.libfaketime pkgs.buildPackages.dosfstools ];
|
||||
strictDeps = true;
|
||||
}
|
||||
# Be careful about determinism: du --apparent-size,
|
||||
# dates (cp -p, touch, mcopy -m, faketime for label), IDs (mkfs.vfat -i)
|
||||
''
|
||||
@ -408,10 +414,10 @@ let
|
||||
echo "Usage size: $usage_size"
|
||||
echo "Image size: $image_size"
|
||||
truncate --size=$image_size "$out"
|
||||
${pkgs.libfaketime}/bin/faketime "2000-01-01 00:00:00" ${pkgs.dosfstools}/sbin/mkfs.vfat -i 12345678 -n EFIBOOT "$out"
|
||||
faketime "2000-01-01 00:00:00" mkfs.vfat -i 12345678 -n EFIBOOT "$out"
|
||||
mcopy -psvm -i "$out" ./EFI ./boot ::
|
||||
# Verify the FAT partition.
|
||||
${pkgs.dosfstools}/sbin/fsck.vfat -vn "$out"
|
||||
fsck.vfat -vn "$out"
|
||||
''; # */
|
||||
|
||||
# Name used by UEFI for architectures.
|
||||
@ -420,6 +426,8 @@ let
|
||||
"ia32"
|
||||
else if pkgs.stdenv.isx86_64 then
|
||||
"x64"
|
||||
else if pkgs.stdenv.isAarch32 then
|
||||
"arm"
|
||||
else if pkgs.stdenv.isAarch64 then
|
||||
"aa64"
|
||||
else
|
||||
|
@ -471,6 +471,7 @@
|
||||
./services/misc/cgminer.nix
|
||||
./services/misc/confd.nix
|
||||
./services/misc/couchpotato.nix
|
||||
./services/misc/dendrite.nix
|
||||
./services/misc/devmon.nix
|
||||
./services/misc/dictd.nix
|
||||
./services/misc/duckling.nix
|
||||
@ -513,7 +514,6 @@
|
||||
./services/misc/mame.nix
|
||||
./services/misc/matrix-appservice-discord.nix
|
||||
./services/misc/matrix-appservice-irc.nix
|
||||
./services/misc/matrix-dendrite.nix
|
||||
./services/misc/matrix-synapse.nix
|
||||
./services/misc/mautrix-telegram.nix
|
||||
./services/misc/mbpfan.nix
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.services.matrix-dendrite;
|
||||
cfg = config.services.dendrite;
|
||||
settingsFormat = pkgs.formats.yaml { };
|
||||
configurationYaml = settingsFormat.generate "dendrite.yaml" cfg.settings;
|
||||
workingDir = "/var/lib/matrix-dendrite";
|
||||
workingDir = "/var/lib/dendrite";
|
||||
in
|
||||
{
|
||||
options.services.matrix-dendrite = {
|
||||
options.services.dendrite = {
|
||||
enable = lib.mkEnableOption "matrix.org dendrite";
|
||||
httpPort = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.port;
|
||||
@ -24,31 +24,31 @@ in
|
||||
};
|
||||
tlsCert = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
example = "/var/lib/matrix-dendrite/server.cert";
|
||||
example = "/var/lib/dendrite/server.cert";
|
||||
default = null;
|
||||
description = ''
|
||||
The path to the TLS certificate.
|
||||
|
||||
<programlisting>
|
||||
nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
|
||||
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
|
||||
</programlisting>
|
||||
'';
|
||||
};
|
||||
tlsKey = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
example = "/var/lib/matrix-dendrite/server.key";
|
||||
example = "/var/lib/dendrite/server.key";
|
||||
default = null;
|
||||
description = ''
|
||||
The path to the TLS key.
|
||||
|
||||
<programlisting>
|
||||
nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
|
||||
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
|
||||
</programlisting>
|
||||
'';
|
||||
};
|
||||
environmentFile = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
example = "/var/lib/matrix-dendrite/registration_secret";
|
||||
example = "/var/lib/dendrite/registration_secret";
|
||||
default = null;
|
||||
description = ''
|
||||
Environment file as defined in <citerefentry>
|
||||
@ -62,7 +62,7 @@ in
|
||||
|
||||
<programlisting>
|
||||
# snippet of dendrite-related config
|
||||
services.matrix-dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET";
|
||||
services.dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET";
|
||||
</programlisting>
|
||||
|
||||
<programlisting>
|
||||
@ -95,7 +95,7 @@ in
|
||||
requests and events.
|
||||
|
||||
<programlisting>
|
||||
nix-shell -p matrix-dendrite --command "generate-keys --private-key matrix_key.pem"
|
||||
nix-shell -p dendrite --command "generate-keys --private-key matrix_key.pem"
|
||||
</programlisting>
|
||||
'';
|
||||
};
|
||||
@ -136,11 +136,11 @@ in
|
||||
message = ''
|
||||
If Dendrite is configured to use https, tlsCert and tlsKey must be provided.
|
||||
|
||||
nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
|
||||
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
|
||||
'';
|
||||
}];
|
||||
|
||||
systemd.services.matrix-dendrite = {
|
||||
systemd.services.dendrite = {
|
||||
description = "Dendrite Matrix homeserver";
|
||||
after = [
|
||||
"network.target"
|
||||
@ -149,22 +149,22 @@ in
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
DynamicUser = true;
|
||||
StateDirectory = "matrix-dendrite";
|
||||
StateDirectory = "dendrite";
|
||||
WorkingDirectory = workingDir;
|
||||
RuntimeDirectory = "matrix-dendrite";
|
||||
RuntimeDirectory = "dendrite";
|
||||
RuntimeDirectoryMode = "0700";
|
||||
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
|
||||
ExecStartPre =
|
||||
if (cfg.environmentFile != null) then ''
|
||||
${pkgs.envsubst}/bin/envsubst \
|
||||
-i ${configurationYaml} \
|
||||
-o /run/matrix-dendrite/dendrite.yaml
|
||||
-o /run/dendrite/dendrite.yaml
|
||||
'' else ''
|
||||
${pkgs.coreutils}/bin/cp ${configurationYaml} /run/matrix-dendrite/dendrite.yaml
|
||||
${pkgs.coreutils}/bin/cp ${configurationYaml} /run/dendrite/dendrite.yaml
|
||||
'';
|
||||
ExecStart = lib.strings.concatStringsSep " " ([
|
||||
"${pkgs.matrix-dendrite}/bin/dendrite-monolith-server"
|
||||
"--config /run/matrix-dendrite/dendrite.yaml"
|
||||
"${pkgs.dendrite}/bin/dendrite-monolith-server"
|
||||
"--config /run/dendrite/dendrite.yaml"
|
||||
] ++ lib.optionals (cfg.httpPort != null) [
|
||||
"--http-bind-address :${builtins.toString cfg.httpPort}"
|
||||
] ++ lib.optionals (cfg.httpsPort != null) [
|
@ -22,8 +22,8 @@ in {
|
||||
package = mkOption {
|
||||
type = types.path;
|
||||
description = "The SSM agent package to use";
|
||||
default = pkgs.ssm-agent;
|
||||
defaultText = "pkgs.ssm-agent";
|
||||
default = pkgs.ssm-agent.override { overrideEtc = false; };
|
||||
defaultText = "pkgs.ssm-agent.override { overrideEtc = false; }";
|
||||
};
|
||||
};
|
||||
|
||||
@ -37,8 +37,10 @@ in {
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/amazon-ssm-agent";
|
||||
KillMode = "process";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "15min";
|
||||
# We want this restating pretty frequently. It could be our only means
|
||||
# of accessing the instance.
|
||||
Restart = "always";
|
||||
RestartSec = "1min";
|
||||
};
|
||||
};
|
||||
|
||||
@ -62,5 +64,10 @@ in {
|
||||
isNormalUser = true;
|
||||
group = "ssm-user";
|
||||
};
|
||||
|
||||
environment.etc."amazon/ssm/seelog.xml".source = "${cfg.package}/seelog.xml.template";
|
||||
|
||||
environment.etc."amazon/ssm/amazon-ssm-agent.json".source = "${cfg.package}/etc/amazon/ssm/amazon-ssm-agent.json.template";
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -34,13 +34,13 @@ self: super: {
|
||||
|
||||
kak-ansi = stdenv.mkDerivation rec {
|
||||
pname = "kak-ansi";
|
||||
version = "0.2.3";
|
||||
version = "0.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eraserhd";
|
||||
repo = "kak-ansi";
|
||||
rev = "v${version}";
|
||||
sha256 = "pO7M3MjKMJQew9O20KALEvsXLuCKPYGGTtuN/q/kj8Q=";
|
||||
sha256 = "kFjTYFy0KF5WWEHU4hHFAnD/03/d3ptjqMMbTSaGImE=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux; # It's meant for river, a wayland compositor
|
||||
maintainers = with maintainers; [ fortuneteller2k ];
|
||||
mainProgram = "kile";
|
||||
};
|
||||
}
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kratos";
|
||||
version = "0.6.0-alpha.1";
|
||||
version = "0.6.0-alpha.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ory";
|
||||
repo = "kratos";
|
||||
rev = "v${version}";
|
||||
sha256 = "0lnrm7ma203b5a0vxgm9zqsbs3nigx0kng5zymrjvrzll1gd79wm";
|
||||
sha256 = "0zg6afzqi5fmr7hmy1cd7fknd1bcplz3h0f7z67l75v8k2n73md1";
|
||||
};
|
||||
|
||||
vendorSha256 = "16qg44k97l6719hib8vbv0j15x6gvs9d6738d2y990a2qiqbsqpw";
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "mediaelch";
|
||||
version = "2.8.8";
|
||||
version = "2.8.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Komet";
|
||||
repo = "MediaElch";
|
||||
rev = "v${version}";
|
||||
sha256 = "0yif0ibmlj0bhl7fnhg9yclxg2iyjygmjhffinp5kgqy0vaabkzw";
|
||||
sha256 = "1gx4m9cf81d0b2nk2rlqm4misz67f5bpkjqx7d1l76rw2pwc6azf";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "moonlight-embedded";
|
||||
version = "2.4.10";
|
||||
version = "2.4.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "irtimmer";
|
||||
repo = "moonlight-embedded";
|
||||
rev = "v${version}";
|
||||
sha256 = "0m5i3q3hbjl51cndjpz5hxi3br6fvpn1fzdv0f6lxjxgw9z32413";
|
||||
sha256 = "19wm4gizj8q6j4jwqfcn3bkhms97d8afwxmqjmjnqqxzpd2gxc16";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "xplr";
|
||||
version = "0.7.2";
|
||||
version = "0.8.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sayanarijit";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1mqxnahhbf394niyc8i6gk2y3i7lj9cj71k460r58cmir5fch82m";
|
||||
sha256 = "00kmmdwwf9cll25bkszgin2021ggf9b28jlcpicin5kgw4iwlhkj";
|
||||
};
|
||||
|
||||
cargoSha256 = "1dfcmkfclkq5b103jl98yalcl3mnvsq8xpkdasf72d3wgzarih16";
|
||||
cargoSha256 = "1j43vwb885h355wdmjijz1qpkqn1dmb93hwi6vc035vkbbxs1g4r";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A hackable, minimal, fast TUI file explorer";
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"stable": {
|
||||
"version": "90.0.4430.93",
|
||||
"sha256": "0zimr975vp0v12zz1nqjwag3f0q147wrmdhpzgi4yf089rgwfbjk",
|
||||
"sha256bin64": "1vifcrrfv69i0q7qnnml43xr0c20bi22hfw6lygq3k2x70zdzgl6",
|
||||
"version": "90.0.4430.212",
|
||||
"sha256": "17nmhrkl81qqvzbh861k2mmifncx4wg1mv1fmn52f8gzn461vqdb",
|
||||
"sha256bin64": "1y33c5829s22yfj0qmsj8fpcxnjhcm3fsxz7744csfsa9cy4fjr7",
|
||||
"deps": {
|
||||
"gn": {
|
||||
"version": "2021-02-09",
|
||||
|
@ -8,6 +8,7 @@
|
||||
, dmidecode
|
||||
, util-linux
|
||||
, bashInteractive
|
||||
, overrideEtc ? true
|
||||
}:
|
||||
|
||||
let
|
||||
@ -64,6 +65,9 @@ buildGoPackage rec {
|
||||
--replace '"script"' '"${util-linux}/bin/script"'
|
||||
|
||||
echo "${version}" > VERSION
|
||||
'' + lib.optionalString overrideEtc ''
|
||||
substituteInPlace agent/appconfig/constants_unix.go \
|
||||
--replace '"/etc/amazon/ssm/"' '"${placeholder "out"}/etc/amazon/ssm/"'
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
@ -96,6 +100,20 @@ buildGoPackage rec {
|
||||
popd
|
||||
'';
|
||||
|
||||
# These templates retain their `.template` extensions on installation. The
|
||||
# amazon-ssm-agent.json.template is required as default configuration when an
|
||||
# amazon-ssm-agent.json isn't present. Here, we retain the template to show
|
||||
# we're using the default configuration.
|
||||
|
||||
# seelog.xml isn't actually required to run, but it does ship as a template
|
||||
# with debian packages, so it's here for reference. Future work in the nixos
|
||||
# module could use this template and substitute a different log level.
|
||||
postInstall = ''
|
||||
mkdir -p $out/etc/amazon/ssm
|
||||
cp go/src/${goPackagePath}/amazon-ssm-agent.json.template $out/etc/amazon/ssm/amazon-ssm-agent.json.template
|
||||
cp go/src/${goPackagePath}/seelog_unix.xml $out/etc/amazon/ssm/seelog.xml.template
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
|
||||
'';
|
||||
|
@ -9,23 +9,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "shellhub-agent";
|
||||
version = "0.6.4";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shellhub-io";
|
||||
repo = "shellhub";
|
||||
rev = "v${version}";
|
||||
sha256 = "12g9067knppkci2acc4w9xcismgw2w1zd0f1swbzdnx8bxl3vg9i";
|
||||
sha256 = "07gfi0l9l19cy7304v18knbfhs7zqhfglw0jjhcmxa79dg6wzdia";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix missing multierr package on go.mod
|
||||
./fix-go-mod-deps.patch
|
||||
];
|
||||
|
||||
modRoot = "./agent";
|
||||
|
||||
vendorSha256 = "0z5qvgmmrwwvhpmhjxdvgdfsd60a24q9ld68ggnkv36qln0gw7p4";
|
||||
vendorSha256 = "0rcb384yxk1dsip15qh32rkd07i2zzr1k53wcfpnrgi6jpixvsvi";
|
||||
|
||||
buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ];
|
||||
|
||||
|
@ -1,128 +0,0 @@
|
||||
diff --git a/agent/go.mod b/agent/go.mod
|
||||
index c075083..b79726e 100644
|
||||
--- a/agent/go.mod
|
||||
+++ b/agent/go.mod
|
||||
@@ -28,6 +28,7 @@ require (
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/shellhub-io/shellhub v0.5.2
|
||||
github.com/sirupsen/logrus v1.8.1
|
||||
+ go.uber.org/multierr v1.6.0 // indirect
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83
|
||||
golang.org/x/net v0.0.0-20210224082022-3d97a244fca7 // indirect
|
||||
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073
|
||||
diff --git a/agent/go.sum b/agent/go.sum
|
||||
index e65c9ad..0f9afcd 100644
|
||||
--- a/agent/go.sum
|
||||
+++ b/agent/go.sum
|
||||
@@ -62,7 +62,6 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
-github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
@@ -73,7 +72,6 @@ github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
||||
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
||||
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
|
||||
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
-github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
||||
@@ -87,9 +85,7 @@ github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dv
|
||||
github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
-github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
-github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=
|
||||
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
|
||||
github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
|
||||
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
|
||||
@@ -113,7 +109,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
|
||||
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
|
||||
-github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
|
||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
@@ -124,15 +119,18 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
-github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
||||
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
+go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
+go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
@@ -148,7 +146,6 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
@@ -169,17 +166,13 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M=
|
||||
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
-golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
-golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
@@ -197,14 +190,12 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
|
||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||
google.golang.org/genproto v0.0.0-20210224155714-063164c882e6 h1:bXUwz2WkXXrXgiLxww3vWmoSHLOGv4ipdPdTvKymcKw=
|
||||
@@ -223,7 +214,6 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi
|
||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
-google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA=
|
||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
||||
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
@@ -233,7 +223,6 @@ gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXa
|
||||
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
|
||||
gopkg.in/go-playground/validator.v9 v9.31.0 h1:bmXmP2RSNtFES+bn4uYuHT7iJFJv7Vj+an+ZQdDaD1M=
|
||||
gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
|
||||
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
@ -14,20 +14,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "kstars";
|
||||
version = "3.5.2";
|
||||
version = "3.5.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
|
||||
sha256 = "sha256-iX7rMQbctdK3AeH4ZvH+T4rv1ZHwn55urJh150KoXXU=";
|
||||
sha256 = "sha256-kgUsG2k2YSAAH7ea2qfGw4gON5CFdUoQ3EwOnATXZ5g=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Patches ksutils.cpp to use nix store prefixes to find program binaries of
|
||||
# indilib and xplanet dependencies. Without the patch, Ekos is unable to spawn
|
||||
# indi servers for local telescope/camera control.
|
||||
./fs-fixes.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
|
||||
buildInputs = [
|
||||
kconfig kdoctools kguiaddons ki18n kinit kiconthemes kio
|
||||
@ -41,8 +34,8 @@ mkDerivation rec {
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DINDI_NIX_ROOT=${indi-full}"
|
||||
"-DXPLANET_NIX_ROOT=${xplanet}"
|
||||
"-DINDI_PREFIX=${indi-full}"
|
||||
"-DXPLANET_PREFIX=${xplanet}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -1,59 +0,0 @@
|
||||
--- kstars-3.5.0/CMakeLists.txt.old 2020-11-24 12:36:37.967433937 -0600
|
||||
+++ kstars-3.5.0/CMakeLists.txt 2020-11-24 13:36:56.275263691 -0600
|
||||
@@ -5,6 +5,9 @@
|
||||
set (KSTARS_BUILD_RELEASE "Stable")
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
|
||||
+add_definitions(-DINDI_NIX_ROOT=${INDI_NIX_ROOT})
|
||||
+add_definitions(-DXPLANET_NIX_ROOT=${XPLANET_NIX_ROOT})
|
||||
+
|
||||
# Build KStars Lite with -DBUILD_KSTARS_LITE=ON
|
||||
option(BUILD_KSTARS_LITE "Build KStars Lite" OFF)
|
||||
|
||||
--- kstars-3.5.0/kstars/auxiliary/ksutils.old.cpp 2020-11-24 12:22:14.397319680 -0600
|
||||
+++ kstars-3.5.0/kstars/auxiliary/ksutils.cpp 2020-11-24 13:32:22.946477798 -0600
|
||||
@@ -1081,6 +1081,10 @@
|
||||
// We support running within Snaps, Flatpaks, and AppImage
|
||||
// The path should accomodate the differences between the different
|
||||
// packaging solutions
|
||||
+ #define STR_EXPAND(x) #x
|
||||
+ #define STR(x) STR_EXPAND(x)
|
||||
+ QString indi_prefix = QString(STR(INDI_NIX_ROOT));
|
||||
+ QString xplanet_prefix = QString(STR(XPLANET_NIX_ROOT));
|
||||
QString snap = QProcessEnvironment::systemEnvironment().value("SNAP");
|
||||
QString flat = QProcessEnvironment::systemEnvironment().value("FLATPAK_DEST");
|
||||
QString appimg = QProcessEnvironment::systemEnvironment().value("APPDIR");
|
||||
@@ -1110,21 +1114,21 @@
|
||||
#if defined(Q_OS_OSX)
|
||||
return "/usr/local/bin/indiserver";
|
||||
#endif
|
||||
- return prefix + "/bin/indiserver";
|
||||
+ return indi_prefix + "/bin/indiserver";
|
||||
}
|
||||
else if (option == "INDIHubAgent")
|
||||
{
|
||||
#if defined(Q_OS_OSX)
|
||||
return "/usr/local/bin/indihub-agent";
|
||||
#endif
|
||||
- return prefix + "/bin/indihub-agent";
|
||||
+ return indi_prefix + "/bin/indihub-agent";
|
||||
}
|
||||
else if (option == "indiDriversDir")
|
||||
{
|
||||
#if defined(Q_OS_OSX)
|
||||
return "/usr/local/share/indi";
|
||||
#elif defined(Q_OS_LINUX)
|
||||
- return prefix + "/share/indi";
|
||||
+ return indi_prefix + "/share/indi";
|
||||
#else
|
||||
return QStandardPaths::locate(QStandardPaths::GenericDataLocation, "indi", QStandardPaths::LocateDirectory);
|
||||
#endif
|
||||
@@ -1181,7 +1185,7 @@
|
||||
#if defined(Q_OS_OSX)
|
||||
return "/usr/local/bin/xplanet";
|
||||
#endif
|
||||
- return prefix + "/bin/xplanet";
|
||||
+ return xplanet_prefix + "/bin/xplanet";
|
||||
}
|
||||
else if (option == "ASTAP")
|
||||
{
|
@ -1,28 +1,16 @@
|
||||
{lib, stdenv, fetchpatch, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
|
||||
{lib, stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, xz, pkg-config}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "octopus";
|
||||
version = "0.7.3";
|
||||
version = "0.7.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "luntergroup";
|
||||
repo = "octopus";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-sPOBZ0YrEdjMNVye/xwqwA5IpsLy2jWN3sm/ce1fLg4=";
|
||||
sha256 = "sha256-FAogksVxUlzMlC0BqRu22Vchj6VX+8yNlHRLyb3g1sE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Backport TZ patchs (https://github.com/luntergroup/octopus/issues/149)
|
||||
(fetchpatch {
|
||||
url = "https://github.com/luntergroup/octopus/commit/3dbd8cc33616129ad356e99a4dae82e4f6702250.patch";
|
||||
sha256 = "sha256-UCufVU9x+L1zCEhkr/48KFYRvh8w26w8Jr+O+wULKK8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/luntergroup/octopus/commit/af5a66a2792bd098fb53eb79fb4822625f09305e.patch";
|
||||
sha256 = "sha256-r8jv6EZHfTWVLYUBau3F+ilOd9IeH8rmatorEY5LXP4=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ boost gmp htslib zlib xz ];
|
||||
|
||||
|
@ -92,4 +92,8 @@ mkDerivation (common "tamarin-prover" src // {
|
||||
tamarin-prover-term
|
||||
tamarin-prover-theory
|
||||
];
|
||||
|
||||
# tamarin-prover 1.6 is incompatible with maude 3.1.
|
||||
hydraPlatforms = lib.platforms.none;
|
||||
broken = true;
|
||||
})
|
||||
|
@ -21,7 +21,7 @@
|
||||
+vte_terminal_get_selection(VteTerminal *terminal) noexcept
|
||||
+{
|
||||
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
|
||||
+ return g_strdup (IMPL(terminal)->m_selection[VTE_SELECTION_PRIMARY]->str);
|
||||
+ return g_strdup (IMPL(terminal)->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)]->str);
|
||||
+}
|
||||
+
|
||||
/**
|
||||
|
@ -1,19 +1,19 @@
|
||||
{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
|
||||
{ lib, stdenv, rustPlatform, cmake, fetchFromGitHub, pkg-config, openssl, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gitoxide";
|
||||
version = "0.6.0";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Byron";
|
||||
repo = "gitoxide";
|
||||
rev = "v${version}";
|
||||
sha256 = "qt1IN/5+yw5lrQ00YsvXUcUXCxd97EtNf5JvxJVa7uc=";
|
||||
sha256 = "12f5qrrfjfqp1aph2nmfi9nyzs1ndvgrb3y53mrszm9kf7fa6pyg";
|
||||
};
|
||||
|
||||
cargoSha256 = "mitUyf/z7EgjKzFy8ZER8Ceoe9tk6r0ctSYdDG87rIU=";
|
||||
cargoSha256 = "0gw19zdxbkgnj1kcyqn1naj1dnhsx10j860m0xgs5z7bbvfg82p6";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "runc";
|
||||
version = "1.0.0-rc93";
|
||||
version = "1.0.0-rc94";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "opencontainers";
|
||||
repo = "runc";
|
||||
rev = "v${version}";
|
||||
sha256 = "008d5wkznic80n5q1vwx727qn5ifalc7cydq68hc1gk9wrhna4v4";
|
||||
sha256 = "sha256-53P48jNSfC6ELpZNI30yAf7kofUsrJpNY96u0UT+ITg=";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/opencontainers/runc";
|
||||
|
@ -30,8 +30,19 @@ rustPlatform.buildRustPackage rec {
|
||||
cargoBuildFlags = [
|
||||
"--features=notmuch"
|
||||
"--features=maildir"
|
||||
"--features=pulseaudio"
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace src/util.rs \
|
||||
--replace "/usr/share/i3status-rust" "$out/share"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
cp -R files/* $out/share
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/i3status-rs --prefix PATH : "${ethtool}/bin"
|
||||
'';
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "marwaita";
|
||||
version = "9.0";
|
||||
version = "9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "darkomarko42";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "12mgs9f8mwfpdpxdwyknw7zvgaqp96kzcv7fcrvrnm9i4ind5zra";
|
||||
sha256 = "0974pfcdbhajxvd6fnp2kix963s28n2il9w879h5zm1f6ayglsfz";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, writeText, erlang, rebar3, openssl, libyaml,
|
||||
{ stdenv, writeText, erlang, rebar3WithPlugins, openssl, libyaml,
|
||||
pc, lib }:
|
||||
|
||||
{ name, version
|
||||
@ -19,7 +19,10 @@ with lib;
|
||||
let
|
||||
debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "debug-info";
|
||||
|
||||
ownPlugins = buildPlugins ++ (if compilePorts then [pc] else []);
|
||||
rebar3 = rebar3WithPlugins {
|
||||
plugins = buildPlugins;
|
||||
globalPlugins = (if compilePorts then [pc] else []);
|
||||
};
|
||||
|
||||
shell = drv: stdenv.mkDerivation {
|
||||
name = "interactive-shell-${drv.name}";
|
||||
@ -36,13 +39,9 @@ let
|
||||
inherit version;
|
||||
|
||||
buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ];
|
||||
propagatedBuildInputs = unique (beamDeps ++ ownPlugins);
|
||||
propagatedBuildInputs = unique beamDeps;
|
||||
|
||||
dontStrip = true;
|
||||
# The following are used by rebar3-nix-bootstrap
|
||||
inherit compilePorts;
|
||||
buildPlugins = ownPlugins;
|
||||
|
||||
inherit src;
|
||||
|
||||
setupHook = writeText "setupHook.sh" ''
|
||||
|
@ -18,8 +18,8 @@ let
|
||||
inherit callPackage erlang;
|
||||
beamPackages = self;
|
||||
|
||||
inherit (callPackage ../tools/build-managers/rebar3 { }) rebar3 rebar3WithPlugins;
|
||||
rebar = callPackage ../tools/build-managers/rebar { };
|
||||
rebar3 = callPackage ../tools/build-managers/rebar3 { };
|
||||
|
||||
# rebar3 port compiler plugin is required by buildRebar3
|
||||
pc = callPackage ./pc { };
|
||||
|
@ -61,6 +61,7 @@ self: super: {
|
||||
hsakamai = dontCheck super.hsakamai;
|
||||
hsemail-ns = dontCheck super.hsemail-ns;
|
||||
openapi3 = dontCheck super.openapi3;
|
||||
strict-writer = dontCheck super.strict-writer;
|
||||
|
||||
# https://github.com/ekmett/half/issues/35
|
||||
half = dontCheck super.half;
|
||||
|
@ -1037,9 +1037,6 @@ self: super: {
|
||||
# Has tasty < 1.2 requirement, but works just fine with 1.2
|
||||
temporary-resourcet = doJailbreak super.temporary-resourcet;
|
||||
|
||||
# Requires dhall >= 1.23.0
|
||||
ats-pkg = dontCheck (super.ats-pkg.override { dhall = self.dhall_1_29_0; });
|
||||
|
||||
# fake a home dir and capture generated man page
|
||||
ats-format = overrideCabal super.ats-format (old : {
|
||||
preConfigure = "export HOME=$PWD";
|
||||
@ -1068,18 +1065,6 @@ self: super: {
|
||||
# https://github.com/erikd/hjsmin/issues/32
|
||||
hjsmin = dontCheck super.hjsmin;
|
||||
|
||||
nix-tools = super.nix-tools.overrideScope (self: super: {
|
||||
# Needs https://github.com/peti/hackage-db/pull/9
|
||||
hackage-db = super.hackage-db.overrideAttrs (old: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ElvishJerricco";
|
||||
repo = "hackage-db";
|
||||
rev = "84ca9fc75ad45a71880e938e0d93ea4bde05f5bd";
|
||||
sha256 = "0y3kw1hrxhsqmyx59sxba8npj4ya8dpgjljc21gkgdvdy9628q4c";
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
# upstream issue: https://github.com/vmchale/atspkg/issues/12
|
||||
language-ats = dontCheck super.language-ats;
|
||||
|
||||
@ -1864,4 +1849,44 @@ self: super: {
|
||||
# 2021-05-09: Restrictive bound on hspec-golden. Dep removed in newer versions.
|
||||
tomland = assert super.tomland.version == "1.3.2.0"; doJailbreak super.tomland;
|
||||
|
||||
# 2021-05-09 haskell-ci pins ShellCheck 0.7.1
|
||||
# https://github.com/haskell-CI/haskell-ci/issues/507
|
||||
haskell-ci = super.haskell-ci.override {
|
||||
ShellCheck = self.ShellCheck_0_7_1;
|
||||
};
|
||||
|
||||
Frames-streamly = overrideCabal (super.Frames-streamly.override { relude = super.relude_1_0_0_1; }) (drv: {
|
||||
# https://github.com/adamConnerSax/Frames-streamly/issues/1
|
||||
patchPhase = ''
|
||||
cat > example_data/acs100k.csv <<EOT
|
||||
"YEAR","REGION","STATEFIP","DENSITY","METRO","PUMA","PERWT","SEX","AGE","RACE","RACED","HISPAN","HISPAND","CITIZEN","LANGUAGE","LANGUAGED","SPEAKENG","EDUC","EDUCD","GRADEATT","GRADEATTD","EMPSTAT","EMPSTATD","INCTOT","INCSS","POVERTY"
|
||||
2006,32,1,409.6,3,2300,87.0,1,47,1,100,0,0,0,1,100,3,6,65,0,0,1,12,36000,0,347
|
||||
EOT
|
||||
''; });
|
||||
|
||||
# 2021-05-09: compilation requires patches from master,
|
||||
# remove at next release (current is 0.1.0.4).
|
||||
large-hashable = appendPatches super.large-hashable [
|
||||
# Fix compilation of TH code for GHC >= 8.8
|
||||
(pkgs.fetchpatch {
|
||||
url = "https://github.com/factisresearch/large-hashable/commit/ee7afe4bd181cf15a324c7f4823f7a348e4a0e6b.patch";
|
||||
sha256 = "1ha77v0bc6prxacxhpdfgcsgw8348gvhl9y81smigifgjbinphxv";
|
||||
excludes = [
|
||||
".travis.yml"
|
||||
"stack**"
|
||||
];
|
||||
})
|
||||
# Fix cpp invocation
|
||||
(pkgs.fetchpatch {
|
||||
url = "https://github.com/factisresearch/large-hashable/commit/7b7c2ed6ac6e096478e8ee00160fa9d220df853a.patch";
|
||||
sha256 = "1sf9h3k8jbbgfshzrclaawlwx7k2frb09z2a64f93jhvk6ci6vgx";
|
||||
})
|
||||
];
|
||||
|
||||
# BSON defaults to requiring network instead of network-bsd which is
|
||||
# required nowadays: https://github.com/mongodb-haskell/bson/issues/26
|
||||
bson = appendConfigureFlag (super.bson.override {
|
||||
network = self.network-bsd;
|
||||
}) "-f-_old_network";
|
||||
|
||||
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
||||
|
@ -161,4 +161,11 @@ self: super: {
|
||||
] ++ (drv.librarySystemDepends or []);
|
||||
});
|
||||
|
||||
HTF = overrideCabal super.HTF (drv: {
|
||||
# GNU find is not prefixed in stdenv
|
||||
postPatch = ''
|
||||
substituteInPlace scripts/local-htfpp --replace "find=gfind" "find=find"
|
||||
'' + (drv.postPatch or "");
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -11,8 +11,7 @@ with haskellLib;
|
||||
|
||||
self: super: {
|
||||
|
||||
# This compiler version needs llvm 6.x.
|
||||
llvmPackages = pkgs.llvmPackages_6;
|
||||
llvmPackages = pkgs.llvmPackages_10;
|
||||
|
||||
# Disable GHC 8.7.x core libraries.
|
||||
array = null;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -104,6 +104,7 @@ extra-packages:
|
||||
- gi-gdk == 3.0.24 # 2021-05-07: For haskell-gi 0.25 without gtk4
|
||||
- gi-gtk < 4.0 # 2021-05-07: For haskell-gi 0.25 without gtk4
|
||||
- gi-gdkx11 == 3.0.11 # 2021-05-07: For haskell-gi 0.25 without gtk4
|
||||
- ShellCheck == 0.7.1 # 2021-05-09: haskell-ci 0.12.1 pins this version
|
||||
|
||||
package-maintainers:
|
||||
peti:
|
||||
@ -219,20 +220,22 @@ package-maintainers:
|
||||
- gitit
|
||||
- yarn-lock
|
||||
- yarn2nix
|
||||
- large-hashable
|
||||
poscat:
|
||||
- hinit
|
||||
bdesham:
|
||||
- pinboard-notes-backup
|
||||
|
||||
unsupported-platforms:
|
||||
Allure: [ x86_64-darwin ]
|
||||
alsa-mixer: [ x86_64-darwin ]
|
||||
alsa-pcm: [ x86_64-darwin ]
|
||||
alsa-seq: [ x86_64-darwin ]
|
||||
AWin32Console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
barbly: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
|
||||
bdcs-api: [ x86_64-darwin ]
|
||||
bindings-sane: [ x86_64-darwin ]
|
||||
bindings-directfb: [ x86_64-darwin ]
|
||||
bindings-sane: [ x86_64-darwin ]
|
||||
cut-the-crap: [ x86_64-darwin ]
|
||||
d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
@ -242,8 +245,9 @@ unsupported-platforms:
|
||||
Euterpea: [ x86_64-darwin ]
|
||||
freenect: [ x86_64-darwin ]
|
||||
FTGL: [ x86_64-darwin ]
|
||||
gi-dbusmenugtk3: [ x86_64-darwin ]
|
||||
ghcjs-dom-hello: [ x86_64-darwin ]
|
||||
gi-dbusmenu: [ x86_64-darwin ]
|
||||
gi-dbusmenugtk3: [ x86_64-darwin ]
|
||||
gi-ggit: [ x86_64-darwin ]
|
||||
gi-ibus: [ x86_64-darwin ]
|
||||
gi-ostree: [ x86_64-darwin ]
|
||||
@ -256,8 +260,12 @@ unsupported-platforms:
|
||||
HFuse: [ x86_64-darwin ]
|
||||
hidapi: [ x86_64-darwin ]
|
||||
hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
hpapi: [ x86_64-darwin ]
|
||||
HSoM: [ x86_64-darwin ]
|
||||
iwlib: [ x86_64-darwin ]
|
||||
jsaddle-webkit2gtk: [ x86_64-darwin ]
|
||||
LambdaHack: [ x86_64-darwin ]
|
||||
large-hashable: [ aarch64-linux ] # https://github.com/factisresearch/large-hashable/issues/17
|
||||
libmodbus: [ x86_64-darwin ]
|
||||
libsystemd-journal: [ x86_64-darwin ]
|
||||
libtelnet: [ x86_64-darwin ]
|
||||
@ -266,10 +274,10 @@ unsupported-platforms:
|
||||
lio-fs: [ x86_64-darwin ]
|
||||
logging-facade-journald: [ x86_64-darwin ]
|
||||
midi-alsa: [ x86_64-darwin ]
|
||||
mpi-hs: [ aarch64-linux, x86_64-darwin ]
|
||||
mpi-hs-binary: [ aarch64-linux, x86_64-darwin ]
|
||||
mpi-hs-cereal: [ aarch64-linux, x86_64-darwin ]
|
||||
mpi-hs-store: [ aarch64-linux, x86_64-darwin ]
|
||||
mpi-hs: [ aarch64-linux, x86_64-darwin ]
|
||||
mplayer-spot: [ aarch64-linux ]
|
||||
oculus: [ x86_64-darwin ]
|
||||
pam: [ x86_64-darwin ]
|
||||
@ -279,7 +287,9 @@ unsupported-platforms:
|
||||
posix-api: [ x86_64-darwin ]
|
||||
Raincat: [ x86_64-darwin ]
|
||||
reactivity: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
reflex-dom: [ x86_64-darwin ]
|
||||
reflex-dom-fragment-shader-canvas: [ x86_64-darwin, aarch64-linux ]
|
||||
reflex-dom: [ x86_64-darwin, aarch64-linux ]
|
||||
reflex-localize-dom: [ x86_64-darwin, aarch64-linux ]
|
||||
rtlsdr: [ x86_64-darwin ]
|
||||
rubberband: [ x86_64-darwin ]
|
||||
sbv: [ aarch64-linux ]
|
||||
@ -290,21 +300,22 @@ unsupported-platforms:
|
||||
termonad: [ x86_64-darwin ]
|
||||
tokyotyrant-haskell: [ x86_64-darwin ]
|
||||
udev: [ x86_64-darwin ]
|
||||
verifiable-expressions: [ aarch64-linux ]
|
||||
vrpn: [ x86_64-darwin ]
|
||||
vulkan-utils: [ x86_64-darwin ]
|
||||
vulkan: [ i686-linux, armv7l-linux, x86_64-darwin ]
|
||||
VulkanMemoryAllocator: [ i686-linux, armv7l-linux, x86_64-darwin ]
|
||||
vulkan-utils: [ x86_64-darwin ]
|
||||
webkit2gtk3-javascriptcore: [ x86_64-darwin ]
|
||||
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
xattr: [ x86_64-darwin ]
|
||||
xgboost-haskell: [ aarch64-linux, armv7l-linux ]
|
||||
XInput: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
@ -358,69 +369,26 @@ dont-distribute-packages:
|
||||
- yices-easy
|
||||
- yices-painless
|
||||
|
||||
# these packages don't evaluate because they have broken (system) dependencies
|
||||
- XML
|
||||
- comark
|
||||
- couch-simple
|
||||
# These packages don‘t build because they use deprecated webkit versions.
|
||||
- diagrams-hsqml
|
||||
- diagrams-reflex
|
||||
- dialog
|
||||
- fltkhs-demos
|
||||
- fltkhs-fluid-demos
|
||||
- fltkhs-hello-world
|
||||
- fltkhs-themes
|
||||
- ghcjs-dom-hello
|
||||
- ghcjs-dom-webkit
|
||||
- gi-javascriptcore
|
||||
- gi-webkit
|
||||
- gi-webkit2
|
||||
- gi-webkit2webextension
|
||||
- gsmenu
|
||||
- haste-gapi
|
||||
- haste-perch
|
||||
- hbro
|
||||
- hplayground
|
||||
- hs-mesos
|
||||
- hsqml
|
||||
- hsqml-datamodel
|
||||
- hsqml-datamodel-vinyl
|
||||
- hsqml-datemodel-vinyl
|
||||
- hsqml-demo-manic
|
||||
- hsqml-demo-morris
|
||||
- hsqml-demo-notes
|
||||
- hsqml-demo-notes
|
||||
- hsqml-demo-samples
|
||||
- hsqml-morris
|
||||
- hsqml-morris
|
||||
- hstorchat
|
||||
- imprevu-happstack
|
||||
- jsaddle-webkit2gtk
|
||||
- jsaddle-webkitgtk
|
||||
- jsc
|
||||
- lambdacat
|
||||
- leksah
|
||||
- manatee-all
|
||||
- manatee-browser
|
||||
- manatee-reader
|
||||
- markup-preview
|
||||
- nomyx-api
|
||||
- nomyx-core
|
||||
- nomyx-language
|
||||
- nomyx-library
|
||||
- nomyx-server
|
||||
- passman-cli
|
||||
- passman-core
|
||||
- reflex-dom-colonnade
|
||||
- reflex-dom-contrib
|
||||
- reflex-dom-fragment-shader-canvas
|
||||
- reflex-dom-helpers
|
||||
- reflex-jsx
|
||||
- sneathlane-haste
|
||||
- spike
|
||||
- tianbar
|
||||
- trasa-reflex
|
||||
- treersec
|
||||
- wai-middleware-brotli
|
||||
- web-browser-in-haskell
|
||||
- webkit
|
||||
- webkitgtk3
|
||||
|
File diff suppressed because it is too large
Load Diff
4179
pkgs/development/haskell-modules/hackage-packages.nix
generated
4179
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchurl, python, root, makeWrapper, zlib, withRootSupport ? false }:
|
||||
{ lib, stdenv, fetchurl, fetchpatch, python, root, makeWrapper, zlib, withRootSupport ? false }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yoda";
|
||||
@ -9,6 +9,24 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1x7xi6w7lb92x8202kbaxgqg1sly534wana4f38l3gpbzw9dwmcs";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix a minor bug
|
||||
# https://gitlab.com/hepcedar/yoda/-/merge_requests/38
|
||||
(fetchpatch {
|
||||
name = "yoda-fix-fuzzy-compare-bin2d.patch";
|
||||
url = "https://gitlab.com/hepcedar/yoda/-/commit/a2999d78cb3d9ed874f367bad375dc39a1a11148.diff";
|
||||
sha256 = "sha256-BsaVm+4VtCvRoEuN4r6A4bj9XwgMe75UesKzN+b56Qw=";
|
||||
})
|
||||
# fix a regression
|
||||
# https://gitlab.com/hepcedar/yoda/-/merge_requests/40
|
||||
(fetchpatch {
|
||||
name = "yoda-fix-for-yodagz.patch";
|
||||
url = "https://gitlab.com/hepcedar/yoda/-/commit/3338ba5a7466599ac6969e4ae462f133d6cf4fd8.diff";
|
||||
sha256 = "sha256-MZTOIt468bdPCS7UVfr5hQZUsVy3TpY/TjRrNySIL70=";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
|
||||
buildInputs = [ python ]
|
||||
++ (with python.pkgs; [ numpy matplotlib ])
|
||||
|
@ -25,6 +25,6 @@ mkDerivation rec {
|
||||
description = "Astrometric plate solving library";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ hjones2199 ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
description = "A portable and modular SIP User-Agent with audio and video support";
|
||||
homepage = "https://github.com/freeswitch/spandsp";
|
||||
platforms = with lib.platforms; linux;
|
||||
maintainers = with lib.maintainers; [ ajs124 ];
|
||||
platforms = with lib.platforms; unix;
|
||||
maintainers = with lib.maintainers; [ ajs124 misuzu ];
|
||||
license = lib.licenses.gpl2;
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, fetchPypi, buildPythonPackage
|
||||
, agate, openpyxl, xlrd, nose
|
||||
, agate, openpyxl, xlrd, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -13,11 +13,12 @@ buildPythonPackage rec {
|
||||
|
||||
propagatedBuildInputs = [ agate openpyxl xlrd ];
|
||||
|
||||
checkInputs = [ nose ];
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
checkPhase = ''
|
||||
nosetests
|
||||
'';
|
||||
disabledTests = [
|
||||
# See https://github.com/wireservice/agate-excel/issues/45
|
||||
"test_ambiguous_date"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Adds read support for excel files to agate";
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "denonavr";
|
||||
version = "0.10.6";
|
||||
version = "0.10.7";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scarface-4711";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-jcbjExcyZSE+qVPuYiMmuneugDMBoYz4apY/lz4JnMI=";
|
||||
sha256 = "sha256-IGfU9nnlfZf8U6pCzG7cegmqxmDNONom0U14PZHHaYY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hatasmota";
|
||||
version = "0.2.11";
|
||||
version = "0.2.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "emontnemery";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-S2pVxYpB8NcZIbhC+gnGrJxM6tvoPS1Uh87HTYiksWI=";
|
||||
sha256 = "sha256-rf0EB9PxageMQhPzG96oWovt+5L/u68VPllzPT4yp2A=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "isbnlib";
|
||||
version = "3.10.7";
|
||||
version = "3.10.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-gbMxV9qOLCpIH3rUceG1ds9ZUpjwOv1gyYL3GLkS3Ik=";
|
||||
sha256 = "sha256-6kBu8uFDiKs5ZJXw9gTS08lstaJWuWvAVW3Ycc19x7Q=";
|
||||
};
|
||||
|
||||
checkInputs = [
|
||||
@ -22,7 +22,13 @@ buildPythonPackage rec {
|
||||
# requires network connection
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "isbnlib" ];
|
||||
pythonImportsCheck = [
|
||||
"isbnlib"
|
||||
"isbnlib.config"
|
||||
"isbnlib.dev"
|
||||
"isbnlib.dev.helpers"
|
||||
"isbnlib.registry"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extract, clean, transform, hyphenate and metadata for ISBNs";
|
||||
|
52
pkgs/development/python-modules/motioneye-client/default.nix
Normal file
52
pkgs/development/python-modules/motioneye-client/default.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ lib
|
||||
, aiohttp
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, poetry-core
|
||||
, pytest-aiohttp
|
||||
, pytest-timeout
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "motioneye-client";
|
||||
version = "0.3.6";
|
||||
format = "pyproject";
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dermotduffy";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0j28rn7059km7q6z1kalp0pjcrd42wcm5mnbi94j93bvfld97w70";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
aiohttp
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytest-aiohttp
|
||||
pytest-timeout
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace " --cov-report=html:htmlcov --cov-report=xml:coverage.xml --cov-report=term-missing --cov=motioneye_client --cov-fail-under=100" ""
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "motioneye_client" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python library for motionEye";
|
||||
homepage = "https://github.com/dermotduffy/motioneye-client";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -1,31 +1,31 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, aiohttp
|
||||
, async-timeout
|
||||
, buildPythonPackage
|
||||
, crcmod
|
||||
, defusedxml
|
||||
, pyserial
|
||||
, pytz
|
||||
, python-dateutil
|
||||
, semver
|
||||
, fetchFromGitHub
|
||||
, jsonpickle
|
||||
, munch
|
||||
, mypy
|
||||
, pyserial
|
||||
, pytest-aiohttp
|
||||
, pytest-asyncio
|
||||
, pytest-cov
|
||||
, pytestCheckHook
|
||||
, python-dateutil
|
||||
, pytz
|
||||
, semver
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "plugwise";
|
||||
version = "0.9.3";
|
||||
version = "0.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = "python-plugwise";
|
||||
rev = version;
|
||||
sha256 = "sha256-MZ4R55vGUyWmR0Md83eNerzsgtYMch1vfQ3sqbm12bM=";
|
||||
sha256 = "sha256-5r+Xe3EKLjuR7mPGEPOKzhE7G6OzNEClf847Px9VdWU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@ -33,9 +33,10 @@ buildPythonPackage rec {
|
||||
async-timeout
|
||||
crcmod
|
||||
defusedxml
|
||||
munch
|
||||
pyserial
|
||||
pytz
|
||||
python-dateutil
|
||||
pytz
|
||||
semver
|
||||
];
|
||||
|
||||
@ -44,8 +45,6 @@ buildPythonPackage rec {
|
||||
mypy
|
||||
pytest-aiohttp
|
||||
pytest-asyncio
|
||||
pytest-cov
|
||||
pytest-asyncio
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
|
@ -17,14 +17,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyinsteon";
|
||||
version = "1.0.10";
|
||||
version = "1.0.11";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-8b/PvMFHvYGVWw6ycLnL8n972cn+1QW/VTMiblMPam4=";
|
||||
sha256 = "sha256-dT01nKXDjkFSIf2BmrIcC8a9n00hlyd59oPwXn1CBaw=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, buildPythonPackage, fetchFromGitHub
|
||||
{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch
|
||||
, execnet
|
||||
, glob2
|
||||
, Mako
|
||||
@ -7,29 +7,38 @@
|
||||
, parse-type
|
||||
, py
|
||||
, pytest
|
||||
, pytestCheckHook
|
||||
, six
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pytest-bdd";
|
||||
version = "4.0.1";
|
||||
version = "4.0.2";
|
||||
|
||||
# tests are not included in pypi tarball
|
||||
src = fetchFromGitHub {
|
||||
owner = "pytest-dev";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1yqzz44as4pxffmg4hk9lijvnvlc2chg1maq1fbj5i4k4jpagvjz";
|
||||
sha256 = "0pxx4c8lm68rw0jshbr09fnadg8zz8j73q0qi49yw9s7yw86bg5l";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixed compatibility with pytest > 6.1
|
||||
(fetchpatch {
|
||||
url = "https://github.com/pytest-dev/pytest-bdd/commit/e1dc0cad9a1c1ba563ccfbc24f9993d83ac59293.patch";
|
||||
sha256 = "1p3gavh6nir2a8crd5wdf0prfrg0hmgar9slvn8a21ils3k5pm5y";
|
||||
})
|
||||
];
|
||||
|
||||
|
||||
buildInputs = [ pytest ];
|
||||
|
||||
propagatedBuildInputs = [ glob2 Mako parse parse-type py six ];
|
||||
|
||||
# Tests require extra dependencies
|
||||
checkInputs = [ execnet mock pytest ];
|
||||
checkPhase = ''
|
||||
PATH=$PATH:$out/bin pytest
|
||||
checkInputs = [ pytestCheckHook execnet mock ];
|
||||
preCheck = ''
|
||||
export PATH=$PATH:$out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
48
pkgs/development/python-modules/rtoml/default.nix
Normal file
48
pkgs/development/python-modules/rtoml/default.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pythonOlder
|
||||
, setuptools-rust
|
||||
, rustPlatform
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "rtoml";
|
||||
version = "0.6.1";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "samuelcolvin";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "07bf30if1wmbqjp5n4ib43n6frx8ybyxc9fndxncq7aylkrhd7hy";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "1q082sdac5vm4l3b45rfjp4vppp9y9qhagdjqqfdz8gdhm1k8yyy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with rustPlatform; [
|
||||
setuptools-rust
|
||||
rust.rustc
|
||||
rust.cargo
|
||||
cargoSetupHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "rtoml" ];
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
preCheck = ''
|
||||
cd tests
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Rust based TOML library for python";
|
||||
homepage = "https://github.com/samuelcolvin/rtoml";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ evils ];
|
||||
};
|
||||
}
|
@ -11,11 +11,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "watchdog";
|
||||
version = "2.0.3";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-QojTqYQyTbSS5XqhaWZiOKJXjwr1oIFoVSZgj7n2vWE=";
|
||||
sha256 = "sha256-VTFu+rUvZZuLe1lzBoC/snrAA1IvJMRPa81gxONzbM0=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
|
||||
|
@ -1,71 +1,104 @@
|
||||
{ lib, stdenv, fetchFromGitHub,
|
||||
fetchHex, erlang,
|
||||
tree }:
|
||||
fetchHex, erlang, makeWrapper }:
|
||||
|
||||
let
|
||||
version = "3.15.1";
|
||||
|
||||
# Dependencies should match the ones in:
|
||||
# https://github.com/erlang/rebar3/blob/${version}/rebar.lock
|
||||
# `sha256` could also be taken from https://hex.pm - Checksum
|
||||
owner = "erlang";
|
||||
deps = import ./rebar-deps.nix { inherit fetchHex; };
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rebar3";
|
||||
inherit version erlang;
|
||||
rebar3 = stdenv.mkDerivation rec {
|
||||
pname = "rebar3";
|
||||
inherit version erlang;
|
||||
|
||||
# How to obtain `sha256`:
|
||||
# nix-prefetch-url --unpack https://github.com/erlang/rebar3/archive/${version}.tar.gz
|
||||
src = fetchFromGitHub {
|
||||
inherit owner;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1pcy5m79g0l9l3d8lkbx6cq1w87z1g3sa6wwvgbgraj2v3wkyy5g";
|
||||
};
|
||||
|
||||
bootstrapper = ./rebar3-nix-bootstrap;
|
||||
|
||||
buildInputs = [ erlang ];
|
||||
|
||||
postPatch = ''
|
||||
mkdir -p _checkouts _build/default/lib/
|
||||
|
||||
${toString (lib.mapAttrsToList (k: v: ''
|
||||
cp -R --no-preserve=mode ${v} _checkouts/${k}
|
||||
'') deps)}
|
||||
|
||||
# Bootstrap script expects the dependencies in _build/default/lib
|
||||
# TODO: Make it accept checkouts?
|
||||
for i in _checkouts/* ; do
|
||||
ln -s $(pwd)/$i $(pwd)/_build/default/lib/
|
||||
done
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
HOME=. escript bootstrap
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp rebar3 $out/bin/rebar3
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/rebar/rebar3";
|
||||
description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
|
||||
|
||||
longDescription = ''
|
||||
rebar is a self-contained Erlang script, so it's easy to distribute or
|
||||
even embed directly in a project. Where possible, rebar uses standard
|
||||
Erlang/OTP conventions for project structures, thus minimizing the amount
|
||||
of build configuration work. rebar also provides dependency management,
|
||||
enabling application writers to easily re-use common libraries from a
|
||||
variety of locations (hex.pm, git, hg, and so on).
|
||||
'';
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = lib.teams.beam.members;
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
|
||||
# How to obtain `sha256`:
|
||||
# nix-prefetch-url --unpack https://github.com/erlang/rebar3/archive/${version}.tar.gz
|
||||
src = fetchFromGitHub {
|
||||
owner = "erlang";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1pcy5m79g0l9l3d8lkbx6cq1w87z1g3sa6wwvgbgraj2v3wkyy5g";
|
||||
};
|
||||
rebar3WithPlugins = { plugins ? [ ], globalPlugins ? [ ] }:
|
||||
let
|
||||
pluginLibDirs = map (p: "${p}/lib/erlang/lib") (lib.unique (plugins ++ globalPlugins));
|
||||
globalPluginNames = lib.unique (map (p: p.packageName) globalPlugins);
|
||||
rebar3Patched = (rebar3.overrideAttrs (old: {
|
||||
|
||||
bootstrapper = ./rebar3-nix-bootstrap;
|
||||
# skip-plugins.patch is necessary because otherwise rebar3 will always
|
||||
# try to fetch plugins if they are not already present in _build.
|
||||
#
|
||||
# global-deps.patch makes it possible to use REBAR_GLOBAL_PLUGINS to
|
||||
# instruct rebar3 to always load a certain plugin. It is necessary since
|
||||
# REBAR_GLOBAL_CONFIG_DIR doesn't seem to work for this.
|
||||
patches = [ ./skip-plugins.patch ./global-plugins.patch ];
|
||||
}));
|
||||
in stdenv.mkDerivation {
|
||||
pname = "rebar3-with-plugins";
|
||||
inherit (rebar3) version bootstrapper;
|
||||
nativeBuildInputs = [ erlang makeWrapper ];
|
||||
unpackPhase = "true";
|
||||
|
||||
buildInputs = [ erlang tree ];
|
||||
# Here we extract the rebar3 escript (like `rebar3_prv_local_install.erl`) and
|
||||
# add plugins to the code path.
|
||||
|
||||
postPatch = ''
|
||||
mkdir -p _checkouts
|
||||
mkdir -p _build/default/lib/
|
||||
|
||||
${toString (lib.mapAttrsToList (k: v: ''
|
||||
cp -R --no-preserve=mode ${v} _checkouts/${k}
|
||||
'') deps)}
|
||||
|
||||
# Bootstrap script expects the dependencies in _build/default/lib
|
||||
# TODO: Make it accept checkouts?
|
||||
for i in _checkouts/* ; do
|
||||
ln -s $(pwd)/$i $(pwd)/_build/default/lib/
|
||||
done
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
HOME=. escript bootstrap
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp rebar3 $out/bin/rebar3
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/rebar/rebar3";
|
||||
description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
|
||||
|
||||
longDescription = ''
|
||||
rebar is a self-contained Erlang script, so it's easy to distribute or
|
||||
even embed directly in a project. Where possible, rebar uses standard
|
||||
Erlang/OTP conventions for project structures, thus minimizing the amount
|
||||
of build configuration work. rebar also provides dependency management,
|
||||
enabling application writers to easily re-use common libraries from a
|
||||
variety of locations (hex.pm, git, hg, and so on).
|
||||
installPhase = ''
|
||||
erl -noshell -eval '
|
||||
{ok, Escript} = escript:extract("${rebar3Patched}/bin/rebar3", []),
|
||||
{archive, Archive} = lists:keyfind(archive, 1, Escript),
|
||||
{ok, _} = zip:extract(Archive, [{cwd, "'$out/lib'"}]),
|
||||
init:stop(0)
|
||||
'
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${erlang}/bin/erl $out/bin/rebar3 \
|
||||
--set REBAR_GLOBAL_PLUGINS "${toString globalPluginNames}" \
|
||||
--suffix-each ERL_LIBS ":" "$out/lib ${toString pluginLibDirs}" \
|
||||
--add-flags "+sbtu +A1 -noshell -boot start_clean -s rebar3 main -extra"
|
||||
'';
|
||||
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = lib.teams.beam.members;
|
||||
license = lib.licenses.asl20;
|
||||
};
|
||||
}
|
||||
};
|
||||
in { inherit rebar3 rebar3WithPlugins; }
|
||||
|
@ -0,0 +1,14 @@
|
||||
diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl
|
||||
index f2d22233..bee2cf18 100644
|
||||
--- a/src/rebar_plugins.erl
|
||||
+++ b/src/rebar_plugins.erl
|
||||
@@ -30,7 +30,8 @@ project_plugins_install(State) ->
|
||||
top_level_install(State) ->
|
||||
Profiles = rebar_state:current_profiles(State),
|
||||
lists:foldl(fun(Profile, StateAcc) ->
|
||||
- Plugins = rebar_state:get(State, {plugins, Profile}, []),
|
||||
+ Plugins = rebar_state:get(State, {plugins, Profile}, [])
|
||||
+ ++ [list_to_atom(P) || P <- string:lexemes(os:getenv("REBAR_GLOBAL_PLUGINS", ""), " ")],
|
||||
handle_plugins(Profile, Plugins, StateAcc)
|
||||
end, State, Profiles).
|
||||
|
@ -26,9 +26,7 @@
|
||||
|
||||
-record(data, {version
|
||||
, debug_info = false
|
||||
, compile_ports
|
||||
, erl_libs
|
||||
, plugins
|
||||
, root
|
||||
, name}).
|
||||
|
||||
@ -42,7 +40,6 @@ main(Args) ->
|
||||
-spec do_the_bootstrap(#data{}) -> ok.
|
||||
do_the_bootstrap(RequiredData) ->
|
||||
ok = bootstrap_configs(RequiredData),
|
||||
ok = bootstrap_plugins(RequiredData),
|
||||
ok = bootstrap_libs(RequiredData).
|
||||
|
||||
%% @doc
|
||||
@ -68,22 +65,8 @@ parse_args(Args0) ->
|
||||
bootstrap_configs(RequiredData)->
|
||||
io:format("Boostrapping app and rebar configurations~n"),
|
||||
ok = if_single_app_project_update_app_src_version(RequiredData),
|
||||
ok = if_compile_ports_add_pc_plugin(RequiredData),
|
||||
ok = if_debug_info_add(RequiredData).
|
||||
|
||||
-spec bootstrap_plugins(#data{}) -> ok.
|
||||
bootstrap_plugins(#data{plugins = Plugins}) ->
|
||||
io:format("Bootstrapping rebar3 plugins~n"),
|
||||
Target = "_build/default/plugins/",
|
||||
Paths = string:tokens(Plugins, " "),
|
||||
CopiableFiles =
|
||||
lists:foldl(fun(Path, Acc) ->
|
||||
gather_dependency(Path) ++ Acc
|
||||
end, [], Paths),
|
||||
lists:foreach(fun (Path) ->
|
||||
ok = link_app(Path, Target)
|
||||
end, CopiableFiles).
|
||||
|
||||
-spec bootstrap_libs(#data{}) -> ok.
|
||||
bootstrap_libs(#data{erl_libs = ErlLibs}) ->
|
||||
io:format("Bootstrapping dependent libraries~n"),
|
||||
@ -152,10 +135,9 @@ fixup_app_name(FileName) ->
|
||||
gather_required_data_from_the_environment(ArgData) ->
|
||||
{ok, ArgData#data{ version = guard_env("version")
|
||||
, erl_libs = get_env("ERL_LIBS", [])
|
||||
, plugins = get_env("buildPlugins", [])
|
||||
, root = code:root_dir()
|
||||
, name = guard_env("name")
|
||||
, compile_ports = nix2bool(get_env("compilePorts", ""))}}.
|
||||
}}.
|
||||
|
||||
-spec nix2bool(any()) -> boolean().
|
||||
nix2bool("1") ->
|
||||
@ -209,27 +191,6 @@ add_debug_info(Config) ->
|
||||
{erl_opts, [debug_info | ExistingOpts]})
|
||||
end.
|
||||
|
||||
|
||||
%% @doc
|
||||
%% If the compile ports flag is set, rewrite the rebar config to
|
||||
%% include the 'pc' plugin.
|
||||
-spec if_compile_ports_add_pc_plugin(#data{}) -> ok.
|
||||
if_compile_ports_add_pc_plugin(#data{compile_ports = true}) ->
|
||||
ConfigTerms = add_pc_to_plugins(read_rebar_config()),
|
||||
Text = lists:map(fun(Term) -> io_lib:format("~tp.~n", [Term]) end,
|
||||
ConfigTerms),
|
||||
file:write_file("rebar.config", Text);
|
||||
if_compile_ports_add_pc_plugin(_) ->
|
||||
ok.
|
||||
|
||||
-spec add_pc_to_plugins([term()]) -> [term()].
|
||||
add_pc_to_plugins(Config) ->
|
||||
PluginList = case lists:keysearch(plugins, 1, Config) of
|
||||
{value, {plugins, ExistingPluginList}} -> ExistingPluginList;
|
||||
_ -> []
|
||||
end,
|
||||
lists:keystore(plugins, 1, Config, {plugins, [pc | PluginList]}).
|
||||
|
||||
-spec read_rebar_config() -> [term()].
|
||||
read_rebar_config() ->
|
||||
case file:consult("rebar.config") of
|
||||
|
@ -0,0 +1,54 @@
|
||||
diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl
|
||||
index f2d22233..c61fa553 100644
|
||||
--- a/src/rebar_plugins.erl
|
||||
+++ b/src/rebar_plugins.erl
|
||||
@@ -106,31 +106,9 @@ handle_plugins(Profile, Plugins, State, Upgrade) ->
|
||||
State3 = rebar_state:set(State2, deps_dir, DepsDir),
|
||||
rebar_state:lock(State3, Locks).
|
||||
|
||||
-handle_plugin(Profile, Plugin, State, Upgrade) ->
|
||||
+handle_plugin(_Profile, Plugin, State, _Upgrade) ->
|
||||
try
|
||||
- {Apps, State2} = rebar_prv_install_deps:handle_deps_as_profile(Profile, State, [Plugin], Upgrade),
|
||||
- {no_cycle, Sorted} = rebar_prv_install_deps:find_cycles(Apps),
|
||||
- ToBuild = rebar_prv_install_deps:cull_compile(Sorted, []),
|
||||
-
|
||||
- %% Add already built plugin deps to the code path
|
||||
- ToBuildPaths = [rebar_app_info:ebin_dir(A) || A <- ToBuild],
|
||||
- PreBuiltPaths = [Ebin || A <- Apps,
|
||||
- Ebin <- [rebar_app_info:ebin_dir(A)],
|
||||
- not lists:member(Ebin, ToBuildPaths)],
|
||||
- code:add_pathsa(PreBuiltPaths),
|
||||
-
|
||||
- %% Build plugin and its deps
|
||||
- build_plugins(ToBuild, Apps, State2),
|
||||
-
|
||||
- %% Add newly built deps and plugin to code path
|
||||
- State3 = rebar_state:update_all_plugin_deps(State2, Apps),
|
||||
- NewCodePaths = [rebar_app_info:ebin_dir(A) || A <- ToBuild],
|
||||
-
|
||||
- %% Store plugin code paths so we can remove them when compiling project apps
|
||||
- State4 = rebar_state:update_code_paths(State3, all_plugin_deps, PreBuiltPaths++NewCodePaths),
|
||||
- rebar_paths:set_paths([plugins], State4),
|
||||
-
|
||||
- {plugin_providers(Plugin), State4}
|
||||
+ {plugin_providers(Plugin), State}
|
||||
catch
|
||||
?WITH_STACKTRACE(C,T,S)
|
||||
?DEBUG("~p ~p ~p", [C, T, S]),
|
||||
@@ -138,15 +116,6 @@ handle_plugin(Profile, Plugin, State, Upgrade) ->
|
||||
{[], State}
|
||||
end.
|
||||
|
||||
-build_plugins(MustBuildApps, AllApps, State) ->
|
||||
- State1 = rebar_state:deps_to_build(State, MustBuildApps),
|
||||
- State2 = rebar_state:all_deps(State1, AllApps),
|
||||
- State3 = rebar_state:set(State2, deps_dir, ?DEFAULT_PLUGINS_DIR),
|
||||
- {Args, Extra} = rebar_state:command_parsed_args(State),
|
||||
- State4 = rebar_state:command_parsed_args(State3, {[{deps_only, true}|Args], Extra}),
|
||||
- rebar_prv_compile:do(State4),
|
||||
- ok.
|
||||
-
|
||||
plugin_providers({Plugin, _, _, _}) when is_atom(Plugin) ->
|
||||
validate_plugin(Plugin);
|
||||
plugin_providers({Plugin, _, _}) when is_atom(Plugin) ->
|
@ -257,12 +257,12 @@ let
|
||||
|
||||
barbar-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "barbar-nvim";
|
||||
version = "2021-05-06";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "romgrk";
|
||||
repo = "barbar.nvim";
|
||||
rev = "566a7ef96e6e935c6e84ddfb73e3a50a7b196638";
|
||||
sha256 = "0caglapjgnghp9j1vyk162ch66bhcpgidp2radfiayh5mnifpqv2";
|
||||
rev = "1e7347964ceab49c5ed7e1224de328cdd8b90919";
|
||||
sha256 = "00p1h7nznrhjfddxzxamyjkf9cgdjw9f8zhzs366k8gfva5fh4r3";
|
||||
};
|
||||
meta.homepage = "https://github.com/romgrk/barbar.nvim/";
|
||||
};
|
||||
@ -1220,12 +1220,12 @@ let
|
||||
|
||||
diffview-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "diffview-nvim";
|
||||
version = "2021-05-08";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sindrets";
|
||||
repo = "diffview.nvim";
|
||||
rev = "daf0134615e488e04223f5bb2377112bf274f481";
|
||||
sha256 = "0njdhp3xp00dh4892b7vvgxwnd70ql1aa099vpy33ra3lzvy6jn0";
|
||||
rev = "272a474abf7d1b64d5dcaf21f80d6fdc7b623ead";
|
||||
sha256 = "14y9gj9054dr2jiz2d1w9y03jh1mp4r04vyabj6nsjk2fg84dz38";
|
||||
};
|
||||
meta.homepage = "https://github.com/sindrets/diffview.nvim/";
|
||||
};
|
||||
@ -1499,12 +1499,12 @@ let
|
||||
|
||||
friendly-snippets = buildVimPluginFrom2Nix {
|
||||
pname = "friendly-snippets";
|
||||
version = "2021-05-09";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rafamadriz";
|
||||
repo = "friendly-snippets";
|
||||
rev = "10135fd89dd433191672b34d7ab2b4bc682bfa5e";
|
||||
sha256 = "09h8vbyyynbiyaiainb0jfbny7cprl7rjpfz5nfl7jq8lsmc0x42";
|
||||
rev = "83de9287ad388f55b7d74f66b8ea5b89bb6abf24";
|
||||
sha256 = "13jp8bg85yyxyl390ymrp6qasg4p6a57x08m2l9ld8wiq33ps6yp";
|
||||
};
|
||||
meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
|
||||
};
|
||||
@ -1847,12 +1847,12 @@ let
|
||||
|
||||
hologram-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "hologram-nvim";
|
||||
version = "2021-05-01";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "edluffy";
|
||||
repo = "hologram.nvim";
|
||||
rev = "31108af1a9a4fc842656c6a319ce3decc3baf8e8";
|
||||
sha256 = "0kgbcggx5kr0h95f2gwpfr1h3wbv73pis8dkmjgmr6gpj70zsk7v";
|
||||
rev = "975e9fbd0c154deb9c4e212490fb31cfa4257c98";
|
||||
sha256 = "0xfwwmzmwj9s67jwr7bpazhbwdqpva7yzy4xsdx1l8pmaszni977";
|
||||
};
|
||||
meta.homepage = "https://github.com/edluffy/hologram.nvim/";
|
||||
};
|
||||
@ -2136,12 +2136,12 @@ let
|
||||
|
||||
julia-vim = buildVimPluginFrom2Nix {
|
||||
pname = "julia-vim";
|
||||
version = "2021-04-26";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "JuliaEditorSupport";
|
||||
repo = "julia-vim";
|
||||
rev = "b437dae505b0fbb6aac92a9aad8f4fb68ea1259b";
|
||||
sha256 = "1l2kiaa44hd7x9a0w1x5kwfvqnkkzi9i7qnjnhch083chmjjy13d";
|
||||
rev = "ce59786999f4715b5c806a3a2162a1cfcf5e9cfd";
|
||||
sha256 = "1c9qyx5zd7ynpm2inws7kkig1zvs6j6j2gg5kl63ngvlcsihd0qk";
|
||||
};
|
||||
meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
|
||||
};
|
||||
@ -2412,12 +2412,12 @@ let
|
||||
|
||||
lsp-trouble-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "lsp-trouble-nvim";
|
||||
version = "2021-05-09";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "lsp-trouble.nvim";
|
||||
rev = "0c9ca5e10c2e5dd8d8479e864e12383b1d614273";
|
||||
sha256 = "096af9qdz15kqjq9alajjdr6n3r2az2673imyva0mcwpwc007pl5";
|
||||
rev = "1dd72c22403519c160b0c694762091971bcf191e";
|
||||
sha256 = "1831ywvbl51zd8m5rkpq59dw6s55snsyv94n28vl316cm65q28ji";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/lsp-trouble.nvim/";
|
||||
};
|
||||
@ -2460,12 +2460,12 @@ let
|
||||
|
||||
lualine-nvim = buildVimPluginFrom2Nix {
|
||||
pname = "lualine-nvim";
|
||||
version = "2021-05-09";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "hoob3rt";
|
||||
repo = "lualine.nvim";
|
||||
rev = "82826ef66111f1bbdcc6f8e5bc2b19d7e0542229";
|
||||
sha256 = "03wbgqhhyjc7fjhmdmywkirlwy78ziagpvjar4gvjl41rbjn7fgp";
|
||||
rev = "11280b44f2f3812b60e99b7e07e4d37bee418cb0";
|
||||
sha256 = "0ifbkjsgjilczmqn2lpkw4jl648hns06klx07md9y3sc5i5jqjjq";
|
||||
};
|
||||
meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
|
||||
};
|
||||
@ -3240,12 +3240,12 @@ let
|
||||
|
||||
nvim-dap = buildVimPluginFrom2Nix {
|
||||
pname = "nvim-dap";
|
||||
version = "2021-05-07";
|
||||
version = "2021-05-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mfussenegger";
|
||||
repo = "nvim-dap";
|
||||
rev = "f0c43dca363a52acf2b8e5a62363f2def40139f8";
|
||||
sha256 = "0dmzk93d7xpiyvavsg7s3snfrcpnsyl2is87bild6vj9l13hl7pb";
|
||||
rev = "7c6d12132339d7ef4136dabdd316a20e9c7dd8cf";
|
||||
sha256 = "1hjf67pn1brrfyl4lyqg4y7112r8p3ak85iimgb9pqgrifr3xpzm";
|
||||
};
|
||||
meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
|
||||
};
|
||||
@ -8850,6 +8850,18 @@ let
|
||||
meta.homepage = "https://github.com/dag/vim2hs/";
|
||||
};
|
||||
|
||||
vim_current_word = buildVimPluginFrom2Nix {
|
||||
pname = "vim_current_word";
|
||||
version = "2021-01-27";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dominikduda";
|
||||
repo = "vim_current_word";
|
||||
rev = "84ae9300de73cf878c805a6228a58d408b6b829d";
|
||||
sha256 = "0k0wq3aqrbwrqyfz36qdqzyq7cw16d34yvw0gvzyg7iany0z0r6r";
|
||||
};
|
||||
meta.homepage = "https://github.com/dominikduda/vim_current_word/";
|
||||
};
|
||||
|
||||
vimacs = buildVimPluginFrom2Nix {
|
||||
pname = "vimacs";
|
||||
version = "2016-03-24";
|
||||
|
@ -95,6 +95,7 @@ digitaltoad/vim-pug
|
||||
direnv/direnv.vim
|
||||
dleonard0/pony-vim-syntax
|
||||
dmix/elvish.vim
|
||||
dominikduda/vim_current_word
|
||||
dpelle/vim-LanguageTool
|
||||
dracula/vim as dracula-vim
|
||||
drewtempelmeyer/palenight.vim
|
||||
|
@ -521,7 +521,7 @@
|
||||
"monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
|
||||
"moon" = ps: with ps; [ ];
|
||||
"motion_blinds" = ps: with ps; [ ]; # missing inputs: motionblinds
|
||||
"motioneye" = ps: with ps; [ ]; # missing inputs: motioneye-client
|
||||
"motioneye" = ps: with ps; [ motioneye-client ];
|
||||
"mpchc" = ps: with ps; [ ];
|
||||
"mpd" = ps: with ps; [ mpd2 ];
|
||||
"mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
|
||||
|
@ -182,17 +182,17 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
doCheck = stdenv.isLinux;
|
||||
|
||||
checkInputs = [
|
||||
# test infrastructure
|
||||
asynctest
|
||||
# test infrastructure (selectively from requirement_test.txt)
|
||||
pytest-aiohttp
|
||||
pytest-mock
|
||||
pytest-rerunfailures
|
||||
pytest-xdist
|
||||
pytestCheckHook
|
||||
requests-mock
|
||||
# component dependencies
|
||||
pyotp
|
||||
jsonpickle
|
||||
respx
|
||||
# required by tests/auth/mfa_modules
|
||||
pyotp
|
||||
] ++ lib.concatMap (component: getPackages component py.pkgs) componentTests;
|
||||
|
||||
# We can reasonably test components that don't communicate with any network
|
||||
@ -311,6 +311,7 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
"mobile_app"
|
||||
"modbus"
|
||||
"moon"
|
||||
"motioneye"
|
||||
"mqtt"
|
||||
"mqtt_eventstream"
|
||||
"mqtt_json"
|
||||
@ -333,6 +334,7 @@ in with py.pkgs; buildPythonApplication rec {
|
||||
"persistent_notification"
|
||||
"person"
|
||||
"plaato"
|
||||
"plugwise"
|
||||
"prometheus"
|
||||
"proximity"
|
||||
"push"
|
||||
|
25
pkgs/tools/misc/atuin/default.nix
Normal file
25
pkgs/tools/misc/atuin/default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "atuin";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ellie";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jjGP8YeHnEr0f9RONwA6wZT872C0jXTvSRdt9zAu6KE=";
|
||||
};
|
||||
|
||||
cargoSha256 = "0vy6q3hjp374lyg00zxim8aplh83iq3f4rrmpz5vnpwbag1fdql3";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
|
||||
homepage = "https://github.com/ellie/atuin";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.onsails ];
|
||||
};
|
||||
}
|
@ -23,6 +23,7 @@ let
|
||||
efiSystemsBuild = {
|
||||
i686-linux.target = "i386";
|
||||
x86_64-linux.target = "x86_64";
|
||||
armv7l-linux.target = "arm";
|
||||
aarch64-linux.target = "aarch64";
|
||||
};
|
||||
|
||||
@ -31,6 +32,7 @@ let
|
||||
efiSystemsInstall = {
|
||||
i686-linux.target = "i386";
|
||||
x86_64-linux.target = "x86_64";
|
||||
armv7l-linux.target = "arm";
|
||||
aarch64-linux.target = "arm64";
|
||||
};
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "topgrade";
|
||||
version = "6.8.0";
|
||||
version = "6.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "r-darwish";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-PPOsb9bne0q/WGAL3W2RGo/0yxyz/XXU3xYXKcCIqX0=";
|
||||
sha256 = "sha256-FW0vGwMHUgFSMggZoT+koSkub4xSKeQ+PNlvFjGIy7o=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-IirU/4hE+jo5A9pB7RnePhqcbCZXBCe0Ki6i7eEWIbk=";
|
||||
cargoSha256 = "sha256-+JNQITHP5rwbfavBeb4/IUo5FThhKcKDRwGeT5m6k5k=";
|
||||
|
||||
buildInputs = lib.optional stdenv.isDarwin Foundation;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, rustPlatform, pkg-config, cmake, llvmPackages, openssl, fetchFromGitHub
|
||||
, installShellFiles }:
|
||||
, installShellFiles, stdenv, Security, libiconv }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "tremor";
|
||||
@ -16,7 +16,8 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config installShellFiles ];
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ Security libiconv ];
|
||||
|
||||
# TODO export TREMOR_PATH($out/lib) variable
|
||||
postInstall = ''
|
||||
@ -40,7 +41,7 @@ rustPlatform.buildRustPackage rec {
|
||||
description = "Early stage event processing system for unstructured data with rich support for structural pattern matching, filtering and transformation";
|
||||
homepage = "https://www.tremor.rs/";
|
||||
license = licenses.asl20;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
platforms = platforms.x86_64;
|
||||
maintainers = with maintainers; [ humancalico ];
|
||||
};
|
||||
}
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "protontricks";
|
||||
version = "1.5.0";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Matoking";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-IHgoi5VUN3ORbufkruPb6wR7pTekJFQHhhDrnjOWzWM=";
|
||||
hash = "sha256-SrBPqGRIsP0+ZWDe96sqjqCpJoY3Sn3VoPpMw7ellC0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -26,10 +26,7 @@ buildPythonApplication rec {
|
||||
./steam-run.patch
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
|
||||
'';
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
nativeBuildInputs = [ setuptools_scm ];
|
||||
propagatedBuildInputs = [ vdf ];
|
||||
|
||||
@ -52,7 +49,7 @@ buildPythonApplication rec {
|
||||
meta = with lib; {
|
||||
description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
|
||||
homepage = "https://github.com/Matoking/protontricks";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ metadark ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py
|
||||
index 9641970..6a2b268 100755
|
||||
index cc65a03..5c3fc7a 100755
|
||||
--- a/src/protontricks/cli.py
|
||||
+++ b/src/protontricks/cli.py
|
||||
@@ -15,8 +15,8 @@ import sys
|
||||
@ -10,10 +10,10 @@ index 9641970..6a2b268 100755
|
||||
- find_steam_path, get_steam_apps, get_steam_lib_paths)
|
||||
+from .steam import (find_proton_app, find_steam_path, get_steam_apps,
|
||||
+ get_steam_lib_paths)
|
||||
from .util import run_command
|
||||
from .util import run_command, is_flatpak_sandbox
|
||||
from .winetricks import get_winetricks_path
|
||||
|
||||
@@ -75,8 +75,7 @@ def main(args=None):
|
||||
@@ -77,8 +77,7 @@ def main(args=None):
|
||||
"WINE: path to a custom 'wine' executable\n"
|
||||
"WINESERVER: path to a custom 'wineserver' executable\n"
|
||||
"STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam "
|
||||
@ -23,7 +23,7 @@ index 9641970..6a2b268 100755
|
||||
),
|
||||
formatter_class=argparse.RawTextHelpFormatter
|
||||
)
|
||||
@@ -138,18 +137,9 @@ def main(args=None):
|
||||
@@ -148,18 +147,9 @@ def main(args=None):
|
||||
)
|
||||
sys.exit(-1)
|
||||
|
||||
@ -44,7 +44,7 @@ index 9641970..6a2b268 100755
|
||||
else:
|
||||
use_steam_runtime = False
|
||||
logger.info("Steam Runtime disabled.")
|
||||
@@ -212,7 +202,6 @@ def main(args=None):
|
||||
@@ -222,7 +212,6 @@ def main(args=None):
|
||||
proton_app=proton_app,
|
||||
steam_app=steam_app,
|
||||
use_steam_runtime=use_steam_runtime,
|
||||
@ -52,7 +52,7 @@ index 9641970..6a2b268 100755
|
||||
command=[winetricks_path, "--gui"],
|
||||
use_bwrap=use_bwrap
|
||||
)
|
||||
@@ -282,7 +271,6 @@ def main(args=None):
|
||||
@@ -292,7 +281,6 @@ def main(args=None):
|
||||
proton_app=proton_app,
|
||||
steam_app=steam_app,
|
||||
use_steam_runtime=use_steam_runtime,
|
||||
@ -60,7 +60,7 @@ index 9641970..6a2b268 100755
|
||||
use_bwrap=use_bwrap,
|
||||
command=[winetricks_path] + args.winetricks_command)
|
||||
elif args.command:
|
||||
@@ -292,7 +280,6 @@ def main(args=None):
|
||||
@@ -302,7 +290,6 @@ def main(args=None):
|
||||
steam_app=steam_app,
|
||||
command=args.command,
|
||||
use_steam_runtime=use_steam_runtime,
|
||||
@ -69,21 +69,21 @@ index 9641970..6a2b268 100755
|
||||
# Pass the command directly into the shell *without*
|
||||
# escaping it
|
||||
diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
|
||||
index 8554e24..509afb6 100644
|
||||
index f9fb9ec..e1e588a 100644
|
||||
--- a/src/protontricks/steam.py
|
||||
+++ b/src/protontricks/steam.py
|
||||
@@ -13,8 +13,8 @@ from .util import lower_dict
|
||||
@@ -12,8 +12,8 @@ from .util import lower_dict
|
||||
|
||||
__all__ = (
|
||||
"COMMON_STEAM_DIRS", "SteamApp", "find_steam_path",
|
||||
"find_steam_proton_app", "find_proton_app",
|
||||
- "find_legacy_steam_runtime_path", "find_appid_proton_prefix",
|
||||
- "get_steam_lib_paths", "get_steam_apps", "get_custom_proton_installations"
|
||||
+ "find_appid_proton_prefix", "get_steam_lib_paths",
|
||||
+ "get_steam_apps", "get_custom_proton_installations"
|
||||
)
|
||||
|
||||
COMMON_STEAM_DIRS = [
|
||||
@@ -283,37 +283,6 @@ def find_steam_path():
|
||||
- "find_legacy_steam_runtime_path", "get_appinfo_sections",
|
||||
- "get_proton_appid", "find_steam_proton_app", "find_appid_proton_prefix",
|
||||
+ "get_appinfo_sections", "get_proton_appid",
|
||||
+ "find_steam_proton_app", "find_appid_proton_prefix",
|
||||
"find_proton_app", "get_steam_lib_paths", "get_compat_tool_dirs",
|
||||
"get_proton_installations", "get_custom_proton_installations",
|
||||
"find_current_steamid3", "get_appid_from_shortcut",
|
||||
@@ -286,37 +286,6 @@ def find_steam_path():
|
||||
return None, None
|
||||
|
||||
|
||||
@ -122,10 +122,31 @@ index 8554e24..509afb6 100644
|
||||
APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
|
||||
|
||||
diff --git a/src/protontricks/util.py b/src/protontricks/util.py
|
||||
index 40fa752..9da5509 100644
|
||||
index 2abda99..3a25368 100644
|
||||
--- a/src/protontricks/util.py
|
||||
+++ b/src/protontricks/util.py
|
||||
@@ -25,24 +25,6 @@ def lower_dict(d):
|
||||
@@ -4,15 +4,14 @@ import shlex
|
||||
import shutil
|
||||
import stat
|
||||
from pathlib import Path
|
||||
-from subprocess import check_output, run, PIPE
|
||||
+from subprocess import run, PIPE
|
||||
|
||||
__all__ = (
|
||||
"SUPPORTED_STEAM_RUNTIMES", "is_flatpak_sandbox", "lower_dict",
|
||||
- "get_legacy_runtime_library_paths", "get_host_library_paths",
|
||||
- "RUNTIME_ROOT_GLOB_PATTERNS", "get_runtime_library_paths",
|
||||
- "WINE_SCRIPT_RUNTIME_V1_TEMPLATE",
|
||||
- "WINE_SCRIPT_RUNTIME_V2_TEMPLATE",
|
||||
- "create_wine_bin_dir", "run_command"
|
||||
+ "get_host_library_paths", "RUNTIME_ROOT_GLOB_PATTERNS",
|
||||
+ "get_runtime_library_paths", "WINE_SCRIPT_RUNTIME_V1_TEMPLATE",
|
||||
+ "WINE_SCRIPT_RUNTIME_V2_TEMPLATE", "create_wine_bin_dir",
|
||||
+ "run_command"
|
||||
)
|
||||
|
||||
logger = logging.getLogger("protontricks")
|
||||
@@ -39,24 +38,6 @@ def lower_dict(d):
|
||||
return {k.lower(): v for k, v in d.items()}
|
||||
|
||||
|
||||
@ -150,7 +171,7 @@ index 40fa752..9da5509 100644
|
||||
def get_host_library_paths():
|
||||
"""
|
||||
Get host library paths to use when creating the LD_LIBRARY_PATH environment
|
||||
@@ -54,7 +36,7 @@ def get_host_library_paths():
|
||||
@@ -68,7 +49,7 @@ def get_host_library_paths():
|
||||
# Since that command is unavailable with newer Steam Runtime releases,
|
||||
# do it ourselves here.
|
||||
result = run(
|
||||
@ -159,7 +180,7 @@ index 40fa752..9da5509 100644
|
||||
check=True, stdout=PIPE, stderr=PIPE
|
||||
)
|
||||
lines = result.stdout.decode("utf-8").split("\n")
|
||||
@@ -72,7 +54,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
|
||||
@@ -86,7 +67,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
|
||||
)
|
||||
|
||||
|
||||
@ -168,7 +189,7 @@ index 40fa752..9da5509 100644
|
||||
"""
|
||||
Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
|
||||
"""
|
||||
@@ -95,7 +77,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
|
||||
@@ -109,7 +90,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
|
||||
)
|
||||
)
|
||||
|
||||
@ -177,7 +198,7 @@ index 40fa752..9da5509 100644
|
||||
return "".join([
|
||||
str(proton_app.proton_dist_path / "lib"), os.pathsep,
|
||||
str(proton_app.proton_dist_path / "lib64"), os.pathsep
|
||||
@@ -111,14 +93,19 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
|
||||
@@ -125,14 +106,19 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
|
||||
])
|
||||
|
||||
|
||||
@ -202,26 +223,21 @@ index 40fa752..9da5509 100644
|
||||
+# instead.
|
||||
+WINE_SCRIPT_RUNTIME_V2_TEMPLATE = """#!/usr/bin/env bash
|
||||
# Helper script created by Protontricks to run Wine binaries using Steam Runtime
|
||||
PROTONTRICKS_PROXY_SCRIPT_PATH="{script_path}"
|
||||
if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
|
||||
@@ -127,9 +114,13 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
|
||||
set -o errexit
|
||||
|
||||
@@ -200,7 +186,10 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PROTON_LD_LIBRARY_PATH"
|
||||
"$PROTON_DIST_PATH"/bin/{name} "$@"
|
||||
else
|
||||
- exec "$STEAM_RUNTIME_PATH"/run --share-pid --batch --filesystem=/mnt \
|
||||
- --filesystem=/tmp --filesystem=/run/media --filesystem=/etc \
|
||||
- --filesystem=/opt --filesystem=/home --filesystem=/usr -- \
|
||||
- exec "$STEAM_RUNTIME_PATH"/run --share-pid --batch \
|
||||
+ exec steam-run "$STEAM_RUNTIME_PATH"/pressure-vessel/bin/pressure-vessel-wrap \
|
||||
+ --runtime-archive=$(echo "$STEAM_RUNTIME_PATH"/*runtime.tar.gz) \
|
||||
+ --variable-dir="${{PRESSURE_VESSEL_VARIABLE_DIR:-$STEAM_RUNTIME_PATH/var}}" \
|
||||
+ --share-pid --batch \
|
||||
+ --filesystem=/mnt --filesystem=/tmp --filesystem=/run/media \
|
||||
+ --filesystem=/etc --filesystem=/opt --filesystem=/home \
|
||||
+ --filesystem=/usr -- \
|
||||
"${{mount_params[@]}}" -- \
|
||||
env PROTONTRICKS_INSIDE_STEAM_RUNTIME=1 \
|
||||
"$PROTONTRICKS_PROXY_SCRIPT_PATH" "$@"
|
||||
fi
|
||||
@@ -194,7 +185,6 @@ def create_wine_bin_dir(proton_app, use_bwrap=True):
|
||||
@@ -266,7 +255,6 @@ def create_wine_bin_dir(proton_app, use_bwrap=True):
|
||||
def run_command(
|
||||
winetricks_path, proton_app, steam_app, command,
|
||||
use_steam_runtime=False,
|
||||
@ -229,7 +245,7 @@ index 40fa752..9da5509 100644
|
||||
use_bwrap=True,
|
||||
**kwargs):
|
||||
"""Run an arbitrary command with the correct environment variables
|
||||
@@ -271,7 +261,7 @@ def run_command(
|
||||
@@ -343,7 +331,7 @@ def run_command(
|
||||
os.environ["STEAM_RUNTIME_PATH"] = \
|
||||
str(proton_app.required_tool_app.install_path)
|
||||
os.environ["PROTON_LD_LIBRARY_PATH"] = \
|
||||
@ -238,7 +254,7 @@ index 40fa752..9da5509 100644
|
||||
|
||||
runtime_name = proton_app.required_tool_app.name
|
||||
logger.info(
|
||||
@@ -294,11 +284,8 @@ def run_command(
|
||||
@@ -366,11 +354,8 @@ def run_command(
|
||||
"Current Steam Runtime not recognized by Protontricks."
|
||||
)
|
||||
else:
|
||||
@ -251,7 +267,7 @@ index 40fa752..9da5509 100644
|
||||
|
||||
# When Steam Runtime is enabled, create a set of helper scripts
|
||||
# that load the underlying Proton Wine executables with Steam Runtime
|
||||
@@ -306,8 +293,6 @@ def run_command(
|
||||
@@ -378,8 +363,6 @@ def run_command(
|
||||
wine_bin_dir = create_wine_bin_dir(
|
||||
proton_app=proton_app, use_bwrap=use_bwrap
|
||||
)
|
||||
@ -261,7 +277,7 @@ index 40fa752..9da5509 100644
|
||||
os.environ["PATH"] = "".join([
|
||||
str(wine_bin_dir), os.pathsep, os.environ["PATH"]
|
||||
diff --git a/tests/test_cli.py b/tests/test_cli.py
|
||||
index 1955d81..1de44b3 100644
|
||||
index 580bb5b..3a05ad3 100644
|
||||
--- a/tests/test_cli.py
|
||||
+++ b/tests/test_cli.py
|
||||
@@ -117,15 +117,10 @@ class TestCLIRun:
|
||||
@ -299,11 +315,10 @@ index 1955d81..1de44b3 100644
|
||||
assert command.env["STEAM_RUNTIME_PATH"] == \
|
||||
str(steam_runtime_soldier.install_path)
|
||||
|
||||
@@ -238,10 +231,7 @@ class TestCLIRun:
|
||||
str(runtime_root / "lib" / "i386-linux-gnu"), os.pathsep,
|
||||
@@ -239,9 +232,7 @@ class TestCLIRun:
|
||||
str(runtime_root / "lib" / "x86_64-linux-gnu")
|
||||
]))
|
||||
-
|
||||
|
||||
- # Environment variables for both legacy and new Steam Runtime exist
|
||||
- assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
|
||||
- str(steam_runtime_dir / "steam-runtime")
|
||||
@ -311,7 +326,7 @@ index 1955d81..1de44b3 100644
|
||||
assert command.env["STEAM_RUNTIME_PATH"] == \
|
||||
str(steam_runtime_soldier.install_path)
|
||||
|
||||
@@ -324,20 +314,6 @@ class TestCLIRun:
|
||||
@@ -324,20 +315,6 @@ class TestCLIRun:
|
||||
|
||||
assert "Zenity is not installed" in result
|
||||
|
||||
|
@ -156,6 +156,8 @@ in
|
||||
|
||||
antsimulator = callPackage ../games/antsimulator { };
|
||||
|
||||
atuin = callPackage ../tools/misc/atuin { };
|
||||
|
||||
fiche = callPackage ../servers/fiche { };
|
||||
|
||||
fishnet = callPackage ../servers/fishnet { };
|
||||
@ -6119,8 +6121,6 @@ in
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
matrix-dendrite = callPackage ../servers/matrix-dendrite { };
|
||||
|
||||
/* Python 3.8 is currently broken with matrix-synapse since `python38Packages.bleach` fails
|
||||
(https://github.com/NixOS/nixpkgs/issues/76093) */
|
||||
matrix-synapse = callPackage ../servers/matrix-synapse { /*python3 = python38;*/ };
|
||||
@ -9456,7 +9456,9 @@ in
|
||||
|
||||
tre = callPackage ../development/libraries/tre { };
|
||||
|
||||
tremor-rs = callPackage ../tools/misc/tremor-rs { };
|
||||
tremor-rs = callPackage ../tools/misc/tremor-rs {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
ts = callPackage ../tools/system/ts { };
|
||||
|
||||
@ -11862,7 +11864,7 @@ in
|
||||
erlang_nox = beam_nox.interpreters.erlang;
|
||||
|
||||
inherit (beam.packages.erlang)
|
||||
rebar rebar3
|
||||
rebar rebar3 rebar3WithPlugins
|
||||
fetchHex beamPackages
|
||||
relxExe;
|
||||
|
||||
@ -18661,6 +18663,8 @@ in
|
||||
|
||||
couchpotato = callPackage ../servers/couchpotato {};
|
||||
|
||||
dendrite = callPackage ../servers/dendrite { };
|
||||
|
||||
dex-oidc = callPackage ../servers/dex { };
|
||||
|
||||
dex2jar = callPackage ../development/tools/java/dex2jar { };
|
||||
|
@ -4277,6 +4277,8 @@ in {
|
||||
|
||||
mortgage = callPackage ../development/python-modules/mortgage { };
|
||||
|
||||
motioneye-client = callPackage ../development/python-modules/motioneye-client { };
|
||||
|
||||
moto = callPackage ../development/python-modules/moto { };
|
||||
|
||||
moviepy = callPackage ../development/python-modules/moviepy { };
|
||||
@ -7222,6 +7224,8 @@ in {
|
||||
|
||||
rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
|
||||
|
||||
rtoml = callPackage ../development/python-modules/rtoml { };
|
||||
|
||||
Rtree = callPackage ../development/python-modules/Rtree {
|
||||
inherit (pkgs) libspatialindex;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user