Merge master into haskell-updates
This commit is contained in:
@@ -13,33 +13,30 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository_owner == 'NixOS'
|
||||
steps:
|
||||
- name: Get list of changed files from PR
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
echo 'PR_DIFF<<EOF' >> $GITHUB_ENV
|
||||
gh api \
|
||||
repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
|
||||
| jq '.[] | select(.status != "removed") | .filename' \
|
||||
>> $GITHUB_ENV
|
||||
echo 'EOF' >> $GITHUB_ENV
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
# pull_request_target checks out the base branch by default
|
||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||
if: env.PR_DIFF
|
||||
- uses: cachix/install-nix-action@v16
|
||||
if: env.PR_DIFF
|
||||
with:
|
||||
# nixpkgs commit is pinned so that it doesn't break
|
||||
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/f93ecc4f6bc60414d8b73dbdf615ceb6a2c604df.tar.gz
|
||||
- name: install editorconfig-checker
|
||||
run: nix-env -iA editorconfig-checker -f '<nixpkgs>'
|
||||
if: env.PR_DIFF
|
||||
- name: Checking EditorConfig
|
||||
if: env.PR_DIFF
|
||||
- name: Get list of changed files from PR
|
||||
run: |
|
||||
echo "$PR_DIFF" | xargs editorconfig-checker -disable-indent-size
|
||||
git fetch origin --depth 1 ${{ github.event.pull_request.head.sha }}
|
||||
git checkout ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
git fetch origin --depth 1 ${{ github.event.pull_request.base.sha }}
|
||||
git checkout ${{ github.event.pull_request.base.sha }}
|
||||
|
||||
git fetch origin --depth 1 pull/${{ github.event.pull_request.number }}/merge
|
||||
# check this out last as editorconfig should check this commit
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
# everything except --diff-filter=D (deleted)
|
||||
git diff --diff-filter=ACMRTUXB --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} > $HOME/changed_files
|
||||
- name: Checking EditorConfig
|
||||
run: |
|
||||
cat $HOME/changed_files | xargs -r editorconfig-checker -disable-indent-size
|
||||
- if: ${{ failure() }}
|
||||
run: |
|
||||
echo "::error :: Hey! It looks like your changes don't follow our editorconfig settings. Read https://editorconfig.org/#download to configure your editor so you never see this error again."
|
||||
|
||||
@@ -32,6 +32,10 @@ jobs:
|
||||
into: staging-next-21.05
|
||||
- from: staging-next-21.05
|
||||
into: staging-21.05
|
||||
- from: release-21.11
|
||||
into: staging-next-21.11
|
||||
- from: staging-next-21.11
|
||||
into: staging-21.11
|
||||
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
+114
-116
@@ -1,8 +1,11 @@
|
||||
#!/bin/sh
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# This script is used to test that the module system is working as expected.
|
||||
# By default it test the version of nixpkgs which is defined in the NIX_PATH.
|
||||
|
||||
set -o errexit -o noclobber -o nounset -o pipefail
|
||||
shopt -s failglob inherit_errexit
|
||||
|
||||
# https://stackoverflow.com/a/246128/6605742
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
@@ -13,101 +16,96 @@ fail=0
|
||||
|
||||
evalConfig() {
|
||||
local attr=$1
|
||||
shift;
|
||||
local script="import ./default.nix { modules = [ $@ ];}"
|
||||
shift
|
||||
local script="import ./default.nix { modules = [ $* ];}"
|
||||
nix-instantiate --timeout 1 -E "$script" -A "$attr" --eval-only --show-trace --read-write-mode
|
||||
}
|
||||
|
||||
reportFailure() {
|
||||
local attr=$1
|
||||
shift;
|
||||
local script="import ./default.nix { modules = [ $@ ];}"
|
||||
shift
|
||||
local script="import ./default.nix { modules = [ $* ];}"
|
||||
echo 2>&1 "$ nix-instantiate -E '$script' -A '$attr' --eval-only"
|
||||
evalConfig "$attr" "$@"
|
||||
fail=$((fail + 1))
|
||||
evalConfig "$attr" "$@" || true
|
||||
((++fail))
|
||||
}
|
||||
|
||||
checkConfigOutput() {
|
||||
local outputContains=$1
|
||||
shift;
|
||||
shift
|
||||
if evalConfig "$@" 2>/dev/null | grep --silent "$outputContains" ; then
|
||||
pass=$((pass + 1))
|
||||
return 0;
|
||||
((++pass))
|
||||
else
|
||||
echo 2>&1 "error: Expected result matching '$outputContains', while evaluating"
|
||||
reportFailure "$@"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
checkConfigError() {
|
||||
local errorContains=$1
|
||||
local err=""
|
||||
shift;
|
||||
if err==$(evalConfig "$@" 2>&1 >/dev/null); then
|
||||
shift
|
||||
if err="$(evalConfig "$@" 2>&1 >/dev/null)"; then
|
||||
echo 2>&1 "error: Expected error code, got exit code 0, while evaluating"
|
||||
reportFailure "$@"
|
||||
return 1
|
||||
else
|
||||
if echo "$err" | grep -zP --silent "$errorContains" ; then
|
||||
pass=$((pass + 1))
|
||||
return 0;
|
||||
((++pass))
|
||||
else
|
||||
echo 2>&1 "error: Expected error matching '$errorContains', while evaluating"
|
||||
reportFailure "$@"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Check boolean option.
|
||||
checkConfigOutput "false" config.enable ./declare-enable.nix
|
||||
checkConfigOutput '^false$' config.enable ./declare-enable.nix
|
||||
checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./define-enable.nix
|
||||
|
||||
# Check integer types.
|
||||
# unsigned
|
||||
checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
|
||||
checkConfigOutput '^42$' config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
|
||||
checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
|
||||
# positive
|
||||
checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n\s*- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
|
||||
# between
|
||||
checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
|
||||
checkConfigOutput '^42$' config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
|
||||
checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
|
||||
|
||||
# Check either types
|
||||
# types.either
|
||||
checkConfigOutput "42" config.value ./declare-either.nix ./define-value-int-positive.nix
|
||||
checkConfigOutput "\"24\"" config.value ./declare-either.nix ./define-value-string.nix
|
||||
checkConfigOutput '^42$' config.value ./declare-either.nix ./define-value-int-positive.nix
|
||||
checkConfigOutput '^"24"$' config.value ./declare-either.nix ./define-value-string.nix
|
||||
# types.oneOf
|
||||
checkConfigOutput "42" config.value ./declare-oneOf.nix ./define-value-int-positive.nix
|
||||
checkConfigOutput "[ ]" config.value ./declare-oneOf.nix ./define-value-list.nix
|
||||
checkConfigOutput "\"24\"" config.value ./declare-oneOf.nix ./define-value-string.nix
|
||||
checkConfigOutput '^42$' config.value ./declare-oneOf.nix ./define-value-int-positive.nix
|
||||
checkConfigOutput '^\[ \]$' config.value ./declare-oneOf.nix ./define-value-list.nix
|
||||
checkConfigOutput '^"24"$' config.value ./declare-oneOf.nix ./define-value-string.nix
|
||||
|
||||
# Check mkForce without submodules.
|
||||
set -- config.enable ./declare-enable.nix ./define-enable.nix
|
||||
checkConfigOutput "true" "$@"
|
||||
checkConfigOutput "false" "$@" ./define-force-enable.nix
|
||||
checkConfigOutput "false" "$@" ./define-enable-force.nix
|
||||
checkConfigOutput '^true$' "$@"
|
||||
checkConfigOutput '^false$' "$@" ./define-force-enable.nix
|
||||
checkConfigOutput '^false$' "$@" ./define-enable-force.nix
|
||||
|
||||
# Check mkForce with option and submodules.
|
||||
checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix
|
||||
checkConfigOutput 'false' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
|
||||
checkConfigOutput '^false$' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
|
||||
set -- config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo-enable.nix
|
||||
checkConfigOutput 'true' "$@"
|
||||
checkConfigOutput 'false' "$@" ./define-force-attrsOfSub-foo-enable.nix
|
||||
checkConfigOutput 'false' "$@" ./define-attrsOfSub-force-foo-enable.nix
|
||||
checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-force-enable.nix
|
||||
checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-enable-force.nix
|
||||
checkConfigOutput '^true$' "$@"
|
||||
checkConfigOutput '^false$' "$@" ./define-force-attrsOfSub-foo-enable.nix
|
||||
checkConfigOutput '^false$' "$@" ./define-attrsOfSub-force-foo-enable.nix
|
||||
checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-force-enable.nix
|
||||
checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-force.nix
|
||||
|
||||
# Check overriding effect of mkForce on submodule definitions.
|
||||
checkConfigError 'attribute .*bar.* .* not found' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
|
||||
checkConfigOutput 'false' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix
|
||||
checkConfigOutput '^false$' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix
|
||||
set -- config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar-enable.nix
|
||||
checkConfigOutput 'true' "$@"
|
||||
checkConfigOutput '^true$' "$@"
|
||||
checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-force-attrsOfSub-foo-enable.nix
|
||||
checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-attrsOfSub-force-foo-enable.nix
|
||||
checkConfigOutput 'true' "$@" ./define-attrsOfSub-foo-force-enable.nix
|
||||
checkConfigOutput 'true' "$@" ./define-attrsOfSub-foo-enable-force.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-force-enable.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-enable-force.nix
|
||||
|
||||
# Check mkIf with submodules.
|
||||
checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-any-enable.nix
|
||||
@@ -115,16 +113,16 @@ set -- config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-an
|
||||
checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-if-attrsOfSub-foo-enable.nix
|
||||
checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-if-foo-enable.nix
|
||||
checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-foo-if-enable.nix
|
||||
checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-enable-if.nix
|
||||
checkConfigOutput 'true' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix
|
||||
checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix
|
||||
checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix
|
||||
checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix
|
||||
checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-if.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix
|
||||
|
||||
# Check disabledModules with config definitions and option declarations.
|
||||
set -- config.enable ./define-enable.nix ./declare-enable.nix
|
||||
checkConfigOutput "true" "$@"
|
||||
checkConfigOutput "false" "$@" ./disable-define-enable.nix
|
||||
checkConfigOutput '^true$' "$@"
|
||||
checkConfigOutput '^false$' "$@" ./disable-define-enable.nix
|
||||
checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
|
||||
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
|
||||
checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
|
||||
@@ -132,7 +130,7 @@ checkConfigError "attribute .*enable.* in selection path .*config.enable.* not f
|
||||
# Check _module.args.
|
||||
set -- config.enable ./declare-enable.nix ./define-enable-with-custom-arg.nix
|
||||
checkConfigError 'while evaluating the module argument .*custom.* in .*define-enable-with-custom-arg.nix.*:' "$@"
|
||||
checkConfigOutput "true" "$@" ./define-_module-args-custom.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-_module-args-custom.nix
|
||||
|
||||
# Check that using _module.args on imports cause infinite recursions, with
|
||||
# the proper error context.
|
||||
@@ -143,77 +141,77 @@ checkConfigError 'infinite recursion encountered' "$@"
|
||||
# Check _module.check.
|
||||
set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix
|
||||
checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' "$@"
|
||||
checkConfigOutput "true" "$@" ./define-module-check.nix
|
||||
checkConfigOutput '^true$' "$@" ./define-module-check.nix
|
||||
|
||||
# Check coerced value.
|
||||
checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
|
||||
checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
|
||||
checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
|
||||
checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
|
||||
checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
||||
|
||||
# Check coerced value with unsound coercion
|
||||
checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
|
||||
checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix
|
||||
checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
|
||||
checkConfigError 'json.exception.parse_error' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
|
||||
|
||||
# Check mkAliasOptionModule.
|
||||
checkConfigOutput "true" config.enable ./alias-with-priority.nix
|
||||
checkConfigOutput "true" config.enableAlias ./alias-with-priority.nix
|
||||
checkConfigOutput "false" config.enable ./alias-with-priority-can-override.nix
|
||||
checkConfigOutput "false" config.enableAlias ./alias-with-priority-can-override.nix
|
||||
checkConfigOutput '^true$' config.enable ./alias-with-priority.nix
|
||||
checkConfigOutput '^true$' config.enableAlias ./alias-with-priority.nix
|
||||
checkConfigOutput '^false$' config.enable ./alias-with-priority-can-override.nix
|
||||
checkConfigOutput '^false$' config.enableAlias ./alias-with-priority-can-override.nix
|
||||
|
||||
# submoduleWith
|
||||
|
||||
## specialArgs should work
|
||||
checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
|
||||
checkConfigOutput '^"foo"$' config.submodule.foo ./declare-submoduleWith-special.nix
|
||||
|
||||
## shorthandOnlyDefines config behaves as expected
|
||||
checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
|
||||
checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
|
||||
checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
|
||||
checkConfigError "You're trying to declare a value of type \`bool'\n\s*rather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
|
||||
checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
|
||||
checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
|
||||
|
||||
## submoduleWith should merge all modules in one swoop
|
||||
checkConfigOutput "true" config.submodule.inner ./declare-submoduleWith-modules.nix
|
||||
checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules.nix
|
||||
checkConfigOutput '^true$' config.submodule.inner ./declare-submoduleWith-modules.nix
|
||||
checkConfigOutput '^true$' config.submodule.outer ./declare-submoduleWith-modules.nix
|
||||
# Should also be able to evaluate the type name (which evaluates freeformType,
|
||||
# which evaluates all the modules defined by the type)
|
||||
checkConfigOutput "submodule" options.submodule.type.description ./declare-submoduleWith-modules.nix
|
||||
checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-submoduleWith-modules.nix
|
||||
|
||||
## submodules can be declared using (evalModules {...}).type
|
||||
checkConfigOutput "true" config.submodule.inner ./declare-submodule-via-evalModules.nix
|
||||
checkConfigOutput "true" config.submodule.outer ./declare-submodule-via-evalModules.nix
|
||||
checkConfigOutput '^true$' config.submodule.inner ./declare-submodule-via-evalModules.nix
|
||||
checkConfigOutput '^true$' config.submodule.outer ./declare-submodule-via-evalModules.nix
|
||||
# Should also be able to evaluate the type name (which evaluates freeformType,
|
||||
# which evaluates all the modules defined by the type)
|
||||
checkConfigOutput "submodule" options.submodule.type.description ./declare-submodule-via-evalModules.nix
|
||||
checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-submodule-via-evalModules.nix
|
||||
|
||||
## Paths should be allowed as values and work as expected
|
||||
checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix
|
||||
checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
|
||||
|
||||
# Check that disabledModules works recursively and correctly
|
||||
checkConfigOutput "true" config.enable ./disable-recursive/main.nix
|
||||
checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.nix}
|
||||
checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
|
||||
checkConfigOutput '^true$' config.enable ./disable-recursive/main.nix
|
||||
checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-foo.nix}
|
||||
checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-bar.nix}
|
||||
checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
|
||||
|
||||
# Check that imports can depend on derivations
|
||||
checkConfigOutput "true" config.enable ./import-from-store.nix
|
||||
checkConfigOutput '^true$' config.enable ./import-from-store.nix
|
||||
|
||||
# Check that configs can be conditional on option existence
|
||||
checkConfigOutput true config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
|
||||
checkConfigOutput 360 config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
|
||||
checkConfigOutput 7 config.value ./define-option-dependently.nix ./declare-int-positive-value.nix
|
||||
checkConfigOutput true config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
|
||||
checkConfigOutput 360 config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
|
||||
checkConfigOutput 7 config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix
|
||||
checkConfigOutput '^true$' config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
|
||||
checkConfigOutput '^360$' config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
|
||||
checkConfigOutput '^7$' config.value ./define-option-dependently.nix ./declare-int-positive-value.nix
|
||||
checkConfigOutput '^true$' config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
|
||||
checkConfigOutput '^360$' config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
|
||||
checkConfigOutput '^7$' config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix
|
||||
|
||||
# Check attrsOf and lazyAttrsOf. Only lazyAttrsOf should be lazy, and only
|
||||
# attrsOf should work with conditional definitions
|
||||
# In addition, lazyAttrsOf should honor an options emptyValue
|
||||
checkConfigError "is not lazy" config.isLazy ./declare-attrsOf.nix ./attrsOf-lazy-check.nix
|
||||
checkConfigOutput "true" config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix
|
||||
checkConfigOutput "true" config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix
|
||||
checkConfigOutput "false" config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
|
||||
checkConfigOutput "empty" config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
|
||||
checkConfigOutput '^true$' config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix
|
||||
checkConfigOutput '^true$' config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix
|
||||
checkConfigOutput '^false$' config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
|
||||
checkConfigOutput '^"empty"$' config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
|
||||
|
||||
|
||||
# Even with multiple assignments, a type error should be thrown if any of them aren't valid
|
||||
@@ -222,69 +220,69 @@ checkConfigError 'A definition for option .* is not of type .*' \
|
||||
|
||||
## Freeform modules
|
||||
# Assigning without a declared option should work
|
||||
checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix
|
||||
checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix
|
||||
# No freeform assigments shouldn't make it error
|
||||
checkConfigOutput '{ }' config ./freeform-attrsOf.nix
|
||||
checkConfigOutput '^{ }$' config ./freeform-attrsOf.nix
|
||||
# but only if the type matches
|
||||
checkConfigError 'A definition for option .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix
|
||||
# and properties should be applied
|
||||
checkConfigOutput yes config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
|
||||
checkConfigOutput '^"yes"$' config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
|
||||
# Options should still be declarable, and be able to have a type that doesn't match the freeform type
|
||||
checkConfigOutput false config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
|
||||
checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
|
||||
checkConfigOutput '^false$' config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
|
||||
checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
|
||||
# and this should work too with nested values
|
||||
checkConfigOutput false config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
|
||||
checkConfigOutput bar config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
|
||||
checkConfigOutput '^false$' config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
|
||||
checkConfigOutput '^"bar"$' config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
|
||||
# Check whether a declared option can depend on an freeform-typed one
|
||||
checkConfigOutput null config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
|
||||
checkConfigOutput 24 config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
|
||||
checkConfigOutput '^null$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
|
||||
checkConfigOutput '^"24"$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
|
||||
# Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf
|
||||
checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix
|
||||
checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix
|
||||
checkConfigOutput 24 config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
|
||||
checkConfigOutput '^"24"$' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
|
||||
|
||||
## types.anything
|
||||
# Check that attribute sets are merged recursively
|
||||
checkConfigOutput null config.value.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput null config.value.l1.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput null config.value.l1.l2.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput null config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput '^null$' config.value.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput '^null$' config.value.l1.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput '^null$' config.value.l1.l2.foo ./types-anything/nested-attrs.nix
|
||||
checkConfigOutput '^null$' config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
|
||||
# Attribute sets that are coercible to strings shouldn't be recursed into
|
||||
checkConfigOutput foo config.value.outPath ./types-anything/attrs-coercible.nix
|
||||
checkConfigOutput '^"foo"$' config.value.outPath ./types-anything/attrs-coercible.nix
|
||||
# Multiple lists aren't concatenated together
|
||||
checkConfigError 'The option .* has conflicting definitions' config.value ./types-anything/lists.nix
|
||||
# Check that all equalizable atoms can be used as long as all definitions are equal
|
||||
checkConfigOutput 0 config.value.int ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput false config.value.bool ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '""' config.value.string ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput / config.value.path ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput null config.value.null ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput 0.1 config.value.float ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '^0$' config.value.int ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '^false$' config.value.bool ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '^""$' config.value.string ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '^/$' config.value.path ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '^null$' config.value.null ./types-anything/equal-atoms.nix
|
||||
checkConfigOutput '^0.1$' config.value.float ./types-anything/equal-atoms.nix
|
||||
# Functions can't be merged together
|
||||
checkConfigError "The option .value.multiple-lambdas.<function body>. has conflicting option types" config.applied.multiple-lambdas ./types-anything/functions.nix
|
||||
checkConfigOutput '<LAMBDA>' config.value.single-lambda ./types-anything/functions.nix
|
||||
checkConfigOutput 'null' config.applied.merging-lambdas.x ./types-anything/functions.nix
|
||||
checkConfigOutput 'null' config.applied.merging-lambdas.y ./types-anything/functions.nix
|
||||
checkConfigOutput '^<LAMBDA>$' config.value.single-lambda ./types-anything/functions.nix
|
||||
checkConfigOutput '^null$' config.applied.merging-lambdas.x ./types-anything/functions.nix
|
||||
checkConfigOutput '^null$' config.applied.merging-lambdas.y ./types-anything/functions.nix
|
||||
# Check that all mk* modifiers are applied
|
||||
checkConfigError 'attribute .* not found' config.value.mkiffalse ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '{ }' config.value.mkiftrue ./types-anything/mk-mods.nix
|
||||
checkConfigOutput 1 config.value.mkdefault ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '{ }' config.value.mkmerge ./types-anything/mk-mods.nix
|
||||
checkConfigOutput true config.value.mkbefore ./types-anything/mk-mods.nix
|
||||
checkConfigOutput 1 config.value.nested.foo ./types-anything/mk-mods.nix
|
||||
checkConfigOutput baz config.value.nested.bar.baz ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '^{ }$' config.value.mkiftrue ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '^1$' config.value.mkdefault ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '^{ }$' config.value.mkmerge ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '^true$' config.value.mkbefore ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '^1$' config.value.nested.foo ./types-anything/mk-mods.nix
|
||||
checkConfigOutput '^"baz"$' config.value.nested.bar.baz ./types-anything/mk-mods.nix
|
||||
|
||||
## types.functionTo
|
||||
checkConfigOutput "input is input" config.result ./functionTo/trivial.nix
|
||||
checkConfigOutput "a b" config.result ./functionTo/merging-list.nix
|
||||
checkConfigOutput '^"input is input"$' config.result ./functionTo/trivial.nix
|
||||
checkConfigOutput '^"a b"$' config.result ./functionTo/merging-list.nix
|
||||
checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
|
||||
checkConfigOutput "b a" config.result ./functionTo/list-order.nix
|
||||
checkConfigOutput "a c" config.result ./functionTo/merging-attrs.nix
|
||||
checkConfigOutput '^"b a"$' config.result ./functionTo/list-order.nix
|
||||
checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
|
||||
|
||||
# moduleType
|
||||
checkConfigOutput "a b" config.resultFoo ./declare-variants.nix ./define-variant.nix
|
||||
checkConfigOutput "a y z" config.resultFooBar ./declare-variants.nix ./define-variant.nix
|
||||
checkConfigOutput "a b c" config.resultFooFoo ./declare-variants.nix ./define-variant.nix
|
||||
checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
|
||||
checkConfigOutput '^"a y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
|
||||
checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
|
||||
|
||||
cat <<EOF
|
||||
====== module tests ======
|
||||
@@ -292,7 +290,7 @@ $pass Pass
|
||||
$fail Fail
|
||||
EOF
|
||||
|
||||
if test $fail -ne 0; then
|
||||
if [ "$fail" -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
shopt -s inherit_errexit
|
||||
|
||||
# Use
|
||||
# || die
|
||||
@@ -9,17 +10,18 @@ die() {
|
||||
}
|
||||
|
||||
if test -n "${TEST_LIB:-}"; then
|
||||
export NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")"
|
||||
NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")"
|
||||
else
|
||||
export NIX_PATH=nixpkgs="$(cd $(dirname ${BASH_SOURCE[0]})/../..; pwd)"
|
||||
NIX_PATH=nixpkgs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."; pwd)"
|
||||
fi
|
||||
export NIX_PATH
|
||||
|
||||
work="$(mktemp -d)"
|
||||
clean_up() {
|
||||
rm -rf "$work"
|
||||
}
|
||||
trap clean_up EXIT
|
||||
cd $work
|
||||
cd "$work"
|
||||
|
||||
touch {README.md,module.o,foo.bar}
|
||||
|
||||
@@ -29,7 +31,7 @@ touch {README.md,module.o,foo.bar}
|
||||
dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
|
||||
cleanSource ./.
|
||||
}")')"
|
||||
(cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
|
||||
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
|
||||
.
|
||||
./foo.bar
|
||||
./README.md
|
||||
@@ -40,7 +42,7 @@ EOF
|
||||
dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
|
||||
cleanSourceWith { src = '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
|
||||
}")')"
|
||||
(cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
|
||||
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
|
||||
.
|
||||
./module.o
|
||||
./README.md
|
||||
@@ -50,7 +52,7 @@ EOF
|
||||
dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
|
||||
cleanSourceWith { src = cleanSource '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
|
||||
}")')"
|
||||
(cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
|
||||
(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
|
||||
.
|
||||
./README.md
|
||||
EOF
|
||||
|
||||
@@ -6382,6 +6382,13 @@
|
||||
githubId = 449813;
|
||||
name = "Roman Kuznetsov";
|
||||
};
|
||||
kvark = {
|
||||
name = "Dzmitry Malyshau";
|
||||
email = "kvark@fastmail.com";
|
||||
matrix = "@kvark:matrix.org";
|
||||
github = "kvark";
|
||||
githubId = 107301;
|
||||
};
|
||||
kwohlfahrt = {
|
||||
email = "kai.wohlfahrt@gmail.com";
|
||||
github = "kwohlfahrt";
|
||||
@@ -12466,7 +12473,7 @@
|
||||
githubId = 6016963;
|
||||
name = "Patrick Winter";
|
||||
};
|
||||
winterqt = {
|
||||
winter = {
|
||||
email = "nixos@winter.cafe";
|
||||
github = "winterqt";
|
||||
githubId = 78392041;
|
||||
|
||||
@@ -281,7 +281,7 @@ let format' = format; in let
|
||||
--substituters ""
|
||||
|
||||
${optionalString (additionalPaths' != []) ''
|
||||
nix copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
|
||||
nix --extra-experimental-features nix-command copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
|
||||
''}
|
||||
|
||||
diskImage=nixos.raw
|
||||
|
||||
@@ -77,6 +77,7 @@ let
|
||||
|
||||
unitConfig = {
|
||||
ConditionPathExists = "!/var/lib/acme/.minica/key.pem";
|
||||
StartLimitIntervalSec = 0;
|
||||
};
|
||||
|
||||
serviceConfig = commonServiceConfig // {
|
||||
@@ -235,6 +236,7 @@ let
|
||||
|
||||
unitConfig = {
|
||||
ConditionPathExists = "!/var/lib/acme/${cert}/key.pem";
|
||||
StartLimitIntervalSec = 0;
|
||||
};
|
||||
|
||||
serviceConfig = commonServiceConfig // {
|
||||
|
||||
@@ -40,7 +40,7 @@ let
|
||||
};
|
||||
|
||||
frequency = mkOption {
|
||||
type = types.enum [ "daily" "weekly" "monthly" "yearly" ];
|
||||
type = types.enum [ "hourly" "daily" "weekly" "monthly" "yearly" ];
|
||||
default = "daily";
|
||||
description = ''
|
||||
How often to rotate the logs.
|
||||
@@ -155,7 +155,7 @@ in
|
||||
systemd.services.logrotate = {
|
||||
description = "Logrotate Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
startAt = "*-*-* *:05:00";
|
||||
startAt = "hourly";
|
||||
script = ''
|
||||
exec ${pkgs.logrotate}/sbin/logrotate ${configFile}
|
||||
'';
|
||||
|
||||
@@ -171,34 +171,27 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.services.caddy = {
|
||||
description = "Caddy web server";
|
||||
# upstream unit: https://github.com/caddyserver/dist/blob/master/init/caddy.service
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ]; # systemd-networkd-wait-online.service
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
startLimitIntervalSec = 14400;
|
||||
startLimitBurst = 10;
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/caddy run ${optionalString cfg.resume "--resume"} --config ${configJSON}";
|
||||
ExecReload = "${cfg.package}/bin/caddy reload --config ${configJSON}";
|
||||
Type = "simple";
|
||||
# https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=
|
||||
# If the empty string is assigned to this option, the list of commands to start is reset, prior assignments of this option will have no effect.
|
||||
ExecStart = [ "" "${cfg.package}/bin/caddy run ${optionalString cfg.resume "--resume"} --config ${configJSON}" ];
|
||||
ExecReload = [ "" "${cfg.package}/bin/caddy reload --config ${configJSON}" ];
|
||||
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ReadWriteDirectories = cfg.dataDir;
|
||||
Restart = "on-abnormal";
|
||||
AmbientCapabilities = "cap_net_bind_service";
|
||||
CapabilityBoundingSet = "cap_net_bind_service";
|
||||
|
||||
# TODO: attempt to upstream these options
|
||||
NoNewPrivileges = true;
|
||||
LimitNPROC = 512;
|
||||
LimitNOFILE = 1048576;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
ProtectHome = true;
|
||||
ProtectSystem = "full";
|
||||
ReadWriteDirectories = cfg.dataDir;
|
||||
KillMode = "mixed";
|
||||
KillSignal = "SIGQUIT";
|
||||
TimeoutStopSec = "5s";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -202,6 +202,13 @@ in
|
||||
blueberry
|
||||
warpinator
|
||||
|
||||
# cinnamon xapps
|
||||
xviewer
|
||||
xreader
|
||||
xed
|
||||
xplayer
|
||||
pix
|
||||
|
||||
# external apps shipped with linux-mint
|
||||
hexchat
|
||||
gnome-calculator
|
||||
|
||||
@@ -83,14 +83,14 @@ in
|
||||
default = true;
|
||||
description = ''
|
||||
Allow GDM to run on Wayland instead of Xserver.
|
||||
Note to enable Wayland with Nvidia you need to
|
||||
enable the <option>nvidiaWayland</option>.
|
||||
Note to enable Wayland with Nvidia the <option>nvidiaWayland</option>
|
||||
must not be disabled.
|
||||
'';
|
||||
};
|
||||
|
||||
nvidiaWayland = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to allow wayland to be used with the proprietary
|
||||
NVidia graphics driver.
|
||||
|
||||
@@ -103,10 +103,10 @@ if (stat($bootPath)->dev != stat("/nix/store")->dev) {
|
||||
|
||||
# Discover information about the location of the bootPath
|
||||
struct(Fs => {
|
||||
device => '$',
|
||||
type => '$',
|
||||
mount => '$',
|
||||
});
|
||||
device => '$',
|
||||
type => '$',
|
||||
mount => '$',
|
||||
});
|
||||
sub PathInMount {
|
||||
my ($path, $mount) = @_;
|
||||
my @splitMount = split /\//, $mount;
|
||||
@@ -155,9 +155,9 @@ sub GetFs {
|
||||
return $bestFs;
|
||||
}
|
||||
struct (Grub => {
|
||||
path => '$',
|
||||
search => '$',
|
||||
});
|
||||
path => '$',
|
||||
search => '$',
|
||||
});
|
||||
my $driveid = 1;
|
||||
sub GrubFs {
|
||||
my ($dir) = @_;
|
||||
@@ -254,8 +254,8 @@ if ($grubVersion == 1) {
|
||||
# $defaultEntry might be "saved", indicating that we want to use the last selected configuration as default.
|
||||
# Incidentally this is already the correct value for the grub 1 config to achieve this behaviour.
|
||||
$conf .= "
|
||||
default $defaultEntry
|
||||
timeout $timeout
|
||||
default $defaultEntry
|
||||
timeout $timeout
|
||||
";
|
||||
if ($splashImage) {
|
||||
copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
|
||||
@@ -305,7 +305,7 @@ else {
|
||||
|
||||
if ($copyKernels == 0) {
|
||||
$conf .= "
|
||||
" . $grubStore->search;
|
||||
" . $grubStore->search;
|
||||
}
|
||||
# FIXME: should use grub-mkconfig.
|
||||
my $defaultEntryText = $defaultEntry;
|
||||
@@ -313,55 +313,55 @@ else {
|
||||
$defaultEntryText = "\"\${saved_entry}\"";
|
||||
}
|
||||
$conf .= "
|
||||
" . $grubBoot->search . "
|
||||
if [ -s \$prefix/grubenv ]; then
|
||||
load_env
|
||||
fi
|
||||
|
||||
# ‘grub-reboot’ sets a one-time saved entry, which we process here and
|
||||
# then delete.
|
||||
if [ \"\${next_entry}\" ]; then
|
||||
set default=\"\${next_entry}\"
|
||||
set next_entry=
|
||||
save_env next_entry
|
||||
set timeout=1
|
||||
set boot_once=true
|
||||
else
|
||||
set default=$defaultEntryText
|
||||
set timeout=$timeout
|
||||
fi
|
||||
|
||||
function savedefault {
|
||||
if [ -z \"\${boot_once}\"]; then
|
||||
saved_entry=\"\${chosen}\"
|
||||
save_env saved_entry
|
||||
" . $grubBoot->search . "
|
||||
if [ -s \$prefix/grubenv ]; then
|
||||
load_env
|
||||
fi
|
||||
}
|
||||
|
||||
# Setup the graphics stack for bios and efi systems
|
||||
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
||||
insmod efi_gop
|
||||
insmod efi_uga
|
||||
else
|
||||
insmod vbe
|
||||
fi
|
||||
# ‘grub-reboot’ sets a one-time saved entry, which we process here and
|
||||
# then delete.
|
||||
if [ \"\${next_entry}\" ]; then
|
||||
set default=\"\${next_entry}\"
|
||||
set next_entry=
|
||||
save_env next_entry
|
||||
set timeout=1
|
||||
set boot_once=true
|
||||
else
|
||||
set default=$defaultEntryText
|
||||
set timeout=$timeout
|
||||
fi
|
||||
|
||||
function savedefault {
|
||||
if [ -z \"\${boot_once}\"]; then
|
||||
saved_entry=\"\${chosen}\"
|
||||
save_env saved_entry
|
||||
fi
|
||||
}
|
||||
|
||||
# Setup the graphics stack for bios and efi systems
|
||||
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
||||
insmod efi_gop
|
||||
insmod efi_uga
|
||||
else
|
||||
insmod vbe
|
||||
fi
|
||||
";
|
||||
|
||||
if ($font) {
|
||||
copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
|
||||
$conf .= "
|
||||
insmod font
|
||||
if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
|
||||
insmod gfxterm
|
||||
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
||||
set gfxmode=$gfxmodeEfi
|
||||
set gfxpayload=$gfxpayloadEfi
|
||||
else
|
||||
set gfxmode=$gfxmodeBios
|
||||
set gfxpayload=$gfxpayloadBios
|
||||
fi
|
||||
terminal_output gfxterm
|
||||
fi
|
||||
insmod font
|
||||
if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
|
||||
insmod gfxterm
|
||||
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
||||
set gfxmode=$gfxmodeEfi
|
||||
set gfxpayload=$gfxpayloadEfi
|
||||
else
|
||||
set gfxmode=$gfxmodeBios
|
||||
set gfxpayload=$gfxpayloadBios
|
||||
fi
|
||||
terminal_output gfxterm
|
||||
fi
|
||||
";
|
||||
}
|
||||
if ($splashImage) {
|
||||
@@ -378,14 +378,14 @@ else {
|
||||
}
|
||||
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
|
||||
$conf .= "
|
||||
insmod " . substr($suffix, 1) . "
|
||||
if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
|
||||
set color_normal=white/black
|
||||
set color_highlight=black/white
|
||||
else
|
||||
set menu_color_normal=cyan/blue
|
||||
set menu_color_highlight=white/blue
|
||||
fi
|
||||
insmod " . substr($suffix, 1) . "
|
||||
if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
|
||||
set color_normal=white/black
|
||||
set color_highlight=black/white
|
||||
else
|
||||
set menu_color_normal=cyan/blue
|
||||
set menu_color_highlight=white/blue
|
||||
fi
|
||||
";
|
||||
}
|
||||
|
||||
@@ -395,20 +395,20 @@ else {
|
||||
# Copy theme
|
||||
rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
|
||||
$conf .= "
|
||||
# Sets theme.
|
||||
set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
|
||||
export theme
|
||||
# Load theme fonts, if any
|
||||
# Sets theme.
|
||||
set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
|
||||
export theme
|
||||
# Load theme fonts, if any
|
||||
";
|
||||
|
||||
find( { wanted => sub {
|
||||
if ($_ =~ /\.pf2$/i) {
|
||||
$font = File::Spec->abs2rel($File::Find::name, $theme);
|
||||
$conf .= "
|
||||
loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
|
||||
";
|
||||
}
|
||||
}, no_chdir => 1 }, $theme );
|
||||
if ($_ =~ /\.pf2$/i) {
|
||||
$font = File::Spec->abs2rel($File::Find::name, $theme);
|
||||
$conf .= "
|
||||
loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
|
||||
";
|
||||
}
|
||||
}, no_chdir => 1 }, $theme );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,8 +474,8 @@ sub addEntry {
|
||||
# FIXME: $confName
|
||||
|
||||
my $kernelParams =
|
||||
"init=" . Cwd::abs_path("$path/init") . " " .
|
||||
readFile("$path/kernel-params");
|
||||
"init=" . Cwd::abs_path("$path/init") . " " .
|
||||
readFile("$path/kernel-params");
|
||||
my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
|
||||
|
||||
if ($grubVersion == 1) {
|
||||
@@ -524,9 +524,9 @@ foreach my $link (@links) {
|
||||
|
||||
my $date = strftime("%F", localtime(lstat($link)->mtime));
|
||||
my $version =
|
||||
-e "$link/nixos-version"
|
||||
? readFile("$link/nixos-version")
|
||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||
-e "$link/nixos-version"
|
||||
? readFile("$link/nixos-version")
|
||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||
|
||||
if ($cfgName) {
|
||||
$entryName = $cfgName;
|
||||
@@ -551,8 +551,8 @@ sub addProfile {
|
||||
sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
|
||||
|
||||
my @links = sort
|
||||
{ nrFromGen($b) <=> nrFromGen($a) }
|
||||
(glob "$profile-*-link");
|
||||
{ nrFromGen($b) <=> nrFromGen($a) }
|
||||
(glob "$profile-*-link");
|
||||
|
||||
my $curEntry = 0;
|
||||
foreach my $link (@links) {
|
||||
@@ -563,9 +563,9 @@ sub addProfile {
|
||||
}
|
||||
my $date = strftime("%F", localtime(lstat($link)->mtime));
|
||||
my $version =
|
||||
-e "$link/nixos-version"
|
||||
? readFile("$link/nixos-version")
|
||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||
-e "$link/nixos-version"
|
||||
? readFile("$link/nixos-version")
|
||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||
addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
|
||||
}
|
||||
|
||||
@@ -653,13 +653,13 @@ foreach my $fn (glob "$bootPath/kernels/*") {
|
||||
#
|
||||
|
||||
struct(GrubState => {
|
||||
name => '$',
|
||||
version => '$',
|
||||
efi => '$',
|
||||
devices => '$',
|
||||
efiMountPoint => '$',
|
||||
extraGrubInstallArgs => '@',
|
||||
});
|
||||
name => '$',
|
||||
version => '$',
|
||||
efi => '$',
|
||||
devices => '$',
|
||||
efiMountPoint => '$',
|
||||
extraGrubInstallArgs => '@',
|
||||
});
|
||||
# If you add something to the state file, only add it to the end
|
||||
# because it is read line-by-line.
|
||||
sub readGrubState {
|
||||
|
||||
@@ -487,6 +487,7 @@ in
|
||||
vault-postgresql = handleTest ./vault-postgresql.nix {};
|
||||
vaultwarden = handleTest ./vaultwarden.nix {};
|
||||
vector = handleTest ./vector.nix {};
|
||||
vengi-tools = handleTest ./vengi-tools.nix {};
|
||||
victoriametrics = handleTest ./victoriametrics.nix {};
|
||||
vikunja = handleTest ./vikunja.nix {};
|
||||
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "vengi-tools";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ fgaz ];
|
||||
};
|
||||
|
||||
machine = { config, pkgs, ... }: {
|
||||
imports = [
|
||||
./common/x11.nix
|
||||
];
|
||||
|
||||
services.xserver.enable = true;
|
||||
environment.systemPackages = [ pkgs.vengi-tools ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript =
|
||||
''
|
||||
machine.wait_for_x()
|
||||
machine.execute("vengi-voxedit >&2 &")
|
||||
machine.wait_for_window("voxedit")
|
||||
# OCR on voxedit's window is very expensive, so we avoid wasting a try
|
||||
# by letting the window load fully first
|
||||
machine.sleep(15)
|
||||
machine.wait_for_text("Palette")
|
||||
machine.screenshot("screen")
|
||||
'';
|
||||
})
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bitwig-studio";
|
||||
version = "4.0.7";
|
||||
version = "4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
|
||||
sha256 = "sha256-NAiwHLYhTAQH6xZw5u8bM7MOILcMclQMKtJc7MGJb+Q=";
|
||||
sha256 = "sha256-h6TNlfKgN7CPhtY8DxESrydtEsdVPT+Uf+VKcqKVuXw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
|
||||
|
||||
@@ -29,9 +29,9 @@ mkDerivation rec {
|
||||
qtWrapperArgs = [
|
||||
# MuseScore JACK backend loads libjack at runtime.
|
||||
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libjack2 ]}"
|
||||
# Work around crash on update from 3.4.2 to 3.5.0
|
||||
# https://bugreports.qt.io/browse/QTBUG-85967
|
||||
"--set QML_DISABLE_DISK_CACHE 1"
|
||||
# There are some issues with using the wayland backend, see:
|
||||
# https://musescore.org/en/node/321936
|
||||
"--set QT_QPA_PLATFORM xcb"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
@@ -49,7 +49,7 @@ mkDerivation rec {
|
||||
description = "Music notation and composition software";
|
||||
homepage = "https://musescore.org/";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ vandenoever turion ];
|
||||
maintainers = with maintainers; [ vandenoever turion doronbehar ];
|
||||
platforms = platforms.linux;
|
||||
repositories.git = "https://github.com/musescore/MuseScore";
|
||||
};
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "vorta";
|
||||
version = "0.7.8";
|
||||
version = "0.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "borgbase";
|
||||
repo = "vorta";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-qNBswy1dsCE6TEQLr/r7nnZWegDD8BD9pMkcpcuT7Q0=";
|
||||
sha256 = "sha256-ut4HCfLU/P22y5QbNakTV4d4CnFRxJvn+cnJ0ZGpTlw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||
@@ -24,7 +24,6 @@ python3Packages.buildPythonApplication rec {
|
||||
peewee
|
||||
pyqt5
|
||||
python-dateutil
|
||||
APScheduler
|
||||
psutil
|
||||
qdarkstyle
|
||||
secretstorage
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
|
||||
, cmake
|
||||
, pkg-config
|
||||
, ninja
|
||||
, python3
|
||||
, makeWrapper
|
||||
|
||||
, glm
|
||||
, lua5_4
|
||||
, SDL2
|
||||
, SDL2_mixer
|
||||
, enet
|
||||
, libuv
|
||||
, libuuid
|
||||
, wayland-protocols
|
||||
, Carbon
|
||||
# optionals
|
||||
, opencl-headers
|
||||
, OpenCL
|
||||
|
||||
, callPackage
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
# cmake 3.21 inserts invalid `ldd` and `-Wl,--no-as-needed` calls, apparently
|
||||
# related to
|
||||
# https://cmake.org/cmake/help/v3.21/prop_tgt/LINK_WHAT_YOU_USE.html
|
||||
let cmake3_22 = cmake.overrideAttrs (old: {
|
||||
version = "3.22.0";
|
||||
src = fetchurl {
|
||||
url = "https://cmake.org/files/v3.22/cmake-3.22.0.tar.gz";
|
||||
sha256 = "sha256-mYx7o0d40t/bPfimlUaeJLEeK/oh++QbNho/ReHJNF4=";
|
||||
};
|
||||
});
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vengi-tools";
|
||||
version = "0.0.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mgerhardy";
|
||||
repo = "engine";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-v82hKskTSwM0NDgLVHpHZNRQW6tWug4pPIt91MrUwUo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake3_22
|
||||
pkg-config
|
||||
ninja
|
||||
python3
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glm
|
||||
lua5_4
|
||||
SDL2
|
||||
SDL2_mixer
|
||||
enet
|
||||
libuv
|
||||
libuuid
|
||||
# Only needed for the game
|
||||
#postgresql
|
||||
#libpqxx
|
||||
#mosquitto
|
||||
] ++ lib.optional stdenv.isLinux wayland-protocols
|
||||
++ lib.optionals stdenv.isDarwin [ Carbon OpenCL ]
|
||||
++ lib.optional (!stdenv.isDarwin) opencl-headers;
|
||||
|
||||
cmakeFlags = [
|
||||
# Disable tests due to a problem in linking gtest:
|
||||
# ld: /build/vengi-tests-core.LDHlV1.ltrans0.ltrans.o: in function `main':
|
||||
# <artificial>:(.text.startup+0x3f): undefined reference to `testing::InitGoogleMock(int*, char**)'
|
||||
"-DUNITTESTS=OFF"
|
||||
"-DVISUALTESTS=OFF"
|
||||
# We're only interested in the generic tools
|
||||
"-DGAMES=OFF"
|
||||
"-DMAPVIEW=OFF"
|
||||
"-DAIDEBUG=OFF"
|
||||
];
|
||||
|
||||
# Set the data directory for each executable. We cannot set it at build time
|
||||
# with the PKGDATADIR cmake variable because each executable needs a specific
|
||||
# one.
|
||||
# This is not needed on darwin, since on that platform data files are saved
|
||||
# in *.app/Contents/Resources/ too, and are picked up automatically.
|
||||
postInstall = lib.optionalString (!stdenv.isDarwin) ''
|
||||
for prog in $out/bin/*; do
|
||||
wrapProgram "$prog" \
|
||||
--set CORE_PATH $out/share/$(basename "$prog")/
|
||||
done
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
voxconvert-roundtrip = callPackage ./test-voxconvert-roundtrip.nix {};
|
||||
run-voxedit = nixosTests.vengi-tools;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tools from the vengi voxel engine, including a thumbnailer, a converter, and the VoxEdit voxel editor";
|
||||
longDescription = ''
|
||||
Tools from the vengi C++ voxel game engine. It includes a voxel editor
|
||||
with character animation support and loading/saving into a lot of voxel
|
||||
volume formats. There are other tools like e.g. a thumbnailer for your
|
||||
filemanager and a command line tool to convert between several voxel
|
||||
formats.
|
||||
'';
|
||||
homepage = "https://mgerhardy.github.io/engine/";
|
||||
downloadPage = "https://github.com/mgerhardy/engine/releases";
|
||||
license = [ licenses.mit licenses.cc-by-sa-30 ];
|
||||
maintainers = with maintainers; [ fgaz ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{ stdenv
|
||||
, vengi-tools
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "vengi-tools-test-voxconvert-roundtrip";
|
||||
meta.timeout = 10;
|
||||
buildCommand = ''
|
||||
${vengi-tools}/bin/vengi-voxconvert ${vengi-tools}/share/vengi-voxedit/chr_knight.qb chr_knight.vox
|
||||
${vengi-tools}/bin/vengi-voxconvert chr_knight.vox chr_knight.qb
|
||||
${vengi-tools}/bin/vengi-voxconvert chr_knight.qb chr_knight1.vox
|
||||
diff chr_knight.vox chr_knight1.vox
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -18,13 +18,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dbeaver";
|
||||
version = "21.2.5"; # When updating also update fetchedMavenDeps.sha256
|
||||
version = "21.3.0"; # When updating also update fetchedMavenDeps.sha256
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dbeaver";
|
||||
repo = "dbeaver";
|
||||
rev = version;
|
||||
sha256 = "bLZYwf6dtbzS0sWKfQQzv4NqRQZqLkJaT24eW3YOsdQ=";
|
||||
sha256 = "iKxnuMm5hpreP706N+XxaBrDVVwVFRWKNmiCyXkOUCQ=";
|
||||
};
|
||||
|
||||
fetchedMavenDeps = stdenv.mkDerivation {
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchPypi
|
||||
, mercurial
|
||||
# build inputs
|
||||
, distro
|
||||
, glean-sdk
|
||||
, python-hglib
|
||||
, sentry-sdk
|
||||
, setuptools
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "moz-phab";
|
||||
version = "0.1.99";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "MozPhab";
|
||||
inherit version;
|
||||
sha256 = "sha256-uKoMMSp5AIvB1qTRYAh7n1+2dDLneFbssfkfTTshfcs=";
|
||||
};
|
||||
|
||||
# Relax python-hglib requirement
|
||||
# https://phabricator.services.mozilla.com/D131618
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "==" ">="
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
distro
|
||||
glean-sdk
|
||||
python-hglib
|
||||
sentry-sdk
|
||||
setuptools
|
||||
];
|
||||
checkInputs = [
|
||||
mercurial
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export HOME=$(mktemp -d)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Phabricator CLI from Mozilla to support submission of a series of commits";
|
||||
longDescription = ''
|
||||
moz-phab is a custom command-line tool, which communicates to
|
||||
Phabricator’s API, providing several conveniences, including support for
|
||||
submitting series of commits.
|
||||
'';
|
||||
homepage = "https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html";
|
||||
license = licenses.mpl20;
|
||||
maintainers = [ maintainers.kvark ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
@@ -22,18 +22,21 @@ let
|
||||
});
|
||||
werkzeug = self.callPackage ../../../development/python-modules/werkzeug/1.nix { };
|
||||
flask = self.callPackage ../../../development/python-modules/flask/1.nix { };
|
||||
sqlsoup = super.sqlsoup.overrideAttrs ({ meta ? {}, ... }: {
|
||||
meta = meta // { broken = false; };
|
||||
});
|
||||
};
|
||||
};
|
||||
in
|
||||
python3'.pkgs.buildPythonPackage rec {
|
||||
pname = "privacyIDEA";
|
||||
version = "3.6.2";
|
||||
version = "3.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-kv6XqsbGkaGEhfNxSOjCe6JbFOJnuqwM8CR/J9lJjks=";
|
||||
sha256 = "sha256-SsOEmbyEAKU3pdzsyqi5SwDgJMGEAzyCywoio9iFQAA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -13,18 +13,19 @@
|
||||
, pcre
|
||||
, SDL2
|
||||
, AppKit
|
||||
, zip
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lagrange";
|
||||
version = "1.7.3";
|
||||
version = "1.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "skyjake";
|
||||
repo = "lagrange";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-peBdmz/aucrKO5Vsj8WkHkpGpLm4inQHee133Zph3MM=";
|
||||
sha256 = "sha256-T4LZcdQHqykcv1HnTHMt5LE/1gwKPjN3f0ZmqSCID/A=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -32,18 +33,13 @@ stdenv.mkDerivation rec {
|
||||
rm -r lib/fribidi lib/harfbuzz
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
nativeBuildInputs = [ cmake pkg-config zip ];
|
||||
|
||||
buildInputs = [ fribidi harfbuzz libunistring libwebp mpg123 openssl pcre SDL2 zlib ]
|
||||
++ lib.optional stdenv.isDarwin AppKit;
|
||||
|
||||
hardeningDisable = lib.optional (!stdenv.cc.isClang) "format";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DENABLE_HARFBUZZ_MINIMAL:BOOL=OFF"
|
||||
"-DENABLE_FRIBIDI_BUILD:BOOL=OFF"
|
||||
];
|
||||
|
||||
installPhase = lib.optionalString stdenv.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
mv Lagrange.app $out/Applications
|
||||
|
||||
@@ -9,8 +9,10 @@ GEM
|
||||
zeitwerk (~> 2.3)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
cgi (0.3.1)
|
||||
colorize (0.8.1)
|
||||
concurrent-ruby (1.1.9)
|
||||
date (3.2.2)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
ejson (1.3.0)
|
||||
@@ -61,10 +63,12 @@ GEM
|
||||
multi_json
|
||||
to_regexp (~> 0.2.1)
|
||||
jwt (2.3.0)
|
||||
krane (2.3.2)
|
||||
krane (2.3.4)
|
||||
activesupport (>= 5.0)
|
||||
cgi
|
||||
colorize (~> 0.8)
|
||||
concurrent-ruby (~> 1.1)
|
||||
date
|
||||
ejson (~> 1.0)
|
||||
googleauth (~> 0.8)
|
||||
jsonpath (~> 0.9.6)
|
||||
|
||||
@@ -21,6 +21,16 @@
|
||||
};
|
||||
version = "2.8.0";
|
||||
};
|
||||
cgi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vy8g58ns18x3dl566wg5rp4hymlx9584ddf75isdyig0yxjl0sn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.1";
|
||||
};
|
||||
colorize = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
@@ -41,6 +51,16 @@
|
||||
};
|
||||
version = "1.1.9";
|
||||
};
|
||||
date = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0j1ghv5lqpn8jdvvci2fqvl30j4x31hhgzzc0mj54cga1sgh97n7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.2";
|
||||
};
|
||||
domain_name = {
|
||||
dependencies = ["unf"];
|
||||
groups = ["default"];
|
||||
@@ -271,15 +291,15 @@
|
||||
version = "2.3.0";
|
||||
};
|
||||
krane = {
|
||||
dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
|
||||
dependencies = ["activesupport" "cgi" "colorize" "concurrent-ruby" "date" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0x908645i92w012xglc07lb6k2irn1zpzwgn1n99h2x54qk1pz4v";
|
||||
sha256 = "07pij3z7kz7n0nvf8xwcaackck8wyjwldjva7215k2dm8csdzaih";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.2";
|
||||
version = "2.3.4";
|
||||
};
|
||||
kubeclient = {
|
||||
dependencies = ["http" "recursive-open-struct" "rest-client"];
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "5.8.4.210";
|
||||
version = "5.8.6.739";
|
||||
srcs = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
|
||||
sha256 = "1qjr35wg1jk6a6c958s0hbgqqczq789iim77s02yqpy5kyjbnn1n";
|
||||
sha256 = "12gzdfxf6xy558smsfazvjj4g1rnaiw7l2lznzlh2qazyaq6f3mq";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ncgopher";
|
||||
version = "0.2.0";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jansc";
|
||||
repo = "ncgopher";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Yny5zZe5x7/pWda839HcFkHFuL/jl1Q7ykTZzKy871I=";
|
||||
sha256 = "sha256-1tiijW3q/8zS9437G9gJDzBtxqVE3QUxgw74P7rcv98=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-C4V1WsAUFtr+N64zyBk1V0E8gTM/U54q03J6Nj8ReLk=";
|
||||
cargoSha256 = "sha256-LA8LjY8oZslGFQhKR8fJ2heYxSBqUnmeejXKRvZXjIs=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
|
||||
@@ -40,11 +40,12 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
pytestFlagsArray = [
|
||||
"tests"
|
||||
# test_string__month_day_hour_minute_second fails on darwin
|
||||
"--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
|
||||
# TestScrollBarWithScrollable.test_wrapping_bug fails
|
||||
"--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug"
|
||||
# https://github.com/rndusr/stig/issues/214
|
||||
"--deselect=tests/completion_test/classes_test.py::TestCandidates::test_candidates_are_sorted_case_insensitively"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
|
||||
"--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py"
|
||||
"--deselect=tests/client_test/aiotransmission_test/rpc_test.py"
|
||||
];
|
||||
|
||||
@@ -49,11 +49,11 @@
|
||||
md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
|
||||
}
|
||||
{
|
||||
name = "bzip2-1.0.6.tar.gz";
|
||||
url = "https://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
|
||||
sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
|
||||
md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
|
||||
md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
|
||||
name = "bzip2-1.0.8.tar.gz";
|
||||
url = "https://dev-www.libreoffice.org/src/bzip2-1.0.8.tar.gz";
|
||||
sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269";
|
||||
md5 = "";
|
||||
md5name = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269-bzip2-1.0.8.tar.gz";
|
||||
}
|
||||
{
|
||||
name = "cairo-1.16.0.tar.xz";
|
||||
@@ -112,11 +112,11 @@
|
||||
md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
|
||||
}
|
||||
{
|
||||
name = "curl-7.78.0.tar.xz";
|
||||
url = "https://dev-www.libreoffice.org/src/curl-7.78.0.tar.xz";
|
||||
sha256 = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5";
|
||||
name = "curl-7.79.1.tar.xz";
|
||||
url = "https://dev-www.libreoffice.org/src/curl-7.79.1.tar.xz";
|
||||
sha256 = "0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689";
|
||||
md5 = "";
|
||||
md5name = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5-curl-7.78.0.tar.xz";
|
||||
md5name = "0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689-curl-7.79.1.tar.xz";
|
||||
}
|
||||
{
|
||||
name = "libe-book-0.1.3.tar.xz";
|
||||
@@ -665,11 +665,11 @@
|
||||
md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
|
||||
}
|
||||
{
|
||||
name = "openldap-2.4.45.tgz";
|
||||
url = "https://dev-www.libreoffice.org/src/openldap-2.4.45.tgz";
|
||||
sha256 = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824";
|
||||
name = "openldap-2.4.59.tgz";
|
||||
url = "https://dev-www.libreoffice.org/src/openldap-2.4.59.tgz";
|
||||
sha256 = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34";
|
||||
md5 = "";
|
||||
md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
|
||||
md5name = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34-openldap-2.4.59.tgz";
|
||||
}
|
||||
{
|
||||
name = "openssl-1.1.1l.tar.gz";
|
||||
@@ -728,11 +728,11 @@
|
||||
md5name = "6e2fcef66ec8c44625f94292ccf8af9f1d918b410d5aa69c274ce67387967b30-poppler-data-0.4.10.tar.gz";
|
||||
}
|
||||
{
|
||||
name = "postgresql-13.1.tar.bz2";
|
||||
url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
|
||||
sha256 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f";
|
||||
name = "postgresql-13.5.tar.bz2";
|
||||
url = "https://dev-www.libreoffice.org/src/postgresql-13.5.tar.bz2";
|
||||
sha256 = "9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3";
|
||||
md5 = "";
|
||||
md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
|
||||
md5name = "9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3-postgresql-13.5.tar.bz2";
|
||||
}
|
||||
{
|
||||
name = "Python-3.8.10.tar.xz";
|
||||
|
||||
@@ -8,7 +8,7 @@ rec {
|
||||
|
||||
major = "7";
|
||||
minor = "2";
|
||||
patch = "2";
|
||||
patch = "3";
|
||||
tweak = "2";
|
||||
|
||||
subdir = "${major}.${minor}.${patch}";
|
||||
@@ -17,13 +17,13 @@ rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
||||
sha256 = "0w9bn3jhrhaj80qbbs8wp3q5yc0rrpwvqj3abgrllg4clk5c6fw1";
|
||||
sha256 = "sha256-VslzdJVtmMjvzW1YdxwJUMimQe2E/WTbZjgohMTDtFE=";
|
||||
};
|
||||
|
||||
# FIXME rename
|
||||
translations = fetchSrc {
|
||||
name = "translations";
|
||||
sha256 = "1rhwrax5fxgdvizv74npysam5i67669myysldiplqiah5np672lq";
|
||||
sha256 = "sha256-B/UVlPyzL7M3PpQwS63huRtti1VR+OaI2nd+T1IESOw=";
|
||||
};
|
||||
|
||||
# the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
|
||||
@@ -31,6 +31,6 @@ rec {
|
||||
|
||||
help = fetchSrc {
|
||||
name = "help";
|
||||
sha256 = "1hn56irlkk2ng7wzhiv8alpjcnf7xf95n3syzlbnmcj177kpg883";
|
||||
sha256 = "sha256-CH4URClK/lq0nqN6LHjAVcKjkADol5AX3WuyAl0srnk=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, stdenv, fetchurl, zlib, htslib, perl, ncurses ? null }:
|
||||
{ lib, stdenv, fetchurl, fetchpatch, zlib, htslib, perl, ncurses ? null }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "samtools";
|
||||
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "sha256-YWyi4FHMgAmh6cAc/Yx8r4twkW3f9m87dpFAeUZfjGA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull upstream patch for ncurses-6.3 support
|
||||
(fetchpatch {
|
||||
name = "ncurses-6.3.patch";
|
||||
url = "https://github.com/samtools/samtools/commit/396ef20eb0854d6b223c3223b60bb7efe42301f7.patch";
|
||||
sha256 = "sha256-p0l9ymXK9nqL2w8EytbW+qeaI7dD86IQgIVxacBj838=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
buildInputs = [ zlib ncurses htslib ];
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "iterm2";
|
||||
version = "3.4.13";
|
||||
version = "3.4.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gnachman";
|
||||
repo = "iTerm2";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-GOUdXBQCvM0oJ2/3zgKqDpfyCkHNwd1Qdopg5Mpyekg=";
|
||||
sha256 = "sha256-sDCnBO7xDpecu2cSjpHwync2DVsj9EKUmgpqEVLtxRM=";
|
||||
};
|
||||
|
||||
patches = [ ./disable_updates.patch ];
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "glitter";
|
||||
version = "1.5.6";
|
||||
version = "1.5.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "milo123459";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-RP/8E2wqEFArWrZ1nfDhTKt2Ak1bl6PhalaHcQobfTk=";
|
||||
sha256 = "sha256-0hKwGZingOa4nB9VTErbOTSBLc4pcxDUnK5lltVZiYk=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-6OGkcTGKCMgxMFDJ625NeVmKjRRwiRkQdE+oXRN3FHw=";
|
||||
cargoSha256 = "sha256-08heeRIGzPmORh8KTyBx9GPfOZw2RR85PjkGvbaGA50=";
|
||||
|
||||
# tests require it to be in a git repository
|
||||
preCheck = ''
|
||||
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "pijul";
|
||||
version = "1.0.0-alpha.55";
|
||||
version = "1.0.0-alpha.56";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit version pname;
|
||||
sha256 = "sha256-1nnn0cdDe+WOetGtRe7dMEyuCcbfRHdJWFxQ4bTXebQ=";
|
||||
sha256 = "zV4F4dbjJ58yGiupUwj5Z0HrKR78Mzch8Zs98YfxSTQ=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-j9xf97qPdhtakIwhAql0/Go5fPxlyWKAVLk5CMBfAbs=";
|
||||
cargoSha256 = "JQGBTCNu9U2Kq6tc7VT07LEbzLW+jdVWrK5e2qjzGRA=";
|
||||
|
||||
doCheck = false;
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
@@ -19,11 +19,16 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
postPatch = ''
|
||||
sed -i -e s@/usr/local@$out@ \
|
||||
-e s@/usr/lib@$out/lib@ \
|
||||
-e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
|
||||
-e /ldconfig/d Makefile modules/*/Makefile vwm.h
|
||||
|
||||
# Fix ncurses-6.3 support:
|
||||
substituteInPlace vwm_bkgd.c --replace \
|
||||
'mvwprintw(window,height-1,width-(strlen(version_str)),version_str);' \
|
||||
'mvwprintw(window,height-1,width-(strlen(version_str)),"%s", version_str);'
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
|
||||
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||
|
||||
preInstall = ''
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -d ${placeholder "out"}/bin
|
||||
runHook postInstall
|
||||
|
||||
@@ -81,6 +81,8 @@ let
|
||||
else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
|
||||
else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1"
|
||||
else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1"
|
||||
# `ld-linux-riscv{32,64}-<abi>.so.1`
|
||||
else if targetPlatform.isRiscV then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1"
|
||||
else if targetPlatform.isDarwin then "/usr/lib/dyld"
|
||||
else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1"
|
||||
else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, fetchzip }:
|
||||
|
||||
let
|
||||
version = "5.2";
|
||||
version = "6";
|
||||
in fetchzip {
|
||||
name = "fira-code-${version}";
|
||||
|
||||
@@ -13,7 +13,7 @@ in fetchzip {
|
||||
unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
|
||||
'';
|
||||
|
||||
sha256 = "1wbfjgvr9m5azl5w49y0hpqzgcraw6spd1wnxgxlzfx57x6gcw0k";
|
||||
sha256 = "h2Q63rT26SxXeZ76CRCcFg+NfDAc0IgYaYD2ok09Jh4=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/tonsky/FiraCode";
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bulky";
|
||||
version = "1.7";
|
||||
version = "1.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "bulky";
|
||||
rev = version;
|
||||
sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
|
||||
hash = "sha256-OCBFhlnEXZROp47KDiy7Y6l4GDVCCP+i1IFYQa7esyg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -55,6 +55,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://github.com/linuxmint/bulky";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.mkg20001 ];
|
||||
maintainers = teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -50,23 +50,28 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-common";
|
||||
version = "4.8.6";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "cinnamon";
|
||||
rev = version;
|
||||
hash = "sha256-4DMXQYH1/RjLhgrn55I7Vkk6+gGsR+OVmiwxVHUIyro=";
|
||||
hash = "sha256-B2Du2zis0xWeeyh3kSyz1doWImk9Fuk4qQ8HNZZdqdw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./use-sane-install-dir.patch
|
||||
./libdir.patch
|
||||
|
||||
(fetchpatch {
|
||||
url = "https://github.com/linuxmint/cinnamon/commit/77ed66050f7df889fcb7a10b702c7b8bcdeaa130.patch";
|
||||
sha256 = "sha256-OegLxz6Xr/nxVwVOAd2oOY62ohZ3r6uYn1+YED5EBHQ=";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# TODO: review if we really need this all
|
||||
(python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro ]))
|
||||
(python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro requests ]))
|
||||
atk
|
||||
cacert
|
||||
cinnamon-control-center
|
||||
|
||||
@@ -29,17 +29,18 @@
|
||||
, meson
|
||||
, ninja
|
||||
, cinnamon-translations
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-control-center";
|
||||
version = "4.8.2";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-vALThDY0uN9bV7b1fga3MK7b2/l5uL33+B2x6oSLPRE=";
|
||||
hash = "sha256-j7+2uLcHr7bO7i8OGqkw3ifawZULNyihhJ+h2D5gx/k=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@@ -74,6 +75,8 @@ stdenv.mkDerivation rec {
|
||||
sed 's|TZ_DIR "/usr/share/zoneinfo/"|TZ_DIR "${tzdata}/share/zoneinfo/"|g' -i ./panels/datetime/test-timezone.c
|
||||
sed 's|TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"|TZ_DATA_FILE "${tzdata}/share/zoneinfo/zone.tab"|g' -i ./panels/datetime/tz.h
|
||||
sed 's|"/usr/share/i18n/locales/"|"${glibc}/share/i18n/locales/"|g' -i panels/datetime/test-endianess.c
|
||||
|
||||
patchShebangs meson_install_schemas.py
|
||||
'';
|
||||
|
||||
# it needs to have access to that file, otherwise we can't run tests after build
|
||||
@@ -103,6 +106,7 @@ stdenv.mkDerivation rec {
|
||||
ninja
|
||||
wrapGAppsHook
|
||||
gettext
|
||||
python3
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-desktop";
|
||||
version = "4.8.1";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-FLruY1lxzB3iJ/So3jSjrbv9e8VoN/0+U2YDXju/u3E=";
|
||||
hash = "sha256-gOlSmcHjBjnLdDpgC5mZ4M3eUBTG3BuET6Kr/Xby14A=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-menus";
|
||||
version = "4.8.2";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-9VSrqCjC8U3js1gqjl5QFctWYECATxN+AdfMdHLxYUY=";
|
||||
hash = "sha256-ioluv/GdWCNGP2jQqsyEbHncCFm8iu69yR8QVKQTJk8=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-screensaver";
|
||||
version = "4.8.1";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-gvSGxSYKnRqJhj2unRYRHp6qGw/O9SxKPzhw5xjCSSQ=";
|
||||
hash = "sha256-weQ5sw5SY89JFIxamCeLiSLy8xCXGg0Yxj/5Ca5r+6o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -21,20 +21,19 @@
|
||||
, xapps
|
||||
, xmlto
|
||||
, xorg
|
||||
, cmake
|
||||
, libexecinfo
|
||||
, pango
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-session";
|
||||
version = "4.8.0";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-lrwR8VSdPzHoc9MeBEQPbVfWNhPZDJ2wYizKSVpobmk=";
|
||||
hash = "sha256-E5ascwLnpa5NSBAPo9dXRhoraUntzDPHVV32uDU4U8k=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -85,7 +84,6 @@ stdenv.mkDerivation rec {
|
||||
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
|
||||
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
|
||||
"-Dgconf=false"
|
||||
"-DENABLE_IPV6=true"
|
||||
# use locales from cinnamon-translations
|
||||
"--localedir=${cinnamon-translations}/share/locale"
|
||||
];
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
, wrapGAppsHook
|
||||
, pkg-config
|
||||
, pulseaudio
|
||||
, lib, stdenv
|
||||
, lib
|
||||
, stdenv
|
||||
, systemd
|
||||
, upower
|
||||
, dconf
|
||||
@@ -35,7 +36,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-settings-daemon";
|
||||
version = "4.8.5";
|
||||
version = "5.2.0";
|
||||
|
||||
/* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
|
||||
#include "csd-power-proxy.h"
|
||||
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-PAWVTjGFs8yKXgNQ2ucDnEDS+n7bp2n3lhGl9gHXfdQ=";
|
||||
hash = "sha256-6omif4UxMrXWxL+R9lQ8ogxotW+3E9Kp99toH3PJtaU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -121,6 +122,6 @@ stdenv.mkDerivation rec {
|
||||
description = "The settings daemon for the Cinnamon desktop";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.mkg20001 ];
|
||||
maintainers = teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-translations";
|
||||
version = "5.0.0";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-qBLg0z0ZoS7clclKsIxMG6378Q1iv1NnhS9cz3f4cEc=";
|
||||
hash = "sha256-t3PydmS2+LU++2NcosgMr9KTXW0Qy1Re9+YcS3KMDi8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -25,23 +25,24 @@
|
||||
, makeWrapper
|
||||
, which
|
||||
, libxml2
|
||||
, gtk4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cjs";
|
||||
version = "4.8.2";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "cjs";
|
||||
rev = version;
|
||||
hash = "sha256-6+zlWL0DmyP+RFp1ECA4XGbgYUlsMqqyTd6z46w99Ug=";
|
||||
hash = "sha256-06sTk513qVMdznSHJzzB3XIPTcfjgxTB2o+ALqwPpHM=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson # ADDING cmake breaks the build, ignore meson warning
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
makeWrapper
|
||||
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
gobject-introspection
|
||||
cairo
|
||||
readline
|
||||
|
||||
@@ -30,7 +30,9 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||
mint-x-icons = callPackage ./mint-x-icons { };
|
||||
mint-y-icons = callPackage ./mint-y-icons { };
|
||||
muffin = callPackage ./muffin { };
|
||||
pix = callPackage ./pix { };
|
||||
xapps = callPackage ./xapps { };
|
||||
warpinator = callPackage ./warpinator { };
|
||||
xreader = callPackage ./xreader { };
|
||||
xviewer = callPackage ./xviewer { };
|
||||
})
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, glib
|
||||
, nixos-artwork
|
||||
@@ -6,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mint-artwork";
|
||||
version = "1.4.3";
|
||||
version = "1.5.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz";
|
||||
sha256 = "126asxpg722qfg2wkwcr7bhsplchq3jn6bkdwf1scpc5za8dd62j";
|
||||
hash = "sha256-ZRJK1fzIF36BdUlVhLwdFdfgQvN2ashzjgpCxoOIbK8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -36,4 +37,12 @@ stdenv.mkDerivation rec {
|
||||
mv etc $out/etc
|
||||
mv usr/share $out/share
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/linuxmint/mint-artwork";
|
||||
description = "Artwork for the cinnamon desktop";
|
||||
license = licenses.gpl3; # from debian/copyright
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mint-themes";
|
||||
version = "1.8.6";
|
||||
version = "1.8.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
# commit is named 1.8.6, tags=404
|
||||
rev = "fa0b9530f6e68c390aecd622b229072fcd08f05f";
|
||||
sha256 = "0pgv5hglsscip5s7nv0mn301vkn0j6wp4rv34vr941yai1jfk2wb";
|
||||
# they don't exactly do tags, it's just a named commit
|
||||
rev = "a833fba6917043bf410dee4364c9a36af1ce4c83";
|
||||
hash = "sha256-8abjjD0XoApvqB8SNlWsqIEp7ozgiERGS0kWglw2DWA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mint-x-icons";
|
||||
version = "1.5.5";
|
||||
version = "1.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
# commit is named 1.5.5, tags=404
|
||||
rev = "ecfbeb62bba41e85a61099df467c4700ac63c1e0";
|
||||
sha256 = "1yxm7h7giag5hmymgxsg16vc0rhxb2vn3piaksc463mic4vwfa3i";
|
||||
# they don't exactly do tags, it's just a named commit
|
||||
rev = "286eb4acdfc3e3c77572dfd0cd70ffd4208d3a35";
|
||||
hash = "sha256-mZkCEBC1O2mW8rM1kpOWdC5CwIeafyBS95cMY6x1yco=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mint-y-icons";
|
||||
version = "1.4.3";
|
||||
version = "1.5.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
# commit is named 1.4.3, tags=404
|
||||
rev = "c997af402d425889f2e4277966eebe473f7451f7";
|
||||
sha256 = "0yfas949xm85a28vgjqm9ym3bhhynrq256w9vfs8aiqq9nbm18mf";
|
||||
# they don't exactly do tags, it's just a named commit
|
||||
rev = "9489bd161e9503d071227dd36057386a34cfc0a3";
|
||||
hash = "sha256-53yTCWNSJjCpVvrxLfsiaCPNDEZWxJgGVAmVNMNql2M=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "muffin";
|
||||
version = "4.8.1";
|
||||
version = "5.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-zRW+hnoaKKTe4zIJpY1D0Ahc8k5zRbvYBF5Y4vZ6Rbs=";
|
||||
hash = "sha256-WAp0HbfRtwsPjJX1kPBqUStqLaudQPZ8E+h4jmggmw8=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nemo";
|
||||
version = "5.0.3";
|
||||
version = "5.2.0";
|
||||
|
||||
# TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
|
||||
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-Ah1Rp/o4LPdYm+wj2W5ljjMkCI3PgoAHrlM8yEQP77o=";
|
||||
hash = "sha256-ehcqRlI1d/KWNas36dz+hb7KU1H8wtQHTpg2fz1XdXU=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, cinnamon-desktop
|
||||
, file
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gtk-doc
|
||||
, gtk3
|
||||
, intltool
|
||||
, itstool
|
||||
, libtool
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, shared-mime-info
|
||||
, wrapGAppsHook
|
||||
, xapps
|
||||
, yelp-tools
|
||||
, libsecret
|
||||
, webkitgtk
|
||||
, libwebp
|
||||
, librsvg
|
||||
, json-glib
|
||||
, gnome
|
||||
, clutter
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pix";
|
||||
version = "2.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "qBF5lc7ZNwuTr6x4c4pJA6a7oXqOYsYA1lpTmQkylT0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapGAppsHook
|
||||
autoreconfHook
|
||||
cinnamon-desktop
|
||||
gdk-pixbuf
|
||||
gnome.gnome-common
|
||||
gobject-introspection
|
||||
gtk-doc
|
||||
intltool
|
||||
itstool
|
||||
libtool
|
||||
pkg-config
|
||||
yelp-tools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
xapps
|
||||
libsecret
|
||||
webkitgtk
|
||||
libwebp
|
||||
librsvg
|
||||
json-glib
|
||||
clutter
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A generic image viewer from Linux Mint";
|
||||
homepage = "https://github.com/linuxmint/pix";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "warpinator";
|
||||
version = "1.0.8";
|
||||
version = "1.2.5";
|
||||
|
||||
format = "other";
|
||||
|
||||
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0n1b50j2w76qnhfj5yg5q2j7fgxr9gbmzpazmbml4q41h8ybcmxm";
|
||||
hash = "sha256-pTLM4CrkBLEZS9IdM9IBSGH0WPOj1rlAgvWLOUy6MxY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -54,6 +54,10 @@ python3.pkgs.buildPythonApplication rec {
|
||||
netifaces
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dbundle-zeroconf=false"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x install-scripts/*
|
||||
patchShebangs .
|
||||
@@ -73,6 +77,6 @@ python3.pkgs.buildPythonApplication rec {
|
||||
description = "Share files across the LAN";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.mkg20001 ];
|
||||
maintainers = teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xapps";
|
||||
version = "2.2.3";
|
||||
version = "2.2.5";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-hrSyoHA3XQXQb9N3YJ+NNfBjJNOuUhXhKEimh/n73MM=";
|
||||
hash = "sha256-Ev+gTl9jY1HLbXKnCsVVSsY8ZrHyzsIkp+JTaXOTm6I=";
|
||||
};
|
||||
|
||||
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, intltool
|
||||
, shared-mime-info
|
||||
, gtk3
|
||||
, wrapGAppsHook
|
||||
, libxml2
|
||||
, xapps
|
||||
, meson
|
||||
, pkg-config
|
||||
, cairo
|
||||
, libsecret
|
||||
, poppler
|
||||
, libspectre
|
||||
, libgxps
|
||||
, webkitgtk
|
||||
, nodePackages
|
||||
, ninja
|
||||
, gsettings-desktop-schemas
|
||||
, djvulibre
|
||||
, backends ? [ "pdf" "ps" /* "dvi" "t1lib" */ "djvu" "tiff" "pixbuf" "comics" "xps" "epub" ]
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xreader";
|
||||
version = "3.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "vyZhKsuASbkc6IBtfbhTIHOQ0XYNFaCVua+jS4B5LWk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
shared-mime-info
|
||||
wrapGAppsHook
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gobject-introspection
|
||||
intltool
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dmathjax-directory=${nodePackages.mathjax}"
|
||||
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
|
||||
] ++ (map (x: "-D${x}=true") backends);
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
xapps
|
||||
cairo
|
||||
libxml2
|
||||
libsecret
|
||||
poppler
|
||||
libspectre
|
||||
libgxps
|
||||
webkitgtk
|
||||
nodePackages.mathjax
|
||||
djvulibre
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A document viewer capable of displaying multiple and single page
|
||||
document formats like PDF and Postscript";
|
||||
homepage = "https://github.com/linuxmint/xreader";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
@@ -65,6 +65,6 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://github.com/linuxmint/xviewer";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ tu-maurice ];
|
||||
maintainers = with maintainers; [ tu-maurice ] ++ teams.cinnamon.members;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
mkXfceDerivation {
|
||||
category = "apps";
|
||||
pname = "mousepad";
|
||||
version = "0.5.7";
|
||||
version = "0.5.8";
|
||||
odd-unstable = false;
|
||||
|
||||
sha256 = "sha256-VLPzzM9dl+HAPI+Qn2QTjrKfRgngsExlPFRsdmsNcSM=";
|
||||
sha256 = "sha256-Q5coRO2Swo0LpB+pzi+fxrwNyhcDbQXLuQtepPlCyxY=";
|
||||
|
||||
nativeBuildInputs = [ gobject-introspection ];
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
mkXfceDerivation {
|
||||
category = "apps";
|
||||
pname = "ristretto";
|
||||
version = "0.12.0";
|
||||
version = "0.12.1";
|
||||
|
||||
sha256 = "sha256-vf9OczDHG6iAd10BgbwfFG7uHBn3JnNT6AB/WGk40C8=";
|
||||
sha256 = "sha256-Kwtema8mydSPQadeaw/OTnGCHUNuJpvHbf7l4YtICYE=";
|
||||
|
||||
buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
mkXfceDerivation {
|
||||
category = "panel-plugins";
|
||||
pname = "xfce4-whiskermenu-plugin";
|
||||
version = "2.6.2";
|
||||
version = "2.7.0";
|
||||
rev-prefix = "v";
|
||||
odd-unstable = false;
|
||||
sha256 = "sha256-Tg6jK2yvODvNykTRePmHWu3safgyKAd3tCMWGXuMhPM=";
|
||||
sha256 = "sha256-wrFp+YMFfi1UZKQGkHnojAh+l170xW56ls9UJZXmzOo=";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
, libuuid
|
||||
, python3
|
||||
, bc
|
||||
, clang_9
|
||||
, llvmPackages_9
|
||||
, overrideCC
|
||||
, lib
|
||||
}:
|
||||
|
||||
@@ -24,7 +22,7 @@ else
|
||||
throw "Unsupported architecture";
|
||||
|
||||
buildStdenv = if stdenv.isDarwin then
|
||||
overrideCC clangStdenv [ clang_9 llvmPackages_9.llvm llvmPackages_9.lld ]
|
||||
llvmPackages_9.stdenv
|
||||
else
|
||||
stdenv;
|
||||
|
||||
|
||||
@@ -16,12 +16,13 @@ let compcert = mkCoqDerivation rec {
|
||||
|
||||
defaultVersion = with versions; switch coq.version [
|
||||
{ case = range "8.8" "8.11"; out = "3.8"; }
|
||||
{ case = range "8.12" "8.13"; out = "3.9"; }
|
||||
{ case = range "8.12" "8.14"; out = "3.10"; }
|
||||
] null;
|
||||
|
||||
release = {
|
||||
"3.8".sha256 = "1gzlyxvw64ca12qql3wnq3bidcx9ygsklv9grjma3ib4hvg7vnr7";
|
||||
"3.9".sha256 = "1srcz2dqrvmbvv5cl66r34zqkm0hsbryk7gd3i9xx4slahc9zvdb";
|
||||
"3.10".sha256 = "sha256:19rmx8r8v46101ij5myfrz60arqjy7q3ra3fb8mxqqi3c8c4l4j6";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -5,13 +5,19 @@ with lib; mkCoqDerivation {
|
||||
pname = "coqhammer";
|
||||
owner = "lukaszcz";
|
||||
defaultVersion = with versions; switch coq.coq-version [
|
||||
{ case = "8.13"; out = "1.3.1-coq8.13"; }
|
||||
{ case = "8.12"; out = "1.3.1-coq8.12"; }
|
||||
{ case = "8.11"; out = "1.3.1-coq8.11"; }
|
||||
{ case = "8.10"; out = "1.3.1-coq8.10"; }
|
||||
{ case = "8.14"; out = "1.3.2-coq8.14"; }
|
||||
{ case = "8.13"; out = "1.3.2-coq8.13"; }
|
||||
{ case = "8.12"; out = "1.3.2-coq8.12"; }
|
||||
{ case = "8.11"; out = "1.3.2-coq8.11"; }
|
||||
{ case = "8.10"; out = "1.3.2-coq8.10"; }
|
||||
{ case = "8.9"; out = "1.1.1-coq8.9"; }
|
||||
{ case = "8.8"; out = "1.1-coq8.8"; }
|
||||
] null;
|
||||
release."1.3.2-coq8.14".sha256 = "sha256:1pvs4p95lr31jb86f33p2q9v8zq3xbci1fk6s6a2g2snfxng1574";
|
||||
release."1.3.2-coq8.13".sha256 = "sha256:0krsm8qj9lgfbggxv2jhkbk3vy2cz63qypnarnl31fdmpykchi4b";
|
||||
release."1.3.2-coq8.12".sha256 = "sha256:08mnr13lrdnpims6kf8pk6axf4s8qqs0a71hzg3frkx21d6nawhh";
|
||||
release."1.3.2-coq8.11".sha256 = "sha256:1z54lmr180rdkv549f0dygxlmamsx3fygvsm0d7rz9j88f2z8kc5";
|
||||
release."1.3.2-coq8.10".sha256 = "sha256:08d63ckiwjx07hy5smg5c7a6b3m3a8ra4ljk3z6597633dx85cd0";
|
||||
release."1.3.1-coq8.13".sha256 = "033j6saw24anb1lqbgsg1zynxi2rnxq7pgqwh11k8r8y3xisz78w";
|
||||
release."1.3.1-coq8.12".sha256 = "0xy3vy4rv8w5ydwb9nq8y4dcimd91yr0hak2j4kn02svssg1kv1y";
|
||||
release."1.3.1-coq8.11".sha256 = "0i9nlcayq0ac95vc09d1w8sd221gdjs0g215n086qscqjwimnz8j";
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -p python3 dotnet-sdk_3 -i bash
|
||||
|
||||
# Run this script to generate deps.nix
|
||||
# ./create_deps.sh /path/to/microsoft/python/language/server/source/checkout
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
if [ -d "$1" ]; then
|
||||
CHECKOUT_PATH="$1"
|
||||
else
|
||||
echo "First argument must be a directory, the path to the Microsoft Python Language Server source checkout"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Generate lockfiles in source checkout
|
||||
cd "$CHECKOUT_PATH/src"
|
||||
dotnet nuget locals all --clear
|
||||
dotnet restore -v normal --no-cache PLS.sln --use-lock-file -r linux-x64
|
||||
|
||||
# Use the lockfiles to make a file with two columns: name and version number
|
||||
# for all possible package dependencies
|
||||
cd "$SCRIPTDIR"
|
||||
echo "" > all_versions.txt
|
||||
for lockfile in $(find "$CHECKOUT_PATH" -name packages.lock.json); do
|
||||
echo "Processing lockfile $lockfile"
|
||||
python ./process_lockfile.py "$lockfile" >> all_versions.txt
|
||||
done
|
||||
# Add extra manually added packages
|
||||
cat ./manual_deps.txt >> all_versions.txt
|
||||
cat all_versions.txt | sed '/^$/d' | sort | uniq > tmp
|
||||
mv tmp all_versions.txt
|
||||
|
||||
# Retrieve sha256 hashes for each dependency and format fetchNuGet calls into deps.nix
|
||||
./format-deps.sh all_versions.txt > deps.nix
|
||||
rm all_versions.txt
|
||||
@@ -1,105 +1,39 @@
|
||||
{ lib, stdenv
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, makeWrapper
|
||||
, dotnet-sdk_3
|
||||
, buildDotnetModule
|
||||
, dotnetCorePackages
|
||||
, autoPatchelfHook
|
||||
, openssl
|
||||
, icu
|
||||
, patchelf
|
||||
, Nuget
|
||||
}:
|
||||
|
||||
let deps = import ./deps.nix { inherit fetchurl; };
|
||||
version = "2021-05-20";
|
||||
|
||||
# Build the nuget source needed for the later build all by itself
|
||||
# since it's a time-consuming step that only depends on ./deps.nix.
|
||||
# This makes it easier to experiment with the main build.
|
||||
nugetSource = stdenv.mkDerivation {
|
||||
pname = "python-language-server-nuget-deps";
|
||||
inherit version;
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [ Nuget ];
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
|
||||
mkdir -p $out/lib
|
||||
|
||||
# disable default-source so nuget does not try to download from online-repo
|
||||
nuget sources Disable -Name "nuget.org"
|
||||
# add all dependencies to the source
|
||||
for package in ${toString deps}; do
|
||||
nuget add $package -Source $out/lib
|
||||
done
|
||||
'';
|
||||
|
||||
dontInstall = true;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
buildDotnetModule rec {
|
||||
pname = "python-language-server";
|
||||
inherit version;
|
||||
version = "2021-09-08";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "python-language-server";
|
||||
rev = "86825796eae15d4d46919bc6e32f1197196ba1b3";
|
||||
sha256 = "sha256-izDE7Oil9g47Jf3eHPtW5coNixF71t9i0oYSuelakCo=";
|
||||
rev = "26ea18997f45f7d7bc5a3c5a9efc723a8dbb02fa";
|
||||
sha256 = "1m8pf9k20wy4fzv27v3bswvc8s01ag6ka2qm9nn6bgq0s0lq78mh";
|
||||
};
|
||||
|
||||
buildInputs = [dotnet-sdk_3 openssl icu];
|
||||
projectFile = "src/LanguageServer/Impl/Microsoft.Python.LanguageServer.csproj";
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
nativeBuildInputs = [
|
||||
Nuget
|
||||
makeWrapper
|
||||
patchelf
|
||||
];
|
||||
dotnet-sdk = dotnetCorePackages.sdk_3_1;
|
||||
dotnet-runtime = dotnetCorePackages.runtime_3_1;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
mkdir home
|
||||
export HOME=$(mktemp -d)
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
||||
|
||||
pushd src
|
||||
nuget sources Disable -Name "nuget.org"
|
||||
dotnet restore --source ${nugetSource}/lib -r linux-x64
|
||||
popd
|
||||
|
||||
pushd src/LanguageServer/Impl
|
||||
dotnet publish --no-restore -c Release -r linux-x64
|
||||
popd
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
cp -r output/bin/Release/linux-x64/publish $out/lib
|
||||
|
||||
mkdir $out/bin
|
||||
makeWrapper $out/lib/Microsoft.Python.LanguageServer $out/bin/python-language-server
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
buildInputs = [ stdenv.cc.cc.lib ];
|
||||
runtimeDeps = [ openssl icu ];
|
||||
|
||||
postFixup = ''
|
||||
patchelf --set-rpath ${icu}/lib $out/lib/System.Globalization.Native.so
|
||||
patchelf --set-rpath ${openssl.out}/lib $out/lib/System.Security.Cryptography.Native.OpenSsl.so
|
||||
mv $out/bin/Microsoft.Python.LanguageServer $out/bin/python-language-server
|
||||
'';
|
||||
|
||||
# If we don't disable stripping, the executable fails to start with an error about being unable
|
||||
# to find some of the packaged DLLs.
|
||||
dontStrip = true;
|
||||
passthru.updateScript = ./updater.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Microsoft Language Server for Python";
|
||||
|
||||
+120
-1230
File diff suppressed because it is too large
Load Diff
@@ -1,40 +0,0 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -p gawk nix -i bash
|
||||
|
||||
# Retrieve sha256 hashes for each dependency in and format fetchNuGet calls
|
||||
echo "" > deps.nix
|
||||
urlbase="https://www.nuget.org/api/v2/package"
|
||||
cat << EOL
|
||||
# This file is autogenerated.
|
||||
# To regenerate, run "create_deps.sh \$PATH_TO_LANGUAGE_SERVER_CHECKOUT"
|
||||
|
||||
{ fetchurl }: let
|
||||
|
||||
fetchNuGet = { name, version, sha256 }: fetchurl {
|
||||
inherit sha256;
|
||||
url = "$urlbase/\${name}/\${version}";
|
||||
};
|
||||
|
||||
in [
|
||||
EOL
|
||||
IFS=''
|
||||
while read line; do
|
||||
name=$(echo $line | awk '{print $1}')
|
||||
version=$(echo $line | awk '{print $2}')
|
||||
sha256=$(nix-prefetch-url "$urlbase/$name/$version" 2>/dev/null)
|
||||
|
||||
if [ -n "$sha256" ]; then
|
||||
cat << EOL
|
||||
|
||||
(fetchNuGet {
|
||||
name = "$name";
|
||||
version = "$version";
|
||||
sha256 = "$sha256";
|
||||
})
|
||||
EOL
|
||||
fi
|
||||
done < $1
|
||||
cat << EOL
|
||||
|
||||
]
|
||||
EOL
|
||||
@@ -1,2 +0,0 @@
|
||||
Microsoft.AspNetCore.App.Runtime.linux-x64 3.1.21
|
||||
Microsoft.NetCore.App.Runtime.linux-x64 3.1.21
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import json
|
||||
import sys
|
||||
|
||||
|
||||
def process_section(name, section):
|
||||
packages = set()
|
||||
|
||||
if "resolved" in section:
|
||||
packages.add((name, section["resolved"]))
|
||||
|
||||
if "dependencies" in section:
|
||||
for name in section["dependencies"]:
|
||||
packages.add((name, section["dependencies"][name]))
|
||||
|
||||
return packages
|
||||
|
||||
|
||||
def main():
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
tree = json.loads(f.read())
|
||||
|
||||
packages = set()
|
||||
|
||||
topDependencies = tree["dependencies"]
|
||||
|
||||
for area in topDependencies:
|
||||
for name in topDependencies[area]:
|
||||
packages = packages.union(process_section(name, topDependencies[area][name]))
|
||||
|
||||
for (name, version) in packages:
|
||||
print("%s %s" % (name, version))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_3 nix-prefetch-git
|
||||
set -eo pipefail
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
deps_file="$(realpath ./deps.nix)"
|
||||
|
||||
nix-prefetch-git https://github.com/microsoft/python-language-server --quiet > repo_info
|
||||
new_version="$(jq -r ".date" < repo_info | cut -d"T" -f1)"
|
||||
new_hash="$(jq -r ".sha256" < repo_info)"
|
||||
new_rev="$(jq -r ".rev" < repo_info)"
|
||||
rm repo_info
|
||||
|
||||
old_rev="$(sed -nE 's/\s*rev = "(.*)".*/\1/p' ./default.nix)"
|
||||
|
||||
if [[ $new_rev == $old_rev ]]; then
|
||||
echo "Already up to date!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
pushd ../../../..
|
||||
|
||||
update-source-version python-language-server "$new_version" "$new_hash" --rev="$new_rev"
|
||||
store_src="$(nix-build -A python-language-server.src --no-out-link)"
|
||||
src="$(mktemp -d /tmp/pylang-server-src.XXX)"
|
||||
cp -rT "$store_src" "$src"
|
||||
chmod -R +w "$src"
|
||||
|
||||
pushd "$src"
|
||||
|
||||
export DOTNET_NOLOGO=1
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
mkdir ./nuget_pkgs
|
||||
dotnet restore src/LanguageServer/Impl/Microsoft.Python.LanguageServer.csproj --packages ./nuget_pkgs
|
||||
|
||||
nuget-to-nix ./nuget_pkgs > "$deps_file"
|
||||
|
||||
trap ''
|
||||
rm -r "$src"
|
||||
'' EXIT
|
||||
@@ -36,9 +36,10 @@ stdenv.mkDerivation ({
|
||||
# Some packages use the style
|
||||
# opts = -i ../../path/to/package
|
||||
# rather than the declarative pkgs attribute so we have to rewrite the path.
|
||||
postPatch = ''
|
||||
patchPhase = ''
|
||||
runHook prePatch
|
||||
sed -i ${ipkgName}.ipkg -e "/^opts/ s|-i \\.\\./|-i ${idris-with-packages}/libs/|g"
|
||||
runHook postPatch
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -235,7 +235,7 @@ let
|
||||
homepage = "https://www.gnu.org/software/octave/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ raskin doronbehar ];
|
||||
description = "Scientific Pragramming Language";
|
||||
description = "Scientific Programming Language";
|
||||
# https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
|
||||
broken = enableJIT;
|
||||
platforms = if overridePlatforms == null then
|
||||
|
||||
@@ -17,8 +17,15 @@ stdenv.mkDerivation rec {
|
||||
url = "https://git.savannah.gnu.org/cgit/gsl.git/patch/?id=9cc12d";
|
||||
sha256 = "1bmrmihi28cly9g9pq54kkix2jy59y7cd7h5fw4v1c7h5rc2qvs8";
|
||||
})
|
||||
|
||||
(fetchpatch {
|
||||
name = "fix-parallel-test.patch";
|
||||
url = "https://git.savannah.gnu.org/cgit/gsl.git/patch/?id=12654373c3b60541230921aae81f93b484ec5eaf";
|
||||
sha256 = "1flzpbsfj7gjywv6v9qvm8wpdrkbpj7shryinfdpb40y7si9njdw";
|
||||
})
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libdeltachat";
|
||||
version = "1.67.0";
|
||||
version = "1.68.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deltachat";
|
||||
repo = "deltachat-core-rust";
|
||||
rev = version;
|
||||
hash = "sha256-zb/U3JmGRqni45BOqNd+UTJzQuODx6IBBbmZWFZmSY4=";
|
||||
hash = "sha256-T49E9pGetJqO5qj014efioZtlHM9ZAxH9WzwVmk85XM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-2QGC7pCH8MWhDDVKrQ6b/EU9cuJWSZHgYSWaXYPYDiw=";
|
||||
hash = "sha256-jAL8siaMonTMYE88kK7E6RQesPahCLr082dHJovmoo0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1n2wkmvw6n80ybdwkjq8ka43z2x8mvxq49byv61b52iyz69slf7b";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Add support for ncurses-6.3. A backport of patch pending upstream
|
||||
# inclusion: https://github.com/octo/liboping/pull/61
|
||||
./ncurses-6.3.patch
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = lib.optionalString
|
||||
stdenv.cc.isGNU "-Wno-error=format-truncation";
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
A backport of https://github.com/octo/liboping/pull/61
|
||||
--- a/src/oping.c
|
||||
+++ b/src/oping.c
|
||||
@@ -1125,7 +1125,7 @@ static int update_graph_prettyping (ping_context_t *ctx, /* {{{ */
|
||||
wattron (ctx->window, COLOR_PAIR(color));
|
||||
|
||||
if (has_utf8())
|
||||
- mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, symbol);
|
||||
+ mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s", symbol);
|
||||
else
|
||||
mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, symbolc);
|
||||
|
||||
@@ -1222,7 +1222,7 @@ static int update_graph_histogram (ping_context_t *ctx) /* {{{ */
|
||||
if (counters[x] == 0)
|
||||
mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, ' ');
|
||||
else if (has_utf8 ())
|
||||
- mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2,
|
||||
+ mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s",
|
||||
hist_symbols_utf8[index]);
|
||||
else
|
||||
mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2,
|
||||
@@ -7,8 +7,18 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1jvm7wdgw6ixyhl0pcfr9lnr9g6sg6whyrs9ihjiz0agvqrgvxwc";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
postPatch = ''
|
||||
sed -i -e s@/usr/local@$out@ -e /ldconfig/d -e '/cd vdk/d' Makefile
|
||||
|
||||
# Fix pending upstream inclusion for ncurses-6.3 support:
|
||||
# https://github.com/TragicWarrior/libviper/pull/16
|
||||
# Not applied as it due to unrelated code changes in context.
|
||||
substituteInPlace viper_msgbox.c --replace \
|
||||
'mvwprintw(window,height-3,tmp,prompt);' \
|
||||
'mvwprintw(window,height-3,tmp,"%s",prompt);'
|
||||
substituteInPlace w_decorate.c --replace \
|
||||
'mvwprintw(window,0,x,title);' \
|
||||
'mvwprintw(window,0,x,"%s",title);'
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
|
||||
@@ -97,6 +97,16 @@ stdenv.mkDerivation rec {
|
||||
+ "0d4a3dd61ccb156dee556c214dbe91c04d44a717/debian/patches/gcc9-qforeach.patch";
|
||||
sha256 = "0dzn6qxrgxb75rvck9kmy5gspawdn970wsjw56026dhkih8cp3pg";
|
||||
})
|
||||
|
||||
# Pull upstream fix for gcc-11 support.
|
||||
(fetchpatch {
|
||||
name = "gcc11-ptr-cmp.patch";
|
||||
url = "https://github.com/qt/qttools/commit/7138c963f9d1258bc1b49cb4d63c3e2b7d0ccfda.patch";
|
||||
sha256 = "1a9g05r267c94qpw3ssb6k4lci200vla3vm5hri1nna6xwdsmrhc";
|
||||
# "src/" -> "tools/"
|
||||
stripLen = 2;
|
||||
extraPrefix = "tools/";
|
||||
})
|
||||
]
|
||||
++ lib.optional gtkStyle (substituteAll ({
|
||||
src = ./dlopen-gtkstyle.diff;
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, doxygen
|
||||
, numactl, rdma-core, libbfd, libiberty, perl, zlib
|
||||
, numactl, rdma-core, libbfd, libiberty, perl, zlib, symlinkJoin
|
||||
, enableCuda ? false
|
||||
, cudatoolkit
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
let
|
||||
# Needed for configure to find all libraries
|
||||
cudatoolkit' = symlinkJoin {
|
||||
inherit (cudatoolkit) name meta;
|
||||
paths = [ cudatoolkit cudatoolkit.lib ];
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "ucx";
|
||||
version = "1.11.2";
|
||||
|
||||
@@ -15,7 +24,14 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook doxygen ];
|
||||
|
||||
buildInputs = [ numactl rdma-core libbfd libiberty perl zlib ];
|
||||
buildInputs = [
|
||||
libbfd
|
||||
libiberty
|
||||
numactl
|
||||
perl
|
||||
rdma-core
|
||||
zlib
|
||||
] ++ lib.optional enableCuda cudatoolkit;
|
||||
|
||||
configureFlags = [
|
||||
"--with-rdmacm=${rdma-core}"
|
||||
@@ -23,7 +39,7 @@ stdenv.mkDerivation rec {
|
||||
"--with-rc"
|
||||
"--with-dm"
|
||||
"--with-verbs=${rdma-core}"
|
||||
];
|
||||
] ++ lib.optional enableCuda "--with-cuda=${cudatoolkit'}";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
{ lib, buildPythonPackage, fetchPypi
|
||||
, capstone}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ROPGadget";
|
||||
version = "6.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "dc61186e0114ec67ec7ce374df8fd2ddc2a7cba129a1242338e900a7483fba22";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ capstone ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
|
||||
homepage = "http://shell-storm.org/project/ROPgadget/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ bennofs ];
|
||||
};
|
||||
}
|
||||
@@ -1,31 +1,37 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, lief
|
||||
, pefile
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "autoit-ripper";
|
||||
version = "1.0.1";
|
||||
disabled = pythonOlder "3.6";
|
||||
version = "1.1.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0mbsrfa72n7y1vkm9jhwhn1z3k45jxrlgx58ia1l2bp6chnnn2zy";
|
||||
sha256 = "sha256-fluG/2XlUh3kPtYtSotrP02c7kdmem92Hy1R93SaTzk=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
lief
|
||||
pefile
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace requirements.txt --replace "lief==0.10.1" "lief>=0.10.1"
|
||||
substituteInPlace requirements.txt \
|
||||
--replace "pefile==2019.4.18" "pefile>=2019.4.18"
|
||||
'';
|
||||
|
||||
# Project has no tests
|
||||
doCheck = false;
|
||||
pythonImportsCheck = [ "autoit_ripper" ];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"autoit_ripper"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python module to extract AutoIt scripts embedded in PE binaries";
|
||||
|
||||
@@ -17,13 +17,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bellows";
|
||||
version = "0.28.0";
|
||||
version = "0.29.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zigpy";
|
||||
repo = "bellows";
|
||||
rev = version;
|
||||
sha256 = "sha256-j1vS6PDvvuJapECn0lKGuBkYwWsyzJaTZDRQPjMsuLk=";
|
||||
sha256 = "sha256-coIrI3C6Wnn8Of/IHAlvZgkcBBf9OBQt5Ir6YOXCf0c=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@@ -45,12 +46,6 @@ buildPythonPackage rec {
|
||||
asynctest
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# AssertionError: assert 65534 is None
|
||||
# https://github.com/zigpy/bellows/issues/436
|
||||
"test_startup_nwk_params"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"bellows"
|
||||
];
|
||||
|
||||
@@ -16,12 +16,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fakeredis";
|
||||
version = "1.6.1";
|
||||
version = "1.7.0";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-DQapOE+3nanyFkzpbjTrnU4upGIVBwgF6m/TwXRZC0c=";
|
||||
sha256 = "sha256-yb0S5DAzbL0+GJ+uDpHrmZl7k+dtv91u1n+jUtxoTHE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@@ -45,7 +47,9 @@ buildPythonPackage rec {
|
||||
"test/test_aioredis2.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "fakeredis" ];
|
||||
pythonImportsCheck = [
|
||||
"fakeredis"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fake implementation of Redis API";
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, setuptools-scm
|
||||
# build inputs
|
||||
, appdirs
|
||||
, click
|
||||
, diskcache
|
||||
, jinja2
|
||||
, jsonschema
|
||||
, pyyaml
|
||||
, yamllint
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "glean_parser";
|
||||
version = "4.3.1";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-wZSro1pX/50TlSfFMh71JlmXlJlONVutTDFL06tkw+s=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py --replace "pytest-runner" ""
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
appdirs
|
||||
click
|
||||
diskcache
|
||||
jinja2
|
||||
jsonschema
|
||||
pyyaml
|
||||
yamllint
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
disabledTests = [
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1741668
|
||||
"test_validate_ping"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "glean_parser" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tools for parsing the metadata for Mozilla's glean telemetry SDK";
|
||||
homepage = "https://github.com/mozilla/glean_parser";
|
||||
license = licenses.mpl20;
|
||||
maintainers = [ maintainers.kvark ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, rustPlatform
|
||||
, rustc
|
||||
, cargo
|
||||
, setuptools-rust
|
||||
# build inputs
|
||||
, cffi
|
||||
, glean-parser
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "glean-sdk";
|
||||
version = "42.2.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-X2p6KQnEB6ZHdCHGFVEoEMiI+0R2vfGqel+jFKTcx74=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix the environment for spawned process
|
||||
# https://github.com/mozilla/glean/pull/1542
|
||||
./fix-spawned-process-environment.patch
|
||||
];
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "sha256-/+rKGPYTLovgjTGL2F/pWzlUy1tY207yuJz3Xdhm1hg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustc
|
||||
cargo
|
||||
setuptools-rust
|
||||
rustPlatform.cargoSetupHook
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
cffi
|
||||
glean-parser
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "glean" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Modern cross-platform telemetry client libraries and are a part of the Glean project";
|
||||
homepage = "https://mozilla.github.io/glean/book/index.html";
|
||||
license = licenses.mpl20;
|
||||
maintainers = [ maintainers.kvark ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
diff --git a/glean-core/python/glean/_process_dispatcher.py b/glean-core/python/glean/_process_dispatcher.py
|
||||
index 33a8b12796..a39b54a917 100644
|
||||
--- a/glean-core/python/glean/_process_dispatcher.py
|
||||
+++ b/glean-core/python/glean/_process_dispatcher.py
|
||||
@@ -120,8 +120,14 @@ def dispatch(cls, func, args) -> Union[_SyncWorkWrapper, subprocess.Popen]:
|
||||
Path(".coveragerc").absolute()
|
||||
)
|
||||
|
||||
+ # Explicitly pass the contents of `sys.path` as `PYTHONPATH` to the
|
||||
+ # subprocess so that there aren't any module search path
|
||||
+ # differences.
|
||||
+ python_path = ":".join(sys.path)[1:]
|
||||
+
|
||||
p = subprocess.Popen(
|
||||
- [sys.executable, _process_dispatcher_helper.__file__, payload]
|
||||
+ [sys.executable, _process_dispatcher_helper.__file__, payload],
|
||||
+ env={"PYTHONPATH": python_path},
|
||||
)
|
||||
|
||||
cls._last_process = p
|
||||
@@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
doCheck = !stdenv.is32bit || isPy3k;
|
||||
|
||||
checkPhase = ''
|
||||
pytest -v tests -W ignore::ResourceWarning -W ignore::DeprecationWarning
|
||||
pytest -v tests -W ignore::DeprecationWarning
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "libarchive-c";
|
||||
version = "3.1";
|
||||
version = "3.2";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Changaco";
|
||||
repo = "python-${pname}";
|
||||
rev = version;
|
||||
sha256 = "1z4lqy9zlzymshzrcldsc9ipys2l7grqg4yff6ndl6dgbfb0g4jb";
|
||||
sha256 = "1kj3y9vnsc9m2hvnvgk5inawxfknz5drj3q51hqgcbq8p4dm8vli";
|
||||
};
|
||||
|
||||
LC_ALL="en_US.UTF-8";
|
||||
|
||||
@@ -12,6 +12,7 @@ buildPythonPackage rec {
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
disabledTests = [ "test_clean_confounds" ]; # https://github.com/nilearn/nilearn/issues/2608
|
||||
pytestFlagsArray = [ "nilearn" ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
joblib
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
, packaging
|
||||
, pysocks
|
||||
, pygments
|
||||
, ROPGadget
|
||||
, ropgadget
|
||||
, capstone
|
||||
, colored-traceback
|
||||
, paramiko
|
||||
@@ -55,7 +55,7 @@ buildPythonPackage rec {
|
||||
packaging
|
||||
pysocks
|
||||
pygments
|
||||
ROPGadget
|
||||
ropgadget
|
||||
capstone
|
||||
colored-traceback
|
||||
paramiko
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
, stdenv
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, isPy27
|
||||
, pytest-runner
|
||||
, pythonOlder
|
||||
, pytestCheckHook
|
||||
, numpy
|
||||
, pillow
|
||||
, setuptools
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -20,7 +20,7 @@ let
|
||||
sha256 = "sha256-iExy+mUs1uqs/u9N6btlqyP6/TvoPVsuOuzs56zZAS8=";
|
||||
};
|
||||
|
||||
# Pydicom needs pydicom-data to run some tests. If these files are downloaded
|
||||
# Pydicom needs pydicom-data to run some tests. If these files aren't downloaded
|
||||
# before the package creation, it'll try to download during the checkPhase.
|
||||
test_data = fetchFromGitHub {
|
||||
owner = "${pname}";
|
||||
@@ -32,11 +32,11 @@ let
|
||||
in
|
||||
buildPythonPackage {
|
||||
inherit pname version src;
|
||||
disabled = isPy27;
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
propagatedBuildInputs = [ numpy pillow ];
|
||||
propagatedBuildInputs = [ numpy pillow setuptools ];
|
||||
|
||||
checkInputs = [ pytest-runner pytestCheckHook ];
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
# Setting $HOME to prevent pytest to try to create a folder inside
|
||||
# /homeless-shelter which is read-only.
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, mercurial
|
||||
, nose
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-hglib";
|
||||
version = "2.6.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-sYvR7VPJDuV9VxTWata7crZOkw1K7KmDCJLAi7KNpgg=";
|
||||
};
|
||||
|
||||
checkInputs = [ mercurial nose ];
|
||||
|
||||
preCheck = ''
|
||||
export HGTMP=$(mktemp -d)
|
||||
export HGUSER=test
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "hglib" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library with a fast, convenient interface to Mercurial. It uses Mercurial’s command server for communication with hg.";
|
||||
homepage = "https://www.mercurial-scm.org/wiki/PythonHglibs";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.kvark ];
|
||||
};
|
||||
}
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-smarttub";
|
||||
version = "0.0.27";
|
||||
version = "0.0.28";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "mdz";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-EoZn5yxj18hi4oEMuUcB5UN2xQFkLbSG/awp+Qh029E=";
|
||||
sha256 = "sha256-dAwOi1hhjGhBGKEp5u3qW5WL1GLHBFac0drIc1Zk6ok=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
@@ -38,11 +38,6 @@ buildPythonPackage rec {
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "aiohttp~=3.7.3" "aiohttp>=3.7.4,<4"
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [
|
||||
"smarttub"
|
||||
];
|
||||
|
||||
@@ -111,7 +111,7 @@ buildPythonPackage rec {
|
||||
"qiskit.optimization"
|
||||
];
|
||||
pytestFlagsArray = [
|
||||
"--timeout=30"
|
||||
"--timeout=30" # limit test duration to 30 seconds. Some tests previously would run indefinitely
|
||||
"--durations=10"
|
||||
];
|
||||
disabledTestPaths = lib.optionals (!withPyscf) [
|
||||
@@ -169,6 +169,8 @@ buildPythonPackage rec {
|
||||
"test_eoh"
|
||||
"test_qasm_5"
|
||||
"test_uccsd_hf"
|
||||
"test_lih"
|
||||
"test_lih_freeze_core"
|
||||
] ++ lib.optionals (!withPyscf) [
|
||||
"test_validate" # test/chemistry/test_inputparser.py
|
||||
];
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, capstone
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ropgadget";
|
||||
version = "6.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JonathanSalwan";
|
||||
repo = "ROPgadget";
|
||||
rev = "v${version}";
|
||||
sha256 = "1i0gx0cwhxk6d8byvck17hh83szz3k6ndd118ha3q0r0msap0lz1";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
capstone
|
||||
];
|
||||
|
||||
# Test suite is working with binaries
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"ropgadget"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
|
||||
homepage = "http://shell-storm.org/project/ROPgadget/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ bennofs ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{ lib
|
||||
, aiohttp
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, colorama
|
||||
, pythonOlder
|
||||
, tqdm
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "socialscan";
|
||||
version = "1.4.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iojw";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "rT+/j6UqDOzuNBdN3I74YIxS6qkhd7BjHCGX+gGjprc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
aiohttp
|
||||
colorama
|
||||
tqdm
|
||||
];
|
||||
|
||||
# Tests require network access
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"socialscan"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python library and CLI for accurately querying username and email usage on online platforms";
|
||||
homepage = "https://github.com/iojw/socialscan";
|
||||
license = with licenses; [ mpl20 ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
@@ -3,11 +3,11 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "spyder-kernels";
|
||||
version = "2.1.3";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "ab5c2a90d44f0a26e7a6862e3cb73bb2d7084bc72f9336d8c2d2a78c145c4645";
|
||||
sha256 = "6b19ea224f183dbff8ff0031bee35ae6b5b3a6eef4aa84cfab04e3bc3e304b91";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user