Project import generated by Copybara.

GitOrigin-RevId: e4d49de45a3b5dbcb881656b4e3986e666141ea9
This commit is contained in:
Default email 2022-07-18 18:21:45 +02:00
parent ca06522312
commit c6ca5b8f13
631 changed files with 18039 additions and 10269 deletions

View file

@ -602,10 +602,10 @@ been removed, in this case, it's recommended to use `pytestCheckHook`.
#### Using pytestCheckHook {#using-pytestcheckhook} #### Using pytestCheckHook {#using-pytestcheckhook}
`pytestCheckHook` is a convenient hook which will substitute the setuptools `pytestCheckHook` is a convenient hook which will substitute the setuptools
`test` command for a checkPhase which runs `pytest`. This is also beneficial `test` command for a `checkPhase` which runs `pytest`. This is also beneficial
when a package may need many items disabled to run the test suite. when a package may need many items disabled to run the test suite.
Using the example above, the analagous pytestCheckHook usage would be: Using the example above, the analagous `pytestCheckHook` usage would be:
``` ```
checkInputs = [ pytestCheckHook ]; checkInputs = [ pytestCheckHook ];
@ -624,7 +624,7 @@ Using the example above, the analagous pytestCheckHook usage would be:
]; ];
``` ```
This is expecially useful when tests need to be conditionallydisabled, This is expecially useful when tests need to be conditionally disabled,
for example: for example:
``` ```
@ -640,31 +640,35 @@ for example:
"socket" "socket"
]; ];
``` ```
Trying to concatenate the related strings to disable tests in a regular checkPhase
would be much harder to read. This also enables us to comment on why specific tests Trying to concatenate the related strings to disable tests in a regular
are disabled. `checkPhase` would be much harder to read. This also enables us to comment on
why specific tests are disabled.
#### Using pythonImportsCheck {#using-pythonimportscheck} #### Using pythonImportsCheck {#using-pythonimportscheck}
Although unit tests are highly prefered to validate correctness of a package, not Although unit tests are highly preferred to validate correctness of a package, not
all packages have test suites that can be ran easily, and some have none at all. all packages have test suites that can be run easily, and some have none at all.
To help ensure the package still works, `pythonImportsCheck` can attempt to import To help ensure the package still works, `pythonImportsCheck` can attempt to import
the listed modules. the listed modules.
``` ```
pythonImportsCheck = [ "requests" "urllib" ]; pythonImportsCheck = [ "requests" "urllib" ];
``` ```
roughly translates to: roughly translates to:
``` ```
postCheck = '' postCheck = ''
PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
python -c "import requests; import urllib" python -c "import requests; import urllib"
''; '';
``` ```
However, this is done in it's own phase, and not dependent on whether `doCheck = true;`
However, this is done in its own phase, and not dependent on whether `doCheck = true;`.
This can also be useful in verifying that the package doesn't assume commonly This can also be useful in verifying that the package doesn't assume commonly
present packages (e.g. `setuptools`) present packages (e.g. `setuptools`).
#### Using pythonRelaxDepsHook {#using-pythonrelaxdepshook} #### Using pythonRelaxDepsHook {#using-pythonrelaxdepshook}
@ -719,7 +723,7 @@ pkg3
``` ```
In general you should always use `pythonRelaxDeps`, because `pythonRemoveDeps` In general you should always use `pythonRelaxDeps`, because `pythonRemoveDeps`
will convert build errors in runtime errors. However `pythonRemoveDeps` may will convert build errors into runtime errors. However `pythonRemoveDeps` may
still be useful in exceptional cases, and also to remove dependencies wrongly still be useful in exceptional cases, and also to remove dependencies wrongly
declared by upstream (for example, declaring `black` as a runtime dependency declared by upstream (for example, declaring `black` as a runtime dependency
instead of a dev dependency). instead of a dev dependency).
@ -738,14 +742,14 @@ creates a special link to the project code. That way, you can run updated code
without having to reinstall after each and every change you make. Development without having to reinstall after each and every change you make. Development
mode is also available. Let's see how you can use it. mode is also available. Let's see how you can use it.
In the previous Nix expression the source was fetched from an url. We can also In the previous Nix expression the source was fetched from a url. We can also
refer to a local source instead using `src = ./path/to/source/tree;` refer to a local source instead using `src = ./path/to/source/tree;`
If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src` If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
is a local source, and if the local source has a `setup.py`, then development is a local source, and if the local source has a `setup.py`, then development
mode is activated. mode is activated.
In the following example we create a simple environment that has a Python 3.9 In the following example, we create a simple environment that has a Python 3.9
version of our package in it, as well as its dependencies and other packages we version of our package in it, as well as its dependencies and other packages we
like to have in the environment, all specified with `propagatedBuildInputs`. like to have in the environment, all specified with `propagatedBuildInputs`.
Indeed, we can just add any package we like to have in our environment to Indeed, we can just add any package we like to have in our environment to
@ -862,7 +866,7 @@ Each interpreter has the following attributes:
### Optimizations {#optimizations} ### Optimizations {#optimizations}
The Python interpreters are by default not build with optimizations enabled, because The Python interpreters are by default not built with optimizations enabled, because
the builds are in that case not reproducible. To enable optimizations, override the the builds are in that case not reproducible. To enable optimizations, override the
interpreter of interest, e.g using interpreter of interest, e.g using
@ -913,7 +917,7 @@ and the aliases
#### `buildPythonPackage` function {#buildpythonpackage-function} #### `buildPythonPackage` function {#buildpythonpackage-function}
The `buildPythonPackage` function is implemented in The `buildPythonPackage` function is implemented in
`pkgs/development/interpreters/python/mk-python-derivation` `pkgs/development/interpreters/python/mk-python-derivation.nix`
using setup hooks. using setup hooks.
The following is an example: The following is an example:
@ -954,7 +958,7 @@ The `buildPythonPackage` mainly does four things:
* In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to * In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to
wrap all programs in the `$out/bin/*` directory to include `$PATH` wrap all programs in the `$out/bin/*` directory to include `$PATH`
environment variable and add dependent libraries to script's `sys.path`. environment variable and add dependent libraries to script's `sys.path`.
* In the `installCheck` phase, `${python.interpreter} setup.py test` is ran. * In the `installCheck` phase, `${python.interpreter} setup.py test` is run.
By default tests are run because `doCheck = true`. Test dependencies, like By default tests are run because `doCheck = true`. Test dependencies, like
e.g. the test runner, should be added to `checkInputs`. e.g. the test runner, should be added to `checkInputs`.
@ -969,7 +973,7 @@ following are specific to `buildPythonPackage`:
* `catchConflicts ? true`: If `true`, abort package build if a package name * `catchConflicts ? true`: If `true`, abort package build if a package name
appears more than once in dependency tree. Default is `true`. appears more than once in dependency tree. Default is `true`.
* `disabled` ? false: If `true`, package is not built for the particular Python * `disabled ? false`: If `true`, package is not built for the particular Python
interpreter version. interpreter version.
* `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs. * `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs.
* `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment * `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment
@ -1421,7 +1425,8 @@ in newpkgs.inkscape
### `python setup.py bdist_wheel` cannot create .whl {#python-setup.py-bdist_wheel-cannot-create-.whl} ### `python setup.py bdist_wheel` cannot create .whl {#python-setup.py-bdist_wheel-cannot-create-.whl}
Executing `python setup.py bdist_wheel` in a `nix-shell `fails with Executing `python setup.py bdist_wheel` in a `nix-shell`fails with
``` ```
ValueError: ZIP does not support timestamps before 1980 ValueError: ZIP does not support timestamps before 1980
``` ```
@ -1513,7 +1518,7 @@ in pkgs.mkShell rec {
# the environment. # the environment.
pythonPackages.python pythonPackages.python
# This execute some shell code to initialize a venv in $venvDir before # This executes some shell code to initialize a venv in $venvDir before
# dropping into the shell # dropping into the shell
pythonPackages.venvShellHook pythonPackages.venvShellHook

View file

@ -1218,7 +1218,7 @@ The `validatePkgConfig` hook validates all pkg-config (`.pc`) files in a package
### cmake {#cmake} ### cmake {#cmake}
Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to CMAKE_PREFIX_PATH so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hooks behavior by setting configurePhase to a custom value, or by setting dontUseCmakeConfigure. cmakeFlags controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator. Overrides the default configure phase to run the CMake command. By default, we use the Make generator of CMake. In addition, dependencies are added automatically to `CMAKE_PREFIX_PATH` so that packages are correctly detected by CMake. Some additional flags are passed in to give similar behavior to configure-based packages. You can disable this hooks behavior by setting `configurePhase` to a custom value, or by setting `dontUseCmakeConfigure`. `cmakeFlags` controls flags passed only to CMake. By default, parallel building is enabled as CMake supports parallel building almost everywhere. When Ninja is also in use, CMake will detect that and use the ninja generator.
### xcbuildHook {#xcbuildhook} ### xcbuildHook {#xcbuildhook}

View file

@ -36,6 +36,7 @@ rec {
config = parse.tripleFromSystem final.parsed; config = parse.tripleFromSystem final.parsed;
# Determine whether we can execute binaries built for the provided platform. # Determine whether we can execute binaries built for the provided platform.
canExecute = platform: canExecute = platform:
final.isAndroid == platform.isAndroid &&
parse.isCompatible final.parsed.cpu platform.parsed.cpu parse.isCompatible final.parsed.cpu platform.parsed.cpu
&& final.parsed.kernel == platform.parsed.kernel; && final.parsed.kernel == platform.parsed.kernel;
isCompatible = _: throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details"; isCompatible = _: throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details";

View file

@ -57,23 +57,23 @@ rec {
armv7a-android-prebuilt = { armv7a-android-prebuilt = {
config = "armv7a-unknown-linux-androideabi"; config = "armv7a-unknown-linux-androideabi";
rustc.config = "armv7-linux-androideabi"; rustc.config = "armv7-linux-androideabi";
sdkVer = "29"; sdkVer = "28";
ndkVer = "21"; ndkVer = "24";
useAndroidPrebuilt = true; useAndroidPrebuilt = true;
} // platforms.armv7a-android; } // platforms.armv7a-android;
aarch64-android-prebuilt = { aarch64-android-prebuilt = {
config = "aarch64-unknown-linux-android"; config = "aarch64-unknown-linux-android";
rustc.config = "aarch64-linux-android"; rustc.config = "aarch64-linux-android";
sdkVer = "29"; sdkVer = "28";
ndkVer = "21"; ndkVer = "24";
useAndroidPrebuilt = true; useAndroidPrebuilt = true;
}; };
aarch64-android = { aarch64-android = {
config = "aarch64-unknown-linux-android"; config = "aarch64-unknown-linux-android";
sdkVer = "30"; sdkVer = "30";
ndkVer = "21"; ndkVer = "24";
libc = "bionic"; libc = "bionic";
useAndroidPrebuilt = false; useAndroidPrebuilt = false;
useLLVM = true; useLLVM = true;

View file

@ -417,6 +417,12 @@
githubId = 4732885; githubId = 4732885;
name = "Ivan Jager"; name = "Ivan Jager";
}; };
aiotter = {
email = "git@aiotter.com";
github = "aiotter";
githubId = 37664775;
name = "Yuto Oguchi";
};
airwoodix = { airwoodix = {
email = "airwoodix@posteo.me"; email = "airwoodix@posteo.me";
github = "airwoodix"; github = "airwoodix";
@ -887,6 +893,13 @@
githubId = 661909; githubId = 661909;
name = "Antonio Nuno Monteiro"; name = "Antonio Nuno Monteiro";
}; };
anoa = {
matrix = "@andrewm:amorgan.xyz";
email = "andrew@amorgan.xyz";
github = "anoadragon453";
githubId = 1342360;
name = "Andrew Morgan";
};
anpryl = { anpryl = {
email = "anpryl@gmail.com"; email = "anpryl@gmail.com";
github = "anpryl"; github = "anpryl";
@ -3733,6 +3746,12 @@
githubId = 1897147; githubId = 1897147;
name = "Elijah Caine"; name = "Elijah Caine";
}; };
Elinvention = {
email = "elia@elinvention.ovh";
github = "Elinvention";
githubId = 5737945;
name = "Elia Argentieri";
};
elitak = { elitak = {
email = "elitak@gmail.com"; email = "elitak@gmail.com";
github = "elitak"; github = "elitak";
@ -5393,6 +5412,13 @@
githubId = 40234257; githubId = 40234257;
name = "ilkecan bozdogan"; name = "ilkecan bozdogan";
}; };
ihatethefrench = {
email = "michal@tar.black";
matrix = "@michal:tar.black";
github = "ihatethefrench";
githubId = 30374463;
name = "Michal S.";
};
illegalprime = { illegalprime = {
email = "themichaeleden@gmail.com"; email = "themichaeleden@gmail.com";
github = "illegalprime"; github = "illegalprime";
@ -6109,6 +6135,12 @@
githubId = 60272884; githubId = 60272884;
name = "Jonathan Jeppener-Haltenhoff"; name = "Jonathan Jeppener-Haltenhoff";
}; };
jocelynthode = {
email = "jocelyn.thode@gmail.com";
github = "jocelynthode";
githubId = 3967312;
name = "Jocelyn Thode";
};
joelancaster = { joelancaster = {
email = "joe.a.lancas@gmail.com"; email = "joe.a.lancas@gmail.com";
github = "JoeLancaster"; github = "JoeLancaster";
@ -6615,6 +6647,15 @@
githubId = 15373888; githubId = 15373888;
name = "Claudius Holeksa"; name = "Claudius Holeksa";
}; };
ken-matsui = {
email = "nix@kmatsui.me";
github = "ken-matsui";
githubId = 26405363;
name = "Ken Matsui";
keys = [{
fingerprint = "3611 8CD3 6DE8 3334 B44A DDE4 1033 60B3 298E E433";
}];
};
kennyballou = { kennyballou = {
email = "kb@devnulllabs.io"; email = "kb@devnulllabs.io";
github = "kennyballou"; github = "kennyballou";
@ -7857,6 +7898,12 @@
githubId = 26470037; githubId = 26470037;
name = "Markus Kowalewski"; name = "Markus Kowalewski";
}; };
mariaa144 = {
email = "speechguard_intensivist@aleeas.com";
github = "mariaa144";
githubId = 105451387;
name = "Maria";
};
marijanp = { marijanp = {
name = "Marijan Petričević"; name = "Marijan Petričević";
email = "marijan.petricevic94@gmail.com"; email = "marijan.petricevic94@gmail.com";
@ -8923,6 +8970,15 @@
githubId = 818502; githubId = 818502;
name = "Nathan Yong"; name = "Nathan Yong";
}; };
natsukium = {
email = "nixpkgs@natsukium.com";
github = "natsukium";
githubId = 25083790;
name = "Tomoya Otabi";
keys = [{
fingerprint = "3D14 6004 004C F882 D519 6CD4 9EA4 5A31 DB99 4C53";
}];
};
natto1784 = { natto1784 = {
email = "natto@weirdnatto.in"; email = "natto@weirdnatto.in";
github = "natto1784"; github = "natto1784";
@ -9033,6 +9089,15 @@
github = "nessdoor"; github = "nessdoor";
githubId = 25993494; githubId = 25993494;
}; };
netali = {
name = "Jennifer Graul";
email = "me@netali.de";
github = "NetaliDev";
githubId = 15304894;
keys = [{
fingerprint = "F729 2594 6F58 0B05 8FB3 F271 9C55 E636 426B 40A9";
}];
};
netcrns = { netcrns = {
email = "jason.wing@gmx.de"; email = "jason.wing@gmx.de";
github = "netcrns"; github = "netcrns";
@ -9286,6 +9351,12 @@
githubId = 40049608; githubId = 40049608;
name = "Andy Chun"; name = "Andy Chun";
}; };
nook = {
name = "Tom Nook";
email = "0xnook@protonmail.com";
github = "0xnook";
githubId = 88323754;
};
noreferences = { noreferences = {
email = "norkus@norkus.net"; email = "norkus@norkus.net";
github = "jozuas"; github = "jozuas";
@ -11498,6 +11569,13 @@
githubId = 543055; githubId = 543055;
name = "Shadaj Laddad"; name = "Shadaj Laddad";
}; };
shadowrz = {
email = "shadowrz+nixpkgs@disroot.org";
matrix = "@ShadowRZ:matrixim.cc";
github = "ShadowRZ";
githubId = 23130178;
name = "";
};
shahrukh330 = { shahrukh330 = {
email = "shahrukh330@gmail.com"; email = "shahrukh330@gmail.com";
github = "shahrukh330"; github = "shahrukh330";

View file

@ -2,30 +2,159 @@
#! nix-shell -i bash -p coreutils findutils gnused nix wget #! nix-shell -i bash -p coreutils findutils gnused nix wget
set -efuo pipefail set -efuo pipefail
export LC_COLLATE=C # fix sort order
SRCS= # parse files and folders from https://download.kde.org/ and https://download.qt.io/
if [ -d "$1" ]; then # you can override this function in fetch.sh
SRCS="$(pwd)/$1/srcs.nix" function PARSE_INDEX() {
. "$1/fetch.sh" cat "$1" | grep -o -E -e '\s+href="[^"]+\.tar\.xz"' -e '\s+href="[-_a-zA-Z0-9]+/"' | cut -d'"' -f2 | sort | uniq
else }
SRCS="$(pwd)/$(dirname $1)/srcs.nix"
. "$1" if [ $# != 1 ]; then
echo "example use:" >&2
echo "cd nixpkgs/" >&2
echo "./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/5.12" >&2
exit 1
fi fi
tmp=$(mktemp -d) if ! echo "$1" | grep -q '^pkgs/'; then
pushd $tmp >/dev/null echo "error: path argument must start with pkgs/" >&2
wget -nH -r -c --no-parent "${WGET_ARGS[@]}" >/dev/null exit 1
fi
csv=$(mktemp) # need absolute path for the pushd-popd block
find . -type f | while read src; do if [ -f "$1" ]; then
echo "ok: using fetchfile $1"
fetchfilerel="$1"
fetchfile="$(readlink -f "$fetchfilerel")" # resolve absolute path
basedir="$(dirname "$fetchfile")"
basedirrel="$(dirname "$fetchfilerel")"
elif [ -d "$1" ]; then
echo "ok: using basedir $1"
basedirrel="$1"
basedir="$(readlink -f "$basedirrel")" # resolve absolute path
if ! [ -d "$basedir" ]; then
basedir="$(dirname "$basedir")"
fi
fetchfile="$basedir/fetch.sh"
else
echo 'error: $1 must be file or dir' >&2
exit 1
fi
pkgname=$(basename "$basedir")
SRCS="$basedir/srcs.nix"
srcsrel="$basedirrel/srcs.nix"
source "$fetchfile"
if [ -n "$WGET_ARGS" ]; then # old format
BASE_URL="${WGET_ARGS[0]}" # convert to new format
# validate
if ! echo "$BASE_URL" | grep -q -E '^(http|https|ftp)://'; then
printf 'error: from WGET_ARGS, converted invalid BASE_URL: %q\n' "$BASE_URL" >&2
exit 1
fi
printf 'ok: from WGET_ARGS, converted BASE_URL: %q\n' "$BASE_URL"
elif [ -n "$BASE_URL" ]; then # new format
:
else
echo "error: fetch.sh must set either WGET_ARGS or BASE_URL" >&2
exit 1
fi
tmptpl=tmp.fetch-kde-qt.$pkgname.XXXXXXXXXX
tmp=$(mktemp -d $tmptpl)
pushd $tmp >/dev/null
echo "tempdir is $tmp"
wgetargs='--quiet --show-progress'
#wgetargs='' # debug
dirlist="$BASE_URL"
filelist=""
base_url_len=${#BASE_URL}
clean_urls() {
# // -> /
sed -E 's,//+,/,g' | sed -E 's,^(http|https|ftp):/,&/,'
}
while [ -n "$dirlist" ]
do
for dirurl in $dirlist
do
echo "fetching index.html from $dirurl"
relpath=$(echo "./${dirurl:$base_url_len}" | clean_urls)
mkdir -p "$relpath"
indexfile=$(echo "$relpath/index.html" | clean_urls)
wget $wgetargs -O "$indexfile" "$dirurl"
echo "parsing $indexfile"
filedirlist="$(PARSE_INDEX "$indexfile")"
filelist_next="$(echo "$filedirlist" | grep '\.tar\.xz$' | while read file; do echo "$dirurl/$file"; done)"
filelist_next="$(echo "$filelist_next" | clean_urls)"
[ -n "$filelist" ] && filelist+=$'\n'
filelist+="$filelist_next"
dirlist="$(echo "$filedirlist" | grep -v '\.tar\.xz$' | while read dir; do echo "$dirurl/$dir"; done || true)"
dirlist="$(echo "$dirlist" | clean_urls)"
done
done
filecount=$(echo "$filelist" | wc -l)
if [ -z "$filelist" ]
then
echo "error: no files parsed from $tmp/index.html"
exit 1
fi
echo "parsed $filecount tar.xz files:"; echo "$filelist"
# most time is spent here
echo "fetching $filecount sha256 files ..."
urllist="$(echo "$filelist" | while read file; do echo "$file.sha256"; done)"
# wget -r: keep directory structure
echo "$urllist" | xargs wget $wgetargs -nH -r -c --no-parent && {
actual=$(find . -type f -name '*.sha256' | wc -l)
echo "fetching $filecount sha256 files done: got $actual files"
} || {
# workaround: in rare cases, the server does not provide the sha256 files
# for example when the release is just a few hours old
# and the servers are not yet fully synced
actual=$(find . -type f -name '*.sha256' | wc -l)
echo "fetching $filecount sha256 files failed: got only $actual files"
# TODO fetch only missing tar.xz files
echo "fetching $filecount tar.xz files ..."
urllist="$(echo "$filelist" | while read file; do echo "$BASE_URL/$file"; done)"
echo "$urllist" | xargs wget $wgetargs -nH -r -c --no-parent
echo "generating sha256 files ..."
find . -type f -name '*.tar.xz' | while read src; do
name=$(basename "$src")
sha256=$(sha256sum "$src" | cut -d' ' -f1)
echo "$sha256 $name" >"$src.sha256"
done
}
csv=$(mktemp $tmptpl.csv)
echo "writing temporary file $csv ..."
find . -type f -name '*.sha256' | while read sha256file; do
src="${sha256file%.*}" # remove extension
sha256=$(cat $sha256file | cut -d' ' -f1) # base16
sha256=$(nix-hash --type sha256 --to-base32 $sha256)
# Sanitize file name # Sanitize file name
filename=$(basename "$src" | tr '@' '_') filename=$(basename "$src" | tr '@' '_')
nameVersion="${filename%.tar.*}" nameVersion="${filename%.tar.*}"
name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,' | sed -e 's,-everywhere-src$,,') name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,' | sed -e 's,-everywhere-src$,,')
version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,') version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
echo "$name,$version,$src,$filename" >>$csv echo "$name,$version,$src,$filename,$sha256" >>$csv
done done
files_before=$(grep -c 'src = ' "$SRCS")
echo "writing output file $SRCS ..."
cat >"$SRCS" <<EOF cat >"$SRCS" <<EOF
# DO NOT EDIT! This file is generated automatically. # DO NOT EDIT! This file is generated automatically.
# Command: $0 $@ # Command: $0 $@
@ -39,8 +168,8 @@ gawk -F , "{ print \$1 }" $csv | sort | uniq | while read name; do
latestVersion=$(echo "$versions" | sort -rV | head -n 1) latestVersion=$(echo "$versions" | sort -rV | head -n 1)
src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" $csv) src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" $csv)
filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" $csv) filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" $csv)
sha256=$(gawk -F , "/^$name,$latestVersion,/ { print \$5 }" $csv)
url="${src:2}" url="${src:2}"
sha256=$(nix-hash --type sha256 --base32 --flat "$src")
cat >>"$SRCS" <<EOF cat >>"$SRCS" <<EOF
$name = { $name = {
version = "$latestVersion"; version = "$latestVersion";
@ -55,6 +184,13 @@ done
echo "}" >>"$SRCS" echo "}" >>"$SRCS"
files_after=$(grep -c 'src = ' "$SRCS")
echo "files before: $files_before"
echo "files after: $files_after"
echo "compare:"
echo "git diff $srcsrel"
popd >/dev/null popd >/dev/null
rm -fr $tmp >/dev/null rm -fr $tmp >/dev/null

View file

@ -362,7 +362,6 @@ with foo_running:
... # Put `foo` through its paces ... # Put `foo` through its paces
``` ```
`polling_condition` takes the following (optional) arguments: `polling_condition` takes the following (optional) arguments:
`seconds_interval` `seconds_interval`
@ -407,6 +406,9 @@ import ./make-test-python.nix
nodes = { }; nodes = { };
# Type checking on extra packages doesn't work yet
skipTypeCheck = true;
testScript = '' testScript = ''
import numpy as np import numpy as np
assert str(np.zeros(4) == "array([0., 0., 0., 0.])") assert str(np.zeros(4) == "array([0., 0., 0., 0.])")

View file

@ -680,6 +680,9 @@ import ./make-test-python.nix
nodes = { }; nodes = { };
# Type checking on extra packages doesn't work yet
skipTypeCheck = true;
testScript = '' testScript = ''
import numpy as np import numpy as np
assert str(np.zeros(4) == &quot;array([0., 0., 0., 0.])&quot;) assert str(np.zeros(4) == &quot;array([0., 0., 0., 0.])&quot;)

View file

@ -341,6 +341,15 @@
Add udev rules for the Teensy family of microcontrollers. Add udev rules for the Teensy family of microcontrollers.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The <literal>pass-secret-service</literal> package now
includes systemd units from upstream, so adding it to the
NixOS <literal>services.dbus.packages</literal> option will
make it start automatically as a systemd user service when an
application tries to talk to the libsecret D-Bus API.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
There is a new module for the <literal>thunar</literal> There is a new module for the <literal>thunar</literal>

View file

@ -128,6 +128,8 @@ Use `configure.packages` instead.
- Add udev rules for the Teensy family of microcontrollers. - Add udev rules for the Teensy family of microcontrollers.
- The `pass-secret-service` package now includes systemd units from upstream, so adding it to the NixOS `services.dbus.packages` option will make it start automatically as a systemd user service when an application tries to talk to the libsecret D-Bus API.
- There is a new module for the `thunar` program (the Xfce file manager), which depends on the `xfconf` dbus service, and also has a dbus service and a systemd unit. The option `services.xserver.desktopManager.xfce.thunarPlugins` has been renamed to `programs.thunar.plugins`, and in a future release it may be removed. - There is a new module for the `thunar` program (the Xfce file manager), which depends on the `xfconf` dbus service, and also has a dbus service and a systemd unit. The option `services.xserver.desktopManager.xfce.thunarPlugins` has been renamed to `programs.thunar.plugins`, and in a future release it may be removed.
- There is a new module for the `xfconf` program (the Xfce configuration storage system), which has a dbus service. - There is a new module for the `xfconf` program (the Xfce configuration storage system), which has a dbus service.

View file

@ -53,16 +53,16 @@ with lib;
supportedLocales = mkOption { supportedLocales = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = builtins.map (l: l + "/UTF-8") default = unique
(unique ( (builtins.map (l: (replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8") (
[ [
"C.UTF-8" "C.UTF-8"
config.i18n.defaultLocale config.i18n.defaultLocale
] ++ (attrValues (filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings)) ] ++ (attrValues (filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
)); ));
defaultText = literalExpression '' defaultText = literalExpression ''
builtins.map (l: l + "/UTF-8") unique
(unique ( (builtins.map (l: (replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8") (
[ [
"C.UTF-8" "C.UTF-8"
config.i18n.defaultLocale config.i18n.defaultLocale

View file

@ -1,7 +1,7 @@
{ {
x86_64-linux = "/nix/store/6g4fla3vkcxihph282a0v3cd10709y7c-nix-2.9.1"; x86_64-linux = "/nix/store/3af6g226v4hsv6x7xzh23d6wqyq0nzjp-nix-2.10.3";
i686-linux = "/nix/store/j143221z44469zx21f5m9a47x7y1jpr5-nix-2.9.1"; i686-linux = "/nix/store/43xxh2jip6rpdhylc5z9a5fxx54dw206-nix-2.10.3";
aarch64-linux = "/nix/store/c4z3vy1sgm49la8bvmdrrpssgk4iw2nk-nix-2.9.1"; aarch64-linux = "/nix/store/6qw3r57nra08ars8j8zyj3fl8lz4cvnd-nix-2.10.3";
x86_64-darwin = "/nix/store/cqdwb7khf6zg94bz7lnvfjqx6z775qaw-nix-2.9.1"; x86_64-darwin = "/nix/store/3b7qrm0qjw57fmznrsvm0ai568i89hc2-nix-2.10.3";
aarch64-darwin = "/nix/store/1brkxcs287n1px2i4fq39l7h51hjv0f8-nix-2.9.1"; aarch64-darwin = "/nix/store/gp7k17iy1n7hgf97qwnxw28c6v9nhb1i-nix-2.10.3";
} }

View file

@ -667,6 +667,27 @@ in
# uid. Users and groups with the same name should have equal # uid. Users and groups with the same name should have equal
# uids and gids. Also, don't use gids above 399! # uids and gids. Also, don't use gids above 399!
# For exceptional cases where you really need a gid above 399, leave a
# comment stating why.
#
# Also, avoid the following GID ranges:
#
# 1000 - 29999: user accounts (see ../config/update-users-groups.pl)
# 30000 - 31000: nixbld users (the upper limit is arbitrarily chosen)
# 61184 - 65519: systemd DynamicUser (see systemd.exec(5))
# 65535: the error return sentinel value when uid_t was 16 bits
#
# 100000 - 6653600: subgid allocated for user namespaces
# (see ../config/update-users-groups.pl)
# 4294967294: unauthenticated user in some NFS implementations
# 4294967295: error return sentinel value
#
# References:
# https://www.debian.org/doc/debian-policy/ch-opersys.html#uid-and-gid-classes
onepassword = 31001; # 1Password requires that its GID be larger than 1000
onepassword-cli = 31002; # 1Password requires that its GID be larger than 1000
users = 100; users = 100;
nixbld = 30000; nixbld = 30000;
nogroup = 65534; nogroup = 65534;

View file

@ -11,7 +11,7 @@ in
options.system = { options.system = {
nixos.label = mkOption { nixos.label = mkOption {
type = types.str; type = types.strMatching "[a-zA-Z0-9:_\\.-]*";
description = '' description = ''
NixOS version name to be used in the names of generated NixOS version name to be used in the names of generated
outputs and boot labels. outputs and boot labels.
@ -19,6 +19,9 @@ in
If you ever wanted to influence the labels in your GRUB menu, If you ever wanted to influence the labels in your GRUB menu,
this is the option for you. this is the option for you.
It can only contain letters, numbers and the following symbols:
<literal>:</literal>, <literal>_</literal>, <literal>.</literal> and <literal>-</literal>.
The default is <option>system.nixos.tags</option> separated by The default is <option>system.nixos.tags</option> separated by
"-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment "-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment
variable (defaults to the value of variable (defaults to the value of

View file

@ -215,6 +215,7 @@
./programs/systemtap.nix ./programs/systemtap.nix
./programs/starship.nix ./programs/starship.nix
./programs/steam.nix ./programs/steam.nix
./programs/streamdeck-ui.nix
./programs/sway.nix ./programs/sway.nix
./programs/system-config-printer.nix ./programs/system-config-printer.nix
./programs/thefuck.nix ./programs/thefuck.nix
@ -1002,6 +1003,7 @@
./services/security/oauth2_proxy.nix ./services/security/oauth2_proxy.nix
./services/security/oauth2_proxy_nginx.nix ./services/security/oauth2_proxy_nginx.nix
./services/security/opensnitch.nix ./services/security/opensnitch.nix
./services/security/pass-secret-service.nix
./services/security/privacyidea.nix ./services/security/privacyidea.nix
./services/security/physlock.nix ./services/security/physlock.nix
./services/security/shibboleth-sp.nix ./services/security/shibboleth-sp.nix

View file

@ -8,19 +8,16 @@ let
in in
{ {
imports = [
(mkRemovedOptionModule [ "programs" "_1password-gui" "gid" ] ''
A preallocated GID will be used instead.
'')
];
options = { options = {
programs._1password-gui = { programs._1password-gui = {
enable = mkEnableOption "the 1Password GUI application"; enable = mkEnableOption "the 1Password GUI application";
gid = mkOption {
type = types.addCheck types.int (x: x >= 1000);
example = literalExpression "5000";
description = ''
The gid to assign to the onepassword group, which is needed for browser integration.
It must be 1000 or greater.
'';
};
polkitPolicyOwners = mkOption { polkitPolicyOwners = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = [ ]; default = [ ];
@ -44,7 +41,7 @@ in
in in
mkIf cfg.enable { mkIf cfg.enable {
environment.systemPackages = [ package ]; environment.systemPackages = [ package ];
users.groups.onepassword.gid = cfg.gid; users.groups.onepassword.gid = config.ids.gids.onepassword;
security.wrappers = { security.wrappers = {
"1Password-BrowserSupport" = { "1Password-BrowserSupport" = {

View file

@ -8,19 +8,16 @@ let
in in
{ {
imports = [
(mkRemovedOptionModule [ "programs" "_1password" "gid" ] ''
A preallocated GID will be used instead.
'')
];
options = { options = {
programs._1password = { programs._1password = {
enable = mkEnableOption "the 1Password CLI tool"; enable = mkEnableOption "the 1Password CLI tool";
gid = mkOption {
type = types.addCheck types.int (x: x >= 1000);
example = literalExpression "5001";
description = ''
The gid to assign to the onepassword-cli group, which is needed for integration with the 1Password GUI.
It must be 1000 or greater.
'';
};
package = mkPackageOption pkgs "1Password CLI" { package = mkPackageOption pkgs "1Password CLI" {
default = [ "_1password" ]; default = [ "_1password" ];
}; };
@ -29,7 +26,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ];
users.groups.onepassword-cli.gid = cfg.gid; users.groups.onepassword-cli.gid = config.ids.gids.onepassword-cli;
security.wrappers = { security.wrappers = {
"op" = { "op" = {

View file

@ -6,7 +6,7 @@ let
cfg = config.programs.dmrconfig; cfg = config.programs.dmrconfig;
in { in {
meta.maintainers = [ maintainers.etu ]; meta.maintainers = with maintainers; [ ];
###### interface ###### interface
options = { options = {

View file

@ -0,0 +1,28 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.streamdeck-ui;
in {
options.programs.streamdeck-ui = {
enable = mkEnableOption "streamdeck-ui";
autoStart = mkOption {
default = true;
type = types.bool;
description = "Whether streamdeck-ui should be started automatically.";
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
streamdeck-ui
(mkIf cfg.autoStart (makeAutostartItem { name = "streamdeck-ui"; package = streamdeck-ui; }))
];
services.udev.packages = with pkgs; [ streamdeck-ui ];
};
meta.maintainers = with maintainers; [ majiir ];
}

View file

@ -483,7 +483,8 @@ let
auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so
'') + '') +
(let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth '' (let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth ''
auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"} ${optionalString (u2f.appId != null) "appid=${u2f.appId}"} auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ''
+ ''${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"} ${optionalString (u2f.appId != null) "appid=${u2f.appId}"} ${optionalString (u2f.origin != null) "origin=${u2f.origin}"}
'') + '') +
optionalString cfg.usbAuth '' optionalString cfg.usbAuth ''
auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so
@ -895,6 +896,24 @@ in
''; '';
}; };
origin = mkOption {
default = null;
type = with types; nullOr str;
description = ''
By default <literal>pam-u2f</literal> module sets the origin
to <literal>pam://$HOSTNAME</literal>.
Setting origin to an host independent value will allow you to
reuse credentials across machines
When using <command>pamu2fcfg</command>, you can specify your
application ID with the <literal>-o</literal> flag.
More information can be found <link
xlink:href="https://developers.yubico.com/pam-u2f/Manuals/pam_u2f.8.html">
here</link>
'';
};
control = mkOption { control = mkOption {
default = "sufficient"; default = "sufficient";
type = types.enum [ "required" "requisite" "sufficient" "optional" ]; type = types.enum [ "required" "requisite" "sufficient" "optional" ];

View file

@ -23,7 +23,11 @@ let
infraContainer = pkgs.dockerTools.buildImage { infraContainer = pkgs.dockerTools.buildImage {
name = "pause"; name = "pause";
tag = "latest"; tag = "latest";
contents = top.package.pause; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ top.package.pause ];
};
config.Cmd = ["/bin/pause"]; config.Cmd = ["/bin/pause"];
}; };

View file

@ -156,12 +156,22 @@ in {
reloadScript = '' reloadScript = ''
echo "Asking Jenkins to reload config" echo "Asking Jenkins to reload config"
curl_opts="--silent --fail --show-error" curl_opts="--silent --fail --show-error"
access_token=${if cfg.accessTokenFile != "" access_token_file=${if cfg.accessTokenFile != ""
then "$(cat '${cfg.accessTokenFile}')" then cfg.accessTokenFile
else cfg.accessToken} else "$RUNTIME_DIRECTORY/jenkins_access_token.txt"}
jenkins_url="http://${cfg.accessUser}:$access_token@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}" if [ "${cfg.accessToken}" != "" ]; then
crumb=$(curl $curl_opts "$jenkins_url"'/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') (umask 0077; printf "${cfg.accessToken}" >"$access_token_file")
curl $curl_opts -X POST -H "$crumb" "$jenkins_url"/reload fi
jenkins_url="http://${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}"
auth_file="$RUNTIME_DIRECTORY/jenkins_auth_file.txt"
trap 'rm -f "$auth_file"' EXIT
(umask 0077; printf "${cfg.accessUser}:@password_placeholder@" >"$auth_file")
"${pkgs.replace-secret}/bin/replace-secret" "@password_placeholder@" "$access_token_file" "$auth_file"
if ! "${pkgs.jenkins}/bin/jenkins-cli" -s "$jenkins_url" -auth "@$auth_file" reload-configuration; then
echo "error: failed to reload configuration"
exit 1
fi
''; '';
in in
'' ''

View file

@ -54,7 +54,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.greetd.settings.terminal.vt = mkDefault cfg.vt; services.greetd.settings.terminal.vt = mkDefault cfg.vt;
services.greetd.settings.default_session = mkDefault "greeter"; services.greetd.settings.default_session.user = mkDefault "greeter";
security.pam.services.greetd = { security.pam.services.greetd = {
allowNullPassword = true; allowNullPassword = true;

View file

@ -19,13 +19,13 @@ let
# https://gitlab.com/gitlab-org/gitlab/-/issues/360783#note_992870101. # https://gitlab.com/gitlab-org/gitlab/-/issues/360783#note_992870101.
gitPackage = gitPackage =
let let
version = "2.35.3"; version = "2.35.4";
in in
pkgs.git.overrideAttrs (oldAttrs: rec { pkgs.git.overrideAttrs (oldAttrs: rec {
inherit version; inherit version;
src = pkgs.fetchurl { src = pkgs.fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "sha256-FenbT5vy7Z//MMtioAxcfAkBAV9asEjNtOiwTd7gD6I="; sha256 = "sha256-mv13OdNkXggeKQkJ+47QcJ6lYmcw6Qjri1ZJ2ETCTOk=";
}; };
}); });

View file

@ -49,7 +49,10 @@ in
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
# This is mostly follows: https://github.com/jellyfin/jellyfin/blob/master/fedora/jellyfin.service
# Upstream also disable some hardenings when running in LXC, we do the same with the isContainer option
serviceConfig = rec { serviceConfig = rec {
Type = "simple";
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
StateDirectory = "jellyfin"; StateDirectory = "jellyfin";
@ -57,48 +60,50 @@ in
CacheDirectory = "jellyfin"; CacheDirectory = "jellyfin";
CacheDirectoryMode = "0700"; CacheDirectoryMode = "0700";
UMask = "0077"; UMask = "0077";
WorkingDirectory = "/var/lib/jellyfin";
ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'"; ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
Restart = "on-failure"; Restart = "on-failure";
TimeoutSec = 15;
SuccessExitStatus = ["0" "143"];
# Security options: # Security options:
NoNewPrivileges = true; NoNewPrivileges = true;
SystemCallArchitectures = "native";
AmbientCapabilities = "";
CapabilityBoundingSet = "";
# ProtectClock= adds DeviceAllow=char-rtc r
DeviceAllow = "";
LockPersonality = true;
PrivateTmp = true;
# Disabled to allow Jellyfin to access hw accel devices endpoints
# PrivateDevices = true;
PrivateUsers = true;
# Disabled as it does not allow Jellyfin to interface with CUDA devices
# ProtectClock = true;
ProtectControlGroups = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
RemoveIPC = true;
RestrictNamespaces = true;
# AF_NETLINK needed because Jellyfin monitors the network connection # AF_NETLINK needed because Jellyfin monitors the network connection
RestrictAddressFamilies = [ "AF_NETLINK" "AF_INET" "AF_INET6" "AF_UNIX" ]; RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
RestrictNamespaces = !config.boot.isContainer;
RestrictRealtime = true; RestrictRealtime = true;
RestrictSUIDSGID = true; RestrictSUIDSGID = true;
ProtectControlGroups = !config.boot.isContainer;
ProtectHostname = true;
ProtectKernelLogs = !config.boot.isContainer;
ProtectKernelModules = !config.boot.isContainer;
ProtectKernelTunables = !config.boot.isContainer;
LockPersonality = true;
PrivateTmp = !config.boot.isContainer;
# needed for hardware accelaration
PrivateDevices = false;
PrivateUsers = true;
RemoveIPC = true;
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = [ SystemCallFilter = [
"@system-service" "~@clock"
"~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@setuid" "~@aio"
"~@chown"
"~@cpu-emulation"
"~@debug"
"~@keyring"
"~@memlock"
"~@module"
"~@mount"
"~@obsolete"
"~@privileged"
"~@raw-io"
"~@reboot"
"~@setuid"
"~@swap"
]; ];
SystemCallErrorNumber = "EPERM";
}; };
}; };

View file

@ -201,7 +201,7 @@ in {
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/netdata -P /run/netdata/netdata.pid -D -c /etc/netdata/netdata.conf"; ExecStart = "${cfg.package}/bin/netdata -P /run/netdata/netdata.pid -D -c /etc/netdata/netdata.conf";
ExecReload = "${pkgs.util-linux}/bin/kill -s HUP -s USR1 -s USR2 $MAINPID"; ExecReload = "${pkgs.util-linux}/bin/kill -s HUP -s USR1 -s USR2 $MAINPID";
ExecPostStart = ''while [ "$(netdatacli ping)" != pong ]; do sleep 0.5; done''; ExecStartPost = ''while [ "$(netdatacli ping)" != pong ]; do sleep 0.5; done'';
TimeoutStopSec = 60; TimeoutStopSec = 60;
Restart = "on-failure"; Restart = "on-failure";

View file

@ -5,164 +5,136 @@ with lib;
let let
cfg = config.services.minidlna; cfg = config.services.minidlna;
port = 8200; settingsFormat = pkgs.formats.keyValue { listsAsDuplicateKeys = true; };
settingsFile = settingsFormat.generate "minidlna.conf" cfg.settings;
in in
{ {
###### interface ###### interface
options = { options.services.minidlna.enable = mkOption {
services.minidlna.enable = mkOption { type = types.bool;
type = types.bool; default = false;
default = false; description = ''
description = Whether to enable MiniDLNA, a simple DLNA server.
'' It serves media files such as video and music to DLNA client devices
Whether to enable MiniDLNA, a simple DLNA server. It serves such as televisions and media players. If you use the firewall consider
media files such as video and music to DLNA client devices adding the following: <literal>services.minidlna.openFirewall = true;</literal>
such as televisions and media players. '';
''; };
};
services.minidlna.mediaDirs = mkOption { options.services.minidlna.openFirewall = mkOption {
type = types.listOf types.str; type = types.bool;
default = []; default = false;
example = [ "/data/media" "V,/home/alice/video" ]; description = ''
description = Whether to open both HTTP (TCP) and SSDP (UDP) ports in the firewall.
'' '';
Directories to be scanned for media files. The prefixes };
<literal>A,</literal>, <literal>V,</literal> and
options.services.minidlna.settings = mkOption {
default = {};
description = ''
The contents of MiniDLNA's configuration file.
When the service is activated, a basic template is generated
from the current options opened here.
'';
type = types.submodule {
freeformType = settingsFormat.type;
options.media_dir = mkOption {
type = types.listOf types.str;
default = [];
example = [ "/data/media" "V,/home/alice/video" ];
description = ''
Directories to be scanned for media files.
The prefixes <literal>A,</literal>,<literal>V,</literal> and
<literal>P,</literal> restrict a directory to audio, video <literal>P,</literal> restrict a directory to audio, video
or image files. The directories must be accessible to the or image files. The directories must be accessible to the
<literal>minidlna</literal> user account. <literal>minidlna</literal> user account.
''; '';
}; };
options.notify_interval = mkOption {
services.minidlna.friendlyName = mkOption { type = types.int;
type = types.str; default = 90000;
default = "${config.networking.hostName} MiniDLNA"; description = ''
defaultText = literalExpression ''"''${config.networking.hostName} MiniDLNA"'';
example = "rpi3";
description =
''
Name that the DLNA server presents to clients.
'';
};
services.minidlna.rootContainer = mkOption {
type = types.str;
default = ".";
example = "B";
description =
''
Use a different container as the root of the directory tree presented
to clients. The possible values are:
- "." - standard container
- "B" - "Browse Directory"
- "M" - "Music"
- "P" - "Pictures"
- "V" - "Video"
- Or, you can specify the ObjectID of your desired root container
(eg. 1$F for Music/Playlists)
If you specify "B" and the client device is audio-only then
"Music/Folders" will be used as root.
'';
};
services.minidlna.loglevel = mkOption {
type = types.str;
default = "warn";
example = "general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn";
description =
''
Defines the type of messages that should be logged, and down to
which level of importance they should be considered.
The possible types are artwork, database, general, http,
inotify, metadata, scanner, ssdp and tivo.
The levels are off, fatal, error, warn, info and
debug, listed here in order of decreasing importance. off
turns off logging messages entirely, fatal logs the most
critical messages only, and so on down to debug that logs every
single messages.
The types are comma-separated, followed by an equal sign (=),
followed by a level that applies to the preceding types. This can
be repeated, separating each of these constructs with a comma.
Defaults to general,artwork,database,inotify,scanner,metadata,
http,ssdp,tivo=warn which logs every type of message at the
warn level.
'';
};
services.minidlna.announceInterval = mkOption {
type = types.int;
default = 895;
description =
''
The interval between announces (in seconds). The interval between announces (in seconds).
Instead of waiting on announces, one can open port UDP 1900 or
set <literal>openFirewall</literal> option to use SSDP discovery.
Furthermore announce interval has now been set as 90000 in order
to prevent disconnects with certain clients and to rely solely
on the SSDP method.
By default miniDLNA will announce its presence on the network Lower values (e.g. 60 seconds) should be used if one does not
approximately every 15 minutes. want to utilize SSDP. By default miniDLNA will announce its
presence on the network approximately every 15 minutes. Many
people prefer shorter announce intervals on their home networks,
especially when DLNA clients are started on demand.
Many people prefer shorter announce intervals (e.g. 60 seconds) Some relevant information can be found here:
on their home networks, especially when DLNA clients are https://sourceforge.net/p/minidlna/discussion/879957/thread/1389d197/
started on demand.
''; '';
}; };
options.port = mkOption {
services.minidlna.config = mkOption { type = types.port;
type = types.lines; default = 8200;
description = description = "Port number for HTTP traffic (descriptions, SOAP, media transfer).";
'' };
The contents of MiniDLNA's configuration file. options.db_dir = mkOption {
When the service is activated, a basic template is generated type = types.path;
from the current options opened here. default = "/var/cache/minidlna";
''; example = "/tmp/minidlna";
}; description = "Specify the directory where you want MiniDLNA to store its database and album art cache.";
};
services.minidlna.extraConfig = mkOption { options.friendly_name = mkOption {
type = types.lines; type = types.str;
default = ""; default = "${config.networking.hostName} MiniDLNA";
example = '' defaultText = literalExpression "config.networking.hostName";
# Not exhaustive example example = "rpi3";
# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO. description = "Name that the DLNA server presents to clients.";
enable_tivo=no };
# SSDP notify interval, in seconds. options.root_container = mkOption {
notify_interval=10 type = types.str;
# maximum number of simultaneous connections default = ".";
# note: many clients open several simultaneous connections while example = "B";
# streaming description = "Use a different container as the root of the directory tree presented to clients.";
max_connections=50 };
# set this to yes to allow symlinks that point outside user-defined options.log_level = mkOption {
# media_dirs. type = types.str;
wide_links=yes default = "warn";
''; example = "general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn";
description = description = "Defines the type of messages that should be logged and down to which level of importance.";
'' };
Extra minidlna options not yet opened for configuration here options.inotify = mkOption {
(strict_dlna, model_number, model_name, etc...). This is appended type = types.enum [ "yes" "no" ];
to the current service already provided. default = "no";
''; description = "Whether to enable inotify monitoring to automatically discover new files.";
};
options.enable_tivo = mkOption {
type = types.enum [ "yes" "no" ];
default = "no";
description = "Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.";
};
options.wide_links = mkOption {
type = types.enum [ "yes" "no" ];
default = "no";
description = "Set this to yes to allow symlinks that point outside user-defined media_dirs.";
};
}; };
}; };
imports = [
(mkRemovedOptionModule [ "services" "minidlna" "config" ] "")
(mkRemovedOptionModule [ "services" "minidlna" "extraConfig" ] "")
(mkRenamedOptionModule [ "services" "minidlna" "loglevel"] [ "services" "minidlna" "settings" "log_level" ])
(mkRenamedOptionModule [ "services" "minidlna" "rootContainer"] [ "services" "minidlna" "settings" "root_container" ])
(mkRenamedOptionModule [ "services" "minidlna" "mediaDirs"] [ "services" "minidlna" "settings" "media_dir" ])
(mkRenamedOptionModule [ "services" "minidlna" "friendlyName"] [ "services" "minidlna" "settings" "friendly_name" ])
(mkRenamedOptionModule [ "services" "minidlna" "announceInterval"] [ "services" "minidlna" "settings" "notify_interval" ])
];
###### implementation ###### implementation
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.minidlna.config = networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.port ];
'' networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall [ 1900 ];
port=${toString port}
friendly_name=${cfg.friendlyName}
db_dir=/var/cache/minidlna
log_level=${cfg.loglevel}
inotify=yes
root_container=${cfg.rootContainer}
${concatMapStrings (dir: ''
media_dir=${dir}
'') cfg.mediaDirs}
notify_interval=${toString cfg.announceInterval}
${cfg.extraConfig}
'';
users.users.minidlna = { users.users.minidlna = {
description = "MiniDLNA daemon user"; description = "MiniDLNA daemon user";
@ -186,7 +158,7 @@ in
PIDFile = "/run/minidlna/pid"; PIDFile = "/run/minidlna/pid";
ExecStart = ExecStart =
"${pkgs.minidlna}/sbin/minidlnad -S -P /run/minidlna/pid" + "${pkgs.minidlna}/sbin/minidlnad -S -P /run/minidlna/pid" +
" -f ${pkgs.writeText "minidlna.conf" cfg.config}"; " -f ${settingsFile}";
}; };
}; };
}; };

View file

@ -46,6 +46,15 @@ in {
description = "The mxisd/ma1sd package to use"; description = "The mxisd/ma1sd package to use";
}; };
environmentFile = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Path to an environment-file which may contain secrets to be
substituted via <package>envsubst</package>.
'';
};
dataDir = mkOption { dataDir = mkOption {
type = types.str; type = types.str;
default = "/var/lib/mxisd"; default = "/var/lib/mxisd";
@ -118,7 +127,12 @@ in {
Type = "simple"; Type = "simple";
User = "mxisd"; User = "mxisd";
Group = "mxisd"; Group = "mxisd";
ExecStart = "${cfg.package}/bin/${executable} -c ${configFile}"; EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
ExecStart = "${cfg.package}/bin/${executable} -c ${cfg.dataDir}/mxisd-config.yaml";
ExecStartPre = "${pkgs.writeShellScript "mxisd-substitute-secrets" ''
${pkgs.envsubst}/bin/envsubst -o ${cfg.dataDir}/mxisd-config.yaml \
-i ${configFile}
''}";
WorkingDirectory = cfg.dataDir; WorkingDirectory = cfg.dataDir;
Restart = "on-failure"; Restart = "on-failure";
}; };

View file

@ -0,0 +1,27 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.passSecretService;
in
{
options.services.passSecretService = {
enable = mkEnableOption "pass secret service";
package = mkOption {
type = types.package;
default = pkgs.pass-secret-service;
defaultText = literalExpression "pkgs.pass-secret-service";
description = "Which pass-secret-service package to use.";
example = literalExpression "pkgs.pass-secret-service.override { python3 = pkgs.python310 }";
};
};
config = mkIf cfg.enable {
systemd.packages = [ cfg.package ];
services.dbus.packages = [ cfg.package ];
};
meta.maintainers = with maintainers; [ aidalgol ];
}

View file

@ -51,6 +51,16 @@ let
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
renderValue = x:
if isList x then concatMapStringsSep "," (x: ''"${x}"'') x
else if isString x && hasInfix "," x then ''"${x}"''
else x;
ldapProxyConfig = pkgs.writeText "ldap-proxy.ini"
(generators.toINI {}
(flip mapAttrs cfg.ldap-proxy.settings
(const (mapAttrs (const renderValue)))));
in in
{ {
@ -172,7 +182,8 @@ in
enable = mkEnableOption "PrivacyIDEA LDAP Proxy"; enable = mkEnableOption "PrivacyIDEA LDAP Proxy";
configFile = mkOption { configFile = mkOption {
type = types.path; type = types.nullOr types.path;
default = null;
description = '' description = ''
Path to PrivacyIDEA LDAP Proxy configuration (proxy.ini). Path to PrivacyIDEA LDAP Proxy configuration (proxy.ini).
''; '';
@ -189,6 +200,26 @@ in
default = "pi-ldap-proxy"; default = "pi-ldap-proxy";
description = "Group account under which PrivacyIDEA LDAP proxy runs."; description = "Group account under which PrivacyIDEA LDAP proxy runs.";
}; };
settings = mkOption {
type = with types; attrsOf (attrsOf (oneOf [ str bool int (listOf str) ]));
default = {};
description = ''
Attribute-set containing the settings for <package>privacyidea-ldap-proxy</package>.
It's possible to pass secrets using env-vars as substitutes and
use the option <xref linkend="opt-services.privacyidea.ldap-proxy.environmentFile" />
to inject them via <package>envsubst</package>.
'';
};
environmentFile = mkOption {
default = null;
type = types.nullOr types.str;
description = ''
Environment file containing secrets to be substituted into
<xref linkend="opt-services.privacyidea.ldap-proxy.settings" />.
'';
};
}; };
}; };
}; };
@ -276,6 +307,18 @@ in
(mkIf cfg.ldap-proxy.enable { (mkIf cfg.ldap-proxy.enable {
assertions = [
{ assertion = let
xor = a: b: a && !b || !a && b;
in xor (cfg.ldap-proxy.settings == {}) (cfg.ldap-proxy.configFile == null);
message = "configFile & settings are mutually exclusive for services.privacyidea.ldap-proxy!";
}
];
warnings = mkIf (cfg.ldap-proxy.configFile != null) [
"Using services.privacyidea.ldap-proxy.configFile is deprecated! Use the RFC42-style settings option instead!"
];
systemd.services.privacyidea-ldap-proxy = let systemd.services.privacyidea-ldap-proxy = let
ldap-proxy-env = pkgs.python3.withPackages (ps: [ ps.privacyidea-ldap-proxy ]); ldap-proxy-env = pkgs.python3.withPackages (ps: [ ps.privacyidea-ldap-proxy ]);
in { in {
@ -284,14 +327,27 @@ in
serviceConfig = { serviceConfig = {
User = cfg.ldap-proxy.user; User = cfg.ldap-proxy.user;
Group = cfg.ldap-proxy.group; Group = cfg.ldap-proxy.group;
ExecStart = '' StateDirectory = "privacyidea-ldap-proxy";
EnvironmentFile = mkIf (cfg.ldap-proxy.environmentFile != null)
[ cfg.ldap-proxy.environmentFile ];
ExecStartPre =
"${pkgs.writeShellScript "substitute-secrets-ldap-proxy" ''
${pkgs.envsubst}/bin/envsubst \
-i ${ldapProxyConfig} \
-o $STATE_DIRECTORY/ldap-proxy.ini
''}";
ExecStart = let
configPath = if cfg.ldap-proxy.settings != {}
then "%S/privacyidea-ldap-proxy/ldap-proxy.ini"
else cfg.ldap-proxy.configFile;
in ''
${ldap-proxy-env}/bin/twistd \ ${ldap-proxy-env}/bin/twistd \
--nodaemon \ --nodaemon \
--pidfile= \ --pidfile= \
-u ${cfg.ldap-proxy.user} \ -u ${cfg.ldap-proxy.user} \
-g ${cfg.ldap-proxy.group} \ -g ${cfg.ldap-proxy.group} \
ldap-proxy \ ldap-proxy \
-c ${cfg.ldap-proxy.configFile} -c ${configPath}
''; '';
Restart = "always"; Restart = "always";
}; };

View file

@ -8,21 +8,22 @@ let
pkg = cfg.package.override (optionalAttrs cfg.sso.enable { pkg = cfg.package.override (optionalAttrs cfg.sso.enable {
enableSSO = cfg.sso.enable; enableSSO = cfg.sso.enable;
crowdProperties = ''
application.name ${cfg.sso.applicationName}
application.password ${cfg.sso.applicationPassword}
application.login.url ${cfg.sso.crowd}/console/
crowd.server.url ${cfg.sso.crowd}/services/
crowd.base.url ${cfg.sso.crowd}/
session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval ${toString cfg.sso.validationInterval}
session.lastvalidation session.lastvalidation
'';
}); });
crowdProperties = pkgs.writeText "crowd.properties" ''
application.name ${cfg.sso.applicationName}
application.password @NIXOS_JIRA_CROWD_SSO_PWD@
application.login.url ${cfg.sso.crowd}/console/
crowd.server.url ${cfg.sso.crowd}/services/
crowd.base.url ${cfg.sso.crowd}/
session.isauthenticated session.isauthenticated
session.tokenkey session.tokenkey
session.validationinterval ${toString cfg.sso.validationInterval}
session.lastvalidation session.lastvalidation
'';
in in
{ {
@ -112,9 +113,9 @@ in
description = "Exact name of this JIRA instance in Crowd"; description = "Exact name of this JIRA instance in Crowd";
}; };
applicationPassword = mkOption { applicationPasswordFile = mkOption {
type = types.str; type = types.str;
description = "Application password of this JIRA instance in Crowd"; description = "Path to the file containing the application password of this JIRA instance in Crowd";
}; };
validationInterval = mkOption { validationInterval = mkOption {
@ -181,6 +182,7 @@ in
JIRA_HOME = cfg.home; JIRA_HOME = cfg.home;
JAVA_HOME = "${cfg.jrePackage}"; JAVA_HOME = "${cfg.jrePackage}";
CATALINA_OPTS = concatStringsSep " " cfg.catalinaOptions; CATALINA_OPTS = concatStringsSep " " cfg.catalinaOptions;
JAVA_OPTS = mkIf cfg.sso.enable "-Dcrowd.properties=${cfg.home}/crowd.properties";
}; };
preStart = '' preStart = ''
@ -191,6 +193,14 @@ in
-e 's,protocol="HTTP/1.1",protocol="HTTP/1.1" proxyName="${cfg.proxy.name}" proxyPort="${toString cfg.proxy.port}" scheme="${cfg.proxy.scheme}" secure="${toString cfg.proxy.secure}",' \ -e 's,protocol="HTTP/1.1",protocol="HTTP/1.1" proxyName="${cfg.proxy.name}" proxyPort="${toString cfg.proxy.port}" scheme="${cfg.proxy.scheme}" secure="${toString cfg.proxy.secure}",' \
'') + '' '') + ''
${pkg}/conf/server.xml.dist > ${cfg.home}/server.xml ${pkg}/conf/server.xml.dist > ${cfg.home}/server.xml
${optionalString cfg.sso.enable ''
install -m660 ${crowdProperties} ${cfg.home}/crowd.properties
${pkgs.replace-secret}/bin/replace-secret \
'@NIXOS_JIRA_CROWD_SSO_PWD@' \
${cfg.sso.applicationPasswordFile} \
${cfg.home}/crowd.properties
''}
''; '';
serviceConfig = { serviceConfig = {
@ -204,4 +214,10 @@ in
}; };
}; };
}; };
imports = [
(mkRemovedOptionModule [ "services" "jira" "sso" "applicationPassword" ] ''
Use `applicationPasswordFile` instead!
'')
];
} }

View file

@ -354,6 +354,7 @@ in
plasma-browser-integration plasma-browser-integration
konsole konsole
oxygen oxygen
(lib.getBin qttools) # Expose qdbus in PATH
]; ];
in in
requiredPackages requiredPackages
@ -399,9 +400,10 @@ in
services.accounts-daemon.enable = true; services.accounts-daemon.enable = true;
# when changing an account picture the accounts-daemon reads a temporary file containing the image which systemsettings5 may place under /tmp # when changing an account picture the accounts-daemon reads a temporary file containing the image which systemsettings5 may place under /tmp
systemd.services.accounts-daemon.serviceConfig.PrivateTmp = false; systemd.services.accounts-daemon.serviceConfig.PrivateTmp = false;
services.power-profiles-daemon.enable = mkDefault true;
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.xserver.libinput.enable = mkDefault true; services.xserver.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid # Extra UDEV rules used by Solid

View file

@ -264,8 +264,6 @@ def main() -> None:
if installed_version < available_version: if installed_version < available_version:
print("updating systemd-boot from %s to %s" % (installed_version, available_version)) print("updating systemd-boot from %s to %s" % (installed_version, available_version))
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"]) subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
else:
print("leaving systemd-boot %s in place (%s is not newer)" % (installed_version, available_version))
mkdir_p("@efiSysMountPoint@/efi/nixos") mkdir_p("@efiSysMountPoint@/efi/nixos")
mkdir_p("@efiSysMountPoint@/loader/entries") mkdir_p("@efiSysMountPoint@/loader/entries")

View file

@ -71,10 +71,6 @@ in
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = crioPackage; default = crioPackage;
defaultText = literalDocBook ''
<literal>pkgs.cri-o</literal> built with
<literal>config.${opt.extraPackages}</literal>.
'';
internal = true; internal = true;
description = '' description = ''
The final CRI-O package (including extra packages). The final CRI-O package (including extra packages).

View file

@ -34,7 +34,8 @@ in
package = mkOption { package = mkOption {
type = types.nullOr types.package; type = types.nullOr types.package;
default = config.boot.kernelPackages.prl-tools; default = config.boot.kernelPackages.prl-tools;
defaultText = literalExpression "config.boot.kernelPackages.prl-tools"; defaultText = "config.boot.kernelPackages.prl-tools";
example = literalExpression "config.boot.kernelPackages.prl-tools";
description = '' description = ''
Defines which package to use for prl-tools. Override to change the version. Defines which package to use for prl-tools. Override to change the version.
''; '';
@ -44,27 +45,6 @@ in
}; };
config = mkIf config.hardware.parallels.enable { config = mkIf config.hardware.parallels.enable {
services.xserver = {
drivers = singleton
{ name = "prlvideo"; modules = [ prl-tools ]; };
screenSection = ''
Option "NoMTRR"
'';
config = ''
Section "InputClass"
Identifier "prlmouse"
MatchIsPointer "on"
MatchTag "prlmouse"
Driver "prlmouse"
EndSection
'';
};
hardware.opengl.package = prl-tools;
hardware.opengl.package32 = pkgs.pkgsi686Linux.linuxPackages.prl-tools.override { libsOnly = true; kernel = null; };
hardware.opengl.setLdLibraryPath = true;
services.udev.packages = [ prl-tools ]; services.udev.packages = [ prl-tools ];
@ -72,37 +52,44 @@ in
boot.extraModulePackages = [ prl-tools ]; boot.extraModulePackages = [ prl-tools ];
boot.kernelModules = [ "prl_tg" "prl_eth" "prl_fs" "prl_fs_freeze" ]; boot.kernelModules = [ "prl_fs" "prl_fs_freeze" "prl_tg" ]
++ optional (pkgs.stdenv.hostPlatform.system == "aarch64-linux") "prl_notifier";
services.timesyncd.enable = false; services.timesyncd.enable = false;
systemd.services.prltoolsd = { systemd.services.prltoolsd = {
description = "Parallels Tools' service"; description = "Parallels Tools Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
ExecStart = "${prl-tools}/bin/prltoolsd -f"; ExecStart = "${prl-tools}/bin/prltoolsd -f";
PIDFile = "/var/run/prltoolsd.pid"; PIDFile = "/var/run/prltoolsd.pid";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
systemd.services.prlfsmountd = mkIf config.hardware.parallels.autoMountShares { systemd.services.prlfsmountd = mkIf config.hardware.parallels.autoMountShares {
description = "Parallels Shared Folders Daemon"; description = "Parallels Guest File System Sharing Tool";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ prl-tools ];
serviceConfig = rec { serviceConfig = rec {
ExecStart = "${prl-tools}/sbin/prlfsmountd ${PIDFile}"; ExecStart = "${prl-tools}/sbin/prlfsmountd ${PIDFile}";
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /media"; ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /media";
ExecStopPost = "${prl-tools}/sbin/prlfsmountd -u"; ExecStopPost = "${prl-tools}/sbin/prlfsmountd -u";
PIDFile = "/run/prlfsmountd.pid"; PIDFile = "/run/prlfsmountd.pid";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
systemd.services.prlshprint = { systemd.services.prlshprint = {
description = "Parallels Shared Printer Tool"; description = "Parallels Printing Tool";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
bindsTo = [ "cups.service" ]; bindsTo = [ "cups.service" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
ExecStart = "${prl-tools}/bin/prlshprint"; ExecStart = "${prl-tools}/bin/prlshprint";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
@ -110,43 +97,47 @@ in
prlcc = { prlcc = {
description = "Parallels Control Center"; description = "Parallels Control Center";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcc"; ExecStart = "${prl-tools}/bin/prlcc";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
prldnd = { prldnd = {
description = "Parallels Control Center"; description = "Parallels Drag And Drop Tool";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
ExecStart = "${prl-tools}/bin/prldnd"; ExecStart = "${prl-tools}/bin/prldnd";
}; WorkingDirectory = "${prl-tools}/bin";
};
prl_wmouse_d = {
description = "Parallels Walking Mouse Daemon";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prl_wmouse_d";
}; };
}; };
prlcp = { prlcp = {
description = "Parallels CopyPaste Tool"; description = "Parallels Copy Paste Tool";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcp"; ExecStart = "${prl-tools}/bin/prlcp";
Restart = "always";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
prlsga = { prlsga = {
description = "Parallels Shared Guest Applications Tool"; description = "Parallels Shared Guest Applications Tool";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
ExecStart = "${prl-tools}/bin/prlsga"; ExecStart = "${prl-tools}/bin/prlsga";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
prlshprof = { prlshprof = {
description = "Parallels Shared Profile Tool"; description = "Parallels Shared Profile Tool";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = { serviceConfig = {
ExecStart = "${prl-tools}/bin/prlshprof"; ExecStart = "${prl-tools}/bin/prlshprof";
WorkingDirectory = "${prl-tools}/bin";
}; };
}; };
}; };

View file

@ -279,6 +279,7 @@ in {
libresprite = handleTest ./libresprite.nix {}; libresprite = handleTest ./libresprite.nix {};
libreswan = handleTest ./libreswan.nix {}; libreswan = handleTest ./libreswan.nix {};
librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; }; librewolf = handleTest ./firefox.nix { firefoxPackage = pkgs.librewolf; };
libuiohook = handleTest ./libuiohook.nix {};
lidarr = handleTest ./lidarr.nix {}; lidarr = handleTest ./lidarr.nix {};
lightdm = handleTest ./lightdm.nix {}; lightdm = handleTest ./lightdm.nix {};
limesurvey = handleTest ./limesurvey.nix {}; limesurvey = handleTest ./limesurvey.nix {};
@ -413,6 +414,7 @@ in {
pam-oath-login = handleTest ./pam/pam-oath-login.nix {}; pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
pam-u2f = handleTest ./pam/pam-u2f.nix {}; pam-u2f = handleTest ./pam/pam-u2f.nix {};
pam-ussh = handleTest ./pam/pam-ussh.nix {}; pam-ussh = handleTest ./pam/pam-ussh.nix {};
pass-secret-service = handleTest ./pass-secret-service.nix {};
pantalaimon = handleTest ./matrix/pantalaimon.nix {}; pantalaimon = handleTest ./matrix/pantalaimon.nix {};
pantheon = handleTest ./pantheon.nix {}; pantheon = handleTest ./pantheon.nix {};
paperless = handleTest ./paperless.nix {}; paperless = handleTest ./paperless.nix {};

View file

@ -18,6 +18,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
enable = true; enable = true;
jobBuilder = { jobBuilder = {
enable = true; enable = true;
accessUser = "admin";
accessTokenFile = "/var/lib/jenkins/secrets/initialAdminPassword";
nixJobs = [ nixJobs = [
{ job = { { job = {
name = "job-1"; name = "job-1";
@ -100,12 +102,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/folder-1/config.xml") master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/folder-1/config.xml")
master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/folder-1/jobs/job-2/config.xml") master.wait_until_succeeds("test -f /var/lib/jenkins/jobs/folder-1/jobs/job-2/config.xml")
# Wait until jenkins is ready, reload configuration and verify it also # Verify that jenkins also sees the jobs.
# sees the jobs. out = master.succeed("${pkgs.jenkins}/bin/jenkins-cli -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
master.succeed("curl --fail ${jenkinsUrl}/cli")
master.succeed("curl ${jenkinsUrl}/jnlpJars/jenkins-cli.jar -O")
master.succeed("${pkgs.jre}/bin/java -jar jenkins-cli.jar -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) reload-configuration")
out = master.succeed("${pkgs.jre}/bin/java -jar jenkins-cli.jar -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
jobs = [x.strip() for x in out.splitlines()] jobs = [x.strip() for x in out.splitlines()]
# Seeing jobs inside folders requires the Folders plugin # Seeing jobs inside folders requires the Folders plugin
# (https://plugins.jenkins.io/cloudbees-folder/), which we don't have # (https://plugins.jenkins.io/cloudbees-folder/), which we don't have
@ -123,9 +121,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
master.wait_until_fails("test -f /var/lib/jenkins/jobs/folder-1/config.xml") master.wait_until_fails("test -f /var/lib/jenkins/jobs/folder-1/config.xml")
master.wait_until_fails("test -f /var/lib/jenkins/jobs/folder-1/jobs/job-2/config.xml") master.wait_until_fails("test -f /var/lib/jenkins/jobs/folder-1/jobs/job-2/config.xml")
# Reload jenkins' configuration and verify it also sees the jobs as removed. # Verify that jenkins also sees the jobs as removed.
master.succeed("${pkgs.jre}/bin/java -jar jenkins-cli.jar -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) reload-configuration") out = master.succeed("${pkgs.jenkins}/bin/jenkins-cli -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
out = master.succeed("${pkgs.jre}/bin/java -jar jenkins-cli.jar -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
jobs = [x.strip() for x in out.splitlines()] jobs = [x.strip() for x in out.splitlines()]
assert jobs == [], f"jobs != []: {jobs}" assert jobs == [], f"jobs != []: {jobs}"
''; '';

View file

@ -33,7 +33,11 @@ let
redisImage = pkgs.dockerTools.buildImage { redisImage = pkgs.dockerTools.buildImage {
name = "redis"; name = "redis";
tag = "latest"; tag = "latest";
contents = [ pkgs.redis pkgs.bind.host ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.redis pkgs.bind.host ];
};
config.Entrypoint = ["/bin/redis-server"]; config.Entrypoint = ["/bin/redis-server"];
}; };
@ -54,7 +58,11 @@ let
probeImage = pkgs.dockerTools.buildImage { probeImage = pkgs.dockerTools.buildImage {
name = "probe"; name = "probe";
tag = "latest"; tag = "latest";
contents = [ pkgs.bind.host pkgs.busybox ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ pkgs.bind.host pkgs.busybox ];
};
config.Entrypoint = ["/bin/tail"]; config.Entrypoint = ["/bin/tail"];
}; };

View file

@ -84,7 +84,11 @@ let
kubectlImage = pkgs.dockerTools.buildImage { kubectlImage = pkgs.dockerTools.buildImage {
name = "kubectl"; name = "kubectl";
tag = "latest"; tag = "latest";
contents = [ copyKubectl pkgs.busybox kubectlPod2 ]; copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ copyKubectl pkgs.busybox kubectlPod2 ];
};
config.Entrypoint = ["/bin/sh"]; config.Entrypoint = ["/bin/sh"];
}; };

View file

@ -0,0 +1,21 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "libuiohook";
meta = with lib.maintainers; { maintainers = [ anoa ]; };
nodes.client = { nodes, ... }:
let user = nodes.client.config.users.users.alice;
in {
imports = [ ./common/user-account.nix ./common/x11.nix ];
environment.systemPackages = [ pkgs.libuiohook.test ];
test-support.displayManager.auto.user = user.name;
};
testScript = { nodes, ... }:
let user = nodes.client.config.users.users.alice;
in ''
client.wait_for_x()
client.succeed("su - alice -c ${pkgs.libuiohook.test}/share/uiohook_tests >&2 &")
'';
})

View file

@ -12,6 +12,7 @@ import ../make-test-python.nix ({ ... }:
debug = true; debug = true;
enable = true; enable = true;
interactive = true; interactive = true;
origin = "nixos-test";
}; };
}; };
@ -19,7 +20,7 @@ import ../make-test-python.nix ({ ... }:
'' ''
machine.wait_for_unit("multi-user.target") machine.wait_for_unit("multi-user.target")
machine.succeed( machine.succeed(
'egrep "auth required .*/lib/security/pam_u2f.so.*debug.*interactive.*cue" /etc/pam.d/ -R' 'egrep "auth required .*/lib/security/pam_u2f.so.*debug.*interactive.*cue.*origin=nixos-test" /etc/pam.d/ -R'
) )
''; '';
}) })

