Merge branch 'NixOS:master' into master

This commit is contained in:
Zoe Roux
2023-03-07 00:00:54 +09:00
committed by GitHub
800 changed files with 17210 additions and 23478 deletions
+1
View File
@@ -27,6 +27,7 @@ jobs:
uses: korthout/backport-action@v1.2.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
copy_labels_pattern: 'severity:\ssecurity'
pull_description: |-
Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}.
+1
View File
@@ -8,6 +8,7 @@ on:
- master
paths:
- 'doc/**'
- 'lib/**'
jobs:
nixpkgs:
@@ -101,6 +101,7 @@ in
diskSize = "auto";
additionalSpace = "0M"; # Defaults to 512M.
copyChannel = false;
memSize = 2048; # Qemu VM memory size in megabytes. Defaults to 1024M.
}
```
+4 -1
View File
@@ -1,4 +1,7 @@
{ " " = 32;
{ "\t" = 9;
"\n" = 10;
"\r" = 13;
" " = 32;
"!" = 33;
"\"" = 34;
"#" = 35;
+1 -1
View File
@@ -100,7 +100,7 @@ let
escapeShellArg escapeShellArgs
isStorePath isStringLike
isValidPosixName toShellVar toShellVars
escapeRegex escapeXML replaceChars lowerChars
escapeRegex escapeURL escapeXML replaceChars lowerChars
upperChars toLower toUpper addContextFrom splitString
removePrefix removeSuffix versionOlder versionAtLeast
getName getVersion
-1
View File
@@ -81,7 +81,6 @@ in mkLicense lset) ({
apsl10 = {
spdxId = "APSL-1.0";
fullName = "Apple Public Source License 1.0";
url = "https://web.archive.org/web/20040701000000*/http://www.opensource.apple.com/apsl/1.0.txt";
};
apsl20 = {
+5 -7
View File
@@ -110,10 +110,6 @@ rec {
/* Creates an Option attribute set for an option that specifies the
package a module should use for some purpose.
Type: mkPackageOption :: pkgs -> (string|[string]) ->
{ default? :: [string], example? :: null|string|[string], extraDescription? :: string } ->
option
The package is specified in the third argument under `default` as a list of strings
representing its attribute path in nixpkgs (or another package set).
Because of this, you need to pass nixpkgs itself (or a subset) as the first argument.
@@ -133,6 +129,8 @@ rec {
If you wish to explicitly provide no default, pass `null` as `default`.
Type: mkPackageOption :: pkgs -> (string|[string]) -> { default? :: [string], example? :: null|string|[string], extraDescription? :: string } -> option
Example:
mkPackageOption pkgs "hello" { }
=> { _type = "option"; default = «derivation /nix/store/3r2vg51hlxj3cx5vscp0vkv60bqxkaq0-hello-2.10.drv»; defaultText = { ... }; description = "The hello package to use."; type = { ... }; }
@@ -157,11 +155,11 @@ rec {
# Name for the package, shown in option description
name:
{
# The attribute path where the default package is located
# The attribute path where the default package is located (may be omitted)
default ? name,
# A string or an attribute path to use as an example
# A string or an attribute path to use as an example (may be omitted)
example ? null,
# Additional text to include in the option description
# Additional text to include in the option description (may be omitted)
extraDescription ? "",
}:
let
+18 -3
View File
@@ -4,6 +4,8 @@ let
inherit (builtins) length;
asciiTable = import ./ascii-table.nix;
in
rec {
@@ -327,9 +329,7 @@ rec {
=> 40
*/
charToInt = let
table = import ./ascii-table.nix;
in c: builtins.getAttr c table;
charToInt = c: builtins.getAttr c asciiTable;
/* Escape occurrence of the elements of `list` in `string` by
prefixing it with a backslash.
@@ -355,6 +355,21 @@ rec {
*/
escapeC = list: replaceStrings list (map (c: "\\x${ toLower (lib.toHexString (charToInt c))}") list);
/* Escape the string so it can be safely placed inside a URL
query.
Type: escapeURL :: string -> string
Example:
escapeURL "foo/bar baz"
=> "foo%2Fbar%20baz"
*/
escapeURL = let
unreserved = [ "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "-" "_" "." "~" ];
toEscape = builtins.removeAttrs asciiTable unreserved;
in
replaceStrings (builtins.attrNames toEscape) (lib.mapAttrsToList (_: c: "%${fixedWidthString 2 "0" (lib.toHexString c)}") toEscape);
/* Quote string to be used safely within the Bourne shell.
Type: escapeShellArg :: string -> string
+9
View File
@@ -347,6 +347,15 @@ runTests {
expected = "Hello\\x20World";
};
testEscapeURL = testAllTrue [
("" == strings.escapeURL "")
("Hello" == strings.escapeURL "Hello")
("Hello%20World" == strings.escapeURL "Hello World")
("Hello%2FWorld" == strings.escapeURL "Hello/World")
("42%25" == strings.escapeURL "42%")
("%20%3F%26%3D%23%2B%25%21%3C%3E%23%22%7B%7D%7C%5C%5E%5B%5D%60%09%3A%2F%40%24%27%28%29%2A%2C%3B" == strings.escapeURL " ?&=#+%!<>#\"{}|\\^[]`\t:/@$'()*,;")
];
testToInt = testAllTrue [
# Naive
(123 == toInt "123")
+44
View File
@@ -206,6 +206,12 @@
githubId = 22131756;
name = "Aaqa Ishtyaq";
};
aaronarinder = {
email = "aaronarinder@gmail.com";
github = "aaronArinder";
githubId = 26738844;
name = "Aaron Arinder";
};
aaronjanse = {
email = "aaron@ajanse.me";
matrix = "@aaronjanse:matrix.org";
@@ -3601,6 +3607,13 @@
githubId = 62989;
name = "Demyan Rogozhin";
};
dennajort = {
email = "gosselinjb@gmail.com";
matrix = "@dennajort:matrix.org";
github = "dennajort";
githubId = 1536838;
name = "Jean-Baptiste Gosselin";
};
derchris = {
email = "derchris@me.com";
github = "derchrisuk";
@@ -8949,6 +8962,9 @@
github = "Ma27";
githubId = 6025220;
name = "Maximilian Bosch";
keys = [{
fingerprint = "62B9 9C26 F046 721E 26B0 04F6 D006 A998 C6AB FDF1";
}];
};
ma9e = {
email = "sean@lfo.team";
@@ -11938,6 +11954,12 @@
githubId = 146413;
name = "Tobias Poschwatta";
};
PowerUser64 = {
email = "blakelysnorth@gmail.com";
github = "PowerUser64";
githubId = 24578572;
name = "Blake North";
};
ppenguin = {
name = "Jeroen Versteeg";
email = "hieronymusv@gmail.com";
@@ -12286,6 +12308,12 @@
githubId = 314564;
name = "Ryan Lahfa";
};
ralismark = {
email = "nixpkgs@ralismark.xyz";
github = "ralismark";
githubId = 13449732;
name = "Temmie";
};
raphaelr = {
email = "raphael-git@tapesoftware.net";
matrix = "@raphi:tapesoftware.net";
@@ -12883,6 +12911,7 @@
email = "rrbutani+nix@gmail.com";
github = "rrbutani";
githubId = 7833358;
matrix = "@rbutani:matrix.org";
keys = [{
fingerprint = "7DCA 5615 8AB2 621F 2F32 9FF4 1C7C E491 479F A273";
}];
@@ -12978,6 +13007,12 @@
githubId = 12877905;
name = "Roman Volosatovs";
};
rxiao = {
email = "ben.xiao@me.com";
github = "benxiao";
githubId = 10908495;
name = "Ran Xiao";
};
ryanartecona = {
email = "ryanartecona@gmail.com";
github = "ryanartecona";
@@ -15970,6 +16005,15 @@
fingerprint = "DA03 D6C6 3F58 E796 AD26 E99B 366A 2940 479A 06FC";
}];
};
williamvds = {
email = "nixpkgs@williamvds.me";
github = "williamvds";
githubId = 26379999;
name = "William Vigolo";
keys = [{
fingerprint = "9848 B216 BCBE 29BB 1C6A E0D5 7A4D F5A8 CDBD 49C7";
}];
};
willibutz = {
email = "willibutz@posteo.de";
github = "WilliButz";
+71 -31
View File
@@ -26,6 +26,7 @@ Because step 1) is quite expensive and takes roughly ~5 minutes the result is ca
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE DataKinds #-}
import Control.Monad (forM_, (<=<))
import Control.Monad.Trans (MonadIO (liftIO))
@@ -54,17 +55,22 @@ 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,
(/:),
GET (GET),
HttpResponse (HttpResponseBody),
NoReqBody (NoReqBody),
Option,
Req,
Scheme (Https),
bsResponse,
defaultHttpConfig,
header,
https,
jsonResponse,
req,
responseBody,
responseTimeout,
runReq,
(/:),
)
import System.Directory (XdgDirectory (XdgCache), getXdgDirectory)
import System.Environment (getArgs)
@@ -76,6 +82,10 @@ import Control.Exception (evaluate)
import qualified Data.IntMap.Strict as IntMap
import qualified Data.IntSet as IntSet
import Data.Bifunctor (second)
import Data.Data (Proxy)
import Data.ByteString (ByteString)
import qualified Data.ByteString.Char8 as ByteString
import Distribution.Simple.Utils (safeLast, fromUTF8BS)
newtype JobsetEvals = JobsetEvals
{ evals :: Seq Eval
@@ -123,17 +133,31 @@ 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
evalMay <- Seq.lookup 0 . evals <$> hydraJSONQuery mempty ["jobset", "nixpkgs", "haskell-updates", "evals"]
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)
buildReports :: Seq Build <- hydraJSONQuery (responseTimeout 600000000) ["eval", showT id, "builds"]
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)
hydraQuery :: HttpResponse a => Proxy a -> Option 'Https -> [Text] -> Req (HttpResponseBody a)
hydraQuery responseType option query =
responseBody
<$> req
GET
(foldl' (/:) (https "hydra.nixos.org") query)
NoReqBody
responseType
(header "User-Agent" "hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell)" <> option)
hydraJSONQuery :: FromJSON a => Option 'Https -> [Text] -> Req a
hydraJSONQuery = hydraQuery jsonResponse
hydraPlainQuery :: [Text] -> Req ByteString
hydraPlainQuery = hydraQuery bsResponse mempty
hydraEvalCommand :: FilePath
hydraEvalCommand = "hydra-eval-jobs"
@@ -326,23 +350,24 @@ instance Functor (Table row col) where
instance Foldable (Table row col) where
foldMap f (Table a) = foldMap f a
getBuildState :: Build -> BuildState
getBuildState Build{finished, buildstatus} = case (finished, buildstatus) of
(0, _) -> Unfinished
(_, Just 0) -> Success
(_, Just 1) -> Failed
(_, Just 2) -> DependencyFailed
(_, Just 3) -> HydraFailure
(_, Just 4) -> Canceled
(_, Just 7) -> TimedOut
(_, Just 11) -> OutputLimitExceeded
(_, i) -> Unknown i
buildSummary :: MaintainerMap -> ReverseDependencyMap -> Seq Build -> StatusSummary
buildSummary maintainerMap reverseDependencyMap = foldl (Map.unionWith unionSummary) Map.empty . fmap toSummary
where
unionSummary (SummaryEntry (Table lb) lm lr lu) (SummaryEntry (Table rb) rm rr ru) = SummaryEntry (Table $ Map.union lb rb) (lm <> rm) (max lr rr) (max lu ru)
toSummary Build{finished, buildstatus, job, id, system} = Map.singleton name (SummaryEntry (Table (Map.singleton (set, Platform system) (BuildResult state id))) maintainers reverseDeps unbrokenReverseDeps)
toSummary build@Build{job, id, system} = Map.singleton name (SummaryEntry (Table (Map.singleton (set, Platform system) (BuildResult (getBuildState build) id))) maintainers reverseDeps unbrokenReverseDeps)
where
state :: BuildState
state = case (finished, buildstatus) of
(0, _) -> Unfinished
(_, Just 0) -> Success
(_, Just 1) -> Failed
(_, Just 2) -> DependencyFailed
(_, Just 3) -> HydraFailure
(_, Just 4) -> Canceled
(_, Just 7) -> TimedOut
(_, Just 11) -> OutputLimitExceeded
(_, i) -> Unknown i
packageName = fromMaybe job (Text.stripSuffix ("." <> system) job)
splitted = nonEmpty $ Text.splitOn "." packageName
name = maybe packageName NonEmpty.last splitted
@@ -486,8 +511,23 @@ printMaintainerPing = do
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
(_, fetchTime, buildReport) <- readBuildReports
runReq defaultHttpConfig $ forM_ buildReport \build@Build{job, id} ->
case (getBuildState build, Text.splitOn "." job) of
(Failed, ["haskellPackages", name, "x86_64-linux"]) -> do
-- Fetch build log from hydra to figure out the cause of the error.
build_log <- ByteString.lines <$> hydraPlainQuery ["build", showT id, "nixlog", "1", "raw"]
-- We use the last probable error cause found in the build log file.
let error_message = fromMaybe " failure " $ safeLast $ mapMaybe probableErrorCause build_log
liftIO $ putStrLn $ " - " <> Text.unpack name <> " # " <> error_message <> " in job https://hydra.nixos.org/build/" <> show id <> " at " <> formatTime defaultTimeLocale "%Y-%m-%d" fetchTime
_ -> pure ()
{- | This function receives a line from a Nix Haskell builder build log and returns a possible error cause.
| We might need to add other causes in the future if errors happen in unusual parts of the builder.
-}
probableErrorCause :: ByteString -> Maybe String
probableErrorCause "Setup: Encountered missing or private dependencies:" = Just "dependency missing"
probableErrorCause "running tests" = Just "test failure"
probableErrorCause build_line | ByteString.isPrefixOf "Building" build_line = Just ("failure building " <> fromUTF8BS (fst $ ByteString.breakSubstring " for" $ ByteString.drop 9 build_line))
probableErrorCause build_line | ByteString.isSuffixOf "Phase" build_line = Just ("failure in " <> fromUTF8BS build_line)
probableErrorCause _ = Nothing
@@ -11,6 +11,9 @@
# Related scripts are update-hackage.sh, for updating the snapshot of the
# Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh,
# for updating the version of hackage2nix used to perform this task.
#
# Note that this script doesn't gcroot anything, so it may be broken by an
# unfortunately timed nix-store --gc.
set -euo pipefail
@@ -20,15 +23,21 @@ HACKAGE2NIX="${HACKAGE2NIX:-hackage2nix}"
# See: https://github.com/NixOS/nixpkgs/pull/122023
export LC_ALL=C.UTF-8
config_dir=pkgs/development/haskell-modules/configuration-hackage2nix
echo "Obtaining Hackage data"
extraction_derivation='with import ./. {}; runCommandLocal "unpacked-cabal-hashes" { } "tar xf ${all-cabal-hashes} --strip-components=1 --one-top-level=$out"'
unpacked_hackage="$(nix-build -E "$extraction_derivation" --no-out-link)"
config_dir=pkgs/development/haskell-modules/configuration-hackage2nix
echo "Generating compiler configuration"
compiler_config="$(nix-build -A haskellPackages.cabal2nix-unstable.compilerConfig --no-out-link)"
echo "Starting hackage2nix to regenerate pkgs/development/haskell-modules/hackage-packages.nix ..."
"$HACKAGE2NIX" \
--hackage "$unpacked_hackage" \
--preferred-versions <(for n in "$unpacked_hackage"/*/preferred-versions; do cat "$n"; echo; done) \
--nixpkgs "$PWD" \
--config "$compiler_config" \
--config "$config_dir/main.yaml" \
--config "$config_dir/stackage.yaml" \
--config "$config_dir/broken.yaml" \
@@ -19,6 +19,7 @@ fennel,,,,,,misterio77
fifo,,,,,,
fluent,,,,,,alerque
gitsigns.nvim,https://github.com/lewis6991/gitsigns.nvim.git,,,,5.1,
haskell-tools.nvim,,,,,,
http,,,,0.3-0,,vcunat
inspect,,,,,,
jsregexp,,,,,,
@@ -102,6 +103,8 @@ std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
std.normalize,https://github.com/lua-stdlib/normalize.git,,,,,
stdlib,,,,41.2.2,,vyp
teal-language-server,,,http://luarocks.org/dev,,,
telescope.nvim,,,,,5.1,
telescope-manix,,,,,,
tl,,,,,,mephistophiles
vstruct,https://github.com/ToxicFrog/vstruct.git,,,,,
vusted,,,,,,figsoda
1 name src ref server version luaversion maintainers
19 fifo
20 fluent alerque
21 gitsigns.nvim https://github.com/lewis6991/gitsigns.nvim.git 5.1
22 haskell-tools.nvim
23 http 0.3-0 vcunat
24 inspect
25 jsregexp
103 std.normalize https://github.com/lua-stdlib/normalize.git
104 stdlib 41.2.2 vyp
105 teal-language-server http://luarocks.org/dev
106 telescope.nvim 5.1
107 telescope-manix
108 tl mephistophiles
109 vstruct https://github.com/ToxicFrog/vstruct.git
110 vusted figsoda
+61 -29
View File
@@ -135,28 +135,32 @@ let
}
'';
prepareManualFromMD = ''
cp -r --no-preserve=all $inputs/* .
substituteInPlace ./manual.md \
--replace '@NIXOS_VERSION@' "${version}"
substituteInPlace ./configuration/configuration.md \
--replace \
'@MODULE_CHAPTERS@' \
${lib.escapeShellArg (lib.concatMapStringsSep "\n" (p: "${p.value}") config.meta.doc)}
substituteInPlace ./nixos-options.md \
--replace \
'@NIXOS_OPTIONS_JSON@' \
${optionsDoc.optionsJSON}/share/doc/nixos/options.json
substituteInPlace ./development/writing-nixos-tests.section.md \
--replace \
'@NIXOS_TEST_OPTIONS_JSON@' \
${testOptionsDoc.optionsJSON}/share/doc/nixos/options.json
'';
manual-combined = runCommand "nixos-manual-combined"
{ inputs = lib.sourceFilesBySuffices ./. [ ".xml" ".md" ];
nativeBuildInputs = [ pkgs.nixos-render-docs pkgs.libxml2.bin pkgs.libxslt.bin ];
meta.description = "The NixOS manual as plain docbook XML";
}
''
cp -r --no-preserve=all $inputs/* .
substituteInPlace ./manual.md \
--replace '@NIXOS_VERSION@' "${version}"
substituteInPlace ./configuration/configuration.md \
--replace \
'@MODULE_CHAPTERS@' \
${lib.escapeShellArg (lib.concatMapStringsSep "\n" (p: "${p.value}") config.meta.doc)}
substituteInPlace ./nixos-options.md \
--replace \
'@NIXOS_OPTIONS_JSON@' \
${optionsDoc.optionsJSON}/share/doc/nixos/options.json
substituteInPlace ./development/writing-nixos-tests.section.md \
--replace \
'@NIXOS_TEST_OPTIONS_JSON@' \
${testOptionsDoc.optionsJSON}/share/doc/nixos/options.json
${prepareManualFromMD}
nixos-render-docs -j $NIX_BUILD_CORES manual docbook \
--manpage-urls ${manpageUrls} \
@@ -193,7 +197,14 @@ in rec {
# Generate the NixOS manual.
manualHTML = runCommand "nixos-manual-html"
{ nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ];
{ nativeBuildInputs =
if allowDocBook then [
buildPackages.libxml2.bin
buildPackages.libxslt.bin
] else [
buildPackages.nixos-render-docs
];
inputs = lib.optionals (! allowDocBook) (lib.sourceFilesBySuffices ./. [ ".md" ]);
meta.description = "The NixOS manual in HTML format";
allowedReferences = ["out"];
}
@@ -201,23 +212,44 @@ in rec {
# Generate the HTML manual.
dst=$out/share/doc/nixos
mkdir -p $dst
xsltproc \
${manualXsltprocOptions} \
--stringparam id.warnings "1" \
--nonet --output $dst/ \
${docbook_xsl_ns}/xml/xsl/docbook/xhtml/chunktoc.xsl \
${manual-combined}/manual-combined.xml \
|& tee xsltproc.out
grep "^ID recommended on" xsltproc.out &>/dev/null && echo "error: some IDs are missing" && false
rm xsltproc.out
mkdir -p $dst/images/callouts
cp ${docbook_xsl_ns}/xml/xsl/docbook/images/callouts/*.svg $dst/images/callouts/
cp ${../../../doc/style.css} $dst/style.css
cp ${../../../doc/overrides.css} $dst/overrides.css
cp -r ${pkgs.documentation-highlighter} $dst/highlightjs
${if allowDocBook then ''
xsltproc \
${manualXsltprocOptions} \
--stringparam id.warnings "1" \
--nonet --output $dst/ \
${docbook_xsl_ns}/xml/xsl/docbook/xhtml/chunktoc.xsl \
${manual-combined}/manual-combined.xml \
|& tee xsltproc.out
grep "^ID recommended on" xsltproc.out &>/dev/null && echo "error: some IDs are missing" && false
rm xsltproc.out
mkdir -p $dst/images/callouts
cp ${docbook_xsl_ns}/xml/xsl/docbook/images/callouts/*.svg $dst/images/callouts/
'' else ''
${prepareManualFromMD}
# TODO generator is set like this because the docbook/md manual compare workflow will
# trigger if it's different
nixos-render-docs -j $NIX_BUILD_CORES manual html \
--manpage-urls ${manpageUrls} \
--revision ${lib.escapeShellArg revision} \
--generator "DocBook XSL Stylesheets V${docbook_xsl_ns.version}" \
--stylesheet style.css \
--stylesheet overrides.css \
--stylesheet highlightjs/mono-blue.css \
--script ./highlightjs/highlight.pack.js \
--script ./highlightjs/loader.js \
--toc-depth 1 \
--chunk-toc-depth 1 \
./manual.md \
$dst/index.html
''}
mkdir -p $out/nix-support
echo "nix-build out $out" >> $out/nix-support/hydra-build-products
echo "doc manual $dst" >> $out/nix-support/hydra-build-products
+4 -1
View File
@@ -47,7 +47,10 @@ development/development.md
contributing-to-this-manual.chapter.md
```
```{=include=} appendix
```{=include=} appendix html:into-file=//options.html
nixos-options.md
```
```{=include=} appendix html:into-file=//release-notes.html
release-notes/release-notes.md
```
@@ -8,6 +8,10 @@ In addition to numerous new and upgraded packages, this release has the followin
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Core version changes:
- default linux: 5.15 -\> 6.1, all supported kernels available
- Cinnamon has been updated to 5.6, see [the pull request](https://github.com/NixOS/nixpkgs/pull/201328#issue-1449910204) for what is changed.
- KDE Plasma has been updated to v5.27, see [the release notes](https://kde.org/announcements/plasma/5/5.27.0/) for what is changed.
@@ -105,7 +109,7 @@ In addition to numerous new and upgraded packages, this release has the followin
- The EC2 image module previously detected and automatically mounted ext3-formatted instance store devices and partitions in stage-1 (initramfs), storing `/tmp` on the first discovered device. This behaviour, which only catered to very specific use cases and could not be disabled, has been removed. Users relying on this should provide their own implementation, and probably use ext4 and perform the mount in stage-2.
- `teleport` has been upgraded to major version 11. Please see upstream [upgrade instructions](https://goteleport.com/docs/setup/operations/upgrading/) and [release notes](https://goteleport.com/docs/changelog/#1100).
- `teleport` has been upgraded from major version 10 to major version 12. Please see upstream [upgrade instructions](https://goteleport.com/docs/setup/operations/upgrading/) and release notes for versions [11](https://goteleport.com/docs/changelog/#1100) and [12](https://goteleport.com/docs/changelog/#1201). Note that Teleport does not officially support upgrades across more than one major version at a time. If you're running Teleport server components, it is recommended to first upgrade to an intermediate 11.x version by setting `services.teleport.package = pkgs.teleport_11`. Afterwards, this option can be removed to upgrade to the default version (12).
- The EC2 image module previously detected and activated swap-formatted instance store devices and partitions in stage-1 (initramfs). This behaviour has been removed. Users relying on this should provide their own implementation.
@@ -138,6 +142,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [services.xserver.videoDrivers](options.html#opt-services.xserver.videoDrivers) now defaults to the `modesetting` driver over device-specific ones. The `radeon`, `amdgpu` and `nouveau` drivers are still available, but effectively unmaintained and not recommended for use.
- conntrack helper autodetection has been removed from kernels 6.0 and up upstream, and an assertion was added to ensure things don't silently stop working. Migrate your configuration to assign helpers explicitly or use an older LTS kernel branch as a temporary workaround.
## Other Notable Changes {#sec-release-23.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -170,6 +176,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- NixOS now defaults to using nsncd (a non-caching reimplementation in Rust) as NSS lookup dispatcher, instead of the buggy and deprecated glibc-provided nscd. If you need to switch back, set `services.nscd.enableNsncd = false`, but please open an issue in nixpkgs so your issue can be fixed.
- `services.borgmatic` now allows for multiple configurations, placed in `/etc/borgmatic.d/`, you can define them with `services.borgmatic.configurations`.
- The `dnsmasq` service now takes configuration via the
`services.dnsmasq.settings` attribute set. The option
`services.dnsmasq.extraConfig` will be deprecated when NixOS 22.11 reaches
+4 -1
View File
@@ -154,6 +154,9 @@ To solve this, you can run `fdisk -l $image` and generate `dd if=$image of=$imag
, # Shell code executed after the VM has finished.
postVM ? ""
, # Guest memory size
memSize ? 1024
, # Copy the contents of the Nix store to the root of the image and
# skip further setup. Incompatible with `contents`,
# `installBootLoader` and `configFile`.
@@ -525,7 +528,7 @@ let format' = format; in let
"-drive if=pflash,format=raw,unit=1,file=$efiVars"
]
);
memSize = 1024;
inherit memSize;
} ''
export PATH=${binPath}:$PATH
+4
View File
@@ -73,6 +73,9 @@
, # Shell code executed after the VM has finished.
postVM ? ""
, # Guest memory size
memSize ? 1024
, name ? "nixos-disk-image"
, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
@@ -242,6 +245,7 @@ let
{
QEMU_OPTS = "-drive file=$bootDiskImage,if=virtio,cache=unsafe,werror=report"
+ " -drive file=$rootDiskImage,if=virtio,cache=unsafe,werror=report";
inherit memSize;
preVM = ''
PATH=$PATH:${pkgs.qemu_kvm}/bin
mkdir $out
+2 -2
View File
@@ -61,9 +61,9 @@ with lib;
pinentry = super.pinentry.override { enabledFlavors = [ "curses" "tty" "emacs" ]; withLibsecret = false; };
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
qrencode = super.qrencode.overrideAttrs (_: { doCheck = false; });
qt5 = super.qt5.overrideScope' (self': super': {
qt5 = super.qt5.overrideScope' (const (super': {
qtbase = super'.qtbase.override { withGtk3 = false; };
});
}));
stoken = super.stoken.override { withGTK3 = false; };
# translateManpages -> perlPackages.po4a -> texlive-combined-basic -> texlive-core-big -> libX11
util-linux = super.util-linux.override { translateManpages = false; };
+1 -1
View File
@@ -180,7 +180,7 @@ in
# extraGroups = [ "wheel" ]; # Enable sudo for the user.
# packages = with pkgs; [
# firefox
# thunderbird
# tree
# ];
# };
+52 -34
View File
@@ -5,44 +5,58 @@ with lib;
let
cfg = config.services.borgmatic;
settingsFormat = pkgs.formats.yaml { };
cfgType = with types; submodule {
freeformType = settingsFormat.type;
options.location = {
source_directories = mkOption {
type = listOf str;
description = mdDoc ''
List of source directories to backup (required). Globs and
tildes are expanded.
'';
example = [ "/home" "/etc" "/var/log/syslog*" ];
};
repositories = mkOption {
type = listOf str;
description = mdDoc ''
Paths to local or remote repositories (required). Tildes are
expanded. Multiple repositories are backed up to in
sequence. Borg placeholders can be used. See the output of
"borg help placeholders" for details. See ssh_command for
SSH options like identity file or port. If systemd service
is used, then add local repository paths in the systemd
service file to the ReadWritePaths list.
'';
example = [
"ssh://user@backupserver/./sourcehostname.borg"
"ssh://user@backupserver/./{fqdn}"
"/var/local/backups/local.borg"
];
};
};
};
cfgfile = settingsFormat.generate "config.yaml" cfg.settings;
in {
in
{
options.services.borgmatic = {
enable = mkEnableOption (lib.mdDoc "borgmatic");
enable = mkEnableOption (mdDoc "borgmatic");
settings = mkOption {
description = lib.mdDoc ''
description = mdDoc ''
See https://torsion.org/borgmatic/docs/reference/configuration/
'';
type = types.submodule {
freeformType = settingsFormat.type;
options.location = {
source_directories = mkOption {
type = types.listOf types.str;
description = lib.mdDoc ''
List of source directories to backup (required). Globs and
tildes are expanded.
'';
example = [ "/home" "/etc" "/var/log/syslog*" ];
};
repositories = mkOption {
type = types.listOf types.str;
description = lib.mdDoc ''
Paths to local or remote repositories (required). Tildes are
expanded. Multiple repositories are backed up to in
sequence. Borg placeholders can be used. See the output of
"borg help placeholders" for details. See ssh_command for
SSH options like identity file or port. If systemd service
is used, then add local repository paths in the systemd
service file to the ReadWritePaths list.
'';
example = [
"user@backupserver:sourcehostname.borg"
"user@backupserver:{fqdn}"
];
};
};
};
default = null;
type = types.nullOr cfgType;
};
configurations = mkOption {
description = mdDoc ''
Set of borgmatic configurations, see https://torsion.org/borgmatic/docs/reference/configuration/
'';
default = { };
type = types.attrsOf cfgType;
};
};
@@ -50,9 +64,13 @@ in {
environment.systemPackages = [ pkgs.borgmatic ];
environment.etc."borgmatic/config.yaml".source = cfgfile;
environment.etc = (optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; }) //
mapAttrs'
(name: value: nameValuePair
"borgmatic.d/${name}.yaml"
{ source = settingsFormat.generate "${name}.yaml" value; })
cfg.configurations;
systemd.packages = [ pkgs.borgmatic ];
};
}
+2 -2
View File
@@ -288,11 +288,11 @@ in
LimitNOFILE = 65535;
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
LoadCredential = cfg.loadCredential;
ExecStartPre = ''
ExecStartPre = [''
${pkgs.envsubst}/bin/envsubst \
-i ${configurationYaml} \
-o /run/dendrite/dendrite.yaml
'';
''];
ExecStart = lib.strings.concatStringsSep " " ([
"${pkgs.dendrite}/bin/dendrite-monolith-server"
"--config /run/dendrite/dendrite.yaml"
+16 -16
View File
@@ -5,7 +5,7 @@ with lib;
let
cfg = config.services.gitea;
opt = options.services.gitea;
gitea = cfg.package;
exe = lib.getExe cfg.package;
pg = config.services.postgresql;
useMysql = cfg.database.type == "mysql";
usePostgresql = cfg.database.type == "postgres";
@@ -248,7 +248,7 @@ in
staticRootPath = mkOption {
type = types.either types.str types.path;
default = gitea.data;
default = cfg.package.data;
defaultText = literalExpression "package.data";
example = "/var/lib/gitea/data";
description = lib.mdDoc "Upper level of template and static files path.";
@@ -481,14 +481,14 @@ in
# If we have a folder or symlink with gitea locales, remove it
# And symlink the current gitea locales in place
"L+ '${cfg.stateDir}/conf/locale' - - - - ${gitea.out}/locale"
"L+ '${cfg.stateDir}/conf/locale' - - - - ${cfg.package.out}/locale"
];
systemd.services.gitea = {
description = "gitea";
after = [ "network.target" ] ++ lib.optional usePostgresql "postgresql.service" ++ lib.optional useMysql "mysql.service";
wantedBy = [ "multi-user.target" ];
path = [ gitea pkgs.git pkgs.gnupg ];
path = [ cfg.package pkgs.git pkgs.gnupg ];
# In older versions the secret naming for JWT was kind of confusing.
# The file jwt_secret hold the value for LFS_JWT_SECRET and JWT_SECRET
@@ -512,7 +512,7 @@ in
cp -f ${configFile} ${runConfig}
if [ ! -s ${secretKey} ]; then
${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey}
${exe} generate secret SECRET_KEY > ${secretKey}
fi
# Migrate LFS_JWT_SECRET filename
@@ -521,15 +521,15 @@ in
fi
if [ ! -s ${oauth2JwtSecret} ]; then
${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret}
${exe} generate secret JWT_SECRET > ${oauth2JwtSecret}
fi
if [ ! -s ${lfsJwtSecret} ]; then
${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret}
${exe} generate secret LFS_JWT_SECRET > ${lfsJwtSecret}
fi
if [ ! -s ${internalToken} ]; then
${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
${exe} generate secret INTERNAL_TOKEN > ${internalToken}
fi
chmod u+w '${runConfig}'
@@ -548,15 +548,15 @@ in
''}
# run migrations/init the database
${gitea}/bin/gitea migrate
${exe} migrate
# update all hooks' binary paths
${gitea}/bin/gitea admin regenerate hooks
${exe} admin regenerate hooks
# update command option in authorized_keys
if [ -r ${cfg.stateDir}/.ssh/authorized_keys ]
then
${gitea}/bin/gitea admin regenerate keys
${exe} admin regenerate keys
fi
'';
@@ -565,7 +565,7 @@ in
User = cfg.user;
Group = "gitea";
WorkingDirectory = cfg.stateDir;
ExecStart = "${gitea}/bin/gitea web --pid /run/gitea/gitea.pid";
ExecStart = "${exe} web --pid /run/gitea/gitea.pid";
Restart = "always";
# Runtime directory and mode
RuntimeDirectory = "gitea";
@@ -597,7 +597,7 @@ in
PrivateMounts = true;
# System Call Filtering
SystemCallArchitectures = "native";
SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @reboot @setuid @swap";
SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io @reboot @setuid @swap";
};
environment = {
@@ -635,7 +635,7 @@ in
systemd.services.gitea-dump = mkIf cfg.dump.enable {
description = "gitea dump";
after = [ "gitea.service" ];
path = [ gitea ];
path = [ cfg.package ];
environment = {
USER = cfg.user;
@@ -646,7 +646,7 @@ in
serviceConfig = {
Type = "oneshot";
User = cfg.user;
ExecStart = "${gitea}/bin/gitea dump --type ${cfg.dump.type}" + optionalString (cfg.dump.file != null) " --file ${cfg.dump.file}";
ExecStart = "${exe} dump --type ${cfg.dump.type}" + optionalString (cfg.dump.file != null) " --file ${cfg.dump.file}";
WorkingDirectory = cfg.dump.backupDir;
};
};
@@ -658,5 +658,5 @@ in
timerConfig.OnCalendar = cfg.dump.interval;
};
};
meta.maintainers = with lib.maintainers; [ srhb ma27 ];
meta.maintainers = with lib.maintainers; [ srhb ma27 thehedgeh0g ];
}
+39 -7
View File
@@ -6,6 +6,7 @@ let
pkg = cfg.package;
defaultUser = "paperless";
nltkDir = "/var/cache/paperless/nltk";
# Don't start a redis instance if the user sets a custom redis connection
enableRedis = !hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
@@ -15,6 +16,7 @@ let
PAPERLESS_DATA_DIR = cfg.dataDir;
PAPERLESS_MEDIA_ROOT = cfg.mediaDir;
PAPERLESS_CONSUMPTION_DIR = cfg.consumptionDir;
PAPERLESS_NLTK_DIR = nltkDir;
GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
} // optionalAttrs (config.time.timeZone != null) {
PAPERLESS_TIME_ZONE = config.time.timeZone;
@@ -24,12 +26,14 @@ let
lib.mapAttrs (_: toString) cfg.extraConfig
);
manage = let
setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
in pkgs.writeShellScript "manage" ''
${setupEnv}
exec ${pkg}/bin/paperless-ngx "$@"
'';
manage =
let
setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
in
pkgs.writeShellScript "manage" ''
${setupEnv}
exec ${pkg}/bin/paperless-ngx "$@"
'';
# Secure the services
defaultServiceConfig = {
@@ -47,6 +51,7 @@ let
cfg.dataDir
cfg.mediaDir
];
CacheDirectory = "paperless";
CapabilityBoundingSet = "";
# ProtectClock adds DeviceAllow=char-rtc r
DeviceAllow = "";
@@ -170,7 +175,7 @@ in
extraConfig = mkOption {
type = types.attrs;
default = {};
default = { };
description = lib.mdDoc ''
Extra paperless config options.
@@ -291,6 +296,33 @@ in
};
};
# Download NLTK corpus data
systemd.services.paperless-download-nltk-data = {
wantedBy = [ "paperless-scheduler.service" ];
before = [ "paperless-scheduler.service" ];
after = [ "network-online.target" ];
serviceConfig = defaultServiceConfig // {
User = cfg.user;
Type = "oneshot";
# Enable internet access
PrivateNetwork = false;
# Restrict write access
BindPaths = [];
BindReadOnlyPaths = [
"/nix/store"
"-/etc/resolv.conf"
"-/etc/nsswitch.conf"
"-/etc/ssl/certs"
"-/etc/static/ssl/certs"
"-/etc/hosts"
"-/etc/localtime"
];
ExecStart = let pythonWithNltk = pkg.python.withPackages (ps: [ ps.nltk ]); in ''
${pythonWithNltk}/bin/python -m nltk.downloader -d '${nltkDir}' punkt snowball_data stopwords
'';
};
};
systemd.services.paperless-consumer = {
description = "Paperless document consumer";
# Bind to `paperless-scheduler` so that the consumer never runs
@@ -269,6 +269,10 @@ in
assertion = cfg.filterForward -> config.networking.nftables.enable;
message = "filterForward only works with the nftables based firewall";
}
{
assertion = cfg.autoLoadConntrackHelpers -> lib.versionOlder config.boot.kernelPackages.kernel.version "6";
message = "conntrack helper autoloading has been removed from kernel 6.0 and newer";
}
];
networking.firewall.trustedInterfaces = [ "lo" ];
+44 -7
View File
@@ -28,6 +28,32 @@ in
<https://wiki.nftables.org/wiki-nftables/index.php/Troubleshooting#Question_4._How_do_nftables_and_iptables_interact_when_used_on_the_same_system.3F>.
'';
};
networking.nftables.checkRuleset = mkOption {
type = types.bool;
default = true;
description = lib.mdDoc ''
Run `nft check` on the ruleset to spot syntax errors during build.
Because this is executed in a sandbox, the check might fail if it requires
access to any environmental factors or paths outside the Nix store.
To circumvent this, the ruleset file can be edited using the preCheckRuleset
option to work in the sandbox environment.
'';
};
networking.nftables.preCheckRuleset = mkOption {
type = types.lines;
default = "";
example = lib.literalExpression ''
sed 's/skgid meadow/skgid nogroup/g' -i ruleset.conf
'';
description = lib.mdDoc ''
This script gets run before the ruleset is checked. It can be used to
create additional files needed for the ruleset check to work, or modify
the ruleset for cases the build environment cannot cover.
'';
};
networking.nftables.ruleset = mkOption {
type = types.lines;
default = "";
@@ -105,13 +131,24 @@ in
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
serviceConfig = let
rulesScript = pkgs.writeScript "nftables-rules" ''
#! ${pkgs.nftables}/bin/nft -f
flush ruleset
${if cfg.rulesetFile != null then ''
include "${cfg.rulesetFile}"
'' else cfg.ruleset}
'';
rulesScript = pkgs.writeTextFile {
name = "nftables-rules";
executable = true;
text = ''
#! ${pkgs.nftables}/bin/nft -f
flush ruleset
${if cfg.rulesetFile != null then ''
include "${cfg.rulesetFile}"
'' else cfg.ruleset}
'';
checkPhase = lib.optionalString cfg.checkRuleset ''
cp $out ruleset.conf
${cfg.preCheckRuleset}
export NIX_REDIRECTS=/etc/protocols=${pkgs.buildPackages.iana-etc}/etc/protocols:/etc/services=${pkgs.buildPackages.iana-etc}/etc/services
LD_PRELOAD="${pkgs.buildPackages.libredirect}/lib/libredirect.so ${pkgs.buildPackages.lklWithFirewall.lib}/lib/liblkl-hijack.so" \
${pkgs.buildPackages.nftables}/bin/nft --check --file ruleset.conf
'';
};
in {
Type = "oneshot";
RemainAfterExit = true;
+10 -2
View File
@@ -11,6 +11,14 @@ in
services.teleport = with lib.types; {
enable = mkEnableOption (lib.mdDoc "the Teleport service");
package = mkOption {
type = types.package;
default = pkgs.teleport;
defaultText = lib.literalMD "pkgs.teleport";
example = lib.literalMD "pkgs.teleport_11";
description = lib.mdDoc "The teleport package to use";
};
settings = mkOption {
type = settingsYaml.type;
default = { };
@@ -74,14 +82,14 @@ in
};
config = mkIf config.services.teleport.enable {
environment.systemPackages = [ pkgs.teleport ];
environment.systemPackages = [ cfg.package ];
systemd.services.teleport = {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = ''
${pkgs.teleport}/bin/teleport start \
${cfg.package}/bin/teleport start \
${optionalString cfg.insecure.enable "--insecure"} \
${optionalString cfg.diag.enable "--diag-addr=${cfg.diag.addr}:${toString cfg.diag.port}"} \
${optionalString (cfg.settings != { }) "--config=${settingsYaml.generate "teleport.yaml" cfg.settings}"}
@@ -461,7 +461,7 @@ let
${ipPreMove} link add dev "${name}" type wireguard
${optionalString (values.interfaceNamespace != null && values.interfaceNamespace != values.socketNamespace) ''${ipPreMove} link set "${name}" netns "${ns}"''}
${optionalString (values.mtu != null) ''${ipPreMove} link set "${name}" mtu ${toString values.mtu}''}
${optionalString (values.mtu != null) ''${ipPostMove} link set "${name}" mtu ${toString values.mtu}''}
${concatMapStringsSep "\n" (ip:
''${ipPostMove} address add "${ip}" dev "${name}"''
+2 -2
View File
@@ -318,8 +318,8 @@ to make packages available in the chroot.
{option}`services.systemd.akkoma.serviceConfig.BindPaths` and
{option}`services.systemd.akkoma.serviceConfig.BindReadOnlyPaths` permit access to outside paths
through bind mounts. Refer to
[{manpage}`systemd.exec(5)`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#BindPaths=)
for details.
[`BindPaths=`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#BindPaths=)
of {manpage}`systemd.exec(5)` for details.
### Distributed deployment {#modules-services-akkoma-distributed-deployment}
+1 -1
View File
@@ -5,7 +5,7 @@ let
package = pkgs.dolibarr.override { inherit (cfg) stateDir; };
cfg = config.services.dolibarr;
vhostCfg = lib.optionalAttr (cfg.nginx != null) config.services.nginx.virtualHosts."${cfg.domain}";
vhostCfg = lib.optionalAttrs (cfg.nginx != null) config.services.nginx.virtualHosts."${cfg.domain}";
mkConfigFile = filename: settings:
let
@@ -169,6 +169,9 @@ in
};
services.udev.packages = [
pkgs.pantheon.gnome-settings-daemon
# Force enable KMS modifiers for devices that require them.
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
pkgs.pantheon.mutter
];
systemd.packages = [
pkgs.pantheon.gnome-settings-daemon
+1 -1
View File
@@ -1948,7 +1948,7 @@ in
Extra command-line arguments to pass to systemd-networkd-wait-online.
These also affect per-interface `systemd-network-wait-online@` services.
See [{manpage}`systemd-networkd-wait-online.service(8)`](https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html) for all available options.
See {manpage}`systemd-networkd-wait-online.service(8)` for all available options.
'';
type = with types; listOf str;
default = [];
+30 -28
View File
@@ -108,9 +108,9 @@ let
set -e
NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}}")
NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${toString config.virtualisation.diskImage}}") || test -z "$NIX_DISK_IMAGE"
if ! test -e "$NIX_DISK_IMAGE"; then
if test -n "$NIX_DISK_IMAGE" && ! test -e "$NIX_DISK_IMAGE"; then
${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \
${toString config.virtualisation.diskSize}M
fi
@@ -346,7 +346,7 @@ in
virtualisation.diskImage =
mkOption {
type = types.str;
type = types.nullOr types.str;
default = "./${config.system.name}.qcow2";
defaultText = literalExpression ''"./''${config.system.name}.qcow2"'';
description =
@@ -354,6 +354,9 @@ in
Path to the disk image containing the root filesystem.
The image will be created on startup if it does not
exist.
If null, a tmpfs will be used as the root filesystem and
the VM's state will not be persistent.
'';
};
@@ -990,12 +993,12 @@ in
];
virtualisation.qemu.drives = mkMerge [
[{
(mkIf (cfg.diskImage != null) [{
name = "root";
file = ''"$NIX_DISK_IMAGE"'';
driveExtraOpts.cache = "writeback";
driveExtraOpts.werror = "report";
}]
}])
(mkIf cfg.useNixStoreImage [{
name = "nix-store";
file = ''"$TMPDIR"/store.img'';
@@ -1018,20 +1021,21 @@ in
}) cfg.emptyDiskImages)
];
fileSystems = mkVMOverride cfg.fileSystems;
# Mount the host filesystem via 9P, and bind-mount the Nix store
# of the host into our own filesystem. We use mkVMOverride to
# allow this module to be applied to "normal" NixOS system
# configuration, where the regular value for the `fileSystems'
# attribute should be disregarded for the purpose of building a VM
# test image (since those filesystems don't exist in the VM).
fileSystems =
let
virtualisation.fileSystems = let
mkSharedDir = tag: share:
{
name =
if tag == "nix-store" && cfg.writableStore
then "/nix/.ro-store"
else share.target;
then "/nix/.ro-store"
else share.target;
value.device = tag;
value.fsType = "9p";
value.neededForBoot = true;
@@ -1039,44 +1043,42 @@ in
[ "trans=virtio" "version=9p2000.L" "msize=${toString cfg.msize}" ]
++ lib.optional (tag == "nix-store") "cache=loose";
};
in
mkVMOverride (cfg.fileSystems //
optionalAttrs cfg.useDefaultFilesystems {
"/".device = cfg.bootDevice;
"/".fsType = "ext4";
"/".autoFormat = true;
} //
optionalAttrs config.boot.tmpOnTmpfs {
"/tmp" = {
in lib.mkMerge [
(lib.mapAttrs' mkSharedDir cfg.sharedDirectories)
{
"/" = lib.mkIf cfg.useDefaultFilesystems (if cfg.diskImage == null then {
device = "tmpfs";
fsType = "tmpfs";
} else {
device = cfg.bootDevice;
fsType = "ext4";
autoFormat = true;
});
"/tmp" = lib.mkIf config.boot.tmpOnTmpfs {
device = "tmpfs";
fsType = "tmpfs";
neededForBoot = true;
# Sync with systemd's tmp.mount;
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
};
} //
optionalAttrs cfg.useNixStoreImage {
"/nix/${if cfg.writableStore then ".ro-store" else "store"}" = {
"/nix/${if cfg.writableStore then ".ro-store" else "store"}" = lib.mkIf cfg.useNixStoreImage {
device = "${lookupDriveDeviceName "nix-store" cfg.qemu.drives}";
neededForBoot = true;
options = [ "ro" ];
};
} //
optionalAttrs (cfg.writableStore && cfg.writableStoreUseTmpfs) {
"/nix/.rw-store" = {
"/nix/.rw-store" = lib.mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs) {
fsType = "tmpfs";
options = [ "mode=0755" ];
neededForBoot = true;
};
} //
optionalAttrs cfg.useBootLoader {
# see note [Disk layout with `useBootLoader`]
"/boot" = {
"/boot" = lib.mkIf cfg.useBootLoader {
device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk`
fsType = "vfat";
noCheck = true; # fsck fails on a r/o filesystem
};
} // lib.mapAttrs' mkSharedDir cfg.sharedDirectories);
}
];
boot.initrd.systemd = lib.mkIf (config.boot.initrd.systemd.enable && cfg.writableStore) {
mounts = [{
@@ -81,7 +81,7 @@ in {
extraDisk = mkOption {
description = lib.mdDoc ''
Optional extra disk/hdd configuration.
The disk will be an 'ext4' partition on a separate VMDK file.
The disk will be an 'ext4' partition on a separate file.
'';
default = null;
example = {
@@ -183,8 +183,8 @@ in {
export HOME=$PWD
export PATH=${pkgs.virtualbox}/bin:$PATH
echo "creating VirtualBox pass-through disk wrapper (no copying involved)..."
VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
echo "converting image to VirtualBox format..."
VBoxManage convertfromraw $diskImage disk.vdi
${optionalString (cfg.extraDisk != null) ''
echo "creating extra disk: data-disk.raw"
@@ -196,8 +196,8 @@ in {
mkpart primary ext4 1MiB -1
eval $(partx $dataDiskImage -o START,SECTORS --nr 1 --pairs)
mkfs.ext4 -F -L ${cfg.extraDisk.label} $dataDiskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
echo "creating extra disk: data-disk.vmdk"
VBoxManage internalcommands createrawvmdk -filename data-disk.vmdk -rawdisk $dataDiskImage
echo "creating extra disk: data-disk.vdi"
VBoxManage convertfromraw $dataDiskImage data-disk.vdi
''}
echo "creating VirtualBox VM..."
@@ -209,10 +209,10 @@ in {
${lib.cli.toGNUCommandLineShell { } cfg.params}
VBoxManage storagectl "$vmName" ${lib.cli.toGNUCommandLineShell { } cfg.storageController}
VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 0 --device 0 --type hdd \
--medium disk.vmdk
--medium disk.vdi
${optionalString (cfg.extraDisk != null) ''
VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 1 --device 0 --type hdd \
--medium data-disk.vmdk
--medium data-disk.vdi
''}
echo "exporting VirtualBox VM..."
-1
View File
@@ -100,7 +100,6 @@ in rec {
(onFullSupported "nixos.tests.login")
(onFullSupported "nixos.tests.misc")
(onFullSupported "nixos.tests.mutableUsers")
(onFullSupported "nixos.tests.nat.firewall-conntrack")
(onFullSupported "nixos.tests.nat.firewall")
(onFullSupported "nixos.tests.nat.standalone")
(onFullSupported "nixos.tests.networking.scripted.bond")
-1
View File
@@ -118,7 +118,6 @@ in rec {
"nixos.tests.ipv6"
"nixos.tests.login"
"nixos.tests.misc"
"nixos.tests.nat.firewall-conntrack"
"nixos.tests.nat.firewall"
"nixos.tests.nat.standalone"
"nixos.tests.nfs3.simple"
-2
View File
@@ -433,10 +433,8 @@ in {
nagios = handleTest ./nagios.nix {};
nar-serve = handleTest ./nar-serve.nix {};
nat.firewall = handleTest ./nat.nix { withFirewall = true; };
nat.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; };
nat.standalone = handleTest ./nat.nix { withFirewall = false; };
nat.nftables.firewall = handleTest ./nat.nix { withFirewall = true; nftables = true; };
nat.nftables.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; nftables = true; };
nat.nftables.standalone = handleTest ./nat.nix { withFirewall = false; nftables = true; };
nats = handleTest ./nats.nix {};
navidrome = handleTest ./navidrome.nix {};
+1 -1
View File
@@ -54,7 +54,7 @@ with lib;
client.execute("echo 'sync_address = \"http://server:${toString testPort}\"' > ~/.config/atuin/config.toml")
# log in to atuin server on client node
client.succeed(f"${atuin}/bin/atuin login -u ${testUser} -p ${testPass} -k {key}")
client.succeed(f"${atuin}/bin/atuin login -u ${testUser} -p ${testPass} -k \"{key}\"")
# pull records from atuin server
client.succeed("${atuin}/bin/atuin sync -f")
+1 -1
View File
@@ -1,6 +1,6 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "clickhouse";
meta.maintainers = with pkgs.lib.maintainers; [ ma27 ];
meta.maintainers = with pkgs.lib.maintainers; [ ];
nodes.machine = {
services.clickhouse.enable = true;
+25 -2
View File
@@ -1,6 +1,6 @@
{ system ? builtins.currentSystem,
config ? {},
giteaPackage,
giteaPackage ? pkgs.gitea,
pkgs ? import ../.. { inherit system config; }
}:
@@ -8,6 +8,21 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
with pkgs.lib;
let
## gpg --faked-system-time='20230301T010000!' --quick-generate-key snakeoil ed25519 sign
signingPrivateKey = ''
-----BEGIN PGP PRIVATE KEY BLOCK-----
lFgEY/6jkBYJKwYBBAHaRw8BAQdADXiZRV8RJUyC9g0LH04wLMaJL9WTc+szbMi7
5fw4yP8AAQCl8EwGfzSLm/P6fCBfA3I9znFb3MEHGCCJhJ6VtKYyRw7ktAhzbmFr
ZW9pbIiUBBMWCgA8FiEE+wUM6VW/NLtAdSixTWQt6LZ4x50FAmP+o5ACGwMFCQPC
ZwAECwkIBwQVCgkIBRYCAwEAAh4FAheAAAoJEE1kLei2eMedFTgBAKQs1oGFZrCI
TZP42hmBTKxGAI1wg7VSdDEWTZxut/2JAQDGgo2sa4VHMfj0aqYGxrIwfP2B7JHO
GCqGCRf9O/hzBA==
=9Uy3
-----END PGP PRIVATE KEY BLOCK-----
'';
signingPrivateKeyId = "4D642DE8B678C79D";
supportedDbTypes = [ "mysql" "postgres" "sqlite3" ];
makeGiteaTest = type: nameValuePair type (makeTest {
name = "${giteaPackage.pname}-${type}";
@@ -21,8 +36,9 @@ let
database = { inherit type; };
package = giteaPackage;
settings.service.DISABLE_REGISTRATION = true;
settings."repository.signing".SIGNING_KEY = signingPrivateKeyId;
};
environment.systemPackages = [ giteaPackage pkgs.jq ];
environment.systemPackages = [ giteaPackage pkgs.gnupg pkgs.jq ];
services.openssh.enable = true;
};
client1 = { config, pkgs, ... }: {
@@ -58,6 +74,13 @@ let
server.wait_for_open_port(3000)
server.succeed("curl --fail http://localhost:3000/")
server.succeed(
"su -l gitea -c 'gpg --homedir /var/lib/gitea/data/home/.gnupg "
+ "--import ${toString (pkgs.writeText "gitea.key" signingPrivateKey)}'"
)
assert "BEGIN PGP PUBLIC KEY BLOCK" in server.succeed("curl http://localhost:3000/api/v1/signing-key.gpg")
server.succeed(
"curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. "
+ "Please contact your site administrator.'"
+3 -12
View File
@@ -3,7 +3,7 @@
# client on the inside network, a server on the outside network, and a
# router connected to both that performs Network Address Translation
# for the client.
import ./make-test-python.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false, nftables ? false, ... }:
import ./make-test-python.nix ({ pkgs, lib, withFirewall, nftables ? false, ... }:
let
unit = if nftables then "nftables" else (if withFirewall then "firewall" else "nat");
@@ -16,16 +16,11 @@ import ./make-test-python.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ?
networking.nat.internalIPs = [ "192.168.1.0/24" ];
networking.nat.externalInterface = "eth1";
}
(lib.optionalAttrs withConntrackHelpers {
networking.firewall.connectionTrackingModules = [ "ftp" ];
networking.firewall.autoLoadConntrackHelpers = true;
})
];
in
{
name = "nat" + (lib.optionalString nftables "Nftables")
+ (if withFirewall then "WithFirewall" else "Standalone")
+ (lib.optionalString withConntrackHelpers "withConntrackHelpers");
+ (if withFirewall then "WithFirewall" else "Standalone");
meta = with pkgs.lib.maintainers; {
maintainers = [ eelco rob ];
};
@@ -39,10 +34,6 @@ import ./make-test-python.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ?
(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address;
networking.nftables.enable = nftables;
}
(lib.optionalAttrs withConntrackHelpers {
networking.firewall.connectionTrackingModules = [ "ftp" ];
networking.firewall.autoLoadConntrackHelpers = true;
})
];
router =
@@ -95,7 +86,7 @@ import ./make-test-python.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ?
client.succeed("curl -v ftp://server/foo.txt >&2")
# Test whether active FTP works.
client.${if withConntrackHelpers then "succeed" else "fail"}("curl -v -P - ftp://server/foo.txt >&2")
client.fail("curl -v -P - ftp://server/foo.txt >&2")
# Test ICMP.
client.succeed("ping -c 1 router >&2")
+1 -1
View File
@@ -3,7 +3,7 @@ import ./make-test-python.nix ({ pkgs, ...}: let
in {
name = "phosh";
meta = with pkgs.lib.maintainers; {
maintainers = [ zhaofengli ];
maintainers = [ tomfitzhenry zhaofengli ];
};
nodes = {
+2 -2
View File
@@ -170,8 +170,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
'';
hosts = nodes: ''
${nodes.pleroma.config.networking.primaryIPAddress} pleroma.nixos.test
${nodes.client.config.networking.primaryIPAddress} client.nixos.test
${nodes.pleroma.networking.primaryIPAddress} pleroma.nixos.test
${nodes.client.networking.primaryIPAddress} client.nixos.test
'';
in {
name = "pleroma";
+1 -3
View File
@@ -6,9 +6,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
enable = true;
emergencyAccess = true;
};
fileSystems = lib.mkVMOverride {
"/".autoResize = true;
};
virtualisation.fileSystems."/".autoResize = true;
};
testScript = ''
+49 -33
View File
@@ -1,18 +1,28 @@
{ system ? builtins.currentSystem
, config ? { }
, pkgs ? import ../.. { inherit system config; }
, lib ? pkgs.lib
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
let
minimal = { config, ... }: {
services.teleport.enable = true;
packages = with pkgs; {
"default" = teleport;
"11" = teleport_11;
};
client = { config, ... }: {
minimal = package: {
services.teleport = {
enable = true;
inherit package;
};
};
client = package: {
services.teleport = {
enable = true;
inherit package;
settings = {
teleport = {
nodename = "client";
@@ -37,9 +47,10 @@ let
}];
};
server = { config, ... }: {
server = package: {
services.teleport = {
enable = true;
inherit package;
settings = {
teleport = {
nodename = "server";
@@ -64,36 +75,41 @@ let
};
};
in
{
minimal = makeTest {
# minimal setup should always work
name = "teleport-minimal-setup";
meta.maintainers = with pkgs.lib.maintainers; [ ymatsiuk ];
nodes = { inherit minimal; };
lib.concatMapAttrs
(name: package: {
"minimal_${name}" = makeTest {
# minimal setup should always work
name = "teleport-minimal-setup";
meta.maintainers = with pkgs.lib.maintainers; [ justinas ];
nodes.minimal = minimal package;
testScript = ''
minimal.wait_for_open_port(3025)
minimal.wait_for_open_port(3080)
minimal.wait_for_open_port(3022)
'';
};
testScript = ''
minimal.wait_for_open_port(3025)
minimal.wait_for_open_port(3080)
minimal.wait_for_open_port(3022)
'';
};
basic = makeTest {
# basic server and client test
name = "teleport-server-client";
meta.maintainers = with pkgs.lib.maintainers; [ ymatsiuk ];
nodes = { inherit server client; };
"basic_${name}" = makeTest {
# basic server and client test
name = "teleport-server-client";
meta.maintainers = with pkgs.lib.maintainers; [ justinas ];
nodes = {
server = server package;
client = client package;
};
testScript = ''
with subtest("teleport ready"):
server.wait_for_open_port(3025)
client.wait_for_open_port(3022)
testScript = ''
with subtest("teleport ready"):
server.wait_for_open_port(3025)
client.wait_for_open_port(3022)
with subtest("check applied configuration"):
server.wait_until_succeeds("tctl get nodes --format=json | ${pkgs.jq}/bin/jq -e '.[] | select(.spec.hostname==\"client\") | .metadata.labels.role==\"client\"'")
server.wait_for_open_port(3000)
client.succeed("journalctl -u teleport.service --grep='DEBU'")
server.succeed("journalctl -u teleport.service --grep='Starting teleport in insecure mode.'")
'';
};
}
with subtest("check applied configuration"):
server.wait_until_succeeds("tctl get nodes --format=json | ${pkgs.jq}/bin/jq -e '.[] | select(.spec.hostname==\"client\") | .metadata.labels.role==\"client\"'")
server.wait_for_open_port(3000)
client.succeed("journalctl -u teleport.service --grep='DEBU'")
server.succeed("journalctl -u teleport.service --grep='Starting teleport in insecure mode.'")
'';
};
})
packages
+1
View File
@@ -39,6 +39,7 @@ import ../make-test-python.nix ({ pkgs, lib, kernelPackages ? null, ... } : {
preSetup = ''
ip netns add ${interfaceNamespace}
'';
mtu = 1280;
inherit interfaceNamespace;
};
};
@@ -10,6 +10,7 @@
, gtk3
, wayland
, wayland-protocols
, libbsd
, libxml2
, libxkbcommon
, rustPlatform
@@ -21,7 +22,7 @@
stdenv.mkDerivation rec {
pname = "squeekboard";
version = "1.20.0";
version = "1.21.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
owner = "Phosh";
repo = pname;
rev = "v${version}";
sha256 = "sha256-wx3fKRX/SPYGAFuR9u03JAvVRhtYIPUvW8mAsCdx83I=";
hash = "sha256-Mn0E+R/UzBLHPvarQHlEN4JBpf4VAaXdKdWLsFEyQE4=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
@@ -39,7 +40,7 @@ stdenv.mkDerivation rec {
cp Cargo.lock.newer Cargo.lock
'';
name = "${pname}-${version}";
sha256 = "sha256-BbNkapqnqEW/NglrCse10Tm80SXYVQWWrOC5dTN6oi0=";
hash = "sha256-F2mef0HvD9WZRx05DEpQ1AO1skMwcchHZzJa74AHmsM=";
};
mesonFlags = [
@@ -64,6 +65,7 @@ stdenv.mkDerivation rec {
gnome-desktop
wayland
wayland-protocols
libbsd
libxml2
libxkbcommon
feedbackd
+2 -2
View File
@@ -61,13 +61,13 @@
stdenv.mkDerivation rec {
pname = "audacity";
version = "3.2.4";
version = "3.2.5";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "Audacity-${version}";
hash = "sha256-gz2o0Rj4364nJAvJmMQzwIQycoQmqz2/43DBvd3qbho=";
hash = "sha256-tMz55fZh+TfvLEyApDqC0QMd2hEQLJsNQ6y2Xy0xgaQ=";
};
postPatch = ''
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "ft2-clone";
version = "1.63";
version = "1.65";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "ft2-clone";
rev = "v${version}";
sha256 = "sha256-uDAW97lTeL15PPpR5vlIS371EZ7BBNd86ETPEB8joSU=";
sha256 = "sha256-Jo1qs0d8/o9FWR7jboWCJ7ntawBGTlm7yPzxxUnZLsI=";
};
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
@@ -10,13 +10,13 @@
# gcc only supports objc on darwin
buildGoModule.override { stdenv = clangStdenv; } rec {
pname = "go-musicfox";
version = "3.7.0";
version = "3.7.2";
src = fetchFromGitHub {
owner = "anhoder";
repo = pname;
rev = "v${version}";
hash = "sha256-IXB5eOXVtoe21WbQa9x5SKcgUpgyjVx48998vdccMPM=";
hash = "sha256-Wc9HFvBSLQA7jT+LJj+tyHzRbszhR2XD1/3C+SdrAGA=";
};
deleteVendor = true;
@@ -5,14 +5,14 @@
stdenv.mkDerivation rec {
pname = "grandorgue";
version = "3.9.5-1";
version = "3.10.1-1";
src = fetchFromGitHub {
owner = "GrandOrgue";
repo = pname;
rev = version;
fetchSubmodules = true;
sha256 = "sha256-5OqTQBOYE6XU3BRiVwXOHrn22bVZzIIeZI8pgsWxhPw=";
sha256 = "sha256-QuOHeEgDOXvNFMfMoq0GOnmHKyMG1S8y1lgO9heMk3I=";
};
postPatch = ''
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "JMusicBot";
version = "0.3.8";
version = "0.3.9";
src = fetchurl {
url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
sha256 = "sha256-wzmrh9moY6oo3RqOy9Zl1X70BZlvbJkQmz8BaBIFtIM=";
sha256 = "sha256-2A1yo2e1MawGLMTM6jWwpQJJuKOmljxFriORv90Jqg8=";
};
dontUnpack = true;
@@ -1,33 +1,30 @@
{lib, gcc10Stdenv, fetchurl}:
{ lib
, stdenv
, fetchzip
, cmake
}:
gcc10Stdenv.mkDerivation rec {
version = "3.99-u4-b5";
pname = "monkeys-audio-old";
stdenv.mkDerivation rec {
version = "9.20";
pname = "monkeys-audio";
patches = [ ./buildfix.diff ];
src = fetchurl {
/*
The real homepage is <https://monkeysaudio.com/>, but in fact we are
getting an old, ported to Linux version of the sources, made by (quoting
from the AUTHORS file found in the source):
Frank Klemm : First port to linux (with makefile)
SuperMMX <SuperMMX AT GMail DOT com> : Package the source, include the frontend and shared lib,
porting to Big Endian platform and adding other non-win32 enhancement.
*/
url = "https://deb-multimedia.org/pool/main/m/${pname}/${pname}_${version}.orig.tar.gz";
sha256 = "0kjfwzfxfx7f958b2b1kf8yj655lp0ppmn0sh57gbkjvj8lml7nz";
src = fetchzip {
url = "https://monkeysaudio.com/files/MAC_${
builtins.concatStringsSep "" (lib.strings.splitString "." version)}_SDK.zip";
sha256 = "sha256-8cJ88plR9jrrLdzRHzRotGBrn6qIqOWvl+oOTXxY/TE=";
stripRoot = false;
};
nativeBuildInputs = [
cmake
];
meta = with lib; {
description = "Lossless audio codec";
description = "APE codec and decompressor";
platforms = platforms.linux;
# This is not considered a GPL license, but it seems rather free although
# it's not standard, see a quote of it:
# https://github.com/NixOS/nixpkgs/pull/171682#issuecomment-1120260551
license = licenses.free;
maintainers = [ ];
maintainers = with maintainers; [ doronbehar ];
};
}
+6 -4
View File
@@ -1,23 +1,25 @@
{ lib, fetchFromGitHub
, pkg-config, meson ,ninja
, python3Packages
, gdk-pixbuf, glib, gobject-introspection, gtk3
, libnotify
, intltool
, wrapGAppsHook }:
python3Packages.buildPythonApplication rec {
pname = "mpdevil";
version = "1.4.1";
version = "1.10.1";
src = fetchFromGitHub {
owner = "SoongNoonien";
repo = pname;
rev = "v${version}";
sha256 = "1a5nhlbgi3ahnkcq16c2vgiaghgswy5lxg64pcrlbqssg1pj5gma";
sha256 = "sha256-w31e8cJvdep/ZzmDBCfdCZotrPunQBl1cTTWjs3sE1w=";
};
format = "other";
nativeBuildInputs = [
glib.dev gobject-introspection gtk3 intltool wrapGAppsHook
glib.dev gobject-introspection gtk3 pkg-config meson ninja wrapGAppsHook
];
buildInputs = [
+4 -2
View File
@@ -11,17 +11,18 @@
, pcre2
, gzip
, perl
, jq
}:
stdenv.mkDerivation rec {
pname = "mympd";
version = "9.5.4";
version = "10.2.4";
src = fetchFromGitHub {
owner = "jcorporation";
repo = "myMPD";
rev = "v${version}";
sha256 = "sha256-0X/rEVfJ6zzX75R72xVntOfuCt8srp9PkiYOq3XbWPs=";
sha256 = "sha256-12hCIAwrLQkwiU9t9nNPBdIiHfMidfErSWOA0FPfhBQ=";
};
nativeBuildInputs = [
@@ -29,6 +30,7 @@ stdenv.mkDerivation rec {
cmake
gzip
perl
jq
];
preConfigure = ''
env MYMPD_BUILDDIR=$PWD/build ./build.sh createassets
+2 -2
View File
@@ -5,7 +5,7 @@
}:
mkDerivation rec {
version = "0.9.8";
version = "0.9.9";
pname = "qjackctl";
# some dependencies such as killall have to be installed additionally
@@ -14,7 +14,7 @@ mkDerivation rec {
owner = "rncbc";
repo = "qjackctl";
rev = "${pname}_${lib.replaceStrings ["."] ["_"] version}";
sha256 = "sha256-GEnxxYul4qir/92hGq4L+29dnpy1MxHonM1llkzSLPw=";
sha256 = "sha256-6mVvLr+4kSkjp0Mc/XtFxSaO/OblhdsvicrV1luq8I8=";
};
buildInputs = [
+2 -2
View File
@@ -5,14 +5,14 @@
mkDerivation rec {
pname = "qpwgraph";
version = "0.3.9";
version = "0.4.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "rncbc";
repo = "qpwgraph";
rev = "v${version}";
sha256 = "sha256-KGZ67FF3WlKwUzVV3qz1DR/7i1mXsfXVVyuNoIR9uP0=";
sha256 = "sha256-bOg+7bNEhnemhb+Xi3x77ZEjqKFjUXSCFgvcLXrxz/E=";
};
nativeBuildInputs = [ cmake pkg-config ];
+2 -2
View File
@@ -5,10 +5,10 @@
let
pname = "sonixd";
version = "0.15.3";
version = "0.15.4";
src = fetchurl {
url = "https://github.com/jeffvli/sonixd/releases/download/v${version}/Sonixd-${version}-linux-x86_64.AppImage";
sha256 = "sha256-+4L3XAuR7T/z5a58SXre6yUiVi7TvSAs8vPgEC7hcIw=";
sha256 = "sha256-n4n16S8ktPiVc0iyjVNNIyo9oEIBwGIuzj0xgm/ETeo=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
@@ -0,0 +1,83 @@
{ lib
, pkg-config
, stdenv
, fetchFromGitHub
, autoPatchelfHook
, alsa-lib
, cmake
, freetype
, libGL
, libX11
, libXcursor
, libXext
, libXinerama
, libXrandr
, libjack2
, libopus
, curl
, gtk3
, webkitgtk
}:
stdenv.mkDerivation rec {
pname = "sonobus";
version = "1.6.2";
src = fetchFromGitHub {
owner = "sonosaurus";
repo = "sonobus";
rev = version;
sha256 = "sha256-/Pb+PYmoCYA6Qcy/tR1Ejyt+rZ3pfJeWV4j7bQWYE58=";
fetchSubmodules = true;
};
nativeBuildInputs = [
autoPatchelfHook
cmake
pkg-config
];
buildInputs = [
alsa-lib
freetype
libjack2
libopus
curl
gtk3
webkitgtk
];
runtimeDependencies = [
libGL
libX11
libXcursor
libXext
libXinerama
libXrandr
];
postPatch = lib.optionalString (stdenv.isLinux) ''
# needs special setup on Linux, dunno if it can work on Darwin
# https://github.com/NixOS/nixpkgs/issues/19098
# Also, I get issues with linking without that, not sure why
sed -i -e '/juce::juce_recommended_lto_flags/d' CMakeLists.txt
patchShebangs linux/install.sh
'';
# The program does not provide any CMake install instructions
installPhase = lib.optionalString (stdenv.isLinux) ''
runHook preInstall
cd ../linux
./install.sh "$out"
runHook postInstall
'';
meta = with lib; {
description = "High-quality network audio streaming";
homepage = "https://sonobus.net/";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ PowerUser64 ];
platforms = platforms.unix;
broken = stdenv.isDarwin;
};
}
@@ -7,13 +7,13 @@
}:
python3Packages.buildPythonApplication rec {
pname = "chia-dev-tools";
version = "1.1.4";
version = "1.1.5";
src = fetchFromGitHub {
owner = "Chia-Network";
repo = pname;
rev = "v${version}";
hash = "sha256-lE7FTSDqVS6AstcxZSMdQwgygMvcvh1fqYVTTSSNZpA=";
hash = "sha256-qWWLQ+SkoRu5cLytwwrslqsKORy+4ebO8brULEFGaF0=";
};
patches = [
@@ -22,11 +22,11 @@ let
in
stdenv.mkDerivation rec {
pname = "clightning";
version = "22.11.1";
version = "23.02";
src = fetchurl {
url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
sha256 = "sha256-F48jmG9voNp6+IMRVkJi6O0DXVQxKyYkOA0UBCKktIw=";
sha256 = "sha256-uvk7sApIwlrkH8eERBetf/nsAkN2d35T/IEtICFflzY=";
};
# when building on darwin we need dawin.cctools to provide the correct libtool
@@ -2,11 +2,11 @@
let
pname = "ledger-live-desktop";
version = "2.53.2";
version = "2.54.0";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-RGeJWUMZagXM/8SHHOpTpcnsz+BShnGp2yvt31qo5lI=";
hash = "sha256-3UCsMzpoHq4gD4bw/MT1qbl8AnXQnFJqpMi1mlPvv5w=";
};
appimageContents = appimageTools.extractType2 {
@@ -27,8 +27,8 @@ appimageTools.wrapType2 rec {
'';
meta = with lib; {
description = "Wallet app for Ledger Nano S and Ledger Blue";
homepage = "https://www.ledger.com/live";
description = "App for Ledger hardware wallets";
homepage = "https://www.ledger.com/ledger-live/";
license = licenses.mit;
maintainers = with maintainers; [ andresilva thedavidmeister nyanloutre RaghavSood th0rgal WeebSorceress ];
platforms = [ "x86_64-linux" ];
@@ -6,16 +6,32 @@
, trezorSupport ? true, libusb1, protobuf, python3
}:
let
# submodules
supercop = fetchFromGitHub {
owner = "monero-project";
repo = "supercop";
rev = "633500ad8c8759995049ccd022107d1fa8a1bbc9";
sha256 = "26UmESotSWnQ21VbAYEappLpkEMyl0jiuCaezRYd/sE=";
};
trezor-common = fetchFromGitHub {
owner = "trezor";
repo = "trezor-common";
rev = "bff7fdfe436c727982cc553bdfb29a9021b423b0";
sha256 = "VNypeEz9AV0ts8X3vINwYMOgO8VpNmyUPC4iY3OOuZI=";
};
in
stdenv.mkDerivation rec {
pname = "monero-cli";
version = "0.18.1.2";
version = "0.18.2.0";
src = fetchFromGitHub {
owner = "monero-project";
repo = "monero";
rev = "v${version}";
sha256 = "sha256-yV1ysoesEcjL+JX6hkmcrBDmazOWBvYK6EjshxJzcAw=";
fetchSubmodules = true;
sha256 = "n2e5U3p0eG2atPYV86H2UAURwsIkeSOBm8iwYsDVAoc=";
};
patches = [
@@ -23,8 +39,10 @@ stdenv.mkDerivation rec {
];
postPatch = ''
# remove vendored libraries
rm -r external/{miniupnp,randomx,rapidjson}
# manually install submodules
rmdir external/{supercop,trezor-common}
ln -sf ${supercop} external/supercop
ln -sf ${trezor-common} external/trezor-common
# export patched source for monero-gui
cp -r . $source
'';
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "monero-gui";
version = "0.18.1.2";
version = "0.18.2.0";
src = fetchFromGitHub {
owner = "monero-project";
repo = "monero-gui";
rev = "v${version}";
sha256 = "sha256-GBILqNkYQUkil1qvYnJTkHwgK3dzKR9I9GVbbLy/0UU=";
sha256 = "Bm6OpK1jjdWVqdp6HpirqP6+3GcMSZfZ/e70wcu+rQc=";
};
nativeBuildInputs = [
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
store historical records of the ledger and participate in consensus.
'';
homepage = "https://www.stellar.org/";
platforms = [ "x86_64-linux" ];
platforms = platforms.linux;
maintainers = with maintainers; [ ];
license = licenses.asl20;
};
File diff suppressed because it is too large Load Diff
+41 -38
View File
@@ -1,77 +1,80 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, llvmPackages
, openssl
, perl
, protobuf
, rustfmt
, Security
, SystemConfiguration
, stdenv
, darwin
, pkg-config
, openssl
}:
let
version = "0.1.2";
version = "0.2.0";
src = fetchFromGitHub {
owner = "talaia-labs";
repo = "rust-teos";
rev = "v${version}";
hash = "sha256-N+srREYsADMTqz3uDXpeCuXrZZ62FopXO7DClGfyk9U=";
hash = "sha256-UrzH9xmhVq12TcSUQ1AihCG1sNGcy/N8LDsZINVKFkY=";
};
common.meta = with lib; {
meta = with lib; {
homepage = "https://github.com/talaia-labs/rust-teos";
license = licenses.mit;
maintainers = with maintainers; [ seberm ];
platforms = platforms.unix;
};
cargoPatches = [ ./add-cargo-lock.patch ];
buildInputs = [
openssl
] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
nativeBuildInputs = [
perl # used by openssl-sys to configure
protobuf
rustfmt
rustPlatform.bindgenHook
];
in
{
teos = rustPlatform.buildRustPackage {
pname = "teos";
cargoSha256 = "sha256-7VYYYSMJ2JP1KuA8sD0X3wInubH/jbA/sgzsTsomyEc=";
inherit version src;
cargoHash = "sha256-U0imKEPszlBOaS6xEd3kfzy/w2SYe3EY/E1e0L+ViDk=";
buildAndTestSubdir = "teos";
inherit version src cargoPatches buildInputs nativeBuildInputs;
nativeBuildInputs = [
protobuf
rustfmt
];
meta = common.meta // {
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
__darwinAllowLocalNetworking = true;
meta = meta // {
description = "A Lightning watchtower compliant with BOLT13, written in Rust";
};
cargoTestFlags = [
"--workspace"
];
};
teos-watchtower-plugin = rustPlatform.buildRustPackage {
pname = "teos-watchtower-plugin";
cargoSha256 = "sha256-xL+DiEfgBYJQ1UJm7LAr1/f34pkU8FRl4Seic8MFAlM=";
inherit version src;
cargoHash = "sha256-3ke1qTFw/4I5dPLuPjIGp1n2C/eRfPB7A6ErMFfwUzE=";
buildAndTestSubdir = "watchtower-plugin";
inherit version src cargoPatches buildInputs nativeBuildInputs;
nativeBuildInputs = [
pkg-config
protobuf
rustfmt
];
meta = common.meta // {
buildInputs = [
openssl
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
];
__darwinAllowLocalNetworking = true;
meta = meta // {
description = "A Lightning watchtower plugin for clightning";
mainProgram = "watchtower-client";
};
# The test is skipped due to following error:
# thread 'retrier::tests::test_manage_retry_unreachable' panicked at 'assertion failed:
# wt_client.lock().unwrap().towers.get(&tower_id).unwrap().status.is_unreachable()', watchtower-plugin/src/retrier.rs:518:9
checkFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "--skip=retrier::tests::test_manage_retry_unreachable" ];
};
}
@@ -31,11 +31,11 @@ let
in
stdenv.mkDerivation rec {
pname = "wasabiwallet";
version = "2.0.2.1";
version = "2.0.2.2";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
sha256 = "sha256-kvUwWRZZmalJQL65tRNdgTg7ZQHhmIbfmsfHbHBYz7w=";
sha256 = "sha256-Mwr2TwJsA7+G5U2FHOC6SMgiYxuy6fAiA3t7oJGSVaA=";
};
dontBuild = true;
@@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cudatext";
version = "1.186.0";
version = "1.186.2";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
hash = "sha256-CzCPz/Bny57nkxR21ACXjhAoplVVm4TVSbH6De+fKfI=";
hash = "sha256-qpxYzman93e+u0BHxdhBUyfnZOR4hjQpTuNikGDNQCA=";
};
postPatch = ''
+2 -2
View File
@@ -16,8 +16,8 @@
},
"ATSynEdit": {
"owner": "Alexey-T",
"rev": "2023.02.25",
"hash": "sha256-iTdb+eI1alS6chCn2rEbUAy9iVAgVvsNGURxds/2f7s="
"rev": "2023.03.02",
"hash": "sha256-rZzcWED8c68wtejUho71kbPtLyDyOlXpS/eg8Ti0r2A="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",
@@ -366,6 +366,21 @@
license = lib.licenses.free;
};
}) {};
beframe = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "beframe";
ename = "beframe";
version = "0.1.11";
src = fetchurl {
url = "https://elpa.gnu.org/packages/beframe-0.1.11.tar";
sha256 = "1r5wlg2xaih197fi3jk0qmnhpy7mc6xrwraxfnygsjwr63dxhnq2";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/beframe.html";
license = lib.licenses.free;
};
}) {};
bind-key = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "bind-key";
@@ -1659,16 +1674,16 @@
license = lib.licenses.free;
};
}) {};
erc = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
erc = callPackage ({ compat, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "erc";
ename = "erc";
version = "5.4.1";
version = "5.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/erc-5.4.1.tar";
sha256 = "0hghqwqrx11f8qa1zhyhjqp99w01l686azsmd24z9w0l93fz598a";
url = "https://elpa.gnu.org/packages/erc-5.5.tar";
sha256 = "02649ijnpyalk0k1yq1dcinj92awhbnkia2x9sdb9xjk80xw1gqp";
};
packageRequires = [ emacs ];
packageRequires = [ compat emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/erc.html";
license = lib.licenses.free;
@@ -2612,10 +2627,10 @@
elpaBuild {
pname = "kind-icon";
ename = "kind-icon";
version = "0.1.9";
version = "0.2.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/kind-icon-0.1.9.tar";
sha256 = "0phssrcpmcidzlwy1577f3f02qwjs6hpavb416302y0n8kkhwvli";
url = "https://elpa.gnu.org/packages/kind-icon-0.2.0.tar";
sha256 = "1vgwbd99vx793iy04albkxl24c7vq598s7bg0raqwmgx84abww6r";
};
packageRequires = [ emacs svg-lib ];
meta = {
@@ -3047,10 +3062,10 @@
elpaBuild {
pname = "modus-themes";
ename = "modus-themes";
version = "3.0.0";
version = "4.1.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/modus-themes-3.0.0.tar";
sha256 = "1c3rls175nmc4n01hfzwqxv2nhyv8n6i8d4pv93k28z6c30n8lhs";
url = "https://elpa.gnu.org/packages/modus-themes-4.1.1.tar";
sha256 = "06lp7mpazby7iiwzw4naym983plg9r63ba9vmaszh3609d2gm0s9";
};
packageRequires = [ emacs ];
meta = {
@@ -3731,10 +3746,10 @@
elpaBuild {
pname = "phps-mode";
ename = "phps-mode";
version = "0.4.39";
version = "0.4.42";
src = fetchurl {
url = "https://elpa.gnu.org/packages/phps-mode-0.4.39.tar";
sha256 = "0wixalji4c4hjqb41n1yvxfy3qfl2ipfsjawbgk9wdwb7jkhjr1i";
url = "https://elpa.gnu.org/packages/phps-mode-0.4.42.tar";
sha256 = "040wrmz9wl0x86vdgzyfdwxdciscd94v9nfgfz0ir2ghwhw6j9x3";
};
packageRequires = [ emacs ];
meta = {
@@ -3821,10 +3836,10 @@
elpaBuild {
pname = "posframe";
ename = "posframe";
version = "1.3.3";
version = "1.4.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/posframe-1.3.3.tar";
sha256 = "07hgbhvhwj6zfhlg6znavwrj3gp7cv4c758chrhkvk33a3slhw6b";
url = "https://elpa.gnu.org/packages/posframe-1.4.0.tar";
sha256 = "0pqy7scdi3qxj518xm0bbr3979byfxqxxh64wny37xzhd4apsw5j";
};
packageRequires = [ emacs ];
meta = {
@@ -4422,10 +4437,10 @@
elpaBuild {
pname = "shell-command-plus";
ename = "shell-command+";
version = "2.4.1";
version = "2.4.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/shell-command+-2.4.1.tar";
sha256 = "1pbv5g58647gq83vn5pg8c6kjhvjn3lj0wggz3iz3695yvl8aw4i";
url = "https://elpa.gnu.org/packages/shell-command+-2.4.2.tar";
sha256 = "1ldvil6hjs8c7wpdwx0jwaar867dil5qh6vy2k27i1alffr9nnqm";
};
packageRequires = [ emacs ];
meta = {
@@ -4896,10 +4911,10 @@
elpaBuild {
pname = "taxy-magit-section";
ename = "taxy-magit-section";
version = "0.12.1";
version = "0.12.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/taxy-magit-section-0.12.1.tar";
sha256 = "0bs00y8pl51dji23zx5w64h6la0y109q0jv2q1nggizk6q5bsxmg";
url = "https://elpa.gnu.org/packages/taxy-magit-section-0.12.2.tar";
sha256 = "1pf83zz5ibhqqlqgcxig0dsl1rnkk5r6v16s5ngvbc37q40vkwn1";
};
packageRequires = [ emacs magit-section taxy ];
meta = {
@@ -5035,10 +5050,10 @@
elpaBuild {
pname = "tramp";
ename = "tramp";
version = "2.6.0.1";
version = "2.6.0.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/tramp-2.6.0.1.tar";
sha256 = "1mxkl8v40wdcyvsyjayw9yj7ghn5zrnzgaapwh1prxs42scw85x8";
url = "https://elpa.gnu.org/packages/tramp-2.6.0.2.tar";
sha256 = "0pfrsgci1rqrykkfyxm9wsn7f0l3rzc2vj1fas27w925l0k0lrci";
};
packageRequires = [ emacs ];
meta = {
@@ -5140,10 +5155,10 @@
elpaBuild {
pname = "triples";
ename = "triples";
version = "0.2.3";
version = "0.2.6";
src = fetchurl {
url = "https://elpa.gnu.org/packages/triples-0.2.3.tar";
sha256 = "1p6vijaab3a7h9lqlxxhyipwd9rkr15r3rm0iyxxanlcggi04a39";
url = "https://elpa.gnu.org/packages/triples-0.2.6.tar";
sha256 = "09vr8r78vpycpxglacbgy2fy01khmvhh42panilwz2n9nhjy6xzm";
};
packageRequires = [ emacs seq ];
meta = {
@@ -5411,10 +5426,10 @@
elpaBuild {
pname = "vertico-posframe";
ename = "vertico-posframe";
version = "0.7.1";
version = "0.7.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/vertico-posframe-0.7.1.tar";
sha256 = "18a65hnacavy375ry5qmfj454b10h2yg9p6wbx1wdx30fwpi247a";
url = "https://elpa.gnu.org/packages/vertico-posframe-0.7.2.tar";
sha256 = "1sbgg0syyk24phwzji40lyw5dmwxssgvwv2fs8mbmkhv0q44f9ny";
};
packageRequires = [ emacs posframe vertico ];
meta = {
@@ -1,13 +1,14 @@
{ lib, pkgs }:
self: with self; {
self:
let
inherit (pkgs) callPackage;
in
{
agda-input = callPackage ./manual-packages/agda-input { };
agda2-mode = callPackage ./manual-packages/agda2-mode { };
bqn-mode = callPackage ./manual-packages/bqn-mode { };
cask = callPackage ./manual-packages/cask { };
control-lock = callPackage ./manual-packages/control-lock { };
@@ -86,8 +87,8 @@ self: with self; {
sunrise-commander = callPackage ./manual-packages/sunrise-commander { };
# camelCase aliases for some of the kebab-case expressions above
colorThemeSolarized = color-theme-solarized;
emacsSessionManagement = session-management-for-emacs;
rectMark = rect-mark;
sunriseCommander = sunrise-commander;
colorThemeSolarized = self.color-theme-solarized;
emacsSessionManagement = self.session-management-for-emacs;
rectMark = self.rect-mark;
sunriseCommander = self.sunrise-commander;
}
@@ -1,22 +0,0 @@
{ lib
, trivialBuild
, fetchFromGitHub
}:
trivialBuild {
pname = "bqn-mode";
version = "0.pre+date=2022-09-14";
src = fetchFromGitHub {
owner = "museoa";
repo = "bqn-mode";
rev = "3e3d4758c0054b35f047bf6d9e03b1bea425d013";
hash = "sha256:0pz3m4jp4dn8bsmc9n51sxwdk6g52mxb6y6f6a4g4hggb35shy2a";
};
meta = with lib; {
description = "Emacs mode for BQN programming language";
license = licenses.gpl3Only;
maintainers = with maintainers; [ sternenseemann AndersonTorres ];
};
}
@@ -425,6 +425,18 @@ let
rtags-xref = dontConfigure super.rtags;
rime = super.rime.overrideAttrs (old: {
buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.librime ];
preBuild = (old.preBuild or "") + ''
make lib
mkdir -p /build/rime-lib
cp *.so /build/rime-lib
'';
postInstall = (old.postInstall or "") + ''
install -m444 -t $out/share/emacs/site-lisp/elpa/rime-* /build/rime-lib/*.so
'';
});
shm = super.shm.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ pkgs.haskellPackages.structured-haskell-mode ];
});
@@ -3182,10 +3182,10 @@
elpaBuild {
pname = "xah-fly-keys";
ename = "xah-fly-keys";
version = "22.9.20230207171612";
version = "22.12.20230301220803";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-22.9.20230207171612.tar";
sha256 = "0m633k8rx2k3gwbh3hndkmn3k804pg7j7xmqw6yf8j2a2ym4893b";
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-22.12.20230301220803.tar";
sha256 = "0m1wyhxqsih7777hchjk4v742ar16frdjvxyspa72az881yinv5g";
};
packageRequires = [ emacs ];
meta = {
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
version = "9.0.1275";
version = "9.0.1369";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
hash = "sha256-WDnlYi9o2Kv/f3Fh1MHcfTlBTe1fxw4UyKJlKY04fyA=";
hash = "sha256-2YjWd07RMyiITnuI3/L0D9MiAxl2+9QVT1nrMBA9/dI=";
};
enableParallelBuilding = true;
File diff suppressed because it is too large Load Diff
@@ -91,6 +91,17 @@
};
meta.homepage = "https://github.com/latex-lsp/tree-sitter-bibtex";
};
bicep = buildGrammar {
language = "bicep";
version = "b94a098";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-bicep";
rev = "b94a0983b69ebb75e9129329a188199ad6ebcec0";
hash = "sha256-YCVOgLmtCWd4FwfwmQUZhSzP2wS2ZDLwXP1BRrpE0Ls=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-bicep";
};
blueprint = buildGrammar {
language = "blueprint";
version = "6ef91ca";
@@ -104,34 +115,34 @@
};
c = buildGrammar {
language = "c";
version = "7175a6d";
version = "f357890";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c";
rev = "7175a6dd5fc1cee660dce6fe23f6043d75af424a";
hash = "sha256-G9kVqX8walvpI7gPvPzS8g7X8RVM9y5wJHGOcyjJA/A=";
rev = "f35789006ccbe5be8db21d1a2dd4cc0b5a1286f2";
hash = "sha256-TLaqolQEN3m3YuNo8JbuRyaEmbWQCWyJJUaDDv4GFDY=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
};
c_sharp = buildGrammar {
language = "c_sharp";
version = "5b6c4d0";
version = "fcacbeb";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c-sharp";
rev = "5b6c4d0d19d79b05c69ad752e11829910e3b4610";
hash = "sha256-Ax9AuxqQK9gSlkxM2k6E32CskudUmduWm0luC031P5U=";
rev = "fcacbeb4af6bcdcfb4527978a997bb03f4fe086d";
hash = "sha256-sMNNnp1Ypljou0RZ9V0M4qVP/2Osrk1L8NCiyEGY1pw=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp";
};
capnp = buildGrammar {
language = "capnp";
version = "cb85cdd";
version = "fc6e2ad";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-capnp";
rev = "cb85cddfdf398530110c807ba046822dbaee6afb";
hash = "sha256-VB8fNF8EtTAkKBLIAByazczPHJYdBULCeoGQ1ZLLRhI=";
rev = "fc6e2addf103861b9b3dffb82c543eb6b71061aa";
hash = "sha256-FKzh0c/mTURLss8mv/c/p3dNXQxE/r5P063GEM8un70=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-capnp";
};
@@ -148,12 +159,12 @@
};
clojure = buildGrammar {
language = "clojure";
version = "262d6d6";
version = "421546c";
src = fetchFromGitHub {
owner = "sogaiu";
repo = "tree-sitter-clojure";
rev = "262d6d60f39f0f77b3dd08da8ec895bd5a044416";
hash = "sha256-9+tMkv329FfxYzALxkr6QZBEmJJBKUDBK4RzIsNL7S0=";
rev = "421546c2547c74d1d9a0d8c296c412071d37e7ca";
hash = "sha256-GfDaUZjvTELXkRzJXK303QyPDQr7ozfrz/4iOQNDQTU=";
};
meta.homepage = "https://github.com/sogaiu/tree-sitter-clojure";
};
@@ -201,14 +212,25 @@
};
meta.homepage = "https://github.com/addcninblue/tree-sitter-cooklang";
};
cpon = buildGrammar {
language = "cpon";
version = "eedb93b";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-cpon";
rev = "eedb93bf9e22e82ed6a67e6c57fd78731b44f591";
hash = "sha256-8x+oUbiwt7prGc5cli5HabHoH3q/mBnQzO1Wy2Bauac=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-cpon";
};
cpp = buildGrammar {
language = "cpp";
version = "56cec4c";
version = "03fa93d";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-cpp";
rev = "56cec4c2eb5d6af3d2942e69e35db15ae2433740";
hash = "sha256-CWh5p0tlBQizABjwBRN1VoxeEriOPhTy3lFZI9PjsTA=";
rev = "03fa93db133d6048a77d4de154a7b17ea8b9d076";
hash = "sha256-0KYGEgAWmKFialuCy2zTfadDYezaftRRWjnr7sua9/c=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
};
@@ -225,15 +247,26 @@
};
cuda = buildGrammar {
language = "cuda";
version = "a02c214";
version = "91c3ca3";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "a02c21408c592e6e6856eaabe4727faa97cf8d85";
hash = "sha256-bgyisXPNZXlvPF0nRPD5LeVhvbTx0TLgnToue9IFHwI=";
rev = "91c3ca3e42326e0f7b83c82765940bbf7f91c847";
hash = "sha256-0jDO8Wkqkn9ol4mfga/h/9yMMWkMF9Z/33rTxB8n1dg=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
cue = buildGrammar {
language = "cue";
version = "4ffcda8";
src = fetchFromGitHub {
owner = "eonpatapon";
repo = "tree-sitter-cue";
rev = "4ffcda8c2bdfee1c2ba786cd503d0508ea92cca2";
hash = "sha256-a72Z67LXmEuHF/mKIaxi1Y9TNzqLjAiPYR3+VUu9fso=";
};
meta.homepage = "https://github.com/eonpatapon/tree-sitter-cue";
};
d = buildGrammar {
language = "d";
version = "c2fbf21";
@@ -269,6 +302,17 @@
generate = true;
meta.homepage = "https://github.com/joelspadin/tree-sitter-devicetree";
};
dhall = buildGrammar {
language = "dhall";
version = "affb6ee";
src = fetchFromGitHub {
owner = "jbellerb";
repo = "tree-sitter-dhall";
rev = "affb6ee38d629c9296749767ab832d69bb0d9ea8";
hash = "sha256-q9OkKmp0Nor+YkFc8pBVAOoXoWzwjjzg9lBUKAUnjmQ=";
};
meta.homepage = "https://github.com/jbellerb/tree-sitter-dhall";
};
diff = buildGrammar {
language = "diff";
version = "f69bde8";
@@ -382,12 +426,12 @@
};
erlang = buildGrammar {
language = "erlang";
version = "2422bc9";
version = "9fe5cdf";
src = fetchFromGitHub {
owner = "WhatsApp";
repo = "tree-sitter-erlang";
rev = "2422bc9373094bfa97653ac540e08759f812523c";
hash = "sha256-DTIA3EP2RQtts6Hl6FThSxN1SwEUbRVJJig8zOUQRCo=";
rev = "9fe5cdfab0f0d753112e9949a3501f64b75a3d92";
hash = "sha256-nJikCiksuOAEXEvX2eQ2jZoVmzPQLJ36l4mk0irPW3c=";
};
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
};
@@ -426,12 +470,12 @@
};
fortran = buildGrammar {
language = "fortran";
version = "67cf1c9";
version = "31552ac";
src = fetchFromGitHub {
owner = "stadelmanma";
repo = "tree-sitter-fortran";
rev = "67cf1c96fd0dd92edd7812a95626c86c9be0781a";
hash = "sha256-OImEGuPlks3XfWSWXLekz5nSPJUHNS9uDm6ugrFPfdQ=";
rev = "31552ac43ecaffa443a12ebea68cc526d334892f";
hash = "sha256-6ywdhlQGjivA2RV5345A0BiybAJOn9cIM03GMHjVoiM=";
};
meta.homepage = "https://github.com/stadelmanma/tree-sitter-fortran";
};
@@ -470,12 +514,12 @@
};
gdscript = buildGrammar {
language = "gdscript";
version = "31ebb7c";
version = "a4b57cc";
src = fetchFromGitHub {
owner = "PrestonKnopp";
repo = "tree-sitter-gdscript";
rev = "31ebb7cd0b880ea53a152eaf9d4df73f737181cc";
hash = "sha256-9fP6Us3mDMjJFM1Kxg0KiulCvyVv5qdo8+tyRgzGxUw=";
rev = "a4b57cc3bcbfc24550e858159647e9238e7ad1ac";
hash = "sha256-31FQlLVn5T/9858bPsZQkvejGVjO0ok5T5A13a+S91Y=";
};
meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-gdscript";
};
@@ -637,12 +681,12 @@
};
haskell = buildGrammar {
language = "haskell";
version = "3bdba07";
version = "0da7f82";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-haskell";
rev = "3bdba07c7a8eec23f87fa59ce9eb2ea4823348b3";
hash = "sha256-/aGUdyVxXqXCvjruI8rqiKzfTsyxzOKaXSAUG5xK4cE=";
rev = "0da7f826e85b3e589e217adf69a6fd89ee4301b9";
hash = "sha256-5PCwcbF+UOmn4HE99RgBoDvC7w/QP1lo870+11S6cok=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-haskell";
};
@@ -692,12 +736,12 @@
};
hlsl = buildGrammar {
language = "hlsl";
version = "8e2f090";
version = "306d485";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-hlsl";
rev = "8e2f0907e8d2e17a88a375025e70054bafdaa8b0";
hash = "sha256-kBSigaBR6uM4E9uHI79gYlxBrN0E5i1zTW8syMPIQdI=";
rev = "306d48516a6b3dbb18a184692e8edffa8403018f";
hash = "sha256-PvraHZYbTF3FFIQoooRr1Lx4ZrBLzzxWd5YoqibBQfM=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
};
@@ -758,23 +802,23 @@
};
java = buildGrammar {
language = "java";
version = "dd597f1";
version = "3c24aa9";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-java";
rev = "dd597f13eb9bab0c1bccc9aec390e8e6ebf9e0a6";
hash = "sha256-JeQZ4TMpt6Lfbcfc6m/PzhFZEgTdouasJ3b1sPISy2s=";
rev = "3c24aa9365985830421a3a7b6791b415961ea770";
hash = "sha256-06spTQhAIJvixfZ858vPKKv6FJ1AC4JElQzkugxfTuo=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-java";
};
javascript = buildGrammar {
language = "javascript";
version = "15e85e8";
version = "5720b24";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-javascript";
rev = "15e85e80b851983fab6b12dce5a535f5a0df0f9c";
hash = "sha256-2SAJBnY8pmynGqB8OVqHeeAKovskO+C/XiJbLTKSlcM=";
rev = "5720b249490b3c17245ba772f6be4a43edb4e3b7";
hash = "sha256-rSkLSXdthOS9wzXsC8D1Z1P0vmOT+APzeesvlN7ta6U=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
};
@@ -857,12 +901,12 @@
};
kdl = buildGrammar {
language = "kdl";
version = "c3c4856";
version = "e36f054";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-kdl";
rev = "c3c4856464842e05366b1f3ebc4434c9194cad43";
hash = "sha256-vYvyX9NWIFsWkxZvA5k32gFBh5Ykwgy0YrCBPAH6bcg=";
rev = "e36f054a60c4d9e5ae29567d439fdb8790b53b30";
hash = "sha256-ZZLe7WBDIX1x1lmuHE1lmZ93YWXTW3iwPgXXbxXR/n4=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-kdl";
};
@@ -890,12 +934,12 @@
};
latex = buildGrammar {
language = "latex";
version = "6b7ea83";
version = "376f640";
src = fetchFromGitHub {
owner = "latex-lsp";
repo = "tree-sitter-latex";
rev = "6b7ea839307670e6bda011f888717d3a882ecc09";
hash = "sha256-fmMm6HM9ZCnTyDxKmouoKFPYWkbrM//gHwVEFsICzUs=";
rev = "376f64097b7a26691a2ca60dc94e4dfa417be932";
hash = "sha256-9hcmCr9HfhKt5dkNN24haubrOySqpxzMoLVEGO53lxk=";
};
meta.homepage = "https://github.com/latex-lsp/tree-sitter-latex";
};
@@ -932,6 +976,17 @@
};
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
};
luap = buildGrammar {
language = "luap";
version = "bfb38d2";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-luap";
rev = "bfb38d254f380362e26b5c559a4086ba6e92ba77";
hash = "sha256-HpKqesIa+x3EQGnWV07jv2uEW9A9TEN4bPNuecXEaFI=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-luap";
};
m68k = buildGrammar {
language = "m68k";
version = "d097b12";
@@ -956,28 +1011,39 @@
};
markdown = buildGrammar {
language = "markdown";
version = "7e7aa9a";
version = "fa6bfd5";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "7e7aa9a25ca9729db9fe22912f8f47bdb403a979";
hash = "sha256-KsE9oYzD+vVqgR35JdL0NmPfNGJqpC12sEsZVIs7NX0=";
rev = "fa6bfd51727e4bef99f7eec5f43947f73d64ea7d";
hash = "sha256-P31TiBW5JqDfYJhWH6pGqD2aWan0Bo1Tl0ONEg7ePnM=";
};
location = "tree-sitter-markdown";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
language = "markdown_inline";
version = "7e7aa9a";
version = "fa6bfd5";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "7e7aa9a25ca9729db9fe22912f8f47bdb403a979";
hash = "sha256-KsE9oYzD+vVqgR35JdL0NmPfNGJqpC12sEsZVIs7NX0=";
rev = "fa6bfd51727e4bef99f7eec5f43947f73d64ea7d";
hash = "sha256-P31TiBW5JqDfYJhWH6pGqD2aWan0Bo1Tl0ONEg7ePnM=";
};
location = "tree-sitter-markdown-inline";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
matlab = buildGrammar {
language = "matlab";
version = "2d5d3d5";
src = fetchFromGitHub {
owner = "mstanciu552";
repo = "tree-sitter-matlab";
rev = "2d5d3d5193718a86477d4335aba5b34e79147326";
hash = "sha256-Rpa/F3MIFRmHunJFsuvbs3h3vDlR3U7UZ+sTN5tJS8U=";
};
meta.homepage = "https://github.com/mstanciu552/tree-sitter-matlab";
};
menhir = buildGrammar {
language = "menhir";
version = "db7953a";
@@ -1002,12 +1068,12 @@
};
meson = buildGrammar {
language = "meson";
version = "5f3138d";
version = "3d6dfbd";
src = fetchFromGitHub {
owner = "Decodetalkers";
repo = "tree-sitter-meson";
rev = "5f3138d555aceef976ec9a1d4a3f78e13b31e45f";
hash = "sha256-P0S2JpRjAznDLaU97NMzLuuNyPqqy4RNqBa+PKvyl6s=";
rev = "3d6dfbdb2432603bc84ca7dc009bb39ed9a8a7b1";
hash = "sha256-NRiecSr5UjISlFtmtvy3SYaWSmXMf0bKCKQVA83Jx+Y=";
};
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson";
};
@@ -1113,14 +1179,25 @@
};
meta.homepage = "https://github.com/Isopod/tree-sitter-pascal.git";
};
passwd = buildGrammar {
language = "passwd";
version = "2023939";
src = fetchFromGitHub {
owner = "ath3";
repo = "tree-sitter-passwd";
rev = "20239395eacdc2e0923a7e5683ad3605aee7b716";
hash = "sha256-3UfuyJeblQBKjqZvLYyO3GoCvYJp+DvBwQGkR3pFQQ4=";
};
meta.homepage = "https://github.com/ath3/tree-sitter-passwd";
};
perl = buildGrammar {
language = "perl";
version = "749d26f";
version = "ff1f0ac";
src = fetchFromGitHub {
owner = "ganezdragon";
repo = "tree-sitter-perl";
rev = "749d26fe13fb131b92e6515416096e572575b981";
hash = "sha256-VOLvfgh1ZbuDk1BKBW9ln/9b/seudFv0PTIOFe1AtNE=";
rev = "ff1f0ac0f1c678a23f68d0140e75a0da8e11b7b5";
hash = "sha256-RFSDtd8iJJEX7dawMzaGwJUB4t/nr11hmG2EdTp11s4=";
};
meta.homepage = "https://github.com/ganezdragon/tree-sitter-perl";
};
@@ -1157,6 +1234,17 @@
};
meta.homepage = "https://github.com/leo60228/tree-sitter-pioasm";
};
po = buildGrammar {
language = "po";
version = "d6aed22";
src = fetchFromGitHub {
owner = "erasin";
repo = "tree-sitter-po";
rev = "d6aed225290bc71a15ab6f06305cb11419360c56";
hash = "sha256-fz4DGPA+KtOvLBmVMXqwnEMeXhupFecQC1xfhMbWCJg=";
};
meta.homepage = "https://github.com/erasin/tree-sitter-po";
};
poe_filter = buildGrammar {
language = "poe_filter";
version = "80dc101";
@@ -1190,6 +1278,17 @@
};
meta.homepage = "https://github.com/mitchellh/tree-sitter-proto";
};
prql = buildGrammar {
language = "prql";
version = "5f6c4e4";
src = fetchFromGitHub {
owner = "PRQL";
repo = "tree-sitter-prql";
rev = "5f6c4e4a90633b19e2077c1d37248989789d64be";
hash = "sha256-unmRen1XJgT60lMfsIsp0PBghfBGqMoiEN9nB8Hu6gQ=";
};
meta.homepage = "https://github.com/PRQL/tree-sitter-prql";
};
pug = buildGrammar {
language = "pug";
version = "884e225";
@@ -1203,12 +1302,12 @@
};
python = buildGrammar {
language = "python";
version = "528855e";
version = "6282715";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-python";
rev = "528855eee2665210e1bf5556de48b8d8dacb8932";
hash = "sha256-H2RWMbbKIMbfH/TMC5SKbO9qEB9RfFUOYrczwmDdrVo=";
rev = "62827156d01c74dc1538266344e788da74536b8a";
hash = "sha256-hVtX4Dyqrq+cSvKTmKMxLbAplcCdR8dfFDoIZNtPFA0=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
};
@@ -1223,6 +1322,17 @@
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ql";
};
qmldir = buildGrammar {
language = "qmldir";
version = "6b2b5e4";
src = fetchFromGitHub {
owner = "Decodetalkers";
repo = "tree-sitter-qmldir";
rev = "6b2b5e41734bd6f07ea4c36ac20fb6f14061c841";
hash = "sha256-7ic9Xd+1G0JM25bY0f8N5r6YZx5NV5HrJXXHp6pXvo4=";
};
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-qmldir";
};
qmljs = buildGrammar {
language = "qmljs";
version = "ab75be9";
@@ -1258,12 +1368,12 @@
};
racket = buildGrammar {
language = "racket";
version = "1a5df02";
version = "c2f7baa";
src = fetchFromGitHub {
owner = "6cdh";
repo = "tree-sitter-racket";
rev = "1a5df0206b25a05cb1b35a68d2105fc7493df39b";
hash = "sha256-cKRShvkpg6M8vxUvp5wKHvX9ZJOUyv7m2hNyfeKw/Bk=";
rev = "c2f7baa22053a66b4dba852cdba3f14f34bb6985";
hash = "sha256-P6p2IOECsqCLBgtLE+xqzZuMS8d/lTfAHfTeONClVbY=";
};
meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
};
@@ -1346,12 +1456,12 @@
};
rust = buildGrammar {
language = "rust";
version = "f7fb205";
version = "fbf9e50";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-rust";
rev = "f7fb205c424b0962de59b26b931fe484e1262b35";
hash = "sha256-Onk8i2vGHySsjg/O3OZvl7OlDpg3b5/7481f+jJMPCU=";
rev = "fbf9e507d09d8b3c0bb9dfc4d46c31039a47dc4a";
hash = "sha256-hWooQfE7sWXfOkGai3hREoEulcwWT6XPT4xAc+dfjKk=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
};
@@ -1401,12 +1511,12 @@
};
smali = buildGrammar {
language = "smali";
version = "5a742af";
version = "a67a429";
src = fetchFromSourcehut {
owner = "~yotam";
repo = "tree-sitter-smali";
rev = "5a742af7388864a3ff2ce8421328a33e7246a2d5";
hash = "sha256-8FpmeyGzaQDUWXs/XanNi1u0jHsKP9wq7y7XNaQIlXM=";
rev = "a67a429784dafa0ca4342d71e6530137ca803883";
hash = "sha256-Pby6RZKPXyPR41E9m2iRsLgVt7bOn2AZyyb4lvcwYwY=";
};
meta.homepage = "https://git.sr.ht/~yotam/tree-sitter-smali";
};
@@ -1423,14 +1533,14 @@
};
solidity = buildGrammar {
language = "solidity";
version = "52ed088";
version = "1680203";
src = fetchFromGitHub {
owner = "YongJieYongJie";
owner = "JoranHonig";
repo = "tree-sitter-solidity";
rev = "52ed0880c0126df2f2c7693f215fe6f38e4a2e0a";
hash = "sha256-ZyeUYtE0pyQIPnZhza6u6yQO0Mx8brgAUmUpIXYZwb4=";
rev = "168020304759ad5d8b4a88a541a699134e3730c5";
hash = "sha256-GCSBXB9nNIYpcXlA6v7P1ejn1ojmfXdPzr1sWejB560=";
};
meta.homepage = "https://github.com/YongJieYongJie/tree-sitter-solidity";
meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
};
sparql = buildGrammar {
language = "sparql";
@@ -1445,16 +1555,27 @@
};
sql = buildGrammar {
language = "sql";
version = "3a3f92b";
version = "1cb7c7a";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "3a3f92b29c880488a08bc2baaf1aca6432ec3380";
hash = "sha256-UdvsZOpnZsfWomKHBmtpHYDsgYZgIZvw2d+JNUphycs=";
rev = "1cb7c7a11015983f6d173847d5a3574f8e20107b";
hash = "sha256-zdaFE5G19MLH4W5ZF0HfRNNMJV9Evp+X70eXHDmD/pA=";
};
generate = true;
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
starlark = buildGrammar {
language = "starlark";
version = "8ad93a7";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-starlark";
rev = "8ad93a74c2a880bc16325affba3cc66c14bb2bde";
hash = "sha256-HHGE7P/QAPCyu7wecRiDLrQIm8lndFjKOOb9xiyXsfc=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-starlark";
};
supercollider = buildGrammar {
language = "supercollider";
version = "90c6d9f";
@@ -1490,12 +1611,12 @@
};
swift = buildGrammar {
language = "swift";
version = "0c32d29";
version = "fe2e325";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "0c32d2948b79939b6464d9ced40fca43912cd486";
hash = "sha256-LyeK/fOQBO10blHCXYyGvmzk/U3uIj4tfjdH+p6aVs4=";
rev = "fe2e325a45056cdb3fcda821c03b8cef0d79e508";
hash = "sha256-ldPHpYhuAbodMPY8t8X7UiMY8kcds28r75R3Hqnlqv8=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@@ -1604,12 +1725,12 @@
};
tsx = buildGrammar {
language = "tsx";
version = "5d20856";
version = "c6e56d4";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-typescript";
rev = "5d20856f34315b068c41edaee2ac8a100081d259";
hash = "sha256-cpOAtfvlffS57BrXaoa2xa9NUYw0AsHxVI8PrcpgZCQ=";
rev = "c6e56d44c686a67c89e29e773e662567285d610f";
hash = "sha256-usZAbf2sTNO78ldiiex6i94dh73kH6QOV0jjf5StuO0=";
};
location = "tsx";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@@ -1638,24 +1759,35 @@
};
typescript = buildGrammar {
language = "typescript";
version = "5d20856";
version = "c6e56d4";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-typescript";
rev = "5d20856f34315b068c41edaee2ac8a100081d259";
hash = "sha256-cpOAtfvlffS57BrXaoa2xa9NUYw0AsHxVI8PrcpgZCQ=";
rev = "c6e56d44c686a67c89e29e773e662567285d610f";
hash = "sha256-usZAbf2sTNO78ldiiex6i94dh73kH6QOV0jjf5StuO0=";
};
location = "typescript";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
};
ungrammar = buildGrammar {
language = "ungrammar";
version = "debd26f";
src = fetchFromGitHub {
owner = "Philipp-M";
repo = "tree-sitter-ungrammar";
rev = "debd26fed283d80456ebafa33a06957b0c52e451";
hash = "sha256-ftvcD8I+hYqH3EGxaRZ0w8FHjBA34OSTTsrUsAOtayU=";
};
meta.homepage = "https://github.com/Philipp-M/tree-sitter-ungrammar";
};
v = buildGrammar {
language = "v";
version = "136f3a0";
version = "66cf9d3";
src = fetchFromGitHub {
owner = "vlang";
repo = "vls";
rev = "136f3a0ad91ab8a781c2d4eb419df0a981839f69";
hash = "sha256-zmbR2Of/XEJuGvNmXAJ+C4aAMem51LVS3e1rSqjaSb0=";
rev = "66cf9d3086fb5ecc827cb32c64c5d812ab17d2c6";
hash = "sha256-/dNdUAmfG/HNMzeWi3PSSM9pwA60/zOjLi4NFXfn6YU=";
};
location = "tree_sitter_v";
meta.homepage = "https://github.com/vlang/vls";
@@ -1759,14 +1891,25 @@
};
meta.homepage = "https://github.com/Hubro/tree-sitter-yang";
};
yuck = buildGrammar {
language = "yuck";
version = "48af129";
src = fetchFromGitHub {
owner = "Philipp-M";
repo = "tree-sitter-yuck";
rev = "48af129ab5411cd6f7ae2b36f53c1192572fa030";
hash = "sha256-G/aY771G7R78FhS7WxktlMf/0K+PR80WqfwmH+gQhwQ=";
};
meta.homepage = "https://github.com/Philipp-M/tree-sitter-yuck";
};
zig = buildGrammar {
language = "zig";
version = "6b3f578";
version = "f3bc9ff";
src = fetchFromGitHub {
owner = "maxxnino";
repo = "tree-sitter-zig";
rev = "6b3f5788f38be900b45f5af5a753bf6a37d614b8";
hash = "sha256-KwMo1gwre8/AXkXXwQqPHZIEPXM26PK8SI0p3tmkt24=";
rev = "f3bc9ffe9ca10f52dee01999b5b6ce9a4074b0ac";
hash = "sha256-/Bk7UGdPOHmGc01eCNPHsXFMF4pAxE/gkhVxvRItZZ8=";
};
meta.homepage = "https://github.com/maxxnino/tree-sitter-zig";
};
@@ -39,6 +39,7 @@
, statix
, stylish-haskell
, tabnine
, taskwarrior
, tmux
, tup
, vim
@@ -894,6 +895,10 @@ self: super: {
};
});
taskwarrior = buildVimPluginFrom2Nix {
inherit (taskwarrior) version pname;
src = "${taskwarrior.src}/scripts/vim";
};
telescope-cheat-nvim = super.telescope-cheat-nvim.overrideAttrs (old: {
dependencies = with self; [ sqlite-lua telescope-nvim ];
});
+6 -6
View File
@@ -18,17 +18,17 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "0661qkcljxdpi5f6cyfqr8vyf87p94amzdspcg8hjrz18j1adb0h";
x86_64-darwin = "0781ad52vcqgam3iprm56kvcv5v12pba0i5spazr5zssnn3w3ym0";
aarch64-linux = "0fwl12yngq3z2f18hp43q7nmnjdikly05q9rar9vcjc63h2pzfc5";
aarch64-darwin = "1nldkg14zvk6nc72l50w4lv9k490vn34ms6z9x2b9zkx15d09v7x";
armv7l-linux = "0mhriqi6hzn7wwfzl98dvcghkpkfa4rbbxvmyvzzc5ycgbs6r1mx";
x86_64-linux = "00n7mykr8dyn9chiwsp0s8pk53c39by4wl0hyx1inb0zqxaszw25";
x86_64-darwin = "1q41x23jbpisbwcxgmx18g0bcdsj5g1w3pbj9m6mxlssvbc2xiw6";
aarch64-linux = "1kaj8g50m8imk34whf6sq41a2b1751mjqxvpwnprlx0i7xj2l832";
aarch64-darwin = "1h6plmyv3xkkbpwka5rrkc1bdrgj9d8jp0q6qyhch368x8mp781m";
armv7l-linux = "0q46nzhn8agsif9s50dbdbx6ds3ll39yp5lrp9n7y9a26m4cwjmv";
}.${system} or throwSystem;
in
callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.75.1";
version = "1.76.0";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";
+2 -2
View File
@@ -31,13 +31,13 @@
stdenv.mkDerivation rec {
pname = "cemu";
version = "2.0-26";
version = "2.0-28";
src = fetchFromGitHub {
owner = "cemu-project";
repo = "Cemu";
rev = "v${version}";
hash = "sha256-+y+PJE2biRvuxIwrFVMjmkZyD8/zhHVMw6vzNKlsOZE=";
hash = "sha256-qKrj3XPtFVy0/KH18D0oCeVUQQmIdkYJYrCKD82c/+s=";
};
patches = [
@@ -1,10 +1,15 @@
{ alsa-lib
, copyDesktopItems
{ lib
, stdenv
, fetchFromGitHub
, SDL2
, SDL2_image
, SDL2_net
, alsa-lib
, copyDesktopItems
, fluidsynth
, glib
, gtest
, lib
, irr1
, libGL
, libGLU
, libjack2
@@ -20,22 +25,17 @@
, ninja
, opusfile
, pkg-config
, irr1
, SDL2
, SDL2_image
, SDL2_net
, speexdsp
, stdenv
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (self: {
pname = "dosbox-staging";
version = "0.80.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
owner = "dosbox-staging";
repo = "dosbox-staging";
rev = "v${self.version}";
hash = "sha256-I90poBeLSq1c8PXyjrx7/UcbfqFNnnNiXfJdWhLPGMc=";
};
@@ -91,17 +91,16 @@ stdenv.mkDerivation rec {
# original dosbox. Doing it this way allows us to work with frontends and
# launchers that expect the binary to be named dosbox, but get out of the
# way of vanilla dosbox if the user desires to install that as well.
mv $out/bin/dosbox $out/bin/${pname}
mv $out/bin/dosbox $out/bin/dosbox-staging
makeWrapper $out/bin/dosbox-staging $out/bin/dosbox
# Create a symlink to dosbox manual instead of merely copying it
# Create a symlink to dosbox manual instead of copying it
pushd $out/share/man/man1/
mv dosbox.1.gz ${pname}.1.gz
ln -s ${pname}.1.gz dosbox.1.gz
ln -s dosbox.1.gz dosbox-staging.1.gz
popd
'';
meta = with lib; {
meta = {
homepage = "https://dosbox-staging.github.io/";
description = "A modernized DOS emulator";
longDescription = ''
@@ -110,10 +109,10 @@ stdenv.mkDerivation rec {
existing DOSBox codebase while leveraging modern development tools and
practices.
'';
license = licenses.gpl2Plus;
maintainers = with maintainers; [ joshuafern AndersonTorres ];
platforms = platforms.unix;
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ joshuafern AndersonTorres ];
platforms = lib.platforms.unix;
priority = 101;
};
}
})
# TODO: report upstream about not finding SDL2_net
+2 -2
View File
@@ -145,8 +145,8 @@ in rec {
winetricks = fetchFromGitHub rec {
# https://github.com/Winetricks/winetricks/releases
version = "20220411";
hash = "sha256-FjH10nZDYbqXI6/vKpZJKfv2maXSVkahNDf5UTU3eyU=";
version = "20230212";
hash = "sha256-pd37QTcqY5ZaVBssGecuqziOIq1p0JH0ZDB+oLmp9JU=";
owner = "Winetricks";
repo = "winetricks";
rev = version;
+14 -13
View File
@@ -5,20 +5,21 @@
, SDL2
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (self: {
pname = "yapesdl";
version = "0.70.2";
version = "0.71.2";
src = fetchFromGitHub {
owner = "calmopyrin";
repo = pname;
rev = "v${version}";
hash = "sha256-51P6wNaSfVA3twu+yRUKXguEmVBvuuEnHxH1Zl1vsCc=";
repo = "yapesdl";
rev = "v${self.version}";
hash = "sha256-QGF3aS/YSzdGxHONKyA/iTewEVYsjBAsKARVMXkFV2k=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
SDL2
];
@@ -27,17 +28,17 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
install --directory $out/bin $out/share/doc/$pname
install yapesdl $out/bin/
install README.SDL $out/share/doc/$pname/
install -Dm755 yapesdl -t $out/bin/
install -Dm755 README.SDL -t $out/share/doc/yapesdl/
runHook postInstall
'';
meta = with lib; {
meta = {
homepage = "http://yape.plus4.net/";
description = "Multiplatform Commodore 64 and 264 family emulator";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
broken = stdenv.isDarwin;
};
}
})
@@ -0,0 +1,68 @@
{ lib
, python3
, xorg
, argyllcms
, wrapGAppsHook
, gtk3
, librsvg
}:
python3.pkgs.buildPythonApplication rec {
pname = "displaycal";
version = "3.9.10";
format = "setuptools";
src = python3.pkgs.fetchPypi {
pname = "DisplayCAL";
inherit version;
hash = "sha256-oDHDVb0zuAC49yPfmNe7xuFKaA1BRZGr75XwsLqugHs=";
};
nativeBuildInputs = [
wrapGAppsHook
gtk3
];
propagatedBuildInputs = with python3.pkgs; [
build
certifi
wxPython_4_2
dbus-python
distro
PyChromecast
send2trash
];
buildInputs = [
gtk3
librsvg
] ++ (with xorg; [
libX11
libXxf86vm
libXext
libXinerama
libXrandr
]);
doCheck = false; # Tests try to access an X11 session and dbus in weird locations.
pythonImportsCheck = [ "DisplayCAL" ];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=(
''${gappsWrapperArgs[@]}
--prefix PATH : ${lib.makeBinPath [ argyllcms ]}
--prefix PYTHONPATH : $PYTHONPATH
)
'';
meta = with lib; {
description = "Display calibration and characterization powered by Argyll CMS (Migrated to Python 3)";
homepage = "https://github.com/eoyilmaz/displaycal-py3";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ toastal ];
};
}
+11 -14
View File
@@ -1,5 +1,7 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, autoconf, automake, gettext, intltool
{ lib, stdenv, fetchFromGitHub, pkg-config, meson, ninja, xxd, gettext, intltool
, gtk3, lcms2, exiv2, libchamplain, clutter-gtk, ffmpegthumbnailer, fbida
, libarchive, djvulibre, libheif, openjpeg, libjxl, libraw, lua5_3, poppler
, gspell, libtiff, libwebp
, wrapGAppsHook, fetchpatch, doxygen
, nix-update-script
}:
@@ -12,31 +14,26 @@ stdenv.mkDerivation rec {
owner = "BestImageViewer";
repo = "geeqie";
rev = "v${version}";
sha256 = "sha256-O+yz/uNxueR+naEJG8EZ+k/JutRjJ5wwbB9DYb8YNLw=";
sha256 = "sha256-0GOX77vZ4KZkvwnR1vlv52tlbR+ciwl3ycxbOIcDOqU=";
};
patches = [
# Do not build the changelog as this requires markdown.
(fetchpatch {
name = "geeqie-1.4-goodbye-changelog.patch";
url = "https://src.fedoraproject.org/rpms/geeqie/raw/132fb04a1a5e74ddb333d2474f7edb9a39dc8d27/f/geeqie-1.4-goodbye-changelog.patch";
sha256 = "00a35dds44kjjdqsbbfk0x9y82jspvsbpm2makcm1ivzlhjjgszn";
})
];
postPatch = ''
patchShebangs .
# libtiff detection is broken and looks for liblibtiff...
# fixed upstream, to remove for 2.1
substituteInPlace meson.build --replace 'libtiff' 'tiff'
'';
preConfigure = "./autogen.sh";
nativeBuildInputs =
[ pkg-config autoconf automake gettext intltool
[ pkg-config gettext intltool
wrapGAppsHook doxygen
meson ninja xxd
];
buildInputs = [
gtk3 lcms2 exiv2 libchamplain clutter-gtk ffmpegthumbnailer fbida
libarchive djvulibre libheif openjpeg libjxl libraw lua5_3 poppler
gspell libtiff libwebp
];
postInstall = ''
@@ -10,17 +10,13 @@ with lib;
perlPackages.buildPerlPackage rec {
pname = "gscan2pdf";
version = "2.12.8";
version = "2.13.2";
src = fetchurl {
url = "mirror://sourceforge/gscan2pdf/gscan2pdf-${version}.tar.xz";
hash = "sha256-dmN2fMBDZqgvdHQryQgjmBHeH/h2dihRH8LkflFYzTk=";
hash = "sha256-NGz6DUa7TdChpgwmD9pcGdvYr3R+Ft3jPPSJpybCW4Q=";
};
patches = [
./ffmpeg5-compat.patch
];
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs =
@@ -1,15 +0,0 @@
--- a/t/351_unpaper.t
+++ b/t/351_unpaper.t
@@ -88,8 +88,10 @@
# if we use unlike, we no longer
# know how many tests there will be
- if ( $msg !~
-/(deprecated|Encoder did not produce proper pts, making some up)/
+ if ( $msg !~ /( deprecated |
+ \Qdoes not contain an image sequence pattern\E |
+ \QEncoder did not produce proper pts, making some up\E |
+ \Quse the -update option\E )/x
)
{
fail 'no warnings';
@@ -13,16 +13,16 @@
rustPlatform.buildRustPackage rec {
pname = "menyoki";
version = "1.6.1";
version = "1.7.0";
src = fetchFromGitHub {
owner = "orhun";
repo = pname;
rev = "v${version}";
sha256 = "sha256-z0OpRnjVfU6vcyZsxkdD2x3l+a9GkDHZcFveGunDYww=";
sha256 = "sha256-owP3G1Rygraifdc4iPURQ1Es0msNhYZIlfrtj0CSU6Y=";
};
cargoSha256 = "sha256-uSoyfgPlsHeUwnTHE49ErrlB65wcfl5dxn/YrW5EKZw=";
cargoSha256 = "sha256-NtXjlGkX8AzSw98xHPymzdnTipMIunyDbpSr4eVowa0=";
nativeBuildInputs = [ installShellFiles ]
++ lib.optional stdenv.isLinux pkg-config;
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "pdfcpu";
version = "0.3.13";
version = "0.4.0";
src = fetchFromGitHub {
owner = "pdfcpu";
repo = pname;
rev = "v${version}";
sha256 = "sha256-CFKo8YEAXAniX+jL2A0naJUOn3KAWwcrPsabdiZevhI=";
sha256 = "sha256-l3vJDF2c6h/trfnAGxu7XEoDoj7bB4tATBUlxKFYfUs=";
};
vendorSha256 = "sha256-3y42rbhurGhCI9PuSayxmLem0tv/nTjBwYxF3Dk6/yM=";
vendorSha256 = "sha256-611eLYm+OPIdmax2KwYNjuQEGqyZd6SXvhUHzRdLzaI=";
# No tests
doCheck = false;
+3 -3
View File
@@ -23,19 +23,19 @@
stdenv.mkDerivation rec {
pname = "rnote";
version = "0.5.14";
version = "0.5.16";
src = fetchFromGitHub {
owner = "flxzt";
repo = "rnote";
rev = "v${version}";
hash = "sha256-55hB8UyK+EPJ6/Yj5yNK6endNU9Ux/kZmQNjcrYq6KU=";
hash = "sha256-blpANUfFam46Vyyc3vaB7vX07CRMtdMZR2n7FOLGgaU=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-NPRImc0nVhYgq9JfGoSM1mT1Z6KQjVWgoLIagOUCM5M=";
hash = "sha256-vVU/OVwtIPRw1Ohe5EIqovhyd4oYOR7CPISz8Zo74r0=";
};
nativeBuildInputs = [
+1 -1
View File
@@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/release-service/22.12.2/src -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/release-service/22.12.3/src -A '*.tar.xz' )
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2,13 +2,13 @@
let
pname = "anytype";
version = "0.30.0";
version = "0.31.0";
name = "Anytype-${version}";
nameExecutable = pname;
src = fetchurl {
url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
name = "Anytype-${version}.AppImage";
sha256 = "sha256-LifJc5mLbnt5wBXGM1n1uice0B6mCY80LYf3kEFJy90=";
sha256 = "sha256-s8al0R9G478A+PymQcdcdRpw6tpKkG+WIZsXZYEvf/o=";
};
appimageContents = appimageTools.extractType2 { inherit name src; };
in
+14 -16
View File
@@ -1,14 +1,10 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, cairo, libxkbcommon
, pango, fribidi, harfbuzz, pcre, pkg-config
, ncursesSupport ? true, ncurses ? null
, waylandSupport ? true, wayland ? null, wayland-protocols ? null
, x11Support ? true, xorg ? null
, pango, fribidi, harfbuzz, pcre, pkg-config, scdoc
, ncursesSupport ? true, ncurses
, waylandSupport ? true, wayland, wayland-protocols, wayland-scanner
, x11Support ? true, xorg
}:
assert ncursesSupport -> ncurses != null;
assert waylandSupport -> ! lib.elem null [wayland wayland-protocols];
assert x11Support -> xorg != null;
stdenv.mkDerivation rec {
pname = "bemenu";
version = "0.6.14";
@@ -20,14 +16,9 @@ stdenv.mkDerivation rec {
sha256 = "sha256-bMnnuT+LNNKphmvVcD1aaNZxasSGOEcAveC4stCieG8=";
};
nativeBuildInputs = [ pkg-config pcre ];
makeFlags = ["PREFIX=$(out)"];
buildFlags = ["clients"]
++ lib.optional ncursesSupport "curses"
++ lib.optional waylandSupport "wayland"
++ lib.optional x11Support "x11";
strictDeps = true;
nativeBuildInputs = [ pkg-config scdoc ]
++ lib.optionals waylandSupport [ wayland-scanner ];
buildInputs = with lib; [
cairo
@@ -42,6 +33,13 @@ stdenv.mkDerivation rec {
xorg.libXdmcp xorg.libpthreadstubs xorg.libxcb
];
makeFlags = ["PREFIX=$(out)"];
buildFlags = ["clients"]
++ lib.optional ncursesSupport "curses"
++ lib.optional waylandSupport "wayland"
++ lib.optional x11Support "x11";
meta = with lib; {
homepage = "https://github.com/Cloudef/bemenu";
description = "Dynamic menu library and client program inspired by dmenu";
+3 -3
View File
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage rec {
name = "cotp";
version = "1.2.1";
version = "1.2.3";
src = fetchFromGitHub {
owner = "replydev";
repo = "cotp";
rev = "v${version}";
hash = "sha256-DIb/lgJxwg+QuqzN/0YoUV1iZwRqh6PAN0KRK7TbWDs=";
hash = "sha256-Pg07iq2jj8cUA4iQsY52cujmUZLYrbTG5Zj+lITxpls=";
};
cargoHash = "sha256-uvH4mdI8ya/MJJngXQ98oXjG7JjUdvPwIzvJrdwlOEE=";
cargoHash = "sha256-gH9axiM0Qgl2TdJUpnDONHtU2I5l03SrKEe+2l5V21Y=";
buildInputs = lib.optionals stdenv.isLinux [ libxcb ]
++ lib.optionals stdenv.isDarwin [ AppKit ];
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "effitask";
version = "1.4.1";
version = "1.4.2";
src = fetchFromGitHub {
owner = "sanpii";
repo = pname;
rev = version;
sha256 = "sha256-nZn+mINIqAnaCKZCiywG8/BOPx6TlSe0rKV/8gcW/B4=";
sha256 = "sha256-6BA/TCCqVh5rtgGkUgk8nIqUzozipC5rrkbXMDWYpdQ=";
};
cargoSha256 = "sha256-aCjZRJNsxx75ghK0N95Q9w0h5H5mW9/77j/fumDrvyM=";
cargoHash = "sha256-ScqDNfWMFT8a1HOPjpw4J8EBrVSusIkOYReYeArZvZ8=";
nativeBuildInputs = [ pkg-config ];
+13 -10
View File
@@ -7,6 +7,13 @@
let
python = python3.override {
packageOverrides = self: super: {
flask = super.flask.overridePythonAttrs (old: rec {
version = "2.0.3";
src = old.src.override {
inherit version;
sha256 = "sha256-4RIMIoyi9VO0cN9KX6knq2YlhGdSYGmYGz6wqRkCaH0=";
};
});
flask-wtf = super.flask-wtf.overridePythonAttrs (old: rec {
version = "0.15.1";
src = old.src.override {
@@ -16,6 +23,11 @@ let
disabledTests = [
"test_outside_request"
];
disabledTestPaths = [
"tests/test_form.py"
"tests/test_html5.py"
];
patches = [ ];
});
werkzeug = super.werkzeug.overridePythonAttrs (old: rec {
version = "2.0.3";
@@ -24,16 +36,6 @@ let
sha256 = "b863f8ff057c522164b6067c9e28b041161b4be5ba4d0daceeaa50a163822d3c";
};
});
wtforms = super.wtforms.overridePythonAttrs (old: rec {
version = "2.3.3";
src = old.src.override {
inherit version;
sha256 = "81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c";
};
checkPhase = ''
${self.python.interpreter} tests/runtests.py
'';
});
};
};
in python.pkgs.buildPythonApplication rec {
@@ -52,6 +54,7 @@ in python.pkgs.buildPythonApplication rec {
flask
flask-wtf
msgpack
setuptools
(python.pkgs.toPythonModule (radicale3.override { python3 = python; }))
requests
] ++ requests.optional-dependencies.socks;
+37
View File
@@ -0,0 +1,37 @@
{ lib, stdenv, fetchFromSourcehut, python3, help2man }:
stdenv.mkDerivation rec {
pname = "fead";
version = "0.1.3";
src = fetchFromSourcehut {
owner = "~cnx";
repo = pname;
rev = version;
sha256 = "sha256-cW0GxyvC9url2QAAWD0M2pR4gBiPA3eeAaw77TwMV/0=";
};
nativeBuildInputs = [ help2man ];
buildInputs = [ python3 ];
# Needed for man page generation in build phase
postPatch = ''
patchShebangs src/fead.py
'';
makeFlags = [ "PREFIX=$(out)" ];
# Already done in postPatch phase
dontPatchShebangs = true;
# The package has no tests.
doCheck = false;
meta = with lib; {
description = "Advert generator from web feeds";
homepage = "https://git.sr.ht/~cnx/fead";
license = licenses.agpl3Plus;
changelog = "https://git.sr.ht/~cnx/fead/refs/${version}";
maintainers = with maintainers; [ McSinyx ];
};
}

Some files were not shown because too many files have changed in this diff Show More