Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2021-03-24 00:41:13 +00:00 committed by GitHub
commit 0a29e611e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 539 additions and 261 deletions

View file

@ -111,6 +111,12 @@ Create a Docker image with many of the store paths being on their own layer to i
*Default:* the output path's hash
`fromImage` _optional_
: The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`.
*Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`.
`contents` _optional_
: Top level paths in the container. Either a single derivation, or a list of derivations.

View file

@ -24,7 +24,7 @@ let
Type = "oneshot";
User = "acme";
Group = mkDefault "acme";
UMask = 0023;
UMask = 0022;
StateDirectoryMode = 750;
ProtectSystem = "full";
PrivateTmp = true;
@ -303,9 +303,15 @@ let
}
${optionalString (data.webroot != null) ''
# Ensure the webroot exists
mkdir -p '${data.webroot}/.well-known/acme-challenge'
chown 'acme:${data.group}' ${data.webroot}/{.well-known,.well-known/acme-challenge}
# Ensure the webroot exists. Fixing group is required in case configuration was changed between runs.
# Lego will fail if the webroot does not exist at all.
(
mkdir -p '${data.webroot}/.well-known/acme-challenge' \
&& chgrp '${data.group}' ${data.webroot}/.well-known/acme-challenge
) || (
echo 'Please ensure ${data.webroot}/.well-known/acme-challenge exists and is writable by acme:${data.group}' \
&& exit 1
)
''}
echo '${domainHash}' > domainhash.txt

View file

