mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-24 07:53:19 +00:00
Merge master into haskell-updates
This commit is contained in:
commit
f80081652f
13
.github/CODEOWNERS
vendored
13
.github/CODEOWNERS
vendored
@ -11,9 +11,6 @@
|
||||
# This also holds true for GitHub teams. Since almost none of our teams have write
|
||||
# permissions, you need to list all members of the team with commit access individually.
|
||||
|
||||
# This file
|
||||
/.github/CODEOWNERS @edolstra
|
||||
|
||||
# GitHub actions
|
||||
/.github/workflows @NixOS/Security @Mic92 @zowoq
|
||||
/.github/workflows/merge-staging @FRidh
|
||||
@ -22,12 +19,12 @@
|
||||
/.editorconfig @Mic92 @zowoq
|
||||
|
||||
# Libraries
|
||||
/lib @edolstra @infinisil
|
||||
/lib @infinisil
|
||||
/lib/systems @alyssais @ericson2314 @amjoseph-nixpkgs
|
||||
/lib/generators.nix @infinisil @edolstra @Profpatsch
|
||||
/lib/cli.nix @infinisil @edolstra @Profpatsch
|
||||
/lib/debug.nix @infinisil @edolstra @Profpatsch
|
||||
/lib/asserts.nix @infinisil @edolstra @Profpatsch
|
||||
/lib/generators.nix @infinisil @Profpatsch
|
||||
/lib/cli.nix @infinisil @Profpatsch
|
||||
/lib/debug.nix @infinisil @Profpatsch
|
||||
/lib/asserts.nix @infinisil @Profpatsch
|
||||
/lib/path.* @infinisil @fricklerhandwerk
|
||||
/lib/fileset @infinisil
|
||||
/doc/functions/fileset.section.md @infinisil
|
||||
|
5
.github/labeler.yml
vendored
5
.github/labeler.yml
vendored
@ -37,6 +37,11 @@
|
||||
"6.topic: fetch":
|
||||
- pkgs/build-support/fetch*/**/*
|
||||
|
||||
"6.topic: flakes":
|
||||
- '**/flake.nix'
|
||||
- lib/systems/flake-systems.nix
|
||||
- nixos/modules/config/nix-flakes.nix
|
||||
|
||||
"6.topic: GNOME":
|
||||
- doc/languages-frameworks/gnome.section.md
|
||||
- nixos/modules/services/desktops/gnome/**/*
|
||||
|
@ -1,25 +1,83 @@
|
||||
# Meson {#meson}
|
||||
|
||||
Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere.
|
||||
[Meson](https://mesonbuild.com/) is an open source meta build system meant to be
|
||||
fast and user-friendly.
|
||||
|
||||
## Variables controlling Meson {#variables-controlling-meson}
|
||||
In Nixpkgs, meson comes with a setup hook that overrides the configure, check,
|
||||
and install phases.
|
||||
|
||||
### `mesonFlags` {#mesonflags}
|
||||
Being a meta build system, meson needs an accompanying backend. In the context
|
||||
of Nixpkgs, the typical companion backend is [Ninja](#ninja), that provides a
|
||||
setup hook registering ninja-based build and install phases.
|
||||
|
||||
Controls the flags passed to meson.
|
||||
## Variables controlling Meson {#meson-variables-controlling}
|
||||
|
||||
### `mesonBuildType` {#mesonbuildtype}
|
||||
### Meson Exclusive Variables {#meson-exclusive-variables}
|
||||
|
||||
Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to Meson. We default to `plain`.
|
||||
#### `mesonFlags` {#meson-flags}
|
||||
|
||||
### `mesonAutoFeatures` {#mesonautofeatures}
|
||||
Controls the flags passed to `meson setup` during configure phase.
|
||||
|
||||
What value to set [`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `enabled`.
|
||||
#### `mesonWrapMode` {#meson-wrap-mode}
|
||||
|
||||
### `mesonWrapMode` {#mesonwrapmode}
|
||||
Which value is passed as
|
||||
[`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options)
|
||||
to. In Nixpkgs the default value is `nodownload`, so that no subproject will be
|
||||
downloaded (since network access is already disabled during deployment in
|
||||
Nixpkgs).
|
||||
|
||||
What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `nodownload` as we disallow network access.
|
||||
Note: Meson allows pre-population of subprojects that would otherwise be
|
||||
downloaded.
|
||||
|
||||
### `dontUseMesonConfigure` {#dontusemesonconfigure}
|
||||
#### `mesonBuildType` {#meson-build-type}
|
||||
|
||||
Disables using Meson’s `configurePhase`.
|
||||
Which value is passed as
|
||||
[`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to
|
||||
`meson setup` during configure phase. In Nixpkgs the default value is `plain`.
|
||||
|
||||
#### `mesonAutoFeatures` {#meson-auto-features}
|
||||
|
||||
Which value is passed as
|
||||
[`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options)
|
||||
to `meson setup` during configure phase. In Nixpkgs the default value is
|
||||
`enabled`, meaning that every feature declared as "auto" by the meson scripts
|
||||
will be enabled.
|
||||
|
||||
#### `mesonCheckFlags` {#meson-check-flags}
|
||||
|
||||
Controls the flags passed to `meson test` during check phase.
|
||||
|
||||
#### `mesonInstallFlags` {#meson-install-flags}
|
||||
|
||||
Controls the flags passed to `meson install` during install phase.
|
||||
|
||||
#### `mesonInstallTags` {#meson-install-tags}
|
||||
|
||||
A list of installation tags passed to Meson's commandline option
|
||||
[`--tags`](https://mesonbuild.com/Installing.html#installation-tags) during
|
||||
install phase.
|
||||
|
||||
Note: `mesonInstallTags` should be a list of strings, that will be converted to
|
||||
a comma-separated string that is recognized to `--tags`.
|
||||
Example: `mesonInstallTags = [ "emulator" "assembler" ];` will be converted to
|
||||
`--tags emulator,assembler`.
|
||||
|
||||
#### `dontUseMesonConfigure` {#dont-use-meson-configure}
|
||||
|
||||
When set to true, don't use the predefined `mesonConfigurePhase`.
|
||||
|
||||
#### `dontUseMesonCheck` {#dont-use-meson-check}
|
||||
|
||||
When set to true, don't use the predefined `mesonCheckPhase`.
|
||||
|
||||
#### `dontUseMesonInstall` {#dont-use-meson-install}
|
||||
|
||||
When set to true, don't use the predefined `mesonInstallPhase`.
|
||||
|
||||
### Honored variables {#meson-honored-variables}
|
||||
|
||||
The following variables commonly used by `stdenv.mkDerivation` are honored by
|
||||
Meson setup hook.
|
||||
|
||||
- `prefixKey`
|
||||
- `enableParallelBuilding`
|
||||
|
@ -1,3 +1,5 @@
|
||||
# ninja {#ninja}
|
||||
|
||||
Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the `dontUseNinjaBuild`, `dontUseNinjaInstall`, and `dontUseNinjaCheck`, respectively. Parallel building is enabled by default in Ninja.
|
||||
|
||||
Note that if the [Meson setup hook](#meson) is also active, Ninja's install and check phases will be disabled in favor of Meson's.
|
||||
|
@ -138,7 +138,9 @@ in buildDotnetModule rec {
|
||||
src = ./.;
|
||||
|
||||
projectFile = "src/project.sln";
|
||||
nugetDeps = ./deps.nix; # File generated with `nix-build -A package.passthru.fetch-deps`.
|
||||
# File generated with `nix-build -A package.passthru.fetch-deps`.
|
||||
# To run fetch-deps when this file does not yet exist, set nugetDeps to null
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
projectReferences = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure.
|
||||
|
||||
|
@ -210,6 +210,7 @@ In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json
|
||||
* `npmPruneFlags`: Flags to pass to `npm prune`. Defaults to the value of `npmInstallFlags`.
|
||||
* `makeWrapperArgs`: Flags to pass to `makeWrapper`, added to executable calling the generated `.js` with `node` as an interpreter. These scripts are defined in `package.json`.
|
||||
* `nodejs`: The `nodejs` package to build against, using the corresponding `npm` shipped with that version of `node`. Defaults to `pkgs.nodejs`.
|
||||
* `npmDeps`: The dependencies used to build the npm package. Especially useful to not have to recompute workspace depedencies.
|
||||
|
||||
#### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps}
|
||||
|
||||
|
@ -12,14 +12,18 @@ let
|
||||
_printFileset
|
||||
_intersection
|
||||
_difference
|
||||
_mirrorStorePath
|
||||
_fetchGitSubmodulesMinver
|
||||
;
|
||||
|
||||
inherit (builtins)
|
||||
isBool
|
||||
isList
|
||||
isPath
|
||||
pathExists
|
||||
seq
|
||||
typeOf
|
||||
nixVersion
|
||||
;
|
||||
|
||||
inherit (lib.lists)
|
||||
@ -34,6 +38,7 @@ let
|
||||
|
||||
inherit (lib.strings)
|
||||
isStringLike
|
||||
versionOlder
|
||||
;
|
||||
|
||||
inherit (lib.filesystem)
|
||||
@ -47,6 +52,7 @@ let
|
||||
inherit (lib.trivial)
|
||||
isFunction
|
||||
pipe
|
||||
inPureEvalMode
|
||||
;
|
||||
|
||||
in {
|
||||
@ -596,4 +602,111 @@ in {
|
||||
# We could also return the original fileset argument here,
|
||||
# but that would then duplicate work for consumers of the fileset, because then they have to coerce it again
|
||||
actualFileset;
|
||||
|
||||
/*
|
||||
Create a file set containing all [Git-tracked files](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) in a repository.
|
||||
|
||||
This function behaves like [`gitTrackedWith { }`](#function-library-lib.fileset.gitTrackedWith) - using the defaults.
|
||||
|
||||
Type:
|
||||
gitTracked :: Path -> FileSet
|
||||
|
||||
Example:
|
||||
# Include all files tracked by the Git repository in the current directory
|
||||
gitTracked ./.
|
||||
|
||||
# Include only files tracked by the Git repository in the parent directory
|
||||
# that are also in the current directory
|
||||
intersection ./. (gitTracked ../.)
|
||||
*/
|
||||
gitTracked =
|
||||
/*
|
||||
The [path](https://nixos.org/manual/nix/stable/language/values#type-path) to the working directory of a local Git repository.
|
||||
This directory must contain a `.git` file or subdirectory.
|
||||
*/
|
||||
path:
|
||||
# See the gitTrackedWith implementation for more explanatory comments
|
||||
let
|
||||
fetchResult = builtins.fetchGit path;
|
||||
in
|
||||
if inPureEvalMode then
|
||||
throw "lib.fileset.gitTracked: This function is currently not supported in pure evaluation mode, since it currently relies on `builtins.fetchGit`. See https://github.com/NixOS/nix/issues/9292."
|
||||
else if ! isPath path then
|
||||
throw "lib.fileset.gitTracked: Expected the argument to be a path, but it's a ${typeOf path} instead."
|
||||
else if ! pathExists (path + "/.git") then
|
||||
throw "lib.fileset.gitTracked: Expected the argument (${toString path}) to point to a local working tree of a Git repository, but it's not."
|
||||
else
|
||||
_mirrorStorePath path fetchResult.outPath;
|
||||
|
||||
/*
|
||||
Create a file set containing all [Git-tracked files](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) in a repository.
|
||||
The first argument allows configuration with an attribute set,
|
||||
while the second argument is the path to the Git working tree.
|
||||
If you don't need the configuration,
|
||||
you can use [`gitTracked`](#function-library-lib.fileset.gitTracked) instead.
|
||||
|
||||
This is equivalent to the result of [`unions`](#function-library-lib.fileset.unions) on all files returned by [`git ls-files`](https://git-scm.com/docs/git-ls-files)
|
||||
(which uses [`--cached`](https://git-scm.com/docs/git-ls-files#Documentation/git-ls-files.txt--c) by default).
|
||||
|
||||
:::{.warning}
|
||||
Currently this function is based on [`builtins.fetchGit`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-fetchGit)
|
||||
As such, this function causes all Git-tracked files to be unnecessarily added to the Nix store,
|
||||
without being re-usable by [`toSource`](#function-library-lib.fileset.toSource).
|
||||
|
||||
This may change in the future.
|
||||
:::
|
||||
|
||||
Type:
|
||||
gitTrackedWith :: { recurseSubmodules :: Bool ? false } -> Path -> FileSet
|
||||
|
||||
Example:
|
||||
# Include all files tracked by the Git repository in the current directory
|
||||
# and any submodules under it
|
||||
gitTracked { recurseSubmodules = true; } ./.
|
||||
*/
|
||||
gitTrackedWith =
|
||||
{
|
||||
/*
|
||||
(optional, default: `false`) Whether to recurse into [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to also include their tracked files.
|
||||
|
||||
If `true`, this is equivalent to passing the [--recurse-submodules](https://git-scm.com/docs/git-ls-files#Documentation/git-ls-files.txt---recurse-submodules) flag to `git ls-files`.
|
||||
*/
|
||||
recurseSubmodules ? false,
|
||||
}:
|
||||
/*
|
||||
The [path](https://nixos.org/manual/nix/stable/language/values#type-path) to the working directory of a local Git repository.
|
||||
This directory must contain a `.git` file or subdirectory.
|
||||
*/
|
||||
path:
|
||||
let
|
||||
# This imports the files unnecessarily, which currently can't be avoided
|
||||
# because `builtins.fetchGit` is the only function exposing which files are tracked by Git.
|
||||
# With the [lazy trees PR](https://github.com/NixOS/nix/pull/6530),
|
||||
# the unnecessarily import could be avoided.
|
||||
# However a simpler alternative still would be [a builtins.gitLsFiles](https://github.com/NixOS/nix/issues/2944).
|
||||
fetchResult = builtins.fetchGit {
|
||||
url = path;
|
||||
|
||||
# This is the only `fetchGit` parameter that makes sense in this context.
|
||||
# We can't just pass `submodules = recurseSubmodules` here because
|
||||
# this would fail for Nix versions that don't support `submodules`.
|
||||
${if recurseSubmodules then "submodules" else null} = true;
|
||||
};
|
||||
in
|
||||
if inPureEvalMode then
|
||||
throw "lib.fileset.gitTrackedWith: This function is currently not supported in pure evaluation mode, since it currently relies on `builtins.fetchGit`. See https://github.com/NixOS/nix/issues/9292."
|
||||
else if ! isBool recurseSubmodules then
|
||||
throw "lib.fileset.gitTrackedWith: Expected the attribute `recurseSubmodules` of the first argument to be a boolean, but it's a ${typeOf recurseSubmodules} instead."
|
||||
else if recurseSubmodules && versionOlder nixVersion _fetchGitSubmodulesMinver then
|
||||
throw "lib.fileset.gitTrackedWith: Setting the attribute `recurseSubmodules` to `true` is only supported for Nix version ${_fetchGitSubmodulesMinver} and after, but Nix version ${nixVersion} is used."
|
||||
else if ! isPath path then
|
||||
throw "lib.fileset.gitTrackedWith: Expected the second argument to be a path, but it's a ${typeOf path} instead."
|
||||
# We can identify local working directories by checking for .git,
|
||||
# see https://git-scm.com/docs/gitrepository-layout#_description.
|
||||
# Note that `builtins.fetchGit` _does_ work for bare repositories (where there's no `.git`),
|
||||
# even though `git ls-files` wouldn't return any files in that case.
|
||||
else if ! pathExists (path + "/.git") then
|
||||
throw "lib.fileset.gitTrackedWith: Expected the second argument (${toString path}) to point to a local working tree of a Git repository, but it's not."
|
||||
else
|
||||
_mirrorStorePath path fetchResult.outPath;
|
||||
}
|
||||
|
@ -825,4 +825,27 @@ rec {
|
||||
${baseNameOf root} =
|
||||
fromFile (baseNameOf root) rootType;
|
||||
};
|
||||
|
||||
# Support for `builtins.fetchGit` with `submodules = true` was introduced in 2.4
|
||||
# https://github.com/NixOS/nix/commit/55cefd41d63368d4286568e2956afd535cb44018
|
||||
_fetchGitSubmodulesMinver = "2.4";
|
||||
|
||||
# Mirrors the contents of a Nix store path relative to a local path as a file set.
|
||||
# Some notes:
|
||||
# - The store path is read at evaluation time.
|
||||
# - The store path must not include files that don't exist in the respective local path.
|
||||
#
|
||||
# Type: Path -> String -> FileSet
|
||||
_mirrorStorePath = localPath: storePath:
|
||||
let
|
||||
recurse = focusedStorePath:
|
||||
mapAttrs (name: type:
|
||||
if type == "directory" then
|
||||
recurse (focusedStorePath + "/${name}")
|
||||
else
|
||||
type
|
||||
) (builtins.readDir focusedStorePath);
|
||||
in
|
||||
_create localPath
|
||||
(recurse storePath);
|
||||
}
|
||||
|
@ -43,15 +43,29 @@ crudeUnquoteJSON() {
|
||||
cut -d \" -f2
|
||||
}
|
||||
|
||||
prefixExpression='let
|
||||
lib = import <nixpkgs/lib>;
|
||||
internal = import <nixpkgs/lib/fileset/internal.nix> {
|
||||
inherit lib;
|
||||
};
|
||||
in
|
||||
with lib;
|
||||
with internal;
|
||||
with lib.fileset;'
|
||||
prefixExpression() {
|
||||
echo 'let
|
||||
lib =
|
||||
(import <nixpkgs/lib>)
|
||||
'
|
||||
if [[ "${1:-}" == "--simulate-pure-eval" ]]; then
|
||||
echo '
|
||||
.extend (final: prev: {
|
||||
trivial = prev.trivial // {
|
||||
inPureEvalMode = true;
|
||||
};
|
||||
})'
|
||||
fi
|
||||
echo '
|
||||
;
|
||||
internal = import <nixpkgs/lib/fileset/internal.nix> {
|
||||
inherit lib;
|
||||
};
|
||||
in
|
||||
with lib;
|
||||
with internal;
|
||||
with lib.fileset;'
|
||||
}
|
||||
|
||||
# Check that two nix expression successfully evaluate to the same value.
|
||||
# The expressions have `lib.fileset` in scope.
|
||||
@ -60,7 +74,7 @@ expectEqual() {
|
||||
local actualExpr=$1
|
||||
local expectedExpr=$2
|
||||
if actualResult=$(nix-instantiate --eval --strict --show-trace 2>"$tmp"/actualStderr \
|
||||
--expr "$prefixExpression ($actualExpr)"); then
|
||||
--expr "$(prefixExpression) ($actualExpr)"); then
|
||||
actualExitCode=$?
|
||||
else
|
||||
actualExitCode=$?
|
||||
@ -68,7 +82,7 @@ expectEqual() {
|
||||
actualStderr=$(< "$tmp"/actualStderr)
|
||||
|
||||
if expectedResult=$(nix-instantiate --eval --strict --show-trace 2>"$tmp"/expectedStderr \
|
||||
--expr "$prefixExpression ($expectedExpr)"); then
|
||||
--expr "$(prefixExpression) ($expectedExpr)"); then
|
||||
expectedExitCode=$?
|
||||
else
|
||||
expectedExitCode=$?
|
||||
@ -95,8 +109,9 @@ expectEqual() {
|
||||
# Usage: expectStorePath NIX
|
||||
expectStorePath() {
|
||||
local expr=$1
|
||||
if ! result=$(nix-instantiate --eval --strict --json --read-write-mode --show-trace \
|
||||
--expr "$prefixExpression ($expr)"); then
|
||||
if ! result=$(nix-instantiate --eval --strict --json --read-write-mode --show-trace 2>"$tmp"/stderr \
|
||||
--expr "$(prefixExpression) ($expr)"); then
|
||||
cat "$tmp/stderr" >&2
|
||||
die "$expr failed to evaluate, but it was expected to succeed"
|
||||
fi
|
||||
# This is safe because we assume to get back a store path in a string
|
||||
@ -108,10 +123,16 @@ expectStorePath() {
|
||||
# The expression has `lib.fileset` in scope.
|
||||
# Usage: expectFailure NIX REGEX
|
||||
expectFailure() {
|
||||
if [[ "$1" == "--simulate-pure-eval" ]]; then
|
||||
maybePure="--simulate-pure-eval"
|
||||
shift
|
||||
else
|
||||
maybePure=""
|
||||
fi
|
||||
local expr=$1
|
||||
local expectedErrorRegex=$2
|
||||
if result=$(nix-instantiate --eval --strict --read-write-mode --show-trace 2>"$tmp/stderr" \
|
||||
--expr "$prefixExpression $expr"); then
|
||||
--expr "$(prefixExpression $maybePure) $expr"); then
|
||||
die "$expr evaluated successfully to $result, but it was expected to fail"
|
||||
fi
|
||||
stderr=$(<"$tmp/stderr")
|
||||
@ -128,12 +149,12 @@ expectTrace() {
|
||||
local expectedTrace=$2
|
||||
|
||||
nix-instantiate --eval --show-trace >/dev/null 2>"$tmp"/stderrTrace \
|
||||
--expr "$prefixExpression trace ($expr)" || true
|
||||
--expr "$(prefixExpression) trace ($expr)" || true
|
||||
|
||||
actualTrace=$(sed -n 's/^trace: //p' "$tmp/stderrTrace")
|
||||
|
||||
nix-instantiate --eval --show-trace >/dev/null 2>"$tmp"/stderrTraceVal \
|
||||
--expr "$prefixExpression traceVal ($expr)" || true
|
||||
--expr "$(prefixExpression) traceVal ($expr)" || true
|
||||
|
||||
actualTraceVal=$(sed -n 's/^trace: //p' "$tmp/stderrTraceVal")
|
||||
|
||||
@ -1251,6 +1272,179 @@ expectEqual 'trace (intersection ./a (fromSource (lib.cleanSourceWith {
|
||||
}))) null' 'trace ./a/b null'
|
||||
rm -rf -- *
|
||||
|
||||
## lib.fileset.gitTracked/gitTrackedWith
|
||||
|
||||
# The first/second argument has to be a path
|
||||
expectFailure 'gitTracked null' 'lib.fileset.gitTracked: Expected the argument to be a path, but it'\''s a null instead.'
|
||||
expectFailure 'gitTrackedWith {} null' 'lib.fileset.gitTrackedWith: Expected the second argument to be a path, but it'\''s a null instead.'
|
||||
|
||||
# The path has to contain a .git directory
|
||||
expectFailure 'gitTracked ./.' 'lib.fileset.gitTracked: Expected the argument \('"$work"'\) to point to a local working tree of a Git repository, but it'\''s not.'
|
||||
expectFailure 'gitTrackedWith {} ./.' 'lib.fileset.gitTrackedWith: Expected the second argument \('"$work"'\) to point to a local working tree of a Git repository, but it'\''s not.'
|
||||
|
||||
# recurseSubmodules has to be a boolean
|
||||
expectFailure 'gitTrackedWith { recurseSubmodules = null; } ./.' 'lib.fileset.gitTrackedWith: Expected the attribute `recurseSubmodules` of the first argument to be a boolean, but it'\''s a null instead.'
|
||||
|
||||
# recurseSubmodules = true is not supported on all Nix versions
|
||||
if [[ "$(nix-instantiate --eval --expr "$(prefixExpression) (versionAtLeast builtins.nixVersion _fetchGitSubmodulesMinver)")" == true ]]; then
|
||||
fetchGitSupportsSubmodules=1
|
||||
else
|
||||
fetchGitSupportsSubmodules=
|
||||
expectFailure 'gitTrackedWith { recurseSubmodules = true; } ./.' 'lib.fileset.gitTrackedWith: Setting the attribute `recurseSubmodules` to `true` is only supported for Nix version 2.4 and after, but Nix version [0-9.]+ is used.'
|
||||
fi
|
||||
|
||||
# Checks that `gitTrackedWith` contains the same files as `git ls-files`
|
||||
# for the current working directory.
|
||||
# If --recurse-submodules is passed, the flag is passed through to `git ls-files`
|
||||
# and as `recurseSubmodules` to `gitTrackedWith`
|
||||
checkGitTrackedWith() {
|
||||
if [[ "${1:-}" == "--recurse-submodules" ]]; then
|
||||
gitLsFlags="--recurse-submodules"
|
||||
gitTrackedArg="{ recurseSubmodules = true; }"
|
||||
else
|
||||
gitLsFlags=""
|
||||
gitTrackedArg="{ }"
|
||||
fi
|
||||
|
||||
# All files listed by `git ls-files`
|
||||
expectedFiles=()
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
# If there are submodules but --recurse-submodules isn't passed,
|
||||
# `git ls-files` lists them as empty directories,
|
||||
# we need to filter that out since we only want to check/count files
|
||||
if [[ -f "$file" ]]; then
|
||||
expectedFiles+=("$file")
|
||||
fi
|
||||
done < <(git ls-files -z $gitLsFlags)
|
||||
|
||||
storePath=$(expectStorePath 'toSource { root = ./.; fileset = gitTrackedWith '"$gitTrackedArg"' ./.; }')
|
||||
|
||||
# Check that each expected file is also in the store path with the same content
|
||||
for expectedFile in "${expectedFiles[@]}"; do
|
||||
if [[ ! -e "$storePath"/"$expectedFile" ]]; then
|
||||
die "Expected file $expectedFile to exist in $storePath, but it doesn't.\nGit status:\n$(git status)\nStore path contents:\n$(find "$storePath")"
|
||||
fi
|
||||
if ! diff "$expectedFile" "$storePath"/"$expectedFile"; then
|
||||
die "Expected file $expectedFile to have the same contents as in $storePath, but it doesn't.\nGit status:\n$(git status)\nStore path contents:\n$(find "$storePath")"
|
||||
fi
|
||||
done
|
||||
|
||||
# This is a cheap way to verify the inverse: That all files in the store path are also expected
|
||||
# We just count the number of files in both and verify they're the same
|
||||
actualFileCount=$(find "$storePath" -type f -printf . | wc -c)
|
||||
if [[ "${#expectedFiles[@]}" != "$actualFileCount" ]]; then
|
||||
die "Expected ${#expectedFiles[@]} files in $storePath, but got $actualFileCount.\nGit status:\n$(git status)\nStore path contents:\n$(find "$storePath")"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Runs checkGitTrackedWith with and without --recurse-submodules
|
||||
# Allows testing both variants together
|
||||
checkGitTracked() {
|
||||
checkGitTrackedWith
|
||||
if [[ -n "$fetchGitSupportsSubmodules" ]]; then
|
||||
checkGitTrackedWith --recurse-submodules
|
||||
fi
|
||||
}
|
||||
|
||||
createGitRepo() {
|
||||
git init -q "$1"
|
||||
# Only repo-local config
|
||||
git -C "$1" config user.name "Nixpkgs"
|
||||
git -C "$1" config user.email "nixpkgs@nixos.org"
|
||||
# Get at least a HEAD commit, needed for older Nix versions
|
||||
git -C "$1" commit -q --allow-empty -m "Empty commit"
|
||||
}
|
||||
|
||||
# Check the error message for pure eval mode
|
||||
createGitRepo .
|
||||
expectFailure --simulate-pure-eval 'toSource { root = ./.; fileset = gitTracked ./.; }' 'lib.fileset.gitTracked: This function is currently not supported in pure evaluation mode, since it currently relies on `builtins.fetchGit`. See https://github.com/NixOS/nix/issues/9292.'
|
||||
expectFailure --simulate-pure-eval 'toSource { root = ./.; fileset = gitTrackedWith {} ./.; }' 'lib.fileset.gitTrackedWith: This function is currently not supported in pure evaluation mode, since it currently relies on `builtins.fetchGit`. See https://github.com/NixOS/nix/issues/9292.'
|
||||
rm -rf -- *
|
||||
|
||||
# Go through all stages of Git files
|
||||
# See https://www.git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
|
||||
|
||||
# Empty repository
|
||||
createGitRepo .
|
||||
checkGitTracked
|
||||
|
||||
# Untracked file
|
||||
echo a > a
|
||||
checkGitTracked
|
||||
|
||||
# Staged file
|
||||
git add a
|
||||
checkGitTracked
|
||||
|
||||
# Committed file
|
||||
git commit -q -m "Added a"
|
||||
checkGitTracked
|
||||
|
||||
# Edited file
|
||||
echo b > a
|
||||
checkGitTracked
|
||||
|
||||
# Removed file
|
||||
git rm -f -q a
|
||||
checkGitTracked
|
||||
|
||||
rm -rf -- *
|
||||
|
||||
# gitignored file
|
||||
createGitRepo .
|
||||
echo a > .gitignore
|
||||
touch a
|
||||
git add -A
|
||||
checkGitTracked
|
||||
|
||||
# Add it regardless (needs -f)
|
||||
git add -f a
|
||||
checkGitTracked
|
||||
rm -rf -- *
|
||||
|
||||
# Directory
|
||||
createGitRepo .
|
||||
mkdir -p d1/d2/d3
|
||||
touch d1/d2/d3/a
|
||||
git add d1
|
||||
checkGitTracked
|
||||
rm -rf -- *
|
||||
|
||||
# Submodules
|
||||
createGitRepo .
|
||||
createGitRepo sub
|
||||
|
||||
# Untracked submodule
|
||||
git -C sub commit -q --allow-empty -m "Empty commit"
|
||||
checkGitTracked
|
||||
|
||||
# Tracked submodule
|
||||
git submodule add ./sub sub >/dev/null
|
||||
checkGitTracked
|
||||
|
||||
# Untracked file
|
||||
echo a > sub/a
|
||||
checkGitTracked
|
||||
|
||||
# Staged file
|
||||
git -C sub add a
|
||||
checkGitTracked
|
||||
|
||||
# Committed file
|
||||
git -C sub commit -q -m "Add a"
|
||||
checkGitTracked
|
||||
|
||||
# Changed file
|
||||
echo b > sub/b
|
||||
checkGitTracked
|
||||
|
||||
# Removed file
|
||||
git -C sub rm -f -q a
|
||||
checkGitTracked
|
||||
|
||||
rm -rf -- *
|
||||
|
||||
# TODO: Once we have combinators and a property testing library, derive property tests from https://en.wikipedia.org/wiki/Algebra_of_sets
|
||||
|
||||
echo >&2 tests ok
|
||||
|
@ -43,6 +43,10 @@ rec {
|
||||
elaborate = args': let
|
||||
args = if lib.isString args' then { system = args'; }
|
||||
else args';
|
||||
|
||||
# TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL.
|
||||
rust = assert !(args ? rust && args ? rustc); args.rust or args.rustc or {};
|
||||
|
||||
final = {
|
||||
# Prefer to parse `config` as it is strictly more informative.
|
||||
parsed = parse.mkSystemFromString (if args ? config then args.config else args.system);
|
||||
@ -159,9 +163,101 @@ rec {
|
||||
({
|
||||
linux-kernel = args.linux-kernel or {};
|
||||
gcc = args.gcc or {};
|
||||
rustc = args.rustc or {};
|
||||
} // platforms.select final)
|
||||
linux-kernel gcc rustc;
|
||||
linux-kernel gcc;
|
||||
|
||||
# TODO: remove after 23.05 is EOL, with an error pointing to the rust.* attrs.
|
||||
rustc = args.rustc or {};
|
||||
|
||||
rust = rust // {
|
||||
# Once args.rustc.platform.target-family is deprecated and
|
||||
# removed, there will no longer be any need to modify any
|
||||
# values from args.rust.platform, so we can drop all the
|
||||
# "args ? rust" etc. checks, and merge args.rust.platform in
|
||||
# /after/.
|
||||
platform = rust.platform or {} // {
|
||||
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch
|
||||
arch =
|
||||
/**/ if rust ? platform then rust.platform.arch
|
||||
else if final.isAarch32 then "arm"
|
||||
else if final.isMips64 then "mips64" # never add "el" suffix
|
||||
else if final.isPower64 then "powerpc64" # never add "le" suffix
|
||||
else final.parsed.cpu.name;
|
||||
|
||||
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_os
|
||||
os =
|
||||
/**/ if rust ? platform then rust.platform.os or "none"
|
||||
else if final.isDarwin then "macos"
|
||||
else final.parsed.kernel.name;
|
||||
|
||||
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_family
|
||||
target-family =
|
||||
/**/ if args ? rust.platform.target-family then args.rust.platform.target-family
|
||||
else if args ? rustc.platform.target-family
|
||||
then
|
||||
(
|
||||
# Since https://github.com/rust-lang/rust/pull/84072
|
||||
# `target-family` is a list instead of single value.
|
||||
let
|
||||
f = args.rustc.platform.target-family;
|
||||
in
|
||||
if builtins.isList f then f else [ f ]
|
||||
)
|
||||
else lib.optional final.isUnix "unix"
|
||||
++ lib.optional final.isWindows "windows";
|
||||
|
||||
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_vendor
|
||||
vendor = let
|
||||
inherit (final.parsed) vendor;
|
||||
in rust.platform.vendor or {
|
||||
"w64" = "pc";
|
||||
}.${vendor.name} or vendor.name;
|
||||
};
|
||||
|
||||
# The name of the rust target, even if it is custom. Adjustments are
|
||||
# because rust has slightly different naming conventions than we do.
|
||||
rustcTarget = let
|
||||
inherit (final.parsed) cpu kernel abi;
|
||||
cpu_ = rust.platform.arch or {
|
||||
"armv7a" = "armv7";
|
||||
"armv7l" = "armv7";
|
||||
"armv6l" = "arm";
|
||||
"armv5tel" = "armv5te";
|
||||
"riscv64" = "riscv64gc";
|
||||
}.${cpu.name} or cpu.name;
|
||||
vendor_ = final.rust.platform.vendor;
|
||||
in rust.config
|
||||
or "${cpu_}-${vendor_}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
|
||||
|
||||
# The name of the rust target if it is standard, or the json file
|
||||
# containing the custom target spec.
|
||||
rustcTargetSpec =
|
||||
/**/ if rust ? platform
|
||||
then builtins.toFile (final.rust.rustcTarget + ".json") (builtins.toJSON rust.platform)
|
||||
else final.rust.rustcTarget;
|
||||
|
||||
# The name of the rust target if it is standard, or the
|
||||
# basename of the file containing the custom target spec,
|
||||
# without the .json extension.
|
||||
#
|
||||
# This is the name used by Cargo for target subdirectories.
|
||||
cargoShortTarget =
|
||||
lib.removeSuffix ".json" (baseNameOf "${final.rust.rustcTargetSpec}");
|
||||
|
||||
# When used as part of an environment variable name, triples are
|
||||
# uppercased and have all hyphens replaced by underscores:
|
||||
#
|
||||
# https://github.com/rust-lang/cargo/pull/9169
|
||||
# https://github.com/rust-lang/cargo/issues/8285#issuecomment-634202431
|
||||
cargoEnvVarTarget =
|
||||
lib.strings.replaceStrings ["-"] ["_"]
|
||||
(lib.strings.toUpper final.rust.cargoShortTarget);
|
||||
|
||||
# True if the target is no_std
|
||||
# https://github.com/rust-lang/rust/blob/2e44c17c12cec45b6a682b1e53a04ac5b5fcc9d2/src/bootstrap/config.rs#L415-L421
|
||||
isNoStdTarget =
|
||||
builtins.any (t: lib.hasInfix t final.rust.rustcTarget) ["-none" "nvptx" "switch" "-uefi"];
|
||||
};
|
||||
|
||||
linuxArch =
|
||||
if final.isAarch32 then "arm"
|
||||
|
@ -25,11 +25,13 @@ let
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
nix
|
||||
pkgs.gitMinimal
|
||||
] ++ lib.optional pkgs.stdenv.isLinux pkgs.inotify-tools;
|
||||
strictDeps = true;
|
||||
} ''
|
||||
datadir="${nix}/share"
|
||||
export TEST_ROOT=$(pwd)/test-tmp
|
||||
export HOME=$(mktemp -d)
|
||||
export NIX_BUILD_HOOK=
|
||||
export NIX_CONF_DIR=$TEST_ROOT/etc
|
||||
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
|
||||
|
@ -371,6 +371,15 @@
|
||||
githubId = 124545;
|
||||
name = "Anthony Cowley";
|
||||
};
|
||||
acuteenvy = {
|
||||
matrix = "@acuteenvy:matrix.org";
|
||||
github = "acuteenvy";
|
||||
githubId = 126529524;
|
||||
name = "Lena";
|
||||
keys = [{
|
||||
fingerprint = "CE85 54F7 B9BC AC0D D648 5661 AB5F C04C 3C94 443F";
|
||||
}];
|
||||
};
|
||||
adamcstephens = {
|
||||
email = "happy.plan4249@valkor.net";
|
||||
matrix = "@adam:valkor.net";
|
||||
@ -6103,6 +6112,10 @@
|
||||
github = "frogamic";
|
||||
githubId = 10263813;
|
||||
name = "Dominic Shelton";
|
||||
matrix = "@frogamic:beeper.com";
|
||||
keys = [{
|
||||
fingerprint = "779A 7CA8 D51C C53A 9C51 43F7 AAE0 70F0 67EC 00A5";
|
||||
}];
|
||||
};
|
||||
frontsideair = {
|
||||
email = "photonia@gmail.com";
|
||||
@ -8295,6 +8308,15 @@
|
||||
githubId = 18501;
|
||||
name = "Julien Langlois";
|
||||
};
|
||||
jfly = {
|
||||
name = "Jeremy Fleischman";
|
||||
email = "jeremyfleischman@gmail.com";
|
||||
github = "jfly";
|
||||
githubId = 277474;
|
||||
keys = [{
|
||||
fingerprint = "F1F1 3395 8E8E 9CC4 D9FC 9647 1931 9CD8 416A 642B";
|
||||
}];
|
||||
};
|
||||
jfrankenau = {
|
||||
email = "johannes@frankenau.net";
|
||||
github = "jfrankenau";
|
||||
@ -11209,6 +11231,12 @@
|
||||
githubId = 11810057;
|
||||
name = "Matt Snider";
|
||||
};
|
||||
matusf = {
|
||||
email = "matus.ferech@gmail.com";
|
||||
github = "matusf";
|
||||
githubId = 18228995;
|
||||
name = "Matúš Ferech";
|
||||
};
|
||||
maurer = {
|
||||
email = "matthew.r.maurer+nix@gmail.com";
|
||||
github = "maurer";
|
||||
@ -12466,6 +12494,11 @@
|
||||
fingerprint = "9E6A 25F2 C1F2 9D76 ED00 1932 1261 173A 01E1 0298";
|
||||
}];
|
||||
};
|
||||
nadir-ishiguro = {
|
||||
github = "nadir-ishiguro";
|
||||
githubId = 23151917;
|
||||
name = "nadir-ishiguro";
|
||||
};
|
||||
nadrieril = {
|
||||
email = "nadrieril@gmail.com";
|
||||
github = "Nadrieril";
|
||||
@ -19596,6 +19629,13 @@
|
||||
fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4";
|
||||
}];
|
||||
};
|
||||
YellowOnion = {
|
||||
name = "Daniel Hill";
|
||||
email = "daniel@gluo.nz";
|
||||
github = "YellowOnion";
|
||||
githubId = 364160;
|
||||
matrix = "@woobilicious:matrix.org";
|
||||
};
|
||||
yesbox = {
|
||||
email = "jesper.geertsen.jonsson@gmail.com";
|
||||
github = "yesbox";
|
||||
|
@ -1,9 +1,9 @@
|
||||
name,src,ref,server,version,luaversion,maintainers
|
||||
alt-getopt,,,,,,arobyn
|
||||
bit32,,,,5.3.0-1,5.1,lblasc
|
||||
argparse,https://github.com/luarocks/argparse.git,,,,,
|
||||
basexx,https://github.com/teto/basexx.git,,,,,
|
||||
binaryheap,https://github.com/Tieske/binaryheap.lua,,,,,vcunat
|
||||
argparse,,,,,,
|
||||
basexx,,,,,,
|
||||
binaryheap,,,,,,vcunat
|
||||
busted,,,,,,
|
||||
cassowary,,,,,,marsam alerque
|
||||
cldr,,,,,,alerque
|
||||
@ -12,8 +12,7 @@ cosmo,,,,,,marsam
|
||||
coxpcall,,,,1.17.0-1,,
|
||||
cqueues,,,,,,vcunat
|
||||
cyan,,,,,,
|
||||
cyrussasl,https://github.com/JorjBauer/lua-cyrussasl.git,,,,,
|
||||
digestif,https://github.com/astoff/digestif.git,,,0.2-1,5.3,
|
||||
digestif,https://github.com/astoff/digestif.git,,,,5.3,
|
||||
dkjson,,,,,,
|
||||
fennel,,,,,,misterio77
|
||||
fifo,,,,,,
|
||||
@ -24,7 +23,7 @@ http,,,,0.3-0,,vcunat
|
||||
inspect,,,,,,
|
||||
jsregexp,,,,,,
|
||||
ldbus,,,http://luarocks.org/dev,,,
|
||||
ldoc,https://github.com/stevedonovan/LDoc.git,,,,,
|
||||
ldoc,,,,,,
|
||||
lgi,,,,,,
|
||||
linenoise,https://github.com/hoelzro/lua-linenoise.git,,,,,
|
||||
ljsyscall,,,,,5.1,lblasc
|
||||
@ -40,7 +39,7 @@ lrexlib-posix,,,,,,
|
||||
lua-cjson,,,,,,
|
||||
lua-cmsgpack,,,,,,
|
||||
lua-curl,,,,,,
|
||||
lua-iconv,,,,,,
|
||||
lua-ffi-zlib,,,,,,
|
||||
lua-lsp,,,,,,
|
||||
lua-messagepack,,,,,,
|
||||
lua-protobuf,,,,,,lockejan
|
||||
@ -83,30 +82,30 @@ luaunit,,,,,,lockejan
|
||||
luautf8,,,,,,pstn
|
||||
luazip,,,,,,
|
||||
lua-yajl,,,,,,pstn
|
||||
lua-iconv,,,,7.0.0,,
|
||||
luuid,,,,,,
|
||||
luv,,,,1.44.2-1,,
|
||||
lush.nvim,https://github.com/rktjmp/lush.nvim,,,,,teto
|
||||
lyaml,,,,,,lblasc
|
||||
magick,,,,,,donovanglover
|
||||
magick,,,,,5.1,donovanglover
|
||||
markdown,,,,,,
|
||||
mediator_lua,,,,,,
|
||||
middleclass,,,,,,
|
||||
mpack,,,,,,
|
||||
moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
|
||||
nui-nvim,,,,,,mrcjkb
|
||||
nui.nvim,,,,,,mrcjkb
|
||||
nvim-client,https://github.com/neovim/lua-client.git,,,,,
|
||||
nvim-cmp,https://github.com/hrsh7th/nvim-cmp,,,,,
|
||||
penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
|
||||
plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,5.1,
|
||||
rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,
|
||||
rest.nvim,,,,,5.1,teto
|
||||
readline,,,,,,
|
||||
rustaceanvim,,,,,,mrcjkb
|
||||
say,https://github.com/Olivine-Labs/say.git,,,,,
|
||||
serpent,,,,,,lockejan
|
||||
sqlite,,,,,,
|
||||
std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
|
||||
std.normalize,https://github.com/lua-stdlib/normalize.git,,,,,
|
||||
std.normalize,,,,,,
|
||||
stdlib,,,,41.2.2,,vyp
|
||||
teal-language-server,,,http://luarocks.org/dev,,,
|
||||
telescope.nvim,,,,,5.1,
|
||||
|
|
@ -660,5 +660,5 @@ If reloading the module is not an option, proceed to [Nuclear option](#sec-relea
|
||||
|
||||
#### Nuclear option {#sec-release-23.05-migration-pipewire-nuclear}
|
||||
If all else fails, you can still manually copy the contents of the default configuration file
|
||||
from `${pkgs.pipewire.lib}/share/pipewire` to `/etc/pipewire` and edit it to fully override the default.
|
||||
from `${pkgs.pipewire}/share/pipewire` to `/etc/pipewire` and edit it to fully override the default.
|
||||
However, this should be done only as a last resort. Please talk to the Pipewire maintainers if you ever need to do this.
|
||||
|
@ -270,6 +270,18 @@
|
||||
|
||||
- `fileSystems.<name>.autoResize` now uses `systemd-growfs` to resize the file system online in stage 2. This means that `f2fs` and `ext2` can no longer be auto resized, while `xfs` and `btrfs` now can be.
|
||||
|
||||
- `fuse3` has been updated from 3.11.0 to 3.16.2; see [ChangeLog.rst](https://github.com/libfuse/libfuse/blob/fuse-3.16.2/ChangeLog.rst#libfuse-3162-2023-10-10) for an overview of the changes.
|
||||
|
||||
Unsupported mount options are no longer silently accepted [(since 3.15.0)](https://github.com/libfuse/libfuse/blob/fuse-3.16.2/ChangeLog.rst#libfuse-3150-2023-06-09). The [affected mount options](https://github.com/libfuse/libfuse/commit/dba6b3983af34f30de01cf532dff0b66f0ed6045) are: `atime`, `diratime`, `lazytime`, `nolazytime`, `relatime`, `norelatime`, `strictatime`.
|
||||
|
||||
For example,
|
||||
|
||||
```bash
|
||||
$ sshfs 127.0.0.1:/home/test/testdir /home/test/sshfs_mnt -o atime`
|
||||
```
|
||||
|
||||
would previously terminate successfully with the mount point established, now it outputs the error message ``fuse: unknown option(s): `-o atime'`` and terminates with exit status 1.
|
||||
|
||||
- `nixos-rebuild {switch,boot,test,dry-activate}` now runs the system activation inside `systemd-run`, creating an ephemeral systemd service and protecting the system switch against issues like network disconnections during remote (e.g. SSH) sessions. This has the side effect of running the switch in an isolated environment, that could possible break post-switch scripts that depends on things like environment variables being set. If you want to opt-out from this behavior for now, you may set the `NIXOS_SWITCH_USE_DIRTY_ENV` environment variable before running `nixos-rebuild`. However, keep in mind that this option will be removed in the future.
|
||||
|
||||
- The `services.vaultwarden.config` option default value was changed to make Vaultwarden only listen on localhost, following the [secure defaults for most NixOS services](https://github.com/NixOS/nixpkgs/issues/100192).
|
||||
@ -306,7 +318,7 @@
|
||||
|
||||
- The default `kops` version is now 1.28.0 and support for 1.25 and older has been dropped.
|
||||
|
||||
- `pharo` has been updated to latest stable (PharoVM 10.0.5), which is compatible with the latest stable and oldstable images (Pharo 10 and 11). The VM in question is the 64bit Spur. The 32bit version has been dropped due to lack of maintenance. The Cog VM has been deleted because it is severily outdated. Finally, the `pharo-launcher` package has been deleted because it was not compatible with the newer VM, and due to lack of maintenance.
|
||||
- `pharo` has been updated to latest stable (PharoVM 10.0.8), which is compatible with the latest stable and oldstable images (Pharo 10 and 11). The VM in question is the 64bit Spur. The 32bit version has been dropped due to lack of maintenance. The Cog VM has been deleted because it is severily outdated. Finally, the `pharo-launcher` package has been deleted because it was not compatible with the newer VM, and due to lack of maintenance.
|
||||
|
||||
- Emacs mainline version 29 was introduced. This new version includes many major additions, most notably `tree-sitter` support (enabled by default) and the pgtk variant (useful for Wayland users), which is available under the attribute `emacs29-pgtk`.
|
||||
|
||||
|
@ -257,6 +257,7 @@ foreach my $path (glob "/sys/class/{block,mmc_host}/*") {
|
||||
|
||||
# Add bcache module, if needed.
|
||||
my @bcacheDevices = glob("/dev/bcache*");
|
||||
@bcacheDevices = grep(!qr#dev/bcachefs.*#, @bcacheDevices);
|
||||
if (scalar @bcacheDevices > 0) {
|
||||
push @initrdAvailableKernelModules, "bcache";
|
||||
}
|
||||
@ -467,6 +468,19 @@ EOF
|
||||
# boot.tmp.useTmpfs option in configuration.nix (managed declaratively).
|
||||
next if ($mountPoint eq "/tmp" && $fsType eq "tmpfs");
|
||||
|
||||
# This should work for single and multi-device systems.
|
||||
# still needs subvolume support
|
||||
if ($fsType eq "bcachefs") {
|
||||
my ($status, @info) = runCommand("bcachefs fs usage $rootDir$mountPoint");
|
||||
my $UUID = $info[0];
|
||||
|
||||
if ($status == 0 && $UUID =~ /^Filesystem:[ \t\n]*([0-9a-z-]+)/) {
|
||||
$stableDevPath = "UUID=$1";
|
||||
} else {
|
||||
print STDERR "warning: can't find bcachefs mount UUID falling back to device-path";
|
||||
}
|
||||
}
|
||||
|
||||
# Emit the filesystem.
|
||||
$fileSystems .= <<EOF;
|
||||
fileSystems.\"$mountPoint\" =
|
||||
|
@ -115,8 +115,7 @@ in {
|
||||
environment.systemPackages = [ cfg.package ]
|
||||
++ lib.optional cfg.jack.enable jack-libs;
|
||||
|
||||
systemd.packages = [ cfg.package ]
|
||||
++ lib.optional cfg.pulse.enable cfg.package.pulse;
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
# PipeWire depends on DBUS but doesn't list it. Without this booting
|
||||
# into a terminal results in the service crashing with an error.
|
||||
@ -130,9 +129,13 @@ in {
|
||||
systemd.user.sockets.pipewire.enable = !cfg.systemWide;
|
||||
systemd.user.services.pipewire.enable = !cfg.systemWide;
|
||||
|
||||
# Mask pw-pulse if it's not wanted
|
||||
systemd.user.services.pipewire-pulse.enable = cfg.pulse.enable;
|
||||
systemd.user.sockets.pipewire-pulse.enable = cfg.pulse.enable;
|
||||
|
||||
systemd.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
|
||||
systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
|
||||
systemd.user.sockets.pipewire-pulse.wantedBy = lib.mkIf (cfg.socketActivation && cfg.pulse.enable) ["sockets.target"];
|
||||
systemd.user.sockets.pipewire-pulse.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
|
||||
|
||||
services.udev.packages = [ cfg.package ];
|
||||
|
||||
@ -140,14 +143,14 @@ in {
|
||||
environment.etc."alsa/conf.d/49-pipewire-modules.conf" = mkIf cfg.alsa.enable {
|
||||
text = ''
|
||||
pcm_type.pipewire {
|
||||
libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
|
||||
libs.native = ${cfg.package}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
|
||||
${optionalString enable32BitAlsaPlugins
|
||||
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
|
||||
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
|
||||
}
|
||||
ctl_type.pipewire {
|
||||
libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
|
||||
libs.native = ${cfg.package}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
|
||||
${optionalString enable32BitAlsaPlugins
|
||||
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
|
||||
"libs.32Bit = ${pkgs.pkgsi686Linux.pipewire}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
@ -301,6 +301,7 @@ in
|
||||
description = lib.mdDoc ''
|
||||
The addresses to send outgoing mail to.
|
||||
'';
|
||||
apply = x: if x == [] then null else lib.concatStringsSep "," x;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
if [ -e .attrs.sh ]; then source .attrs.sh; fi
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
|
||||
source $stdenv/setup
|
||||
|
||||
doSub() {
|
||||
|
@ -166,7 +166,7 @@ in {
|
||||
services.unbound.settings = {
|
||||
server = {
|
||||
directory = mkDefault cfg.stateDir;
|
||||
username = cfg.user;
|
||||
username = ''""'';
|
||||
chroot = ''""'';
|
||||
pidfile = ''""'';
|
||||
# when running under systemd there is no need to daemonize
|
||||
@ -245,14 +245,13 @@ in {
|
||||
NotifyAccess = "main";
|
||||
Type = "notify";
|
||||
|
||||
# FIXME: Which of these do we actually need, can we drop the chroot flag?
|
||||
AmbientCapabilities = [
|
||||
"CAP_NET_BIND_SERVICE"
|
||||
"CAP_NET_RAW" # needed if ip-transparent is set to true
|
||||
];
|
||||
CapabilityBoundingSet = [
|
||||
"CAP_NET_BIND_SERVICE"
|
||||
"CAP_NET_RAW"
|
||||
"CAP_SETGID"
|
||||
"CAP_SETUID"
|
||||
"CAP_SYS_CHROOT"
|
||||
"CAP_SYS_RESOURCE"
|
||||
];
|
||||
|
||||
User = cfg.user;
|
||||
@ -266,22 +265,19 @@ in {
|
||||
ProtectControlGroups = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectSystem = "strict";
|
||||
ProtectClock = true;
|
||||
ProtectHostname = true;
|
||||
ProtectProc = "invisible";
|
||||
ProcSubset = "pid";
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelTunables = true;
|
||||
RuntimeDirectory = "unbound";
|
||||
ConfigurationDirectory = "unbound";
|
||||
StateDirectory = "unbound";
|
||||
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_NETLINK" "AF_UNIX" ];
|
||||
RestrictRealtime = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"~@clock"
|
||||
"@cpu-emulation"
|
||||
"@debug"
|
||||
"@keyring"
|
||||
"@module"
|
||||
"mount"
|
||||
"@obsolete"
|
||||
"@resources"
|
||||
];
|
||||
SystemCallFilter = [ "@system-service" ];
|
||||
RestrictNamespaces = true;
|
||||
LockPersonality = true;
|
||||
RestrictSUIDSGID = true;
|
||||
|
@ -72,6 +72,18 @@ in
|
||||
The port to listen on for transport traffic.
|
||||
'';
|
||||
};
|
||||
|
||||
options."plugins.security.disabled" = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to enable the security plugin,
|
||||
`plugins.security.ssl.transport.keystore_filepath` or
|
||||
`plugins.security.ssl.transport.server.pemcert_filepath` and
|
||||
`plugins.security.ssl.transport.client.pemcert_filepath`
|
||||
must be set for this plugin to be enabled.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
default = {};
|
||||
@ -186,6 +198,13 @@ in
|
||||
shopt -s inherit_errexit
|
||||
|
||||
# Install plugins
|
||||
|
||||
# remove plugins directory if it is empty.
|
||||
if [ -z "$(ls -A ${cfg.dataDir}/plugins)" ]; then
|
||||
rm -r "${cfg.dataDir}/plugins"
|
||||
fi
|
||||
|
||||
ln -sfT "${cfg.package}/plugins" "${cfg.dataDir}/plugins"
|
||||
ln -sfT ${cfg.package}/lib ${cfg.dataDir}/lib
|
||||
ln -sfT ${cfg.package}/modules ${cfg.dataDir}/modules
|
||||
|
||||
|
@ -1,123 +1,110 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
literalExpression
|
||||
mdDoc
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
mkPackageOptionMD
|
||||
mkRemovedOptionModule
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.services.plantuml-server;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "services" "plantuml-server" "allowPlantumlInclude" ] "This option has been removed from PlantUML.")
|
||||
];
|
||||
|
||||
options = {
|
||||
services.plantuml-server = {
|
||||
enable = mkEnableOption (lib.mdDoc "PlantUML server");
|
||||
enable = mkEnableOption (mdDoc "PlantUML server");
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.plantuml-server;
|
||||
defaultText = literalExpression "pkgs.plantuml-server";
|
||||
description = lib.mdDoc "PlantUML server package to use";
|
||||
};
|
||||
package = mkPackageOptionMD pkgs "plantuml-server" { };
|
||||
|
||||
packages = {
|
||||
jdk = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.jdk;
|
||||
defaultText = literalExpression "pkgs.jdk";
|
||||
description = lib.mdDoc "JDK package to use for the server";
|
||||
};
|
||||
jetty = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.jetty;
|
||||
defaultText = literalExpression "pkgs.jetty";
|
||||
description = lib.mdDoc "Jetty package to use for the server";
|
||||
jdk = mkPackageOptionMD pkgs "jdk" { };
|
||||
jetty = mkPackageOptionMD pkgs "jetty" {
|
||||
default = "jetty_11";
|
||||
extraDescription = ''
|
||||
At the time of writing (v1.2023.12), PlantUML Server does not support
|
||||
Jetty versions higher than 12.x.
|
||||
|
||||
Jetty 12.x has introduced major breaking changes, see
|
||||
<https://github.com/jetty/jetty.project/releases/tag/jetty-12.0.0> and
|
||||
<https://eclipse.dev/jetty/documentation/jetty-12/programming-guide/index.html#pg-migration-11-to-12>
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "plantuml";
|
||||
description = lib.mdDoc "User which runs PlantUML server.";
|
||||
description = mdDoc "User which runs PlantUML server.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "plantuml";
|
||||
description = lib.mdDoc "Group which runs PlantUML server.";
|
||||
description = mdDoc "Group which runs PlantUML server.";
|
||||
};
|
||||
|
||||
home = mkOption {
|
||||
type = types.str;
|
||||
type = types.path;
|
||||
default = "/var/lib/plantuml";
|
||||
description = lib.mdDoc "Home directory of the PlantUML server instance.";
|
||||
description = mdDoc "Home directory of the PlantUML server instance.";
|
||||
};
|
||||
|
||||
listenHost = mkOption {
|
||||
type = types.str;
|
||||
default = "127.0.0.1";
|
||||
description = lib.mdDoc "Host to listen on.";
|
||||
description = mdDoc "Host to listen on.";
|
||||
};
|
||||
|
||||
listenPort = mkOption {
|
||||
type = types.int;
|
||||
default = 8080;
|
||||
description = lib.mdDoc "Port to listen on.";
|
||||
description = mdDoc "Port to listen on.";
|
||||
};
|
||||
|
||||
plantumlLimitSize = mkOption {
|
||||
type = types.int;
|
||||
default = 4096;
|
||||
description = lib.mdDoc "Limits image width and height.";
|
||||
description = mdDoc "Limits image width and height.";
|
||||
};
|
||||
|
||||
graphvizPackage = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.graphviz;
|
||||
defaultText = literalExpression "pkgs.graphviz";
|
||||
description = lib.mdDoc "Package containing the dot executable.";
|
||||
};
|
||||
graphvizPackage = mkPackageOptionMD pkgs "graphviz" { };
|
||||
|
||||
plantumlStats = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc "Set it to on to enable statistics report (https://plantuml.com/statistics-report).";
|
||||
description = mdDoc "Set it to on to enable statistics report (https://plantuml.com/statistics-report).";
|
||||
};
|
||||
|
||||
httpAuthorization = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = lib.mdDoc "When calling the proxy endpoint, the value of HTTP_AUTHORIZATION will be used to set the HTTP Authorization header.";
|
||||
};
|
||||
|
||||
allowPlantumlInclude = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc "Enables !include processing which can read files from the server into diagrams. Files are read relative to the current working directory.";
|
||||
description = mdDoc "When calling the proxy endpoint, the value of HTTP_AUTHORIZATION will be used to set the HTTP Authorization header.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.users.${cfg.user} = {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
home = cfg.home;
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
users.groups.${cfg.group} = {};
|
||||
|
||||
systemd.services.plantuml-server = {
|
||||
description = "PlantUML server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ cfg.home ];
|
||||
|
||||
environment = {
|
||||
PLANTUML_LIMIT_SIZE = builtins.toString cfg.plantumlLimitSize;
|
||||
GRAPHVIZ_DOT = "${cfg.graphvizPackage}/bin/dot";
|
||||
PLANTUML_STATS = if cfg.plantumlStats then "on" else "off";
|
||||
HTTP_AUTHORIZATION = cfg.httpAuthorization;
|
||||
ALLOW_PLANTUML_INCLUDE = if cfg.allowPlantumlInclude then "true" else "false";
|
||||
};
|
||||
script = ''
|
||||
${cfg.packages.jdk}/bin/java \
|
||||
@ -128,13 +115,40 @@ in
|
||||
jetty.http.host=${cfg.listenHost} \
|
||||
jetty.http.port=${builtins.toString cfg.listenPort}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = mkIf (cfg.home == "/var/lib/plantuml") "plantuml";
|
||||
StateDirectoryMode = mkIf (cfg.home == "/var/lib/plantuml") "0750";
|
||||
|
||||
# Hardening
|
||||
AmbientCapabilities = [ "" ];
|
||||
CapabilityBoundingSet = [ "" ];
|
||||
DynamicUser = true;
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateNetwork = false;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectSystem = "strict";
|
||||
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [ "@system-service" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ truh ];
|
||||
meta.maintainers = with lib.maintainers; [ truh anthonyroussel ];
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
set -e
|
||||
|
||||
if [ -e .attrs.sh ]; then source .attrs.sh; fi
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
@ -6,23 +6,39 @@ let
|
||||
|
||||
bootFs = filterAttrs (n: fs: (fs.fsType == "bcachefs") && (utils.fsNeededForBoot fs)) config.fileSystems;
|
||||
|
||||
mountCommand = pkgs.runCommand "mount.bcachefs" {} ''
|
||||
mkdir -p $out/bin
|
||||
cat > $out/bin/mount.bcachefs <<EOF
|
||||
#!/bin/sh
|
||||
exec "/bin/bcachefs" mount "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/mount.bcachefs
|
||||
'';
|
||||
|
||||
commonFunctions = ''
|
||||
prompt() {
|
||||
local name="$1"
|
||||
printf "enter passphrase for $name: "
|
||||
}
|
||||
|
||||
tryUnlock() {
|
||||
local name="$1"
|
||||
local path="$2"
|
||||
local success=false
|
||||
local target
|
||||
local uuid=$(echo -n $path | sed -e 's,UUID=\(.*\),\1,g')
|
||||
|
||||
printf "waiting for device to appear $path"
|
||||
for try in $(seq 10); do
|
||||
if [ -e $path ]; then
|
||||
success=true
|
||||
break
|
||||
else
|
||||
target=$(blkid --uuid $uuid)
|
||||
if [ $? == 0 ]; then
|
||||
success=true
|
||||
break
|
||||
fi
|
||||
fi
|
||||
echo -n "."
|
||||
sleep 1
|
||||
done
|
||||
printf "\n"
|
||||
if [ $success == true ]; then
|
||||
path=$target
|
||||
fi
|
||||
|
||||
if bcachefs unlock -c $path > /dev/null 2> /dev/null; then # test for encryption
|
||||
prompt $name
|
||||
until bcachefs unlock $path 2> /dev/null; do # repeat until successfully unlocked
|
||||
@ -30,6 +46,8 @@ let
|
||||
prompt $name
|
||||
done
|
||||
printf "unlocking successful.\n"
|
||||
else
|
||||
echo "Cannot unlock device $uuid with path $path" >&2
|
||||
fi
|
||||
}
|
||||
'';
|
||||
@ -77,13 +95,11 @@ in
|
||||
{
|
||||
config = mkIf (elem "bcachefs" config.boot.supportedFilesystems) (mkMerge [
|
||||
{
|
||||
# We do not want to include bachefs in the fsPackages for systemd-initrd
|
||||
# because we provide the unwrapped version of mount.bcachefs
|
||||
# through the extraBin option, which will make it available for use.
|
||||
system.fsPackages = lib.optional (!config.boot.initrd.systemd.enable) pkgs.bcachefs-tools;
|
||||
environment.systemPackages = lib.optional (config.boot.initrd.systemd.enable) pkgs.bcachefs-tools;
|
||||
# needed for systemd-remount-fs
|
||||
system.fsPackages = [ pkgs.bcachefs-tools ];
|
||||
|
||||
# use kernel package with bcachefs support until it's in mainline
|
||||
# TODO replace with requireKernelConfig
|
||||
boot.kernelPackages = pkgs.linuxPackages_testing_bcachefs;
|
||||
|
||||
systemd.services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems);
|
||||
@ -92,15 +108,14 @@ in
|
||||
(mkIf ((elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {
|
||||
# chacha20 and poly1305 are required only for decryption attempts
|
||||
boot.initrd.availableKernelModules = [ "bcachefs" "sha256" "chacha20" "poly1305" ];
|
||||
|
||||
boot.initrd.systemd.extraBin = {
|
||||
# do we need this? boot/systemd.nix:566 & boot/systemd/initrd.nix:357
|
||||
"bcachefs" = "${pkgs.bcachefs-tools}/bin/bcachefs";
|
||||
"mount.bcachefs" = "${mountCommand}/bin/mount.bcachefs";
|
||||
"mount.bcachefs" = "${pkgs.bcachefs-tools}/bin/mount.bcachefs";
|
||||
};
|
||||
|
||||
boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/bcachefs
|
||||
copy_bin_and_libs ${mountCommand}/bin/mount.bcachefs
|
||||
copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/mount.bcachefs
|
||||
'';
|
||||
boot.initrd.extraUtilsCommandsTest = lib.mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
$out/bin/bcachefs version
|
||||
|
@ -656,6 +656,7 @@ in {
|
||||
phylactery = handleTest ./web-apps/phylactery.nix {};
|
||||
pict-rs = handleTest ./pict-rs.nix {};
|
||||
pinnwand = handleTest ./pinnwand.nix {};
|
||||
plantuml-server = handleTest ./plantuml-server.nix {};
|
||||
plasma-bigscreen = handleTest ./plasma-bigscreen.nix {};
|
||||
plasma5 = handleTest ./plasma5.nix {};
|
||||
plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
|
||||
|
@ -1,5 +1,15 @@
|
||||
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
snakeoil = import ../common/acme/server/snakeoil-certs.nix;
|
||||
|
||||
hosts = lib.mkForce
|
||||
{ "fd::a" = [ "server" snakeoil.domain ];
|
||||
"fd::b" = [ "client" ];
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
name = "dnscrypt-wrapper";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
@ -7,59 +17,122 @@
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server = { lib, ... }:
|
||||
{ services.dnscrypt-wrapper = with builtins;
|
||||
server = {
|
||||
networking.hosts = hosts;
|
||||
networking.interfaces.eth1.ipv6.addresses = lib.singleton
|
||||
{ address = "fd::a"; prefixLength = 64; };
|
||||
|
||||
services.dnscrypt-wrapper =
|
||||
{ enable = true;
|
||||
address = "192.168.1.1";
|
||||
address = "[::]";
|
||||
port = 5353;
|
||||
keys.expiration = 5; # days
|
||||
keys.checkInterval = 2; # min
|
||||
# The keypair was generated by the command:
|
||||
# dnscrypt-wrapper --gen-provider-keypair \
|
||||
# --provider-name=2.dnscrypt-cert.server \
|
||||
# --ext-address=192.168.1.1:5353
|
||||
providerKey.public = toFile "public.key" (readFile ./public.key);
|
||||
providerKey.secret = toFile "secret.key" (readFile ./secret.key);
|
||||
providerKey.public = "${./public.key}";
|
||||
providerKey.secret = "${./secret.key}";
|
||||
};
|
||||
services.tinydns.enable = true;
|
||||
services.tinydns.data = ''
|
||||
..:192.168.1.1:a
|
||||
+it.works:1.2.3.4
|
||||
'';
|
||||
networking.firewall.allowedUDPPorts = [ 5353 ];
|
||||
networking.firewall.allowedTCPPorts = [ 5353 ];
|
||||
networking.interfaces.eth1.ipv4.addresses = lib.mkForce
|
||||
[ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
|
||||
# nameserver
|
||||
services.bind.enable = true;
|
||||
services.bind.zones = lib.singleton
|
||||
{ name = ".";
|
||||
master = true;
|
||||
file = pkgs.writeText "root.zone" ''
|
||||
$TTL 3600
|
||||
. IN SOA example.org. admin.example.org. ( 1 3h 1h 1w 1d )
|
||||
. IN NS example.org.
|
||||
example.org. IN AAAA 2001:db8::1
|
||||
'';
|
||||
};
|
||||
|
||||
# webserver
|
||||
services.nginx.enable = true;
|
||||
services.nginx.virtualHosts.${snakeoil.domain} =
|
||||
{ onlySSL = true;
|
||||
listenAddresses = [ "localhost" ];
|
||||
sslCertificate = snakeoil.${snakeoil.domain}.cert;
|
||||
sslCertificateKey = snakeoil.${snakeoil.domain}.key;
|
||||
locations."/ip".extraConfig = ''
|
||||
default_type text/plain;
|
||||
return 200 "Ciao $remote_addr!\n";
|
||||
'';
|
||||
};
|
||||
|
||||
# demultiplex HTTP and DNS from port 443
|
||||
services.sslh =
|
||||
{ enable = true;
|
||||
method = "ev";
|
||||
settings.transparent = true;
|
||||
settings.listen = lib.mkForce
|
||||
[ { host = "server"; port = "443"; is_udp = false; }
|
||||
{ host = "server"; port = "443"; is_udp = true; }
|
||||
];
|
||||
settings.protocols =
|
||||
[ # Send TLS to webserver (TCP)
|
||||
{ name = "tls"; host= "localhost"; port= "443"; }
|
||||
# Send DNSCrypt to dnscrypt-wrapper (TCP or UDP)
|
||||
{ name = "anyprot"; host = "localhost"; port = "5353"; }
|
||||
{ name = "anyprot"; host = "localhost"; port = "5353"; is_udp = true;}
|
||||
];
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 443 ];
|
||||
networking.firewall.allowedUDPPorts = [ 443 ];
|
||||
};
|
||||
|
||||
client = { lib, ... }:
|
||||
{ services.dnscrypt-proxy2.enable = true;
|
||||
services.dnscrypt-proxy2.upstreamDefaults = false;
|
||||
services.dnscrypt-proxy2.settings = {
|
||||
server_names = [ "server" ];
|
||||
static.server.stamp = "sdns://AQAAAAAAAAAAEDE5Mi4xNjguMS4xOjUzNTMgFEHYOv0SCKSuqR5CDYa7-58cCBuXO2_5uTSVU9wNQF0WMi5kbnNjcnlwdC1jZXJ0LnNlcnZlcg";
|
||||
client = {
|
||||
networking.hosts = hosts;
|
||||
networking.interfaces.eth1.ipv6.addresses = lib.singleton
|
||||
{ address = "fd::b"; prefixLength = 64; };
|
||||
|
||||
services.dnscrypt-proxy2.enable = true;
|
||||
services.dnscrypt-proxy2.upstreamDefaults = false;
|
||||
services.dnscrypt-proxy2.settings =
|
||||
{ server_names = [ "server" ];
|
||||
listen_addresses = [ "[::1]:53" ];
|
||||
cache = false;
|
||||
# Computed using https://dnscrypt.info/stamps/
|
||||
static.server.stamp =
|
||||
"sdns://AQAAAAAAAAAADzE5Mi4xNjguMS4yOjQ0MyAUQdg6"
|
||||
+"_RIIpK6pHkINhrv7nxwIG5c7b_m5NJVT3A1AXRYyLmRuc2NyeXB0LWNlcnQuc2VydmVy";
|
||||
};
|
||||
networking.nameservers = [ "127.0.0.1" ];
|
||||
networking.interfaces.eth1.ipv4.addresses = lib.mkForce
|
||||
[ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
};
|
||||
networking.nameservers = [ "::1" ];
|
||||
security.pki.certificateFiles = [ snakeoil.ca.cert ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
with subtest("The server can generate the ephemeral keypair"):
|
||||
server.wait_for_unit("dnscrypt-wrapper")
|
||||
server.wait_for_file("/var/lib/dnscrypt-wrapper/2.dnscrypt-cert.server.key")
|
||||
server.wait_for_file("/var/lib/dnscrypt-wrapper/2.dnscrypt-cert.server.crt")
|
||||
almost_expiration = server.succeed("date --date '4days 23 hours 56min'").strip()
|
||||
|
||||
with subtest("The client can connect to the server"):
|
||||
server.wait_for_unit("tinydns")
|
||||
client.wait_for_unit("dnscrypt-proxy2")
|
||||
assert "1.2.3.4" in client.wait_until_succeeds(
|
||||
"host it.works"
|
||||
), "The IP address of 'it.works' does not match 1.2.3.4"
|
||||
with subtest("The DNSCrypt client can connect to the server"):
|
||||
server.wait_for_unit("sslh")
|
||||
client.wait_until_succeeds("journalctl -u dnscrypt-proxy2 --grep '\[server\] OK'")
|
||||
|
||||
with subtest("HTTP client can connect to the server"):
|
||||
server.wait_for_unit("nginx")
|
||||
client.succeed("curl -s --fail https://${snakeoil.domain}/ip | grep -q fd::b")
|
||||
|
||||
with subtest("DNS queries over UDP are working"):
|
||||
server.wait_for_unit("bind")
|
||||
client.wait_for_open_port(53)
|
||||
assert "2001:db8::1" in client.wait_until_succeeds(
|
||||
"host -U example.org"
|
||||
), "The IP address of 'example.org' does not match 2001:db8::1"
|
||||
|
||||
with subtest("DNS queries over TCP are working"):
|
||||
server.wait_for_unit("bind")
|
||||
client.wait_for_open_port(53)
|
||||
assert "2001:db8::1" in client.wait_until_succeeds(
|
||||
"host -T example.org"
|
||||
), "The IP address of 'example.org' does not match 2001:db8::1"
|
||||
|
||||
with subtest("The server rotates the ephemeral keys"):
|
||||
# advance time by a little less than 5 days
|
||||
@ -68,7 +141,8 @@
|
||||
server.wait_for_file("/var/lib/dnscrypt-wrapper/oldkeys")
|
||||
|
||||
with subtest("The client can still connect to the server"):
|
||||
server.wait_for_unit("dnscrypt-wrapper")
|
||||
client.succeed("host it.works")
|
||||
client.systemctl("restart dnscrypt-proxy2")
|
||||
client.wait_until_succeeds("host -T example.org")
|
||||
client.wait_until_succeeds("host -U example.org")
|
||||
'';
|
||||
}
|
||||
|
20
nixos/tests/plantuml-server.nix
Normal file
20
nixos/tests/plantuml-server.nix
Normal file
@ -0,0 +1,20 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "plantuml-server";
|
||||
meta.maintainers = with lib.maintainers; [ anthonyroussel ];
|
||||
|
||||
nodes.machine = { pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.curl ];
|
||||
services.plantuml-server.enable = true;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("plantuml-server.service")
|
||||
machine.wait_for_open_port(8080)
|
||||
|
||||
with subtest("Generate chart"):
|
||||
chart_id = machine.succeed("curl -sSf http://localhost:8080/plantuml/coder -d 'Alice -> Bob'")
|
||||
machine.succeed("curl -sSf http://localhost:8080/plantuml/txt/{}".format(chart_id))
|
||||
'';
|
||||
})
|
@ -25,18 +25,6 @@
|
||||
|
||||
import ./make-test-python.nix ({ pkgs, ... }:
|
||||
let
|
||||
# Fix for https://github.com/ihabunek/toot/pull/405. Includes
|
||||
# https://github.com/ihabunek/toot/pull/405. TOREMOVE when
|
||||
# toot > 0.38.1
|
||||
patched-toot = pkgs.toot.overrideAttrs (old: {
|
||||
version = "unstable-24-09-2023";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ihabunek";
|
||||
repo = "toot";
|
||||
rev = "30857f570d64a26da80d0024227a8259f7cb65b5";
|
||||
sha256 = "sha256-BxrI7UY9bfqPzS+VLqCFSmu4PkIkvhntcEeNJb1AzOs=";
|
||||
};
|
||||
});
|
||||
send-toot = pkgs.writeScriptBin "send-toot" ''
|
||||
set -eux
|
||||
# toot is using the requests library internally. This library
|
||||
@ -195,7 +183,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
||||
security.pki.certificateFiles = [ "${tls-cert}/cert.pem" ];
|
||||
networking.extraHosts = hosts nodes;
|
||||
environment.systemPackages = with pkgs; [
|
||||
patched-toot
|
||||
pkgs.toot
|
||||
send-toot
|
||||
];
|
||||
};
|
||||
|
@ -67,7 +67,7 @@ rec {
|
||||
networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
|
||||
};
|
||||
}) {} [
|
||||
"6_3"
|
||||
"6_3" "6_4"
|
||||
];
|
||||
|
||||
testScript = ''
|
||||
|
@ -1,7 +1,6 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, makeWrapper
|
||||
, wrapGAppsHook
|
||||
@ -15,6 +14,8 @@
|
||||
, lv2
|
||||
, lilv
|
||||
, mpg123
|
||||
, opusfile
|
||||
, rapidjson
|
||||
, serd
|
||||
, sord
|
||||
, sqlite
|
||||
@ -61,13 +62,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "audacity";
|
||||
version = "3.3.3";
|
||||
version = "3.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
owner = "audacity";
|
||||
repo = "audacity";
|
||||
rev = "Audacity-${version}";
|
||||
hash = "sha256-m38Awdv2ew+MKqd68x/ZsRBwidM2KJ3BRykIKgnFSx4=";
|
||||
hash = "sha256-g9VdwVRrZrIKd4VUU12C691aM2ilgTJdW5Ic7sokk4M=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -109,8 +110,10 @@ stdenv.mkDerivation rec {
|
||||
lilv
|
||||
lv2
|
||||
mpg123
|
||||
opusfile
|
||||
pcre
|
||||
portmidi
|
||||
rapidjson
|
||||
serd
|
||||
sord
|
||||
soundtouch
|
||||
|
@ -121,6 +121,13 @@ in clangStdenv.mkDerivation {
|
||||
./autogen.sh
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
# Fix the build on c++17 compiler:
|
||||
# https://github.com/DeaDBeeF-Player/deadbeef/issues/3012
|
||||
# TODO: remove after 1.9.5 release.
|
||||
substituteInPlace plugins/adplug/Makefile.am --replace 'adplug_la_CXXFLAGS = ' 'adplug_la_CXXFLAGS = -std=c++11 '
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Ultimate Music Player for GNU/Linux";
|
||||
homepage = "http://deadbeef.sourceforge.net/";
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, autoconf
|
||||
, automake
|
||||
, which
|
||||
@ -33,7 +34,13 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-aAJ+k+kkOS6k835mEW7BvgAIYGhUHxf7Q4P5cKO8XTk=";
|
||||
};
|
||||
|
||||
patches = lib.optionals mbrolaSupport [
|
||||
patches = [
|
||||
# Fix build with Clang 16.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/espeak-ng/espeak-ng/commit/497c6217d696c1190c3e8b992ff7b9110eb3bedd.patch";
|
||||
hash = "sha256-KfzqnRyQfz6nuMKnsHoUzb9rn9h/Pg54mupW1Cr+Zx0=";
|
||||
})
|
||||
] ++ lib.optionals mbrolaSupport [
|
||||
# Hardcode correct mbrola paths.
|
||||
(substituteAll {
|
||||
src = ./mbrola.patch;
|
||||
|
@ -1,29 +1,19 @@
|
||||
{ stdenv, lib, fetchFromGitHub, fetchpatch, buildPackages, pkg-config, cmake
|
||||
{ stdenv, lib, fetchFromGitHub, buildPackages, pkg-config, cmake
|
||||
, alsa-lib, glib, libjack2, libsndfile, libpulseaudio
|
||||
, AppKit, AudioUnit, CoreAudio, CoreMIDI, CoreServices
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fluidsynth";
|
||||
version = "2.3.3";
|
||||
version = "2.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FluidSynth";
|
||||
repo = "fluidsynth";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-RqhlpvMbRSwdcY2uuFAdJnihN3aObcLVMuvCZ294dgo=";
|
||||
hash = "sha256-3qLmo9Ibl44v6Jj5Ix17ixwqfPt3ITTXUqBETF5pzE4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes bad CMAKE_INSTALL_PREFIX + CMAKE_INSTALL_LIBDIR concatenation for Darwin install name dir
|
||||
# Remove when PR merged & in release
|
||||
(fetchpatch {
|
||||
name = "0001-Fix-incorrect-way-of-turning-CMAKE_INSTALL_LIBDIR-absolute.patch";
|
||||
url = "https://github.com/FluidSynth/fluidsynth/pull/1261/commits/03cd38dd909fc24aa39553d869afbb4024416de8.patch";
|
||||
hash = "sha256-nV+MbFttnbNBO4zWnPLpnnEuoiESkV9BGFlUS9tQQfk=";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
|
||||
|
@ -13,13 +13,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "galaxy-buds-client";
|
||||
version = "4.5.2";
|
||||
version = "4.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ThePBone";
|
||||
repo = "GalaxyBudsClient";
|
||||
rev = version;
|
||||
hash = "sha256-bnJ1xvqos+JP0KF8Z7mX8/8IozcaRCgaRL3cSO3V120=";
|
||||
hash = "sha256-mmhXTtESjc8uNULc9zV2Qy/815BEEL7ybdnjArF2CXY=";
|
||||
};
|
||||
|
||||
projectFile = [ "GalaxyBudsClient/GalaxyBudsClient.csproj" ];
|
||||
|
69
pkgs/applications/audio/galaxy-buds-client/deps.nix
generated
69
pkgs/applications/audio/galaxy-buds-client/deps.nix
generated
@ -2,33 +2,42 @@
|
||||
# Please dont edit it manually, your changes might get overwritten!
|
||||
|
||||
{ fetchNuGet }: [
|
||||
(fetchNuGet { pname = "Avalonia"; version = "0.10.14"; sha256 = "0nn3xgkf7v47dwpnsxjg0b25ifqa4mbq02ja5rvnlc3q2k6k0fxv"; })
|
||||
(fetchNuGet { pname = "Avalonia"; version = "0.10.18"; sha256 = "01x7fc8rdkzba40piwi1ngsk7f8jawzn5bcq2la96hphsiahaarh"; })
|
||||
(fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
|
||||
(fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.14"; sha256 = "0diw3l2nblapvvhnpl28fcgmqg845rlp8cszcvzhd8g6mcm54r7i"; })
|
||||
(fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.14"; sha256 = "0r0p1g80pj06d8i7mq0kj00bpnsdlrxkh31r9166c779in34y946"; })
|
||||
(fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.14"; sha256 = "133w2s2jrjj8731s7xq06c8b4zwn00lb7cn8c1iypqaa82krvkq2"; })
|
||||
(fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.14"; sha256 = "06v18kmq10z5gmdqpnvn3aws2ir14gnnz0gvkbj7f68bfggzcg3s"; })
|
||||
(fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "0.10.14"; sha256 = "1qmggiigsn2rkqr0fhrfvyx138dvazihj64r1s4azq014530r0pk"; })
|
||||
(fetchNuGet { pname = "Avalonia.Native"; version = "0.10.14"; sha256 = "1h0h20cq6hds2mljn1457s42n6pcq821l1d6da2ijncmhk6rdwnl"; })
|
||||
(fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.14"; sha256 = "1hnski71ynqqlddfnbhall4fx3ndh04774kzykzparm8nd9aqaam"; })
|
||||
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.13"; sha256 = "0k5y0w164m03q278m4wr7zzf3vfq9nb0am9vmmprivpn1xwwa7ml"; })
|
||||
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.14"; sha256 = "1cvyg94avqdscniszshx5r3vfvx0cnna262sp89ad4bianmd4qkj"; })
|
||||
(fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "0.10.13"; sha256 = "1msrsxzya1l0grfxk17yizfvy2vg4i7hyw1aw54s8gf7x3gpzn86"; })
|
||||
(fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.14"; sha256 = "1c1jdxsnqrzwrcalrvc7x34x1zxc5qcpfxx4fkqca99ngw4b0blj"; })
|
||||
(fetchNuGet { pname = "Avalonia.X11"; version = "0.10.14"; sha256 = "182nza6rqndxlwi089r06ladfc6j8vsgqzd7xq21s91zbcbcidar"; })
|
||||
(fetchNuGet { pname = "Avalonia.Xaml.Behaviors"; version = "0.10.13"; sha256 = "0cs42z2vz679mdic7fbxzjs53xm2lp37wcnh843nz86qvma5280k"; })
|
||||
(fetchNuGet { pname = "Avalonia.Xaml.Interactions"; version = "0.10.13"; sha256 = "0s5fcsy2hs2wphd5cs4dnk4aw8zs5bbzisg0ba5akqpzwpps8fs1"; })
|
||||
(fetchNuGet { pname = "Avalonia.Xaml.Interactivity"; version = "0.10.13"; sha256 = "19kxbgs0nbiw9zq1f9fsawnw0sl5c880z2dfidnjp99vvfda9rzs"; })
|
||||
(fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.18"; sha256 = "1qbb527jvhv2p8dcxi7lhm3lczy96j546gb5w09gh90dmzaq45bw"; })
|
||||
(fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.18"; sha256 = "0iaby5696km0yl0bs2a8i6a5ypras54mimnmh9wjwarwniqj8yjs"; })
|
||||
(fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.18"; sha256 = "1qsrzv1fz73p46p9v60qqds229znfv9hawnams5hxwl46jn2v9cp"; })
|
||||
(fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.18"; sha256 = "173apfayxkm3lgj7xk9xzsbxmdhv44svr49ccqnd1dii7y69bgny"; })
|
||||
(fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "0.10.18"; sha256 = "0vcbhwckzxgcq9wxim91zk30kzjaydr9szl4rbr3rz85447hj9pi"; })
|
||||
(fetchNuGet { pname = "Avalonia.Native"; version = "0.10.18"; sha256 = "1hvmjs7wfcbycviky79g1p5q3bzs8j31sr53nnqxqy6pnbmg0nxg"; })
|
||||
(fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.18"; sha256 = "0phxxz4r1llklvp4svy9qlsms3qw77crai3ww70g03fifmmr9qq2"; })
|
||||
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.16"; sha256 = "1rla042nc9mc36qnpipszrf0sffwi5d83cr9dmihpa015bby42pz"; })
|
||||
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.18"; sha256 = "1vi83d9q6m2zd7b5snyzjxsj3vdp5bmi5vqhfslzghslpbhj2zwv"; })
|
||||
(fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "0.10.16"; sha256 = "1gsm421gzzymc6rys4sw4hds33grg2mwpnm5xpbhwfh4bnbfblg8"; })
|
||||
(fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.18"; sha256 = "1rvqydbzdi2n6jw4xx9q8i025w5zsgcli9vmv0vw1d51rd4cnc4k"; })
|
||||
(fetchNuGet { pname = "Avalonia.X11"; version = "0.10.18"; sha256 = "0bzhbnz0dimxbpjxcrphnjn8nk37hqw0b83s2nsha4gzqvpc75b2"; })
|
||||
(fetchNuGet { pname = "Avalonia.Xaml.Behaviors"; version = "0.10.17"; sha256 = "05g761may9xa1n75lmzib5hknjk7k0nz453bmg2d5m0xxqw6yc13"; })
|
||||
(fetchNuGet { pname = "Avalonia.Xaml.Interactions"; version = "0.10.17"; sha256 = "0k0xnbayplndc6xld98jdla8zv769aj5s285cpbdgm2dril0rywj"; })
|
||||
(fetchNuGet { pname = "Avalonia.Xaml.Interactivity"; version = "0.10.17"; sha256 = "0smxxr0b8585x0fq57y3jcaxpl5qyxmkr0c6pd83bsczk8p4rjfy"; })
|
||||
(fetchNuGet { pname = "Castle.Core"; version = "4.4.0"; sha256 = "0rpcbmyhckvlvp6vbzpj03c1gqz56ixc6f15vgmxmyf1g40c24pf"; })
|
||||
(fetchNuGet { pname = "Config.Net"; version = "4.15.0"; sha256 = "0hsyma0r8hssz2h7bx38rr8ajx28x5ya2h4k665cbd65z3cs1di1"; })
|
||||
(fetchNuGet { pname = "Config.Net.Json"; version = "4.15.0"; sha256 = "1q6v4pj76h0hhn26ln4kc8vg75jm8jnlp1ssnrqzwxy88yf82z4h"; })
|
||||
(fetchNuGet { pname = "CS-Script.Core"; version = "1.4.2-preview"; sha256 = "0djliiixl3ncc1b29s9knal1ascg359na0pacsm73p98ad1f7pzh"; })
|
||||
(fetchNuGet { pname = "Fizzler"; version = "1.2.0"; sha256 = "1b8kvqli5wql53ab9fwyg78h572z4f286s8rjb9xxmsyav1hsyll"; })
|
||||
(fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
|
||||
(fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2-preview.178"; sha256 = "1p5nwzl7jpypsd6df7hgcf47r977anjlyv21wacmalsj6lvdgnvn"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.1-preview.1"; sha256 = "1g5g7mnfr668hww9r84pfl04x0s44cq5ppykqg406a0lkdb2g8yp"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.1-preview.108"; sha256 = "0xs4px4fy5b6glc77rqswzpi5ddhxvbar1md6q9wla7hckabnq0z"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2-preview.178"; sha256 = "1402ylkxbgcnagcarqlfvg4gppy2pqs3bmin4n5mphva1g7bqb2p"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.1-preview.108"; sha256 = "16wvgvyra2g1b38rxxgkk85wbz89hspixs54zfcm4racgmj1mrj4"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2-preview.178"; sha256 = "0p8miaclnbfpacc1jaqxwfg0yfx9byagi4j4k91d9621vd19i8b2"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.1-preview.1"; sha256 = "0z0fadsicysa77ji4fnjkaaqfpc0d1w7x9qlkq40kb3jg7xhsmyx"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.1-preview.108"; sha256 = "16v7lrwwif2f5zfkx08n6y6w3m56mh4hy757biv0w9yffaf200js"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2-preview.178"; sha256 = "1n9jay9sji04xly6n8bzz4591fgy8i65p21a8mv5ip9lsyj1c320"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.1-preview.108"; sha256 = "15kqb353snwpavz3jja63mq8xjqsrw1f902scm8wxmsqrm5q6x55"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2-preview.178"; sha256 = "1r5syii96wv8q558cvsqw3lr10cdw6677lyiy82p6i3if51v3mr7"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.1-preview.1"; sha256 = "15671jvv5j98rkv249nn1fchxcd9gq8b37iwjqbmijig3r4ir718"; })
|
||||
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.1-preview.108"; sha256 = "0n6ymn9jqms3mk5hg0ar4y9jmh96myl6q0jimn7ahb1a8viq55k1"; })
|
||||
(fetchNuGet { pname = "InputSimulatorCore"; version = "1.0.5"; sha256 = "1vfqhqjcrpzahhvv5kyh6pk6j5c06wd0b2831y31fbxpdkxhbs2p"; })
|
||||
(fetchNuGet { pname = "JetBrains.Annotations"; version = "10.3.0"; sha256 = "1grdx28ga9fp4hwwpwv354rizm8anfq4lp045q4ss41gvhggr3z8"; })
|
||||
(fetchNuGet { pname = "libsodium"; version = "1.0.18"; sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn"; })
|
||||
@ -112,16 +121,21 @@
|
||||
(fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "2.0.0"; sha256 = "1i7j870l47gan3gpnnlzkccn5lbm7518cnkp25a3g5gp9l0dbwpw"; })
|
||||
(fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0"; sha256 = "097rngmgcrdfy7jy8j7dq3xaq2qky8ijwg0ws6bfv5lx0f3vvb0q"; })
|
||||
(fetchNuGet { pname = "Serilog.Sinks.Trace"; version = "3.0.0"; sha256 = "10byjmh2s0c13lmnzfw24qmr11kry9hg9y5fib3556y7759qwbqv"; })
|
||||
(fetchNuGet { pname = "ShimSkiaSharp"; version = "0.5.13"; sha256 = "0gzsiv85g0i8jmjl0nplvljqrgc4y42ds1q0f1x1hdqbnn7vsav2"; })
|
||||
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.0-preview.178"; sha256 = "062g14s6b2bixanpwihj3asm3jwvfw15mhvzqv6901afrlgzx4nk"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.0-preview.178"; sha256 = "1gwk81iq6zipab3dhpwydrqm2mqz67hpx7asvhna3mx0phrp2zqd"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.0-preview.178"; sha256 = "07kga1j51l3l302nvf537zg5clf6rflinjy0xd6i06cmhpkf3ksw"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.0-preview.178"; sha256 = "14p95nxccs6yq4rn2h9zbb60k0232k6349zdpy31jcfr6gc99cgi"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.0-preview.178"; sha256 = "09jmcg5k1vpsal8jfs90mwv0isf2y5wq3h4hd77rv6vffn5ic4sm"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.0-preview.178"; sha256 = "0ficil702lv3fvwpngbqh5l85i05l5jafzyh4jprzshr2qbnd8nl"; })
|
||||
(fetchNuGet { pname = "Svg.Custom"; version = "0.5.13"; sha256 = "1a6rwgwwqg98dhk5hdb38iffa39khcrvfwskl6i5j3xgvgzzq2lx"; })
|
||||
(fetchNuGet { pname = "Svg.Model"; version = "0.5.13"; sha256 = "0rxm79asyx1dji8x7q1z47mzy6zh8qbgw7py6xfkfj89cai6x4p8"; })
|
||||
(fetchNuGet { pname = "Svg.Skia"; version = "0.5.13"; sha256 = "1f00mzx7gzfhy42yldi3jzaivsl3byspak22rji86iq0vczz28zg"; })
|
||||
(fetchNuGet { pname = "ShimSkiaSharp"; version = "0.5.16"; sha256 = "06qf63bx6m18wbhvzfs89m5yl5s08spgg02gr7qy8j36r04k6cc5"; })
|
||||
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.1-preview.1"; sha256 = "1i1px67hcr9kygmbfq4b9nqzlwm7v2gapsp4isg9i19ax5g8dlhm"; })
|
||||
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.1-preview.108"; sha256 = "01sm36hdgmcgkai9m09xn2qfz8v7xhh803n8fng8rlxwnw60rgg6"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.1-preview.1"; sha256 = "0r14s3zyn3cpic02j80xjh8x6dd8g671f9nfnng5zk1x497qdw3a"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.1-preview.1"; sha256 = "1r9qr3civk0ws1z7hg322qyr8yjm10853zfgs03szr2lvdqiy7d1"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.1-preview.108"; sha256 = "19jf2jcq2spwbpx3cfdi2a95jf4y8205rh56lmkh8zsxd2k7fjyp"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.1-preview.1"; sha256 = "1w55nrwpl42psn6klia5a9aw2j1n25hpw2fdhchypm9f0v2iz24h"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.1-preview.108"; sha256 = "1vcpqd7slh2b9gsacpd7mk1266r1xfnkm6230k8chl3ng19qlf15"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.1-preview.1"; sha256 = "0mwj2yl4gn40lry03yqkj7sbi1drmm672dv88481sgah4c21lzrq"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.1-preview.108"; sha256 = "0a89gqjw8k97arr0kyd0fm3f46k1qamksbnyns9xdlgydjg557dd"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.1-preview.1"; sha256 = "1k50abd147pif9z9lkckbbk91ga1vv6k4skjz2n7wpll6fn0fvlv"; })
|
||||
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.1-preview.108"; sha256 = "05g9blprq5msw3wshrgsk19y0fvhjlqiybs1vdyhfmww330jlypn"; })
|
||||
(fetchNuGet { pname = "Svg.Custom"; version = "0.5.16"; sha256 = "0qp0vmknclaahf1aj8y2jl4xbaq30rf4ia55fpawxi25dfxsa4wy"; })
|
||||
(fetchNuGet { pname = "Svg.Model"; version = "0.5.16"; sha256 = "0c2hk7wgvd2lbc96jxnkcwmzbbdnwgnhh4km9ijb5248qkghs1b1"; })
|
||||
(fetchNuGet { pname = "Svg.Skia"; version = "0.5.16"; sha256 = "0ra6svakyg5h6m19ww5yrxl85w8yi3v5vrzqgcnqlvzndk696cyf"; })
|
||||
(fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
|
||||
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
|
||||
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
|
||||
@ -154,6 +168,7 @@
|
||||
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
|
||||
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
|
||||
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
|
||||
(fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
|
||||
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
|
||||
|
@ -6,6 +6,7 @@
|
||||
, automake
|
||||
, gnome2
|
||||
, gtk2
|
||||
, libGL
|
||||
, libjack2
|
||||
, libtool
|
||||
, libxml2
|
||||
@ -27,6 +28,7 @@ stdenv.mkDerivation rec {
|
||||
audiofile
|
||||
gnome2.gtkglext
|
||||
gtk2
|
||||
libGL
|
||||
libjack2
|
||||
libtool
|
||||
libxml2
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, fetchFromGitHub, faust, meson, ninja, pkg-config
|
||||
, boost, cairo, fftw, ladspa-sdk, libxcb, lv2, xcbutilwm
|
||||
, boost, cairo, fftw, ladspa-sdk, libxcb, lv2, xcbutilwm, xorg
|
||||
, zita-convolver, zita-resampler
|
||||
}:
|
||||
|
||||
@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
|
||||
libxcb
|
||||
lv2
|
||||
xcbutilwm
|
||||
xorg.xcbutil
|
||||
zita-convolver
|
||||
zita-resampler
|
||||
];
|
||||
|
@ -21,11 +21,11 @@ assert withConplay -> !libOnly;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${lib.optionalString libOnly "lib"}mpg123";
|
||||
version = "1.31.3";
|
||||
version = "1.32.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/mpg123/mpg123-${version}.tar.bz2";
|
||||
hash = "sha256-HKd9Omml/4RbegU294P+5VThBBE5prl49q/hT1gUrRo=";
|
||||
hash = "sha256-LZkTpX1O6PSXoYLG6CWCYCQJeCpPtIHpif7r9ENYZ7Q=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "man" ] ++ lib.optional withConplay "conplay";
|
||||
|
@ -30,8 +30,9 @@ stdenv.mkDerivation {
|
||||
];
|
||||
|
||||
patches = [
|
||||
# https://github.com/paulnasca/paulstretch_cpp/pull/12
|
||||
(fetchpatch {
|
||||
url = "https://github.com/paulnasca/paulstretch_cpp/pull/12.patch";
|
||||
url = "https://github.com/paulnasca/paulstretch_cpp/commit/d8671b36135fe66839b11eadcacb474cc8dae0d1.patch";
|
||||
sha256 = "0lx1rfrs53afkiz1drp456asqgj5yv6hx3lkc01165cv1jsbw6q4";
|
||||
})
|
||||
];
|
||||
|
@ -25,13 +25,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "reaper";
|
||||
version = "7.03";
|
||||
version = "7.05";
|
||||
|
||||
src = fetchurl {
|
||||
url = url_for_platform version stdenv.hostPlatform.qemuArch;
|
||||
hash = {
|
||||
x86_64-linux = "sha256-74fQXN6a3SqNZIc2MkOf2iWwP6oQToklbb3kBuaku6s=";
|
||||
aarch64-linux = "sha256-BF7iN8NdejqwZzHTFdys422p3qoNIm20IpFuaHdUx3U=";
|
||||
x86_64-linux = "sha256-P/PnbJPr4ErDz5ho1/dLERhqkKjdetHzKpCpfVZAYb0=";
|
||||
aarch64-linux = "sha256-PdnBVlHwoEEv2SPq/p5oyiOlduCEqL35gAY+QIJU1Ys=";
|
||||
}.${stdenv.hostPlatform.system};
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchFromGitHub, alsa-lib, freetype, ftgl, libjack2, libX11, lv2
|
||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, alsa-lib, freetype, ftgl, libjack2, libX11, lv2
|
||||
, libGLU, libGL, pkg-config, ttf_bitstream_vera
|
||||
}:
|
||||
|
||||
@ -10,9 +10,18 @@ stdenv.mkDerivation rec {
|
||||
owner = "pantherb";
|
||||
repo = "setBfree";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-e/cvD/CtT8dY1lYcsZ21DC8pNqKXqKfC/eRXX8k01eI=";
|
||||
hash = "sha256-e/cvD/CtT8dY1lYcsZ21DC8pNqKXqKfC/eRXX8k01eI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# link with -lGL can remove on next update
|
||||
(fetchpatch {
|
||||
name = "ui-add-lGL.patch";
|
||||
url = "https://github.com/pantherb/setBfree/commit/756437db43fbf5481f101d8fc695f8b11192047f.patch";
|
||||
hash = "sha256-49PYTayD4TchAApfFvj3DLc4EBTxH8LYx48TtdSRwwA=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace common.mak \
|
||||
--replace /usr/local "$out" \
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchFromGitHub, xorg, cairo, lv2, libjack2, mesa, pkg-config }:
|
||||
{ lib, stdenv, fetchFromGitHub, xorg, cairo, libGL, lv2, libjack2, mesa, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stone-phaser";
|
||||
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
xorg.libX11 cairo lv2 libjack2 mesa
|
||||
xorg.libX11 cairo libGL lv2 libjack2 mesa
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchFromGitHub, boost, cairo, lv2, pkg-config }:
|
||||
{ lib, stdenv, fetchFromGitHub, boost, cairo, libGL, lv2, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "string-machine";
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
boost cairo lv2
|
||||
boost cairo libGL lv2
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
|
@ -26,13 +26,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tauon";
|
||||
version = "7.6.7";
|
||||
version = "7.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Taiko2k";
|
||||
repo = "TauonMusicBox";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-d25JM2LUQw6KYPojc+Pn40IwCYWLE9un0YAMIBC1NVg=";
|
||||
hash = "sha256-FNRG0NKHQpPHb3P1M0eshFuGu9lyWFgmufFC5aqr7n0=";
|
||||
};
|
||||
|
||||
postUnpack = ''
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchurl, libogg, libvorbis, libao, pkg-config, curl
|
||||
{ lib, stdenv, fetchurl, fetchpatch, libogg, libvorbis, libao, pkg-config, curl, libiconv
|
||||
, speex, flac
|
||||
, autoreconfHook }:
|
||||
|
||||
@ -11,8 +11,18 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1c7h4ivgfdyygz2hyh6nfibxlkz8kdk868a576qkkjgj5gn78xyv";
|
||||
};
|
||||
|
||||
patches = lib.optionals stdenv.cc.isClang [
|
||||
# Fixes a call to undeclared function `utf8_decode`.
|
||||
# https://github.com/xiph/vorbis-tools/pull/33
|
||||
(fetchpatch {
|
||||
url = "https://github.com/xiph/vorbis-tools/commit/8a645f78b45ae7e370c0dc2a52d0f2612aa6110b.patch";
|
||||
hash = "sha256-RkT9Xa0pRu/oO9E9qhDa17L0luWgYHI2yINIkPZanmI=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ libogg libvorbis libao curl speex flac ];
|
||||
buildInputs = [ libogg libvorbis libao curl speex flac ]
|
||||
++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extra tools for Ogg-Vorbis audio codec";
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ autoreconfHook, boost180, cargo, coreutils, curl, cxx-rs, db62, fetchFromGitHub
|
||||
, git, hexdump, lib, libevent, libsodium, makeWrapper, rust, rustPlatform
|
||||
, git, hexdump, lib, libevent, libsodium, makeWrapper, rustPlatform
|
||||
, pkg-config, Security, stdenv, testers, tl-expected, utf8cpp, util-linux, zcash, zeromq
|
||||
}:
|
||||
|
||||
@ -57,7 +57,7 @@ rustPlatform.buildRustPackage.override { inherit stdenv; } rec {
|
||||
configureFlags = [
|
||||
"--disable-tests"
|
||||
"--with-boost-libdir=${lib.getLib boost180}/lib"
|
||||
"RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
|
||||
"RUST_TARGET=${stdenv.hostPlatform.rust.rustcTargetSpec}"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -15,11 +15,6 @@
|
||||
, fontconfig
|
||||
, freetype
|
||||
, wayland
|
||||
, expat
|
||||
, udev
|
||||
, which
|
||||
, lld
|
||||
, util-linuxMinimal
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
@ -51,8 +46,8 @@ rustPlatform.buildRustPackage rec {
|
||||
substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake just pkg-config which lld util-linuxMinimal makeWrapper ];
|
||||
buildInputs = [ libxkbcommon libinput fontconfig freetype wayland expat udev glib gtk3 ];
|
||||
nativeBuildInputs = [ cmake just pkg-config makeWrapper ];
|
||||
buildInputs = [ libxkbcommon libinput fontconfig freetype wayland glib gtk3 ];
|
||||
|
||||
dontUseJustBuild = true;
|
||||
|
||||
@ -74,6 +69,7 @@ rustPlatform.buildRustPackage rec {
|
||||
homepage = "https://github.com/pop-os/cosmic-edit";
|
||||
description = "Text Editor for the COSMIC Desktop Environment";
|
||||
license = licenses.gpl3Only;
|
||||
mainProgram = "cosmic-edit";
|
||||
maintainers = with maintainers; [ ahoneybun ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
@ -212,7 +212,7 @@ rec {
|
||||
|
||||
# having no RC generated should autodisable init.vim wrapping
|
||||
nvim_autowrap = runTest nvim_via_override ''
|
||||
! grep "-u" ${nvimShouldntWrap}/bin/nvim
|
||||
! grep ${nvimShouldntWrap}/bin/nvim
|
||||
'';
|
||||
|
||||
|
||||
|
@ -7,8 +7,10 @@
|
||||
, neovimUtils
|
||||
, vimUtils
|
||||
, perl
|
||||
, lndir
|
||||
}:
|
||||
neovim:
|
||||
|
||||
neovim-unwrapped:
|
||||
|
||||
let
|
||||
wrapper = {
|
||||
@ -62,7 +64,7 @@ let
|
||||
# wrapper with most arguments we need, excluding those that cause problems to
|
||||
# generate rplugin.vim, but still required for the final wrapper.
|
||||
finalMakeWrapperArgs =
|
||||
[ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ]
|
||||
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim" ]
|
||||
++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ]
|
||||
++ lib.optionals wrapRc [ "--add-flags" "-u ${writeText "init.vim" neovimRcContent}" ]
|
||||
++ commonWrapperArgs
|
||||
@ -72,36 +74,45 @@ let
|
||||
in
|
||||
assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env.";
|
||||
|
||||
symlinkJoin {
|
||||
name = "neovim-${lib.getVersion neovim}${extraName}";
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
name = "neovim-${lib.getVersion neovim-unwrapped}${extraName}";
|
||||
|
||||
__structuredAttrs = true;
|
||||
dontUnpack = true;
|
||||
inherit viAlias vimAlias withNodeJs withPython3 withPerl;
|
||||
inherit wrapRc providerLuaRc packpathDirs;
|
||||
inherit python3Env rubyEnv;
|
||||
withRuby = rubyEnv != null;
|
||||
inherit wrapperArgs;
|
||||
|
||||
# Remove the symlinks created by symlinkJoin which we need to perform
|
||||
# extra actions upon
|
||||
postBuild = lib.optionalString stdenv.isLinux ''
|
||||
rm $out/share/applications/nvim.desktop
|
||||
substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
|
||||
substitute ${neovim-unwrapped}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
|
||||
--replace 'Name=Neovim' 'Name=Neovim wrapper'
|
||||
''
|
||||
+ lib.optionalString withPython3 ''
|
||||
+ lib.optionalString finalAttrs.withPython3 ''
|
||||
makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH
|
||||
''
|
||||
+ lib.optionalString (rubyEnv != null) ''
|
||||
ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
|
||||
+ lib.optionalString (finalAttrs.rubyEnv != null) ''
|
||||
ln -s ${finalAttrs.rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
|
||||
''
|
||||
+ lib.optionalString withNodeJs ''
|
||||
+ lib.optionalString finalAttrs.withNodeJs ''
|
||||
ln -s ${nodePackages.neovim}/bin/neovim-node-host $out/bin/nvim-node
|
||||
''
|
||||
+ lib.optionalString withPerl ''
|
||||
+ lib.optionalString finalAttrs.withPerl ''
|
||||
ln -s ${perlEnv}/bin/perl $out/bin/nvim-perl
|
||||
''
|
||||
+ lib.optionalString vimAlias ''
|
||||
+ lib.optionalString finalAttrs.vimAlias ''
|
||||
ln -s $out/bin/nvim $out/bin/vim
|
||||
''
|
||||
+ lib.optionalString viAlias ''
|
||||
+ lib.optionalString finalAttrs.viAlias ''
|
||||
ln -s $out/bin/nvim $out/bin/vi
|
||||
''
|
||||
+ lib.optionalString (manifestRc != null) (let
|
||||
manifestWrapperArgs =
|
||||
[ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ commonWrapperArgs;
|
||||
[ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ commonWrapperArgs;
|
||||
in ''
|
||||
echo "Generating remote plugin manifest"
|
||||
export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim
|
||||
@ -139,26 +150,33 @@ let
|
||||
makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${wrapperArgsStr}
|
||||
'';
|
||||
|
||||
paths = [ neovim ];
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
mkdir -p $out
|
||||
for i in ${neovim-unwrapped}; do
|
||||
lndir -silent $i $out
|
||||
done
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
nativeBuildInputs = [ makeWrapper lndir ];
|
||||
passthru = {
|
||||
inherit providerLuaRc packpathDirs;
|
||||
unwrapped = neovim;
|
||||
unwrapped = neovim-unwrapped;
|
||||
initRc = neovimRcContent;
|
||||
|
||||
tests = callPackage ./tests {
|
||||
};
|
||||
};
|
||||
|
||||
meta = neovim.meta // {
|
||||
meta = neovim-unwrapped.meta // {
|
||||
# To prevent builds on hydra
|
||||
hydraPlatforms = [];
|
||||
# prefer wrapper over the package
|
||||
priority = (neovim.meta.priority or 0) - 1;
|
||||
priority = (neovim-unwrapped.meta.priority or 0) - 1;
|
||||
};
|
||||
};
|
||||
});
|
||||
in
|
||||
lib.makeOverridable wrapper
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, fetchFromGitHub, qmake, qtbase, qtxmlpatterns, qtsvg, qtscxml
|
||||
, qtquick1, libGLU }:
|
||||
, libGLU }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qxmledit";
|
||||
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
|
||||
buildInputs = [ qtbase qtxmlpatterns qtsvg qtscxml qtquick1 libGLU ];
|
||||
buildInputs = [ qtbase qtxmlpatterns qtsvg qtscxml libGLU ];
|
||||
|
||||
qmakeFlags = [ "CONFIG+=release" ];
|
||||
|
||||
|
@ -11,11 +11,12 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ ncurses ];
|
||||
preBuild = "substituteInPlace Makefile --replace '$(DESTDIR)/usr/local' $out";
|
||||
makeFlags = [ "CC:=$(CC)" "LINK:=$(CC)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An efficient hex editor";
|
||||
homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "9.0.1897";
|
||||
version = "9.0.2048";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ywxJ9evXWbqZ6o6EqDIQWK16J05McAdvPl0Y9cW5Zvc=";
|
||||
hash = "sha256-zR2iPiD4/gf5BnxYoe3cx2ebGWE1P2bY4Cg15gveFgg=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -292,12 +292,12 @@
|
||||
};
|
||||
cpp = buildGrammar {
|
||||
language = "cpp";
|
||||
version = "0.0.0+rev=a90f170";
|
||||
version = "0.0.0+rev=d153fe1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-cpp";
|
||||
rev = "a90f170f92d5d70e7c2d4183c146e61ba5f3a457";
|
||||
hash = "sha256-e9Mz84lssaPR80hlogyjXx+jA8gD8YVp4T06qC6gRVI=";
|
||||
rev = "d153fe1c3385ee0521730ff4e0be9358e903b322";
|
||||
hash = "sha256-zxAz82XpTtKondA84L1sO3VByo8vLI4j154pWbxlV74=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
|
||||
};
|
||||
@ -714,12 +714,12 @@
|
||||
};
|
||||
gleam = buildGrammar {
|
||||
language = "gleam";
|
||||
version = "0.0.0+rev=3f93ccc";
|
||||
version = "0.0.0+rev=b2afa4f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gleam-lang";
|
||||
repo = "tree-sitter-gleam";
|
||||
rev = "3f93cccaf278cc4c9cf9a373ea2f6389174d634c";
|
||||
hash = "sha256-TjyAaxEtGVjnBdcw1uyeQhotNhZlQKvN1SgbZwKvm3M=";
|
||||
rev = "b2afa4fd6bb41a7bf912b034c653c90af7ae5122";
|
||||
hash = "sha256-Z1wutK2NyI5EMwTezeZp/g8JFD0p7kqBGCuh9Amyjgo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
|
||||
};
|
||||
@ -901,12 +901,12 @@
|
||||
};
|
||||
hcl = buildGrammar {
|
||||
language = "hcl";
|
||||
version = "0.0.0+rev=b553906";
|
||||
version = "0.0.0+rev=fdf6463";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MichaHoffmann";
|
||||
repo = "tree-sitter-hcl";
|
||||
rev = "b5539065432c08e4118eb3ee7c94902fdda85708";
|
||||
hash = "sha256-okLwoDGgK6aM5+8oelfRnuKqIimTs8Hc0N8Ikrm2eY0=";
|
||||
rev = "fdf6463216f1a45d83ba911cdb9f57445a8d3b51";
|
||||
hash = "sha256-UEjC3PeTQCvbtfk4a0EaLh+DXraUQIaSUGU6vszYP3E=";
|
||||
};
|
||||
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
|
||||
};
|
||||
@ -934,12 +934,12 @@
|
||||
};
|
||||
hlsl = buildGrammar {
|
||||
language = "hlsl";
|
||||
version = "0.0.0+rev=f2902bd";
|
||||
version = "0.0.0+rev=ac65c93";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-hlsl";
|
||||
rev = "f2902bd614e3916bdf65e1bc9ad45ebd08417bba";
|
||||
hash = "sha256-tuie4Yzauejf+5Par2qnWfaQgOLhROL2le1+UTq5cSY=";
|
||||
rev = "ac65c934b3214e96e0f854be009a3bd51549bd14";
|
||||
hash = "sha256-rTBal4RBOFBKfb9cydvWH+JtCCMOlnnGMPb2X7LXRjE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
||||
};
|
||||
@ -1011,12 +1011,12 @@
|
||||
};
|
||||
ini = buildGrammar {
|
||||
language = "ini";
|
||||
version = "0.0.0+rev=7f11a02";
|
||||
version = "0.0.0+rev=bcb84a2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "justinmk";
|
||||
repo = "tree-sitter-ini";
|
||||
rev = "7f11a02fb8891482068e0fe419965d7bade81a68";
|
||||
hash = "sha256-IIpKzpA4q1jpYVZ75VZaxWHaqNt8TA427eMOui2s71M=";
|
||||
rev = "bcb84a2d4bcd6f55b911c42deade75c8f90cb0c5";
|
||||
hash = "sha256-dYPeVTNWO4apY5dsjsKViavU7YtLeGTp6BzEemXhsEU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/justinmk/tree-sitter-ini";
|
||||
};
|
||||
@ -1220,12 +1220,12 @@
|
||||
};
|
||||
leo = buildGrammar {
|
||||
language = "leo";
|
||||
version = "0.0.0+rev=91d7aa6";
|
||||
version = "0.0.0+rev=23a9534";
|
||||
src = fetchFromGitHub {
|
||||
owner = "r001";
|
||||
repo = "tree-sitter-leo";
|
||||
rev = "91d7aa606f524cf4f5df7f4aacb45b4056fac704";
|
||||
hash = "sha256-8nea6Qg0eT5ciif+tzD13TcFqP9/uJVxgVSW93OdiVY=";
|
||||
rev = "23a9534d09d523d0dcee7dbf89e7c819e6835f6f";
|
||||
hash = "sha256-21Vqvc3HjmKi1FRKyswMcf8rPjkyAbjTayDYMsTUsBg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/r001/tree-sitter-leo";
|
||||
};
|
||||
@ -1319,24 +1319,24 @@
|
||||
};
|
||||
markdown = buildGrammar {
|
||||
language = "markdown";
|
||||
version = "0.0.0+rev=7ce4c69";
|
||||
version = "0.0.0+rev=f9820b2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MDeiml";
|
||||
repo = "tree-sitter-markdown";
|
||||
rev = "7ce4c69fe92d1c10225e3d1b3676c87dd9427b45";
|
||||
hash = "sha256-UxpTkiRChAwNJBVS9y/lydI8R035EuRy3t39Y1mscq0=";
|
||||
rev = "f9820b2db958228f9be339b67d2de874d065866e";
|
||||
hash = "sha256-0T0P018Zb4tfU2D4PLhiW8tunOInlRtrHajPOVqOpwc=";
|
||||
};
|
||||
location = "tree-sitter-markdown";
|
||||
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
||||
};
|
||||
markdown_inline = buildGrammar {
|
||||
language = "markdown_inline";
|
||||
version = "0.0.0+rev=7ce4c69";
|
||||
version = "0.0.0+rev=f9820b2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MDeiml";
|
||||
repo = "tree-sitter-markdown";
|
||||
rev = "7ce4c69fe92d1c10225e3d1b3676c87dd9427b45";
|
||||
hash = "sha256-UxpTkiRChAwNJBVS9y/lydI8R035EuRy3t39Y1mscq0=";
|
||||
rev = "f9820b2db958228f9be339b67d2de874d065866e";
|
||||
hash = "sha256-0T0P018Zb4tfU2D4PLhiW8tunOInlRtrHajPOVqOpwc=";
|
||||
};
|
||||
location = "tree-sitter-markdown-inline";
|
||||
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
||||
@ -1498,12 +1498,12 @@
|
||||
};
|
||||
objdump = buildGrammar {
|
||||
language = "objdump";
|
||||
version = "0.0.0+rev=64e4741";
|
||||
version = "0.0.0+rev=28d3b2e";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ColinKennedy";
|
||||
repo = "tree-sitter-objdump";
|
||||
rev = "64e4741d58345c36ded639f5a3bcd7811be7f8f8";
|
||||
hash = "sha256-v5skJKQ/c0YeGVj3Vs+SNnFqTkp0mblZU4DyJ9hg7s4=";
|
||||
rev = "28d3b2e25a0b1881d1b47ed1924ca276c7003d45";
|
||||
hash = "sha256-OPqIhgItghXplQ78Vlwd0G6KtDWTVkaG17RPqx1b5JY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ColinKennedy/tree-sitter-objdump";
|
||||
};
|
||||
@ -1766,12 +1766,12 @@
|
||||
};
|
||||
purescript = buildGrammar {
|
||||
language = "purescript";
|
||||
version = "0.0.0+rev=5ef5592";
|
||||
version = "0.0.0+rev=f89bd14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "postsolar";
|
||||
repo = "tree-sitter-purescript";
|
||||
rev = "5ef5592674ea42de75fc2792972e4ea0b6e3da6c";
|
||||
hash = "sha256-V9cuENH/tpXt9mfZqJ2v4dxJvbwEHU8Ri+UxQafWemY=";
|
||||
rev = "f89bd149e44624342bf49f76245d3284f2beed9a";
|
||||
hash = "sha256-c4Zux+6kg9b9/0t9LOtfSdMMQbp1xwiQH8dz4BBB/pY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/postsolar/tree-sitter-purescript";
|
||||
};
|
||||
@ -2121,12 +2121,12 @@
|
||||
};
|
||||
sql = buildGrammar {
|
||||
language = "sql";
|
||||
version = "0.0.0+rev=5f928f4";
|
||||
version = "0.0.0+rev=9fe5aea";
|
||||
src = fetchFromGitHub {
|
||||
owner = "derekstride";
|
||||
repo = "tree-sitter-sql";
|
||||
rev = "5f928f404d2aa024abce8657778fc10c03f1511f";
|
||||
hash = "sha256-7W6vuaZjDZgoaxJexPPBjJZlutlTT+hTFL1dq9k2NSo=";
|
||||
rev = "9fe5aeaa8d58d00cc31c20a3ae923ae695ce2ce7";
|
||||
hash = "sha256-HnSZGrxrHlARPhgTJRO6P0FcmjOdB3c5eMpH9+5ZaX8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
||||
};
|
||||
@ -2277,12 +2277,12 @@
|
||||
};
|
||||
terraform = buildGrammar {
|
||||
language = "terraform";
|
||||
version = "0.0.0+rev=b553906";
|
||||
version = "0.0.0+rev=fdf6463";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MichaHoffmann";
|
||||
repo = "tree-sitter-hcl";
|
||||
rev = "b5539065432c08e4118eb3ee7c94902fdda85708";
|
||||
hash = "sha256-okLwoDGgK6aM5+8oelfRnuKqIimTs8Hc0N8Ikrm2eY0=";
|
||||
rev = "fdf6463216f1a45d83ba911cdb9f57445a8d3b51";
|
||||
hash = "sha256-UEjC3PeTQCvbtfk4a0EaLh+DXraUQIaSUGU6vszYP3E=";
|
||||
};
|
||||
location = "dialects/terraform";
|
||||
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
|
||||
@ -2322,12 +2322,12 @@
|
||||
};
|
||||
tlaplus = buildGrammar {
|
||||
language = "tlaplus";
|
||||
version = "0.0.0+rev=204e858";
|
||||
version = "0.0.0+rev=d99cb5c";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tlaplus-community";
|
||||
repo = "tree-sitter-tlaplus";
|
||||
rev = "204e858899f7dd5713dea7b0148d6aa477d4a18f";
|
||||
hash = "sha256-AzCXFr6YAmbmEiBEN6MI+MeBDoEDrJB2vcZl/OEUqmg=";
|
||||
rev = "d99cb5c77bb0e733176d607a0875ac30e17e1e72";
|
||||
hash = "sha256-ShZlFHokmy3hhfTeh+/anz7a2bGDwWAdWIdi3X/lchQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
|
||||
};
|
||||
@ -2580,12 +2580,12 @@
|
||||
};
|
||||
wing = buildGrammar {
|
||||
language = "wing";
|
||||
version = "0.0.0+rev=238200d";
|
||||
version = "0.0.0+rev=eacf704";
|
||||
src = fetchFromGitHub {
|
||||
owner = "winglang";
|
||||
repo = "wing";
|
||||
rev = "238200d172538d5ff1228a929ea543465acfc410";
|
||||
hash = "sha256-a/8lbO8/+XhD3i6hjAxCA1rpovlkVHnDxz8xkc3bPoY=";
|
||||
rev = "eacf704338661b981fcf4fdb5ee44d898f038144";
|
||||
hash = "sha256-JwA49Up2G2/jobjqniQeJ1Rfko3PFfgINRvi/QswlCk=";
|
||||
};
|
||||
location = "libs/tree-sitter-wing";
|
||||
generate = true;
|
||||
|
@ -999,7 +999,7 @@ self: super: {
|
||||
pname = "sg-nvim-rust";
|
||||
inherit (old) version src;
|
||||
|
||||
cargoHash = "sha256-Rqs9INcc53SYGXHRyeTbLkGGU035i2i6n6A4ekFKve0=";
|
||||
cargoHash = "sha256-ITrjY15Haz8hEztWym4q8YW2h0R8/kOYPaIYJu87sN4=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
diff --git a/coq/__main__.py b/coq/__main__.py
|
||||
index 5a6c6fd2..e0d9eec8 100644
|
||||
index dd40afc1..36bcca21 100644
|
||||
--- a/coq/__main__.py
|
||||
+++ b/coq/__main__.py
|
||||
@@ -78,7 +78,7 @@ _EXEC_PATH = Path(executable)
|
||||
_EXEC_PATH = _EXEC_PATH.parent.resolve(strict=True) / _EXEC_PATH.name
|
||||
_REQ = REQUIREMENTS.read_text()
|
||||
|
||||
|
||||
-_IN_VENV = _RT_PY == _EXEC_PATH
|
||||
+_IN_VENV = True
|
||||
|
||||
|
||||
|
||||
|
||||
if command == "deps":
|
||||
@@ -152,7 +152,7 @@ elif command == "run":
|
||||
try:
|
||||
@ -21,15 +21,15 @@ index 5a6c6fd2..e0d9eec8 100644
|
||||
else:
|
||||
import pynvim_pp
|
||||
diff --git a/coq/consts.py b/coq/consts.py
|
||||
index 5a027fe9..a3e0c5a4 100644
|
||||
index 804e92ab..5c090a93 100644
|
||||
--- a/coq/consts.py
|
||||
+++ b/coq/consts.py
|
||||
@@ -9,7 +9,7 @@ TOP_LEVEL = Path(__file__).resolve(strict=True).parent.parent
|
||||
@@ -10,7 +10,7 @@ TOP_LEVEL = Path(__file__).resolve(strict=True).parent.parent
|
||||
REQUIREMENTS = TOP_LEVEL / "requirements.txt"
|
||||
|
||||
|
||||
|
||||
|
||||
-VARS = TOP_LEVEL / ".vars"
|
||||
+VARS = Path.home() / ".cache/coq_nvim/vars"
|
||||
|
||||
|
||||
RT_DIR = VARS / "runtime"
|
||||
RT_PY = RT_DIR / "Scripts" / "python.exe" if IS_WIN else RT_DIR / "bin" / "python3"
|
||||
|
@ -149,6 +149,15 @@ version = "0.21.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
|
||||
|
||||
[[package]]
|
||||
name = "bincode"
|
||||
version = "1.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.3.2"
|
||||
@ -200,6 +209,15 @@ version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
|
||||
|
||||
[[package]]
|
||||
name = "camino"
|
||||
version = "1.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cargo-lock"
|
||||
version = "9.0.0"
|
||||
@ -212,6 +230,29 @@ dependencies = [
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cargo-platform"
|
||||
version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cargo_metadata"
|
||||
version = "0.18.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fb9ac64500cc83ce4b9f8dafa78186aa008c8dea77a09b94cd307fd0cd5022a8"
|
||||
dependencies = [
|
||||
"camino",
|
||||
"cargo-platform",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.83"
|
||||
@ -360,6 +401,12 @@ version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
||||
|
||||
[[package]]
|
||||
name = "colorsys"
|
||||
version = "0.6.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "54261aba646433cb567ec89844be4c4825ca92a4f8afba52fc4dd88436e31bbd"
|
||||
|
||||
[[package]]
|
||||
name = "combine"
|
||||
version = "4.6.6"
|
||||
@ -398,6 +445,15 @@ version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
|
||||
|
||||
[[package]]
|
||||
name = "crc32fast"
|
||||
version = "1.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-channel"
|
||||
version = "0.5.8"
|
||||
@ -441,6 +497,41 @@ dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "darling"
|
||||
version = "0.20.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
|
||||
dependencies = [
|
||||
"darling_core",
|
||||
"darling_macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "darling_core"
|
||||
version = "0.20.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
|
||||
dependencies = [
|
||||
"fnv",
|
||||
"ident_case",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"strsim",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "darling_macro"
|
||||
version = "0.20.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
|
||||
dependencies = [
|
||||
"darling_core",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "deranged"
|
||||
version = "0.3.8"
|
||||
@ -571,6 +662,16 @@ dependencies = [
|
||||
"utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "flate2"
|
||||
version = "1.0.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"miniz_oxide",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fnv"
|
||||
version = "1.0.7"
|
||||
@ -809,6 +910,20 @@ version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
|
||||
|
||||
[[package]]
|
||||
name = "highlighter"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"colorsys",
|
||||
"once_cell",
|
||||
"rgb2ansi256",
|
||||
"serde",
|
||||
"syntect",
|
||||
"tracing",
|
||||
"utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "home"
|
||||
version = "0.5.5"
|
||||
@ -922,6 +1037,12 @@ dependencies = [
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ident_case"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "0.4.0"
|
||||
@ -1095,6 +1216,37 @@ dependencies = [
|
||||
"vcpkg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "line-wrap"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
|
||||
dependencies = [
|
||||
"safemem",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "linked-hash-map"
|
||||
version = "0.5.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
|
||||
|
||||
[[package]]
|
||||
name = "linter"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"cargo_metadata",
|
||||
"once_cell",
|
||||
"parking_lot",
|
||||
"paths",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.4.5"
|
||||
@ -1128,7 +1280,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "maple"
|
||||
version = "0.1.46"
|
||||
version = "0.1.47"
|
||||
dependencies = [
|
||||
"built",
|
||||
"chrono",
|
||||
@ -1156,9 +1308,12 @@ dependencies = [
|
||||
"futures",
|
||||
"grep-matcher",
|
||||
"grep-searcher",
|
||||
"highlighter",
|
||||
"icon",
|
||||
"ignore",
|
||||
"itertools",
|
||||
"linter",
|
||||
"maple_derive",
|
||||
"matcher",
|
||||
"once_cell",
|
||||
"parking_lot",
|
||||
@ -1180,6 +1335,18 @@ dependencies = [
|
||||
"webbrowser",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "maple_derive"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "matcher"
|
||||
version = "0.1.0"
|
||||
@ -1195,9 +1362,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.5.0"
|
||||
version = "2.6.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
||||
checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
|
||||
|
||||
[[package]]
|
||||
name = "memmap2"
|
||||
@ -1308,6 +1475,28 @@ version = "1.18.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
||||
|
||||
[[package]]
|
||||
name = "onig"
|
||||
version = "6.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"onig_sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "onig_sys"
|
||||
version = "69.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "overload"
|
||||
version = "0.1.1"
|
||||
@ -1384,6 +1573,20 @@ version = "0.3.27"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
|
||||
|
||||
[[package]]
|
||||
name = "plist"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bdc0001cfea3db57a2e24bc0d818e9e20e554b5f97fabb9bc231dc240269ae06"
|
||||
dependencies = [
|
||||
"base64 0.21.2",
|
||||
"indexmap 1.9.3",
|
||||
"line-wrap",
|
||||
"quick-xml",
|
||||
"serde",
|
||||
"time 0.3.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "printer"
|
||||
version = "0.1.0"
|
||||
@ -1406,6 +1609,15 @@ dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quick-xml"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "81b9228215d82c7b61490fec1de287136b5de6f5700f6e58ea9ad61a7964ca51"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.33"
|
||||
@ -1474,25 +1686,25 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.9.3"
|
||||
version = "1.9.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
|
||||
checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
|
||||
dependencies = [
|
||||
"aho-corasick 1.0.4",
|
||||
"memchr",
|
||||
"regex-automata",
|
||||
"regex-syntax 0.7.4",
|
||||
"regex-syntax 0.7.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-automata"
|
||||
version = "0.3.6"
|
||||
version = "0.3.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
|
||||
checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
|
||||
dependencies = [
|
||||
"aho-corasick 1.0.4",
|
||||
"memchr",
|
||||
"regex-syntax 0.7.4",
|
||||
"regex-syntax 0.7.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -1503,9 +1715,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.7.4"
|
||||
version = "0.7.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
|
||||
checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
|
||||
|
||||
[[package]]
|
||||
name = "reqwest"
|
||||
@ -1546,6 +1758,12 @@ dependencies = [
|
||||
"winreg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rgb2ansi256"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ebca96b1c05912d531790498048bab5b7b97a756a7bb9df71fa4ef7ef9814e1"
|
||||
|
||||
[[package]]
|
||||
name = "ring"
|
||||
version = "0.16.20"
|
||||
@ -1627,6 +1845,12 @@ version = "1.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
|
||||
|
||||
[[package]]
|
||||
name = "safemem"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
|
||||
|
||||
[[package]]
|
||||
name = "same-file"
|
||||
version = "1.0.6"
|
||||
@ -1804,6 +2028,27 @@ dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syntect"
|
||||
version = "5.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
"bitflags 1.3.2",
|
||||
"flate2",
|
||||
"fnv",
|
||||
"once_cell",
|
||||
"onig",
|
||||
"plist",
|
||||
"regex-syntax 0.7.5",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"walkdir",
|
||||
"yaml-rust",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.47"
|
||||
@ -2486,3 +2731,12 @@ dependencies = [
|
||||
"cfg-if",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "yaml-rust"
|
||||
version = "0.4.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
|
||||
dependencies = [
|
||||
"linked-hash-map",
|
||||
]
|
||||
|
@ -11,13 +11,13 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.46";
|
||||
version = "0.47";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "liuchengxu";
|
||||
repo = "vim-clap";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KWBuoZ2GxjwIu7L1PPq/7u3iuYFp5QrlsleL2RQTdUE=";
|
||||
hash = "sha256-CYv5AZsGvN2dtN7t58b50a8PH7804Lnm4d4wAX6Mm5Q=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -343,8 +343,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscode-neovim";
|
||||
publisher = "asvetliakov";
|
||||
version = "0.8.2";
|
||||
sha256 = "0kw9asv91s37ql61blbb8pr7wb6c2ba1klchal53chp6ib55v5kn";
|
||||
version = "1.0.1";
|
||||
sha256 = "1yf065syb5hskds47glnv18nk0fg7d84w1j72hg1pqb082gn1sdv";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/asvetliakov.vscode-neovim/changelog";
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, SDL
|
||||
, SDL_net
|
||||
@ -23,6 +24,14 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-wNE91+0u02O2jeYVR1eB6JHNWC6BYrXDZpE3UCIiJgo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/joncampbell123/dosbox-x/commit/006d5727d36d1ec598e387f2f1a3c521e3673dcb.patch";
|
||||
includes = [ "src/gui/render_templates_sai.h" ];
|
||||
hash = "sha256-HSO29/LgZRKQ3HQBA0QF5henG8pCSoe1R2joYNPcUcE=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
copyDesktopItems
|
||||
|
21
pkgs/applications/gis/grass/clang-integer-conversion.patch
Normal file
21
pkgs/applications/gis/grass/clang-integer-conversion.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -ur a/db/drivers/mysql/db.c b/db/drivers/mysql/db.c
|
||||
--- a/db/drivers/mysql/db.c 1969-12-31 19:00:01.000000000 -0500
|
||||
+++ b/db/drivers/mysql/db.c 2023-11-09 23:26:25.329700495 -0500
|
||||
@@ -52,9 +52,16 @@
|
||||
|
||||
db_get_login2("mysql", name, &user, &password, &host, &port);
|
||||
|
||||
+ const char* errstr;
|
||||
+ unsigned int port_number = (unsigned int)strtonum(port, 0, 65536, &errstr);
|
||||
+ if (errstr != NULL) {
|
||||
+ db_d_append_error("%s", errstr);
|
||||
+ return DB_FAILED;
|
||||
+ }
|
||||
+
|
||||
connection = mysql_init(NULL);
|
||||
res = mysql_real_connect(connection, host, user, password,
|
||||
- connpar.dbname, port, NULL, 0);
|
||||
+ connpar.dbname, port_number, NULL, 0);
|
||||
|
||||
if (res == NULL) {
|
||||
db_d_append_error("%s\n%s", _("Connection failed."),
|
@ -81,12 +81,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
# On Darwin the installer tries to symlink the help files into a system
|
||||
# directory
|
||||
patches = [ ./no_symbolic_links.patch ];
|
||||
patches = lib.optionals stdenv.isDarwin [
|
||||
# Fix conversion of const char* to unsigned int.
|
||||
./clang-integer-conversion.patch
|
||||
];
|
||||
|
||||
# Correct mysql_config query
|
||||
patchPhase = ''
|
||||
postPatch = ''
|
||||
substituteInPlace configure --replace "--libmysqld-libs" "--libs"
|
||||
'';
|
||||
|
||||
|
@ -1,37 +0,0 @@
|
||||
diff --git a/include/Make/Install.make b/include/Make/Install.make
|
||||
index 0aba138..8ba74bc 100644
|
||||
--- a/include/Make/Install.make
|
||||
+++ b/include/Make/Install.make
|
||||
@@ -116,11 +116,6 @@ real-install: | $(INST_DIR) $(UNIX_BIN)
|
||||
-$(INSTALL) config.status $(INST_DIR)/config.status
|
||||
-$(CHMOD) -R a+rX $(INST_DIR) 2>/dev/null
|
||||
|
||||
-ifneq ($(findstring darwin,$(ARCH)),)
|
||||
- @# enable OSX Help Viewer
|
||||
- @/bin/ln -sfh "$(INST_DIR)/docs/html" /Library/Documentation/Help/GRASS-$(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR)
|
||||
-endif
|
||||
-
|
||||
$(INST_DIR) $(UNIX_BIN):
|
||||
$(MAKE_DIR_CMD) $@
|
||||
|
||||
diff --git a/macosx/app/build_html_user_index.sh b/macosx/app/build_html_user_index.sh
|
||||
index 04e63eb..c9d9c2c 100755
|
||||
--- a/macosx/app/build_html_user_index.sh
|
||||
+++ b/macosx/app/build_html_user_index.sh
|
||||
@@ -140,7 +140,6 @@ else
|
||||
# echo "<tr><td valign=\"top\"><a href=\"$HTMLDIRG/$i\">$BASENAME</a></td> <td>$SHORTDESC</td></tr>" >> $FULLINDEX
|
||||
# make them local to user to simplify page links
|
||||
echo "<tr><td valign=\"top\"><a href=\"global_$i\">$BASENAME</a></td> <td>$SHORTDESC</td></tr>" >> $FULLINDEX
|
||||
- ln -sf "$HTMLDIRG/$i" global_$i
|
||||
done
|
||||
done
|
||||
fi
|
||||
@@ -183,8 +182,3 @@ echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
|
||||
</html>" > $i.html
|
||||
done
|
||||
|
||||
-# add Help Viewer links in user docs folder
|
||||
-
|
||||
-mkdir -p $HOME/Library/Documentation/Help/
|
||||
-ln -sfh ../../GRASS/$GRASS_MMVER/Modules/docs/html $HOME/Library/Documentation/Help/GRASS-$GRASS_MMVER-addon
|
||||
-ln -sfh $GISBASE/docs/html $HOME/Library/Documentation/Help/GRASS-$GRASS_MMVER
|
@ -26,8 +26,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# https://github.com/autotrace/autotrace/pull/105
|
||||
name = "imagemagick7-support.patch";
|
||||
url = "https://github.com/autotrace/autotrace/pull/105.patch";
|
||||
url = "https://github.com/autotrace/autotrace/compare/170488e1871d50aad7a800b901e33ded7d31773a...c26a2a059926c595a00839c8d9961e9381206579.patch";
|
||||
hash = "sha256-Q82LRF/BsJ/Ii2s+7yaYHs9agMKYVYIMnbwqz8P92s0=";
|
||||
})
|
||||
];
|
||||
|
@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, libGL
|
||||
, libjpeg
|
||||
, libexif
|
||||
, giflib
|
||||
@ -17,6 +18,7 @@
|
||||
, sane-backends
|
||||
, libXpm
|
||||
, libepoxy
|
||||
, pixman
|
||||
, poppler
|
||||
, mesa
|
||||
, lirc
|
||||
@ -42,6 +44,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ pkg-config which ];
|
||||
buildInputs = [
|
||||
libGL
|
||||
libexif
|
||||
libjpeg
|
||||
libpng
|
||||
@ -56,6 +59,7 @@ stdenv.mkDerivation rec {
|
||||
libdrm
|
||||
libXpm
|
||||
libepoxy
|
||||
pixman
|
||||
poppler
|
||||
lirc
|
||||
mesa
|
||||
|
@ -51,13 +51,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "freecad";
|
||||
version = "0.21.1";
|
||||
version = "0.21.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FreeCAD";
|
||||
repo = "FreeCAD";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-rwt81Z+Bp8uZlR4iuGQEDKBu/Dr9Rqg7d9SsCdofTUU=";
|
||||
hash = "sha256-OX4s9rbGsAhH7tLJkUJYyq2A2vCdkq/73iqYo9adogs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "hydrus";
|
||||
version = "549";
|
||||
version = "551";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hydrusnetwork";
|
||||
repo = "hydrus";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-y3WFQhPE8H0198Xu3Dn9YAqaX8YvFJcdt90tebTg7qw=";
|
||||
hash = "sha256-P/U44ndfucbRnwGLdSnnA0VE4K40zPz3wtNpQj8rh5Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
1053
pkgs/applications/graphics/rnote/Cargo.lock
generated
1053
pkgs/applications/graphics/rnote/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,7 @@
|
||||
, cargo
|
||||
, cmake
|
||||
, desktop-file-utils
|
||||
, dos2unix
|
||||
, glib
|
||||
, gstreamer
|
||||
, gtk4
|
||||
@ -25,21 +26,21 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rnote";
|
||||
version = "0.7.1";
|
||||
version = "0.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flxzt";
|
||||
repo = "rnote";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-QcgmL6lLi/3QXnlcEsVyTqNUfjSm+R+nhRzRvw8M9Qc=";
|
||||
hash = "sha256-cIy2+Q6HSLwbT0XXDK88Z0mdu46vWSZNTVl8MphXhw0=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"ink-stroke-modeler-rs-0.1.0" = "sha256-1abfrPehOGc/ye/iFIwYPd6HJX6P8OP2vGBSJfeo+c8=";
|
||||
"librsvg-2.56.2" = "sha256-uCHKDC4nc7J0k9qsmzF6etkWOoNq51Dddd9uQw5DOT0=";
|
||||
"piet-0.6.2" = "sha256-If0qiZkgXeLvsrECItV9/HmhTk1H52xmVO7cUsD9dcU=";
|
||||
"ink-stroke-modeler-rs-0.1.0" = "sha256-WfZwezohm8+ZXiKZlssTX+b/Izk1M4jFwxQejeTfc6M=";
|
||||
"librsvg-2.57.0-beta.2" = "sha256-8k5KWhm9PIpdmf2DByTyrqX5mGAa+a7ZDGmVO2ERhTU=";
|
||||
"piet-0.6.2" = "sha256-WrQok0T7uVQEp8SvNWlgqwQHfS7q0510bnP1ecr+s1Q=";
|
||||
};
|
||||
};
|
||||
|
||||
@ -47,6 +48,7 @@ stdenv.mkDerivation rec {
|
||||
appstream-glib # For appstream-util
|
||||
cmake
|
||||
desktop-file-utils # For update-desktop-database
|
||||
dos2unix
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
@ -79,10 +81,9 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
pushd build-aux
|
||||
chmod +x cargo_build.py meson_post_install.py
|
||||
patchShebangs cargo_build.py meson_post_install.py
|
||||
popd
|
||||
dos2unix build-aux/*.py # FIXME remove once updated to 0.9.0
|
||||
chmod +x build-aux/*.py
|
||||
patchShebangs build-aux
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -2,7 +2,7 @@
|
||||
, extra-cmake-modules, kdoctools
|
||||
, qtscript, qtsvg, qtquickcontrols, qtwebengine
|
||||
, krunner, shared-mime-info, kparts, knewstuff
|
||||
, gpsd, perl, protobuf3_21
|
||||
, gpsd, perl, protobuf_21
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
@ -15,7 +15,7 @@ mkDerivation {
|
||||
outputs = [ "out" "dev" ];
|
||||
nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
|
||||
propagatedBuildInputs = [
|
||||
protobuf3_21 qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
|
||||
protobuf_21 qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
|
||||
knewstuff gpsd
|
||||
];
|
||||
preConfigure = ''
|
||||
|
@ -1,4 +1,4 @@
|
||||
if [ -e .attrs.sh ]; then source .attrs.sh; fi
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
|
||||
source $stdenv/setup
|
||||
|
||||
echo "unpacking $src..."
|
||||
|
@ -20,13 +20,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cherrytree";
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "giuspen";
|
||||
repo = "cherrytree";
|
||||
rev = version;
|
||||
hash = "sha256-A/4OcsAOECgQnENj2l9BX713KHG+zk5cJE+yyHXw1TM=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-ZGw6gESKaio89mt3VPm/uqHwlUQ0/8vIydv/WsOYQ20=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -5,7 +5,6 @@
|
||||
, openssl
|
||||
, gtk3
|
||||
, stdenv
|
||||
, rust
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
@ -28,7 +27,7 @@ rustPlatform.buildRustPackage rec {
|
||||
# default installPhase don't install assets
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
make install PREFIX="$out" TARGET="target/${rust.toRustTarget stdenv.hostPlatform}/release/effitask"
|
||||
make install PREFIX="$out" TARGET="target/${stdenv.hostPlatform.rust.rustcTarget}/release/effitask"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
] ++ (with python3.pkgs; [
|
||||
setuptools-scm
|
||||
sphinx
|
||||
sphinxcontrib_newsfeed
|
||||
sphinxcontrib-newsfeed
|
||||
]);
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs;[
|
||||
@ -62,7 +62,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
--fish <(_KHAL_COMPLETE=fish_source $out/bin/khal)
|
||||
|
||||
# man page
|
||||
PATH="${python3.withPackages (ps: with ps; [ sphinx sphinxcontrib_newsfeed ])}/bin:$PATH" \
|
||||
PATH="${python3.withPackages (ps: with ps; [ sphinx sphinxcontrib-newsfeed ])}/bin:$PATH" \
|
||||
make -C doc man
|
||||
installManPage doc/build/man/khal.1
|
||||
|
||||
|
@ -16,11 +16,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "system-makedeps.patch";
|
||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/system-makedeps.patch?h=llpp&id=0d2913056aaf3dbf7431e57b7b08b55568ba076c";
|
||||
hash = "sha256-t9PLXsM8+exCeYqJBe0LSDK0D2rpktmozS8qNcEAcHo=";
|
||||
name = "system-makedeps-and-ocaml5.patch";
|
||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/system-makedeps-and-ocaml5.patch?h=llpp&id=32955e115f914bb96348d288f9af9c6e3e80a02b";
|
||||
hash = "sha256-3rcPsR+M8Jx7M8GHUIsw0WNBvp6aE7BcPr4yk2vT9Ik=";
|
||||
})
|
||||
./fix-mupdf.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -1,13 +0,0 @@
|
||||
--- a/link.c
|
||||
+++ b/link.c
|
||||
@@ -1522,8 +1522,9 @@ static void *mainloop (void UNUSED_ATTR *unused)
|
||||
if (pdf && nameddest && *nameddest) {
|
||||
fz_point xy;
|
||||
struct pagedim *pdim;
|
||||
- int pageno = pdf_lookup_anchor (state.ctx, pdf, nameddest,
|
||||
+ fz_location location = fz_resolve_link (state.ctx, state.doc, nameddest,
|
||||
&xy.x, &xy.y);
|
||||
+ int pageno = location.page;
|
||||
pdim = pdimofpageno (pageno);
|
||||
xy = fz_transform_point (xy, pdim->ctm);
|
||||
printd ("a %d %d %d", pageno, (int) xy.x, (int) xy.y);
|
@ -23,6 +23,7 @@
|
||||
, glib
|
||||
, graphene
|
||||
, gtk4
|
||||
, libGL
|
||||
, libadwaita
|
||||
, libdrm
|
||||
, mesa
|
||||
@ -92,6 +93,7 @@ stdenv.mkDerivation rec {
|
||||
glib
|
||||
graphene
|
||||
gtk4
|
||||
libGL
|
||||
libadwaita
|
||||
libdrm
|
||||
mesa
|
||||
|
13
pkgs/applications/misc/mupdf/0003-Fix-cpp-build.patch
Normal file
13
pkgs/applications/misc/mupdf/0003-Fix-cpp-build.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/scripts/wrap/cpp.py b/scripts/wrap/cpp.py
|
||||
index 51ac5f1..b5c0b5a 100644
|
||||
--- a/scripts/wrap/cpp.py
|
||||
+++ b/scripts/wrap/cpp.py
|
||||
@@ -4595,7 +4595,7 @@ def cpp_source(
|
||||
*/
|
||||
typedef unsigned long size_t;
|
||||
'''))
|
||||
- if state.state_.macos:
|
||||
+ if state.state_.linux or state.state_.macos:
|
||||
f.write( textwrap.dedent('''
|
||||
/*
|
||||
Workaround on MacOS: we need to define fixed-size int types
|
@ -1,7 +1,6 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, fetchFromGitHub
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
@ -26,19 +25,26 @@
|
||||
, enableGL ? true
|
||||
, freeglut
|
||||
, libGLU
|
||||
, enableOcr ? false
|
||||
, leptonica
|
||||
, tesseract
|
||||
, enableCxx ? false
|
||||
, python3
|
||||
, enablePython ? false
|
||||
, which
|
||||
, swig
|
||||
, xcbuild
|
||||
, gitUpdater
|
||||
|
||||
# for passthru.tests
|
||||
, cups-filters
|
||||
, python3
|
||||
, zathura
|
||||
, mupdf
|
||||
}:
|
||||
let
|
||||
|
||||
# OpenJPEG version is hardcoded in package source
|
||||
openJpegVersion = with stdenv;
|
||||
lib.versions.majorMinor (lib.getVersion openjpeg);
|
||||
assert enablePython -> enableCxx;
|
||||
|
||||
let
|
||||
|
||||
freeglut-mupdf = freeglut.overrideAttrs (old: rec {
|
||||
pname = "freeglut-mupdf";
|
||||
@ -53,35 +59,46 @@ let
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.23.0";
|
||||
version = "1.23.5";
|
||||
pname = "mupdf";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
|
||||
sha256 = "sha256-3kFAaS5pMULDEeAwrBVuOO4XXXq2wb4QxcmuljhGFk4=";
|
||||
sha256 = "sha256-blZ5zfqu+cfoniljlSIM4sEz7T3K1RpHhmczbG6uxwY=";
|
||||
};
|
||||
|
||||
patches = [ ./0001-Use-command-v-in-favor-of-which.patch
|
||||
./0002-Add-Darwin-deps.patch
|
||||
./0003-Fix-cpp-build.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
|
||||
substituteInPlace Makerules --replace "(shell pkg-config" "(shell $PKG_CONFIG"
|
||||
'';
|
||||
|
||||
# Use shared libraries to decrease size
|
||||
buildFlags = [ "shared" ];
|
||||
patchShebangs scripts/mupdfwrap.py
|
||||
|
||||
# slip in makeFlags when building bindings
|
||||
sed -i -e 's/^\( *make_args *=\)/\1 """ $(echo ''${makeFlagsArray[@]@Q})"""/' scripts/wrap/__main__.py
|
||||
|
||||
# fix libclang unnamed struct format
|
||||
for wrapper in ./scripts/wrap/{cpp,state}.py; do
|
||||
substituteInPlace "$wrapper" --replace 'struct (unnamed' '(unnamed struct'
|
||||
done
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"prefix=$(out)"
|
||||
"shared=yes"
|
||||
"USE_SYSTEM_LIBS=yes"
|
||||
"PKG_CONFIG=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
|
||||
] ++ lib.optionals (!enableX11) [ "HAVE_X11=no" ]
|
||||
++ lib.optionals (!enableGL) [ "HAVE_GLUT=no" ];
|
||||
++ lib.optionals (!enableGL) [ "HAVE_GLUT=no" ]
|
||||
++ lib.optionals (enableOcr) [ "USE_TESSERACT=yes" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ]
|
||||
++ lib.optional (enableGL || enableX11) copyDesktopItems
|
||||
++ lib.optionals (enableCxx || enablePython) [ python3 python3.pkgs.setuptools python3.pkgs.libclang ]
|
||||
++ lib.optionals (enablePython) [ which swig ]
|
||||
++ lib.optional stdenv.isDarwin desktopToDarwinBundle;
|
||||
|
||||
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg gumbo ]
|
||||
@ -89,11 +106,12 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
|
||||
++ lib.optionals enableCurl [ curl openssl ]
|
||||
++ lib.optionals enableGL (
|
||||
if stdenv.isDarwin then
|
||||
with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
|
||||
else
|
||||
[ freeglut-mupdf libGLU ]
|
||||
)
|
||||
if stdenv.isDarwin then
|
||||
with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
|
||||
else
|
||||
[ freeglut-mupdf libGLU ]
|
||||
)
|
||||
++ lib.optionals enableOcr [ leptonica tesseract ]
|
||||
;
|
||||
outputs = [ "bin" "dev" "out" "man" "doc" ];
|
||||
|
||||
@ -102,6 +120,12 @@ stdenv.mkDerivation rec {
|
||||
rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,libjpeg,openjpeg,zlib}
|
||||
'';
|
||||
|
||||
postBuild = lib.optionalString (enableCxx || enablePython) ''
|
||||
for dir in build/*; do
|
||||
./scripts/mupdfwrap.py -d "$dir" -b ${lib.optionalString (enableCxx) "01"}${lib.optionalString (enablePython) "23"}
|
||||
done
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = pname;
|
||||
@ -136,7 +160,7 @@ stdenv.mkDerivation rec {
|
||||
Name: mupdf
|
||||
Description: Library for rendering PDF documents
|
||||
Version: ${version}
|
||||
Libs: -L$out/lib -lmupdf -lmupdf-third
|
||||
Libs: -L$out/lib -lmupdf
|
||||
Cflags: -I$dev/include
|
||||
EOF
|
||||
|
||||
@ -148,7 +172,16 @@ stdenv.mkDerivation rec {
|
||||
ln -s "$bin/bin/mupdf-gl" "$bin/bin/mupdf"
|
||||
'' else lib.optionalString (enableX11) ''
|
||||
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
|
||||
'');
|
||||
'') + (lib.optionalString (enableCxx) ''
|
||||
cp platform/c++/include/mupdf/*.h $out/include/mupdf
|
||||
cp build/*/libmupdfcpp.so $out/lib
|
||||
'') + (lib.optionalString (enablePython) (''
|
||||
mkdir -p $out/${python3.sitePackages}/mupdf
|
||||
cp build/*/_mupdf.so $out/${python3.sitePackages}
|
||||
cp build/*/mupdf.py $out/${python3.sitePackages}/mupdf/__init__.py
|
||||
'' + lib.optionalString (stdenv.isDarwin) ''
|
||||
install_name_tool -add_rpath $out/lib $out/${python3.sitePackages}/_mupdf.so
|
||||
''));
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@ -156,6 +189,7 @@ stdenv.mkDerivation rec {
|
||||
tests = {
|
||||
inherit cups-filters zathura;
|
||||
inherit (python3.pkgs) pikepdf pymupdf;
|
||||
mupdf-all = mupdf.override { enableCurl = true; enableGL = true; enableOcr = true; enableCxx = true; enablePython = true; };
|
||||
};
|
||||
|
||||
updateScript = gitUpdater {
|
||||
@ -169,7 +203,7 @@ stdenv.mkDerivation rec {
|
||||
description = "Lightweight PDF, XPS, and E-book viewer and toolkit written in portable C";
|
||||
changelog = "https://git.ghostscript.com/?p=mupdf.git;a=blob_plain;f=CHANGES;hb=${version}";
|
||||
license = licenses.agpl3Plus;
|
||||
maintainers = with maintainers; [ vrthra fpletz ];
|
||||
maintainers = with maintainers; [ vrthra fpletz lilyinstarlight ];
|
||||
platforms = platforms.unix;
|
||||
mainProgram = "mupdf";
|
||||
};
|
||||
|
@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "safecloset";
|
||||
version = "1.3.1";
|
||||
version = "1.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Canop";
|
||||
repo = "safecloset";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ZvJbPbKS7HZ9R4Z9bMrXVjKtIdKE5dkp115dmHv7uJY=";
|
||||
hash = "sha256-buIceYP/dZMDw3tyrzj1bY6+sIIPaVJIVj1L//jZnws=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-vyn/rcptkJLjXg8qjAnzc2bDjz2r0LsGa8toyybgdbM=";
|
||||
cargoHash = "sha256-rxNp9dOvy/UTx6Q9pzZGccEKmIiWxzWVYyMxb+h5bqw=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.AppKit
|
||||
|
@ -58,7 +58,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace pdf_viewer_build_config.pro \
|
||||
--replace "-lmupdf-threads" "-lgumbo -lharfbuzz -lfreetype -ljbig2dec -ljpeg -lopenjp2"
|
||||
--replace "-lmupdf-threads" "-lgumbo -lharfbuzz -lfreetype -ljbig2dec -ljpeg -lopenjp2" \
|
||||
--replace "-lmupdf-third" ""
|
||||
substituteInPlace pdf_viewer/main.cpp \
|
||||
--replace "/usr/share/sioyek" "$out/share" \
|
||||
--replace "/etc/sioyek" "$out/etc"
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "spicetify-cli";
|
||||
version = "2.27.0";
|
||||
version = "2.27.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "spicetify";
|
||||
repo = "spicetify-cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-5WIITzm9yZWB847WHL+okwpULdwHegtZfvsVrAzwTO0=";
|
||||
hash = "sha256-Z+paJAuzUnCdCSx2UHg1HV14vDo3jWsyUrcbEnvqTm0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VktAO3yKCdm5yz/RRLeLv6zzyGrwuHC/i8WdJtqZoYc=";
|
||||
vendorHash = "sha256-H2kSTsYiD9HResHes+7YxUyNcjtM0SLpDPUC0Y518VM=";
|
||||
|
||||
ldflags = [
|
||||
"-s -w"
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "toot";
|
||||
version = "0.38.1";
|
||||
version = "0.38.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ihabunek";
|
||||
repo = "toot";
|
||||
rev = "refs/tags/${version}";
|
||||
sha256 = "sha256-gT9xKFanQhptt46nkdzYsZ6Vu0Nab0oRsvEHVRNf8DQ=";
|
||||
sha256 = "sha256-0L/5i+m0rh1VjsZ0N2cshi+Nw951ASjMf5y6JxV53ko=";
|
||||
};
|
||||
|
||||
nativeCheckInputs = with python3Packages; [ pytest ];
|
||||
@ -30,4 +30,3 @@ python3Packages.buildPythonApplication rec {
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ stdenv.mkDerivation {
|
||||
# Fix dbus interface headers. See
|
||||
# https://github.com/davidbrazdil/volnoti/pull/10
|
||||
(fetchpatch {
|
||||
url = "https://github.com/davidbrazdil/volnoti/pull/10.patch";
|
||||
url = "https://github.com/davidbrazdil/volnoti/commit/623ad8ea5c3ac8720d00a2ced4b6163aae38c119.patch";
|
||||
sha256 = "046zfdjmvhb7jrsgh04vfgi35sgy1zkrhd3bzdby3nvds1wslfam";
|
||||
})
|
||||
];
|
||||
|
@ -41,6 +41,10 @@ stdenv.mkDerivation rec {
|
||||
|
||||
PKG_CONFIG_ZATHURA_PLUGINDIR= "lib/zathura";
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e '/^mupdfthird =/d' -e 's/, mupdfthird//g' meson.build
|
||||
'';
|
||||
|
||||
passthru.updateScript = gitUpdater {
|
||||
url = "https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git";
|
||||
};
|
||||
|
@ -92,11 +92,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.59.124";
|
||||
version = "1.60.118";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "sha256-uY9i0TxTsSvOfMA98amxwWpQh1nsRVEgxeSZ2sv8NEU=";
|
||||
sha256 = "sha256-Lo9F7z8gJJRId7LBfVTj18C65swDr8C7Mt1gNmXoSoY=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
@ -20,7 +20,6 @@
|
||||
, runtimeShell
|
||||
, systemLocale ? config.i18n.defaultLocale or "en_US"
|
||||
, patchelfUnstable # have to use patchelfUnstable to support --no-clobber-old-sections
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
let
|
||||
@ -58,20 +57,6 @@ let
|
||||
source = lib.findFirst (sourceMatches mozLocale) defaultSource sources;
|
||||
|
||||
pname = "firefox-${channel}-bin-unwrapped";
|
||||
|
||||
# FIXME: workaround for not being able to pass flags to patchelf
|
||||
# Remove after https://github.com/NixOS/nixpkgs/pull/256525
|
||||
wrappedPatchelf = stdenv.mkDerivation {
|
||||
pname = "patchelf-wrapped";
|
||||
inherit (patchelfUnstable) version;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${patchelfUnstable}/bin/patchelf $out/bin/patchelf --append-flags "--no-clobber-old-sections"
|
||||
'';
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -79,7 +64,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl { inherit (source) url sha256; };
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook wrappedPatchelf ];
|
||||
nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook patchelfUnstable ];
|
||||
buildInputs = [
|
||||
gtk3
|
||||
adwaita-icon-theme
|
||||
@ -93,8 +78,10 @@ stdenv.mkDerivation {
|
||||
pciutils
|
||||
];
|
||||
appendRunpaths = [
|
||||
"${pipewire.lib}/lib"
|
||||
"${pipewire}/lib"
|
||||
];
|
||||
# Firefox uses "relrhack" to manually process relocations from a fixed offset
|
||||
patchelfFlags = [ "--no-clobber-old-sections" ];
|
||||
|
||||
installPhase =
|
||||
''
|
||||
|
@ -1,7 +1,6 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, cmake
|
||||
, pkg-config
|
||||
@ -18,23 +17,15 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lagrange";
|
||||
version = "1.17.2";
|
||||
version = "1.17.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "skyjake";
|
||||
repo = "lagrange";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-x80le9/mkL57NQGgmqAdbixYGxcoKKO3Rl+BlpOzTwc=";
|
||||
hash = "sha256-YPC+mwXKZOOhLtUU+WHdkQtHFYfIYOiadbuAHLvAXxM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Remove on next release
|
||||
(fetchpatch {
|
||||
url = "https://github.com/skyjake/lagrange/commit/e8295f0065e8ecddab2e291e420098ac7981e0a9.patch";
|
||||
hash = "sha256-s8Ryace6DOjw4C4h1Kb2ti5oygvsAAs/MF9pC3eQbAM=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config zip ];
|
||||
|
||||
buildInputs = [ the-foundation ]
|
||||
|
@ -21,6 +21,7 @@ in
|
||||
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
|
||||
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
|
||||
license = lib.licenses.mpl20;
|
||||
mainProgram = "librewolf";
|
||||
};
|
||||
tests = [ nixosTests.librewolf ];
|
||||
updateScript = callPackage ./update.nix {
|
||||
|
@ -1,4 +1,5 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, mkDerivationWith
|
||||
, fetchFromGitHub
|
||||
, python3Packages
|
||||
@ -6,6 +7,8 @@
|
||||
}:
|
||||
|
||||
mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||
inherit stdenv;
|
||||
|
||||
pname = "webmacs";
|
||||
version = "0.8";
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "talosctl";
|
||||
version = "1.5.4";
|
||||
version = "1.5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siderolabs";
|
||||
repo = "talos";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-l0cR5BDUREBOOac/b87re5lzq3maz8Tg3msalXV6zAs=";
|
||||
hash = "sha256-15sNXiJ/s3MlrXFXPxA7mQ+/36HRSZF6XKos6XEHi1Y=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-/l0crKz1Pks2yiQ+t/rY2ZxB+jYCymSfoILtHYtQ7K8=";
|
||||
vendorHash = "sha256-fGl16Wsb1tW9+wZBg5yY73t7n+EJ1dVx5IlzY2B8PJA=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
|
@ -46,6 +46,8 @@ let
|
||||
name = "source-${rev}";
|
||||
inherit owner repo rev hash;
|
||||
};
|
||||
# nixpkgs-update: no auto update
|
||||
# easier to update all providers together
|
||||
|
||||
meta = {
|
||||
inherit homepage;
|
||||
|
@ -167,9 +167,9 @@ rec {
|
||||
mkTerraform = attrs: pluggable (generic attrs);
|
||||
|
||||
terraform_1 = mkTerraform {
|
||||
version = "1.6.3";
|
||||
hash = "sha256-2ai0WAknz4rt33BuBoqnTCsfPNHmet9+PdgYeeJKQkQ=";
|
||||
vendorHash = "sha256-ZtaXUX0PgL1nwXgohcfCyj/fLPAodx8amHEsQnlOQrc=";
|
||||
version = "1.6.4";
|
||||
hash = "sha256-kA0H+JxyMV6RKRr20enTOzfwj2Lk2IP4vivfHv02+w8=";
|
||||
vendorHash = "sha256-cxnvEwtZLXYZzCITJgYk8hDRndLLC8YTD+RvgcNska0=";
|
||||
patches = [ ./provider-path-0_15.patch ];
|
||||
passthru = {
|
||||
inherit plugins;
|
||||
|
@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "werf";
|
||||
version = "1.2.267";
|
||||
version = "1.2.269";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "werf";
|
||||
repo = "werf";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-OlTlyo/JbmXyoMBSDnKHvjGN6NMRrk0kQT63R34gtOs=";
|
||||
hash = "sha256-LUHENANM+3wGftTVXaQsGykKayzEAIQ3TQ5qM77TJVA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0bxM0Y4K6wxg6Ka1A9MusptiSMshTUWJItXoVDpo7lI=";
|
||||
vendorHash = "sha256-20bPsBRya7Gg7p/hSSnnYLoSHf/fRwk1UrA/KlMT3Jk=";
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
let
|
||||
pname = "rambox";
|
||||
version = "2.2.1";
|
||||
version = "2.2.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
|
||||
sha256 = "sha256-6fnO/e5lFrY5t2sCbrrYHck29NKt2Y+FH0N2cxunvZs=";
|
||||
sha256 = "sha256-P6ia7IU6OQJQXANy1snIZEqarKUcRmgbkP6L+UMwi+8=";
|
||||
};
|
||||
|
||||
desktopItem = (makeDesktopItem {
|
||||
|
@ -6,7 +6,6 @@
|
||||
, qtbase
|
||||
, qttools
|
||||
, qtmultimedia
|
||||
, qtquick1
|
||||
, qtquickcontrols
|
||||
, openssl
|
||||
, protobuf
|
||||
@ -38,7 +37,6 @@ mkDerivation rec {
|
||||
qtbase
|
||||
qttools
|
||||
qtmultimedia
|
||||
qtquick1
|
||||
qtquickcontrols
|
||||
openssl
|
||||
protobuf
|
||||
|
@ -4,11 +4,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rocketchat-desktop";
|
||||
version = "3.9.9";
|
||||
version = "3.9.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb";
|
||||
hash = "sha256-50mVmE+q2VYJXIv2iD6ppS83We0aJRT9vje+zpJcdq0=";
|
||||
hash = "sha256-VLHkFiIwfjCHr08wTsD8rMWSvHEswZCKl2XJr61cQYE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -103,14 +103,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "4.11.6";
|
||||
version = "4.11.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "telegramdesktop";
|
||||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-GV5jaC1chm4cq097/aP18Z4QemTO4tt8SBrdxCQYaS8=";
|
||||
hash = "sha256-VuMcqbGo1t1J7I8kXdqsw/01Mth9YKEbiy8aNtM3azw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -3,14 +3,14 @@
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, openssl
|
||||
, protobuf3_21
|
||||
, protobuf_21
|
||||
, catch2
|
||||
, boost181
|
||||
, icu
|
||||
}:
|
||||
let
|
||||
boost = boost181.override { enableStatic = true; };
|
||||
protobuf = protobuf3_21.override { enableShared = false; };
|
||||
protobuf = protobuf_21.override { enableShared = false; };
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "localproxy";
|
||||
|
@ -20,8 +20,9 @@ stdenv.mkDerivation rec {
|
||||
# https://github.com/neomutt/neomutt/issues/3773#issuecomment-1493295144
|
||||
./fix-open-very-large-mailbox.patch
|
||||
(fetchpatch {
|
||||
# https://github.com/neomutt/neomutt/pull/3933
|
||||
name = "disable-incorrect-tests.patch";
|
||||
url = "https://github.com/neomutt/neomutt/pull/3933.patch";
|
||||
url = "https://github.com/neomutt/neomutt/compare/f624551b86cdb53224b5b48304a808ca2815111e...a9a1d99e6c0fdf367188125451300fa89d3e801a.patch";
|
||||
hash = "sha256-Plei063T8XyXF4/7/nAb6/4OyXz72vBAXHwls9WL1vM=";
|
||||
excludes = [".github/workflows/macos.yml"];
|
||||
})
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user