Merge master into haskell-updates

This commit is contained in:
github-actions[bot]
2021-11-30 00:07:42 +00:00
committed by GitHub
159 changed files with 2301 additions and 2497 deletions
+16 -19
View File
@@ -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."
+4
View File
@@ -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
View File
@@ -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
+8 -6
View File
@@ -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
+8 -1
View File
@@ -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;
+1 -1
View File
@@ -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
+2
View File
@@ -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 // {
+2 -2
View File
@@ -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 {
+1
View File
@@ -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 {};
+29
View File
@@ -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";
};
+2 -3
View File
@@ -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
'';
}
+2 -2
View File
@@ -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
Phabricators 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"
+2 -2
View File
@@ -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";
+3 -3
View File
@@ -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 = [
+5 -3
View File
@@ -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
+2
View File
@@ -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 = [
+2 -2
View File
@@ -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 = [
+2 -2
View File
@@ -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" ];
+75
View File
@@ -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;
};
}
+2 -2
View File
@@ -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;
};
}
+1 -1
View File
@@ -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 ];
+1 -3
View File
@@ -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";
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;
+20 -4
View File
@@ -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
+1 -1
View File
@@ -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 Mercurials 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