View file

@ -0,0 +1,69 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "pass-secret-service";
meta.maintainers = with lib; [ aidalgol ];
nodes.machine = { nodes, pkgs, ... }:
{
imports = [ ./common/user-account.nix ];
services.passSecretService.enable = true;
environment.systemPackages = [
# Create a script that tries to make a request to the D-Bus secrets API.
(pkgs.writers.writePython3Bin "secrets-dbus-init"
{
libraries = [ pkgs.python3Packages.secretstorage ];
} ''
import secretstorage
print("Initializing dbus connection...")
connection = secretstorage.dbus_init()
print("Requesting default collection...")
collection = secretstorage.get_default_collection(connection)
print("Done! dbus-org.freedesktop.secrets should now be active.")
'')
pkgs.pass
];
programs.gnupg = {
agent.enable = true;
agent.pinentryFlavor = "tty";
dirmngr.enable = true;
};
};
# Some of the commands are run via a virtual console because they need to be
# run under a real login session, with D-Bus running in the environment.
testScript = { nodes, ... }:
let
user = nodes.machine.config.users.users.alice;
gpg-uid = "alice@example.net";
gpg-pw = "foobar9000";
ready-file = "/tmp/secrets-dbus-init.done";
in
''
# Initialise the pass(1) storage.
machine.succeed("""
sudo -u alice gpg --pinentry-mode loopback --batch --passphrase ${gpg-pw} \
--quick-gen-key ${gpg-uid} \
""")
machine.succeed("sudo -u alice pass init ${gpg-uid}")
with subtest("Service is not running on login"):
machine.wait_until_tty_matches("1", "login: ")
machine.send_chars("alice\n")
machine.wait_until_tty_matches("1", "login: alice")
machine.wait_until_succeeds("pgrep login")
machine.wait_until_tty_matches("1", "Password: ")
machine.send_chars("${user.password}\n")
machine.wait_until_succeeds("pgrep -u alice bash")
_, output = machine.systemctl("status dbus-org.freedesktop.secrets --no-pager", "alice")
assert "Active: inactive (dead)" in output
with subtest("Service starts after a client tries to talk to the D-Bus API"):
machine.send_chars("secrets-dbus-init; touch ${ready-file}\n")
machine.wait_for_file("${ready-file}")
_, output = machine.systemctl("status dbus-org.freedesktop.secrets --no-pager", "alice")
assert "Active: active (running)" in output
'';
})

