Merge master into staging-next
This commit is contained in:
commit
e7712f7a07
@ -18996,6 +18996,12 @@
|
||||
githubId = 67710369;
|
||||
keys = [ { fingerprint = "EA88 EA07 26E9 6CBF 6365 3966 163B 16EE 76ED 24CE"; } ];
|
||||
};
|
||||
shved = {
|
||||
name = "Yury Shvedov";
|
||||
email = "mestofel13@gmail.com";
|
||||
github = "ein-shved";
|
||||
githubId = 3513222;
|
||||
};
|
||||
shyim = {
|
||||
email = "s.sayakci@gmail.com";
|
||||
github = "shyim";
|
||||
|
@ -13,11 +13,14 @@
|
||||
inherit hostPath containerPath;
|
||||
options = mountOptions;
|
||||
};
|
||||
jqAddMountExpression = ".containerEdits.mounts[.containerEdits.mounts | length] |= . +";
|
||||
allJqMounts = lib.concatMap
|
||||
(mount:
|
||||
["${lib.getExe jq} '${jqAddMountExpression} ${builtins.toJSON (mkMount mount)}'"])
|
||||
mounts;
|
||||
mountToCommand = mount:
|
||||
"additionalMount \"${mount.hostPath}\" \"${mount.containerPath}\" '${builtins.toJSON mount.mountOptions}'";
|
||||
mountsToCommands = mounts:
|
||||
if (builtins.length mounts) == 0 then
|
||||
"cat"
|
||||
else
|
||||
(lib.strings.concatMapStringsSep " | \\\n"
|
||||
mountToCommand mounts);
|
||||
in
|
||||
writeScriptBin "nvidia-cdi-generator"
|
||||
''
|
||||
@ -32,6 +35,18 @@ function cdiGenerate {
|
||||
--nvidia-ctk-path ${lib.getExe' nvidia-container-toolkit "nvidia-ctk"}
|
||||
}
|
||||
|
||||
cdiGenerate | \
|
||||
${lib.concatStringsSep " | " allJqMounts} > $RUNTIME_DIRECTORY/nvidia-container-toolkit.json
|
||||
function additionalMount {
|
||||
local hostPath="$1"
|
||||
local containerPath="$2"
|
||||
local mountOptions="$3"
|
||||
if [ -e "$hostPath" ]; then
|
||||
${lib.getExe jq} ".containerEdits.mounts[.containerEdits.mounts | length] = { \"hostPath\": \"$hostPath\", \"containerPath\": \"$containerPath\", \"options\": $mountOptions }"
|
||||
else
|
||||
echo "Mount $hostPath ignored: could not find path in the host machine" >&2
|
||||
cat
|
||||
fi
|
||||
}
|
||||
|
||||
cdiGenerate |
|
||||
${mountsToCommands mounts} > $RUNTIME_DIRECTORY/nvidia-container-toolkit.json
|
||||
''
|
||||
|
@ -71,6 +71,8 @@
|
||||
/usr/local/nvidia/lib64.
|
||||
'';
|
||||
};
|
||||
|
||||
package = lib.mkPackageOption pkgs "nvidia-container-toolkit" { };
|
||||
};
|
||||
|
||||
};
|
||||
@ -129,6 +131,7 @@
|
||||
let
|
||||
script = pkgs.callPackage ./cdi-generate.nix {
|
||||
inherit (config.hardware.nvidia-container-toolkit) mounts;
|
||||
nvidia-container-toolkit = config.hardware.nvidia-container-toolkit.package;
|
||||
nvidia-driver = config.hardware.nvidia.package;
|
||||
deviceNameStrategy = config.hardware.nvidia-container-toolkit.device-name-strategy;
|
||||
};
|
||||
|
87
nixos/modules/services/monitoring/gitwatch.nix
Normal file
87
nixos/modules/services/monitoring/gitwatch.nix
Normal file
@ -0,0 +1,87 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkSystemdService =
|
||||
name: cfg:
|
||||
lib.nameValuePair "gitwatch-${name}" (
|
||||
let
|
||||
getvar = flag: var: lib.optionalString (cfg."${var}" != null) "${flag} ${cfg."${var}"}";
|
||||
branch = getvar "-b" "branch";
|
||||
remote = getvar "-r" "remote";
|
||||
in
|
||||
rec {
|
||||
inherit (cfg) enable;
|
||||
after = [ "network-online.target" ];
|
||||
wants = after;
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
description = "gitwatch for ${name}";
|
||||
path = with pkgs; [
|
||||
gitwatch
|
||||
git
|
||||
openssh
|
||||
];
|
||||
script = ''
|
||||
if [ -n "${cfg.remote}" ] && ! [ -d "${cfg.path}" ]; then
|
||||
git clone ${branch} "${cfg.remote}" "${cfg.path}"
|
||||
fi
|
||||
gitwatch ${remote} ${branch} ${cfg.path}
|
||||
'';
|
||||
serviceConfig.User = cfg.user;
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
options.services.gitwatch = lib.mkOption {
|
||||
description = ''
|
||||
A set of git repositories to watch for. See
|
||||
[gitwatch](https://github.com/gitwatch/gitwatch) for more.
|
||||
'';
|
||||
default = { };
|
||||
example = {
|
||||
my-repo = {
|
||||
enable = true;
|
||||
user = "user";
|
||||
path = "/home/user/watched-project";
|
||||
remote = "git@github.com:me/my-project.git";
|
||||
};
|
||||
disabled-repo = {
|
||||
enable = false;
|
||||
user = "user";
|
||||
path = "/home/user/disabled-project";
|
||||
remote = "git@github.com:me/my-old-project.git";
|
||||
branch = "autobranch";
|
||||
};
|
||||
};
|
||||
type =
|
||||
with lib.types;
|
||||
attrsOf (submodule {
|
||||
options = {
|
||||
enable = lib.mkEnableOption "watching for repo";
|
||||
path = lib.mkOption {
|
||||
description = "The path to repo in local machine";
|
||||
type = str;
|
||||
};
|
||||
user = lib.mkOption {
|
||||
description = "The name of services's user";
|
||||
type = str;
|
||||
default = "root";
|
||||
};
|
||||
remote = lib.mkOption {
|
||||
description = "Optional url of remote repository";
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
};
|
||||
branch = lib.mkOption {
|
||||
description = "Optional branch in remote repository";
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
config.systemd.services = lib.mapAttrs' mkSystemdService config.services.gitwatch;
|
||||
}
|
@ -34,10 +34,10 @@ in
|
||||
|
||||
stateDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/spool/varnish/${config.networking.hostName}";
|
||||
defaultText = literalExpression ''"/var/spool/varnish/''${config.networking.hostName}"'';
|
||||
default = "/run/varnish/${config.networking.hostName}";
|
||||
defaultText = literalExpression ''"/run/varnish/''${config.networking.hostName}"'';
|
||||
description = ''
|
||||
Directory holding all state for Varnish to run.
|
||||
Directory holding all state for Varnish to run. Note that this should be a tmpfs in order to avoid performance issues and crashes.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -68,11 +68,11 @@ in
|
||||
description = "Varnish";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
preStart = ''
|
||||
preStart = mkIf (!(lib.hasPrefix "/run/" cfg.stateDir)) ''
|
||||
mkdir -p ${cfg.stateDir}
|
||||
chown -R varnish:varnish ${cfg.stateDir}
|
||||
'';
|
||||
postStop = ''
|
||||
postStop = mkIf (!(lib.hasPrefix "/run/" cfg.stateDir)) ''
|
||||
rm -rf ${cfg.stateDir}
|
||||
'';
|
||||
serviceConfig = {
|
||||
@ -83,6 +83,7 @@ in
|
||||
RestartSec = "5s";
|
||||
User = "varnish";
|
||||
Group = "varnish";
|
||||
RuntimeDirectory = mkIf (lib.hasPrefix "/run/" cfg.stateDir) (lib.removePrefix "/run/" cfg.stateDir);
|
||||
AmbientCapabilities = "cap_net_bind_service";
|
||||
NoNewPrivileges = true;
|
||||
LimitNOFILE = 131072;
|
||||
|
@ -705,6 +705,7 @@ in {
|
||||
ntfy-sh = handleTest ./ntfy-sh.nix {};
|
||||
ntfy-sh-migration = handleTest ./ntfy-sh-migration.nix {};
|
||||
ntpd-rs = handleTest ./ntpd-rs.nix {};
|
||||
nvidia-container-toolkit = runTest ./nvidia-container-toolkit.nix;
|
||||
nvmetcfg = handleTest ./nvmetcfg.nix {};
|
||||
nzbget = handleTest ./nzbget.nix {};
|
||||
nzbhydra2 = handleTest ./nzbhydra2.nix {};
|
||||
|
149
nixos/tests/nvidia-container-toolkit.nix
Normal file
149
nixos/tests/nvidia-container-toolkit.nix
Normal file
@ -0,0 +1,149 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
testCDIScript = pkgs.writeShellScriptBin "test-cdi" ''
|
||||
die() {
|
||||
echo "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
check_file_referential_integrity() {
|
||||
echo "checking $1 referential integrity"
|
||||
( ${pkgs.glibc.bin}/bin/ldd "$1" | ${lib.getExe pkgs.gnugrep} "not found" &> /dev/null ) && return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
check_directory_referential_integrity() {
|
||||
${lib.getExe pkgs.findutils} "$1" -type f -print0 | while read -d $'\0' file; do
|
||||
if [[ $(${lib.getExe pkgs.file} "$file" | ${lib.getExe pkgs.gnugrep} ELF) ]]; then
|
||||
check_file_referential_integrity "$file" || exit 1
|
||||
else
|
||||
echo "skipping $file: not an ELF file"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_directory_referential_integrity "/usr/bin" || exit 1
|
||||
check_directory_referential_integrity "${pkgs.addDriverRunpath.driverLink}" || exit 1
|
||||
check_directory_referential_integrity "/usr/local/nvidia" || exit 1
|
||||
'';
|
||||
testContainerImage = pkgs.dockerTools.buildImage {
|
||||
name = "cdi-test";
|
||||
tag = "latest";
|
||||
config = {
|
||||
Cmd = [ (lib.getExe testCDIScript) ];
|
||||
};
|
||||
copyToRoot = with pkgs.dockerTools; [
|
||||
usrBinEnv
|
||||
binSh
|
||||
];
|
||||
};
|
||||
emptyCDISpec = ''
|
||||
{
|
||||
"cdiVersion": "0.5.0",
|
||||
"kind": "nvidia.com/gpu",
|
||||
"devices": [
|
||||
{
|
||||
"name": "all",
|
||||
"containerEdits": {
|
||||
"deviceNodes": [
|
||||
{
|
||||
"path": "/dev/urandom"
|
||||
}
|
||||
],
|
||||
"hooks": [],
|
||||
"mounts": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"containerEdits": {
|
||||
"deviceNodes": [],
|
||||
"hooks": [],
|
||||
"mounts": []
|
||||
}
|
||||
}
|
||||
'';
|
||||
nvidia-container-toolkit = {
|
||||
enable = true;
|
||||
package = pkgs.stdenv.mkDerivation {
|
||||
pname = "nvidia-ctk-dummy";
|
||||
version = "1.0.0";
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
inherit emptyCDISpec;
|
||||
passAsFile = [ "emptyCDISpec" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/nvidia-container-toolkit
|
||||
cp "$emptyCDISpecPath" "$out/share/nvidia-container-toolkit/spec.json"
|
||||
echo -n "$emptyCDISpec" > "$out/bin/nvidia-ctk";
|
||||
cat << EOF > "$out/bin/nvidia-ctk"
|
||||
#!${pkgs.runtimeShell}
|
||||
cat "$out/share/nvidia-container-toolkit/spec.json"
|
||||
EOF
|
||||
chmod +x $out/bin/nvidia-ctk
|
||||
'';
|
||||
meta.mainProgram = "nvidia-ctk";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "nvidia-container-toolkit";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ ereslibre ];
|
||||
};
|
||||
defaults =
|
||||
{ config, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [ jq ];
|
||||
virtualisation.diskSize = lib.mkDefault 10240;
|
||||
virtualisation.containers.enable = lib.mkDefault true;
|
||||
hardware = {
|
||||
inherit nvidia-container-toolkit;
|
||||
nvidia = {
|
||||
open = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable.open;
|
||||
};
|
||||
graphics.enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
nodes = {
|
||||
no-gpus = {
|
||||
virtualisation.containers.enable = false;
|
||||
hardware.graphics.enable = false;
|
||||
};
|
||||
one-gpu =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [ podman ];
|
||||
hardware.graphics.enable = true;
|
||||
};
|
||||
|
||||
one-gpu-invalid-host-paths = {
|
||||
hardware.nvidia-container-toolkit.mounts = [
|
||||
{
|
||||
hostPath = "/non-existant-path";
|
||||
containerPath = "/some/path";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
with subtest("Generate an empty CDI spec for a machine with no Nvidia GPUs"):
|
||||
no_gpus.wait_for_unit("nvidia-container-toolkit-cdi-generator.service")
|
||||
no_gpus.succeed("cat /var/run/cdi/nvidia-container-toolkit.json | jq")
|
||||
|
||||
with subtest("Podman loads the generated CDI spec for a machine with an Nvidia GPU"):
|
||||
one_gpu.wait_for_unit("nvidia-container-toolkit-cdi-generator.service")
|
||||
one_gpu.succeed("cat /var/run/cdi/nvidia-container-toolkit.json | jq")
|
||||
one_gpu.succeed("podman load < ${testContainerImage}")
|
||||
print(one_gpu.succeed("podman run --pull=never --device=nvidia.com/gpu=all -v /run/opengl-driver:/run/opengl-driver:ro cdi-test:latest"))
|
||||
|
||||
# Issue: https://github.com/NixOS/nixpkgs/issues/319201
|
||||
with subtest("The generated CDI spec skips specified non-existant paths in the host"):
|
||||
one_gpu_invalid_host_paths.wait_for_unit("nvidia-container-toolkit-cdi-generator.service")
|
||||
one_gpu_invalid_host_paths.fail("grep 'non-existant-path' /var/run/cdi/nvidia-container-toolkit.json")
|
||||
'';
|
||||
}
|
@ -17,13 +17,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mympd";
|
||||
version = "17.0.1";
|
||||
version = "17.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jcorporation";
|
||||
repo = "myMPD";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-NkOTCvpU6MxGOvQwiTLMJ444HgNK5tpt3hUs2epFyLE=";
|
||||
sha256 = "sha256-DtGNwxlXYCorD/c61nqtcocMqt4IG+LuTAdwbKlvp/Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1004,6 +1004,10 @@
|
||||
dependencies = with self; [ plenary-nvim ];
|
||||
};
|
||||
|
||||
lualine-nvim = super.lualine-nvim.overrideAttrs {
|
||||
dependencies = with self; [ nvim-web-devicons ];
|
||||
};
|
||||
|
||||
luasnip = super.luasnip.overrideAttrs {
|
||||
dependencies = with self; [ luaPackages.jsregexp ];
|
||||
};
|
||||
|
@ -0,0 +1,118 @@
|
||||
"""Copy Noto Color Emoji PNGs into an extracted Signal ASAR archive.
|
||||
|
||||
Signal loads small Apple emoji PNGs directly from
|
||||
`node_modules/emoji-datasource-apple/img/apple/64`, and downloads and
|
||||
caches large Apple emoji WebP files in `.proto` bundles on the fly. The
|
||||
latter are not a copyright concern for the Nixpkgs cache, but would
|
||||
result in inconsistent presentation between small and large emoji.
|
||||
|
||||
We skip the complexity and buy some additional privacy by replacing the
|
||||
`emoji://jumbo?emoji=` URL prefix with a `file://` path to the copied
|
||||
PNGs inside the ASAR archive, and linking the `node_modules` PNG paths
|
||||
directly to them.
|
||||
"""
|
||||
|
||||
import json
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def signal_name_to_emoji(signal_emoji_name: str) -> str:
|
||||
r"""Return the emoji corresponding to a Signal emoji name.
|
||||
|
||||
Signal emoji names are concatenations of UTF‐16 code units,
|
||||
represented in lowercase big‐endian hex padded to four digits.
|
||||
|
||||
>>> signal_name_to_emoji("d83dde36200dd83cdf2bfe0f")
|
||||
'😶🌫️'
|
||||
>>> b"\xd8\x3d\xde\x36\x20\x0d\xd8\x3c\xdf\x2b\xfe\x0f".decode("utf-16-be")
|
||||
'😶🌫️'
|
||||
"""
|
||||
hex_bytes = zip(signal_emoji_name[::2], signal_emoji_name[1::2])
|
||||
emoji_utf_16_be = bytes(
|
||||
int("".join(hex_pair), 16) for hex_pair in hex_bytes
|
||||
)
|
||||
return emoji_utf_16_be.decode("utf-16-be")
|
||||
|
||||
|
||||
def emoji_to_noto_name(emoji: str) -> str:
|
||||
r"""Return the Noto emoji name of an emoji.
|
||||
|
||||
Noto emoji names are underscore‐separated Unicode scalar values,
|
||||
represented in lowercase big‐endian hex padded to at least four
|
||||
digits. Any U+FE0F variant selectors are omitted.
|
||||
|
||||
>>> emoji_to_noto_name("😶🌫️")
|
||||
'1f636_200d_1f32b'
|
||||
>>> emoji_to_noto_name("\U0001f636\u200d\U0001f32b\ufe0f")
|
||||
'1f636_200d_1f32b'
|
||||
"""
|
||||
return "_".join(
|
||||
f"{ord(scalar_value):04x}"
|
||||
for scalar_value in emoji
|
||||
if scalar_value != "\ufe0f"
|
||||
)
|
||||
|
||||
|
||||
def emoji_to_emoji_data_name(emoji: str) -> str:
|
||||
r"""Return the npm emoji-data emoji name of an emoji.
|
||||
|
||||
emoji-data emoji names are hyphen‐minus‐separated Unicode scalar
|
||||
values, represented in lowercase big‐endian hex padded to at least
|
||||
four digits.
|
||||
|
||||
>>> emoji_to_emoji_data_name("😶🌫️")
|
||||
'1f636-200d-1f32b-fe0f'
|
||||
>>> emoji_to_emoji_data_name("\U0001f636\u200d\U0001f32b\ufe0f")
|
||||
'1f636-200d-1f32b-fe0f'
|
||||
"""
|
||||
return "-".join(f"{ord(scalar_value):04x}" for scalar_value in emoji)
|
||||
|
||||
|
||||
def _main() -> None:
|
||||
noto_png_path, asar_root = (Path(arg) for arg in sys.argv[1:])
|
||||
asar_root = asar_root.absolute()
|
||||
|
||||
out_path = asar_root / "images" / "nixpkgs-emoji"
|
||||
out_path.mkdir(parents=True)
|
||||
|
||||
emoji_data_out_path = (
|
||||
asar_root
|
||||
/ "node_modules"
|
||||
/ "emoji-datasource-apple"
|
||||
/ "img"
|
||||
/ "apple"
|
||||
/ "64"
|
||||
)
|
||||
emoji_data_out_path.mkdir(parents=True)
|
||||
|
||||
jumbomoji_json_path = asar_root / "build" / "jumbomoji.json"
|
||||
with jumbomoji_json_path.open() as jumbomoji_json_file:
|
||||
jumbomoji_packs = json.load(jumbomoji_json_file)
|
||||
|
||||
for signal_emoji_names in jumbomoji_packs.values():
|
||||
for signal_emoji_name in signal_emoji_names:
|
||||
emoji = signal_name_to_emoji(signal_emoji_name)
|
||||
|
||||
try:
|
||||
shutil.copy(
|
||||
noto_png_path / f"emoji_u{emoji_to_noto_name(emoji)}.png",
|
||||
out_path / emoji,
|
||||
)
|
||||
except FileNotFoundError:
|
||||
print(
|
||||
f"Missing Noto emoji: {emoji} {signal_emoji_name}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
continue
|
||||
|
||||
(
|
||||
emoji_data_out_path / f"{emoji_to_emoji_data_name(emoji)}.png"
|
||||
).symlink_to(out_path / emoji)
|
||||
|
||||
print(out_path.relative_to(asar_root))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
_main()
|
@ -1,8 +1,13 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, callPackage
|
||||
, fetchurl
|
||||
, autoPatchelfHook
|
||||
, noto-fonts-color-emoji
|
||||
, dpkg
|
||||
, asar
|
||||
, rsync
|
||||
, python3
|
||||
, wrapGAppsHook3
|
||||
, makeWrapper
|
||||
, nixosTests
|
||||
@ -57,6 +62,27 @@
|
||||
let
|
||||
inherit (stdenv) targetPlatform;
|
||||
ARCH = if targetPlatform.isAarch64 then "arm64" else "x64";
|
||||
|
||||
# Noto Color Emoji PNG files for emoji replacement; see below.
|
||||
noto-fonts-color-emoji-png = noto-fonts-color-emoji.overrideAttrs (prevAttrs: {
|
||||
pname = "noto-fonts-color-emoji-png";
|
||||
|
||||
# The build produces 136×128 PNGs by default for arcane font
|
||||
# reasons, but we want square PNGs.
|
||||
buildFlags = prevAttrs.buildFlags or [ ] ++ [ "BODY_DIMENSIONS=128x128" ];
|
||||
|
||||
makeTargets = [ "compressed" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share
|
||||
mv build/compressed_pngs $out/share/noto-fonts-color-emoji-png
|
||||
python3 add_aliases.py --srcdir=$out/share/noto-fonts-color-emoji-png
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
});
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname version;
|
||||
@ -71,11 +97,36 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
inherit url hash;
|
||||
recursiveHash = true;
|
||||
downloadToTemp = true;
|
||||
nativeBuildInputs = [ dpkg asar ];
|
||||
# Signal ships the Apple emoji set without a licence via an npm
|
||||
# package and upstream does not seem terribly interested in fixing
|
||||
# this; see:
|
||||
#
|
||||
# * <https://github.com/signalapp/Signal-Android/issues/5862>
|
||||
# * <https://whispersystems.discoursehosting.net/t/signal-is-likely-violating-apple-license-terms-by-using-apple-emoji-in-the-sticker-creator-and-android-and-desktop-apps/52883>
|
||||
#
|
||||
# We work around this by replacing it with the Noto Color Emoji
|
||||
# set, which is available under a FOSS licence and more likely to
|
||||
# be used on a NixOS machine anyway. The Apple emoji are removed
|
||||
# during `fetchurl` to ensure that the build doesn’t cache the
|
||||
# unlicensed emoji files, but the rest of the work is done in the
|
||||
# main derivation.
|
||||
postFetch = ''
|
||||
dpkg-deb -x $downloadedFile $out
|
||||
asar extract "$out/opt/${dir}/resources/app.asar" $out/asar-contents
|
||||
rm -r \
|
||||
"$out/opt/${dir}/resources/app.asar"{,.unpacked} \
|
||||
$out/asar-contents/node_modules/emoji-datasource-apple
|
||||
'';
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
rsync
|
||||
asar
|
||||
python3
|
||||
autoPatchelfHook
|
||||
dpkg
|
||||
(wrapGAppsHook3.override { inherit makeWrapper; })
|
||||
];
|
||||
|
||||
@ -127,11 +178,13 @@ stdenv.mkDerivation rec {
|
||||
wayland
|
||||
];
|
||||
|
||||
unpackPhase = "dpkg-deb -x $src .";
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
unpackPhase = ''
|
||||
rsync -a --chmod=+w $src/ .
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@ -147,6 +200,30 @@ stdenv.mkDerivation rec {
|
||||
# Create required symlinks:
|
||||
ln -s libGLESv2.so "$out/lib/${dir}/libGLESv2.so.2"
|
||||
|
||||
# Copy the Noto Color Emoji PNGs into the ASAR contents. See `src`
|
||||
# for the motivation, and the script for the technical details.
|
||||
emojiPrefix=$(
|
||||
python3 ${./copy-noto-emoji.py} \
|
||||
${noto-fonts-color-emoji-png}/share/noto-fonts-color-emoji-png \
|
||||
asar-contents
|
||||
)
|
||||
|
||||
# Replace the URL used for fetching large versions of emoji with
|
||||
# the local path to our copied PNGs.
|
||||
substituteInPlace asar-contents/preload.bundle.js \
|
||||
--replace-fail \
|
||||
'emoji://jumbo?emoji=' \
|
||||
"file://$out/lib/${lib.escapeURL dir}/resources/app.asar/$emojiPrefix/"
|
||||
|
||||
# `asar(1)` copies files from the corresponding `.unpacked`
|
||||
# directory when extracting, and will put them back in the modified
|
||||
# archive if you don’t specify them again when repacking. Signal
|
||||
# leaves their native `.node` libraries unpacked, so we match that.
|
||||
asar pack \
|
||||
--unpack '*.node' \
|
||||
asar-contents \
|
||||
"$out/lib/${dir}/resources/app.asar"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
@ -180,8 +257,21 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
homepage = "https://signal.org/";
|
||||
changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [ eclairevoyant mic92 equirosa urandom bkchr teutat3s ];
|
||||
license = [
|
||||
lib.licenses.agpl3Only
|
||||
|
||||
# Various npm packages
|
||||
lib.licenses.free
|
||||
];
|
||||
maintainers = with lib.maintainers; [
|
||||
eclairevoyant
|
||||
mic92
|
||||
equirosa
|
||||
urandom
|
||||
bkchr
|
||||
teutat3s
|
||||
emily
|
||||
];
|
||||
mainProgram = pname;
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
|
@ -0,0 +1,15 @@
|
||||
[tool.mypy]
|
||||
files = ["*.py"]
|
||||
strict = true
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 80
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["ALL"]
|
||||
ignore = ["COM812", "D203", "D213", "ISC001", "T201"]
|
||||
allowed-confusables = ["‐"]
|
||||
|
||||
[tool.ruff.format]
|
||||
docstring-code-format = true
|
||||
docstring-code-line-length = "dynamic"
|
@ -4,5 +4,5 @@ callPackage ./generic.nix { } rec {
|
||||
dir = "Signal";
|
||||
version = "7.19.0";
|
||||
url = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version}/builds/release/signal-desktop_${version}_arm64.deb";
|
||||
hash = "sha256-L5Wj1ofMR+QJezd4V6pAhkINLF6y9EB5VNFAIOZE5PU=";
|
||||
hash = "sha256-wyXVZUuY1TDGAVq7Gx9r/cuBuoMmSk9KQttTJlIN+k8=";
|
||||
}
|
||||
|
@ -4,5 +4,5 @@ callPackage ./generic.nix { } rec {
|
||||
dir = "Signal Beta";
|
||||
version = "7.19.0-beta.1";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
|
||||
hash = "sha256-kD08xke+HYhwAZG7jmU1ILo013556vNcvAFc/+9BTjg=";
|
||||
hash = "sha256-dIZvzJ45c5kL+2HEaKrtbck5Zz572pQAj3YTenzz6Zs=";
|
||||
}
|
||||
|
@ -4,5 +4,5 @@ callPackage ./generic.nix { } rec {
|
||||
dir = "Signal";
|
||||
version = "7.21.0";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
hash = "sha256-mjf27BISkvN9Xsi36EXtiSkvaPEc4j/Cwjlh4gkfdsA=";
|
||||
hash = "sha256-c4INjHMqTH2B71aUJtzgLSFZSe/KFo1OW/wv7rApSxA=";
|
||||
}
|
||||
|
@ -60,8 +60,8 @@ in rec {
|
||||
};
|
||||
|
||||
thunderbird-128 = common {
|
||||
version = "128.1.0esr";
|
||||
sha512 = "cda64afee45ae20a627116f9475cc4421262db40a7efa09eeafcb6e96f8fad97e8c96e2ecf04466ac4bce99fcebe0c3ce9953fa3fc4f5a92ab6f60e122f58c9a";
|
||||
version = "128.1.1esr";
|
||||
sha512 = "91e17d63383b05a7565838c61eda3b642f1bb3b4c43ae78a8810dd6d9ba2e5f10939be17598dd5e87bdf28d6f70ff9e154e54218aaf161bd89a5a6d30b504427";
|
||||
|
||||
updateScript = callPackage ./update.nix {
|
||||
attrPath = "thunderbirdPackages.thunderbird-128";
|
||||
|
@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "wdt";
|
||||
version = "1.27.1612021-unstable-2024-08-14";
|
||||
version = "1.27.1612021-unstable-2024-08-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "facebook";
|
||||
repo = "wdt";
|
||||
rev = "3601f6dd89eea161b059c141fc40418733e82f2f";
|
||||
sha256 = "sha256-YaSKaotN7LzlSQAIGkpTcgpgVQBH6KmH4YiebaMdz/g=";
|
||||
rev = "4cc8a21cfa29e55aa803365ab69248d0bf8fbb82";
|
||||
sha256 = "sha256-BEoZ662KsL6gf6hfN9ahgoPtHOFBi9k3gjRuGWs3zOw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -27,14 +27,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wayfire";
|
||||
version = "0.8.1";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WayfireWM";
|
||||
repo = "wayfire";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-OPGzPy0I6i3TvmA5KSWDb4Lsf66zM5X+Akckgs3wk2o=";
|
||||
hash = "sha256-xQZ4/UE66IISZQLl702OQXAAr8XmEsA4hJwB7aXua+E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -12,18 +12,17 @@
|
||||
, nlohmann_json
|
||||
, xcbutilwm
|
||||
, gtkmm3
|
||||
, gtk-layer-shell
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wayfire-plugins-extra";
|
||||
version = "0.8.1";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WayfireWM";
|
||||
repo = "wayfire-plugins-extra";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-MF4tDzIZnnTXH2ZUxltIw1RP3pfRQFGrc/n9H47yW0g";
|
||||
hash = "sha256-TukDomxqfrM45+C7azfO8jVaqk3E5irdphH8U5IYItg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -41,7 +40,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
nlohmann_json
|
||||
xcbutilwm
|
||||
gtkmm3
|
||||
gtk-layer-shell
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
|
@ -8,6 +8,8 @@
|
||||
, wayfire
|
||||
, libxkbcommon
|
||||
, libGL
|
||||
, libinput
|
||||
, xcbutilwm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
@ -31,6 +33,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
wayfire
|
||||
libxkbcommon
|
||||
libGL
|
||||
libinput
|
||||
xcbutilwm
|
||||
];
|
||||
|
||||
env = {
|
||||
|
@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wf-config";
|
||||
version = "0.8.0";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WayfireWM";
|
||||
repo = "wf-config";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-4QszCGlJqehnavTOdR2vZ95XuHKiNUIsA893sa9qph8=";
|
||||
hash = "sha256-5HejuluCTsRsnHuaMCTnCPkbFvT/IcLkfNGjnXnZjJ0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wf-shell";
|
||||
version = "0.8.1";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WayfireWM";
|
||||
repo = "wf-shell";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-/ajFPIk8VJnlu2DzvSyGD3bC4r/pxALTkZeLNvs9dTw=";
|
||||
hash = "sha256-J5KmUxM/mU5I1YfkfwZgbK7VxMTKKKGGvxYS5Rnbqnc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,15 +1,33 @@
|
||||
{ lib, stdenv, fetchFromGitHub, makeWrapper
|
||||
, perl, pandoc, python3, git
|
||||
, par2cmdline ? null, par2Support ? true
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
perl,
|
||||
pandoc,
|
||||
python3,
|
||||
git,
|
||||
|
||||
par2Support ? true,
|
||||
par2cmdline ? null,
|
||||
}:
|
||||
|
||||
assert par2Support -> par2cmdline != null;
|
||||
|
||||
let
|
||||
version = "0.33.3";
|
||||
version = "0.33.4";
|
||||
|
||||
pythonDeps = with python3.pkgs; [ setuptools tornado ]
|
||||
++ lib.optionals (!stdenv.isDarwin) [ pyxattr pylibacl fuse ];
|
||||
pythonDeps =
|
||||
with python3.pkgs;
|
||||
[
|
||||
setuptools
|
||||
tornado
|
||||
]
|
||||
++ lib.optionals (!stdenv.isDarwin) [
|
||||
pyxattr
|
||||
pylibacl
|
||||
fuse
|
||||
];
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
@ -20,11 +38,18 @@ stdenv.mkDerivation {
|
||||
repo = "bup";
|
||||
owner = "bup";
|
||||
rev = version;
|
||||
hash = "sha256-w7yPs7hG4v0Kd9i2tYhWH7vW95MAMfI/8g61MB6bfps=";
|
||||
hash = "sha256-9rWzHONcu4W/JcnDUGPbuGksroODbhdL6bNF+3Dd2ag=";
|
||||
};
|
||||
|
||||
buildInputs = [ git python3 ];
|
||||
nativeBuildInputs = [ pandoc perl makeWrapper ];
|
||||
buildInputs = [
|
||||
git
|
||||
python3
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
pandoc
|
||||
perl
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
@ -37,7 +62,8 @@ stdenv.mkDerivation {
|
||||
"LIBDIR=$(out)/lib/bup"
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration -Wno-error=implicit-int";
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
|
||||
"-Wno-error=implicit-function-declaration -Wno-error=implicit-int";
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/bup \
|
@ -10,19 +10,19 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "downonspot";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oSumAtrIX";
|
||||
repo = "DownOnSpot";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-F0SW/qce7eEEDC4FQvO6eW9V4POkRK/WP8bMUBtzGIw=";
|
||||
hash = "sha256-h/BKVFzvPq9FhX4wZzlIzoegK8nPEt+mR7oKpRC5eV0=";
|
||||
};
|
||||
|
||||
# Use official public librespot version
|
||||
cargoPatches = [ ./Cargo.lock.patch ];
|
||||
|
||||
cargoHash = "sha256-kLMV8jDadb2BryOqXGkiunQvZRjzjbVTh9Z+jHSSHbU=";
|
||||
cargoHash = "sha256-2oPpi9MgQpvvjMJ5G+OkL8Gyemx82IHLjuAz+S8tI3E=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
100
pkgs/by-name/fo/footage/package.nix
Normal file
100
pkgs/by-name/fo/footage/package.nix
Normal file
@ -0,0 +1,100 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
rustPlatform,
|
||||
cargo,
|
||||
rustc,
|
||||
appstream-glib,
|
||||
blueprint-compiler,
|
||||
desktop-file-utils,
|
||||
gettext,
|
||||
glib,
|
||||
gst_all_1,
|
||||
gtk4,
|
||||
libadwaita,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
wrapGAppsHook4,
|
||||
a52dec,
|
||||
fdk_aac,
|
||||
ffmpeg,
|
||||
x264,
|
||||
x265,
|
||||
vo-aacenc,
|
||||
svt-av1,
|
||||
libmpeg2,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "footage";
|
||||
version = "1.3.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "adhami3310";
|
||||
repo = "Footage";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-VEL96JrJ5eJEoX2miiB4dqGUXizNlYWCUZkkYkh09B8=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-RWMNeMrctIlcA4MiRx9t7OfzKeHtw3phrYsYFZH7z4c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo
|
||||
rustc
|
||||
appstream-glib
|
||||
blueprint-compiler
|
||||
desktop-file-utils
|
||||
gettext
|
||||
gtk4 # for gtk-update-icon-cache
|
||||
glib # for glib-compile-schemas
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
glib
|
||||
gtk4
|
||||
libadwaita
|
||||
a52dec
|
||||
fdk_aac
|
||||
ffmpeg
|
||||
x264
|
||||
x265
|
||||
vo-aacenc
|
||||
svt-av1
|
||||
libmpeg2
|
||||
]
|
||||
++ (with gst_all_1; [
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-rs
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
gstreamer
|
||||
gst-editing-services
|
||||
]);
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix PATH : "${lib.makeBinPath [ gst_all_1.gstreamer ]}"
|
||||
)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Video editing tool that allows you to trim, flip, rotate, and crop clips";
|
||||
homepage = "https://gitlab.com/adhami3310/Footage";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ onny ];
|
||||
};
|
||||
}
|
49
pkgs/by-name/gi/gitwatch/package.nix
Normal file
49
pkgs/by-name/gi/gitwatch/package.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
runCommand,
|
||||
lib,
|
||||
makeWrapper,
|
||||
fetchFromGitHub,
|
||||
|
||||
git,
|
||||
openssh,
|
||||
inotify-tools,
|
||||
}:
|
||||
runCommand "gitwatch"
|
||||
rec {
|
||||
version = "0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gitwatch";
|
||||
repo = "gitwatch";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KuWD2FAMi2vZ/7e4fIg97DGuAPEV9b9iOuF8NIGFVpE=";
|
||||
};
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
meta = {
|
||||
description = "Watch a filesystem and automatically stage changes to a git.";
|
||||
mainProgram = "gitwatch";
|
||||
longDescription = ''
|
||||
A bash script to watch a file or folder and commit changes to a git repo.
|
||||
'';
|
||||
homepage = "https://github.com/gitwatch/gitwatch";
|
||||
changelog = "https://github.com/gitwatch/gitwatch/releases/tag/v${version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ shved ];
|
||||
};
|
||||
}
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
dest="$out/bin/gitwatch"
|
||||
cp "$src/gitwatch.sh" $dest
|
||||
chmod +x $dest
|
||||
patchShebangs $dest
|
||||
|
||||
wrapProgram $dest \
|
||||
--prefix PATH ';' ${
|
||||
lib.makeBinPath [
|
||||
git
|
||||
inotify-tools
|
||||
openssh
|
||||
]
|
||||
}
|
||||
''
|
@ -10,16 +10,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "md-tui";
|
||||
version = "0.8.4";
|
||||
version = "0.8.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "henriklovhaug";
|
||||
repo = "md-tui";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-J1UtyxDT8+UmBwayUMtcPOtnVVkRZLg6ECXnqDSJ2Ew=";
|
||||
hash = "sha256-HUrL/+uXQ3753Qb5FZkftGZO+u+MsocFO3L3OzarEhg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-wb5XF6KdroLbQOQg9bPrJjqLOluq/EH2dJzp2icNUIc=";
|
||||
cargoHash = "sha256-+fqp5FtZa53EkcHtTn1hvWzjYjlQWVKPbdRC1V0mYQU=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "okteto";
|
||||
version = "2.30.1";
|
||||
version = "2.30.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "okteto";
|
||||
repo = "okteto";
|
||||
rev = version;
|
||||
hash = "sha256-Mu5Cl+wNCDXjFn0+1IitWEaku6Fi8ykKL6GgIKr5CHk=";
|
||||
hash = "sha256-6t9lkn2voxE6rbBtD7AcO9aRLcLVe2JDFPIj8XR86KU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-7XZImCS9hv8ILYfGcoY3tMk0grswWbfpQrBKhghTfsY=";
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "roddhjav-apparmor-rules";
|
||||
version = "0-unstable-2024-08-06";
|
||||
version = "0-unstable-2024-08-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "roddhjav";
|
||||
repo = "apparmor.d";
|
||||
rev = "ad60ee11ad6c43d32ef0396e340ec4e446288d69";
|
||||
hash = "sha256-UiytwQXAgvvBp7hGpqoLMQZTrZ7uBxutML04Q343RCM=";
|
||||
rev = "96d774a9ebae3fe61623029389d763e0c73aa362";
|
||||
hash = "sha256-re4uiXt4No4OEeNm6hc52lkQ8lqkAoF1xy2BjIIi3A8=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
39
pkgs/by-name/sy/syndicate-server/package.nix
Normal file
39
pkgs/by-name/sy/syndicate-server/package.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitea,
|
||||
pkg-config,
|
||||
openssl,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "syndicate-server";
|
||||
version = "0.46.0";
|
||||
src = fetchFromGitea {
|
||||
domain = "git.syndicate-lang.org";
|
||||
owner = "syndicate-lang";
|
||||
repo = "syndicate-rs";
|
||||
rev = "${pname}-v${version}";
|
||||
sha256 = "sha256-bTteZIlBSoQ1o5shgd9NeKVvEhZTyG3i2zbeVojWiO8=";
|
||||
};
|
||||
cargoHash = "sha256-SIpdFXTk6MC/drjCLaaa49BbGsvCMNbPGCfTxAlCo9c=";
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
versionCheckHook
|
||||
];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
RUSTC_BOOTSTRAP = 1;
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "Syndicate broker server";
|
||||
homepage = "http://synit.org/";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "syndicate-server";
|
||||
maintainers = with lib.maintainers; [ ehmry ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
@ -5,16 +5,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "templ";
|
||||
version = "0.2.747";
|
||||
version = "0.2.771";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "a-h";
|
||||
repo = "templ";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-XFktmKFVN1/1Y57ZoUTVKDgEk38491N92orgejFLnMA=";
|
||||
hash = "sha256-1S8rdq+dRVh5NulXZw70TC5NjaWb6YdIfT6NcZTvx8U=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-p2xuyy11N1nGjz5OhLIy04Kgzz90k3s0+09qi6hbjEc=";
|
||||
vendorHash = "sha256-ZWY19f11+UI18jeHYIEZjdb9Ii74mD6w+dYRLPkdfBU=";
|
||||
|
||||
subPackages = [ "cmd/templ" ];
|
||||
|
||||
|
20
pkgs/development/coq-modules/bbv/default.nix
Normal file
20
pkgs/development/coq-modules/bbv/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ lib, mkCoqDerivation, coq, version ? null }:
|
||||
|
||||
mkCoqDerivation {
|
||||
pname = "bbv";
|
||||
owner = "mit-plv";
|
||||
inherit version;
|
||||
defaultVersion = let inherit (lib.versions) range; in
|
||||
lib.switch coq.coq-version [
|
||||
{ case = range "8.16" "8.19"; out = "1.5"; }
|
||||
] null;
|
||||
release = {
|
||||
"1.5".sha256 = "sha256-8/VPsfhNpuYpLmLC/hWszDhgvS6n8m7BRxUlea8PSUw=";
|
||||
};
|
||||
releaseRev = v: "v${v}";
|
||||
|
||||
meta = {
|
||||
description = "An implementation of bitvectors in Coq.";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiovlc";
|
||||
version = "0.4.2";
|
||||
version = "0.4.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "MartinHjelmare";
|
||||
repo = "aiovlc";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-8JDYh+Ym4UF6zjzN+xE0SzeS3BrrYv1MT6w0kn62ASQ=";
|
||||
hash = "sha256-kiF2BRqaQLNpd+EoKrI9/9m3E1DlyJqM3Ng0qA0TfyQ=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "asf-search";
|
||||
version = "8.0.0";
|
||||
version = "8.0.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -29,7 +29,7 @@ buildPythonPackage rec {
|
||||
owner = "asfadmin";
|
||||
repo = "Discovery-asf_search";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-cmKZ+pM7KDvGbO/+B6Xmm7zS69aq3MbRuyByV8ZT6hc=";
|
||||
hash = "sha256-mOhY64Csxdc/DYS1OlbstxYEodtpXTVyPwd4B1jrDK8=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "tenacity" ];
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "dvc-data";
|
||||
version = "3.16.4";
|
||||
version = "3.16.5";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
owner = "iterative";
|
||||
repo = "dvc-data";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Mdsqo0EX+tOMPibM/1bEeqF7a0od4az6FwgwmWkdQqY=";
|
||||
hash = "sha256-QTsKjF7aVUUFi/6WtuLDVaKOOEzkbkQKpT9L2Mg6724=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools-scm ];
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hahomematic";
|
||||
version = "2024.8.1";
|
||||
version = "2024.8.13";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.12";
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
owner = "danielperna84";
|
||||
repo = "hahomematic";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-myF10xrkq7xbov4veFiA1Jg6i+VS3khQPc/c2tx4gIc=";
|
||||
hash = "sha256-dojgIKF3AGkJm2USspV0rm8UZnTLxYf4dgt86WwonQk=";
|
||||
};
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "microsoft-kiota-serialization-json";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "microsoft";
|
||||
repo = "kiota-serialization-json-python";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-hGD8MhdQgF+mkoG4eOCSPyaArV8OrqAtgOwiNR8kado=";
|
||||
hash = "sha256-V1s2MMO987ADp2nRxpIFlyx+OHNhSv8xCt3JOTzQCOM=";
|
||||
};
|
||||
|
||||
build-system = [ flit-core ];
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nextdns";
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
||||
owner = "bieniu";
|
||||
repo = "nextdns";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-bBGuMfXCAqds9SMGj1I+9rk/u2QljZW60quvWODboCA=";
|
||||
hash = "sha256-/gBNJYCkDQ5SeM4q/4rWdsSldrMeo5GdUBaG57NiEIY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -3,32 +3,35 @@
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pydevccu";
|
||||
version = "0.1.8";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danielperna84";
|
||||
repo = pname;
|
||||
repo = "pydevccu";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-WguSTtWxkiDs5nK5eiaarfD0CBxzIxQR9fxjuW3wMGc=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "pydevccu" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "HomeMatic CCU XML-RPC Server with fake devices";
|
||||
homepage = "https://github.com/danielperna84/pydevccu";
|
||||
changelog = "https://github.com/danielperna84/pydevccu/releases/tag/${version}";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qdrant-client";
|
||||
version = "1.11.0";
|
||||
version = "1.11.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -27,7 +27,7 @@ buildPythonPackage rec {
|
||||
owner = "qdrant";
|
||||
repo = "qdrant-client";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-JrkBlqvMgZXSykYS1M4YOagwdF8QqMrMpxzYrk2Nfi8=";
|
||||
hash = "sha256-NIGmQMtGvm6zifYJIMFx+d9w9IZmQUAqieBo/3JmYbM=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "recipe-scrapers";
|
||||
version = "15.0.0";
|
||||
version = "15.1.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
owner = "hhursev";
|
||||
repo = "recipe-scrapers";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-7tCLzMj5/K+7i8a1hFcilOgU+0Y5R6VdYJK5CK06LLw=";
|
||||
hash = "sha256-PCtvDd/1eAbo1aHUPMu0XHNHMwBTbjZmdSNrY2PmxQc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tencentcloud-sdk-python";
|
||||
version = "3.0.1216";
|
||||
version = "3.0.1219";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "TencentCloud";
|
||||
repo = "tencentcloud-sdk-python";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-2/qt5Ttyvl2O1ekiICWUkKJa4Bzaqnz+8P1VrDKc4+w=";
|
||||
hash = "sha256-EgWa4YmMLcA0z7M88vWMaNDLi5pZ+qNYvALi/MSS45s=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "twilio";
|
||||
version = "9.2.3";
|
||||
version = "9.2.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -29,7 +29,7 @@ buildPythonPackage rec {
|
||||
owner = "twilio";
|
||||
repo = "twilio-python";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-uPpA/FJRtmD8w5lZCmSsbZWGYRnKuvCx34aAKUWqn8o=";
|
||||
hash = "sha256-5HHHSAvyUxR5myKucWpjkF7NQv/b1pViij606TZGzTY=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "checkov";
|
||||
version = "3.2.235";
|
||||
version = "3.2.236";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bridgecrewio";
|
||||
repo = "checkov";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-NB3m+D+qNak0b/U1MWxj8KvADNxViv+8+oCun4m5rBk=";
|
||||
hash = "sha256-w5ac8yerkGEOFOKNgeFtIOIjzekOd7G4Hn3J3kEzjMM=";
|
||||
};
|
||||
|
||||
patches = [ ./flake8-compat-5.x.patch ];
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sgt-puzzles";
|
||||
version = "20240817.262f709";
|
||||
version = "20240827.52afffa";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
|
||||
hash = "sha256-57s9LB4L7DSbvkl/qf7tZuXOWmd36titEsEn/kB+Juo=";
|
||||
hash = "sha256-G+FZnr7+XvvxDpBWyH4Dv8NEjSWTXDoVNzbzNpMTbLg=";
|
||||
};
|
||||
|
||||
sgt-puzzles-menu = fetchurl {
|
||||
|
@ -28,14 +28,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vcmi";
|
||||
version = "1.5.6";
|
||||
version = "1.5.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vcmi";
|
||||
repo = "vcmi";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-jdqhHxUJchc0d9wy5Fh/ZHJkMPffLP5aldNMg/+bRAM=";
|
||||
hash = "sha256-Op5cnp/gO3PPv/QyrashFDBCyqwlO6wkv5Ni5jpRWd8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "knot-dns";
|
||||
version = "3.3.8";
|
||||
version = "3.3.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
|
||||
sha256 = "498de8338489a625673797f7ecc921fa4490c826afbfa42fa66922b525089e6a";
|
||||
sha256 = "7cf2bd93bf487179aca1d2acf7b462dc269e769944c3ea73c7f9a4570dde86ab";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "out" "dev" ];
|
||||
|
@ -7,13 +7,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "danielperna84";
|
||||
domain = "homematicip_local";
|
||||
version = "1.64.0";
|
||||
version = "1.65.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danielperna84";
|
||||
repo = "custom_homematic";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-uKqX7TJrqujH8C9K8VPx977GsDeAdMh94390G5omUMY=";
|
||||
hash = "sha256-rUiesrVpGZMMo8JSboFTDE2oE0Q9hNYR4AvA/GR5+MY=";
|
||||
};
|
||||
|
||||
dependencies = [
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "homeassistant-stubs";
|
||||
version = "2024.8.2";
|
||||
version = "2024.8.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.version != home-assistant.python.version;
|
||||
@ -17,7 +17,7 @@ buildPythonPackage rec {
|
||||
owner = "KapJI";
|
||||
repo = "homeassistant-stubs";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-ey1fglgyD7peGdBBD9fO9BWN48u+C+hYmTyh84FwYMY=";
|
||||
hash = "sha256-cpOxBdqrbN/YmtbxTLyarYdDhdlbnLoFfsBvnAdsWks=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
@ -21,16 +21,16 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "minio";
|
||||
version = "2024-08-17T01-24-54Z";
|
||||
version = "2024-08-26T15-33-07Z";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "minio";
|
||||
repo = "minio";
|
||||
rev = "RELEASE.${version}";
|
||||
hash = "sha256-e3Zti0v+2jfRkVoXOfqW5uw9zvIfoAKhkolfNtyBNaE=";
|
||||
hash = "sha256-ZQzHKosJfjtr++jrRvbY9w3x5uXXjw/eNrgcf3+6/2c=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-diRNxBmWB/aJjS8+/+7Dc/2RmI93SZpmfsqP+2i9X1Q=";
|
||||
vendorHash = "sha256-L4mmQyXd/NQkKBHMKCLWs4A9XFKdrpcy+SYx2ExvqQE=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
2
pkgs/tools/misc/vector/Cargo.lock
generated
2
pkgs/tools/misc/vector/Cargo.lock
generated
@ -10205,7 +10205,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "vector"
|
||||
version = "0.40.0"
|
||||
version = "0.40.1"
|
||||
dependencies = [
|
||||
"apache-avro",
|
||||
"approx",
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
let
|
||||
pname = "vector";
|
||||
version = "0.40.0";
|
||||
version = "0.40.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
@ -45,7 +45,7 @@ rustPlatform.buildRustPackage {
|
||||
owner = "vectordotdev";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KJqixwOc9M8xBzeyJFF3sFfybqAroEYu4OPD8q+PMRY=";
|
||||
hash = "sha256-1vFDFdO9E5mUAUfEdg9Ec5ptq2Kp7HpqNz5+9CMn30U=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
@ -67,11 +67,6 @@ rustPlatform.buildRustPackage {
|
||||
++ lib.optionals stdenv.isLinux [ rust-jemalloc-sys-unprefixed ]
|
||||
++ lib.optionals stdenv.isDarwin [ rust-jemalloc-sys Security libiconv coreutils CoreServices SystemConfiguration ];
|
||||
|
||||
# Rust 1.80.0 introduced the unexepcted_cfgs lint, which requires crates to allowlist custom cfg options that they inspect.
|
||||
# Upstream is working on fixing this in https://github.com/vectordotdev/vector/pull/20949, but silencing the lint lets us build again until then.
|
||||
# TODO remove when upgrading Vector
|
||||
RUSTFLAGS = "--allow unexpected_cfgs";
|
||||
|
||||
# needed for internal protobuf c wrapper library
|
||||
PROTOC = "${protobuf}/bin/protoc";
|
||||
PROTOC_INCLUDE = "${protobuf}/include";
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "minio-client";
|
||||
version = "2024-08-17T11-33-50Z";
|
||||
version = "2024-08-26T10-49-58Z";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "minio";
|
||||
repo = "mc";
|
||||
rev = "RELEASE.${version}";
|
||||
sha256 = "sha256-sQovBnmDKf0F7dEWe5CEbxHQ/9hgkGkeut3qZX8MP6I=";
|
||||
sha256 = "sha256-csaG54iwH0q8CHB0FFD0sY063uQ2WSlXDePo6yr5QbI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-xxzdhL5WXigglDqVl5UtSO+ztw+FqjLu9d8kC6XWSzQ=";
|
||||
vendorHash = "sha256-wjMn9Xi4wd7fa1ay3mLRGl/USWCVtk/J9KiGpfcsRM4=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -5,14 +5,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "ghauri";
|
||||
version = "1.3.5";
|
||||
version = "1.3.7";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "r0oth3x49";
|
||||
repo = "ghauri";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-ea0YJuHT4G6Y9AE9sZEHTa/Ljtw2fATFha/j4VmukcA=";
|
||||
hash = "sha256-uGRhp77HmLmWMJFyhJoEjwdIR84Wcwv554g9Hi6yW4c=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
|
@ -6321,8 +6321,6 @@ with pkgs;
|
||||
|
||||
bumpver = callPackage ../applications/version-management/bumpver { };
|
||||
|
||||
bup = callPackage ../tools/backup/bup { };
|
||||
|
||||
bupstash = darwin.apple_sdk_11_0.callPackage ../tools/backup/bupstash { };
|
||||
|
||||
burp = callPackage ../tools/backup/burp { };
|
||||
|
@ -22,6 +22,7 @@ let
|
||||
async-test = callPackage ../development/coq-modules/async-test {};
|
||||
atbr = callPackage ../development/coq-modules/atbr {};
|
||||
autosubst = callPackage ../development/coq-modules/autosubst {};
|
||||
bbv = callPackage ../development/coq-modules/bbv {};
|
||||
bignums = if lib.versionAtLeast coq.coq-version "8.6"
|
||||
then callPackage ../development/coq-modules/bignums {}
|
||||
else null;
|
||||
|
Loading…
Reference in New Issue
Block a user