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}
`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.
Using the example above, the analagous pytestCheckHook usage would be:
Using the example above, the analagous `pytestCheckHook` usage would be:
```
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:
```
@ -640,31 +640,35 @@ for example:
"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
are disabled.
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 are disabled.
#### Using pythonImportsCheck {#using-pythonimportscheck}
Although unit tests are highly prefered to validate correctness of a package, not
all packages have test suites that can be ran easily, and some have none at all.
Although unit tests are highly preferred to validate correctness of a package, not
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
the listed modules.
```
pythonImportsCheck = [ "requests" "urllib" ];
```
roughly translates to:
```
postCheck = ''
PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
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
present packages (e.g. `setuptools`)
present packages (e.g. `setuptools`).
#### Using pythonRelaxDepsHook {#using-pythonrelaxdepshook}
@ -719,7 +723,7 @@ pkg3
```
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
declared by upstream (for example, declaring `black` as a runtime 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
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;`
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
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
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
@ -862,7 +866,7 @@ Each interpreter has the following attributes:
### 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
interpreter of interest, e.g using
@ -913,7 +917,7 @@ and the aliases
#### `buildPythonPackage` function {#buildpythonpackage-function}
The `buildPythonPackage` function is implemented in
`pkgs/development/interpreters/python/mk-python-derivation`
`pkgs/development/interpreters/python/mk-python-derivation.nix`
using setup hooks.
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
wrap all programs in the `$out/bin/*` directory to include `$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
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
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.
* `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs.
* `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}
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
```
@ -1513,7 +1518,7 @@ in pkgs.mkShell rec {
# the environment.
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
pythonPackages.venvShellHook

View file

@ -1218,7 +1218,7 @@ The `validatePkgConfig` hook validates all pkg-config (`.pc`) files in a package
### 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}

View file

@ -36,6 +36,7 @@ rec {
config = parse.tripleFromSystem final.parsed;
# Determine whether we can execute binaries built for the provided platform.
canExecute = platform:
final.isAndroid == platform.isAndroid &&
parse.isCompatible final.parsed.cpu platform.parsed.cpu
&& 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";

View file

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

View file

@ -417,6 +417,12 @@
githubId = 4732885;
name = "Ivan Jager";
};
aiotter = {
email = "git@aiotter.com";
github = "aiotter";
githubId = 37664775;
name = "Yuto Oguchi";
};
airwoodix = {
email = "airwoodix@posteo.me";
github = "airwoodix";
@ -887,6 +893,13 @@
githubId = 661909;
name = "Antonio Nuno Monteiro";
};
anoa = {
matrix = "@andrewm:amorgan.xyz";
email = "andrew@amorgan.xyz";
github = "anoadragon453";
githubId = 1342360;
name = "Andrew Morgan";
};
anpryl = {
email = "anpryl@gmail.com";
github = "anpryl";
@ -3733,6 +3746,12 @@
githubId = 1897147;
name = "Elijah Caine";
};
Elinvention = {
email = "elia@elinvention.ovh";
github = "Elinvention";
githubId = 5737945;
name = "Elia Argentieri";
};
elitak = {
email = "elitak@gmail.com";
github = "elitak";
@ -5393,6 +5412,13 @@
githubId = 40234257;
name = "ilkecan bozdogan";
};
ihatethefrench = {
email = "michal@tar.black";
matrix = "@michal:tar.black";
github = "ihatethefrench";
githubId = 30374463;
name = "Michal S.";
};
illegalprime = {
email = "themichaeleden@gmail.com";
github = "illegalprime";
@ -6109,6 +6135,12 @@
githubId = 60272884;
name = "Jonathan Jeppener-Haltenhoff";
};
jocelynthode = {
email = "jocelyn.thode@gmail.com";
github = "jocelynthode";
githubId = 3967312;
name = "Jocelyn Thode";
};
joelancaster = {
email = "joe.a.lancas@gmail.com";
github = "JoeLancaster";
@ -6615,6 +6647,15 @@
githubId = 15373888;
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 = {
email = "kb@devnulllabs.io";
github = "kennyballou";
@ -7857,6 +7898,12 @@
githubId = 26470037;
name = "Markus Kowalewski";
};
mariaa144 = {
email = "speechguard_intensivist@aleeas.com";
github = "mariaa144";
githubId = 105451387;
name = "Maria";
};
marijanp = {
name = "Marijan Petričević";
email = "marijan.petricevic94@gmail.com";
@ -8923,6 +8970,15 @@
githubId = 818502;
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 = {
email = "natto@weirdnatto.in";
github = "natto1784";
@ -9033,6 +9089,15 @@
github = "nessdoor";
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 = {
email = "jason.wing@gmx.de";
github = "netcrns";
@ -9286,6 +9351,12 @@
githubId = 40049608;
name = "Andy Chun";
};
nook = {
name = "Tom Nook";
email = "0xnook@protonmail.com";
github = "0xnook";
githubId = 88323754;
};
noreferences = {
email = "norkus@norkus.net";
github = "jozuas";
@ -11498,6 +11569,13 @@
githubId = 543055;
name = "Shadaj Laddad";
};
shadowrz = {
email = "shadowrz+nixpkgs@disroot.org";
matrix = "@ShadowRZ:matrixim.cc";
github = "ShadowRZ";
githubId = 23130178;
name = "";
};
shahrukh330 = {
email = "shahrukh330@gmail.com";
github = "shahrukh330";

View file

@ -2,30 +2,159 @@
#! nix-shell -i bash -p coreutils findutils gnused nix wget
set -efuo pipefail
export LC_COLLATE=C # fix sort order
SRCS=
if [ -d "$1" ]; then
SRCS="$(pwd)/$1/srcs.nix"
. "$1/fetch.sh"
else
SRCS="$(pwd)/$(dirname $1)/srcs.nix"
. "$1"
# parse files and folders from https://download.kde.org/ and https://download.qt.io/
# you can override this function in fetch.sh
function PARSE_INDEX() {
cat "$1" | grep -o -E -e '\s+href="[^"]+\.tar\.xz"' -e '\s+href="[-_a-zA-Z0-9]+/"' | cut -d'"' -f2 | sort | uniq
}
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
tmp=$(mktemp -d)
pushd $tmp >/dev/null
wget -nH -r -c --no-parent "${WGET_ARGS[@]}" >/dev/null
if ! echo "$1" | grep -q '^pkgs/'; then
echo "error: path argument must start with pkgs/" >&2
exit 1
fi
csv=$(mktemp)
find . -type f | while read src; do
# need absolute path for the pushd-popd block
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
filename=$(basename "$src" | tr '@' '_')
nameVersion="${filename%.tar.*}"
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:]]*-\)\+,,')
echo "$name,$version,$src,$filename" >>$csv
echo "$name,$version,$src,$filename,$sha256" >>$csv
done
files_before=$(grep -c 'src = ' "$SRCS")
echo "writing output file $SRCS ..."
cat >"$SRCS" <<EOF
# DO NOT EDIT! This file is generated automatically.
# 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)
src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" $csv)
filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" $csv)
sha256=$(gawk -F , "/^$name,$latestVersion,/ { print \$5 }" $csv)
url="${src:2}"
sha256=$(nix-hash --type sha256 --base32 --flat "$src")
cat >>"$SRCS" <<EOF
$name = {
version = "$latestVersion";
@ -55,6 +184,13 @@ done
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
rm -fr $tmp >/dev/null

View file

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

View file

@ -680,6 +680,9 @@ import ./make-test-python.nix
nodes = { };
# Type checking on extra packages doesn't work yet
skipTypeCheck = true;
testScript = ''
import numpy as np
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.
</para>
</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>
<para>
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.
- 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 `xfconf` program (the Xfce configuration storage system), which has a dbus service.

View file

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

View file

@ -1,7 +1,7 @@
{
x86_64-linux = "/nix/store/6g4fla3vkcxihph282a0v3cd10709y7c-nix-2.9.1";
i686-linux = "/nix/store/j143221z44469zx21f5m9a47x7y1jpr5-nix-2.9.1";
aarch64-linux = "/nix/store/c4z3vy1sgm49la8bvmdrrpssgk4iw2nk-nix-2.9.1";
x86_64-darwin = "/nix/store/cqdwb7khf6zg94bz7lnvfjqx6z775qaw-nix-2.9.1";
aarch64-darwin = "/nix/store/1brkxcs287n1px2i4fq39l7h51hjv0f8-nix-2.9.1";
x86_64-linux = "/nix/store/3af6g226v4hsv6x7xzh23d6wqyq0nzjp-nix-2.10.3";
i686-linux = "/nix/store/43xxh2jip6rpdhylc5z9a5fxx54dw206-nix-2.10.3";
aarch64-linux = "/nix/store/6qw3r57nra08ars8j8zyj3fl8lz4cvnd-nix-2.10.3";
x86_64-darwin = "/nix/store/3b7qrm0qjw57fmznrsvm0ai568i89hc2-nix-2.10.3";
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
# 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;
nixbld = 30000;
nogroup = 65534;

View file

@ -11,7 +11,7 @@ in
options.system = {
nixos.label = mkOption {
type = types.str;
type = types.strMatching "[a-zA-Z0-9:_\\.-]*";
description = ''
NixOS version name to be used in the names of generated
outputs and boot labels.
@ -19,6 +19,9 @@ in
If you ever wanted to influence the labels in your GRUB menu,
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
"-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment
variable (defaults to the value of

View file

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

View file

@ -8,19 +8,16 @@ let
in
{
imports = [
(mkRemovedOptionModule [ "programs" "_1password-gui" "gid" ] ''
A preallocated GID will be used instead.
'')
];
options = {
programs._1password-gui = {
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 {
type = types.listOf types.str;
default = [ ];
@ -44,7 +41,7 @@ in
in
mkIf cfg.enable {
environment.systemPackages = [ package ];
users.groups.onepassword.gid = cfg.gid;
users.groups.onepassword.gid = config.ids.gids.onepassword;
security.wrappers = {
"1Password-BrowserSupport" = {

View file

@ -8,19 +8,16 @@ let
in
{
imports = [
(mkRemovedOptionModule [ "programs" "_1password" "gid" ] ''
A preallocated GID will be used instead.
'')
];
options = {
programs._1password = {
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" {
default = [ "_1password" ];
};
@ -29,7 +26,7 @@ in
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
users.groups.onepassword-cli.gid = cfg.gid;
users.groups.onepassword-cli.gid = config.ids.gids.onepassword-cli;
security.wrappers = {
"op" = {

View file

@ -6,7 +6,7 @@ let
cfg = config.programs.dmrconfig;
in {
meta.maintainers = [ maintainers.etu ];
meta.maintainers = with maintainers; [ ];
###### interface
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
'') +
(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 ''
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 {
default = "sufficient";
type = types.enum [ "required" "requisite" "sufficient" "optional" ];

View file

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

View file

@ -156,12 +156,22 @@ in {
reloadScript = ''
echo "Asking Jenkins to reload config"
curl_opts="--silent --fail --show-error"
access_token=${if cfg.accessTokenFile != ""
then "$(cat '${cfg.accessTokenFile}')"
else cfg.accessToken}
jenkins_url="http://${cfg.accessUser}:$access_token@${jenkinsCfg.listenAddress}:${toString jenkinsCfg.port}${jenkinsCfg.prefix}"
crumb=$(curl $curl_opts "$jenkins_url"'/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
curl $curl_opts -X POST -H "$crumb" "$jenkins_url"/reload
access_token_file=${if cfg.accessTokenFile != ""
then cfg.accessTokenFile
else "$RUNTIME_DIRECTORY/jenkins_access_token.txt"}
if [ "${cfg.accessToken}" != "" ]; then
(umask 0077; printf "${cfg.accessToken}" >"$access_token_file")
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
''

View file

@ -54,7 +54,7 @@ in
config = mkIf cfg.enable {
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 = {
allowNullPassword = true;

View file

@ -19,13 +19,13 @@ let
# https://gitlab.com/gitlab-org/gitlab/-/issues/360783#note_992870101.
gitPackage =
let
version = "2.35.3";
version = "2.35.4";
in
pkgs.git.overrideAttrs (oldAttrs: rec {
inherit version;
src = pkgs.fetchurl {
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" ];
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 {
Type = "simple";
User = cfg.user;
Group = cfg.group;
StateDirectory = "jellyfin";
@ -57,48 +60,50 @@ in
CacheDirectory = "jellyfin";
CacheDirectoryMode = "0700";
UMask = "0077";
WorkingDirectory = "/var/lib/jellyfin";
ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
Restart = "on-failure";
TimeoutSec = 15;
SuccessExitStatus = ["0" "143"];
# Security options:
NoNewPrivileges = true;
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;
SystemCallArchitectures = "native";
# 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;
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 = [
"@system-service"
"~@cpu-emulation" "~@debug" "~@keyring" "~@memlock" "~@obsolete" "~@privileged" "~@setuid"
"~@clock"
"~@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 = {
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";
ExecPostStart = ''while [ "$(netdatacli ping)" != pong ]; do sleep 0.5; done'';
ExecStartPost = ''while [ "$(netdatacli ping)" != pong ]; do sleep 0.5; done'';
TimeoutStopSec = 60;
Restart = "on-failure";

View file

@ -5,164 +5,136 @@ with lib;
let
cfg = config.services.minidlna;
port = 8200;
settingsFormat = pkgs.formats.keyValue { listsAsDuplicateKeys = true; };
settingsFile = settingsFormat.generate "minidlna.conf" cfg.settings;
in
{
###### interface
options = {
services.minidlna.enable = mkOption {
type = types.bool;
default = false;
description =
''
Whether to enable MiniDLNA, a simple DLNA server. It serves
media files such as video and music to DLNA client devices
such as televisions and media players.
'';
};
options.services.minidlna.enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable MiniDLNA, a simple DLNA server.
It serves media files such as video and music to DLNA client devices
such as televisions and media players. If you use the firewall consider
adding the following: <literal>services.minidlna.openFirewall = true;</literal>
'';
};
services.minidlna.mediaDirs = 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
options.services.minidlna.openFirewall = mkOption {
type = types.bool;
default = false;
description = ''
Whether to open both HTTP (TCP) and SSDP (UDP) ports in the firewall.
'';
};
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
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.
'';
};
services.minidlna.friendlyName = mkOption {
type = types.str;
default = "${config.networking.hostName} MiniDLNA";
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 =
''
};
options.notify_interval = mkOption {
type = types.int;
default = 90000;
description = ''
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
approximately every 15 minutes.
Lower values (e.g. 60 seconds) should be used if one does not
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)
on their home networks, especially when DLNA clients are
started on demand.
Some relevant information can be found here:
https://sourceforge.net/p/minidlna/discussion/879957/thread/1389d197/
'';
};
services.minidlna.config = mkOption {
type = types.lines;
description =
''
The contents of MiniDLNA's configuration file.
When the service is activated, a basic template is generated
from the current options opened here.
'';
};
services.minidlna.extraConfig = mkOption {
type = types.lines;
default = "";
example = ''
# Not exhaustive example
# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.
enable_tivo=no
# SSDP notify interval, in seconds.
notify_interval=10
# maximum number of simultaneous connections
# note: many clients open several simultaneous connections while
# streaming
max_connections=50
# set this to yes to allow symlinks that point outside user-defined
# media_dirs.
wide_links=yes
'';
description =
''
Extra minidlna options not yet opened for configuration here
(strict_dlna, model_number, model_name, etc...). This is appended
to the current service already provided.
'';
};
options.port = mkOption {
type = types.port;
default = 8200;
description = "Port number for HTTP traffic (descriptions, SOAP, media transfer).";
};
options.db_dir = mkOption {
type = types.path;
default = "/var/cache/minidlna";
example = "/tmp/minidlna";
description = "Specify the directory where you want MiniDLNA to store its database and album art cache.";
};
options.friendly_name = mkOption {
type = types.str;
default = "${config.networking.hostName} MiniDLNA";
defaultText = literalExpression "config.networking.hostName";
example = "rpi3";
description = "Name that the DLNA server presents to clients.";
};
options.root_container = mkOption {
type = types.str;
default = ".";
example = "B";
description = "Use a different container as the root of the directory tree presented to clients.";
};
options.log_level = 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.";
};
options.inotify = mkOption {
type = types.enum [ "yes" "no" ];
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
config = mkIf cfg.enable {
services.minidlna.config =
''
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}
'';
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.settings.port ];
networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall [ 1900 ];
users.users.minidlna = {
description = "MiniDLNA daemon user";
@ -186,7 +158,7 @@ in
PIDFile = "/run/minidlna/pid";
ExecStart =
"${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";
};
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 {
type = types.str;
default = "/var/lib/mxisd";
@ -118,7 +127,12 @@ in {
Type = "simple";
User = "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;
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}
'';
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
{
@ -172,7 +182,8 @@ in
enable = mkEnableOption "PrivacyIDEA LDAP Proxy";
configFile = mkOption {
type = types.path;
type = types.nullOr types.path;
default = null;
description = ''
Path to PrivacyIDEA LDAP Proxy configuration (proxy.ini).
'';
@ -189,6 +200,26 @@ in
default = "pi-ldap-proxy";
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 {
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
ldap-proxy-env = pkgs.python3.withPackages (ps: [ ps.privacyidea-ldap-proxy ]);
in {
@ -284,14 +327,27 @@ in
serviceConfig = {
User = cfg.ldap-proxy.user;
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 \
--nodaemon \
--pidfile= \
-u ${cfg.ldap-proxy.user} \
-g ${cfg.ldap-proxy.group} \
ldap-proxy \
-c ${cfg.ldap-proxy.configFile}
-c ${configPath}
'';
Restart = "always";
};

View file

@ -8,21 +8,22 @@ let
pkg = cfg.package.override (optionalAttrs 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
{
@ -112,9 +113,9 @@ in
description = "Exact name of this JIRA instance in Crowd";
};
applicationPassword = mkOption {
applicationPasswordFile = mkOption {
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 {
@ -181,6 +182,7 @@ in
JIRA_HOME = cfg.home;
JAVA_HOME = "${cfg.jrePackage}";
CATALINA_OPTS = concatStringsSep " " cfg.catalinaOptions;
JAVA_OPTS = mkIf cfg.sso.enable "-Dcrowd.properties=${cfg.home}/crowd.properties";
};
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}",' \
'') + ''
${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 = {
@ -204,4 +214,10 @@ in
};
};
};
imports = [
(mkRemovedOptionModule [ "services" "jira" "sso" "applicationPassword" ] ''
Use `applicationPasswordFile` instead!
'')
];
}

View file

@ -354,6 +354,7 @@ in
plasma-browser-integration
konsole
oxygen
(lib.getBin qttools) # Expose qdbus in PATH
];
in
requiredPackages
@ -399,9 +400,10 @@ in
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
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.upower.enable = config.powerManagement.enable;
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.xserver.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid

View file

@ -264,8 +264,6 @@ def main() -> None:
if 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"])
else:
print("leaving systemd-boot %s in place (%s is not newer)" % (installed_version, available_version))
mkdir_p("@efiSysMountPoint@/efi/nixos")
mkdir_p("@efiSysMountPoint@/loader/entries")

View file

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

View file

@ -34,7 +34,8 @@ in
package = mkOption {
type = types.nullOr types.package;
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 = ''
Defines which package to use for prl-tools. Override to change the version.
'';
@ -44,27 +45,6 @@ in
};
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 ];
@ -72,37 +52,44 @@ in
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;
systemd.services.prltoolsd = {
description = "Parallels Tools' service";
description = "Parallels Tools Service";
wantedBy = [ "multi-user.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prltoolsd -f";
PIDFile = "/var/run/prltoolsd.pid";
WorkingDirectory = "${prl-tools}/bin";
};
};
systemd.services.prlfsmountd = mkIf config.hardware.parallels.autoMountShares {
description = "Parallels Shared Folders Daemon";
description = "Parallels Guest File System Sharing Tool";
wantedBy = [ "multi-user.target" ];
path = [ prl-tools ];
serviceConfig = rec {
ExecStart = "${prl-tools}/sbin/prlfsmountd ${PIDFile}";
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /media";
ExecStopPost = "${prl-tools}/sbin/prlfsmountd -u";
PIDFile = "/run/prlfsmountd.pid";
WorkingDirectory = "${prl-tools}/bin";
};
};
systemd.services.prlshprint = {
description = "Parallels Shared Printer Tool";
description = "Parallels Printing Tool";
wantedBy = [ "multi-user.target" ];
bindsTo = [ "cups.service" ];
path = [ prl-tools ];
serviceConfig = {
Type = "forking";
ExecStart = "${prl-tools}/bin/prlshprint";
WorkingDirectory = "${prl-tools}/bin";
};
};
@ -110,43 +97,47 @@ in
prlcc = {
description = "Parallels Control Center";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcc";
WorkingDirectory = "${prl-tools}/bin";
};
};
prldnd = {
description = "Parallels Control Center";
description = "Parallels Drag And Drop Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prldnd";
};
};
prl_wmouse_d = {
description = "Parallels Walking Mouse Daemon";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prl_wmouse_d";
WorkingDirectory = "${prl-tools}/bin";
};
};
prlcp = {
description = "Parallels CopyPaste Tool";
description = "Parallels Copy Paste Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlcp";
Restart = "always";
WorkingDirectory = "${prl-tools}/bin";
};
};
prlsga = {
description = "Parallels Shared Guest Applications Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlsga";
WorkingDirectory = "${prl-tools}/bin";
};
};
prlshprof = {
description = "Parallels Shared Profile Tool";
wantedBy = [ "graphical-session.target" ];
path = [ prl-tools ];
serviceConfig = {
ExecStart = "${prl-tools}/bin/prlshprof";
WorkingDirectory = "${prl-tools}/bin";
};
};
};

View file

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

View file

@ -18,6 +18,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
enable = true;
jobBuilder = {
enable = true;
accessUser = "admin";
accessTokenFile = "/var/lib/jenkins/secrets/initialAdminPassword";
nixJobs = [
{ job = {
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/jobs/job-2/config.xml")
# Wait until jenkins is ready, reload configuration and verify it also
# sees the 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")
# Verify that jenkins also sees the jobs.
out = master.succeed("${pkgs.jenkins}/bin/jenkins-cli -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
jobs = [x.strip() for x in out.splitlines()]
# Seeing jobs inside folders requires the Folders plugin
# (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/jobs/job-2/config.xml")
# Reload jenkins' configuration and verify it 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.jre}/bin/java -jar jenkins-cli.jar -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
# Verify that jenkins also sees the jobs as removed.
out = master.succeed("${pkgs.jenkins}/bin/jenkins-cli -s ${jenkinsUrl} -auth admin:$(cat /var/lib/jenkins/secrets/initialAdminPassword) list-jobs")
jobs = [x.strip() for x in out.splitlines()]
assert jobs == [], f"jobs != []: {jobs}"
'';

View file

@ -33,7 +33,11 @@ let
redisImage = pkgs.dockerTools.buildImage {
name = "redis";
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"];
};
@ -54,7 +58,11 @@ let
probeImage = pkgs.dockerTools.buildImage {
name = "probe";
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"];
};

View file

@ -84,7 +84,11 @@ let
kubectlImage = pkgs.dockerTools.buildImage {
name = "kubectl";
tag = "latest";
contents = [ copyKubectl pkgs.busybox kubectlPod2 ];
copyToRoot = pkgs.buildEnv {
name = "image-root";
pathsToLink = [ "/bin" ];
paths = [ copyKubectl pkgs.busybox kubectlPod2 ];
};
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;
enable = true;
interactive = true;
origin = "nixos-test";
};
};
@ -19,7 +20,7 @@ import ../make-test-python.nix ({ ... }:
''
machine.wait_for_unit("multi-user.target")
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
# exclude resql test due to recent postgres 14.4 update
# see bugreport here https://redmine.postgresql.org/issues/7527
with subtest("run browser test"):
machine.succeed(
'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
&& python regression/runtests.py --pkg browser --exclude \
browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login'
&& python regression/runtests.py \
--pkg browser \
--exclude browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login,resql'
)
# 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'
)
with subtest("run resql test"):
machine.succeed(
'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
&& python regression/runtests.py --pkg resql'
)
# reactivate this test again, when the postgres 14.4 test has been fixed
# with subtest("run resql test"):
# machine.succeed(
# 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
# && python regression/runtests.py --pkg resql'
# )
'';
})

View file

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

View file

@ -1,8 +1,6 @@
{ lib, fetchFromGitHub, python3Packages, wrapQtAppsHook }:
let
py = python3Packages;
in py.buildPythonApplication rec {
python3Packages.buildPythonApplication rec {
pname = "friture";
version = "0.49";
@ -13,10 +11,10 @@ in py.buildPythonApplication rec {
sha256 = "sha256-xKgyBV/Qc+9PgXyxcT0xG1GXLC6KnjavJ/0SUE+9VSY=";
};
nativeBuildInputs = (with py; [ numpy cython scipy ]) ++
nativeBuildInputs = (with python3Packages; [ numpy cython scipy ]) ++
[ wrapQtAppsHook ];
propagatedBuildInputs = with py; [
propagatedBuildInputs = with python3Packages; [
sounddevice
pyopengl
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 {
pname = "qpwgraph";
version = "0.2.5";
version = "0.3.4";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "rncbc";
repo = "qpwgraph";
rev = "v${version}";
sha256 = "sha256-OYIBlTO1vXmmY4/ZacvsEQ5EnOfetBvnG2v5xL44czY=";
sha256 = "sha256-JCnvwSredXO1WrTu4BIUaUTTjPcd5U/ZZcRbI/GiFfc=";
};
nativeBuildInputs = [ cmake pkg-config ];

View file

@ -5,11 +5,11 @@
appimageTools.wrapType2 rec {
pname = "sonixd";
version = "0.15.1";
version = "0.15.3";
src = fetchurl {
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 = ''

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 {
pname = "spotify-tui";
@ -11,7 +11,40 @@ rustPlatform.buildRustPackage rec {
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 ];
buildInputs = [ ]

View file

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

View file

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

View file

@ -14,16 +14,16 @@
rustPlatform.buildRustPackage rec {
pname = "alfis";
version = "0.7.4";
version = "0.7.6";
src = fetchFromGitHub {
owner = "Revertron";
repo = "Alfis";
rev = "v${version}";
sha256 = "sha256-mwiG9DwnCX/9REq/oNHi2n/l829Ozgum/WygIb+FV04=";
sha256 = "sha256-g9oaUdmwHGU2EIqSYLGlSN8597ORTzm8XzTxBbiKUNA=";
};
cargoSha256 = "sha256-ylSVyrI9LuctuoMZsZpIH7loBBjxE2onk6L19uV8zCQ=";
cargoSha256 = "sha256-SNROmuChSOHUMhMCTKPOOuoYOATx9JEwuVP0mtGZ/G8=";
checkFlags = [
# 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 {
pname = "lndmanage";
version = "0.14.1";
version = "0.14.2";
src = fetchFromGitHub {
owner = "bitromortac";
repo = pname;
rev = "v${version}";
hash = "sha256-c36AbND01bUr0Klme4fU7GrY1oYcmoEREQI9cwsK7YM=";
rev = "refs/tags/v${version}";
hash = "sha256-G6KpF/c8FsXrqI0hB0fZlModQThnAOHrCv482UjRng0=";
};
propagatedBuildInputs = with python3Packages; [

View file

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

View file

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

View file

@ -49,10 +49,10 @@
elpaBuild {
pname = "annotate";
ename = "annotate";
version = "1.6.0";
version = "1.7.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/annotate-1.6.0.tar";
sha256 = "12843875nvrw5cs2pzag9i2k4vgajbs4rr56js7h6mx9w6jmg8hc";
url = "https://elpa.nongnu.org/nongnu/annotate-1.7.0.tar";
sha256 = "0bpicd0m9h1n56ywinfa0wykhx86sxn8i1f2j5vwhwcidap42qaa";
};
packageRequires = [];
meta = {
@ -109,10 +109,10 @@
elpaBuild {
pname = "apropospriate-theme";
ename = "apropospriate-theme";
version = "0.1.1";
version = "0.2.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/apropospriate-theme-0.1.1.tar";
sha256 = "11m80gijxvg4jf9davjja3bvykv161ggsrg7q0bihr0gq0flxgd7";
url = "https://elpa.nongnu.org/nongnu/apropospriate-theme-0.2.0.tar";
sha256 = "1s4cvh24zj3wpdqc3lklvi1dkba3jf87nxrzq0s3l1rzhg21pfpj";
};
packageRequires = [];
meta = {
@ -245,6 +245,21 @@
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
, elpaBuild
, emacs
@ -375,6 +390,25 @@
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 }:
elpaBuild {
pname = "d-mode";
@ -405,6 +439,36 @@
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 }:
elpaBuild {
pname = "dockerfile-mode";
@ -450,6 +514,21 @@
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
, elpaBuild
, emacs
@ -489,10 +568,10 @@
elpaBuild {
pname = "elpher";
ename = "elpher";
version = "3.4.1";
version = "3.4.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/elpher-3.4.1.tar";
sha256 = "1vayhcamdp8nn6hrgffd0yx9k9q3mckbcsfwclhyyfc0x1hcwf92";
url = "https://elpa.nongnu.org/nongnu/elpher-3.4.2.tar";
sha256 = "0q7a79jnlihjj936wi199pdxl0ydy04354y0mqpxms00r98hzr9d";
};
packageRequires = [ emacs ];
meta = {
@ -652,10 +731,10 @@
elpaBuild {
pname = "evil-numbers";
ename = "evil-numbers";
version = "0.6";
version = "0.7";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/evil-numbers-0.6.tar";
sha256 = "0zl16ljb64cawcj11f4ndz941sllj8nhgjcb4w0r1afxbvpn5rss";
url = "https://elpa.nongnu.org/nongnu/evil-numbers-0.7.tar";
sha256 = "1kd60kc8762i9vyig179dnbmrjyw30bm06g26abndw2kjxaqjhr8";
};
packageRequires = [ emacs evil ];
meta = {
@ -703,10 +782,10 @@
elpaBuild {
pname = "flymake-popon";
ename = "flymake-popon";
version = "0.2";
version = "0.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/flymake-popon-0.2.tar";
sha256 = "08wpfia4q12nhc6l0xmdc54f1s73c0ds6hxwgkk5hjw906rpgn4a";
url = "https://elpa.nongnu.org/nongnu/flymake-popon-0.3.tar";
sha256 = "1cmimdkav8cdl7x6qplm4pvj2ifyb3lk8h2q624vh7cxxlh8yq0l";
};
packageRequires = [ emacs flymake popon posframe ];
meta = {
@ -1119,10 +1198,10 @@
elpaBuild {
pname = "helm";
ename = "helm";
version = "3.8.5";
version = "3.8.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/helm-3.8.5.tar";
sha256 = "1h71qcik375zhkk4rgcxj6ffnzpns2lvzwq82yfhmmhzrrxhds0z";
url = "https://elpa.nongnu.org/nongnu/helm-3.8.6.tar";
sha256 = "0h0l36wmzxi03viy0jd3zri84big0syiilvjm639nqhzsr1lbvy2";
};
packageRequires = [ helm-core popup ];
meta = {
@ -1134,10 +1213,10 @@
elpaBuild {
pname = "helm-core";
ename = "helm-core";
version = "3.8.5";
version = "3.8.6";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/helm-core-3.8.5.tar";
sha256 = "0117y2gazm8h5fxj23166a53w4r68r1mscgardk0y6xd6lz73yz9";
url = "https://elpa.nongnu.org/nongnu/helm-core-3.8.6.tar";
sha256 = "0yzzwdggd37m7kv0gh4amc7l5x0r5x2pxi3lfs36hq2hfsqlfkza";
};
packageRequires = [ async emacs ];
meta = {
@ -1163,6 +1242,21 @@
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 }:
elpaBuild {
pname = "htmlize";
@ -1178,6 +1272,21 @@
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
, elpaBuild
, emacs
@ -1221,10 +1330,10 @@
elpaBuild {
pname = "inf-clojure";
ename = "inf-clojure";
version = "3.1.0";
version = "3.2.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/inf-clojure-3.1.0.tar";
sha256 = "0jw6rzplicbv2l7si46naspzp5lqwj20b1nmfs9zal58z1gx6zjk";
url = "https://elpa.nongnu.org/nongnu/inf-clojure-3.2.0.tar";
sha256 = "1a9hr28l8cxf5j9b5z0mwds4jd36bhdqz9r86c85rylgaibx5ky7";
};
packageRequires = [ clojure-mode emacs ];
meta = {
@ -1232,6 +1341,36 @@
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 }:
elpaBuild {
pname = "j-mode";
@ -1565,14 +1704,29 @@
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 }:
elpaBuild {
pname = "org-auto-tangle";
ename = "org-auto-tangle";
version = "0.4.1";
version = "0.5.1";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/org-auto-tangle-0.4.1.tar";
sha256 = "169i1agnv66gkpgn5wxxri42610n2dp1gz9bfafk2n2a8b08mhn1";
url = "https://elpa.nongnu.org/nongnu/org-auto-tangle-0.5.1.tar";
sha256 = "12sy30yr8r3g7gmvcdsrrmy62lhvajg3gp62gj7p836kh9xllpsl";
};
packageRequires = [ async emacs ];
meta = {
@ -1805,10 +1959,10 @@
elpaBuild {
pname = "popon";
ename = "popon";
version = "0.4";
version = "0.7";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/popon-0.4.tar";
sha256 = "1c3brjhkdnpawi8jsc20jvhc1vl3l39da12rn3lfx2bfxvjvz76w";
url = "https://elpa.nongnu.org/nongnu/popon-0.7.tar";
sha256 = "0sr0cv9jlaj83sgk1cb7wd6r12g6gmzdjzm077gxa6jy9p4qrv0q";
};
packageRequires = [ emacs ];
meta = {
@ -1846,6 +2000,21 @@
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 }:
elpaBuild {
pname = "prop-menu";
@ -1891,6 +2060,21 @@
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 }:
elpaBuild {
pname = "request";
@ -1925,10 +2109,10 @@
elpaBuild {
pname = "rust-mode";
ename = "rust-mode";
version = "1.0.4";
version = "1.0.5";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.4.tar";
sha256 = "137z04h29cgy1dmkf2cnchlfzqs4f5v3cc9gv9qxisw9dswlvdvk";
url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.5.tar";
sha256 = "16dw4mfgfazslsf8n9fir2xc3v3jpw9i7bbgcfbhgclm0g2w9j83";
};
packageRequires = [ emacs ];
meta = {
@ -1970,6 +2154,36 @@
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 }:
elpaBuild {
pname = "sesman";
@ -2075,6 +2289,21 @@
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 }:
elpaBuild {
pname = "stylus-mode";
@ -2124,10 +2353,10 @@
elpaBuild {
pname = "swift-mode";
ename = "swift-mode";
version = "8.4.2";
version = "8.6.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/swift-mode-8.4.2.tar";
sha256 = "0rkri1414f2w2bw76dwnmylcdca6x9bkdvlq1aznz76ac259klji";
url = "https://elpa.nongnu.org/nongnu/swift-mode-8.6.0.tar";
sha256 = "0zasgv311mjc1iih9wv8vb8h53y2pjx24xsbdnn0wk8xcdk4z8j6";
};
packageRequires = [ emacs seq ];
meta = {
@ -2139,10 +2368,10 @@
elpaBuild {
pname = "swsw";
ename = "swsw";
version = "2.1.1";
version = "2.2";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/swsw-2.1.1.tar";
sha256 = "0k6cysa4pmxv1kmpn0fqvardbdfayj92cq0r3gxrx9pgqxlqwfix";
url = "https://elpa.nongnu.org/nongnu/swsw-2.2.tar";
sha256 = "0bxcpk5329g4xdfnx8n70q53v4aansxfcs3fdpzssayyyv4fk72m";
};
packageRequires = [ emacs ];
meta = {
@ -2150,6 +2379,21 @@
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 }:
elpaBuild {
pname = "systemd";
@ -2291,6 +2535,36 @@
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 }:
elpaBuild {
pname = "vc-fossil";
@ -2340,10 +2614,10 @@
elpaBuild {
pname = "web-mode";
ename = "web-mode";
version = "17.2.2";
version = "17.2.3";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/web-mode-17.2.2.tar";
sha256 = "19ajwjcxv7vqysk085jyys77vry8nw7rzc7c43khyxb54qvg36i3";
url = "https://elpa.nongnu.org/nongnu/web-mode-17.2.3.tar";
sha256 = "1fvkr3yvhx67wkcynid7xppaci3m1d5ggdaii3d4dfp57wwz5c13";
};
packageRequires = [ emacs ];
meta = {
@ -2438,10 +2712,10 @@
elpaBuild {
pname = "xah-fly-keys";
ename = "xah-fly-keys";
version = "17.13.20220526011611";
version = "17.17.20220709145456";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-17.13.20220526011611.tar";
sha256 = "1lg8805s5y61jr6yrm44zdjm0nad6adc5xr78zm0i0qzigbhhdcq";
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-17.17.20220709145456.tar";
sha256 = "1npgdc9f1vj1d9nyfh30vskybqs2lwhd31b2a7i79ifrxs48kqr4";
};
packageRequires = [ emacs ];
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 {
inherit pname version src wmClass jdk product;
productShort = "PyCharm";
@ -189,6 +189,17 @@ let
'';
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, ... }:

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 {
pname = "mle";
version = "1.4.3";
version = "1.5.0";
src = fetchFromGitHub {
owner = "adsr";
repo = "mle";
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 = ''
substituteInPlace Makefile --replace "-llua5.3" "-llua";
substituteInPlace mle.h --replace "<lua5.3/" "<";
substituteInPlace Makefile --replace "-llua5.4" "-llua";
substituteInPlace mle.h --replace "<lua5.4/" "<";
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 ];
buildInputs = [ termbox pcre uthash lua5_3 ];
buildInputs = [ pcre uthash lua5_4 ];
doCheck = true;
@ -30,13 +57,8 @@ stdenv.mkDerivation rec {
installManPage mle.1
'';
postFixup = lib.optionalString stdenv.isDarwin ''
wrapProgram $out/bin/mle --prefix DYLD_LIBRARY_PATH : ${termbox}/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";
license = licenses.asl20;
platforms = platforms.unix;

View file

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

View file

@ -2,7 +2,7 @@
, fetchurl, libsecret }:
let
version = "3.11.1";
version = "3.23.69";
pname = "standardnotes";
name = "${pname}-${version}";
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
@ -13,12 +13,12 @@ let
}.${stdenv.hostPlatform.system} or throwSystem;
sha256 = {
i686-linux = "3e83a7eef5c29877eeffefb832543b21627cf027ae6e7b4f662865b6b842649a";
x86_64-linux = "fd461e98248a2181afd2ef94a41a291d20f7ffb20abeaf0cfcf81a9f94e27868";
i686-linux = "sha256-/A2LjV8ky20bcKgs0ijwldryi5VkyROwz49vWYXYQus=";
x86_64-linux = "sha256-fA9WH9qUtvAHF9hTFRtxQdpz2dpK0joD0zX9VYBo10g=";
}.${stdenv.hostPlatform.system} or throwSystem;
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;
};
@ -37,17 +37,14 @@ in appimageTools.wrapType2 rec {
extraInstallCommands = ''
# directory in /nix/store so readonly
cp -r ${appimageContents}/* $out
cd $out
chmod -R +w $out
mv $out/bin/${name} $out/bin/${pname}
# fixup and install desktop file
${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
--set-key Exec --set-value ${pname} standard-notes.desktop
mv usr/share/icons share
rm usr/lib/* AppRun standard-notes.desktop .so*
--set-key Exec --set-value ${pname} ${appimageContents}/standard-notes.desktop
ln -s ${appimageContents}/usr/share/icons share
'';
meta = with lib; {
@ -59,6 +56,7 @@ in appimageTools.wrapType2 rec {
homepage = "https://standardnotes.org";
license = licenses.agpl3;
maintainers = with maintainers; [ mgregoire chuangzhu ];
sourceProvenance = [ sourceTypes.binaryNativeCode ];
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/glepnir/zephyr-nvim/,,
https://github.com/ziglang/zig.vim/,,
https://github.com/mickael-menu/zk-nvim/,HEAD,
https://github.com/troydm/zoomwintab.vim/,,
https://github.com/nanotee/zoxide.vim/,,

View file

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

View file

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

View file

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

View file

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

View file

@ -17,13 +17,13 @@
buildDotnetModule rec {
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 {
owner = "Ryujinx";
repo = "Ryujinx";
rev = "26a881176eb6513a98889648e0d5b7fe647cd0e3";
sha256 = "09wjygkdr9sr0hwv77czi0x5xw8y585k9pghdm5s3iqjn9gbb45k";
rev = "6eb85e846f25ae36a39685d6ac91025deaea306c";
sha256 = "0lc8hhcrad26sw2dx0lwml8lk2mxg4db4sgfxnd450xi2qd63kdc";
};
projectFile = "Ryujinx.sln";

View file

@ -1,22 +1,60 @@
{ fetchNuGet }: [
(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 = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
(fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
(fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
(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 = "GioSharp"; version = "3.22.25.128"; sha256 = "0syfa1f2hg7wsxln5lh86n8m1lihhprc51b6km91gkl25l5hw5bv"; })
(fetchNuGet { pname = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; })
(fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
(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 = "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.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.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.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.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
(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.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
(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.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
(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.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
(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 = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
(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.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
(fetchNuGet { pname = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; })
(fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; })
(fetchNuGet { pname = "OpenTK.Core"; version = "4.5.0"; sha256 = "06qxczikp0aah20d4skk3g588dgh2vn2xffn0ajyyv0475m61s9m"; })
(fetchNuGet { pname = "OpenTK.Graphics"; version = "4.5.0"; sha256 = "180g5c92fhhhpmwl6paihx4h1bil7akaihlz2qy124n28pf4s988"; })
(fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.5.0"; sha256 = "1h9dxhq1llxdbgdzsi87ijqgj2ilr3rv0zkxhaa65xrc5x8j8fva"; })
(fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.5.0"; sha256 = "0lqxpc3vnxglql42x2frvq5bpkl5cf3dpnf9nx6pr3q6qnhigkfb"; })
(fetchNuGet { pname = "OpenTK.Core"; version = "4.7.2"; sha256 = "023jav5xdn532kdlkq8pqrvcjl98g1p9ggc8r85fk9bry5121pra"; })
(fetchNuGet { pname = "OpenTK.Graphics"; version = "4.7.2"; sha256 = "1wnf9x45ga336vq4px2a2fmma4zc9xrcr4qwrsmsh3l4w0d9s6ps"; })
(fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.7.2"; sha256 = "0ay1a8spmy8pn5nlvvac796smp74hjpxm3swvxdrbqqg4l4xqlfz"; })
(fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.7.2"; sha256 = "1m0wgf4khikyz2pvns5d9ffwm7psxjn9r4h128aqlca1iyay23f6"; })
(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.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.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
(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.Graphics.Nvdec.Dependencies"; version = "4.4.0-build7"; sha256 = "0g1l3lgs0ffxp64ka81v6q1cgsdirl1qlf73255v29r3v337074m"; })
(fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build9"; sha256 = "121zmh0byi22qsc9b25wv58kwcq6pmk7zf4f2rfafmdjvwx8bkxc"; })
(fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.0.17-build18"; sha256 = "0j0vs6075c4fniydqxhpp18pg3x679mq463x4gxqgkri3vhpj4vl"; })
(fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "5.0.1-build10"; sha256 = "05r3fh92raaydf4vcih77ivymbs97kqwjlgqdpaxa11aqq0hq753"; })
(fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.0.22-build20"; sha256 = "03d1rv0rlr2z7ynqixgj9xqlksplk1vsvq5wxjf5c6c6zcknx01r"; })
(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.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
(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 = "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.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
(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 = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; })
(fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
(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.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.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
(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.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
(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.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.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.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.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
(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.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
(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.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.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
(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.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.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.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
(fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
(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.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.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
(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.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
(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.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
(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.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
(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 = "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.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
(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.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.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
(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.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.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
(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.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.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.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
(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.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
(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.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
(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
#! 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
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"
if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then
echo "Already up to date!"
if [[ "$1" != "--deps-only" ]]; then
if [[ "${1-default}" != "--deps-only" ]]; then
exit 0
fi
fi
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')"
update-source-version ryujinx "$NEW_VERSION" "$SHA" --rev="$COMMIT"
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
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";
sha256 = "07d6nrk2g0614kvwdjym1wq21d2bwy3pscwikk80qhnd6rrww875";
sha256 = "sha256-5bmwbTzjVWRqjS5y4ETjfh4MjRhGTrGYWtzRh6f0jgE=";
};
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";
sha256 = "0iffhvdawc499nbn4k99k33cr7g8sdfcvq8k3z1g6gw24h87d5h5";
sha256 = "sha256-pT7pVDkrbR/j1oVF9uTiqXr7yNyLA6i0QzSVRc4TlnU=";
};
## see http://wiki.winehq.org/Mono
@ -46,9 +46,9 @@ in rec {
unstable = fetchurl rec {
# 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";
sha256 = "sha256-P+skzYWYwQ9q9xHnSsK10kQrtNO4wHj506JTroc2SA0=";
sha256 = "sha256-a/6+kz2qUJVprnmwv2ofG08H4b+K/Balm+4TdIuSymQ=";
inherit (stable) gecko32 gecko64 patches;
mono = fetchurl rec {
@ -61,7 +61,7 @@ in rec {
staging = fetchFromGitHub rec {
# https://github.com/wine-staging/wine-staging/releases
inherit (unstable) version;
sha256 = "sha256-5Pt98pla6t+B3FjB80hOWJUO64jY1EmOPQ0hEkFBWxY=";
sha256 = "sha256-U1awbhJRT3aAJstyEjv2Dp20FqyQ4ntnFFRYJb12C/U=";
owner = "wine-staging";
repo = "wine-staging";
rev = "v${version}";

View file

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

View file

@ -5,23 +5,23 @@
}:
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!
compat-list = fetchurl {
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=";
};
in {
mainline = libsForQt5.callPackage ./generic.nix rec {
pname = "yuzu-mainline";
version = "1014";
version = "1092";
src = fetchFromGitHub {
owner = "yuzu-emu";
repo = "yuzu-mainline";
rev = "mainline-0-${version}";
sha256 = "1x3d1fjssadv4kybc6mk153jlvncsfgm5aipkq5n5i8sr7mmr3nw";
sha256 = "1avcq924q0r8pfv1s0a88iyii7yixcxpb3yhlj0xg9zqnwp9r23y";
fetchSubmodules = true;
};
@ -30,13 +30,13 @@ in {
early-access = libsForQt5.callPackage ./generic.nix rec {
pname = "yuzu-ea";
version = "2725";
version = "2841";
src = fetchFromGitHub {
owner = "pineappleEA";
repo = "pineapple-src";
rev = "EA-${version}";
sha256 = "1nmcl9y9chr7cdvnra5zs1v42d3i801hmsjdlz3fmp15n04bcjmp";
sha256 = "16lrq9drv0x7gs1siq37m4zmh6d2g3vhnw9qcqajr9p0vmlpnh6l";
fetchSubmodules = true;
};

View file

@ -53,7 +53,7 @@ updateEarlyAccess() {
OLD_EA_HASH="$(getLocalHash "yuzu-ea")"
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
echo "yuzu-ea is already up to date!"

View file

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

View file

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

View file

@ -1,6 +1,25 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
, lcms2, openexr, libpng, liblqr1, librsvg, libtiff, libxml2, openjpeg, libwebp, fftw, libheif, libde265
, 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
, 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
}:
@ -30,35 +49,47 @@ stdenv.mkDerivation rec {
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.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
;
configureFlags = [
"--with-frozenpaths"
(lib.withFeatureAs (arch != null) "gcc-arch" arch)
(lib.withFeature librsvgSupport "rsvg")
(lib.withFeature liblqr1Support "lqr")
(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 =
[ zlib fontconfig freetype ghostscript
liblqr1 libpng libtiff libxml2 libheif libde265 djvulibre
]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ openexr librsvg openjpeg ]
++ lib.optionals stdenv.isDarwin
[ ApplicationServices Foundation ];
buildInputs = [ ]
++ lib.optional zlibSupport zlib
++ lib.optional fontconfigSupport fontconfig
++ lib.optional ghostscriptSupport ghostscript
++ lib.optional liblqr1Support liblqr1
++ lib.optional libpngSupport libpng
++ lib.optional libtiffSupport libtiff
++ 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 =
[ bzip2 freetype libjpeg lcms2 fftw ]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ libX11 libXext libXt libwebp ]
;
propagatedBuildInputs = [ fftw ]
++ 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;
doCheck = false; # fails 6 out of 76 tests
@ -72,7 +103,7 @@ stdenv.mkDerivation rec {
substituteInPlace "$file" --replace ${pkg-config}/bin/pkg-config \
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
done
'' + lib.optionalString (ghostscript != null) ''
'' + lib.optionalString ghostscriptSupport ''
for la in $out/lib/*.la; do
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
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 {
pname = "hydrus";
version = "488d";
version = "491";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "refs/tags/v${version}";
sha256 = "sha256-FWiopOf+eabiWAfjQW83V7I/e5lOLUVW3djoQePHPRs=";
sha256 = "sha256-ceKawn2jyfZPP4HzhkB1jIQoStCPRO/Ni/+Ys1R2FJQ=";
};
nativeBuildInputs = [
@ -42,7 +42,7 @@ python3Packages.buildPythonPackage rec {
pyopenssl
pyside2
pysocks
pythonPackages.mpv
python3Packages.mpv
pyyaml
qtpy
requests

View file

@ -57,11 +57,11 @@ let
in
stdenv.mkDerivation rec {
pname = "inkscape";
version = "1.2";
version = "1.2.1";
src = fetchurl {
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

View file

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

View file

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

View file

@ -5,13 +5,13 @@
buildGoModule rec {
pname = "dasel";
version = "1.24.3";
version = "1.25.0";
src = fetchFromGitHub {
owner = "TomWright";
repo = "dasel";
rev = "v${version}";
sha256 = "sha256-aAP5hyo4t5IX4wLwyNDuXxAYbAkS36S1UewYs9ZFJM4=";
sha256 = "sha256-VAakbuAkH7kuAx16m2vo4exikI03inXBW3OEIs5WwSY=";
};
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
version = "4.2.1";
version = "4.2.2";
libsecp256k1_name =
if stdenv.isLinux then "libsecp256k1.so.0"
@ -37,7 +37,7 @@ let
owner = "spesmilo";
repo = "electrum";
rev = version;
sha256 = "sha256-BoikYSsQZAv8WswIr5nmBsGmjZbTXaLAbdO2QtPvc7c=";
sha256 = "sha256-bFceOu+3SLtD2eY+aSBEn13xJw7a3aVwX39QfAuqVSo=";
postFetch = ''
mv $out ./all
@ -53,7 +53,7 @@ python3.pkgs.buildPythonApplication {
src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
sha256 = "sha256-2SxSTH9P380j2KaCbkXjgmQO7K2z81AG6PMA/EMggXA=";
sha256 = "sha256-ucLLfqmTKO5Qpg+PnmcdQwht7cWMWJoFjQWnDecEtVs=";
};
postUnpack = ''

View file

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

View file

@ -8,13 +8,13 @@ with lib;
stdenv.mkDerivation rec {
pname = "gammu";
version = "1.40.0";
version = "1.42.0";
src = fetchFromGitHub {
owner = "gammu";
repo = "gammu";
rev = version;
sha256 = "1jjaa9r3x6i8gv3yn1ngg815s6gsxblsw4wb5ddm77kamn2qyvpf";
sha256 = "sha256-aeaGHVxOMiXRU6RHws+oAnzdO9RY1jw/X/xuGfSt76I=";
};
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
index 8302353..e3ca59a 100644
index 25c08b3d6..86f72d8c7 100644
--- a/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-sql.7*
%doc %{_mandir}/man7/gammu-smsd-tables.7*
@ -16,13 +16,13 @@ index 8302353..e3ca59a 100644
%files -n libGammu%{so_ver} -f libgammu.lang
%defattr(-,root,root,-)
diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
index 78cc7fc..d674c36 100644
index 378411086..b871e6525 100644
--- a/contrib/CMakeLists.txt
+++ b/contrib/CMakeLists.txt
@@ -97,7 +97,7 @@ endif (INSTALL_BASH_COMPLETION)
if (WITH_SYSTEMD)
@@ -100,7 +100,7 @@ if (WITH_SYSTEMD)
configure_file( init/gammu-smsd.service init/gammu-smsd.service )
install (
FILES init/gammu-smsd.service
FILES ${CMAKE_CURRENT_BINARY_DIR}/init/gammu-smsd.service
- DESTINATION "${SYSTEMD_SERVICES_INSTALL_DIR}"
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/systemd"
COMPONENT "systemd"

View file

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

View file

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

View file

@ -15,12 +15,12 @@ let
in
stdenv.mkDerivation rec {
pname = "mkgmap";
version = "4904";
version = "4905";
src = fetchsvn {
url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
rev = version;
sha256 = "sha256-43gJkpk19Ef3vUbRNt3VDstxCLJl6smsAjtcrovGjEE=";
sha256 = "sha256-EYUysLit/bO/IjVmAbxqIvVFm9Ub50+RKFn7ZdspapU=";
};
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 {
pname = "pass-secret-service";
# PyPI has old alpha version. Since then the project has switched from using a
# seemingly abandoned D-Bus package pydbus and started using maintained
# dbus-next. So let's use latest from GitHub.
version = "unstable-2020-04-12";
version = "unstable-2022-03-21";
src = fetchFromGitHub {
owner = "mdellweg";
repo = "pass_secret_service";
rev = "f6fbca6ac3ccd16bfec407d845ed9257adf74dfa";
sha256 = "0rm4pbx1fiwds1v7f99khhh7x3inv9yniclwd95mrbgljk3cc6a4";
rev = "149f8557e07098eee2f46561eea61e83255ac59b";
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
# /etc/ in check phase.
postPatch = ''
substituteInPlace Makefile \
--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; [
@ -44,17 +68,15 @@ python3.pkgs.buildPythonApplication rec {
ps.pypass
];
checkPhase = ''
runHook preCheck
make test
runHook postCheck
'';
checkTarget = "test";
passthru.tests.pass-secret-service = nixosTests.pass-secret-service;
meta = {
description = "Libsecret D-Bus API with pass as the backend";
homepage = "https://github.com/mdellweg/pass_secret_service/";
license = lib.licenses.gpl3Only;
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