@ -253,7 +253,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
def check_connection(node, domain, retries=3):
assert retries >= 0
assert retries >= 0, f"Failed to connect to https://{domain}"
result = node.succeed(
"openssl s_client -brief -verify 2 -CAfile /tmp/ca.crt"
@ -262,12 +262,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
for line in result.lower().split("\n"):
if "verification" in line and "error" in line:
time.sleep(1)
time.sleep(3)
return check_connection(node, domain, retries - 1)
def check_connection_key_bits(node, domain, bits, retries=3):
assert retries >= 0
assert retries >= 0, f"Did not find expected number of bits ({bits}) in key"
result = node.succeed(
"openssl s_client -CAfile /tmp/ca.crt"
@ -277,12 +277,12 @@ in import ./make-test-python.nix ({ lib, ... }: {
print("Key type:", result)
if bits not in result:
time.sleep(1)
time.sleep(3)
return check_connection_key_bits(node, domain, bits, retries - 1)
def check_stapling(node, domain, retries=3):
assert retries >= 0
assert retries >= 0, "OCSP Stapling check failed"
# Pebble doesn't provide a full OCSP responder, so just check the URL
result = node.succeed(
@ -293,10 +293,23 @@ in import ./make-test-python.nix ({ lib, ... }: {
print("OCSP Responder URL:", result)
if "${caDomain}:4002" not in result.lower():
time.sleep(1)
time.sleep(3)
return check_stapling(node, domain, retries - 1)
def download_ca_certs(node, retries=5):
assert retries >= 0, "Failed to connect to pebble to download root CA certs"
exit_code, _ = node.execute("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
exit_code_2, _ = node.execute(
"curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt"
)
if exit_code + exit_code_2 > 0:
time.sleep(3)
return download_ca_certs(node, retries - 1)
client.start()
dnsserver.start()
@ -313,8 +326,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
acme.wait_for_unit("network-online.target")
acme.wait_for_unit("pebble.service")
client.succeed("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt")
client.succeed("curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt")
download_ca_certs(client)
with subtest("Can request certificate with HTTPS-01 challenge"):
webserver.wait_for_unit("acme-finished-a.example.test.target")
@ -322,6 +334,21 @@ in import ./make-test-python.nix ({ lib, ... }: {
check_issuer(webserver, "a.example.test", "pebble")
check_connection(client, "a.example.test")
with subtest("Certificates and accounts have safe + valid permissions"):
group = "${nodes.webserver.config.security.acme.certs."a.example.test".group}"
webserver.succeed(
f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/a.example.test/* | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
)
webserver.succeed(
f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/.lego/a.example.test/**/* | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
)
webserver.succeed(
f"test $(stat -L -c \"%a %U %G\" /var/lib/acme/a.example.test | tee /dev/stderr | grep '750 acme {group}' | wc -l) -eq 1"
)
webserver.succeed(
f"test $(find /var/lib/acme/accounts -type f -exec stat -L -c \"%a %U %G\" {{}} \\; | tee /dev/stderr | grep -v '600 acme {group}' | wc -l) -eq 0"
)
with subtest("Can generate valid selfsigned certs"):
webserver.succeed("systemctl clean acme-a.example.test.service --what=state")
webserver.succeed("systemctl start acme-selfsigned-a.example.test.service")
@ -375,8 +402,15 @@ in import ./make-test-python.nix ({ lib, ... }: {
assert keyhash_old == keyhash_new
with subtest("Can request certificates for vhost + aliases (apache-httpd)"):
switch_to(webserver, "httpd-aliases")
webserver.wait_for_unit("acme-finished-c.example.test.target")
try:
switch_to(webserver, "httpd-aliases")
webserver.wait_for_unit("acme-finished-c.example.test.target")
except Exception as err:
_, output = webserver.execute(
"cat /var/log/httpd/*.log && ls -al /var/lib/acme/acme-challenge"
)
print(output)
raise err
check_issuer(webserver, "c.example.test", "pebble")
check_connection(client, "c.example.test")
check_connection(client, "d.example.test")

View file

@ -161,12 +161,18 @@ import ./make-test-python.nix ({ pkgs, ... }: {
"docker run --rm ${examples.layered-image.imageName} cat extraCommands",
)
with subtest("Ensure building an image on top of a layered Docker images work"):
with subtest("Ensure images built on top of layered Docker images work"):
docker.succeed(
"docker load --input='${examples.layered-on-top}'",
"docker run --rm ${examples.layered-on-top.imageName}",
)
with subtest("Ensure layered images built on top of layered Docker images work"):
docker.succeed(
"docker load --input='${examples.layered-on-top-layered}'",
"docker run --rm ${examples.layered-on-top-layered.imageName}",
)
def set_of_layers(image_name):
return set(
@ -205,6 +211,16 @@ import ./make-test-python.nix ({ pkgs, ... }: {
assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
with subtest("Ensure environment variables of layered images are correctly inherited"):
docker.succeed(
"docker load --input='${examples.environmentVariablesLayered}'"
)
out = docker.succeed("docker run --rm ${examples.environmentVariablesLayered.imageName} env")
env = out.splitlines()
assert "FROM_PARENT=true" in env, "envvars from the parent should be preserved"
assert "FROM_CHILD=true" in env, "envvars from the child should be preserved"
assert "LAST_LAYER=child" in env, "envvars from the child should take priority"
with subtest("Ensure image with only 2 layers can be loaded"):
docker.succeed(
"docker load --input='${examples.two-layered-image}'"
@ -219,6 +235,18 @@ import ./make-test-python.nix ({ pkgs, ... }: {
"docker run bulk-layer ls /bin/hello",
)
with subtest(
"Ensure the bulk layer with a base image respects the number of maxLayers"
):
docker.succeed(
"docker load --input='${pkgs.dockerTools.examples.layered-bulk-layer}'",
# Ensure the image runs correctly
"docker run layered-bulk-layer ls /bin/hello",
)
# Ensure the image has the correct number of layers
assert len(set_of_layers("layered-bulk-layer")) == 4
with subtest("Ensure correct behavior when no store is needed"):
# This check tests that buildLayeredImage can build images that don't need a store.
docker.succeed(

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "hugo";
version = "0.81.0";
version = "0.82.0";
src = fetchFromGitHub {
owner = "gohugoio";
repo = pname;
rev = "v${version}";
sha256 = "sha256-9YroUxcLixu+MNL37JByCulCHv0WxWGwqBQ/+FGtZLw=";
sha256 = "sha256-D0bwy8LJihlfM+E3oys85yjadjZNfPv5xnq4ekaZPCU=";
};
vendorSha256 = "sha256-5gQyoLirXajkzxKxzcuPnjECL2mJPiHS65lYkyIpKs8=";
vendorSha256 = "sha256-pJBm+yyy1DbH28oVBQA+PHSDtSg3RcgbRlurrwnnEls=";
doCheck = false;

View file

@ -4,11 +4,11 @@ with python3.pkgs;
buildPythonApplication rec {
pname = "catt";
version = "0.12.0";
version = "0.12.1";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-6RUeinHhAvvSz38hHQP5/MXNiY00rCM8k2ONaFYbwPc=";
sha256 = "fef58bf7a8ebaba98399d1077cc4615f53d0196aab2a989df369a66f7111963b";
};
propagatedBuildInputs = [

View file

@ -0,0 +1,26 @@
{ lib, buildKodiAddon, fetchFromGitHub, requests, vfs-libarchive }:
buildKodiAddon rec {
pname = "a4ksubtitles";
namespace = "service.subtitles.a4ksubtitles";
version = "2.3.0";
src = fetchFromGitHub {
owner = "a4k-openproject";
repo = "a4kSubtitles";
rev = "${namespace}/${namespace}-${version}";
sha256 = "0hxvxkbihfyvixmlxf5n4ccn70w0244hhw3hr44rqvx00a0bg1lh";
};
propagatedBuildInputs = [
requests
vfs-libarchive
];
meta = with lib; {
homepage = "https://a4k-openproject.github.io/a4kSubtitles/";
description = "Multi-Source Subtitles Addon";
license = licenses.mit;
maintainers = teams.kodi.members;
};
}

View file

@ -729,6 +729,8 @@ rec {
name,
# Image tag, the Nix's output hash will be used if null
tag ? null,
# Parent image, to append to.
fromImage ? null,
# Files to put on the image (a nix store path or list of paths).
contents ? [],
# Docker config; e.g. what command to run on the container.
@ -791,7 +793,7 @@ rec {
unnecessaryDrvs = [ baseJson overallClosure ];
conf = runCommand "${baseName}-conf.json" {
inherit maxLayers created;
inherit fromImage maxLayers created;
imageName = lib.toLower name;
passthru.imageTag =
if tag != null
@ -821,6 +823,27 @@ rec {
unnecessaryDrvs}
}
# Compute the number of layers that are already used by a potential
# 'fromImage' as well as the customization layer. Ensure that there is
# still at least one layer available to store the image contents.
usedLayers=0
# subtract number of base image layers
if [[ -n "$fromImage" ]]; then
(( usedLayers += $(tar -xOf "$fromImage" manifest.json | jq '.[0].Layers | length') ))
fi
# one layer will be taken up by the customisation layer
(( usedLayers += 1 ))
if ! (( $usedLayers < $maxLayers )); then
echo >&2 "Error: usedLayers $usedLayers layers to store 'fromImage' and" \
"'extraCommands', but only maxLayers=$maxLayers were" \
"allowed. At least 1 layer is required to store contents."
exit 1
fi
availableLayers=$(( maxLayers - usedLayers ))
# Create $maxLayers worth of Docker Layers, one layer per store path
# unless there are more paths than $maxLayers. In that case, create
# $maxLayers-1 for the most popular layers, and smush the remainaing
@ -838,18 +861,20 @@ rec {
| (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ]
| map(select(length > 0))
' \
--argjson maxLayers "$(( maxLayers - 1 ))" # one layer will be taken up by the customisation layer
--argjson maxLayers "$availableLayers"
)"
cat ${baseJson} | jq '
. + {
"store_dir": $store_dir,
"from_image": $from_image,
"store_layers": $store_layers,
"customisation_layer", $customisation_layer,
"repo_tag": $repo_tag,
"created": $created
}
' --arg store_dir "${storeDir}" \
--argjson from_image ${if fromImage == null then "null" else "'\"${fromImage}\"'"} \
--argjson store_layers "$store_layers" \
--arg customisation_layer ${customisationLayer} \
--arg repo_tag "$imageName:$imageTag" \

View file

@ -188,7 +188,25 @@ rec {
};
};
# 12. example of running something as root on top of a parent image
# 12 Create a layered image on top of a layered image
layered-on-top-layered = pkgs.dockerTools.buildLayeredImage {
name = "layered-on-top-layered";
tag = "latest";
fromImage = layered-image;
extraCommands = ''
mkdir ./example-output
chmod 777 ./example-output
'';
config = {
Env = [ "PATH=${pkgs.coreutils}/bin/" ];
WorkingDir = "/example-output";
Cmd = [
"${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo"
];
};
};
# 13. example of running something as root on top of a parent image
# Regression test related to PR #52109
runAsRootParentImage = buildImage {
name = "runAsRootParentImage";
@ -197,7 +215,7 @@ rec {
fromImage = bash;
};
# 13. example of 3 layers images This image is used to verify the
# 14. example of 3 layers images This image is used to verify the
# order of layers is correct.
# It allows to validate
# - the layer of parent are below
@ -235,23 +253,23 @@ rec {
'';
};
# 14. Environment variable inheritance.
# 15. Environment variable inheritance.
# Child image should inherit parents environment variables,
# optionally overriding them.
environmentVariables = let
parent = pkgs.dockerTools.buildImage {
name = "parent";
tag = "latest";
config = {
Env = [
"FROM_PARENT=true"
"LAST_LAYER=parent"
];
};
environmentVariablesParent = pkgs.dockerTools.buildImage {
name = "parent";
tag = "latest";
config = {
Env = [
"FROM_PARENT=true"
"LAST_LAYER=parent"
];
};
in pkgs.dockerTools.buildImage {
};
environmentVariables = pkgs.dockerTools.buildImage {
name = "child";
fromImage = parent;
fromImage = environmentVariablesParent;
tag = "latest";
contents = [ pkgs.coreutils ];
config = {
@ -262,14 +280,27 @@ rec {
};
};
# 15. Create another layered image, for comparing layers with image 10.
environmentVariablesLayered = pkgs.dockerTools.buildLayeredImage {
name = "child";
fromImage = environmentVariablesParent;
tag = "latest";
contents = [ pkgs.coreutils ];
config = {
Env = [
"FROM_CHILD=true"
"LAST_LAYER=child"
];
};
};
# 16. Create another layered image, for comparing layers with image 10.
another-layered-image = pkgs.dockerTools.buildLayeredImage {
name = "another-layered-image";
tag = "latest";
config.Cmd = [ "${pkgs.hello}/bin/hello" ];
};
# 16. Create a layered image with only 2 layers
# 17. Create a layered image with only 2 layers
two-layered-image = pkgs.dockerTools.buildLayeredImage {
name = "two-layered-image";
tag = "latest";
@ -278,7 +309,7 @@ rec {
maxLayers = 2;
};
# 17. Create a layered image with more packages than max layers.
# 18. Create a layered image with more packages than max layers.
# coreutils and hello are part of the same layer
bulk-layer = pkgs.dockerTools.buildLayeredImage {
name = "bulk-layer";
@ -289,7 +320,19 @@ rec {
maxLayers = 2;
};
# 18. Create a "layered" image without nix store layers. This is not
# 19. Create a layered image with a base image and more packages than max
# layers. coreutils and hello are part of the same layer
layered-bulk-layer = pkgs.dockerTools.buildLayeredImage {
name = "layered-bulk-layer";
tag = "latest";
fromImage = two-layered-image;
contents = with pkgs; [
coreutils hello
];
maxLayers = 4;
};
# 20. Create a "layered" image without nix store layers. This is not
# recommended, but can be useful for base images in rare cases.
no-store-paths = pkgs.dockerTools.buildLayeredImage {
name = "no-store-paths";
@ -321,7 +364,7 @@ rec {
};
};
# 19. Support files in the store on buildLayeredImage
# 21. Support files in the store on buildLayeredImage
# See: https://github.com/NixOS/nixpkgs/pull/91084#issuecomment-653496223
filesInStore = pkgs.dockerTools.buildLayeredImageWithNixDb {
name = "file-in-store";
@ -341,7 +384,7 @@ rec {
};
};
# 20. Ensure that setting created to now results in a date which
# 22. Ensure that setting created to now results in a date which
# isn't the epoch + 1 for layered images.
unstableDateLayered = pkgs.dockerTools.buildLayeredImage {
name = "unstable-date-layered";

View file

@ -33,6 +33,7 @@ function does all this.
import io
import os
import re
import sys
import json
import hashlib
@ -126,10 +127,85 @@ class ExtractChecksum:
return (self._digest.hexdigest(), self._size)
FromImage = namedtuple("FromImage", ["tar", "manifest_json", "image_json"])
# Some metadata for a layer
LayerInfo = namedtuple("LayerInfo", ["size", "checksum", "path", "paths"])
def load_from_image(from_image_str):
"""
Loads the given base image, if any.
from_image_str: Path to the base image archive.
Returns: A 'FromImage' object with references to the loaded base image,
or 'None' if no base image was provided.
"""
if from_image_str is None:
return None
base_tar = tarfile.open(from_image_str)
manifest_json_tarinfo = base_tar.getmember("manifest.json")
with base_tar.extractfile(manifest_json_tarinfo) as f:
manifest_json = json.load(f)
image_json_tarinfo = base_tar.getmember(manifest_json[0]["Config"])
with base_tar.extractfile(image_json_tarinfo) as f:
image_json = json.load(f)
return FromImage(base_tar, manifest_json, image_json)
def add_base_layers(tar, from_image):
"""
Adds the layers from the given base image to the final image.
tar: 'tarfile.TarFile' object for new layers to be added to.
from_image: 'FromImage' object with references to the loaded base image.
"""
if from_image is None:
print("No 'fromImage' provided", file=sys.stderr)
return []
layers = from_image.manifest_json[0]["Layers"]
checksums = from_image.image_json["rootfs"]["diff_ids"]
layers_checksums = zip(layers, checksums)
for num, (layer, checksum) in enumerate(layers_checksums, start=1):
layer_tarinfo = from_image.tar.getmember(layer)
checksum = re.sub(r"^sha256:", "", checksum)
tar.addfile(layer_tarinfo, from_image.tar.extractfile(layer_tarinfo))
path = layer_tarinfo.path
size = layer_tarinfo.size
print("Adding base layer", num, "from", path, file=sys.stderr)
yield LayerInfo(size=size, checksum=checksum, path=path, paths=[path])
from_image.tar.close()
def overlay_base_config(from_image, final_config):
"""
Overlays the final image 'config' JSON on top of selected defaults from the
base image 'config' JSON.
from_image: 'FromImage' object with references to the loaded base image.
final_config: 'dict' object of the final image 'config' JSON.
"""
if from_image is None:
return final_config
base_config = from_image.image_json["config"]
# Preserve environment from base image
final_env = base_config.get("Env", []) + final_config.get("Env", [])
if final_env:
final_config["Env"] = final_env
return final_config
def add_layer_dir(tar, paths, store_dir, mtime):
"""
Appends given store paths to a TarFile object as a new layer.
@ -248,17 +324,21 @@ def main():
mtime = int(created.timestamp())
store_dir = conf["store_dir"]
from_image = load_from_image(conf["from_image"])
with tarfile.open(mode="w|", fileobj=sys.stdout.buffer) as tar:
layers = []
for num, store_layer in enumerate(conf["store_layers"]):
print(
"Creating layer", num,
"from paths:", store_layer,
file=sys.stderr)
layers.extend(add_base_layers(tar, from_image))
start = len(layers) + 1
for num, store_layer in enumerate(conf["store_layers"], start=start):
print("Creating layer", num, "from paths:", store_layer,
file=sys.stderr)
info = add_layer_dir(tar, store_layer, store_dir, mtime=mtime)
layers.append(info)
print("Creating the customisation layer...", file=sys.stderr)
print("Creating layer", len(layers) + 1, "with customisation...",
file=sys.stderr)
layers.append(
add_customisation_layer(
tar,
@ -273,7 +353,7 @@ def main():
"created": datetime.isoformat(created),
"architecture": conf["architecture"],
"os": "linux",
"config": conf["config"],
"config": overlay_base_config(from_image, conf["config"]),
"rootfs": {
"diff_ids": [f"sha256:{layer.checksum}" for layer in layers],
"type": "layers",

View file

@ -53,9 +53,10 @@ mkDerivation {
./0002-absolute-wallpaper-install-dir.patch
];
# QT_INSTALL_BINS refers to qtbase, and qdbus is in qttools
postPatch = ''
substituteInPlace wallpapers/image/wallpaper.knsrc.cmake \
--replace '@QtBinariesDir@/qdbus' ${getBin qttools}/bin/qdbus
substituteInPlace CMakeLists.txt \
--replace 'query_qmake(QtBinariesDir QT_INSTALL_BINS)' 'set(QtBinariesDir "${lib.getBin qttools}/bin")'
'';
NIX_CFLAGS_COMPILE = [

View file

@ -1,17 +1,17 @@
{ lib, stdenv
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, pkg-config
, argp-standalone
, curl
, meson
, ninja
, pkg-config
, zstd
, curl
, argp-standalone
}:
stdenv.mkDerivation rec {
pname = "zchunk";
version = "1.1.8";
version = "1.1.9";
outputs = [ "out" "lib" "dev" ];
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
owner = "zchunk";
repo = pname;
rev = version;
sha256 = "0q1jafxh5nqgn2w5ciljkh8h46xma0qia8a5rj9m0pxixcacqj6q";
hash = "sha256-MqnHtqOjLl6R5GZ4f2UX1iLoO9FUT2IfZlSN58wW8JA=";
};
nativeBuildInputs = [
@ -29,25 +29,23 @@ stdenv.mkDerivation rec {
];
buildInputs = [
zstd
curl
zstd
] ++ lib.optional stdenv.isDarwin argp-standalone;
# Darwin needs a patch for argp-standalone usage and differing endian.h location on macOS
# https://github.com/zchunk/zchunk/pull/35
patches = [
(fetchpatch {
name = "darwin-support.patch";
url = "https://github.com/zchunk/zchunk/commit/f7db2ac0a95028a7f82ecb89862426bf53a69232.patch";
sha256 = "0cm84gyii4ly6nsmagk15g9kbfa13rw395nqk3fdcwm0dpixlkh4";
})
];
meta = with lib; {
description = "File format designed for highly efficient deltas while maintaining good compression";
homepage = "https://github.com/zchunk/zchunk";
description = "File format designed for highly efficient deltas while maintaining good compression";
longDescription = ''
zchunk is a compressed file format that splits the file into independent
chunks. This allows you to only download changed chunks when downloading a
new version of the file, and also makes zchunk files efficient over rsync.
zchunk files are protected with strong checksums to verify that the file
you downloaded is, in fact, the file you wanted.
'';
license = licenses.bsd2;
maintainers = with maintainers; [];
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
};
}

View file

@ -1,80 +1,64 @@
{ lib, stdenv
{ lib
, stdenv
, fetchFromGitHub
, cmake
, perl
, pkg-config
, fetchFromGitHub
, fetchpatch
, zip
, unzip
, python3
, xmlto
, zip
, zlib
}:
stdenv.mkDerivation rec {
pname = "zziplib";
version = "0.13.71";
version = "0.13.72";
src = fetchFromGitHub {
owner = "gdraheim";
repo = "zziplib";
repo = pname;
rev = "v${version}";
sha256 = "P+7D57sc2oIABhk3k96aRILpGnsND5SLXHh2lqr9O4E=";
hash = "sha256-Ht3fBgdrTm4mCi5uhgQPNtpGzADoRVOpSuGPsIS6y0Q=";
};
patches = [
# Install man pages
(fetchpatch {
url = "https://github.com/gdraheim/zziplib/commit/5583ccc7a247ee27556ede344e93d3ac1dc72e9b.patch";
sha256 = "wVExEZN8Ml1/3GicB0ZYsLVS3KJ8BSz8i4Gu46naz1Y=";
excludes = [ "GNUmakefile" ];
})
# Fix man page formatting
(fetchpatch {
url = "https://github.com/gdraheim/zziplib/commit/22ed64f13dc239f86664c60496261f544bce1088.patch";
sha256 = "ScFVWLc4LQPqkcHn9HK/VkLula4b5HzuYl0b5vi4Ikc=";
})
];
nativeBuildInputs = [
cmake
perl
pkg-config
zip
python3
xmlto
zip
];
buildInputs = [
zlib
];
checkInputs = [
unzip
# test/zziptests.py requires network access
# (https://github.com/gdraheim/zziplib/issues/24)
cmakeFlags = [
"-DZZIP_TESTCVE=OFF"
"-DBUILD_SHARED_LIBS=True"
"-DBUILD_STATIC_LIBS=False"
"-DBUILD_TESTS=OFF"
"-DMSVC_STATIC_RUNTIME=OFF"
"-DZZIPSDL=OFF"
"-DZZIPTEST=OFF"
"-DZZIPWRAP=OFF"
"-DBUILDTESTS=OFF"
];
# tests are broken (https://github.com/gdraheim/zziplib/issues/20),
# and test/zziptests.py requires network access
# (https://github.com/gdraheim/zziplib/issues/24)
doCheck = false;
checkTarget = "check";
meta = with lib; {
homepage = "https://github.com/gdraheim/zziplib";
description = "Library to extract data from files archived in a zip file";
longDescription = ''
The zziplib library is intentionally lightweight, it offers the ability
to easily extract data from files archived in a single zip
file. Applications can bundle files into a single zip archive and
access them. The implementation is based only on the (free) subset of
compression with the zlib algorithm which is actually used by the
zip/unzip tools.
The zziplib library is intentionally lightweight, it offers the ability to
easily extract data from files archived in a single zip file.
Applications can bundle files into a single zip archive and access them.
The implementation is based only on the (free) subset of compression with
the zlib algorithm which is actually used by the zip/unzip tools.
'';
license = with licenses; [ lgpl2Plus mpl11 ];
homepage = "http://zziplib.sourceforge.net/";
maintainers = [ ];
maintainers = with maintainers; [ AndersonTorres ];
platforms = python3.meta.platforms;
};
}

View file

@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "bitarray";
version = "1.7.1";
version = "1.8.0";
src = fetchPypi {
inherit pname version;
sha256 = "e4de977d708b7024760266d827b8285e4405dce4293f25508c4556970139018a";
sha256 = "fe4444d92b17073bf1f9f24e3015a0e5bb70a645c47df93ef8a9ce8be33fcbad";
};
pythonImportsCheck = [ "bitarray" ];

View file

@ -1,19 +1,36 @@
{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }:
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, fetchpatch
, isPy27
, colorama
, pytestCheckHook
, pythonAtLeast
}:
buildPythonPackage rec {
pname = "loguru";
version = "0.5.3";
disabled = isPy27;
# python3.9 compatibility should be in the next release after 0.5.3
disabled = isPy27 || pythonAtLeast "3.9";
src = fetchPypi {
inherit pname version;
sha256 = "b28e72ac7a98be3d28ad28570299a393dfcd32e5e3f6a353dec94675767b6319";
};
patches = [
# Fixes tests with pytest>=6.2.2. Will be part of the next release after 0.5.3
(fetchpatch {
url = "https://github.com/Delgan/loguru/commit/31cf758ee9d22dbfa125f38153782fe20ac9dce5.patch";
sha256 = "1lzbs8akg1s7s6xjl3samf4c4bpssqvwg5fn3mwlm4ysr7jd5y67";
})
];
checkInputs = [ pytestCheckHook colorama ];
pytestFlagsArray = lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ];
disabledTestPaths = lib.optionals stdenv.isDarwin [ "tests/test_multiprocessing.py" ];
disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
++ lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
@ -21,6 +38,6 @@ buildPythonPackage rec {
homepage = "https://github.com/Delgan/loguru";
description = "Python logging made (stupidly) simple";
license = licenses.mit;
maintainers = with maintainers; [ jakewaksbaum ];
maintainers = with maintainers; [ jakewaksbaum rmcgibbo ];
};
}

View file

@ -7,38 +7,32 @@
, packaging
, pygments
, mock
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "restview";
version = "2.9.1";
version = "2.9.2";
src = fetchPypi {
inherit pname version;
sha256 = "de87c84f19526bd4a76505f6d40b51b7bb03ca43b6067c93f82f1c7237ac9e84";
sha256 = "1p1jgdvc04ws8kga3r0vrq3m0b52qw3clwyydl96a13wb3mrf03r";
};
propagatedBuildInputs = [ docutils readme_renderer packaging pygments ];
checkInputs = [ mock ];
patches = [
# fix tests after readme_renderer update
# TODO remove on next update
(fetchpatch {
url = "https://github.com/mgedmin/restview/commit/541743ded13ae55dea4c437046984a5f13d06e8b.patch";
sha256 = "031b1dlqx346bz7afpc011lslnq771lnxb6iy1l2285pph534bci";
url = "https://github.com/mgedmin/restview/commit/a1ded30a87c65f3ce59a18497a7fc5099317c2be.patch";
sha256 = "1ax7pih456a3nbj8qrrq7hqigbyag4ihzpn6bm0z4y74d0r3v8a5";
})
];
postPatch = ''
# dict order breaking tests
sed -i 's@<a href="http://www.example.com" rel="nofollow">@...@' src/restview/tests.py
'';
propagatedBuildInputs = [ docutils readme_renderer packaging pygments ];
checkInputs = [ mock pytestCheckHook ];
meta = {
description = "ReStructuredText viewer";
homepage = "https://mg.pov.lt/restview/";
license = lib.licenses.gpl2;
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ koral ];
};
}

View file

@ -12,7 +12,7 @@
stdenv.mkDerivation rec {
pname = "codeql";
version = "2.4.5";
version = "2.4.6";
dontConfigure = true;
dontBuild = true;
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
src = fetchzip {
url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
sha256 = "sha256-FM7fcjbZilp1spy0HxDhEAzs7Qe2r/HObKB80o4mSiw=";
sha256 = "sha256-lJ/N9oduWGZAc70wl7ATBd1mnaUkeTXAW/RfqbAthsI=";
};
nativeBuildInputs = [

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "kubie";
version = "0.12.1";
version = "0.13.4";
src = fetchFromGitHub {
rev = "v${version}";
owner = "sbstp";
repo = "kubie";
sha256 = "sha256-y4/azFr2fngmUxQw3c2xAhAppYHeD6Bz7IvZ6GTdsEQ=";
sha256 = "sha256-ZD63Xtnw7qzTrzFxzzZ37N177/PnRaMEzBbhz7h/zCY=";
};
cargoSha256 = "sha256-/Vg3qojBWN2tp8QaKmHrzy3cDWlkT6067Wprcjlu31U=";
cargoSha256 = "sha256-c6veaasuwRtaO8TwHS0tNxjbBfekQOa52I9INcE1Jn0=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, cmake, flex, bison }:
let
version = "2.5.4";
version = "2.5.5";
in
stdenv.mkDerivation {
pname = "minizinc";
@ -12,7 +12,7 @@ stdenv.mkDerivation {
owner = "MiniZinc";
repo = "libminizinc";
rev = version;
sha256 = "sha256-/vJyh2WdESimJTCASsg6xjVzG2EkL4V87B+xvIUBcMM=";
sha256 = "sha256-9z2E6KqOys9UUXlXWB4eDhg34kS3PhUB1Dd1F6iGYoE=";
};
meta = with lib; {

View file

@ -65,12 +65,12 @@ let
ale = buildVimPluginFrom2Nix {
pname = "ale";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "dense-analysis";
repo = "ale";
rev = "f7852dbd0a063d6d82ee17a5057fea53cb79b21d";
sha256 = "16cslwkc8kcr2z0crchl9w5p5vsbzfwpfa103wysyvq9d0q309xk";
rev = "eb0ebe622102cc6da3d7e943a3b739db7b6ed216";
sha256 = "10dp9xq8k0svr7z117a3bha4rvlgsx1j8qqdfnza94rbh8zy096k";
};
meta.homepage = "https://github.com/dense-analysis/ale/";
};
@ -389,12 +389,12 @@ let
chadtree = buildVimPluginFrom2Nix {
pname = "chadtree";
version = "2021-03-22";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "chadtree";
rev = "8f7238502c742fe098e0d681c3597452aa053b89";
sha256 = "1cppnzf1slzxf3kb24pg18r2izdpd6mylrhc49rla083mr7hqx15";
rev = "18e39f1550980bc21761018e191742e66d86854d";
sha256 = "12grx41z5qf7p4ls56ww8rai0nfcl01v8iy1vayx463lb7dsvlxm";
};
meta.homepage = "https://github.com/ms-jpq/chadtree/";
};
@ -545,12 +545,12 @@ let
coc-nvim = buildVimPluginFrom2Nix {
pname = "coc-nvim";
version = "2021-03-22";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "neoclide";
repo = "coc.nvim";
rev = "3b3c5f88bcb25c3d68351f417fa5e8425a3a3142";
sha256 = "1fkgyb0a5wirndk99d9ajdvxaiipgnv3r0cmvzldvy6ps5ljxabm";
rev = "e916ef84b95897a713773642bc768a88e4b8e449";
sha256 = "0svmsacpa6wvkdcdb4jb7lc7zdc31r9mqdvznskhgwzmjlhnbq8d";
};
meta.homepage = "https://github.com/neoclide/coc.nvim/";
};
@ -942,12 +942,12 @@ let
denite-nvim = buildVimPluginFrom2Nix {
pname = "denite-nvim";
version = "2021-03-18";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "Shougo";
repo = "denite.nvim";
rev = "8c44de41ec46c44f84dd70907a5763112df2eacb";
sha256 = "1y235ap3hchkf3hc85frcjl5kwr56lz3vw12qzhhzhrl2k7k5ziw";
rev = "b0cc470c63b0ed3b6497f659588b004ed05872ee";
sha256 = "15ngimlnprp73fy3sa9vz39avq75mcqhr90ygj3drjj1d33vk3f3";
};
meta.homepage = "https://github.com/Shougo/denite.nvim/";
};
@ -1370,8 +1370,8 @@ let
src = fetchFromGitHub {
owner = "fenetikm";
repo = "falcon";
rev = "2ba0036e19adbefaf0beffe545e349964a68cc0a";
sha256 = "0pg3i1dvbjv746szki36yszz6bd82pgzvfyr3ayxf7lih4pjbxmj";
rev = "f6be01e8642dc8ccc7ed1f37b23f4b0dfa2c6f8c";
sha256 = "1w4ld5dvy0jxgjvp6yf8qibc4x82hn490vfg0hpln67nr6mhq1iw";
};
meta.homepage = "https://github.com/fenetikm/falcon/";
};
@ -1643,12 +1643,12 @@ let
gitsigns-nvim = buildVimPluginFrom2Nix {
pname = "gitsigns-nvim";
version = "2021-03-17";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "lewis6991";
repo = "gitsigns.nvim";
rev = "18d0a4bab12193460e6443d02d22218b5ce05a35";
sha256 = "0qizdphmady0baz5wgi92vdy9wbz1npgahsx0kmpx8c4vfvcdv10";
rev = "6bc3dba1a73466282215491d9ede85261199b7f2";
sha256 = "0qfpadjv4qd92kgjvwga285404wzzy0q4vylbdfwngf9s29bpj40";
};
meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
};
@ -1811,12 +1811,12 @@ let
hop-nvim = buildVimPluginFrom2Nix {
pname = "hop-nvim";
version = "2021-03-18";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "phaazon";
repo = "hop.nvim";
rev = "8d1a199236590a6e6667a45e0084d26aaeb32fb6";
sha256 = "1skya8iqkf9bblpdf1vvkl73i9rqm0lqd40114a8ppk8vbqjp53x";
rev = "4c6d776005eed4ebc66bf3af8a336d004ae238a3";
sha256 = "17dcvi3jlwzm11lykjz3dh2ckbbmdp221y0d7wl0xq12s2g1v4pg";
};
meta.homepage = "https://github.com/phaazon/hop.nvim/";
};
@ -2340,12 +2340,12 @@ let
lualine-nvim = buildVimPluginFrom2Nix {
pname = "lualine-nvim";
version = "2021-03-19";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "hoob3rt";
repo = "lualine.nvim";
rev = "f80d5adb415812484c1b86692846feb3a8ce7e46";
sha256 = "0gp0nw173ryn6mn9z98jvrk9y7fyhm08r90qc1zv7z85lngd9226";
rev = "7bf5076ece80cde0a48dac403799a89c8caefd1d";
sha256 = "0zc1s75dqxb1dxma59mlc88lf74i0mpbz15khcfv1pfp5cr3hhih";
};
meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
};
@ -2412,12 +2412,12 @@ let
minimap-vim = buildVimPluginFrom2Nix {
pname = "minimap-vim";
version = "2021-03-20";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "wfxr";
repo = "minimap.vim";
rev = "adc19481ceececc53b4a6e3157bae7ebf7b9bb66";
sha256 = "14hjfnqh9wvbhgf55arjhwbcsm1d91x9mhglz2qdmln6nr66ayz4";
rev = "31e22971ba5f5f3e5955fa8e2247b6cd22c3f7b1";
sha256 = "19hg4nnwdr6mj9wyrcapg91vm2bzvcsfbvjkirdsxp2v3ca83w2i";
};
meta.homepage = "https://github.com/wfxr/minimap.vim/";
};
@ -2724,12 +2724,12 @@ let
neogit = buildVimPluginFrom2Nix {
pname = "neogit";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "TimUntersberger";
repo = "neogit";
rev = "0b969a8f6a7d38aed32ca7bddfeb19f80a2b1a29";
sha256 = "1x9q4kl5595dq7ydpv21apbff5pr15diyww8cd600ibjwybmlm8v";
rev = "537cc6e1757c41bd75717ebd4421c27b7ebe9205";
sha256 = "0s0z2qmsnqj5mgsqb6x4cwh507sc3y4ahqvzc3bijd224xff97b1";
};
meta.homepage = "https://github.com/TimUntersberger/neogit/";
};
@ -3022,6 +3022,18 @@ let
meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
};
nvim-bufferline-lua = buildVimPluginFrom2Nix {
pname = "nvim-bufferline-lua";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "akinsho";
repo = "nvim-bufferline.lua";
rev = "437aa7cacc8eb6b7840e298f55666f4a6dea20e7";
sha256 = "15df8l8mx9cbm5mirn511d965nlxh5gj17d0b6rffxjlzc5ciai3";
};
meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/";
};
nvim-cm-racer = buildVimPluginFrom2Nix {
pname = "nvim-cm-racer";
version = "2017-07-27";
@ -3036,12 +3048,12 @@ let
nvim-compe = buildVimPluginFrom2Nix {
pname = "nvim-compe";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "hrsh7th";
repo = "nvim-compe";
rev = "08dbc5f47d2be27cbc92c9684ec876b1eb778a4f";
sha256 = "09fnzidcmknkrmls3wmjfa6drp5i8hmcbfs3hrvvp8jywgfyrpr3";
rev = "777b98390da6638583b0e7ba2316aa1257462cad";
sha256 = "1ggh7038kzc61ihjbf8zvq1vxgjg9hpwqvjj979mf3qzrznrd89i";
};
meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
};
@ -3060,12 +3072,12 @@ let
nvim-dap = buildVimPluginFrom2Nix {
pname = "nvim-dap";
version = "2021-03-15";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-dap";
rev = "492849bf57425d005c4a13ee2a5d6f3c8207cc02";
sha256 = "1jspnzkb9371jfkppj77f95zccbnyw6gn0i4jlqpbci2p0ppp0gz";
rev = "f5180887cbf0505f64e43516072e74b74652a5f9";
sha256 = "1cy36pxj6kfggjds8bb13ggj91c4vq3b37i78pjyh8jynyfd0va7";
};
meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
};
@ -3132,12 +3144,12 @@ let
nvim-jdtls = buildVimPluginFrom2Nix {
pname = "nvim-jdtls";
version = "2021-03-20";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-jdtls";
rev = "c4199f88d5f6bf269b91ae5d775a082aef05f9bd";
sha256 = "18cnhhybhzw20l6v4rxzk5a5jcgv8l7jhbmzl529rd9jdhxqikfa";
rev = "fede58fdb67c451697bd1028bf084d4f0fbfc38b";
sha256 = "052rvsl0prhvbic350x1q5ma5c8km8sf3y92gng4sc2wj37fs2k8";
};
meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
};
@ -3156,12 +3168,12 @@ let
nvim-lspconfig = buildVimPluginFrom2Nix {
pname = "nvim-lspconfig";
version = "2021-03-20";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
rev = "00e9a7450eac88121768df21fde7d21f43de7529";
sha256 = "0qqr6zz4a1i13hmj4hvcx08m5ipy28iz3hlaa239jf5yx9rw0y1h";
rev = "487ea4a2393fd6d3fc1bf5d198e4f4583c5082ac";
sha256 = "1dr0my4y7qvy7d7ypkz4d0d1p223092vsn5wfpj4qv84k84ilpp8";
};
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
};
@ -3204,12 +3216,12 @@ let
nvim-scrollview = buildVimPluginFrom2Nix {
pname = "nvim-scrollview";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "dstein64";
repo = "nvim-scrollview";
rev = "693b93d273c4c0c0670d364cab9f3ab880d2f306";
sha256 = "04dsjc6f8ag0vfr4sa6nmpfqimx48cvadwv7dd3m9g2mwivkfgyi";
rev = "902f24503ab7a754be2a1c483de1cd3428bd85ec";
sha256 = "0b31lpzdx1z88fm60p7d5gs442h4apm2n9h098n4j0ghcs5ppvnf";
};
meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
};
@ -3228,24 +3240,24 @@ let
nvim-tree-lua = buildVimPluginFrom2Nix {
pname = "nvim-tree-lua";
version = "2021-03-16";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "kyazdani42";
repo = "nvim-tree.lua";
rev = "f7ad4ce5f4c93c91aca00f0d9f10316c98471798";
sha256 = "0l7ixschycw3lvg488bxgbbzsba59k0zkm8yrjdh63dp2nk2p2kj";
rev = "e0b9882a8a8ecce8b58076091217d3643f215da3";
sha256 = "1i8mqa45gg0lagcd4q5qwp97zlynkdw42ajw0wh8r92i5bs9crd8";
};
meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
};
nvim-treesitter = buildVimPluginFrom2Nix {
pname = "nvim-treesitter";
version = "2021-03-22";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter";
rev = "600509aad6c3e38c45a0f67802ede5d2204e0250";
sha256 = "0j92ayfrlapgh09mz9rxfjzxag2kjmljd2qkbv54jl5dzr6p0f3q";
rev = "09045354c0245ca866104c526bc57c2a06d7f381";
sha256 = "182jvkwixmv1i39npvxkj0nr19cazqkab1kbprx7282dad68x30b";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
};
@ -3288,24 +3300,24 @@ let
nvim-ts-rainbow = buildVimPluginFrom2Nix {
pname = "nvim-ts-rainbow";
version = "2021-03-22";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "p00f";
repo = "nvim-ts-rainbow";
rev = "4c9043e117bfa5ea8e4d5b04b60b2e29c0548e14";
sha256 = "1ada87qkka1bsjdy52xqcnj5rmd9fl8q2v0km1pml3lcjyi0zdf5";
rev = "f61093c56a53c6790b142f76bdfaa476f497b93f";
sha256 = "1wzg1y0gksprdxhww0vcswfa0imkkrnhczljhlb94lrrmknv3nxv";
};
meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
};
nvim-web-devicons = buildVimPluginFrom2Nix {
pname = "nvim-web-devicons";
version = "2021-03-10";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "kyazdani42";
repo = "nvim-web-devicons";
rev = "1fb0962b8c4a217eec8166b03d683aa070115ed7";
sha256 = "1rqswcjqrg6ckp7vyzqlncfabkggnhjvp3b0sq7y2g333z925sjm";
rev = "6e32d113d848c76ddbcc824038244657f170a97a";
sha256 = "02m8bsq7172sm9vkq3shh87xv4c3jxkgvhwhd3vv0na86kl9sqd6";
};
meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
};
@ -3420,12 +3432,12 @@ let
packer-nvim = buildVimPluginFrom2Nix {
pname = "packer-nvim";
version = "2021-03-15";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "wbthomason";
repo = "packer.nvim";
rev = "6d7be3232ed0dcbbd040bf92ba70b997fe4fd840";
sha256 = "0k1ydkplqpizyqn56bdwhpsdib384ikv2lqfmk8j11r7p6m0xvir";
rev = "77cd1d1e0cfcb582b210d75745594f4fb60d3418";
sha256 = "0yhdxh6768z4dalpmzhhypnjfx3mjx7d6r722lv9g15xg7i1lg3q";
};
meta.homepage = "https://github.com/wbthomason/packer.nvim/";
};
@ -3504,12 +3516,12 @@ let
playground = buildVimPluginFrom2Nix {
pname = "playground";
version = "2021-02-17";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "playground";
rev = "444eab728ecaf337629a45a733535e94a3efc04a";
sha256 = "0r10fmk90wdc9hj3kdfkb93vvw1kdxwkl20f9zs3rfs5vs7p9i97";
rev = "d96cef521d22afd1a409449a890f20f50b436ee1";
sha256 = "1j1iqzi9q8fnl02hvazl8szg84iz8dqy0n52ngh1lvl78s9qa393";
};
meta.homepage = "https://github.com/nvim-treesitter/playground/";
};
@ -3985,12 +3997,12 @@ let
sonokai = buildVimPluginFrom2Nix {
pname = "sonokai";
version = "2021-02-28";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "sainnhe";
repo = "sonokai";
rev = "86298232f4f5ab418d5d9d18a336d7ab8b167b68";
sha256 = "060k664gm4857nfmxaj0v6sz50mb3y9v8489jnv1bhqplzqf8gmy";
rev = "78f1b14ad18b043eb888a173f4c431dbf79462d8";
sha256 = "0spnpzr874ad9jpawcgydfm242wq55ychcky14f1qa09svsrdiv0";
};
meta.homepage = "https://github.com/sainnhe/sonokai/";
};
@ -4238,12 +4250,12 @@ let
tagbar = buildVimPluginFrom2Nix {
pname = "tagbar";
version = "2021-02-18";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "preservim";
repo = "tagbar";
rev = "51ff7a05404e2f5c83799dd6c38134ed4aaca85c";
sha256 = "0i7qzn3vlvjjd5qvf230r7aaqz84rn30zkn643fdvpni7pxfywdv";
rev = "f6012cb65da4bda46b0779a36840df36ad01483e";
sha256 = "08vb3ffm1f47q5gxyqmmfv75x12001qpkqml7v612wnnfpclcqf5";
};
meta.homepage = "https://github.com/preservim/tagbar/";
};
@ -5248,12 +5260,12 @@ let
vim-commentary = buildVimPluginFrom2Nix {
pname = "vim-commentary";
version = "2019-11-18";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-commentary";
rev = "f8238d70f873969fb41bf6a6b07ca63a4c0b82b1";
sha256 = "09d81q9na7pvvrmxxqy09ffdzsx5v5dikinb704c9wm4ys2bidr9";
rev = "349340debb34f6302931f0eb7139b2c11dfdf427";
sha256 = "01lpfcn2hmvxddcf97f4qx5vksxj1hwrxb0c8ri59z9lb9z2hgjd";
};
meta.homepage = "https://github.com/tpope/vim-commentary/";
};
@ -5764,12 +5776,12 @@ let
vim-floaterm = buildVimPluginFrom2Nix {
pname = "vim-floaterm";
version = "2021-03-17";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "voldikss";
repo = "vim-floaterm";
rev = "2d9107b1e1ceb3d4f118647f2cd5f9165172ccf9";
sha256 = "1ja58d2x8a5af7vhvbjp8x7l4bzbvndr2nd97p115q89l2zy6ayp";
rev = "a1403fd295edeffdc2e387f9308dc4392f057e68";
sha256 = "1dc1169lwz1wjgqp27g8wa37yqsvc4fgmrcprc3ys4r3s9m6y5m6";
};
meta.homepage = "https://github.com/voldikss/vim-floaterm/";
};
@ -5824,12 +5836,12 @@ let
vim-fugitive = buildVimPluginFrom2Nix {
pname = "vim-fugitive";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-fugitive";
rev = "58d2b25836f420cf2fe20cc0b6f988165ae33782";
sha256 = "0550dq20axl1qj6rasws2hsar7x4kjx9fspqzmkisv4wzrxr1kp5";
rev = "857496c32f02ebe74e821bdd2240aafc1455f8ea";
sha256 = "11kyccfmcm7jpvaidd84wdn5vypg9lcdpkpmy2hy7k23gg7hzpza";
};
meta.homepage = "https://github.com/tpope/vim-fugitive/";
};
@ -5944,12 +5956,12 @@ let
vim-go = buildVimPluginFrom2Nix {
pname = "vim-go";
version = "2021-03-21";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "fatih";
repo = "vim-go";
rev = "a60ff48be1d57991866320886569d012cdfb9e6f";
sha256 = "1w3cbvdl08vf7d9w4d3vaw3l4ccvzvgfkamk7qxanmcg2vd0k1rg";
rev = "00c5f2dad170131c0c850dbf331d63ddf515116d";
sha256 = "07ckmqxl25hzv10iarj6xdhg65q8450zriqc9wd6c2hlldj45ys3";
};
meta.homepage = "https://github.com/fatih/vim-go/";
};
@ -6594,12 +6606,12 @@ let
vim-lsc = buildVimPluginFrom2Nix {
pname = "vim-lsc";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "natebosch";
repo = "vim-lsc";
rev = "d2b394c0033014288daac317c32918bed469ff66";
sha256 = "0a8hd20v5q3bjq5pcs8p708f5jmh1y87aqa0f7ip4snldnf6gq2d";
rev = "2f0cbbfb8ea8997b408e447a2bc9554a3de33617";
sha256 = "1y3r5a5mcjf8dp0pkmhgnbay10hh48w1b3wd795wwbm6nx4izjjq";
};
meta.homepage = "https://github.com/natebosch/vim-lsc/";
};
@ -6919,12 +6931,12 @@ let
vim-obsession = buildVimPluginFrom2Nix {
pname = "vim-obsession";
version = "2020-01-19";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-obsession";
rev = "96a3f837c112cb64e0a9857b69f6d6a71041155e";
sha256 = "11h7jyg7fhjmq3pmpc93nrsxm175ra14407rs3558h8p04snc159";
rev = "82c9ac5e130c92a46e043dd9cd9e5b48d15e286d";
sha256 = "0lfcba8sk25l5yp3agh6pwniddf8jx627ikpr8i2z9ary2fqsj98";
};
meta.homepage = "https://github.com/tpope/vim-obsession/";
};
@ -7723,12 +7735,12 @@ let
vim-snippets = buildVimPluginFrom2Nix {
pname = "vim-snippets";
version = "2021-03-15";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "honza";
repo = "vim-snippets";
rev = "a8ac81b8922ac621e7043813d98e69ad0ac265a4";
sha256 = "0gl77mnajzvmnxwnbzb5fqzzljb59lbfv23gzbz1h493gfm0f04n";
rev = "164bc3aa42feaa3c1deec84f7a10840418aec300";
sha256 = "0snzmjl4qiw6598a3ajc7v6l4q35wxf8b9lklk47pmfmalvril6w";
};
meta.homepage = "https://github.com/honza/vim-snippets/";
};
@ -7807,12 +7819,12 @@ let
vim-startuptime = buildVimPluginFrom2Nix {
pname = "vim-startuptime";
version = "2021-02-23";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "dstein64";
repo = "vim-startuptime";
rev = "af70d17a863c9a33def9cafbb3911195a571c686";
sha256 = "078xq6bwkbwsjajyq3c9bn8b3r0da6j70vp1ba934a6jjdv6vrj4";
rev = "cee157ee4f73ddacfe1a70bb833b96f7a47a10c2";
sha256 = "1y049vbjhsg80am0hxyrcq0d0p7qfyvb1z38nc7yd7bcgwsqc5ac";
};
meta.homepage = "https://github.com/dstein64/vim-startuptime/";
};
@ -8528,12 +8540,12 @@ let
vimspector = buildVimPluginFrom2Nix {
pname = "vimspector";
version = "2021-03-20";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "puremourning";
repo = "vimspector";
rev = "35e5b3d56e193ee6129eabedcd48fd17b8293b2d";
sha256 = "0njs7bn3hzr44sn04lg44baia5khpxra0l1llshx42bkdidcj1s1";
rev = "054ea35428e5e8d6abe12b6a535a3b0426d4874e";
sha256 = "0cx35hbyhrzmbfzsikbpa4jh0gr3sbdhk27v2nsbwj4i3rg9767p";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/puremourning/vimspector/";
@ -8541,12 +8553,12 @@ let
vimtex = buildVimPluginFrom2Nix {
pname = "vimtex";
version = "2021-03-21";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
rev = "4b9e69dc5e817c3436843ee0cb431e59fa5705b0";
sha256 = "1s2h2bgd751jf7vj9dr1756g7gxdx3b7pwx49686273ibv1spnwf";
rev = "3109f140196716b3b3a430f06df35723d85f991d";
sha256 = "1n44sg35xm1jc70wpjgc5xjf8h6hrpa2f9jwq6x3dcrppj781naq";
};
meta.homepage = "https://github.com/lervag/vimtex/";
};
@ -8722,12 +8734,12 @@ let
YouCompleteMe = buildVimPluginFrom2Nix {
pname = "YouCompleteMe";
version = "2021-03-20";
version = "2021-03-22";
src = fetchFromGitHub {
owner = "ycm-core";
repo = "YouCompleteMe";
rev = "3352684bfb6a08be8e864a46b0773e459d4d201f";
sha256 = "03mqrprmiain4n9aw5388msq4smczw1avcls71rj0c7igzpdc4vw";
rev = "ed423e8a1d2a5842a126d33b824ad3b65f85f3ba";
sha256 = "19c238sdc6i3ky374v52g13csnbmdcm9d97iji6fmklmzsyrq4cr";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@ -8771,12 +8783,12 @@ let
zephyr-nvim = buildVimPluginFrom2Nix {
pname = "zephyr-nvim";
version = "2021-03-18";
version = "2021-03-23";
src = fetchFromGitHub {
owner = "glepnir";
repo = "zephyr-nvim";
rev = "05315a214fc0b4681e596cbcb40045d54564ff8c";
sha256 = "0bapbwyvvbvqd8ggcyns2y5iya44jvb0jxq14xh5qfnxiycrwrgi";
rev = "79e273ed8ff386a81e6a88ae888ec6d878a9dcbc";
sha256 = "00x0b2lwrfkmny6rhwjrb1kyp2lai597f6f62whhwgw7iq9j5b5k";
};
meta.homepage = "https://github.com/glepnir/zephyr-nvim/";
};

View file

@ -3,6 +3,7 @@ aca/completion-tabnine
ackyshake/Spacegray.vim@main
airblade/vim-gitgutter
airblade/vim-rooter
akinsho/nvim-bufferline.lua
aklt/plantuml-syntax
altercation/vim-colors-solarized
alvan/vim-closetag

View file

@ -1,4 +1,8 @@
{ lib, stdenv, fetchurl }:
{ lib
, stdenv
, fetchurl
, installShellFiles
}:
stdenv.mkDerivation rec {
pname = "mksh";
@ -6,20 +10,30 @@ stdenv.mkDerivation rec {
src = fetchurl {
urls = [
"https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
"http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz"
"https://www.mirbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
"http://pub.allbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz"
];
sha256 = "01n5ggw33bw4jv4d3148wlw9n4aj7vdn3ffnc66c9w9pldjidbkp";
hash = "sha256-d64WZaM38cSMYda5Yds+UhGbOOWIhNHIloSvMfh7xQY=";
};
nativeBuildInputs = [
installShellFiles
];
dontConfigure = true;
buildPhase = "sh ./Build.sh -r";
buildPhase = ''
runHook preBuild
sh ./Build.sh -r
runHook postBuild
'';
installPhase = ''
install -D -m 755 mksh $out/bin/mksh
install -D -m 644 mksh.1 $out/share/man/man1/mksh.1
install -D -m 644 dot.mkshrc $out/share/mksh/mkshrc
runHook preInstall
install -D mksh $out/bin/mksh
install -D dot.mkshrc $out/share/mksh/mkshrc
installManPage mksh.1
runHook postInstall
'';
meta = with lib; {
@ -32,7 +46,7 @@ stdenv.mkDerivation rec {
systems.
'';
homepage = "https://www.mirbsd.org/mksh.htm";
license = licenses.bsd3;
license = with licenses; [ miros isc unicode-dfs-2016 ];
maintainers = with maintainers; [ AndersonTorres joachifm ];
platforms = platforms.unix;
};
@ -41,3 +55,5 @@ stdenv.mkDerivation rec {
shellPath = "/bin/mksh";
};
}
# TODO [ AndersonTorres ]: lksh
# TODO [ AndersonTorres ]: a more accurate licensing info

View file

@ -106,7 +106,12 @@ in rec {
++ depsTargetTarget ++ depsTargetTargetPropagated) == 0;
dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || (stdenv.noCC or false);
supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ];
defaultHardeningFlags = if stdenv.hostPlatform.isMusl
# Musl-based platforms will keep "pie", other platforms will not.
defaultHardeningFlags = if stdenv.hostPlatform.isMusl &&
# Except when:
# - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries.
# - static armv7l, where compilation fails.
!((stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) && stdenv.hostPlatform.isStatic)
then supportedHardeningFlags
else lib.remove "pie" supportedHardeningFlags;
enabledHardeningOptions =

View file

@ -7,11 +7,11 @@
}:
python3.pkgs.buildPythonApplication rec {
pname = "salt";
version = "3002.5";
version = "3002.6";
src = python3.pkgs.fetchPypi {
inherit pname version;
sha256 = "1bqranhanxcxjc1qcc6cm95f4xxag0ic9g61dq352hqh6m1l1ay8";
sha256 = "/8R4VpNj4dF7ajoMQh6q6cB5u+q8THcloiLQ+/kDoKU=";
};
propagatedBuildInputs = with python3.pkgs; [

View file

@ -46,6 +46,8 @@ let self = rec {
# addon packages
a4ksubtitles = callPackage ../applications/video/kodi-packages/a4ksubtitles { };
controllers = {
default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; };