View file

@ -107,11 +107,14 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
) )
# don't bother to test LDAP authentification # don't bother to test LDAP authentification
# exclude resql test due to recent postgres 14.4 update
# see bugreport here https://redmine.postgresql.org/issues/7527
with subtest("run browser test"): with subtest("run browser test"):
machine.succeed( machine.succeed(
'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \ 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
&& python regression/runtests.py --pkg browser --exclude \ && python regression/runtests.py \
browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login' --pkg browser \
--exclude browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login,resql'
) )
# fontconfig is necessary for chromium to run # fontconfig is necessary for chromium to run
@ -123,10 +126,11 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
&& python regression/runtests.py --pkg feature_tests' && python regression/runtests.py --pkg feature_tests'
) )
with subtest("run resql test"): # reactivate this test again, when the postgres 14.4 test has been fixed
machine.succeed( # with subtest("run resql test"):
'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \ # machine.succeed(
&& python regression/runtests.py --pkg resql' # 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
) # && python regression/runtests.py --pkg resql'
# )
''; '';
}) })

View file

@ -10,15 +10,15 @@ in {
services.unit = { services.unit = {
enable = true; enable = true;
config = pkgs.lib.strings.toJSON { config = pkgs.lib.strings.toJSON {
listeners."*:9080".application = "php_80"; listeners."*:9081".application = "php_81";
applications.php_80 = { applications.php_81 = {
type = "php 8.0"; type = "php 8.1";
processes = 1; processes = 1;
user = "testuser"; user = "testuser";
group = "testgroup"; group = "testgroup";
root = "${testdir}/www"; root = "${testdir}/www";
index = "info.php"; index = "info.php";
options.file = "${pkgs.unit.usedPhp80}/lib/php.ini"; options.file = "${pkgs.unit.usedPhp81}/lib/php.ini";
}; };
}; };
}; };
@ -34,14 +34,19 @@ in {
}; };
}; };
testScript = '' testScript = ''
machine.start()
machine.wait_for_unit("unit.service") machine.wait_for_unit("unit.service")
machine.wait_for_open_port(9081)
# Check so we get an evaluated PHP back # Check so we get an evaluated PHP back
response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9080/") response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9081/")
assert "PHP Version ${pkgs.unit.usedPhp80.version}" in response, "PHP version not detected" assert "PHP Version ${pkgs.unit.usedPhp81.version}" in response, "PHP version not detected"
# Check so we have database and some other extensions loaded # Check so we have database and some other extensions loaded
for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]: for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
assert ext in response, f"Missing {ext} extension" assert ext in response, f"Missing {ext} extension"
machine.shutdown()
''; '';
}) })

View file

@ -1,8 +1,6 @@
{ lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }: { lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
let python3Packages.buildPythonApplication rec {
py = python3Packages;
in py.buildPythonApplication rec {
pname = "friture"; pname = "friture";
version = "0.49"; version = "0.49";
@ -13,10 +11,10 @@ in py.buildPythonApplication rec {
sha256 = "sha256-xKgyBV/Qc+9PgXyxcT0xG1GXLC6KnjavJ/0SUE+9VSY="; sha256 = "sha256-xKgyBV/Qc+9PgXyxcT0xG1GXLC6KnjavJ/0SUE+9VSY=";
}; };
nativeBuildInputs = (with py; [ numpy cython scipy ]) ++ nativeBuildInputs = (with python3Packages; [ numpy cython scipy ]) ++
[ wrapQtAppsHook ]; [ wrapQtAppsHook ];
propagatedBuildInputs = with py; [ propagatedBuildInputs = with python3Packages; [
sounddevice sounddevice
pyopengl pyopengl
pyopengl-accelerate pyopengl-accelerate

View file

@ -0,0 +1,31 @@
{ lib, mkDerivation, fetchFromGitHub, pkg-config, qmake, qtbase, libjack2 }:
mkDerivation rec {
pname = "jack_autoconnect";
# It does not have any versions (yet?)
version = "unstable-2021-02-01";
src = fetchFromGitHub {
owner = "kripton";
repo = pname;
rev = "fe0c8f69149e30979e067646f80b9d326341c02b";
sha256 = "sha256-imvNc498Q2W9RKmiOoNepSoJzIv2tGvFG6hx+seiifw=";
};
buildInputs = [ qtbase libjack2 ];
nativeBuildInputs = [ pkg-config qmake ];
installPhase = ''
mkdir -p -- "$out/bin"
cp -- jack_autoconnect "$out/bin"
'';
meta = with lib; {
homepage = "https://github.com/kripton/jack_autoconnect";
description =
"Tiny application that reacts on port registrations by clients and connects them";
maintainers = with maintainers; [ unclechu ];
license = licenses.gpl2Only;
platforms = platforms.linux;
};
}

View file

@ -5,14 +5,14 @@
mkDerivation rec { mkDerivation rec {
pname = "qpwgraph"; pname = "qpwgraph";
version = "0.2.5"; version = "0.3.4";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
owner = "rncbc"; owner = "rncbc";
repo = "qpwgraph"; repo = "qpwgraph";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-OYIBlTO1vXmmY4/ZacvsEQ5EnOfetBvnG2v5xL44czY="; sha256 = "sha256-JCnvwSredXO1WrTu4BIUaUTTjPcd5U/ZZcRbI/GiFfc=";
}; };
nativeBuildInputs = [ cmake pkg-config ]; nativeBuildInputs = [ cmake pkg-config ];

View file

@ -5,11 +5,11 @@
appimageTools.wrapType2 rec { appimageTools.wrapType2 rec {
pname = "sonixd"; pname = "sonixd";
version = "0.15.1"; version = "0.15.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/jeffvli/sonixd/releases/download/v${version}/Sonixd-${version}-linux-x86_64.AppImage"; url = "https://github.com/jeffvli/sonixd/releases/download/v${version}/Sonixd-${version}-linux-x86_64.AppImage";
sha256 = "sha256-23WU1nwvrzyw0J+Pplm3JbsScjJxu+RhmwVoe/PjozY="; sha256 = "sha256-+4L3XAuR7T/z5a58SXre6yUiVi7TvSAs8vPgEC7hcIw=";
}; };
extraInstallCommands = '' extraInstallCommands = ''

View file

@ -0,0 +1,41 @@
From 408e6a5170bbe9f854bf46e1cbae21265cf25294 Mon Sep 17 00:00:00 2001
From: Florian Bruhin <me@the-compiler.org>
Date: Mon, 25 Apr 2022 18:39:07 +0200
Subject: [PATCH] Add Collection SearchType
Backport of https://github.com/ramsayleung/rspotify/pull/306
---
src/senum.rs | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/senum.rs b/src/senum.rs
index c94c31c..79d8730 100644
--- a/src/senum.rs
+++ b/src/senum.rs
@@ -87,6 +87,7 @@ pub enum Type {
User,
Show,
Episode,
+ Collection,
}
impl Type {
pub fn as_str(&self) -> &str {
@@ -98,6 +99,7 @@ pub fn as_str(&self) -> &str {
Type::User => "user",
Type::Show => "show",
Type::Episode => "episode",
+ Type::Collection => "collection",
}
}
}
@@ -112,6 +114,7 @@ fn from_str(s: &str) -> Result<Self, Self::Err> {
"user" => Ok(Type::User),
"show" => Ok(Type::Show),
"episode" => Ok(Type::Episode),
+ "collection" => Ok(Type::Collection),
_ => Err(Error::new(ErrorKind::NoEnum(s.to_owned()))),
}
}
--
2.35.3

View file

@ -0,0 +1,11 @@
--- a/Cargo.lock 2022-04-27 17:25:49.017415644 +0300
+++ b/Cargo.lock 2022-04-27 17:25:51.307433984 +0300
@@ -1722,8 +1722,6 @@
[[package]]
name = "rspotify"
version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eefd7bb58b714606b30a490f751d7926942e2874eef5e82934d60d7a4a68dca4"
dependencies = [
"base64 0.10.1",
"chrono",

View file

@ -0,0 +1,12 @@
--- a/Cargo.toml 2022-04-25 18:20:04.329712912 +0200
+++ b/Cargo.toml 2022-04-25 18:20:44.296429608 +0200
@@ -29,6 +29,9 @@
rand = "0.8.3"
anyhow = "1.0.43"
+[patch.crates-io]
+rspotify = { path = "./rspotify-0.10.0" }
+
[[bin]]
bench = false
path = "src/main.rs"

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, pkg-config, openssl, python3, libxcb, AppKit, Security }: { lib, stdenv, fetchFromGitHub, fetchCrate, rustPlatform, installShellFiles, pkg-config, openssl, python3, libxcb, AppKit, Security }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "spotify-tui"; pname = "spotify-tui";
@ -11,7 +11,40 @@ rustPlatform.buildRustPackage rec {
sha256 = "sha256-L5gg6tjQuYoAC89XfKE38KCFONwSAwfNoFEUPH4jNAI="; sha256 = "sha256-L5gg6tjQuYoAC89XfKE38KCFONwSAwfNoFEUPH4jNAI=";
}; };
cargoSha256 = "sha256-iucI4/iMF+uXRlnMttobu4xo3IQXq7tGiSSN8eCrLM0="; # Use patched rspotify
cargoPatches = [
./Cargo.lock.patch
];
patches = [
./Cargo.toml.patch
];
preBuild = let
rspotify = stdenv.mkDerivation rec {
pname = "rspotify";
version = "0.10.0";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-KDtqjVQlMHlhL1xXP3W1YG/YuX9pdCjwW/7g18469Ts=";
};
dontBuild = true;
installPhase = ''
mkdir $out
cp -R . $out
'';
patches = [
# add `collection` variant
./0001-Add-Collection-SearchType.patch
];
};
in ''
ln -s ${rspotify} ./rspotify-${rspotify.version}
'';
cargoSha256 = "sha256-S8zuVYcyYvrwggIvlpxNydhoN9kx6xLBwYJSHcbEK40=";
nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config python3 ]; nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config python3 ];
buildInputs = [ ] buildInputs = [ ]

View file

@ -23,13 +23,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tauon"; pname = "tauon";
version = "7.2.1"; version = "7.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Taiko2k"; owner = "Taiko2k";
repo = "TauonMusicBox"; repo = "TauonMusicBox";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-wEGdqMKLhKjnxNTgqNQpUpYkMk/FuRAKsWX+P/9nUG4="; sha256 = "sha256-g3mRVPOXU3N+MApLaHAAIIsVuVv2GeB1Nj//8tuS0oI=";
}; };
postPatch = '' postPatch = ''
@ -71,7 +71,6 @@ stdenv.mkDerivation rec {
mpg123 mpg123
opusfile opusfile
pango pango
pulseaudio
wavpack wavpack
]; ];
@ -100,6 +99,7 @@ stdenv.mkDerivation rec {
makeWrapperArgs = [ makeWrapperArgs = [
"--prefix PATH : ${lib.makeBinPath [ffmpeg]}" "--prefix PATH : ${lib.makeBinPath [ffmpeg]}"
"--prefix LD_LIBRARY_PATH : ${pulseaudio}/lib"
"--prefix PYTHONPATH : $out/share/tauon" "--prefix PYTHONPATH : $out/share/tauon"
"--set GI_TYPELIB_PATH $GI_TYPELIB_PATH" "--set GI_TYPELIB_PATH $GI_TYPELIB_PATH"
]; ];
@ -116,7 +116,7 @@ stdenv.mkDerivation rec {
install -Dm755 extra/tauonmb.desktop $out/share/applications/tauonmb.desktop install -Dm755 extra/tauonmb.desktop $out/share/applications/tauonmb.desktop
mkdir -p $out/share/icons/hicolor/scalable/apps mkdir -p $out/share/icons/hicolor/scalable/apps
install -Dm644 extra/tauonmb{,-symbolic}.svg $out/share/icons/hicolor/scalable/apps install -Dm644 extra/tauonmb{,-symbolic}.svg $out/share/icons/hicolor/scalable/apps
''; '';
meta = with lib; { meta = with lib; {
description = "The Linux desktop music player from the future"; description = "The Linux desktop music player from the future";

View file

@ -1,6 +1,7 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitLab , fetchFromGitLab
, python3
, pkg-config , pkg-config
, which , which
, makeWrapper , makeWrapper
@ -12,19 +13,21 @@
, vorbis-tools , vorbis-tools
}: }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "uade123"; pname = "uade123";
version = "unstable-2021-05-21"; version = "3.01";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "uade-music-player"; owner = "uade-music-player";
repo = "uade"; repo = "uade";
rev = "7169a46e777d19957cd7ff8ac31843203e725ddc"; rev = "uade-${version}";
sha256 = "1dm7c924fy79y3wkb0qi71m1k6yw1x6j3whw7d0w4ka9hv6za03b"; sha256 = "0fam3g8mlzrirrac3iwcwsz9jmsqwdy7lkwwdr2q4pkq9cpmh8m5";
}; };
postPatch = '' postPatch = ''
patchShebangs . patchShebangs configure
substituteInPlace configure \
--replace 'PYTHON_SETUP_ARGS=""' 'PYTHON_SETUP_ARGS="--prefix=$out"'
substituteInPlace src/frontends/mod2ogg/mod2ogg2.sh.in \ substituteInPlace src/frontends/mod2ogg/mod2ogg2.sh.in \
--replace '-e stat' '-n stat' \ --replace '-e stat' '-n stat' \
--replace '/usr/local' "$out" --replace '/usr/local' "$out"
@ -34,6 +37,7 @@ stdenv.mkDerivation {
pkg-config pkg-config
which which
makeWrapper makeWrapper
python3
]; ];
buildInputs = [ buildInputs = [
@ -43,6 +47,10 @@ stdenv.mkDerivation {
lame lame
flac flac
vorbis-tools vorbis-tools
(python3.withPackages (p: with p; [
pillow
tqdm
]))
]; ];
configureFlags = [ configureFlags = [
@ -58,6 +66,8 @@ stdenv.mkDerivation {
--prefix PATH : $out/bin:${lib.makeBinPath [ sox lame flac vorbis-tools ]} --prefix PATH : $out/bin:${lib.makeBinPath [ sox lame flac vorbis-tools ]}
# This is an old script, don't break expectations by renaming it # This is an old script, don't break expectations by renaming it
ln -s $out/bin/mod2ogg2{.sh,} ln -s $out/bin/mod2ogg2{.sh,}
wrapProgram $out/bin/generate_amiga_oscilloscope_view \
--prefix PYTHONPATH : "$PYTHONPATH:$out/${python3.sitePackages}"
''; '';
meta = with lib; { meta = with lib; {

View file

@ -14,16 +14,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "alfis"; pname = "alfis";
version = "0.7.4"; version = "0.7.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Revertron"; owner = "Revertron";
repo = "Alfis"; repo = "Alfis";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-mwiG9DwnCX/9REq/oNHi2n/l829Ozgum/WygIb+FV04="; sha256 = "sha256-g9oaUdmwHGU2EIqSYLGlSN8597ORTzm8XzTxBbiKUNA=";
}; };
cargoSha256 = "sha256-ylSVyrI9LuctuoMZsZpIH7loBBjxE2onk6L19uV8zCQ="; cargoSha256 = "sha256-SNROmuChSOHUMhMCTKPOOuoYOATx9JEwuVP0mtGZ/G8=";
checkFlags = [ checkFlags = [
# these want internet access, disable them # these want internet access, disable them

View file

@ -0,0 +1,35 @@
{ lib, fetchurl, appimageTools }:
let
pname = "framesh";
version = "0.5.0-beta.20";
src = fetchurl {
url = "https://github.com/floating/frame/releases/download/v${version}/Frame-${version}.AppImage";
sha256 = "sha256-4PU3f5e9NJYnP49nVtCjbGXxWJDCJIArzuaLsWB3Cx0=";
};
appimageContents = appimageTools.extractType2 {
inherit pname version src;
};
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
ln -s $out/bin/${pname}-${version} $out/bin/${pname}
install -m 444 -D ${appimageContents}/frame.desktop $out/share/applications/frame.desktop
install -m 444 -D ${appimageContents}/frame.png \
$out/share/icons/hicolor/512x512/apps/frame.png
substituteInPlace $out/share/applications/frame.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
meta = {
description = "Native web3 interface that lets you sign data, securely manage accounts and transparently interact with dapps via web3 protocols like Ethereum and IPFS";
homepage = "https://frame.sh/";
downloadPage = "https://github.com/floating/frame/releases";
license = lib.licenses.gpl3Only;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ nook ];
};
}

View file

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "lndmanage"; pname = "lndmanage";
version = "0.14.1"; version = "0.14.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bitromortac"; owner = "bitromortac";
repo = pname; repo = pname;
rev = "v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-c36AbND01bUr0Klme4fU7GrY1oYcmoEREQI9cwsK7YM="; hash = "sha256-G6KpF/c8FsXrqI0hB0fZlModQThnAOHrCv482UjRng0=";
}; };
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [

View file

@ -196,7 +196,7 @@ in runCommand
{ {
startScript = '' startScript = ''
#!${bash}/bin/bash #!${bash}/bin/bash
${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@"
''; '';
preferLocalBuild = true; preferLocalBuild = true;
allowSubstitutes = false; allowSubstitutes = false;

View file

@ -39,10 +39,10 @@
elpaBuild { elpaBuild {
pname = "ada-mode"; pname = "ada-mode";
ename = "ada-mode"; ename = "ada-mode";
version = "7.2.0"; version = "7.2.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/ada-mode-7.2.0.tar"; url = "https://elpa.gnu.org/packages/ada-mode-7.2.1.tar";
sha256 = "00mrcn98bah9cld78qz75mmmk1yrs9k4dbzf6r1x07pngz70fxm2"; sha256 = "1x9gkyi23xsq8zn0n8vb1xgkh85maj2cj95ravhkakb2cd9dmbjv";
}; };
packageRequires = [ emacs uniquify-files wisi ]; packageRequires = [ emacs uniquify-files wisi ];
meta = { meta = {
@ -155,6 +155,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
aircon-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "aircon-theme";
ename = "aircon-theme";
version = "0.0.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/aircon-theme-0.0.5.tar";
sha256 = "0k9nsm64szi2hvngx9ciyjn8ic9qprfm3gmwp33f0kakq05ykpd1";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/aircon-theme.html";
license = lib.licenses.free;
};
}) {};
all = callPackage ({ elpaBuild, fetchurl, lib }: all = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "all"; pname = "all";
@ -478,10 +493,10 @@
elpaBuild { elpaBuild {
pname = "cape"; pname = "cape";
ename = "cape"; ename = "cape";
version = "0.7"; version = "0.8";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/cape-0.7.tar"; url = "https://elpa.gnu.org/packages/cape-0.8.tar";
sha256 = "1icgd5d55x7x7czw349v8m19mgq4yrx6j6zhbb666h2hdkbnykbg"; sha256 = "03zc1c2r8h3p9aqk2y8pwysiawbx0f5vgz7582d9qnixdygni117";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -756,10 +771,10 @@
elpaBuild { elpaBuild {
pname = "compat"; pname = "compat";
ename = "compat"; ename = "compat";
version = "28.1.1.1"; version = "28.1.1.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/compat-28.1.1.1.tar"; url = "https://elpa.gnu.org/packages/compat-28.1.1.3.tar";
sha256 = "13ksa6q3m525gd6sdixmak6brfch2rhz8dzzmhvvdh1y04hcnam8"; sha256 = "11g27n0103j1xmj1s3m49jcqxn4n4wd9pm69i2g3ikijxs1qw18n";
}; };
packageRequires = [ emacs nadvice ]; packageRequires = [ emacs nadvice ];
meta = { meta = {
@ -801,10 +816,10 @@
elpaBuild { elpaBuild {
pname = "corfu"; pname = "corfu";
ename = "corfu"; ename = "corfu";
version = "0.25"; version = "0.26";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/corfu-0.25.tar"; url = "https://elpa.gnu.org/packages/corfu-0.26.tar";
sha256 = "1ix65l80q8id8vxkvx4wd780cav53lws2z1x3pnj4wmm0n4qwyd9"; sha256 = "13wsb0llrnmk65m27drnyaqzv9qicnxbpvqcanj0k90iv411kw21";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -876,10 +891,10 @@
elpaBuild { elpaBuild {
pname = "crdt"; pname = "crdt";
ename = "crdt"; ename = "crdt";
version = "0.2.7"; version = "0.3.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/crdt-0.2.7.tar"; url = "https://elpa.gnu.org/packages/crdt-0.3.0.tar";
sha256 = "0f6v937zbxj4kci07dv0a1h4q1ak0qabkjq2j258ydxyivvqyvsw"; sha256 = "0fmrmpjqyzxcmx38kwl6mifq412qfgm9ak7j4f54j33kbp10hjj7";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -921,10 +936,10 @@
elpaBuild { elpaBuild {
pname = "csv-mode"; pname = "csv-mode";
ename = "csv-mode"; ename = "csv-mode";
version = "1.20"; version = "1.21";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/csv-mode-1.20.tar"; url = "https://elpa.gnu.org/packages/csv-mode-1.21.tar";
sha256 = "08im1llz04s3ckpj3c3j4wxq4g00fyld2m8ylnh878ss5izzs0lg"; sha256 = "11f01lyz6i133njigg53r890cic8y13kz7dswc8mj7m60a316dmv";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -936,10 +951,10 @@
elpaBuild { elpaBuild {
pname = "cursory"; pname = "cursory";
ename = "cursory"; ename = "cursory";
version = "0.1.4"; version = "0.2.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/cursory-0.1.4.tar"; url = "https://elpa.gnu.org/packages/cursory-0.2.1.tar";
sha256 = "0yjwn6kpxl7b3m8si4sqmdkhr8imcgbvwhwki2sxgybs75lxdg97"; sha256 = "12q1icz1npan9fjn0sy2zfs3d0iz6b34hqsfggm187igq4zj3rrb";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1037,6 +1052,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
denote = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "denote";
ename = "denote";
version = "0.3.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/denote-0.3.1.tar";
sha256 = "0zdxflmm62gkg6nbrpaxinwb60ghr19pvr3jbgnvbca3bd5yg5wk";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/denote.html";
license = lib.licenses.free;
};
}) {};
detached = callPackage ({ elpaBuild, emacs, fetchurl, lib }: detached = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "detached"; pname = "detached";
@ -1341,10 +1371,10 @@
elpaBuild { elpaBuild {
pname = "eev"; pname = "eev";
ename = "eev"; ename = "eev";
version = "20220605"; version = "20220626";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/eev-20220605.tar"; url = "https://elpa.gnu.org/packages/eev-20220626.tar";
sha256 = "1d8bmps72519hv3raqyjx1sbd7vmihckq8qrzd2v0rglx4smikdk"; sha256 = "0n09dws1qy23a31s5iv75dzl6xy8m5m7qy9gf7sk1b3133ly4sf5";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1499,10 +1529,10 @@
elpaBuild { elpaBuild {
pname = "emms"; pname = "emms";
ename = "emms"; ename = "emms";
version = "10"; version = "11";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/emms-10.tar"; url = "https://elpa.gnu.org/packages/emms-11.tar";
sha256 = "1lgjw9p799sl7nqnl2sk4g67ra10z2ldygx9kb8pmxjrx64mi3qm"; sha256 = "000lqhsafyh1n293ksnlyavxv1pzl5pazds4sgxjcqd45lyn55ii";
}; };
packageRequires = [ cl-lib nadvice seq ]; packageRequires = [ cl-lib nadvice seq ];
meta = { meta = {
@ -1729,10 +1759,10 @@
elpaBuild { elpaBuild {
pname = "fontaine"; pname = "fontaine";
ename = "fontaine"; ename = "fontaine";
version = "0.2.2"; version = "0.3.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/fontaine-0.2.2.tar"; url = "https://elpa.gnu.org/packages/fontaine-0.3.0.tar";
sha256 = "14q10r5086pyknpm8kd9f0scwwbgygqjp8b08k6a4f30a3pl3rqi"; sha256 = "0ixi48w3d0yvmw1103gj7iq2acj90p0qlyhna4hpfhnwa247lp2k";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2333,10 +2363,10 @@
elpaBuild { elpaBuild {
pname = "js2-mode"; pname = "js2-mode";
ename = "js2-mode"; ename = "js2-mode";
version = "20211229"; version = "20220710";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/js2-mode-20211229.tar"; url = "https://elpa.gnu.org/packages/js2-mode-20220710.tar";
sha256 = "0qf7z0mmrvlncf1ac6yiza5wmcaf588d53ma41vhj58adaahimz6"; sha256 = "1wvkqkfbnk3qanbz9167z8dik3667ihgyca8brbkh2b1ld10f9yq";
}; };
packageRequires = [ cl-lib emacs ]; packageRequires = [ cl-lib emacs ];
meta = { meta = {
@ -2393,10 +2423,10 @@
elpaBuild { elpaBuild {
pname = "kind-icon"; pname = "kind-icon";
ename = "kind-icon"; ename = "kind-icon";
version = "0.1.5"; version = "0.1.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/kind-icon-0.1.5.tar"; url = "https://elpa.gnu.org/packages/kind-icon-0.1.6.tar";
sha256 = "0qajj89vkgc9gbgff6akzll53jy0kgkv6c9jvwpl32rbg8v0wp63"; sha256 = "0ac53qrz217b054z51244r7whvjmyrq4941ld0bgl9crssrhb588";
}; };
packageRequires = [ emacs svg-lib ]; packageRequires = [ emacs svg-lib ];
meta = { meta = {
@ -2498,10 +2528,10 @@
elpaBuild { elpaBuild {
pname = "lin"; pname = "lin";
ename = "lin"; ename = "lin";
version = "0.3.1"; version = "0.4.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/lin-0.3.1.tar"; url = "https://elpa.gnu.org/packages/lin-0.4.0.tar";
sha256 = "1blk9vc9fyw6djqh0465bayv2s5s0ap7fps383ihmazmmii6mp2a"; sha256 = "1fynn3fpf3c2yamlpp9j6rakgd21ivyvqrx0hmsgcyr115q5afm4";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3205,10 +3235,10 @@
elpaBuild { elpaBuild {
pname = "org-modern"; pname = "org-modern";
ename = "org-modern"; ename = "org-modern";
version = "0.3"; version = "0.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/org-modern-0.3.tar"; url = "https://elpa.gnu.org/packages/org-modern-0.4.tar";
sha256 = "14f5grai6k9xbpyc33pcpgi6ka8pgy7vcnqqi77nclzq2yxhl9c1"; sha256 = "0xn2vmlz43p9b1gscijwzhaxa44dsshlw31llhffqpxlw2amm1lf";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3250,10 +3280,10 @@
elpaBuild { elpaBuild {
pname = "org-transclusion"; pname = "org-transclusion";
ename = "org-transclusion"; ename = "org-transclusion";
version = "1.2.0"; version = "1.3.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/org-transclusion-1.2.0.tar"; url = "https://elpa.gnu.org/packages/org-transclusion-1.3.0.tar";
sha256 = "1q36nqxynzh8ygvgw5nmg49c4yq8pgp6lcb6mdqs9paw8pglxcjf"; sha256 = "1fgxpx5cikp03xzki55b7davx8m6zmrmrd0jzd69mv9gyw3bywg7";
}; };
packageRequires = [ emacs org ]; packageRequires = [ emacs org ];
meta = { meta = {
@ -3580,10 +3610,10 @@
elpaBuild { elpaBuild {
pname = "pyim"; pname = "pyim";
ename = "pyim"; ename = "pyim";
version = "4.2.1"; version = "5.2.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/pyim-4.2.1.tar"; url = "https://elpa.gnu.org/packages/pyim-5.2.3.tar";
sha256 = "15hsz1ji8xa7zqzzmbi0vk95vgsvl4dsd1rann04vfaz30a1rdzv"; sha256 = "189r0qkd8nv5zjg2ljbzbj086jb8xbl4yd1jliz4azaprv8fhqv0";
}; };
packageRequires = [ async emacs xr ]; packageRequires = [ async emacs xr ];
meta = { meta = {
@ -3595,10 +3625,10 @@
elpaBuild { elpaBuild {
pname = "pyim-basedict"; pname = "pyim-basedict";
ename = "pyim-basedict"; ename = "pyim-basedict";
version = "0.5.3"; version = "0.5.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/pyim-basedict-0.5.3.tar"; url = "https://elpa.gnu.org/packages/pyim-basedict-0.5.4.tar";
sha256 = "1x3zmcbp5yck5dxfms8d9ym0fdbvwr40fn8wrq0qfl9a58k8i5bx"; sha256 = "1zppp12217aakawgndy6daxpw1098lh7lsjar2wwd4qv4xs0d4p6";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -3860,10 +3890,10 @@
elpaBuild { elpaBuild {
pname = "rec-mode"; pname = "rec-mode";
ename = "rec-mode"; ename = "rec-mode";
version = "1.8.4"; version = "1.9.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/rec-mode-1.8.4.tar"; url = "https://elpa.gnu.org/packages/rec-mode-1.9.0.tar";
sha256 = "03n0g6inhj0mqqcqimh6nfi6rdzgh4w59vdjicvn880r5n8zwn4d"; sha256 = "1w1q6kh567fd8xismq9i6wr1y893lypd30l452yvydi1qjiq1n6x";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -3935,10 +3965,10 @@
elpaBuild { elpaBuild {
pname = "rnc-mode"; pname = "rnc-mode";
ename = "rnc-mode"; ename = "rnc-mode";
version = "0.2"; version = "0.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/rnc-mode-0.2.el"; url = "https://elpa.gnu.org/packages/rnc-mode-0.3.tar";
sha256 = "0xhvcfqjkb010wc7r218xcjidv1c8597vayyv09vk97z4qxqkrbd"; sha256 = "1bd4pxaijcs0w8v9r7x9aiqyqf1rl46153dxl0ilhm3fc90iyf2r";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -4061,10 +4091,10 @@
elpaBuild { elpaBuild {
pname = "setup"; pname = "setup";
ename = "setup"; ename = "setup";
version = "1.2.0"; version = "1.3.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/setup-1.2.0.tar"; url = "https://elpa.gnu.org/packages/setup-1.3.0.tar";
sha256 = "1fyzkm42gsvsjpk3vahfb7asfldarixm0wsw3g66q3ad0r7cbjnz"; sha256 = "0r13ry73jm31j8fq7v1sh0k113fr4blfkiz85696bdpah2pnca87";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4320,10 +4350,10 @@
elpaBuild { elpaBuild {
pname = "sql-cassandra"; pname = "sql-cassandra";
ename = "sql-cassandra"; ename = "sql-cassandra";
version = "0.2.1"; version = "0.2.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/sql-cassandra-0.2.1.tar"; url = "https://elpa.gnu.org/packages/sql-cassandra-0.2.2.tar";
sha256 = "1w9jhh4gf5nnjq8p2zfdli81yqvnfjri4qlwxiwb913ah48vyi2l"; sha256 = "06h301fpqax24x295x06bz08ipjjnxs9smisyz82z08kgszq92c6";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4549,10 +4579,10 @@
elpaBuild { elpaBuild {
pname = "tempel"; pname = "tempel";
ename = "tempel"; ename = "tempel";
version = "0.3"; version = "0.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/tempel-0.3.tar"; url = "https://elpa.gnu.org/packages/tempel-0.4.tar";
sha256 = "0aa3f3sfvibp3wl401fdlww70axl9hxasbza70i44vqq0y9csv40"; sha256 = "002ng6x1qlhnk7vvpwjl8wkm869k0ihpbdgbnhqjsnpzln1gib0w";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4613,10 +4643,10 @@
elpaBuild { elpaBuild {
pname = "tmr"; pname = "tmr";
ename = "tmr"; ename = "tmr";
version = "0.3.0"; version = "0.4.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/tmr-0.3.0.tar"; url = "https://elpa.gnu.org/packages/tmr-0.4.0.tar";
sha256 = "1cv90hg7hsaffkcxryp9d5cyjvmfpxcmrw5knipad77yxzaf4s6b"; sha256 = "1s4q7gbqjhqsvwzcfqr9ykm2pdrjybsi2fanxm01vvmzwg2bi6d8";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4643,10 +4673,10 @@
elpaBuild { elpaBuild {
pname = "tramp"; pname = "tramp";
ename = "tramp"; ename = "tramp";
version = "2.5.2.5"; version = "2.5.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/tramp-2.5.2.5.tar"; url = "https://elpa.gnu.org/packages/tramp-2.5.3.tar";
sha256 = "05f59x7jl4m187y2cidhnfz7p8q85gav4xpipazfvm5dicxz4j7c"; sha256 = "16bs90h7b1d188v6glhfp0y4wgxvwn3dl6l4sbswlf1zq3y61zy7";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4778,10 +4808,10 @@
elpaBuild { elpaBuild {
pname = "uniquify-files"; pname = "uniquify-files";
ename = "uniquify-files"; ename = "uniquify-files";
version = "1.0.3"; version = "1.0.4";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/uniquify-files-1.0.3.tar"; url = "https://elpa.gnu.org/packages/uniquify-files-1.0.4.tar";
sha256 = "1i7svplkw9wxiypw52chdry7f5gf992fb4yg8s7jy77v521fd2af"; sha256 = "0ry52l9p2sz8nsfh15ffa25s46vqhna466ahmjmnmlihgjhdm85q";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4862,10 +4892,10 @@
elpaBuild { elpaBuild {
pname = "vc-got"; pname = "vc-got";
ename = "vc-got"; ename = "vc-got";
version = "1.1.1"; version = "1.1.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/vc-got-1.1.1.tar"; url = "https://elpa.gnu.org/packages/vc-got-1.1.2.tar";
sha256 = "0f8rwd4scvlyn9i9xq7d2sly7r0ddzi8z565jx1h2lkcs5nbihcb"; sha256 = "1824d5c217qimsg4aw8adjvv06gkhv5f3918fi0lkhya1jsvfrx9";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4892,10 +4922,10 @@
elpaBuild { elpaBuild {
pname = "vcard"; pname = "vcard";
ename = "vcard"; ename = "vcard";
version = "0.2.1"; version = "0.2.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/vcard-0.2.1.tar"; url = "https://elpa.gnu.org/packages/vcard-0.2.2.tar";
sha256 = "0nfrh1mz2h7h259kf7sj13z30kmjywfvs83ax5qjkfwxhqm03abf"; sha256 = "0f06qzmj91kdpdlhlykh7v7jx0xvwxg8072ys145g1mvh5l23yig";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -4954,10 +4984,10 @@
elpaBuild { elpaBuild {
pname = "vertico"; pname = "vertico";
ename = "vertico"; ename = "vertico";
version = "0.24"; version = "0.25";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/vertico-0.24.tar"; url = "https://elpa.gnu.org/packages/vertico-0.25.tar";
sha256 = "17vsx1yijx9clly977lvc6y296kq8g859hqwwq1v8zh4k0wqr9hc"; sha256 = "1v0icwqp4ppa2j1k1fk4fc5zdzqb4hcdc7khjc1c31q0gad6l3xy";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -5187,10 +5217,10 @@
elpaBuild { elpaBuild {
pname = "wisi"; pname = "wisi";
ename = "wisi"; ename = "wisi";
version = "3.1.7"; version = "3.1.8";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/wisi-3.1.7.tar"; url = "https://elpa.gnu.org/packages/wisi-3.1.8.tar";
sha256 = "1xraks3n97axc978qlgcwr4f7ib3lyr4bvb5lq5z099hd2g01qch"; sha256 = "1k4vfxjas79yv5xfnmjygf185zkypx65gpqlmxpvfgcmvl7dgbdy";
}; };
packageRequires = [ emacs seq ]; packageRequires = [ emacs seq ];
meta = { meta = {
@ -5282,10 +5312,10 @@
elpaBuild { elpaBuild {
pname = "xr"; pname = "xr";
ename = "xr"; ename = "xr";
version = "1.22"; version = "1.23";
src = fetchurl { src = fetchurl {
url = "https://elpa.gnu.org/packages/xr-1.22.tar"; url = "https://elpa.gnu.org/packages/xr-1.23.tar";
sha256 = "1l3bqgzvbamfs4n628kg789g7vjn4v81q570gzbw2cwjgk4s6xbj"; sha256 = "1nz3fhd4qx8fxib78y41jvnzn27lf7mlvpkz565d5zc9q4mr300z";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

View file

@ -49,10 +49,10 @@
elpaBuild { elpaBuild {
pname = "annotate"; pname = "annotate";
ename = "annotate"; ename = "annotate";
version = "1.6.0"; version = "1.7.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/annotate-1.6.0.tar"; url = "https://elpa.nongnu.org/nongnu/annotate-1.7.0.tar";
sha256 = "12843875nvrw5cs2pzag9i2k4vgajbs4rr56js7h6mx9w6jmg8hc"; sha256 = "0bpicd0m9h1n56ywinfa0wykhx86sxn8i1f2j5vwhwcidap42qaa";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -109,10 +109,10 @@
elpaBuild { elpaBuild {
pname = "apropospriate-theme"; pname = "apropospriate-theme";
ename = "apropospriate-theme"; ename = "apropospriate-theme";
version = "0.1.1"; version = "0.2.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/apropospriate-theme-0.1.1.tar"; url = "https://elpa.nongnu.org/nongnu/apropospriate-theme-0.2.0.tar";
sha256 = "11m80gijxvg4jf9davjja3bvykv161ggsrg7q0bihr0gq0flxgd7"; sha256 = "1s4cvh24zj3wpdqc3lklvi1dkba3jf87nxrzq0s3l1rzhg21pfpj";
}; };
packageRequires = []; packageRequires = [];
meta = { meta = {
@ -245,6 +245,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
cdlatex = callPackage ({ auctex, elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "cdlatex";
ename = "cdlatex";
version = "4.12";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/cdlatex-4.12.tar";
sha256 = "1m8liqxz76r8f3b8hvyyn7kqgq0fkk5pv4pqgdscbgw36vpcbkry";
};
packageRequires = [ auctex ];
meta = {
homepage = "https://elpa.gnu.org/packages/cdlatex.html";
license = lib.licenses.free;
};
}) {};
cider = callPackage ({ clojure-mode cider = callPackage ({ clojure-mode
, elpaBuild , elpaBuild
, emacs , emacs
@ -375,6 +390,25 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
cycle-at-point = callPackage ({ elpaBuild
, emacs
, fetchurl
, lib
, recomplete }:
elpaBuild {
pname = "cycle-at-point";
ename = "cycle-at-point";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/cycle-at-point-0.1.tar";
sha256 = "0097w7nw8d1q7ad4b4qjk0svwxqg80jr2p27540vkir7289w59j3";
};
packageRequires = [ emacs recomplete ];
meta = {
homepage = "https://elpa.gnu.org/packages/cycle-at-point.html";
license = lib.licenses.free;
};
}) {};
d-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }: d-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "d-mode"; pname = "d-mode";
@ -405,6 +439,36 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
diff-ansi = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "diff-ansi";
ename = "diff-ansi";
version = "0.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/diff-ansi-0.2.tar";
sha256 = "1fcy89m6wkhc5hy4lqcd60ckrf9qwimilydjx083nackppdz1xlw";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/diff-ansi.html";
license = lib.licenses.free;
};
}) {};
doc-show-inline = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "doc-show-inline";
ename = "doc-show-inline";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/doc-show-inline-0.1.tar";
sha256 = "11khy906vmhz445ryrdb63v0hjq0x59dn152j96vv9jlg5gqdi3b";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/doc-show-inline.html";
license = lib.licenses.free;
};
}) {};
dockerfile-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }: dockerfile-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "dockerfile-mode"; pname = "dockerfile-mode";
@ -450,6 +514,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
edit-indirect = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "edit-indirect";
ename = "edit-indirect";
version = "0.1.10";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/edit-indirect-0.1.10.tar";
sha256 = "0mk6s5hc8n9s5c434im6r06mfgmdf5s44zlr9j3hfkjaic1lf45b";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/edit-indirect.html";
license = lib.licenses.free;
};
}) {};
editorconfig = callPackage ({ cl-lib ? null editorconfig = callPackage ({ cl-lib ? null
, elpaBuild , elpaBuild
, emacs , emacs
@ -489,10 +568,10 @@
elpaBuild { elpaBuild {
pname = "elpher"; pname = "elpher";
ename = "elpher"; ename = "elpher";
version = "3.4.1"; version = "3.4.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/elpher-3.4.1.tar"; url = "https://elpa.nongnu.org/nongnu/elpher-3.4.2.tar";
sha256 = "1vayhcamdp8nn6hrgffd0yx9k9q3mckbcsfwclhyyfc0x1hcwf92"; sha256 = "0q7a79jnlihjj936wi199pdxl0ydy04354y0mqpxms00r98hzr9d";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -652,10 +731,10 @@
elpaBuild { elpaBuild {
pname = "evil-numbers"; pname = "evil-numbers";
ename = "evil-numbers"; ename = "evil-numbers";
version = "0.6"; version = "0.7";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-numbers-0.6.tar"; url = "https://elpa.nongnu.org/nongnu/evil-numbers-0.7.tar";
sha256 = "0zl16ljb64cawcj11f4ndz941sllj8nhgjcb4w0r1afxbvpn5rss"; sha256 = "1kd60kc8762i9vyig179dnbmrjyw30bm06g26abndw2kjxaqjhr8";
}; };
packageRequires = [ emacs evil ]; packageRequires = [ emacs evil ];
meta = { meta = {
@ -703,10 +782,10 @@
elpaBuild { elpaBuild {
pname = "flymake-popon"; pname = "flymake-popon";
ename = "flymake-popon"; ename = "flymake-popon";
version = "0.2"; version = "0.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/flymake-popon-0.2.tar"; url = "https://elpa.nongnu.org/nongnu/flymake-popon-0.3.tar";
sha256 = "08wpfia4q12nhc6l0xmdc54f1s73c0ds6hxwgkk5hjw906rpgn4a"; sha256 = "1cmimdkav8cdl7x6qplm4pvj2ifyb3lk8h2q624vh7cxxlh8yq0l";
}; };
packageRequires = [ emacs flymake popon posframe ]; packageRequires = [ emacs flymake popon posframe ];
meta = { meta = {
@ -1119,10 +1198,10 @@
elpaBuild { elpaBuild {
pname = "helm"; pname = "helm";
ename = "helm"; ename = "helm";
version = "3.8.5"; version = "3.8.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/helm-3.8.5.tar"; url = "https://elpa.nongnu.org/nongnu/helm-3.8.6.tar";
sha256 = "1h71qcik375zhkk4rgcxj6ffnzpns2lvzwq82yfhmmhzrrxhds0z"; sha256 = "0h0l36wmzxi03viy0jd3zri84big0syiilvjm639nqhzsr1lbvy2";
}; };
packageRequires = [ helm-core popup ]; packageRequires = [ helm-core popup ];
meta = { meta = {
@ -1134,10 +1213,10 @@
elpaBuild { elpaBuild {
pname = "helm-core"; pname = "helm-core";
ename = "helm-core"; ename = "helm-core";
version = "3.8.5"; version = "3.8.6";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/helm-core-3.8.5.tar"; url = "https://elpa.nongnu.org/nongnu/helm-core-3.8.6.tar";
sha256 = "0117y2gazm8h5fxj23166a53w4r68r1mscgardk0y6xd6lz73yz9"; sha256 = "0yzzwdggd37m7kv0gh4amc7l5x0r5x2pxi3lfs36hq2hfsqlfkza";
}; };
packageRequires = [ async emacs ]; packageRequires = [ async emacs ];
meta = { meta = {
@ -1163,6 +1242,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
hl-block-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "hl-block-mode";
ename = "hl-block-mode";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/hl-block-mode-0.1.tar";
sha256 = "08b2n8i0qmjp5r6ijlg66g0j8aiwhrczxyf0ssr9jbga43k4swzq";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/hl-block-mode.html";
license = lib.licenses.free;
};
}) {};
htmlize = callPackage ({ elpaBuild, fetchurl, lib }: htmlize = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "htmlize"; pname = "htmlize";
@ -1178,6 +1272,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
idle-highlight-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "idle-highlight-mode";
ename = "idle-highlight-mode";
version = "1.1.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/idle-highlight-mode-1.1.3.tar";
sha256 = "05w2rqc71h1f13ysdfjma90s35kj5d5i2szcw54cqyky8rymx5dp";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/idle-highlight-mode.html";
license = lib.licenses.free;
};
}) {};
idris-mode = callPackage ({ cl-lib ? null idris-mode = callPackage ({ cl-lib ? null
, elpaBuild , elpaBuild
, emacs , emacs
@ -1221,10 +1330,10 @@
elpaBuild { elpaBuild {
pname = "inf-clojure"; pname = "inf-clojure";
ename = "inf-clojure"; ename = "inf-clojure";
version = "3.1.0"; version = "3.2.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/inf-clojure-3.1.0.tar"; url = "https://elpa.nongnu.org/nongnu/inf-clojure-3.2.0.tar";
sha256 = "0jw6rzplicbv2l7si46naspzp5lqwj20b1nmfs9zal58z1gx6zjk"; sha256 = "1a9hr28l8cxf5j9b5z0mwds4jd36bhdqz9r86c85rylgaibx5ky7";
}; };
packageRequires = [ clojure-mode emacs ]; packageRequires = [ clojure-mode emacs ];
meta = { meta = {
@ -1232,6 +1341,36 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
inf-ruby = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "inf-ruby";
ename = "inf-ruby";
version = "2.6.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/inf-ruby-2.6.1.tar";
sha256 = "0z57wwpm7wh04yp7za8fmv4ib56np629kmk4djs8qaz5bv494znr";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/inf-ruby.html";
license = lib.licenses.free;
};
}) {};
inkpot-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "inkpot-theme";
ename = "inkpot-theme";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/inkpot-theme-0.1.tar";
sha256 = "0ik7vkwqlsgxmdckd154kh82zg8jr41vwc0a200x9920l5mnfjq2";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/inkpot-theme.html";
license = lib.licenses.free;
};
}) {};
j-mode = callPackage ({ elpaBuild, fetchurl, lib }: j-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "j-mode"; pname = "j-mode";
@ -1565,14 +1704,29 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
oblivion-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "oblivion-theme";
ename = "oblivion-theme";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/oblivion-theme-0.1.tar";
sha256 = "0095sc82nl5qxz5nlf2bxbynkxa3plcqr8dq187r70p0775jw46m";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/oblivion-theme.html";
license = lib.licenses.free;
};
}) {};
org-auto-tangle = callPackage ({ async, elpaBuild, emacs, fetchurl, lib }: org-auto-tangle = callPackage ({ async, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "org-auto-tangle"; pname = "org-auto-tangle";
ename = "org-auto-tangle"; ename = "org-auto-tangle";
version = "0.4.1"; version = "0.5.1";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/org-auto-tangle-0.4.1.tar"; url = "https://elpa.nongnu.org/nongnu/org-auto-tangle-0.5.1.tar";
sha256 = "169i1agnv66gkpgn5wxxri42610n2dp1gz9bfafk2n2a8b08mhn1"; sha256 = "12sy30yr8r3g7gmvcdsrrmy62lhvajg3gp62gj7p836kh9xllpsl";
}; };
packageRequires = [ async emacs ]; packageRequires = [ async emacs ];
meta = { meta = {
@ -1805,10 +1959,10 @@
elpaBuild { elpaBuild {
pname = "popon"; pname = "popon";
ename = "popon"; ename = "popon";
version = "0.4"; version = "0.7";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/popon-0.4.tar"; url = "https://elpa.nongnu.org/nongnu/popon-0.7.tar";
sha256 = "1c3brjhkdnpawi8jsc20jvhc1vl3l39da12rn3lfx2bfxvjvz76w"; sha256 = "0sr0cv9jlaj83sgk1cb7wd6r12g6gmzdjzm077gxa6jy9p4qrv0q";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1846,6 +2000,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
proof-general = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "proof-general";
ename = "proof-general";
version = "4.5";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/proof-general-4.5.tar";
sha256 = "13zy339yz6ijgkcnqxzcyg909z77w3capb3gim1riy3sqikvv04x";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/proof-general.html";
license = lib.licenses.free;
};
}) {};
prop-menu = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }: prop-menu = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "prop-menu"; pname = "prop-menu";
@ -1891,6 +2060,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
recomplete = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "recomplete";
ename = "recomplete";
version = "0.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/recomplete-0.2.tar";
sha256 = "09n21mx90wr53xlhy5mlca675ah9ynnnc2afzjjml98ll81f4k23";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/recomplete.html";
license = lib.licenses.free;
};
}) {};
request = callPackage ({ elpaBuild, emacs, fetchurl, lib }: request = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "request"; pname = "request";
@ -1925,10 +2109,10 @@
elpaBuild { elpaBuild {
pname = "rust-mode"; pname = "rust-mode";
ename = "rust-mode"; ename = "rust-mode";
version = "1.0.4"; version = "1.0.5";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.4.tar"; url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.5.tar";
sha256 = "137z04h29cgy1dmkf2cnchlfzqs4f5v3cc9gv9qxisw9dswlvdvk"; sha256 = "16dw4mfgfazslsf8n9fir2xc3v3jpw9i7bbgcfbhgclm0g2w9j83";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -1970,6 +2154,36 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
scroll-on-drag = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "scroll-on-drag";
ename = "scroll-on-drag";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/scroll-on-drag-0.1.tar";
sha256 = "06bpxfhdhsf6awhjcj21x8kb3g9n6j14s43cd03fp5gb0m5bs478";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/scroll-on-drag.html";
license = lib.licenses.free;
};
}) {};
scroll-on-jump = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "scroll-on-jump";
ename = "scroll-on-jump";
version = "0.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/scroll-on-jump-0.1.tar";
sha256 = "0y6r0aa14sv8yh56w46s840bdkgq6y234qz1jbbsgklx42cw6zgg";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/scroll-on-jump.html";
license = lib.licenses.free;
};
}) {};
sesman = callPackage ({ elpaBuild, emacs, fetchurl, lib }: sesman = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "sesman"; pname = "sesman";
@ -2075,6 +2289,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
spell-fu = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "spell-fu";
ename = "spell-fu";
version = "0.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/spell-fu-0.3.tar";
sha256 = "0yr7m0i89ymp93p4qx8a0y1ghg7ydg1479xgvsz71n35x4sbiwba";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/spell-fu.html";
license = lib.licenses.free;
};
}) {};
stylus-mode = callPackage ({ elpaBuild, fetchurl, lib }: stylus-mode = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "stylus-mode"; pname = "stylus-mode";
@ -2124,10 +2353,10 @@
elpaBuild { elpaBuild {
pname = "swift-mode"; pname = "swift-mode";
ename = "swift-mode"; ename = "swift-mode";
version = "8.4.2"; version = "8.6.0";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/swift-mode-8.4.2.tar"; url = "https://elpa.nongnu.org/nongnu/swift-mode-8.6.0.tar";
sha256 = "0rkri1414f2w2bw76dwnmylcdca6x9bkdvlq1aznz76ac259klji"; sha256 = "0zasgv311mjc1iih9wv8vb8h53y2pjx24xsbdnn0wk8xcdk4z8j6";
}; };
packageRequires = [ emacs seq ]; packageRequires = [ emacs seq ];
meta = { meta = {
@ -2139,10 +2368,10 @@
elpaBuild { elpaBuild {
pname = "swsw"; pname = "swsw";
ename = "swsw"; ename = "swsw";
version = "2.1.1"; version = "2.2";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/swsw-2.1.1.tar"; url = "https://elpa.nongnu.org/nongnu/swsw-2.2.tar";
sha256 = "0k6cysa4pmxv1kmpn0fqvardbdfayj92cq0r3gxrx9pgqxlqwfix"; sha256 = "0bxcpk5329g4xdfnx8n70q53v4aansxfcs3fdpzssayyyv4fk72m";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2150,6 +2379,21 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
symbol-overlay = callPackage ({ elpaBuild, emacs, fetchurl, lib, seq }:
elpaBuild {
pname = "symbol-overlay";
ename = "symbol-overlay";
version = "4.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/symbol-overlay-4.1.tar";
sha256 = "07gcg45y712dblidak2kxp7w0h0gf39hwzwbkpna66k4c4xjpig8";
};
packageRequires = [ emacs seq ];
meta = {
homepage = "https://elpa.gnu.org/packages/symbol-overlay.html";
license = lib.licenses.free;
};
}) {};
systemd = callPackage ({ elpaBuild, emacs, fetchurl, lib }: systemd = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "systemd"; pname = "systemd";
@ -2291,6 +2535,36 @@
license = lib.licenses.free; license = lib.licenses.free;
}; };
}) {}; }) {};
undo-fu = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "undo-fu";
ename = "undo-fu";
version = "0.4";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/undo-fu-0.4.tar";
sha256 = "15r0lkzbxgvnwdmaxgiwnik2z8622gdzmpxllv8pfr36y6jmsgs8";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/undo-fu.html";
license = lib.licenses.free;
};
}) {};
undo-fu-session = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "undo-fu-session";
ename = "undo-fu-session";
version = "0.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/undo-fu-session-0.2.tar";
sha256 = "1vxyazcxw2gxvxh96grsff1lijsd5fh3pjzkbkj7axn3myavp374";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/undo-fu-session.html";
license = lib.licenses.free;
};
}) {};
vc-fossil = callPackage ({ elpaBuild, fetchurl, lib }: vc-fossil = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild { elpaBuild {
pname = "vc-fossil"; pname = "vc-fossil";
@ -2340,10 +2614,10 @@
elpaBuild { elpaBuild {
pname = "web-mode"; pname = "web-mode";
ename = "web-mode"; ename = "web-mode";
version = "17.2.2"; version = "17.2.3";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/web-mode-17.2.2.tar"; url = "https://elpa.nongnu.org/nongnu/web-mode-17.2.3.tar";
sha256 = "19ajwjcxv7vqysk085jyys77vry8nw7rzc7c43khyxb54qvg36i3"; sha256 = "1fvkr3yvhx67wkcynid7xppaci3m1d5ggdaii3d4dfp57wwz5c13";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {
@ -2438,10 +2712,10 @@
elpaBuild { elpaBuild {
pname = "xah-fly-keys"; pname = "xah-fly-keys";
ename = "xah-fly-keys"; ename = "xah-fly-keys";
version = "17.13.20220526011611"; version = "17.17.20220709145456";
src = fetchurl { src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-17.13.20220526011611.tar"; url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-17.17.20220709145456.tar";
sha256 = "1lg8805s5y61jr6yrm44zdjm0nad6adc5xr78zm0i0qzigbhhdcq"; sha256 = "1npgdc9f1vj1d9nyfh30vskybqs2lwhd31b2a7i79ifrxs48kqr4";
}; };
packageRequires = [ emacs ]; packageRequires = [ emacs ];
meta = { meta = {

View file

@ -166,7 +166,7 @@ let
}; };
}); });
buildPycharm = { pname, version, src, license, description, wmClass, product, ... }: buildPycharm = { pname, version, src, license, description, wmClass, product, cythonSpeedup ? stdenv.isLinux, ... }:
(mkJetBrainsProduct { (mkJetBrainsProduct {
inherit pname version src wmClass jdk product; inherit pname version src wmClass jdk product;
productShort = "PyCharm"; productShort = "PyCharm";
@ -189,6 +189,17 @@ let
''; '';
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
}; };
}).overrideAttrs (finalAttrs: previousAttrs: optionalAttrs cythonSpeedup {
buildInputs = with python3.pkgs; [ python3 setuptools ];
preInstall = ''
echo "compiling cython debug speedups"
if [[ -d plugins/python-ce ]]; then
${python3.interpreter} plugins/python-ce/helpers/pydev/setup_cython.py build_ext --inplace
else
${python3.interpreter} plugins/python/helpers/pydev/setup_cython.py build_ext --inplace
fi
'';
# See https://www.jetbrains.com/help/pycharm/2022.1/cython-speedups.html
}); });
buildRider = { pname, version, src, license, description, wmClass, ... }: buildRider = { pname, version, src, license, description, wmClass, ... }:

View file

@ -1,26 +1,53 @@
{ lib, stdenv, fetchFromGitHub, termbox, pcre, uthash, lua5_3, makeWrapper, installShellFiles }: { lib
, stdenv
, fetchFromGitHub
, fetchpatch
, pcre
, uthash
, lua5_4
, makeWrapper
, installShellFiles
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mle"; pname = "mle";
version = "1.4.3"; version = "1.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "adsr"; owner = "adsr";
repo = "mle"; repo = "mle";
rev = "v${version}"; rev = "v${version}";
sha256 = "16dbwfdd6sqqn7jfaxd5wdy8y9ghbihnz6bgn3xhqcww8rj1sia1"; sha256 = "1nhd00lsx9v12zdmps92magz76c2d8zzln3lxvzl4ng73gbvq3n0";
}; };
# Fix location of Lua 5.3 header and library # Bug fixes found after v1.5.0 release
patches = [
(fetchpatch {
name = "skip_locale_dep_test.patch";
url = "https://github.com/adsr/mle/commit/e4dc4314b02a324701d9ae9873461d34cce041e5.patch";
sha256 = "sha256-j3Z/n+2LqB9vEkWzvRVSOrF6yE+hk6f0dvEsTQ74erw=";
})
(fetchpatch {
name = "fix_input_trail.patch";
url = "https://github.com/adsr/mle/commit/bc05ec0eee4143d824010c6688fce526550ed508.patch";
sha256 = "sha256-dM63EBDQfHLAqGZk3C5NtNAv23nCTxXVW8XpLkAeEyQ=";
})
];
# Fix location of Lua 5.4 header and library
postPatch = '' postPatch = ''
substituteInPlace Makefile --replace "-llua5.3" "-llua"; substituteInPlace Makefile --replace "-llua5.4" "-llua";
substituteInPlace mle.h --replace "<lua5.3/" "<"; substituteInPlace mle.h --replace "<lua5.4/" "<";
patchShebangs tests/* patchShebangs tests/*
''; '';
# Use select(2) instead of poll(2) (poll is returning POLLINVAL on macOS)
# Enable compiler optimization
CFLAGS = "-DTB_OPT_SELECT -O2";
nativeBuildInputs = [ makeWrapper installShellFiles ]; nativeBuildInputs = [ makeWrapper installShellFiles ];
buildInputs = [ termbox pcre uthash lua5_3 ]; buildInputs = [ pcre uthash lua5_4 ];
doCheck = true; doCheck = true;
@ -30,13 +57,8 @@ stdenv.mkDerivation rec {
installManPage mle.1 installManPage mle.1
''; '';
postFixup = lib.optionalString stdenv.isDarwin ''
wrapProgram $out/bin/mle --prefix DYLD_LIBRARY_PATH : ${termbox}/lib
'';
meta = with lib; { meta = with lib; {
broken = (stdenv.isLinux && stdenv.isAarch64); description = "Small, flexible, terminal-based text editor";
description = "Small, flexible terminal-based text editor";
homepage = "https://github.com/adsr/mle"; homepage = "https://github.com/adsr/mle";
license = licenses.asl20; license = licenses.asl20;
platforms = platforms.unix; platforms = platforms.unix;

View file

@ -14,11 +14,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pinegrow"; pname = "pinegrow";
version = "6.5"; version = "6.6";
src = fetchurl { src = fetchurl {
url = "https://download.pinegrow.com/PinegrowLinux64.${version}.zip"; url = "https://download.pinegrow.com/PinegrowLinux64.${version}.zip";
sha256 = "1l7cf5jgidpykaf68mzf92kywl1vxwl3fg43ibgr2rg4cnl1g82b"; sha256 = "sha256-a3SwUNcMXl42+Gy3wjcx/KvVprgFAO0D0lFPohPV3Tk=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,7 +2,7 @@
, fetchurl, libsecret }: , fetchurl, libsecret }:
let let
version = "3.11.1"; version = "3.23.69";
pname = "standardnotes"; pname = "standardnotes";
name = "${pname}-${version}"; name = "${pname}-${version}";
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
@ -13,12 +13,12 @@ let
}.${stdenv.hostPlatform.system} or throwSystem; }.${stdenv.hostPlatform.system} or throwSystem;
sha256 = { sha256 = {
i686-linux = "3e83a7eef5c29877eeffefb832543b21627cf027ae6e7b4f662865b6b842649a"; i686-linux = "sha256-/A2LjV8ky20bcKgs0ijwldryi5VkyROwz49vWYXYQus=";
x86_64-linux = "fd461e98248a2181afd2ef94a41a291d20f7ffb20abeaf0cfcf81a9f94e27868"; x86_64-linux = "sha256-fA9WH9qUtvAHF9hTFRtxQdpz2dpK0joD0zX9VYBo10g=";
}.${stdenv.hostPlatform.system} or throwSystem; }.${stdenv.hostPlatform.system} or throwSystem;
src = fetchurl { src = fetchurl {
url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}-linux-${plat}.AppImage"; url = "https://github.com/standardnotes/app/releases/download/%40standardnotes%2Fdesktop%40${version}/standard-notes-${version}-linux-${plat}.AppImage";
inherit sha256; inherit sha256;
}; };
@ -37,17 +37,14 @@ in appimageTools.wrapType2 rec {
extraInstallCommands = '' extraInstallCommands = ''
# directory in /nix/store so readonly # directory in /nix/store so readonly
cp -r ${appimageContents}/* $out
cd $out cd $out
chmod -R +w $out chmod -R +w $out
mv $out/bin/${name} $out/bin/${pname} mv $out/bin/${name} $out/bin/${pname}
# fixup and install desktop file # fixup and install desktop file
${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \ ${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
--set-key Exec --set-value ${pname} standard-notes.desktop --set-key Exec --set-value ${pname} ${appimageContents}/standard-notes.desktop
mv usr/share/icons share ln -s ${appimageContents}/usr/share/icons share
rm usr/lib/* AppRun standard-notes.desktop .so*
''; '';
meta = with lib; { meta = with lib; {
@ -59,6 +56,7 @@ in appimageTools.wrapType2 rec {
homepage = "https://standardnotes.org"; homepage = "https://standardnotes.org";
license = licenses.agpl3; license = licenses.agpl3;
maintainers = with maintainers; [ mgregoire chuangzhu ]; maintainers = with maintainers; [ mgregoire chuangzhu ];
sourceProvenance = [ sourceTypes.binaryNativeCode ];
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" ];
}; };
} }

File diff suppressed because it is too large Load diff

View file

@ -1066,5 +1066,6 @@ https://github.com/folke/zen-mode.nvim/,,
https://github.com/jnurmine/zenburn/,, https://github.com/jnurmine/zenburn/,,
https://github.com/glepnir/zephyr-nvim/,, https://github.com/glepnir/zephyr-nvim/,,
https://github.com/ziglang/zig.vim/,, https://github.com/ziglang/zig.vim/,,
https://github.com/mickael-menu/zk-nvim/,HEAD,
https://github.com/troydm/zoomwintab.vim/,, https://github.com/troydm/zoomwintab.vim/,,
https://github.com/nanotee/zoxide.vim/,, https://github.com/nanotee/zoxide.vim/,,

View file

@ -588,6 +588,13 @@ in
preBuild = "cd libretro"; preBuild = "cd libretro";
}; };
nxengine = mkLibRetroCore {
core = "nxengine";
description = "NXEngine libretro port";
license = lib.licenses.gpl3Only;
makefile = "Makefile";
};
np2kai = mkLibRetroCore rec { np2kai = mkLibRetroCore rec {
core = "np2kai"; core = "np2kai";
src = getCoreSrc core; src = getCoreSrc core;

View file

@ -307,6 +307,12 @@
"sha256": "M3kGA1TU3xui6of9XgUspI+Zf+hjYP1d2mgKwxsy3IQ=", "sha256": "M3kGA1TU3xui6of9XgUspI+Zf+hjYP1d2mgKwxsy3IQ=",
"fetchSubmodules": true "fetchSubmodules": true
}, },
"nxengine": {
"owner": "libretro",
"repo": "nxengine-libretro",
"rev": "bc692a392473a45f63cdccbb353c3445b530d671",
"sha256": "tAZkYHRKL+mI6f7YCnaU0qTSOZGW2o20p6wovMK1n2k="
},
"o2em": { "o2em": {
"owner": "libretro", "owner": "libretro",
"repo": "libretro-o2em", "repo": "libretro-o2em",

View file

@ -59,6 +59,7 @@ CORES = {
"mupen64plus": {"repo": "mupen64plus-libretro-nx"}, "mupen64plus": {"repo": "mupen64plus-libretro-nx"},
"neocd": {"repo": "neocd_libretro"}, "neocd": {"repo": "neocd_libretro"},
"nestopia": {"repo": "nestopia"}, "nestopia": {"repo": "nestopia"},
"nxengine": {"repo": "nxengine-libretro"},
"np2kai": {"repo": "NP2kai", "owner": "AZO234", "fetch_submodules": True}, "np2kai": {"repo": "NP2kai", "owner": "AZO234", "fetch_submodules": True},
"o2em": {"repo": "libretro-o2em"}, "o2em": {"repo": "libretro-o2em"},
"opera": {"repo": "opera-libretro"}, "opera": {"repo": "opera-libretro"},

View file

@ -9,10 +9,10 @@
let let
# Keep these separate so the update script can regex them # Keep these separate so the update script can regex them
rpcs3GitVersion = "13388-4a86638ce"; rpcs3GitVersion = "13907-cdef752a9";
rpcs3Version = "0.0.21-13388-4a86638ce"; rpcs3Version = "0.0.23-13907-cdef752a9";
rpcs3Revision = "4a86638ce898e3bd68ade8e7ba794253782ea411"; rpcs3Revision = "cdef752a9c2004010279cd4a6d77b451b42cc6ab";
rpcs3Sha256 = "0bc1n0jy4a869mn1g5i008vb5m2a6qfhyf7lw0d0jiljgsppiys1"; rpcs3Sha256 = "1mw6k097rsiljaw34harhvr32dvrh4xv22ryinylijnsjlm3hcan";
ittapi = fetchFromGitHub { ittapi = fetchFromGitHub {
owner = "intel"; owner = "intel";

View file

@ -17,13 +17,13 @@
buildDotnetModule rec { buildDotnetModule rec {
pname = "ryujinx"; pname = "ryujinx";
version = "1.1.100"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml version = "1.1.181"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ryujinx"; owner = "Ryujinx";
repo = "Ryujinx"; repo = "Ryujinx";
rev = "26a881176eb6513a98889648e0d5b7fe647cd0e3"; rev = "6eb85e846f25ae36a39685d6ac91025deaea306c";
sha256 = "09wjygkdr9sr0hwv77czi0x5xw8y585k9pghdm5s3iqjn9gbb45k"; sha256 = "0lc8hhcrad26sw2dx0lwml8lk2mxg4db4sgfxnd450xi2qd63kdc";
}; };
projectFile = "Ryujinx.sln"; projectFile = "Ryujinx.sln";

View file

@ -1,22 +1,60 @@
{ fetchNuGet }: [ { fetchNuGet }: [
(fetchNuGet { pname = "AtkSharp"; version = "3.22.25.128"; sha256 = "0fg01zi7v6127043jzxzihirsdp187pyj83gfa6p79cx763l7z94"; }) (fetchNuGet { pname = "AtkSharp"; version = "3.22.25.128"; sha256 = "0fg01zi7v6127043jzxzihirsdp187pyj83gfa6p79cx763l7z94"; })
(fetchNuGet { pname = "Avalonia"; version = "0.10.15"; sha256 = "02rf96gxpafbk0ilg3nxf0fas9gkpb25kzqc2lnbxp8h366qg431"; })
(fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
(fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.15"; sha256 = "064l23dazs5aj8qj40py8vg362z3vpn2nxwh3m5h73qf85npyhgm"; })
(fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.15"; sha256 = "0wgc46vg227bv7nsybc9mxkqv9xlz2bj08bdipkigjlf23g0x4p6"; })
(fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.15"; sha256 = "0k3fq7nrfsx0l07mhnjnm0y2i0mydsnhjpa76jxsbh1kvi4mz56i"; })
(fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.15"; sha256 = "1bq2ha1mmgsb9gxmsibr3i6alcg6y3kizxi07qh4wgw38c3fkwzs"; })
(fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "0.10.15"; sha256 = "1qvay0wlpih6864hl6w85mskirs19k0xg513lxq2rhddqcnkh788"; })
(fetchNuGet { pname = "Avalonia.Native"; version = "0.10.15"; sha256 = "0p0ih6ql5kyvpfhc6ll2mgy23kx0vwn88qji74713id493w2ab02"; })
(fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.15"; sha256 = "1va9zwznfr161w2xjjg4swm5505685mdkxxs747l2s35mahl5072"; })
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.14"; sha256 = "1cvyg94avqdscniszshx5r3vfvx0cnna262sp89ad4bianmd4qkj"; })
(fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.15"; sha256 = "0xlnanssz24rcnybz1x0d3lclzmbzdjb9k0i37rd76dif3rgng0h"; })
(fetchNuGet { pname = "Avalonia.Svg"; version = "0.10.14"; sha256 = "102567bgj41sxhl3igzpd7gb6kizc6nyqlar23d7xvisyr0z037j"; })
(fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "0.10.14"; sha256 = "1d8gkaw057xakaa50a100m8lf1njwv0mzrqzwidlfvjsiay2c28j"; })
(fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.15"; sha256 = "1lxaj8la8bwc7j4d3cc3q5jklycc647lzpm8610ya241y64gryww"; })
(fetchNuGet { pname = "Avalonia.X11"; version = "0.10.15"; sha256 = "120d19i8ad3b2m1516v5r1bj4h7fddmad6szrbkbpd711x3sh6ka"; })
(fetchNuGet { pname = "CairoSharp"; version = "3.22.25.128"; sha256 = "1rjdxd4fq5z3n51qx8vrcaf4i277ccc62jxk88xzbsxapdmjjdf9"; }) (fetchNuGet { pname = "CairoSharp"; version = "3.22.25.128"; sha256 = "1rjdxd4fq5z3n51qx8vrcaf4i277ccc62jxk88xzbsxapdmjjdf9"; })
(fetchNuGet { pname = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; }) (fetchNuGet { pname = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
(fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; }) (fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
(fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; }) (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
(fetchNuGet { pname = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; }) (fetchNuGet { pname = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; })
(fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.4.1"; sha256 = "01j989g68arm2d8abq44hp0f22pp6azf2xi7wi7hv7m4sl0l9cwp"; }) (fetchNuGet { pname = "DynamicData"; version = "7.9.4"; sha256 = "0mfmlsdd48dpwiphqhq8gsix2528mc6anp7rakd6vyzmig60f520"; })
(fetchNuGet { pname = "Fizzler"; version = "1.2.0"; sha256 = "1b8kvqli5wql53ab9fwyg78h572z4f286s8rjb9xxmsyav1hsyll"; })
(fetchNuGet { pname = "FluentAvaloniaUI"; version = "1.4.1"; sha256 = "1jddr3iqb6402gv4v9wr8zaqbd2lh7988znlk3l3bmkfdviiflsx"; })
(fetchNuGet { pname = "GdkSharp"; version = "3.22.25.128"; sha256 = "0bmn0ddaw8797pnhpyl03h2zl8i5ha67yv38gly4ydy50az2xhj7"; }) (fetchNuGet { pname = "GdkSharp"; version = "3.22.25.128"; sha256 = "0bmn0ddaw8797pnhpyl03h2zl8i5ha67yv38gly4ydy50az2xhj7"; })
(fetchNuGet { pname = "GioSharp"; version = "3.22.25.128"; sha256 = "0syfa1f2hg7wsxln5lh86n8m1lihhprc51b6km91gkl25l5hw5bv"; }) (fetchNuGet { pname = "GioSharp"; version = "3.22.25.128"; sha256 = "0syfa1f2hg7wsxln5lh86n8m1lihhprc51b6km91gkl25l5hw5bv"; })
(fetchNuGet { pname = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; }) (fetchNuGet { pname = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; })
(fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; }) (fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
(fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; }) (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2"; sha256 = "12kxgnmv9ygmqzf92zcnw4dqz6l4m1wsaz5v9i7i88jja81k6l3a"; })
(fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2-preview.178"; sha256 = "1p5nwzl7jpypsd6df7hgcf47r977anjlyv21wacmalsj6lvdgnvn"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2-preview.178"; sha256 = "1402ylkxbgcnagcarqlfvg4gppy2pqs3bmin4n5mphva1g7bqb2p"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2"; sha256 = "0jkdqwjyhpxlkswd6pq45w4aix3ivl8937p68c1jl2y0m5p6259w"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2-preview.178"; sha256 = "0p8miaclnbfpacc1jaqxwfg0yfx9byagi4j4k91d9621vd19i8b2"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2-preview.178"; sha256 = "1n9jay9sji04xly6n8bzz4591fgy8i65p21a8mv5ip9lsyj1c320"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2"; sha256 = "1g3i7rzns6xsiybsls3sifgnfr6ml148c2r8vs0hz4zlisyfr8pd"; })
(fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2-preview.178"; sha256 = "1r5syii96wv8q558cvsqw3lr10cdw6677lyiy82p6i3if51v3mr7"; })
(fetchNuGet { pname = "JetBrains.Annotations"; version = "10.3.0"; sha256 = "1grdx28ga9fp4hwwpwv354rizm8anfq4lp045q4ss41gvhggr3z8"; })
(fetchNuGet { pname = "jp2masa.Avalonia.Flexbox"; version = "0.2.0"; sha256 = "1abck2gad29mgf9gwqgc6wr8iwl64v50n0sbxcj1bcxgkgndraiq"; })
(fetchNuGet { pname = "LibHac"; version = "0.16.1"; sha256 = "131qnqa1asdmymwdvpjza6w646b05jzn1cxjdxgwh7qdcdb77xyx"; }) (fetchNuGet { pname = "LibHac"; version = "0.16.1"; sha256 = "131qnqa1asdmymwdvpjza6w646b05jzn1cxjdxgwh7qdcdb77xyx"; })
(fetchNuGet { pname = "MicroCom.CodeGenerator.MSBuild"; version = "0.10.4"; sha256 = "1bdgy6g15d1mln1xpvs6sy0l2zvfs4hxw6nc3qm16qb8hdgvb73y"; })
(fetchNuGet { pname = "MicroCom.Runtime"; version = "0.10.4"; sha256 = "0ccbzp0d01dcahm7ban7xyh1rk7k2pkml3l5i7s85cqk5lnczpw2"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0i00xs472gpxbrwx593z520sp8nv3lmqi8z3zrj9cshqckq8knnx"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0i00xs472gpxbrwx593z520sp8nv3lmqi8z3zrj9cshqckq8knnx"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; }) (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "2.9.6"; sha256 = "18mr1f0wpq0fir8vjnq0a8pz50zpnblr7sabff0yqx37c975934a"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.4.0"; sha256 = "12rn6gl4viycwk3pz5hp5df63g66zvba4hnkwr3f0876jj5ivmsw"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.2.0"; sha256 = "0ld6xxgaqc3c6zgyimlvpgrxncsykbz8irqs01jyj40rv150kp8s"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.4.0"; sha256 = "0rhylcwa95bxawcgixk64knv7p7xrykdjcabmx3gknk8hvj1ai9y"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.2.0"; sha256 = "0i1c7055j3f5k1765bl66amp72dcw0zapczfszdldbg91iqmmkxg"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.4.0"; sha256 = "1h2f0z9xnw987x8bydka1sd42ijqjx973md6v1gvpy1qc6ad244g"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.4.0"; sha256 = "195gqnpwqkg2wlvk8x6yzm7byrxfq9bki20xmhf6lzfsdw3z4mf2"; })
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.8.0"; sha256 = "1y05sjk7wgd29a47v1yhn2s1lrd8wgazkilvmjbvivmrrm3fqjs8"; }) (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.8.0"; sha256 = "1y05sjk7wgd29a47v1yhn2s1lrd8wgazkilvmjbvivmrrm3fqjs8"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; }) (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; }) (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
(fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; }) (fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.15.0"; sha256 = "0dwx7dk8jr10784nriqbi364qbxzfwq0c6xia0ac5rzrp7179r4d"; }) (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.15.0"; sha256 = "0dwx7dk8jr10784nriqbi364qbxzfwq0c6xia0ac5rzrp7179r4d"; })
@ -31,6 +69,7 @@
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; }) (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; }) (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; }) (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.8.0"; sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m"; }) (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.8.0"; sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m"; })
@ -39,19 +78,21 @@
(fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; }) (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; }) (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; }) (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
(fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "4.5.0"; sha256 = "0fnkv3ky12227zqg4zshx4kw2mvysq2ppxjibfw02cc3iprv4njq"; })
(fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; }) (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; })
(fetchNuGet { pname = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; }) (fetchNuGet { pname = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
(fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; }) (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
(fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; }) (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
(fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; }) (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; }) (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; }) (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
(fetchNuGet { pname = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; }) (fetchNuGet { pname = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; })
(fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; }) (fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; })
(fetchNuGet { pname = "OpenTK.Core"; version = "4.5.0"; sha256 = "06qxczikp0aah20d4skk3g588dgh2vn2xffn0ajyyv0475m61s9m"; }) (fetchNuGet { pname = "OpenTK.Core"; version = "4.7.2"; sha256 = "023jav5xdn532kdlkq8pqrvcjl98g1p9ggc8r85fk9bry5121pra"; })
(fetchNuGet { pname = "OpenTK.Graphics"; version = "4.5.0"; sha256 = "180g5c92fhhhpmwl6paihx4h1bil7akaihlz2qy124n28pf4s988"; }) (fetchNuGet { pname = "OpenTK.Graphics"; version = "4.7.2"; sha256 = "1wnf9x45ga336vq4px2a2fmma4zc9xrcr4qwrsmsh3l4w0d9s6ps"; })
(fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.5.0"; sha256 = "1h9dxhq1llxdbgdzsi87ijqgj2ilr3rv0zkxhaa65xrc5x8j8fva"; }) (fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.7.2"; sha256 = "0ay1a8spmy8pn5nlvvac796smp74hjpxm3swvxdrbqqg4l4xqlfz"; })
(fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.5.0"; sha256 = "0lqxpc3vnxglql42x2frvq5bpkl5cf3dpnf9nx6pr3q6qnhigkfb"; }) (fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.7.2"; sha256 = "1m0wgf4khikyz2pvns5d9ffwm7psxjn9r4h128aqlca1iyay23f6"; })
(fetchNuGet { pname = "PangoSharp"; version = "3.22.25.128"; sha256 = "0dkl9j0yd65s5ds9xj5z6yb7yca7wlycqz25m8dng20d13sqr1zp"; }) (fetchNuGet { pname = "PangoSharp"; version = "3.22.25.128"; sha256 = "0dkl9j0yd65s5ds9xj5z6yb7yca7wlycqz25m8dng20d13sqr1zp"; })
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; }) (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; }) (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
@ -101,26 +142,46 @@
(fetchNuGet { pname = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; }) (fetchNuGet { pname = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
(fetchNuGet { pname = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; }) (fetchNuGet { pname = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
(fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; }) (fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
(fetchNuGet { pname = "runtime.win7-x64.runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1dmbmksnxg12fk2p0k7rzy16448mddr2sfrnqs0rhhrzl0z22zi5"; })
(fetchNuGet { pname = "runtime.win7.System.Private.Uri"; version = "4.3.0"; sha256 = "0bxkcmklp556dc43bra8ngc8wymcbbflcydi0xwq0j22gm66xf2m"; })
(fetchNuGet { pname = "Ryujinx.Audio.OpenAL.Dependencies"; version = "1.21.0.1"; sha256 = "0z5k42h252nr60d02p2ww9190d7k1kzrb26vil4ydfhxqqqv6w9l"; }) (fetchNuGet { pname = "Ryujinx.Audio.OpenAL.Dependencies"; version = "1.21.0.1"; sha256 = "0z5k42h252nr60d02p2ww9190d7k1kzrb26vil4ydfhxqqqv6w9l"; })
(fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build7"; sha256 = "0g1l3lgs0ffxp64ka81v6q1cgsdirl1qlf73255v29r3v337074m"; }) (fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "5.0.1-build10"; sha256 = "05r3fh92raaydf4vcih77ivymbs97kqwjlgqdpaxa11aqq0hq753"; })
(fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build9"; sha256 = "121zmh0byi22qsc9b25wv58kwcq6pmk7zf4f2rfafmdjvwx8bkxc"; }) (fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.0.22-build20"; sha256 = "03d1rv0rlr2z7ynqixgj9xqlksplk1vsvq5wxjf5c6c6zcknx01r"; })
(fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.0.17-build18"; sha256 = "0j0vs6075c4fniydqxhpp18pg3x679mq463x4gxqgkri3vhpj4vl"; })
(fetchNuGet { pname = "SharpZipLib"; version = "1.3.3"; sha256 = "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"; }) (fetchNuGet { pname = "SharpZipLib"; version = "1.3.3"; sha256 = "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"; })
(fetchNuGet { pname = "ShimSkiaSharp"; version = "0.5.14"; sha256 = "0ym0ayik0vq2za9h0kr8mhjd9zk4hx25hrrfyyg9wrc164xa11qb"; })
(fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; }) (fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; })
(fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; }) (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
(fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; }) (fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; })
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.0"; sha256 = "0wqfgzyp2m4myqrni9rgchiqi95axbf279hlqjflrj4c9z2412ni"; })
(fetchNuGet { pname = "SkiaSharp"; version = "2.88.1-preview.1"; sha256 = "1i1px67hcr9kygmbfq4b9nqzlwm7v2gapsp4isg9i19ax5g8dlhm"; })
(fetchNuGet { pname = "SkiaSharp.HarfBuzz"; version = "2.88.0"; sha256 = "0ygkwlk2d59sqjvvw0s92hh92wxnm68rdlbp7wfs2gz5nipkgdvi"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.0-preview.178"; sha256 = "07kga1j51l3l302nvf537zg5clf6rflinjy0xd6i06cmhpkf3ksw"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.1-preview.1"; sha256 = "1r9qr3civk0ws1z7hg322qyr8yjm10853zfgs03szr2lvdqiy7d1"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.0"; sha256 = "0d0pdcm61jfy3fvgkxmm3hj9cijrwbmp6ky2af776m1l63ryii3q"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.1-preview.1"; sha256 = "1w55nrwpl42psn6klia5a9aw2j1n25hpw2fdhchypm9f0v2iz24h"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.0-preview.178"; sha256 = "09jmcg5k1vpsal8jfs90mwv0isf2y5wq3h4hd77rv6vffn5ic4sm"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.1-preview.1"; sha256 = "0mwj2yl4gn40lry03yqkj7sbi1drmm672dv88481sgah4c21lzrq"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.0"; sha256 = "135ni4rba4wy4wyzy9ip11f3dwb1ipn38z9ps1p9xhw8jc06y5vp"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.1-preview.1"; sha256 = "1k50abd147pif9z9lkckbbk91ga1vv6k4skjz2n7wpll6fn0fvlv"; })
(fetchNuGet { pname = "SPB"; version = "0.0.4-build17"; sha256 = "0arp7mwdn1w67qx8a0m90xh8waj15154ynswrbsp5w4wmzkcss1i"; }) (fetchNuGet { pname = "SPB"; version = "0.0.4-build17"; sha256 = "0arp7mwdn1w67qx8a0m90xh8waj15154ynswrbsp5w4wmzkcss1i"; })
(fetchNuGet { pname = "Svg.Custom"; version = "0.5.14"; sha256 = "1wjghs2n5hk7zszzk2p2a8m6ga2gc8sfd5mdqi15sbfkmwg2nbw7"; })
(fetchNuGet { pname = "Svg.Model"; version = "0.5.14"; sha256 = "1xilk95bmnsl93sbr7pah0jrjrnccf1ikcn8s7rkm0yjkj382hc8"; })
(fetchNuGet { pname = "Svg.Skia"; version = "0.5.14"; sha256 = "02wv040wi8ijw9mwg3c84f8bfyfv9n99ji8q1v2bs11b463zsyd1"; })
(fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; }) (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; }) (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; }) (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
(fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; }) (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; })
(fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; }) (fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; })
(fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; }) (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; }) (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
(fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; }) (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
(fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
(fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; }) (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
(fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; }) (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
(fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; }) (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
(fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
(fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; }) (fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; })
(fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; }) (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
(fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; }) (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
@ -131,9 +192,10 @@
(fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; }) (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; }) (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; }) (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; }) (fetchNuGet { pname = "System.Drawing.Common"; version = "4.5.0"; sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc"; })
(fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; }) (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; })
(fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; }) (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
(fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
(fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; }) (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; }) (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; }) (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
@ -151,25 +213,34 @@
(fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; }) (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; }) (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; }) (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
(fetchNuGet { pname = "System.Management"; version = "6.0.0"; sha256 = "0ra1g75ykapg6i5y0za721kpjd6xcq6dalijkdm6fsxxmz8iz4dr"; }) (fetchNuGet { pname = "System.Management"; version = "6.0.0"; sha256 = "0ra1g75ykapg6i5y0za721kpjd6xcq6dalijkdm6fsxxmz8iz4dr"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
(fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; }) (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
(fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; }) (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; }) (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
(fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; }) (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.3.0"; sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s"; }) (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.3.0"; sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; }) (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
(fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; }) (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
(fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
(fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; }) (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
(fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; }) (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; }) (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; }) (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; }) (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; }) (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; }) (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; }) (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; }) (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; }) (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; }) (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; }) (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; }) (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; }) (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
@ -178,7 +249,11 @@
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; }) (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
(fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; }) (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
(fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; }) (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.0"; sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; }) (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.0"; sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; }) (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; }) (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; }) (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
@ -202,8 +277,11 @@
(fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; }) (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; }) (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; }) (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; }) (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; }) (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; }) (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; }) (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; }) (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
@ -215,13 +293,17 @@
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; }) (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; }) (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
(fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; }) (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
(fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; }) (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
(fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; }) (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
(fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; }) (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; }) (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; }) (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
(fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; }) (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
(fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; }) (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
(fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; }) (fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
(fetchNuGet { pname = "Tmds.DBus"; version = "0.9.0"; sha256 = "0vvx6sg8lxm23g5jvm5wh2gfs95mv85vd52lkq7d1b89bdczczf3"; })
] ]

View file

@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#! nix-shell -I nixpkgs=../../../.. -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6 #! nix-shell -I nixpkgs=./. -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
set -euo pipefail set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")" cd "$(dirname "${BASH_SOURCE[0]}")"
@ -61,14 +61,14 @@ OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
echo "comparing versions $OLD_VERSION -> $NEW_VERSION" echo "comparing versions $OLD_VERSION -> $NEW_VERSION"
if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then
echo "Already up to date!" echo "Already up to date!"
if [[ "$1" != "--deps-only" ]]; then if [[ "${1-default}" != "--deps-only" ]]; then
exit 0 exit 0
fi fi
fi fi
cd ../../../.. cd ../../../..
if [[ "$1" != "--deps-only" ]]; then if [[ "${1-default}" != "--deps-only" ]]; then
SHA="$(nix-prefetch-git https://github.com/ryujinx/ryujinx --rev "$COMMIT" --quiet | jq -r '.sha256')" SHA="$(nix-prefetch-git https://github.com/ryujinx/ryujinx --rev "$COMMIT" --quiet | jq -r '.sha256')"
update-source-version ryujinx "$NEW_VERSION" "$SHA" --rev="$COMMIT" update-source-version ryujinx "$NEW_VERSION" "$SHA" --rev="$COMMIT"
fi fi

View file

@ -0,0 +1,34 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
}:
stdenv.mkDerivation rec {
pname = "wibo";
version = "0.2.0";
src = fetchFromGitHub {
owner = "decompals";
repo = "WiBo";
rev = version;
sha256 = "sha256-zv+FiordPo7aho3RJqDEe/1sJtjVt6Vy665VeNul/Kw=";
};
nativeBuildInputs = [
cmake
];
meta = with lib; {
description = "Quick-and-dirty wrapper to run 32-bit windows EXEs on linux";
longDescription = ''
A minimal, low-fuss wrapper that can run really simple command-line
32-bit Windows binaries on Linux - with less faff and less dependencies
than WINE.
'';
homepage = "https://github.com/decompals/WiBo";
license = licenses.mit;
maintainers = with maintainers; [ r-burns ];
platforms = [ "i686-linux" ];
};
}

View file

@ -21,14 +21,14 @@ in rec {
## see http://wiki.winehq.org/Gecko ## see http://wiki.winehq.org/Gecko
gecko32 = fetchurl rec { gecko32 = fetchurl rec {
version = "2.47.2"; version = "2.47.3";
url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86.msi"; url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86.msi";
sha256 = "07d6nrk2g0614kvwdjym1wq21d2bwy3pscwikk80qhnd6rrww875"; sha256 = "sha256-5bmwbTzjVWRqjS5y4ETjfh4MjRhGTrGYWtzRh6f0jgE=";
}; };
gecko64 = fetchurl rec { gecko64 = fetchurl rec {
version = "2.47.2"; version = "2.47.3";
url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86_64.msi"; url = "https://dl.winehq.org/wine/wine-gecko/${version}/wine-gecko-${version}-x86_64.msi";
sha256 = "0iffhvdawc499nbn4k99k33cr7g8sdfcvq8k3z1g6gw24h87d5h5"; sha256 = "sha256-pT7pVDkrbR/j1oVF9uTiqXr7yNyLA6i0QzSVRc4TlnU=";
}; };
## see http://wiki.winehq.org/Mono ## see http://wiki.winehq.org/Mono
@ -46,9 +46,9 @@ in rec {
unstable = fetchurl rec { unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well. # NOTE: Don't forget to change the SHA256 for staging as well.
version = "7.10"; version = "7.13";
url = "https://dl.winehq.org/wine/source/7.x/wine-${version}.tar.xz"; url = "https://dl.winehq.org/wine/source/7.x/wine-${version}.tar.xz";
sha256 = "sha256-P+skzYWYwQ9q9xHnSsK10kQrtNO4wHj506JTroc2SA0="; sha256 = "sha256-a/6+kz2qUJVprnmwv2ofG08H4b+K/Balm+4TdIuSymQ=";
inherit (stable) gecko32 gecko64 patches; inherit (stable) gecko32 gecko64 patches;
mono = fetchurl rec { mono = fetchurl rec {
@ -61,7 +61,7 @@ in rec {
staging = fetchFromGitHub rec { staging = fetchFromGitHub rec {
# https://github.com/wine-staging/wine-staging/releases # https://github.com/wine-staging/wine-staging/releases
inherit (unstable) version; inherit (unstable) version;
sha256 = "sha256-5Pt98pla6t+B3FjB80hOWJUO64jY1EmOPQ0hEkFBWxY="; sha256 = "sha256-U1awbhJRT3aAJstyEjv2Dp20FqyQ4ntnFFRYJb12C/U=";
owner = "wine-staging"; owner = "wine-staging";
repo = "wine-staging"; repo = "wine-staging";
rev = "v${version}"; rev = "v${version}";

View file

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "vkd3d"; pname = "vkd3d";
version = "1.3"; version = "1.4";
src = fetchurl { src = fetchurl {
url = "https://dl.winehq.org/vkd3d/source/vkd3d-${version}.tar.xz"; url = "https://dl.winehq.org/vkd3d/source/vkd3d-${version}.tar.xz";
sha256 = "134b347806d34a4d2b39ea29ff1c2b38443793803a3adc50800855bb929fb8b2"; sha256 = "sha256-yLqF9gSCyHPAVs9tuw6veRvIq30W1ipH83uYQbapCr0=";
}; };
nativeBuildInputs = [ flex bison ]; nativeBuildInputs = [ flex bison ];

View file

@ -5,23 +5,23 @@
}: }:
let let
# Fetched from https://api.yuzu-emu.org/gamedb, last updated 2022-05-12 # Fetched from https://api.yuzu-emu.org/gamedb, last updated 2022-07-14
# Please make sure to update this when updating yuzu! # Please make sure to update this when updating yuzu!
compat-list = fetchurl { compat-list = fetchurl {
name = "yuzu-compat-list"; name = "yuzu-compat-list";
url = "https://web.archive.org/web/20220512184801/https://api.yuzu-emu.org/gamedb"; url = "https://web.archive.org/web/20220714160745/https://api.yuzu-emu.org/gamedb";
sha256 = "sha256-anOmO7NscHDsQxT03+YbJEyBkXjhcSVGgKpDwt//GHw="; sha256 = "sha256-anOmO7NscHDsQxT03+YbJEyBkXjhcSVGgKpDwt//GHw=";
}; };
in { in {
mainline = libsForQt5.callPackage ./generic.nix rec { mainline = libsForQt5.callPackage ./generic.nix rec {
pname = "yuzu-mainline"; pname = "yuzu-mainline";
version = "1014"; version = "1092";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yuzu-emu"; owner = "yuzu-emu";
repo = "yuzu-mainline"; repo = "yuzu-mainline";
rev = "mainline-0-${version}"; rev = "mainline-0-${version}";
sha256 = "1x3d1fjssadv4kybc6mk153jlvncsfgm5aipkq5n5i8sr7mmr3nw"; sha256 = "1avcq924q0r8pfv1s0a88iyii7yixcxpb3yhlj0xg9zqnwp9r23y";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -30,13 +30,13 @@ in {
early-access = libsForQt5.callPackage ./generic.nix rec { early-access = libsForQt5.callPackage ./generic.nix rec {
pname = "yuzu-ea"; pname = "yuzu-ea";
version = "2725"; version = "2841";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pineappleEA"; owner = "pineappleEA";
repo = "pineapple-src"; repo = "pineapple-src";
rev = "EA-${version}"; rev = "EA-${version}";
sha256 = "1nmcl9y9chr7cdvnra5zs1v42d3i801hmsjdlz3fmp15n04bcjmp"; sha256 = "16lrq9drv0x7gs1siq37m4zmh6d2g3vhnw9qcqajr9p0vmlpnh6l";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -53,7 +53,7 @@ updateEarlyAccess() {
OLD_EA_HASH="$(getLocalHash "yuzu-ea")" OLD_EA_HASH="$(getLocalHash "yuzu-ea")"
NEW_EA_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ NEW_EA_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
"https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=1" | jq -r '.[0].name' | cut -d"-" -f2 | cut -d" " -f1)" "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=1" | jq -r '.[0].tag_name' | cut -d"-" -f2 | cut -d" " -f1)"
if [[ "${OLD_EA_VERSION}" = "${NEW_EA_VERSION}" ]]; then if [[ "${OLD_EA_VERSION}" = "${NEW_EA_VERSION}" ]]; then
echo "yuzu-ea is already up to date!" echo "yuzu-ea is already up to date!"

View file

@ -69,14 +69,14 @@ let
six six
]; ];
in mkDerivation rec { in mkDerivation rec {
version = "3.22.8"; version = "3.22.9";
pname = "qgis-ltr-unwrapped"; pname = "qgis-ltr-unwrapped";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qgis"; owner = "qgis";
repo = "QGIS"; repo = "QGIS";
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}"; rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "sha256-YxF7FzyNNt+bdk96g2sWWv9haqV0L6Ab96D0hV0BFrA="; sha256 = "sha256-QHdcK34e7tC0AUstE8pbsBHzHXbmOd3gI2/zqsxb6X4=";
}; };
passthru = { passthru = {

View file

@ -69,14 +69,14 @@ let
six six
]; ];
in mkDerivation rec { in mkDerivation rec {
version = "3.26.0"; version = "3.26.1";
pname = "qgis-unwrapped"; pname = "qgis-unwrapped";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "qgis"; owner = "qgis";
repo = "QGIS"; repo = "QGIS";
rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}"; rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "sha256-yHQi5ai7fdgznTf562Bj0QPE+SXg972O7+r01RY7itE="; sha256 = "sha256-FjMe/5uEbmSeQrAtkKvoGh4VlPkbGMHNzlCpn27C5CQ=";
}; };
passthru = { passthru = {

View file

@ -1,6 +1,25 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool { lib, stdenv, fetchFromGitHub, pkg-config, libtool
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre , bzip2Support ? true, bzip2
, lcms2, openexr, libpng, liblqr1, librsvg, libtiff, libxml2, openjpeg, libwebp, fftw, libheif, libde265 , zlibSupport ? true, zlib
, libX11Support ? !stdenv.hostPlatform.isMinGW, libX11
, libXtSupport ? !stdenv.hostPlatform.isMinGW, libXt
, fontconfigSupport ? true, fontconfig
, freetypeSupport ? true, freetype
, ghostscriptSupport ? false, ghostscript
, libjpegSupport ? true, libjpeg
, djvulibreSupport ? true, djvulibre
, lcms2Support ? true, lcms2
, openexrSupport ? !stdenv.hostPlatform.isMinGW, openexr
, libpngSupport ? true, libpng
, liblqr1Support ? true, liblqr1
, librsvgSupport ? !stdenv.hostPlatform.isMinGW, librsvg
, libtiffSupport ? true, libtiff
, libxml2Support ? true, libxml2
, openjpegSupport ? !stdenv.hostPlatform.isMinGW, openjpeg
, libwebpSupport ? !stdenv.hostPlatform.isMinGW, libwebp
, libheifSupport ? true, libheif
, libde265Support ? true, libde265
, fftw
, ApplicationServices, Foundation , ApplicationServices, Foundation
}: }:
@ -30,35 +49,47 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
configureFlags = configureFlags = [
[ "--with-frozenpaths" ] "--with-frozenpaths"
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ]) (lib.withFeatureAs (arch != null) "gcc-arch" arch)
++ lib.optional (librsvg != null) "--with-rsvg" (lib.withFeature librsvgSupport "rsvg")
++ lib.optional (liblqr1 != null) "--with-lqr" (lib.withFeature liblqr1Support "lqr")
++ lib.optionals (ghostscript != null) (lib.withFeatureAs ghostscriptSupport "gs-font-dir" "${ghostscript}/share/ghostscript/fonts")
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" (lib.withFeature ghostscriptSupport "gslib")
"--with-gslib" ] ++ lib.optionals stdenv.hostPlatform.isMinGW [
] # due to libxml2 being without DLLs ATM
++ lib.optionals (stdenv.hostPlatform.isMinGW) "--enable-static" "--disable-shared"
[ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM ];
;
nativeBuildInputs = [ pkg-config libtool ]; nativeBuildInputs = [ pkg-config libtool ];
buildInputs = buildInputs = [ ]
[ zlib fontconfig freetype ghostscript ++ lib.optional zlibSupport zlib
liblqr1 libpng libtiff libxml2 libheif libde265 djvulibre ++ lib.optional fontconfigSupport fontconfig
] ++ lib.optional ghostscriptSupport ghostscript
++ lib.optionals (!stdenv.hostPlatform.isMinGW) ++ lib.optional liblqr1Support liblqr1
[ openexr librsvg openjpeg ] ++ lib.optional libpngSupport libpng
++ lib.optionals stdenv.isDarwin ++ lib.optional libtiffSupport libtiff
[ ApplicationServices Foundation ]; ++ lib.optional libxml2Support libxml2
++ lib.optional libheifSupport libheif
++ lib.optional libde265Support libde265
++ lib.optional djvulibreSupport djvulibre
++ lib.optional openexrSupport openexr
++ lib.optional librsvgSupport librsvg
++ lib.optional openjpegSupport openjpeg
++ lib.optionals stdenv.isDarwin [
ApplicationServices
Foundation
];
propagatedBuildInputs = propagatedBuildInputs = [ fftw ]
[ bzip2 freetype libjpeg lcms2 fftw ] ++ lib.optional bzip2Support bzip2
++ lib.optionals (!stdenv.hostPlatform.isMinGW) ++ lib.optional freetypeSupport freetype
[ libX11 libXext libXt libwebp ] ++ lib.optional libjpegSupport libjpeg
; ++ lib.optional lcms2Support lcms2
++ lib.optional libX11Support libX11
++ lib.optional libXtSupport libXt
++ lib.optional libwebpSupport libwebp;
doCheck = false; # fails 6 out of 76 tests doCheck = false; # fails 6 out of 76 tests
@ -72,7 +103,7 @@ stdenv.mkDerivation rec {
substituteInPlace "$file" --replace ${pkg-config}/bin/pkg-config \ substituteInPlace "$file" --replace ${pkg-config}/bin/pkg-config \
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'" "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
done done
'' + lib.optionalString (ghostscript != null) '' '' + lib.optionalString ghostscriptSupport ''
for la in $out/lib/*.la; do for la in $out/lib/*.la; do
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
done done

View file

@ -1,133 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, libtool
, bzip2
, zlib
, libX11
, libXext
, libXt
, fontconfig
, freetype
, ghostscript
, libjpeg
, djvulibre
, lcms2
, openexr
, libjxl
, libpng
, liblqr1
, libraw
, librsvg
, libtiff
, libxml2
, openjpeg
, libwebp
, libheif
, potrace
, curl
, ApplicationServices
, Foundation
, testers
, imagemagick
}:
let
arch =
if stdenv.hostPlatform.system == "i686-linux" then "i686"
else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
else null;
in
stdenv.mkDerivation rec {
pname = "imagemagick";
version = "7.1.0-39";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
hash = "sha256-2KSsRkzaC3muNwH4GJfIiMy4pnSjh8waDpYRTuu6GG0=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
outputMan = "out"; # it's tiny
enableParallelBuilding = true;
configureFlags =
[ "--with-frozenpaths" ]
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
++ lib.optional (librsvg != null) "--with-rsvg"
++ lib.optional (liblqr1 != null) "--with-lqr"
++ lib.optional (libjxl != null ) "--with-jxl"
++ lib.optionals (ghostscript != null)
[
"--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
"--with-gslib"
]
++ lib.optionals stdenv.hostPlatform.isMinGW
[ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM
;
nativeBuildInputs = [ pkg-config libtool ];
buildInputs =
[
zlib
fontconfig
freetype
ghostscript
potrace
liblqr1
libpng
libraw
libtiff
libxml2
libheif
djvulibre
libjxl
]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ openexr librsvg openjpeg ]
++ lib.optionals stdenv.isDarwin [
ApplicationServices
Foundation
];
propagatedBuildInputs =
[ bzip2 freetype libjpeg lcms2 curl ]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ libX11 libXext libXt libwebp ]
;
postInstall = ''
(cd "$dev/include" && ln -s ImageMagick* ImageMagick)
moveToOutput "bin/*-config" "$dev"
moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params
for file in "$dev"/bin/*-config; do
substituteInPlace "$file" --replace pkg-config \
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
done
'' + lib.optionalString (ghostscript != null) ''
for la in $out/lib/*.la; do
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
done
'';
passthru.tests.version =
testers.testVersion { package = imagemagick; };
meta = with lib; {
homepage = "http://www.imagemagick.org/";
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ erictapen dotlambda ];
license = licenses.asl20;
mainProgram = "magick";
};
}

View file

@ -0,0 +1,132 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, libtool
, bzip2Support ? true, bzip2
, zlibSupport ? true, zlib
, libX11Support ? !stdenv.hostPlatform.isMinGW, libX11
, libXtSupport ? !stdenv.hostPlatform.isMinGW, libXt
, fontconfigSupport ? true, fontconfig
, freetypeSupport ? true, freetype
, ghostscriptSupport ? false, ghostscript
, libjpegSupport ? true, libjpeg
, djvulibreSupport ? true, djvulibre
, lcms2Support ? true, lcms2
, openexrSupport ? !stdenv.hostPlatform.isMinGW, openexr
, libjxlSupport ? true, libjxl
, libpngSupport ? true, libpng
, liblqr1Support ? true, liblqr1
, librawSupport ? true, libraw
, librsvgSupport ? !stdenv.hostPlatform.isMinGW, librsvg
, libtiffSupport ? true, libtiff
, libxml2Support ? true, libxml2
, openjpegSupport ? !stdenv.hostPlatform.isMinGW, openjpeg
, libwebpSupport ? !stdenv.hostPlatform.isMinGW, libwebp
, libheifSupport ? true, libheif
, potrace
, curl
, ApplicationServices
, Foundation
, testers
, imagemagick
}:
assert libXtSupport -> libX11Support;
let
arch =
if stdenv.hostPlatform.system == "i686-linux" then "i686"
else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
else null;
in
stdenv.mkDerivation rec {
pname = "imagemagick";
version = "7.1.0-43";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = builtins.replaceStrings [ "-" ] [ "." ] version;
hash = "sha256-SOy7Ci1rzLB12ofSQBWmX86dfbr/ywsRPunHRswlAt4=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
outputMan = "out"; # it's tiny
enableParallelBuilding = true;
configureFlags = [
"--with-frozenpaths"
(lib.withFeatureAs (arch != null) "gcc-arch" arch)
(lib.withFeature librsvgSupport "rsvg")
(lib.withFeature liblqr1Support "lqr")
(lib.withFeature libjxlSupport "jxl")
(lib.withFeatureAs ghostscriptSupport "gs-font-dir" "${ghostscript}/share/ghostscript/fonts")
(lib.withFeature ghostscriptSupport "gslib")
] ++ lib.optionals stdenv.hostPlatform.isMinGW [
# due to libxml2 being without DLLs ATM
"--enable-static" "--disable-shared"
];
nativeBuildInputs = [ pkg-config libtool ];
buildInputs = [ potrace ]
++ lib.optional zlibSupport zlib
++ lib.optional fontconfigSupport fontconfig
++ lib.optional ghostscriptSupport ghostscript
++ lib.optional liblqr1Support liblqr1
++ lib.optional libpngSupport libpng
++ lib.optional librawSupport libraw
++ lib.optional libtiffSupport libtiff
++ lib.optional libxml2Support libxml2
++ lib.optional libheifSupport libheif
++ lib.optional djvulibreSupport djvulibre
++ lib.optional libjxlSupport libjxl
++ lib.optional openexrSupport openexr
++ lib.optional librsvgSupport librsvg
++ lib.optional openjpegSupport openjpeg
++ lib.optionals stdenv.isDarwin [
ApplicationServices
Foundation
];
propagatedBuildInputs = [ curl ]
++ lib.optional bzip2Support bzip2
++ lib.optional freetypeSupport freetype
++ lib.optional libjpegSupport libjpeg
++ lib.optional lcms2Support lcms2
++ lib.optional libX11Support libX11
++ lib.optional libXtSupport libXt
++ lib.optional libwebpSupport libwebp;
postInstall = ''
(cd "$dev/include" && ln -s ImageMagick* ImageMagick)
moveToOutput "bin/*-config" "$dev"
moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params
for file in "$dev"/bin/*-config; do
substituteInPlace "$file" --replace pkg-config \
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
done
'' + lib.optionalString ghostscriptSupport ''
for la in $out/lib/*.la; do
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
done
'';
passthru.tests.version =
testers.testVersion { package = imagemagick; };
meta = with lib; {
homepage = "http://www.imagemagick.org/";
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ erictapen dotlambda ];
license = licenses.asl20;
mainProgram = "magick";
};
}

View file

@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec { python3Packages.buildPythonPackage rec {
pname = "hydrus"; pname = "hydrus";
version = "488d"; version = "491";
format = "other"; format = "other";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hydrusnetwork"; owner = "hydrusnetwork";
repo = "hydrus"; repo = "hydrus";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-FWiopOf+eabiWAfjQW83V7I/e5lOLUVW3djoQePHPRs="; sha256 = "sha256-ceKawn2jyfZPP4HzhkB1jIQoStCPRO/Ni/+Ys1R2FJQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -42,7 +42,7 @@ python3Packages.buildPythonPackage rec {
pyopenssl pyopenssl
pyside2 pyside2
pysocks pysocks
pythonPackages.mpv python3Packages.mpv
pyyaml pyyaml
qtpy qtpy
requests requests

View file

@ -57,11 +57,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "inkscape"; pname = "inkscape";
version = "1.2"; version = "1.2.1";
src = fetchurl { src = fetchurl {
url = "https://media.inkscape.org/dl/resources/file/inkscape-${version}.tar.xz"; url = "https://media.inkscape.org/dl/resources/file/inkscape-${version}.tar.xz";
sha256 = "jZsxFCVUlFZk7f7+LWtVkQpQmXZfcXanEQfDTx3N5q0="; sha256 = "Rs59oOunykutwdtw6cu2fgrfm7NCaH3G4ItcohuNTBs=";
}; };
# Inkscape hits the ARGMAX when linking on macOS. It appears to be # Inkscape hits the ARGMAX when linking on macOS. It appears to be

View file

@ -1,13 +1,13 @@
{ lib, stdenv, mkDerivation, fetchFromGitLab, qmake, qtbase, qttools, qtserialport, libGLU }: { lib, stdenv, mkDerivation, fetchFromGitLab, qmake, qtbase, qttools, qtserialport, libGLU }:
mkDerivation rec { mkDerivation rec {
pname = "OSCAR"; pname = "OSCAR";
version = "1.3.1"; version = "1.4.0";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "pholy"; owner = "pholy";
repo = "OSCAR-code"; repo = "OSCAR-code";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-/70NoyiQ33RFdSTBAyi5c/JPZ2AV1/iRvkAZ6VjpUXw="; sha256 = "sha256-bgETkpyL0yhCD1FfTVN0s9RNOPkDp88W/1Gdxvu+Ons=";
}; };
buildInputs = [ qtbase qttools qtserialport libGLU ]; buildInputs = [ qtbase qttools qtserialport libGLU ];

View file

@ -1,4 +1,4 @@
{ lib, fetchFromGitHub { lib, fetchFromGitHub, gitUpdater
, meson, ninja, pkg-config, wrapGAppsHook , meson, ninja, pkg-config, wrapGAppsHook
, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy, webkitgtk , desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy, webkitgtk
, python3Packages, gettext , python3Packages, gettext
@ -95,6 +95,10 @@ python3Packages.buildPythonApplication rec {
makeWrapperArgs+=("''${gappsWrapperArgs[@]}") makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
''; '';
passthru.updateScript = gitUpdater {
inherit pname version;
};
meta = with lib; { meta = with lib; {
description = "An easy-to-use wineprefix manager"; description = "An easy-to-use wineprefix manager";
homepage = "https://usebottles.com/"; homepage = "https://usebottles.com/";

View file

@ -5,13 +5,13 @@
buildGoModule rec { buildGoModule rec {
pname = "dasel"; pname = "dasel";
version = "1.24.3"; version = "1.25.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "TomWright"; owner = "TomWright";
repo = "dasel"; repo = "dasel";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-aAP5hyo4t5IX4wLwyNDuXxAYbAkS36S1UewYs9ZFJM4="; sha256 = "sha256-VAakbuAkH7kuAx16m2vo4exikI03inXBW3OEIs5WwSY=";
}; };
vendorSha256 = "sha256-zli9SEBU6n0JusAquqb9+O2W4yPZS7zmC5PCebVSeIA="; vendorSha256 = "sha256-zli9SEBU6n0JusAquqb9+O2W4yPZS7zmC5PCebVSeIA=";

View file

@ -0,0 +1,79 @@
{ lib
, fetchFromGitHub
, wrapGAppsHook4
, python3
, appstream-glib
, blueprint-compiler
, desktop-file-utils
, meson
, ninja
, pkg-config
, glib
, gtk4
, gobject-introspection
, gst_all_1
, libsoup_3
, libadwaita
}:
python3.pkgs.buildPythonApplication rec {
pname = "dialect";
version = "2.0.1";
format = "other";
src = fetchFromGitHub {
owner = "dialect-app";
repo = pname;
rev = version;
fetchSubmodules = true;
hash = "sha256-Ke23QnvKpmyuaqkiBQL1cUa0T7lSfYPLFi6wa9G8LYk=";
};
nativeBuildInputs = [
appstream-glib
blueprint-compiler
desktop-file-utils
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gtk4
glib
gobject-introspection
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
libsoup_3
libadwaita
];
propagatedBuildInputs = with python3.pkgs; [
dbus-python
gtts
pygobject3
];
# Prevent double wrapping, let the Python wrapper use the args in preFixup.
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
doCheck = false;
# handle setup hooks better
strictDeps = false;
meta = with lib; {
homepage = "https://github.com/dialect-app/dialect";
description = "A translation app for GNOME";
maintainers = with maintainers; [ linsui ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -21,7 +21,7 @@
}: }:
let let
version = "4.2.1"; version = "4.2.2";
libsecp256k1_name = libsecp256k1_name =
if stdenv.isLinux then "libsecp256k1.so.0" if stdenv.isLinux then "libsecp256k1.so.0"
@ -37,7 +37,7 @@ let
owner = "spesmilo"; owner = "spesmilo";
repo = "electrum"; repo = "electrum";
rev = version; rev = version;
sha256 = "sha256-BoikYSsQZAv8WswIr5nmBsGmjZbTXaLAbdO2QtPvc7c="; sha256 = "sha256-bFceOu+3SLtD2eY+aSBEn13xJw7a3aVwX39QfAuqVSo=";
postFetch = '' postFetch = ''
mv $out ./all mv $out ./all
@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication {
src = fetchurl { src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "sha256-2SxSTH9P380j2KaCbkXjgmQO7K2z81AG6PMA/EMggXA="; sha256 = "sha256-ucLLfqmTKO5Qpg+PnmcdQwht7cWMWJoFjQWnDecEtVs=";
}; };
postUnpack = '' postUnpack = ''

View file

@ -2,11 +2,11 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "gallery_dl"; pname = "gallery_dl";
version = "1.22.3"; version = "1.22.4";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-6nveSEpi5fdlf6ooUXFrX1WaVDOQi6mvgDGAGgwi1zc="; sha256 = "sha256-dJbzhZQIaMBXVd2r40F/fZfokkSq8pVSsRrymxrIynk=";
}; };
propagatedBuildInputs = [ requests yt-dlp ]; propagatedBuildInputs = [ requests yt-dlp ];

View file

@ -8,13 +8,13 @@ with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gammu"; pname = "gammu";
version = "1.40.0"; version = "1.42.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gammu"; owner = "gammu";
repo = "gammu"; repo = "gammu";
rev = version; rev = version;
sha256 = "1jjaa9r3x6i8gv3yn1ngg815s6gsxblsw4wb5ddm77kamn2qyvpf"; sha256 = "sha256-aeaGHVxOMiXRU6RHws+oAnzdO9RY1jw/X/xuGfSt76I=";
}; };
patches = [ ./bashcomp-dir.patch ./systemd.patch ]; patches = [ ./bashcomp-dir.patch ./systemd.patch ];

View file

@ -1,8 +1,8 @@
diff --git a/cmake/templates/gammu.spec.in b/cmake/templates/gammu.spec.in diff --git a/cmake/templates/gammu.spec.in b/cmake/templates/gammu.spec.in
index 8302353..e3ca59a 100644 index 25c08b3d6..86f72d8c7 100644
--- a/cmake/templates/gammu.spec.in --- a/cmake/templates/gammu.spec.in
+++ b/cmake/templates/gammu.spec.in +++ b/cmake/templates/gammu.spec.in
@@ -387,9 +387,9 @@ fi @@ -386,9 +386,9 @@ fi
%doc %{_mandir}/man7/gammu-smsd-run.7* %doc %{_mandir}/man7/gammu-smsd-run.7*
%doc %{_mandir}/man7/gammu-smsd-sql.7* %doc %{_mandir}/man7/gammu-smsd-sql.7*
%doc %{_mandir}/man7/gammu-smsd-tables.7* %doc %{_mandir}/man7/gammu-smsd-tables.7*
@ -16,13 +16,13 @@ index 8302353..e3ca59a 100644
%files -n libGammu%{so_ver} -f libgammu.lang %files -n libGammu%{so_ver} -f libgammu.lang
%defattr(-,root,root,-) %defattr(-,root,root,-)
diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
index 78cc7fc..d674c36 100644 index 378411086..b871e6525 100644
--- a/contrib/CMakeLists.txt --- a/contrib/CMakeLists.txt
+++ b/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt
@@ -97,7 +97,7 @@ endif (INSTALL_BASH_COMPLETION) @@ -100,7 +100,7 @@ if (WITH_SYSTEMD)
if (WITH_SYSTEMD) configure_file( init/gammu-smsd.service init/gammu-smsd.service )
install ( install (
FILES init/gammu-smsd.service FILES ${CMAKE_CURRENT_BINARY_DIR}/init/gammu-smsd.service
- DESTINATION "${SYSTEMD_SERVICES_INSTALL_DIR}" - DESTINATION "${SYSTEMD_SERVICES_INSTALL_DIR}"
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/systemd" + DESTINATION "${CMAKE_INSTALL_PREFIX}/systemd"
COMPONENT "systemd" COMPONENT "systemd"

View file

@ -96,7 +96,6 @@ stdenv.mkDerivation rec {
''); '');
meta = with lib; { meta = with lib; {
broken = stdenv.isDarwin;
description = "Convert, upload and download data from GPS and Map programs"; description = "Convert, upload and download data from GPS and Map programs";
longDescription = '' longDescription = ''
GPSBabel converts waypoints, tracks, and routes between popular GPSBabel converts waypoints, tracks, and routes between popular

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "hugo"; pname = "hugo";
version = "0.99.1"; version = "0.101.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gohugoio"; owner = "gohugoio";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-NFsXu4UxBmsSM6sNRSSoIUj6QjfB5iSXXbTNftakyHI="; sha256 = "sha256-Fodcefp8xdSV2tt6ZYaKdcLqVe2upEngQr6M+wV5wnw=";
}; };
vendorSha256 = "sha256-A1ct8BjtKudNqfytCiaEGfgbRCMv45MIQxTka4ZFblg="; vendorSha256 = "sha256-tZQIKxY96G6ReegqjapJ2rLd7n92+axJ7F8UglF61eM=";
doCheck = false; doCheck = false;
@ -33,7 +33,6 @@ buildGoModule rec {
''; '';
meta = with lib; { meta = with lib; {
broken = stdenv.isDarwin && stdenv.isx86_64;
description = "A fast and modern static website engine"; description = "A fast and modern static website engine";
homepage = "https://gohugo.io"; homepage = "https://gohugo.io";
license = licenses.asl20; license = licenses.asl20;

View file

@ -15,12 +15,12 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mkgmap"; pname = "mkgmap";
version = "4904"; version = "4905";
src = fetchsvn { src = fetchsvn {
url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk"; url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
rev = version; rev = version;
sha256 = "sha256-43gJkpk19Ef3vUbRNt3VDstxCLJl6smsAjtcrovGjEE="; sha256 = "sha256-EYUysLit/bO/IjVmAbxqIvVFm9Ub50+RKFn7ZdspapU=";
}; };
patches = [ patches = [

View file

@ -0,0 +1,251 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "ahash"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
[[package]]
name = "aho-corasick"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [
"memchr",
]
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "crossbeam-channel"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c"
dependencies = [
"cfg-if",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
dependencies = [
"cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset",
"once_cell",
"scopeguard",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
dependencies = [
"cfg-if",
"once_cell",
]
[[package]]
name = "edit-distance"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbbaaaf38131deb9ca518a274a45bfdb8771f139517b073b16c2d3d32ae5037b"
[[package]]
name = "either"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
[[package]]
name = "hashbrown"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
dependencies = [
"ahash",
"autocfg",
"rayon",
"serde",
]
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "itoa"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
[[package]]
name = "libc"
version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memoffset"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
dependencies = [
"autocfg",
]
[[package]]
name = "num_cpus"
version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
dependencies = [
"hermit-abi",
"libc",
]
[[package]]
name = "once_cell"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
[[package]]
name = "rayon"
version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
dependencies = [
"autocfg",
"crossbeam-deque",
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-utils",
"num_cpus",
]
[[package]]
name = "regex"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.6.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
[[package]]
name = "riti"
version = "0.1.0"
dependencies = [
"edit-distance",
"either",
"hashbrown",
"rayon",
"regex",
"rupantor",
"serde_json",
"stringplus",
]
[[package]]
name = "rupantor"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04eb802986005129b0946dbb4baa420bf14cea547c5ee6b57ba081d9e85f6a4b"
dependencies = [
"serde_json",
"stringplus",
]
[[package]]
name = "ryu"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "serde"
version = "1.0.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6"
[[package]]
name = "serde_json"
version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "stringplus"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9057d3b491a3eee749e52560657c4d93b0badc04fb3fa8dae3c942c5c066f222"

View file

@ -0,0 +1,72 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, rustPlatform
, wrapQtAppsHook
, ibus
, qtbase
, zstd
}:
stdenv.mkDerivation rec {
pname = "openbangla-keyboard";
version = "2.0.0";
src = fetchFromGitHub {
owner = "openbangla";
repo = "openbangla-keyboard";
rev = version;
hash = "sha256-UoLiysaA0Wob/SLBqm36Txqb8k7bwoQ56h8ZufHR74I=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
pkg-config
rustPlatform.rust.cargo
rustPlatform.rust.rustc
rustPlatform.cargoSetupHook
wrapQtAppsHook
];
buildInputs = [
ibus
qtbase
zstd
];
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
'';
sourceRoot = "source/${cargoRoot}";
sha256 = "sha256-01MWuUUirsgpoprMArRp3qxKNayPHTkYWk31nXcIC34=";
};
cargoRoot = "src/engine/riti";
postPatch = ''
cp ${./Cargo.lock} ${cargoRoot}/Cargo.lock
substituteInPlace CMakeLists.txt \
--replace "/usr" "$out"
substituteInPlace src/shared/FileSystem.cpp \
--replace "/usr" "$out"
'';
postInstall = ''
mkdir -p $out/bin
ln -s $out/share/openbangla-keyboard/openbangla-gui $out/bin/openbangla-gui
'';
meta = with lib; {
description = "An OpenSource, Unicode compliant Bengali Input Method";
homepage = "https://openbangla.github.io/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hqurve ];
platforms = platforms.linux;
};
}

View file

@ -1,26 +1,50 @@
{ lib, fetchFromGitHub, python3, dbus, gnupg }: { lib
, fetchFromGitHub
, python3
, dbus
, gnupg
, coreutils
, nixosTests
}:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "pass-secret-service"; pname = "pass-secret-service";
# PyPI has old alpha version. Since then the project has switched from using a # PyPI has old alpha version. Since then the project has switched from using a
# seemingly abandoned D-Bus package pydbus and started using maintained # seemingly abandoned D-Bus package pydbus and started using maintained
# dbus-next. So let's use latest from GitHub. # dbus-next. So let's use latest from GitHub.
version = "unstable-2020-04-12"; version = "unstable-2022-03-21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mdellweg"; owner = "mdellweg";
repo = "pass_secret_service"; repo = "pass_secret_service";
rev = "f6fbca6ac3ccd16bfec407d845ed9257adf74dfa"; rev = "149f8557e07098eee2f46561eea61e83255ac59b";
sha256 = "0rm4pbx1fiwds1v7f99khhh7x3inv9yniclwd95mrbgljk3cc6a4"; sha256 = "sha256-+/pFi6+K8rl0Ihm6cp/emUQVtau6+Apl8/VEr9AI0Xs=";
}; };
patches = [
# Only needed until https://github.com/mdellweg/pass_secret_service/pull/30
# is merged.
./int_from_bytes-deprecation-fix.patch
];
# Need to specify session.conf file for tests because it won't be found under # Need to specify session.conf file for tests because it won't be found under
# /etc/ in check phase. # /etc/ in check phase.
postPatch = '' postPatch = ''
substituteInPlace Makefile \ substituteInPlace Makefile \
--replace "dbus-run-session" "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf" \ --replace "dbus-run-session" "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf" \
--replace '-p $(relpassstore)' '-p $(PASSWORD_STORE_DIR)' --replace '-p $(relpassstore)' '-p $(PASSWORD_STORE_DIR)' \
--replace 'pytest-3' 'pytest'
substituteInPlace systemd/org.freedesktop.secrets.service \
--replace "/bin/false" "${coreutils}/bin/false"
substituteInPlace systemd/dbus-org.freedesktop.secrets.service \
--replace "/usr/local" "$out"
'';
postInstall = ''
mkdir -p "$out/share/dbus-1/services/" "$out/lib/systemd/user/"
cp systemd/org.freedesktop.secrets.service "$out/share/dbus-1/services/"
cp systemd/dbus-org.freedesktop.secrets.service "$out/lib/systemd/user/"
''; '';
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
@ -44,17 +68,15 @@ python3.pkgs.buildPythonApplication rec {
ps.pypass ps.pypass
]; ];
checkPhase = '' checkTarget = "test";
runHook preCheck
make test passthru.tests.pass-secret-service = nixosTests.pass-secret-service;
runHook postCheck
'';
meta = { meta = {
description = "Libsecret D-Bus API with pass as the backend"; description = "Libsecret D-Bus API with pass as the backend";
homepage = "https://github.com/mdellweg/pass_secret_service/"; homepage = "https://github.com/mdellweg/pass_secret_service/";
license = lib.licenses.gpl3Only; license = lib.licenses.gpl3Only;
platforms = lib.platforms.all; platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ jluttine ]; maintainers = with lib.maintainers; [ jluttine aidalgol ];
}; };
} }

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