Merge master into staging-next

authored by

github-actions[bot] and committed by
GitHub
24173601 ca7fa2ef

+539 -261
+6
doc/builders/images/dockertools.section.md
··· 111 111 112 112 *Default:* the output path's hash 113 113 114 + `fromImage` _optional_ 115 + 116 + : The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`. 117 + 118 + *Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`. 119 + 114 120 `contents` _optional_ 115 121 116 122 : Top level paths in the container. Either a single derivation, or a list of derivations.
+10 -4
nixos/modules/security/acme.nix
··· 24 24 Type = "oneshot"; 25 25 User = "acme"; 26 26 Group = mkDefault "acme"; 27 - UMask = 0023; 27 + UMask = 0022; 28 28 StateDirectoryMode = 750; 29 29 ProtectSystem = "full"; 30 30 PrivateTmp = true; ··· 303 303 } 304 304 305 305 ${optionalString (data.webroot != null) '' 306 - # Ensure the webroot exists 307 - mkdir -p '${data.webroot}/.well-known/acme-challenge' 308 - chown 'acme:${data.group}' ${data.webroot}/{.well-known,.well-known/acme-challenge} 306 + # Ensure the webroot exists. Fixing group is required in case configuration was changed between runs. 307 + # Lego will fail if the webroot does not exist at all. 308 + ( 309 + mkdir -p '${data.webroot}/.well-known/acme-challenge' \ 310 + && chgrp '${data.group}' ${data.webroot}/.well-known/acme-challenge 311 + ) || ( 312 + echo 'Please ensure ${data.webroot}/.well-known/acme-challenge exists and is writable by acme:${data.group}' \ 313 + && exit 1 314 + ) 309 315 ''} 310 316 311 317 echo '${domainHash}' > domainhash.txt
+44 -10
nixos/tests/acme.nix
··· 253 253 254 254 255 255 def check_connection(node, domain, retries=3): 256 - assert retries >= 0 256 + assert retries >= 0, f"Failed to connect to https://{domain}" 257 257 258 258 result = node.succeed( 259 259 "openssl s_client -brief -verify 2 -CAfile /tmp/ca.crt" ··· 262 262 263 263 for line in result.lower().split("\n"): 264 264 if "verification" in line and "error" in line: 265 - time.sleep(1) 265 + time.sleep(3) 266 266 return check_connection(node, domain, retries - 1) 267 267 268 268 269 269 def check_connection_key_bits(node, domain, bits, retries=3): 270 - assert retries >= 0 270 + assert retries >= 0, f"Did not find expected number of bits ({bits}) in key" 271 271 272 272 result = node.succeed( 273 273 "openssl s_client -CAfile /tmp/ca.crt" ··· 277 277 print("Key type:", result) 278 278 279 279 if bits not in result: 280 - time.sleep(1) 280 + time.sleep(3) 281 281 return check_connection_key_bits(node, domain, bits, retries - 1) 282 282 283 283 284 284 def check_stapling(node, domain, retries=3): 285 - assert retries >= 0 285 + assert retries >= 0, "OCSP Stapling check failed" 286 286 287 287 # Pebble doesn't provide a full OCSP responder, so just check the URL 288 288 result = node.succeed( ··· 293 293 print("OCSP Responder URL:", result) 294 294 295 295 if "${caDomain}:4002" not in result.lower(): 296 - time.sleep(1) 296 + time.sleep(3) 297 297 return check_stapling(node, domain, retries - 1) 298 298 299 299 300 + def download_ca_certs(node, retries=5): 301 + assert retries >= 0, "Failed to connect to pebble to download root CA certs" 302 + 303 + exit_code, _ = node.execute("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt") 304 + exit_code_2, _ = node.execute( 305 + "curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt" 306 + ) 307 + 308 + if exit_code + exit_code_2 > 0: 309 + time.sleep(3) 310 + return download_ca_certs(node, retries - 1) 311 + 312 + 300 313 client.start() 301 314 dnsserver.start() 302 315 ··· 313 326 acme.wait_for_unit("network-online.target") 314 327 acme.wait_for_unit("pebble.service") 315 328 316 - client.succeed("curl https://${caDomain}:15000/roots/0 > /tmp/ca.crt") 317 - client.succeed("curl https://${caDomain}:15000/intermediate-keys/0 >> /tmp/ca.crt") 329 + download_ca_certs(client) 318 330 319 331 with subtest("Can request certificate with HTTPS-01 challenge"): 320 332 webserver.wait_for_unit("acme-finished-a.example.test.target") 321 333 check_fullchain(webserver, "a.example.test") 322 334 check_issuer(webserver, "a.example.test", "pebble") 323 335 check_connection(client, "a.example.test") 336 + 337 + with subtest("Certificates and accounts have safe + valid permissions"): 338 + group = "${nodes.webserver.config.security.acme.certs."a.example.test".group}" 339 + webserver.succeed( 340 + 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" 341 + ) 342 + webserver.succeed( 343 + 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" 344 + ) 345 + webserver.succeed( 346 + 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" 347 + ) 348 + webserver.succeed( 349 + 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" 350 + ) 324 351 325 352 with subtest("Can generate valid selfsigned certs"): 326 353 webserver.succeed("systemctl clean acme-a.example.test.service --what=state") ··· 375 402 assert keyhash_old == keyhash_new 376 403 377 404 with subtest("Can request certificates for vhost + aliases (apache-httpd)"): 378 - switch_to(webserver, "httpd-aliases") 379 - webserver.wait_for_unit("acme-finished-c.example.test.target") 405 + try: 406 + switch_to(webserver, "httpd-aliases") 407 + webserver.wait_for_unit("acme-finished-c.example.test.target") 408 + except Exception as err: 409 + _, output = webserver.execute( 410 + "cat /var/log/httpd/*.log && ls -al /var/lib/acme/acme-challenge" 411 + ) 412 + print(output) 413 + raise err 380 414 check_issuer(webserver, "c.example.test", "pebble") 381 415 check_connection(client, "c.example.test") 382 416 check_connection(client, "d.example.test")
+29 -1
nixos/tests/docker-tools.nix
··· 161 161 "docker run --rm ${examples.layered-image.imageName} cat extraCommands", 162 162 ) 163 163 164 - with subtest("Ensure building an image on top of a layered Docker images work"): 164 + with subtest("Ensure images built on top of layered Docker images work"): 165 165 docker.succeed( 166 166 "docker load --input='${examples.layered-on-top}'", 167 167 "docker run --rm ${examples.layered-on-top.imageName}", 168 + ) 169 + 170 + with subtest("Ensure layered images built on top of layered Docker images work"): 171 + docker.succeed( 172 + "docker load --input='${examples.layered-on-top-layered}'", 173 + "docker run --rm ${examples.layered-on-top-layered.imageName}", 168 174 ) 169 175 170 176 ··· 205 211 assert "FROM_CHILD=true" in env, "envvars from the child should be preserved" 206 212 assert "LAST_LAYER=child" in env, "envvars from the child should take priority" 207 213 214 + with subtest("Ensure environment variables of layered images are correctly inherited"): 215 + docker.succeed( 216 + "docker load --input='${examples.environmentVariablesLayered}'" 217 + ) 218 + out = docker.succeed("docker run --rm ${examples.environmentVariablesLayered.imageName} env") 219 + env = out.splitlines() 220 + assert "FROM_PARENT=true" in env, "envvars from the parent should be preserved" 221 + assert "FROM_CHILD=true" in env, "envvars from the child should be preserved" 222 + assert "LAST_LAYER=child" in env, "envvars from the child should take priority" 223 + 208 224 with subtest("Ensure image with only 2 layers can be loaded"): 209 225 docker.succeed( 210 226 "docker load --input='${examples.two-layered-image}'" ··· 218 234 # Ensure the two output paths (ls and hello) are in the layer 219 235 "docker run bulk-layer ls /bin/hello", 220 236 ) 237 + 238 + with subtest( 239 + "Ensure the bulk layer with a base image respects the number of maxLayers" 240 + ): 241 + docker.succeed( 242 + "docker load --input='${pkgs.dockerTools.examples.layered-bulk-layer}'", 243 + # Ensure the image runs correctly 244 + "docker run layered-bulk-layer ls /bin/hello", 245 + ) 246 + 247 + # Ensure the image has the correct number of layers 248 + assert len(set_of_layers("layered-bulk-layer")) == 4 221 249 222 250 with subtest("Ensure correct behavior when no store is needed"): 223 251 # This check tests that buildLayeredImage can build images that don't need a store.
+3 -3
pkgs/applications/misc/hugo/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "hugo"; 5 - version = "0.81.0"; 5 + version = "0.82.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "gohugoio"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-9YroUxcLixu+MNL37JByCulCHv0WxWGwqBQ/+FGtZLw="; 11 + sha256 = "sha256-D0bwy8LJihlfM+E3oys85yjadjZNfPv5xnq4ekaZPCU="; 12 12 }; 13 13 14 - vendorSha256 = "sha256-5gQyoLirXajkzxKxzcuPnjECL2mJPiHS65lYkyIpKs8="; 14 + vendorSha256 = "sha256-pJBm+yyy1DbH28oVBQA+PHSDtSg3RcgbRlurrwnnEls="; 15 15 16 16 doCheck = false; 17 17
+2 -2
pkgs/applications/video/catt/default.nix
··· 4 4 5 5 buildPythonApplication rec { 6 6 pname = "catt"; 7 - version = "0.12.0"; 7 + version = "0.12.1"; 8 8 9 9 src = fetchPypi { 10 10 inherit pname version; 11 - sha256 = "sha256-6RUeinHhAvvSz38hHQP5/MXNiY00rCM8k2ONaFYbwPc="; 11 + sha256 = "fef58bf7a8ebaba98399d1077cc4615f53d0196aab2a989df369a66f7111963b"; 12 12 }; 13 13 14 14 propagatedBuildInputs = [
+26
pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
··· 1 + { lib, buildKodiAddon, fetchFromGitHub, requests, vfs-libarchive }: 2 + 3 + buildKodiAddon rec { 4 + pname = "a4ksubtitles"; 5 + namespace = "service.subtitles.a4ksubtitles"; 6 + version = "2.3.0"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "a4k-openproject"; 10 + repo = "a4kSubtitles"; 11 + rev = "${namespace}/${namespace}-${version}"; 12 + sha256 = "0hxvxkbihfyvixmlxf5n4ccn70w0244hhw3hr44rqvx00a0bg1lh"; 13 + }; 14 + 15 + propagatedBuildInputs = [ 16 + requests 17 + vfs-libarchive 18 + ]; 19 + 20 + meta = with lib; { 21 + homepage = "https://a4k-openproject.github.io/a4kSubtitles/"; 22 + description = "Multi-Source Subtitles Addon"; 23 + license = licenses.mit; 24 + maintainers = teams.kodi.members; 25 + }; 26 + }
+27 -2
pkgs/build-support/docker/default.nix
··· 729 729 name, 730 730 # Image tag, the Nix's output hash will be used if null 731 731 tag ? null, 732 + # Parent image, to append to. 733 + fromImage ? null, 732 734 # Files to put on the image (a nix store path or list of paths). 733 735 contents ? [], 734 736 # Docker config; e.g. what command to run on the container. ··· 791 793 unnecessaryDrvs = [ baseJson overallClosure ]; 792 794 793 795 conf = runCommand "${baseName}-conf.json" { 794 - inherit maxLayers created; 796 + inherit fromImage maxLayers created; 795 797 imageName = lib.toLower name; 796 798 passthru.imageTag = 797 799 if tag != null ··· 821 823 unnecessaryDrvs} 822 824 } 823 825 826 + # Compute the number of layers that are already used by a potential 827 + # 'fromImage' as well as the customization layer. Ensure that there is 828 + # still at least one layer available to store the image contents. 829 + usedLayers=0 830 + 831 + # subtract number of base image layers 832 + if [[ -n "$fromImage" ]]; then 833 + (( usedLayers += $(tar -xOf "$fromImage" manifest.json | jq '.[0].Layers | length') )) 834 + fi 835 + 836 + # one layer will be taken up by the customisation layer 837 + (( usedLayers += 1 )) 838 + 839 + if ! (( $usedLayers < $maxLayers )); then 840 + echo >&2 "Error: usedLayers $usedLayers layers to store 'fromImage' and" \ 841 + "'extraCommands', but only maxLayers=$maxLayers were" \ 842 + "allowed. At least 1 layer is required to store contents." 843 + exit 1 844 + fi 845 + availableLayers=$(( maxLayers - usedLayers )) 846 + 824 847 # Create $maxLayers worth of Docker Layers, one layer per store path 825 848 # unless there are more paths than $maxLayers. In that case, create 826 849 # $maxLayers-1 for the most popular layers, and smush the remainaing ··· 838 861 | (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ] 839 862 | map(select(length > 0)) 840 863 ' \ 841 - --argjson maxLayers "$(( maxLayers - 1 ))" # one layer will be taken up by the customisation layer 864 + --argjson maxLayers "$availableLayers" 842 865 )" 843 866 844 867 cat ${baseJson} | jq ' 845 868 . + { 846 869 "store_dir": $store_dir, 870 + "from_image": $from_image, 847 871 "store_layers": $store_layers, 848 872 "customisation_layer", $customisation_layer, 849 873 "repo_tag": $repo_tag, 850 874 "created": $created 851 875 } 852 876 ' --arg store_dir "${storeDir}" \ 877 + --argjson from_image ${if fromImage == null then "null" else "'\"${fromImage}\"'"} \ 853 878 --argjson store_layers "$store_layers" \ 854 879 --arg customisation_layer ${customisationLayer} \ 855 880 --arg repo_tag "$imageName:$imageTag" \
+64 -21
pkgs/build-support/docker/examples.nix
··· 188 188 }; 189 189 }; 190 190 191 - # 12. example of running something as root on top of a parent image 191 + # 12 Create a layered image on top of a layered image 192 + layered-on-top-layered = pkgs.dockerTools.buildLayeredImage { 193 + name = "layered-on-top-layered"; 194 + tag = "latest"; 195 + fromImage = layered-image; 196 + extraCommands = '' 197 + mkdir ./example-output 198 + chmod 777 ./example-output 199 + ''; 200 + config = { 201 + Env = [ "PATH=${pkgs.coreutils}/bin/" ]; 202 + WorkingDir = "/example-output"; 203 + Cmd = [ 204 + "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo" 205 + ]; 206 + }; 207 + }; 208 + 209 + # 13. example of running something as root on top of a parent image 192 210 # Regression test related to PR #52109 193 211 runAsRootParentImage = buildImage { 194 212 name = "runAsRootParentImage"; ··· 197 215 fromImage = bash; 198 216 }; 199 217 200 - # 13. example of 3 layers images This image is used to verify the 218 + # 14. example of 3 layers images This image is used to verify the 201 219 # order of layers is correct. 202 220 # It allows to validate 203 221 # - the layer of parent are below ··· 235 253 ''; 236 254 }; 237 255 238 - # 14. Environment variable inheritance. 256 + # 15. Environment variable inheritance. 239 257 # Child image should inherit parents environment variables, 240 258 # optionally overriding them. 241 - environmentVariables = let 242 - parent = pkgs.dockerTools.buildImage { 243 - name = "parent"; 244 - tag = "latest"; 245 - config = { 246 - Env = [ 247 - "FROM_PARENT=true" 248 - "LAST_LAYER=parent" 249 - ]; 250 - }; 259 + environmentVariablesParent = pkgs.dockerTools.buildImage { 260 + name = "parent"; 261 + tag = "latest"; 262 + config = { 263 + Env = [ 264 + "FROM_PARENT=true" 265 + "LAST_LAYER=parent" 266 + ]; 267 + }; 268 + }; 269 + 270 + environmentVariables = pkgs.dockerTools.buildImage { 271 + name = "child"; 272 + fromImage = environmentVariablesParent; 273 + tag = "latest"; 274 + contents = [ pkgs.coreutils ]; 275 + config = { 276 + Env = [ 277 + "FROM_CHILD=true" 278 + "LAST_LAYER=child" 279 + ]; 251 280 }; 252 - in pkgs.dockerTools.buildImage { 281 + }; 282 + 283 + environmentVariablesLayered = pkgs.dockerTools.buildLayeredImage { 253 284 name = "child"; 254 - fromImage = parent; 285 + fromImage = environmentVariablesParent; 255 286 tag = "latest"; 256 287 contents = [ pkgs.coreutils ]; 257 288 config = { ··· 262 293 }; 263 294 }; 264 295 265 - # 15. Create another layered image, for comparing layers with image 10. 296 + # 16. Create another layered image, for comparing layers with image 10. 266 297 another-layered-image = pkgs.dockerTools.buildLayeredImage { 267 298 name = "another-layered-image"; 268 299 tag = "latest"; 269 300 config.Cmd = [ "${pkgs.hello}/bin/hello" ]; 270 301 }; 271 302 272 - # 16. Create a layered image with only 2 layers 303 + # 17. Create a layered image with only 2 layers 273 304 two-layered-image = pkgs.dockerTools.buildLayeredImage { 274 305 name = "two-layered-image"; 275 306 tag = "latest"; ··· 278 309 maxLayers = 2; 279 310 }; 280 311 281 - # 17. Create a layered image with more packages than max layers. 312 + # 18. Create a layered image with more packages than max layers. 282 313 # coreutils and hello are part of the same layer 283 314 bulk-layer = pkgs.dockerTools.buildLayeredImage { 284 315 name = "bulk-layer"; ··· 289 320 maxLayers = 2; 290 321 }; 291 322 292 - # 18. Create a "layered" image without nix store layers. This is not 323 + # 19. Create a layered image with a base image and more packages than max 324 + # layers. coreutils and hello are part of the same layer 325 + layered-bulk-layer = pkgs.dockerTools.buildLayeredImage { 326 + name = "layered-bulk-layer"; 327 + tag = "latest"; 328 + fromImage = two-layered-image; 329 + contents = with pkgs; [ 330 + coreutils hello 331 + ]; 332 + maxLayers = 4; 333 + }; 334 + 335 + # 20. Create a "layered" image without nix store layers. This is not 293 336 # recommended, but can be useful for base images in rare cases. 294 337 no-store-paths = pkgs.dockerTools.buildLayeredImage { 295 338 name = "no-store-paths"; ··· 321 364 }; 322 365 }; 323 366 324 - # 19. Support files in the store on buildLayeredImage 367 + # 21. Support files in the store on buildLayeredImage 325 368 # See: https://github.com/NixOS/nixpkgs/pull/91084#issuecomment-653496223 326 369 filesInStore = pkgs.dockerTools.buildLayeredImageWithNixDb { 327 370 name = "file-in-store"; ··· 341 384 }; 342 385 }; 343 386 344 - # 20. Ensure that setting created to now results in a date which 387 + # 22. Ensure that setting created to now results in a date which 345 388 # isn't the epoch + 1 for layered images. 346 389 unstableDateLayered = pkgs.dockerTools.buildLayeredImage { 347 390 name = "unstable-date-layered";
+87 -7
pkgs/build-support/docker/stream_layered_image.py
··· 33 33 34 34 import io 35 35 import os 36 + import re 36 37 import sys 37 38 import json 38 39 import hashlib ··· 126 127 return (self._digest.hexdigest(), self._size) 127 128 128 129 130 + FromImage = namedtuple("FromImage", ["tar", "manifest_json", "image_json"]) 129 131 # Some metadata for a layer 130 132 LayerInfo = namedtuple("LayerInfo", ["size", "checksum", "path", "paths"]) 131 133 132 134 135 + def load_from_image(from_image_str): 136 + """ 137 + Loads the given base image, if any. 138 + 139 + from_image_str: Path to the base image archive. 140 + 141 + Returns: A 'FromImage' object with references to the loaded base image, 142 + or 'None' if no base image was provided. 143 + """ 144 + if from_image_str is None: 145 + return None 146 + 147 + base_tar = tarfile.open(from_image_str) 148 + 149 + manifest_json_tarinfo = base_tar.getmember("manifest.json") 150 + with base_tar.extractfile(manifest_json_tarinfo) as f: 151 + manifest_json = json.load(f) 152 + 153 + image_json_tarinfo = base_tar.getmember(manifest_json[0]["Config"]) 154 + with base_tar.extractfile(image_json_tarinfo) as f: 155 + image_json = json.load(f) 156 + 157 + return FromImage(base_tar, manifest_json, image_json) 158 + 159 + 160 + def add_base_layers(tar, from_image): 161 + """ 162 + Adds the layers from the given base image to the final image. 163 + 164 + tar: 'tarfile.TarFile' object for new layers to be added to. 165 + from_image: 'FromImage' object with references to the loaded base image. 166 + """ 167 + if from_image is None: 168 + print("No 'fromImage' provided", file=sys.stderr) 169 + return [] 170 + 171 + layers = from_image.manifest_json[0]["Layers"] 172 + checksums = from_image.image_json["rootfs"]["diff_ids"] 173 + layers_checksums = zip(layers, checksums) 174 + 175 + for num, (layer, checksum) in enumerate(layers_checksums, start=1): 176 + layer_tarinfo = from_image.tar.getmember(layer) 177 + checksum = re.sub(r"^sha256:", "", checksum) 178 + 179 + tar.addfile(layer_tarinfo, from_image.tar.extractfile(layer_tarinfo)) 180 + path = layer_tarinfo.path 181 + size = layer_tarinfo.size 182 + 183 + print("Adding base layer", num, "from", path, file=sys.stderr) 184 + yield LayerInfo(size=size, checksum=checksum, path=path, paths=[path]) 185 + 186 + from_image.tar.close() 187 + 188 + 189 + def overlay_base_config(from_image, final_config): 190 + """ 191 + Overlays the final image 'config' JSON on top of selected defaults from the 192 + base image 'config' JSON. 193 + 194 + from_image: 'FromImage' object with references to the loaded base image. 195 + final_config: 'dict' object of the final image 'config' JSON. 196 + """ 197 + if from_image is None: 198 + return final_config 199 + 200 + base_config = from_image.image_json["config"] 201 + 202 + # Preserve environment from base image 203 + final_env = base_config.get("Env", []) + final_config.get("Env", []) 204 + if final_env: 205 + final_config["Env"] = final_env 206 + return final_config 207 + 208 + 133 209 def add_layer_dir(tar, paths, store_dir, mtime): 134 210 """ 135 211 Appends given store paths to a TarFile object as a new layer. ··· 248 324 mtime = int(created.timestamp()) 249 325 store_dir = conf["store_dir"] 250 326 327 + from_image = load_from_image(conf["from_image"]) 328 + 251 329 with tarfile.open(mode="w|", fileobj=sys.stdout.buffer) as tar: 252 330 layers = [] 253 - for num, store_layer in enumerate(conf["store_layers"]): 254 - print( 255 - "Creating layer", num, 256 - "from paths:", store_layer, 257 - file=sys.stderr) 331 + layers.extend(add_base_layers(tar, from_image)) 332 + 333 + start = len(layers) + 1 334 + for num, store_layer in enumerate(conf["store_layers"], start=start): 335 + print("Creating layer", num, "from paths:", store_layer, 336 + file=sys.stderr) 258 337 info = add_layer_dir(tar, store_layer, store_dir, mtime=mtime) 259 338 layers.append(info) 260 339 261 - print("Creating the customisation layer...", file=sys.stderr) 340 + print("Creating layer", len(layers) + 1, "with customisation...", 341 + file=sys.stderr) 262 342 layers.append( 263 343 add_customisation_layer( 264 344 tar, ··· 273 353 "created": datetime.isoformat(created), 274 354 "architecture": conf["architecture"], 275 355 "os": "linux", 276 - "config": conf["config"], 356 + "config": overlay_base_config(from_image, conf["config"]), 277 357 "rootfs": { 278 358 "diff_ids": [f"sha256:{layer.checksum}" for layer in layers], 279 359 "type": "layers",
+3 -2
pkgs/desktops/plasma-5/plasma-workspace/default.nix
··· 53 53 ./0002-absolute-wallpaper-install-dir.patch 54 54 ]; 55 55 56 + # QT_INSTALL_BINS refers to qtbase, and qdbus is in qttools 56 57 postPatch = '' 57 - substituteInPlace wallpapers/image/wallpaper.knsrc.cmake \ 58 - --replace '@QtBinariesDir@/qdbus' ${getBin qttools}/bin/qdbus 58 + substituteInPlace CMakeLists.txt \ 59 + --replace 'query_qmake(QtBinariesDir QT_INSTALL_BINS)' 'set(QtBinariesDir "${lib.getBin qttools}/bin")' 59 60 ''; 60 61 61 62 NIX_CFLAGS_COMPILE = [
+18 -20
pkgs/development/libraries/zchunk/default.nix
··· 1 - { lib, stdenv 1 + { lib 2 + , stdenv 2 3 , fetchFromGitHub 3 - , fetchpatch 4 - , pkg-config 4 + , argp-standalone 5 + , curl 5 6 , meson 6 7 , ninja 8 + , pkg-config 7 9 , zstd 8 - , curl 9 - , argp-standalone 10 10 }: 11 11 12 12 stdenv.mkDerivation rec { 13 13 pname = "zchunk"; 14 - version = "1.1.8"; 14 + version = "1.1.9"; 15 15 16 16 outputs = [ "out" "lib" "dev" ]; 17 17 ··· 19 19 owner = "zchunk"; 20 20 repo = pname; 21 21 rev = version; 22 - sha256 = "0q1jafxh5nqgn2w5ciljkh8h46xma0qia8a5rj9m0pxixcacqj6q"; 22 + hash = "sha256-MqnHtqOjLl6R5GZ4f2UX1iLoO9FUT2IfZlSN58wW8JA="; 23 23 }; 24 24 25 25 nativeBuildInputs = [ ··· 29 29 ]; 30 30 31 31 buildInputs = [ 32 + curl 32 33 zstd 33 - curl 34 34 ] ++ lib.optional stdenv.isDarwin argp-standalone; 35 35 36 - # Darwin needs a patch for argp-standalone usage and differing endian.h location on macOS 37 - # https://github.com/zchunk/zchunk/pull/35 38 - patches = [ 39 - (fetchpatch { 40 - name = "darwin-support.patch"; 41 - url = "https://github.com/zchunk/zchunk/commit/f7db2ac0a95028a7f82ecb89862426bf53a69232.patch"; 42 - sha256 = "0cm84gyii4ly6nsmagk15g9kbfa13rw395nqk3fdcwm0dpixlkh4"; 43 - }) 44 - ]; 45 - 46 36 meta = with lib; { 37 + homepage = "https://github.com/zchunk/zchunk"; 47 38 description = "File format designed for highly efficient deltas while maintaining good compression"; 48 - homepage = "https://github.com/zchunk/zchunk"; 39 + longDescription = '' 40 + zchunk is a compressed file format that splits the file into independent 41 + chunks. This allows you to only download changed chunks when downloading a 42 + new version of the file, and also makes zchunk files efficient over rsync. 43 + 44 + zchunk files are protected with strong checksums to verify that the file 45 + you downloaded is, in fact, the file you wanted. 46 + ''; 49 47 license = licenses.bsd2; 50 - maintainers = with maintainers; []; 48 + maintainers = with maintainers; [ AndersonTorres ]; 51 49 platforms = platforms.unix; 52 50 }; 53 51 }
+29 -45
pkgs/development/libraries/zziplib/default.nix
··· 1 - { lib, stdenv 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , cmake 2 5 , perl 3 6 , pkg-config 4 - , fetchFromGitHub 5 - , fetchpatch 6 - , zip 7 - , unzip 8 7 , python3 9 8 , xmlto 9 + , zip 10 10 , zlib 11 11 }: 12 12 13 13 stdenv.mkDerivation rec { 14 14 pname = "zziplib"; 15 - version = "0.13.71"; 15 + version = "0.13.72"; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "gdraheim"; 19 - repo = "zziplib"; 19 + repo = pname; 20 20 rev = "v${version}"; 21 - sha256 = "P+7D57sc2oIABhk3k96aRILpGnsND5SLXHh2lqr9O4E="; 21 + hash = "sha256-Ht3fBgdrTm4mCi5uhgQPNtpGzADoRVOpSuGPsIS6y0Q="; 22 22 }; 23 23 24 - patches = [ 25 - # Install man pages 26 - (fetchpatch { 27 - url = "https://github.com/gdraheim/zziplib/commit/5583ccc7a247ee27556ede344e93d3ac1dc72e9b.patch"; 28 - sha256 = "wVExEZN8Ml1/3GicB0ZYsLVS3KJ8BSz8i4Gu46naz1Y="; 29 - excludes = [ "GNUmakefile" ]; 30 - }) 31 - 32 - # Fix man page formatting 33 - (fetchpatch { 34 - url = "https://github.com/gdraheim/zziplib/commit/22ed64f13dc239f86664c60496261f544bce1088.patch"; 35 - sha256 = "ScFVWLc4LQPqkcHn9HK/VkLula4b5HzuYl0b5vi4Ikc="; 36 - }) 37 - ]; 38 - 39 24 nativeBuildInputs = [ 25 + cmake 40 26 perl 41 27 pkg-config 42 - zip 43 28 python3 44 29 xmlto 30 + zip 45 31 ]; 46 - 47 32 buildInputs = [ 48 33 zlib 49 34 ]; 50 35 51 - checkInputs = [ 52 - unzip 36 + # test/zziptests.py requires network access 37 + # (https://github.com/gdraheim/zziplib/issues/24) 38 + cmakeFlags = [ 39 + "-DZZIP_TESTCVE=OFF" 40 + "-DBUILD_SHARED_LIBS=True" 41 + "-DBUILD_STATIC_LIBS=False" 42 + "-DBUILD_TESTS=OFF" 43 + "-DMSVC_STATIC_RUNTIME=OFF" 44 + "-DZZIPSDL=OFF" 45 + "-DZZIPTEST=OFF" 46 + "-DZZIPWRAP=OFF" 47 + "-DBUILDTESTS=OFF" 53 48 ]; 54 49 55 - # tests are broken (https://github.com/gdraheim/zziplib/issues/20), 56 - # and test/zziptests.py requires network access 57 - # (https://github.com/gdraheim/zziplib/issues/24) 58 - doCheck = false; 59 - checkTarget = "check"; 60 - 61 50 meta = with lib; { 51 + homepage = "https://github.com/gdraheim/zziplib"; 62 52 description = "Library to extract data from files archived in a zip file"; 63 - 64 53 longDescription = '' 65 - The zziplib library is intentionally lightweight, it offers the ability 66 - to easily extract data from files archived in a single zip 67 - file. Applications can bundle files into a single zip archive and 68 - access them. The implementation is based only on the (free) subset of 69 - compression with the zlib algorithm which is actually used by the 70 - zip/unzip tools. 54 + The zziplib library is intentionally lightweight, it offers the ability to 55 + easily extract data from files archived in a single zip file. 56 + Applications can bundle files into a single zip archive and access them. 57 + The implementation is based only on the (free) subset of compression with 58 + the zlib algorithm which is actually used by the zip/unzip tools. 71 59 ''; 72 - 73 60 license = with licenses; [ lgpl2Plus mpl11 ]; 74 - 75 - homepage = "http://zziplib.sourceforge.net/"; 76 - 77 - maintainers = [ ]; 61 + maintainers = with maintainers; [ AndersonTorres ]; 78 62 platforms = python3.meta.platforms; 79 63 }; 80 64 }
+2 -2
pkgs/development/python-modules/bitarray/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "bitarray"; 5 - version = "1.7.1"; 5 + version = "1.8.0"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "e4de977d708b7024760266d827b8285e4405dce4293f25508c4556970139018a"; 9 + sha256 = "fe4444d92b17073bf1f9f24e3015a0e5bb70a645c47df93ef8a9ce8be33fcbad"; 10 10 }; 11 11 12 12 pythonImportsCheck = [ "bitarray" ];
+22 -5
pkgs/development/python-modules/loguru/default.nix
··· 1 - { lib, stdenv, buildPythonPackage, fetchPypi, isPy27, colorama, pytestCheckHook }: 1 + { lib 2 + , stdenv 3 + , buildPythonPackage 4 + , fetchPypi 5 + , fetchpatch 6 + , isPy27 7 + , colorama 8 + , pytestCheckHook 9 + , pythonAtLeast 10 + }: 2 11 3 12 buildPythonPackage rec { 4 13 pname = "loguru"; 5 14 version = "0.5.3"; 6 15 7 - disabled = isPy27; 16 + # python3.9 compatibility should be in the next release after 0.5.3 17 + disabled = isPy27 || pythonAtLeast "3.9"; 8 18 src = fetchPypi { 9 19 inherit pname version; 10 20 sha256 = "b28e72ac7a98be3d28ad28570299a393dfcd32e5e3f6a353dec94675767b6319"; 11 21 }; 12 22 23 + patches = [ 24 + # Fixes tests with pytest>=6.2.2. Will be part of the next release after 0.5.3 25 + (fetchpatch { 26 + url = "https://github.com/Delgan/loguru/commit/31cf758ee9d22dbfa125f38153782fe20ac9dce5.patch"; 27 + sha256 = "1lzbs8akg1s7s6xjl3samf4c4bpssqvwg5fn3mwlm4ysr7jd5y67"; 28 + }) 29 + ]; 30 + 13 31 checkInputs = [ pytestCheckHook colorama ]; 14 32 15 - pytestFlagsArray = lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ]; 16 - 33 + disabledTestPaths = lib.optionals stdenv.isDarwin [ "tests/test_multiprocessing.py" ]; 17 34 disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ] 18 35 ++ lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ]; 19 36 ··· 21 38 homepage = "https://github.com/Delgan/loguru"; 22 39 description = "Python logging made (stupidly) simple"; 23 40 license = licenses.mit; 24 - maintainers = with maintainers; [ jakewaksbaum ]; 41 + maintainers = with maintainers; [ jakewaksbaum rmcgibbo ]; 25 42 }; 26 43 }
+8 -14
pkgs/development/python-modules/restview/default.nix
··· 7 7 , packaging 8 8 , pygments 9 9 , mock 10 + , pytestCheckHook 10 11 }: 11 12 12 13 buildPythonPackage rec { 13 14 pname = "restview"; 14 - version = "2.9.1"; 15 + version = "2.9.2"; 15 16 16 17 src = fetchPypi { 17 18 inherit pname version; 18 - sha256 = "de87c84f19526bd4a76505f6d40b51b7bb03ca43b6067c93f82f1c7237ac9e84"; 19 + sha256 = "1p1jgdvc04ws8kga3r0vrq3m0b52qw3clwyydl96a13wb3mrf03r"; 19 20 }; 20 21 21 - propagatedBuildInputs = [ docutils readme_renderer packaging pygments ]; 22 - checkInputs = [ mock ]; 23 - 24 22 patches = [ 25 - # fix tests after readme_renderer update 26 - # TODO remove on next update 27 23 (fetchpatch { 28 - url = "https://github.com/mgedmin/restview/commit/541743ded13ae55dea4c437046984a5f13d06e8b.patch"; 29 - sha256 = "031b1dlqx346bz7afpc011lslnq771lnxb6iy1l2285pph534bci"; 24 + url = "https://github.com/mgedmin/restview/commit/a1ded30a87c65f3ce59a18497a7fc5099317c2be.patch"; 25 + sha256 = "1ax7pih456a3nbj8qrrq7hqigbyag4ihzpn6bm0z4y74d0r3v8a5"; 30 26 }) 31 27 ]; 32 28 33 - postPatch = '' 34 - # dict order breaking tests 35 - sed -i 's@<a href="http://www.example.com" rel="nofollow">@...@' src/restview/tests.py 36 - ''; 29 + propagatedBuildInputs = [ docutils readme_renderer packaging pygments ]; 30 + checkInputs = [ mock pytestCheckHook ]; 37 31 38 32 meta = { 39 33 description = "ReStructuredText viewer"; 40 34 homepage = "https://mg.pov.lt/restview/"; 41 - license = lib.licenses.gpl2; 35 + license = lib.licenses.gpl3Only; 42 36 maintainers = with lib.maintainers; [ koral ]; 43 37 }; 44 38 }
+2 -2
pkgs/development/tools/analysis/codeql/default.nix
··· 12 12 13 13 stdenv.mkDerivation rec { 14 14 pname = "codeql"; 15 - version = "2.4.5"; 15 + version = "2.4.6"; 16 16 17 17 dontConfigure = true; 18 18 dontBuild = true; ··· 20 20 21 21 src = fetchzip { 22 22 url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip"; 23 - sha256 = "sha256-FM7fcjbZilp1spy0HxDhEAzs7Qe2r/HObKB80o4mSiw="; 23 + sha256 = "sha256-lJ/N9oduWGZAc70wl7ATBd1mnaUkeTXAW/RfqbAthsI="; 24 24 }; 25 25 26 26 nativeBuildInputs = [
+3 -3
pkgs/development/tools/kubie/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "kubie"; 5 - version = "0.12.1"; 5 + version = "0.13.4"; 6 6 7 7 src = fetchFromGitHub { 8 8 rev = "v${version}"; 9 9 owner = "sbstp"; 10 10 repo = "kubie"; 11 - sha256 = "sha256-y4/azFr2fngmUxQw3c2xAhAppYHeD6Bz7IvZ6GTdsEQ="; 11 + sha256 = "sha256-ZD63Xtnw7qzTrzFxzzZ37N177/PnRaMEzBbhz7h/zCY="; 12 12 }; 13 13 14 - cargoSha256 = "sha256-/Vg3qojBWN2tp8QaKmHrzy3cDWlkT6067Wprcjlu31U="; 14 + cargoSha256 = "sha256-c6veaasuwRtaO8TwHS0tNxjbBfekQOa52I9INcE1Jn0="; 15 15 16 16 nativeBuildInputs = [ installShellFiles ]; 17 17
+2 -2
pkgs/development/tools/minizinc/default.nix
··· 1 1 { lib, stdenv, fetchFromGitHub, cmake, flex, bison }: 2 2 let 3 - version = "2.5.4"; 3 + version = "2.5.5"; 4 4 in 5 5 stdenv.mkDerivation { 6 6 pname = "minizinc"; ··· 12 12 owner = "MiniZinc"; 13 13 repo = "libminizinc"; 14 14 rev = version; 15 - sha256 = "sha256-/vJyh2WdESimJTCASsg6xjVzG2EkL4V87B+xvIUBcMM="; 15 + sha256 = "sha256-9z2E6KqOys9UUXlXWB4eDhg34kS3PhUB1Dd1F6iGYoE="; 16 16 }; 17 17 18 18 meta = with lib; {
+116 -104
pkgs/misc/vim-plugins/generated.nix
··· 65 65 66 66 ale = buildVimPluginFrom2Nix { 67 67 pname = "ale"; 68 - version = "2021-03-21"; 68 + version = "2021-03-23"; 69 69 src = fetchFromGitHub { 70 70 owner = "dense-analysis"; 71 71 repo = "ale"; 72 - rev = "f7852dbd0a063d6d82ee17a5057fea53cb79b21d"; 73 - sha256 = "16cslwkc8kcr2z0crchl9w5p5vsbzfwpfa103wysyvq9d0q309xk"; 72 + rev = "eb0ebe622102cc6da3d7e943a3b739db7b6ed216"; 73 + sha256 = "10dp9xq8k0svr7z117a3bha4rvlgsx1j8qqdfnza94rbh8zy096k"; 74 74 }; 75 75 meta.homepage = "https://github.com/dense-analysis/ale/"; 76 76 }; ··· 389 389 390 390 chadtree = buildVimPluginFrom2Nix { 391 391 pname = "chadtree"; 392 - version = "2021-03-22"; 392 + version = "2021-03-23"; 393 393 src = fetchFromGitHub { 394 394 owner = "ms-jpq"; 395 395 repo = "chadtree"; 396 - rev = "8f7238502c742fe098e0d681c3597452aa053b89"; 397 - sha256 = "1cppnzf1slzxf3kb24pg18r2izdpd6mylrhc49rla083mr7hqx15"; 396 + rev = "18e39f1550980bc21761018e191742e66d86854d"; 397 + sha256 = "12grx41z5qf7p4ls56ww8rai0nfcl01v8iy1vayx463lb7dsvlxm"; 398 398 }; 399 399 meta.homepage = "https://github.com/ms-jpq/chadtree/"; 400 400 }; ··· 545 545 546 546 coc-nvim = buildVimPluginFrom2Nix { 547 547 pname = "coc-nvim"; 548 - version = "2021-03-22"; 548 + version = "2021-03-23"; 549 549 src = fetchFromGitHub { 550 550 owner = "neoclide"; 551 551 repo = "coc.nvim"; 552 - rev = "3b3c5f88bcb25c3d68351f417fa5e8425a3a3142"; 553 - sha256 = "1fkgyb0a5wirndk99d9ajdvxaiipgnv3r0cmvzldvy6ps5ljxabm"; 552 + rev = "e916ef84b95897a713773642bc768a88e4b8e449"; 553 + sha256 = "0svmsacpa6wvkdcdb4jb7lc7zdc31r9mqdvznskhgwzmjlhnbq8d"; 554 554 }; 555 555 meta.homepage = "https://github.com/neoclide/coc.nvim/"; 556 556 }; ··· 942 942 943 943 denite-nvim = buildVimPluginFrom2Nix { 944 944 pname = "denite-nvim"; 945 - version = "2021-03-18"; 945 + version = "2021-03-23"; 946 946 src = fetchFromGitHub { 947 947 owner = "Shougo"; 948 948 repo = "denite.nvim"; 949 - rev = "8c44de41ec46c44f84dd70907a5763112df2eacb"; 950 - sha256 = "1y235ap3hchkf3hc85frcjl5kwr56lz3vw12qzhhzhrl2k7k5ziw"; 949 + rev = "b0cc470c63b0ed3b6497f659588b004ed05872ee"; 950 + sha256 = "15ngimlnprp73fy3sa9vz39avq75mcqhr90ygj3drjj1d33vk3f3"; 951 951 }; 952 952 meta.homepage = "https://github.com/Shougo/denite.nvim/"; 953 953 }; ··· 1370 1370 src = fetchFromGitHub { 1371 1371 owner = "fenetikm"; 1372 1372 repo = "falcon"; 1373 - rev = "2ba0036e19adbefaf0beffe545e349964a68cc0a"; 1374 - sha256 = "0pg3i1dvbjv746szki36yszz6bd82pgzvfyr3ayxf7lih4pjbxmj"; 1373 + rev = "f6be01e8642dc8ccc7ed1f37b23f4b0dfa2c6f8c"; 1374 + sha256 = "1w4ld5dvy0jxgjvp6yf8qibc4x82hn490vfg0hpln67nr6mhq1iw"; 1375 1375 }; 1376 1376 meta.homepage = "https://github.com/fenetikm/falcon/"; 1377 1377 }; ··· 1643 1643 1644 1644 gitsigns-nvim = buildVimPluginFrom2Nix { 1645 1645 pname = "gitsigns-nvim"; 1646 - version = "2021-03-17"; 1646 + version = "2021-03-23"; 1647 1647 src = fetchFromGitHub { 1648 1648 owner = "lewis6991"; 1649 1649 repo = "gitsigns.nvim"; 1650 - rev = "18d0a4bab12193460e6443d02d22218b5ce05a35"; 1651 - sha256 = "0qizdphmady0baz5wgi92vdy9wbz1npgahsx0kmpx8c4vfvcdv10"; 1650 + rev = "6bc3dba1a73466282215491d9ede85261199b7f2"; 1651 + sha256 = "0qfpadjv4qd92kgjvwga285404wzzy0q4vylbdfwngf9s29bpj40"; 1652 1652 }; 1653 1653 meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/"; 1654 1654 }; ··· 1811 1811 1812 1812 hop-nvim = buildVimPluginFrom2Nix { 1813 1813 pname = "hop-nvim"; 1814 - version = "2021-03-18"; 1814 + version = "2021-03-23"; 1815 1815 src = fetchFromGitHub { 1816 1816 owner = "phaazon"; 1817 1817 repo = "hop.nvim"; 1818 - rev = "8d1a199236590a6e6667a45e0084d26aaeb32fb6"; 1819 - sha256 = "1skya8iqkf9bblpdf1vvkl73i9rqm0lqd40114a8ppk8vbqjp53x"; 1818 + rev = "4c6d776005eed4ebc66bf3af8a336d004ae238a3"; 1819 + sha256 = "17dcvi3jlwzm11lykjz3dh2ckbbmdp221y0d7wl0xq12s2g1v4pg"; 1820 1820 }; 1821 1821 meta.homepage = "https://github.com/phaazon/hop.nvim/"; 1822 1822 }; ··· 2340 2340 2341 2341 lualine-nvim = buildVimPluginFrom2Nix { 2342 2342 pname = "lualine-nvim"; 2343 - version = "2021-03-19"; 2343 + version = "2021-03-23"; 2344 2344 src = fetchFromGitHub { 2345 2345 owner = "hoob3rt"; 2346 2346 repo = "lualine.nvim"; 2347 - rev = "f80d5adb415812484c1b86692846feb3a8ce7e46"; 2348 - sha256 = "0gp0nw173ryn6mn9z98jvrk9y7fyhm08r90qc1zv7z85lngd9226"; 2347 + rev = "7bf5076ece80cde0a48dac403799a89c8caefd1d"; 2348 + sha256 = "0zc1s75dqxb1dxma59mlc88lf74i0mpbz15khcfv1pfp5cr3hhih"; 2349 2349 }; 2350 2350 meta.homepage = "https://github.com/hoob3rt/lualine.nvim/"; 2351 2351 }; ··· 2412 2412 2413 2413 minimap-vim = buildVimPluginFrom2Nix { 2414 2414 pname = "minimap-vim"; 2415 - version = "2021-03-20"; 2415 + version = "2021-03-23"; 2416 2416 src = fetchFromGitHub { 2417 2417 owner = "wfxr"; 2418 2418 repo = "minimap.vim"; 2419 - rev = "adc19481ceececc53b4a6e3157bae7ebf7b9bb66"; 2420 - sha256 = "14hjfnqh9wvbhgf55arjhwbcsm1d91x9mhglz2qdmln6nr66ayz4"; 2419 + rev = "31e22971ba5f5f3e5955fa8e2247b6cd22c3f7b1"; 2420 + sha256 = "19hg4nnwdr6mj9wyrcapg91vm2bzvcsfbvjkirdsxp2v3ca83w2i"; 2421 2421 }; 2422 2422 meta.homepage = "https://github.com/wfxr/minimap.vim/"; 2423 2423 }; ··· 2724 2724 2725 2725 neogit = buildVimPluginFrom2Nix { 2726 2726 pname = "neogit"; 2727 - version = "2021-03-21"; 2727 + version = "2021-03-23"; 2728 2728 src = fetchFromGitHub { 2729 2729 owner = "TimUntersberger"; 2730 2730 repo = "neogit"; 2731 - rev = "0b969a8f6a7d38aed32ca7bddfeb19f80a2b1a29"; 2732 - sha256 = "1x9q4kl5595dq7ydpv21apbff5pr15diyww8cd600ibjwybmlm8v"; 2731 + rev = "537cc6e1757c41bd75717ebd4421c27b7ebe9205"; 2732 + sha256 = "0s0z2qmsnqj5mgsqb6x4cwh507sc3y4ahqvzc3bijd224xff97b1"; 2733 2733 }; 2734 2734 meta.homepage = "https://github.com/TimUntersberger/neogit/"; 2735 2735 }; ··· 3022 3022 meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/"; 3023 3023 }; 3024 3024 3025 + nvim-bufferline-lua = buildVimPluginFrom2Nix { 3026 + pname = "nvim-bufferline-lua"; 3027 + version = "2021-03-22"; 3028 + src = fetchFromGitHub { 3029 + owner = "akinsho"; 3030 + repo = "nvim-bufferline.lua"; 3031 + rev = "437aa7cacc8eb6b7840e298f55666f4a6dea20e7"; 3032 + sha256 = "15df8l8mx9cbm5mirn511d965nlxh5gj17d0b6rffxjlzc5ciai3"; 3033 + }; 3034 + meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/"; 3035 + }; 3036 + 3025 3037 nvim-cm-racer = buildVimPluginFrom2Nix { 3026 3038 pname = "nvim-cm-racer"; 3027 3039 version = "2017-07-27"; ··· 3036 3048 3037 3049 nvim-compe = buildVimPluginFrom2Nix { 3038 3050 pname = "nvim-compe"; 3039 - version = "2021-03-21"; 3051 + version = "2021-03-23"; 3040 3052 src = fetchFromGitHub { 3041 3053 owner = "hrsh7th"; 3042 3054 repo = "nvim-compe"; 3043 - rev = "08dbc5f47d2be27cbc92c9684ec876b1eb778a4f"; 3044 - sha256 = "09fnzidcmknkrmls3wmjfa6drp5i8hmcbfs3hrvvp8jywgfyrpr3"; 3055 + rev = "777b98390da6638583b0e7ba2316aa1257462cad"; 3056 + sha256 = "1ggh7038kzc61ihjbf8zvq1vxgjg9hpwqvjj979mf3qzrznrd89i"; 3045 3057 }; 3046 3058 meta.homepage = "https://github.com/hrsh7th/nvim-compe/"; 3047 3059 }; ··· 3060 3072 3061 3073 nvim-dap = buildVimPluginFrom2Nix { 3062 3074 pname = "nvim-dap"; 3063 - version = "2021-03-15"; 3075 + version = "2021-03-22"; 3064 3076 src = fetchFromGitHub { 3065 3077 owner = "mfussenegger"; 3066 3078 repo = "nvim-dap"; 3067 - rev = "492849bf57425d005c4a13ee2a5d6f3c8207cc02"; 3068 - sha256 = "1jspnzkb9371jfkppj77f95zccbnyw6gn0i4jlqpbci2p0ppp0gz"; 3079 + rev = "f5180887cbf0505f64e43516072e74b74652a5f9"; 3080 + sha256 = "1cy36pxj6kfggjds8bb13ggj91c4vq3b37i78pjyh8jynyfd0va7"; 3069 3081 }; 3070 3082 meta.homepage = "https://github.com/mfussenegger/nvim-dap/"; 3071 3083 }; ··· 3132 3144 3133 3145 nvim-jdtls = buildVimPluginFrom2Nix { 3134 3146 pname = "nvim-jdtls"; 3135 - version = "2021-03-20"; 3147 + version = "2021-03-22"; 3136 3148 src = fetchFromGitHub { 3137 3149 owner = "mfussenegger"; 3138 3150 repo = "nvim-jdtls"; 3139 - rev = "c4199f88d5f6bf269b91ae5d775a082aef05f9bd"; 3140 - sha256 = "18cnhhybhzw20l6v4rxzk5a5jcgv8l7jhbmzl529rd9jdhxqikfa"; 3151 + rev = "fede58fdb67c451697bd1028bf084d4f0fbfc38b"; 3152 + sha256 = "052rvsl0prhvbic350x1q5ma5c8km8sf3y92gng4sc2wj37fs2k8"; 3141 3153 }; 3142 3154 meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/"; 3143 3155 }; ··· 3156 3168 3157 3169 nvim-lspconfig = buildVimPluginFrom2Nix { 3158 3170 pname = "nvim-lspconfig"; 3159 - version = "2021-03-20"; 3171 + version = "2021-03-22"; 3160 3172 src = fetchFromGitHub { 3161 3173 owner = "neovim"; 3162 3174 repo = "nvim-lspconfig"; 3163 - rev = "00e9a7450eac88121768df21fde7d21f43de7529"; 3164 - sha256 = "0qqr6zz4a1i13hmj4hvcx08m5ipy28iz3hlaa239jf5yx9rw0y1h"; 3175 + rev = "487ea4a2393fd6d3fc1bf5d198e4f4583c5082ac"; 3176 + sha256 = "1dr0my4y7qvy7d7ypkz4d0d1p223092vsn5wfpj4qv84k84ilpp8"; 3165 3177 }; 3166 3178 meta.homepage = "https://github.com/neovim/nvim-lspconfig/"; 3167 3179 }; ··· 3204 3216 3205 3217 nvim-scrollview = buildVimPluginFrom2Nix { 3206 3218 pname = "nvim-scrollview"; 3207 - version = "2021-03-21"; 3219 + version = "2021-03-23"; 3208 3220 src = fetchFromGitHub { 3209 3221 owner = "dstein64"; 3210 3222 repo = "nvim-scrollview"; 3211 - rev = "693b93d273c4c0c0670d364cab9f3ab880d2f306"; 3212 - sha256 = "04dsjc6f8ag0vfr4sa6nmpfqimx48cvadwv7dd3m9g2mwivkfgyi"; 3223 + rev = "902f24503ab7a754be2a1c483de1cd3428bd85ec"; 3224 + sha256 = "0b31lpzdx1z88fm60p7d5gs442h4apm2n9h098n4j0ghcs5ppvnf"; 3213 3225 }; 3214 3226 meta.homepage = "https://github.com/dstein64/nvim-scrollview/"; 3215 3227 }; ··· 3228 3240 3229 3241 nvim-tree-lua = buildVimPluginFrom2Nix { 3230 3242 pname = "nvim-tree-lua"; 3231 - version = "2021-03-16"; 3243 + version = "2021-03-23"; 3232 3244 src = fetchFromGitHub { 3233 3245 owner = "kyazdani42"; 3234 3246 repo = "nvim-tree.lua"; 3235 - rev = "f7ad4ce5f4c93c91aca00f0d9f10316c98471798"; 3236 - sha256 = "0l7ixschycw3lvg488bxgbbzsba59k0zkm8yrjdh63dp2nk2p2kj"; 3247 + rev = "e0b9882a8a8ecce8b58076091217d3643f215da3"; 3248 + sha256 = "1i8mqa45gg0lagcd4q5qwp97zlynkdw42ajw0wh8r92i5bs9crd8"; 3237 3249 }; 3238 3250 meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/"; 3239 3251 }; 3240 3252 3241 3253 nvim-treesitter = buildVimPluginFrom2Nix { 3242 3254 pname = "nvim-treesitter"; 3243 - version = "2021-03-22"; 3255 + version = "2021-03-23"; 3244 3256 src = fetchFromGitHub { 3245 3257 owner = "nvim-treesitter"; 3246 3258 repo = "nvim-treesitter"; 3247 - rev = "600509aad6c3e38c45a0f67802ede5d2204e0250"; 3248 - sha256 = "0j92ayfrlapgh09mz9rxfjzxag2kjmljd2qkbv54jl5dzr6p0f3q"; 3259 + rev = "09045354c0245ca866104c526bc57c2a06d7f381"; 3260 + sha256 = "182jvkwixmv1i39npvxkj0nr19cazqkab1kbprx7282dad68x30b"; 3249 3261 }; 3250 3262 meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; 3251 3263 }; ··· 3288 3300 3289 3301 nvim-ts-rainbow = buildVimPluginFrom2Nix { 3290 3302 pname = "nvim-ts-rainbow"; 3291 - version = "2021-03-22"; 3303 + version = "2021-03-23"; 3292 3304 src = fetchFromGitHub { 3293 3305 owner = "p00f"; 3294 3306 repo = "nvim-ts-rainbow"; 3295 - rev = "4c9043e117bfa5ea8e4d5b04b60b2e29c0548e14"; 3296 - sha256 = "1ada87qkka1bsjdy52xqcnj5rmd9fl8q2v0km1pml3lcjyi0zdf5"; 3307 + rev = "f61093c56a53c6790b142f76bdfaa476f497b93f"; 3308 + sha256 = "1wzg1y0gksprdxhww0vcswfa0imkkrnhczljhlb94lrrmknv3nxv"; 3297 3309 }; 3298 3310 meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/"; 3299 3311 }; 3300 3312 3301 3313 nvim-web-devicons = buildVimPluginFrom2Nix { 3302 3314 pname = "nvim-web-devicons"; 3303 - version = "2021-03-10"; 3315 + version = "2021-03-23"; 3304 3316 src = fetchFromGitHub { 3305 3317 owner = "kyazdani42"; 3306 3318 repo = "nvim-web-devicons"; 3307 - rev = "1fb0962b8c4a217eec8166b03d683aa070115ed7"; 3308 - sha256 = "1rqswcjqrg6ckp7vyzqlncfabkggnhjvp3b0sq7y2g333z925sjm"; 3319 + rev = "6e32d113d848c76ddbcc824038244657f170a97a"; 3320 + sha256 = "02m8bsq7172sm9vkq3shh87xv4c3jxkgvhwhd3vv0na86kl9sqd6"; 3309 3321 }; 3310 3322 meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/"; 3311 3323 }; ··· 3420 3432 3421 3433 packer-nvim = buildVimPluginFrom2Nix { 3422 3434 pname = "packer-nvim"; 3423 - version = "2021-03-15"; 3435 + version = "2021-03-22"; 3424 3436 src = fetchFromGitHub { 3425 3437 owner = "wbthomason"; 3426 3438 repo = "packer.nvim"; 3427 - rev = "6d7be3232ed0dcbbd040bf92ba70b997fe4fd840"; 3428 - sha256 = "0k1ydkplqpizyqn56bdwhpsdib384ikv2lqfmk8j11r7p6m0xvir"; 3439 + rev = "77cd1d1e0cfcb582b210d75745594f4fb60d3418"; 3440 + sha256 = "0yhdxh6768z4dalpmzhhypnjfx3mjx7d6r722lv9g15xg7i1lg3q"; 3429 3441 }; 3430 3442 meta.homepage = "https://github.com/wbthomason/packer.nvim/"; 3431 3443 }; ··· 3504 3516 3505 3517 playground = buildVimPluginFrom2Nix { 3506 3518 pname = "playground"; 3507 - version = "2021-02-17"; 3519 + version = "2021-03-22"; 3508 3520 src = fetchFromGitHub { 3509 3521 owner = "nvim-treesitter"; 3510 3522 repo = "playground"; 3511 - rev = "444eab728ecaf337629a45a733535e94a3efc04a"; 3512 - sha256 = "0r10fmk90wdc9hj3kdfkb93vvw1kdxwkl20f9zs3rfs5vs7p9i97"; 3523 + rev = "d96cef521d22afd1a409449a890f20f50b436ee1"; 3524 + sha256 = "1j1iqzi9q8fnl02hvazl8szg84iz8dqy0n52ngh1lvl78s9qa393"; 3513 3525 }; 3514 3526 meta.homepage = "https://github.com/nvim-treesitter/playground/"; 3515 3527 }; ··· 3985 3997 3986 3998 sonokai = buildVimPluginFrom2Nix { 3987 3999 pname = "sonokai"; 3988 - version = "2021-02-28"; 4000 + version = "2021-03-22"; 3989 4001 src = fetchFromGitHub { 3990 4002 owner = "sainnhe"; 3991 4003 repo = "sonokai"; 3992 - rev = "86298232f4f5ab418d5d9d18a336d7ab8b167b68"; 3993 - sha256 = "060k664gm4857nfmxaj0v6sz50mb3y9v8489jnv1bhqplzqf8gmy"; 4004 + rev = "78f1b14ad18b043eb888a173f4c431dbf79462d8"; 4005 + sha256 = "0spnpzr874ad9jpawcgydfm242wq55ychcky14f1qa09svsrdiv0"; 3994 4006 }; 3995 4007 meta.homepage = "https://github.com/sainnhe/sonokai/"; 3996 4008 }; ··· 4238 4250 4239 4251 tagbar = buildVimPluginFrom2Nix { 4240 4252 pname = "tagbar"; 4241 - version = "2021-02-18"; 4253 + version = "2021-03-23"; 4242 4254 src = fetchFromGitHub { 4243 4255 owner = "preservim"; 4244 4256 repo = "tagbar"; 4245 - rev = "51ff7a05404e2f5c83799dd6c38134ed4aaca85c"; 4246 - sha256 = "0i7qzn3vlvjjd5qvf230r7aaqz84rn30zkn643fdvpni7pxfywdv"; 4257 + rev = "f6012cb65da4bda46b0779a36840df36ad01483e"; 4258 + sha256 = "08vb3ffm1f47q5gxyqmmfv75x12001qpkqml7v612wnnfpclcqf5"; 4247 4259 }; 4248 4260 meta.homepage = "https://github.com/preservim/tagbar/"; 4249 4261 }; ··· 5248 5260 5249 5261 vim-commentary = buildVimPluginFrom2Nix { 5250 5262 pname = "vim-commentary"; 5251 - version = "2019-11-18"; 5263 + version = "2021-03-23"; 5252 5264 src = fetchFromGitHub { 5253 5265 owner = "tpope"; 5254 5266 repo = "vim-commentary"; 5255 - rev = "f8238d70f873969fb41bf6a6b07ca63a4c0b82b1"; 5256 - sha256 = "09d81q9na7pvvrmxxqy09ffdzsx5v5dikinb704c9wm4ys2bidr9"; 5267 + rev = "349340debb34f6302931f0eb7139b2c11dfdf427"; 5268 + sha256 = "01lpfcn2hmvxddcf97f4qx5vksxj1hwrxb0c8ri59z9lb9z2hgjd"; 5257 5269 }; 5258 5270 meta.homepage = "https://github.com/tpope/vim-commentary/"; 5259 5271 }; ··· 5764 5776 5765 5777 vim-floaterm = buildVimPluginFrom2Nix { 5766 5778 pname = "vim-floaterm"; 5767 - version = "2021-03-17"; 5779 + version = "2021-03-23"; 5768 5780 src = fetchFromGitHub { 5769 5781 owner = "voldikss"; 5770 5782 repo = "vim-floaterm"; 5771 - rev = "2d9107b1e1ceb3d4f118647f2cd5f9165172ccf9"; 5772 - sha256 = "1ja58d2x8a5af7vhvbjp8x7l4bzbvndr2nd97p115q89l2zy6ayp"; 5783 + rev = "a1403fd295edeffdc2e387f9308dc4392f057e68"; 5784 + sha256 = "1dc1169lwz1wjgqp27g8wa37yqsvc4fgmrcprc3ys4r3s9m6y5m6"; 5773 5785 }; 5774 5786 meta.homepage = "https://github.com/voldikss/vim-floaterm/"; 5775 5787 }; ··· 5824 5836 5825 5837 vim-fugitive = buildVimPluginFrom2Nix { 5826 5838 pname = "vim-fugitive"; 5827 - version = "2021-03-21"; 5839 + version = "2021-03-23"; 5828 5840 src = fetchFromGitHub { 5829 5841 owner = "tpope"; 5830 5842 repo = "vim-fugitive"; 5831 - rev = "58d2b25836f420cf2fe20cc0b6f988165ae33782"; 5832 - sha256 = "0550dq20axl1qj6rasws2hsar7x4kjx9fspqzmkisv4wzrxr1kp5"; 5843 + rev = "857496c32f02ebe74e821bdd2240aafc1455f8ea"; 5844 + sha256 = "11kyccfmcm7jpvaidd84wdn5vypg9lcdpkpmy2hy7k23gg7hzpza"; 5833 5845 }; 5834 5846 meta.homepage = "https://github.com/tpope/vim-fugitive/"; 5835 5847 }; ··· 5944 5956 5945 5957 vim-go = buildVimPluginFrom2Nix { 5946 5958 pname = "vim-go"; 5947 - version = "2021-03-21"; 5959 + version = "2021-03-22"; 5948 5960 src = fetchFromGitHub { 5949 5961 owner = "fatih"; 5950 5962 repo = "vim-go"; 5951 - rev = "a60ff48be1d57991866320886569d012cdfb9e6f"; 5952 - sha256 = "1w3cbvdl08vf7d9w4d3vaw3l4ccvzvgfkamk7qxanmcg2vd0k1rg"; 5963 + rev = "00c5f2dad170131c0c850dbf331d63ddf515116d"; 5964 + sha256 = "07ckmqxl25hzv10iarj6xdhg65q8450zriqc9wd6c2hlldj45ys3"; 5953 5965 }; 5954 5966 meta.homepage = "https://github.com/fatih/vim-go/"; 5955 5967 }; ··· 6594 6606 6595 6607 vim-lsc = buildVimPluginFrom2Nix { 6596 6608 pname = "vim-lsc"; 6597 - version = "2021-03-21"; 6609 + version = "2021-03-23"; 6598 6610 src = fetchFromGitHub { 6599 6611 owner = "natebosch"; 6600 6612 repo = "vim-lsc"; 6601 - rev = "d2b394c0033014288daac317c32918bed469ff66"; 6602 - sha256 = "0a8hd20v5q3bjq5pcs8p708f5jmh1y87aqa0f7ip4snldnf6gq2d"; 6613 + rev = "2f0cbbfb8ea8997b408e447a2bc9554a3de33617"; 6614 + sha256 = "1y3r5a5mcjf8dp0pkmhgnbay10hh48w1b3wd795wwbm6nx4izjjq"; 6603 6615 }; 6604 6616 meta.homepage = "https://github.com/natebosch/vim-lsc/"; 6605 6617 }; ··· 6919 6931 6920 6932 vim-obsession = buildVimPluginFrom2Nix { 6921 6933 pname = "vim-obsession"; 6922 - version = "2020-01-19"; 6934 + version = "2021-03-22"; 6923 6935 src = fetchFromGitHub { 6924 6936 owner = "tpope"; 6925 6937 repo = "vim-obsession"; 6926 - rev = "96a3f837c112cb64e0a9857b69f6d6a71041155e"; 6927 - sha256 = "11h7jyg7fhjmq3pmpc93nrsxm175ra14407rs3558h8p04snc159"; 6938 + rev = "82c9ac5e130c92a46e043dd9cd9e5b48d15e286d"; 6939 + sha256 = "0lfcba8sk25l5yp3agh6pwniddf8jx627ikpr8i2z9ary2fqsj98"; 6928 6940 }; 6929 6941 meta.homepage = "https://github.com/tpope/vim-obsession/"; 6930 6942 }; ··· 7723 7735 7724 7736 vim-snippets = buildVimPluginFrom2Nix { 7725 7737 pname = "vim-snippets"; 7726 - version = "2021-03-15"; 7738 + version = "2021-03-22"; 7727 7739 src = fetchFromGitHub { 7728 7740 owner = "honza"; 7729 7741 repo = "vim-snippets"; 7730 - rev = "a8ac81b8922ac621e7043813d98e69ad0ac265a4"; 7731 - sha256 = "0gl77mnajzvmnxwnbzb5fqzzljb59lbfv23gzbz1h493gfm0f04n"; 7742 + rev = "164bc3aa42feaa3c1deec84f7a10840418aec300"; 7743 + sha256 = "0snzmjl4qiw6598a3ajc7v6l4q35wxf8b9lklk47pmfmalvril6w"; 7732 7744 }; 7733 7745 meta.homepage = "https://github.com/honza/vim-snippets/"; 7734 7746 }; ··· 7807 7819 7808 7820 vim-startuptime = buildVimPluginFrom2Nix { 7809 7821 pname = "vim-startuptime"; 7810 - version = "2021-02-23"; 7822 + version = "2021-03-22"; 7811 7823 src = fetchFromGitHub { 7812 7824 owner = "dstein64"; 7813 7825 repo = "vim-startuptime"; 7814 - rev = "af70d17a863c9a33def9cafbb3911195a571c686"; 7815 - sha256 = "078xq6bwkbwsjajyq3c9bn8b3r0da6j70vp1ba934a6jjdv6vrj4"; 7826 + rev = "cee157ee4f73ddacfe1a70bb833b96f7a47a10c2"; 7827 + sha256 = "1y049vbjhsg80am0hxyrcq0d0p7qfyvb1z38nc7yd7bcgwsqc5ac"; 7816 7828 }; 7817 7829 meta.homepage = "https://github.com/dstein64/vim-startuptime/"; 7818 7830 }; ··· 8528 8540 8529 8541 vimspector = buildVimPluginFrom2Nix { 8530 8542 pname = "vimspector"; 8531 - version = "2021-03-20"; 8543 + version = "2021-03-22"; 8532 8544 src = fetchFromGitHub { 8533 8545 owner = "puremourning"; 8534 8546 repo = "vimspector"; 8535 - rev = "35e5b3d56e193ee6129eabedcd48fd17b8293b2d"; 8536 - sha256 = "0njs7bn3hzr44sn04lg44baia5khpxra0l1llshx42bkdidcj1s1"; 8547 + rev = "054ea35428e5e8d6abe12b6a535a3b0426d4874e"; 8548 + sha256 = "0cx35hbyhrzmbfzsikbpa4jh0gr3sbdhk27v2nsbwj4i3rg9767p"; 8537 8549 fetchSubmodules = true; 8538 8550 }; 8539 8551 meta.homepage = "https://github.com/puremourning/vimspector/"; ··· 8541 8553 8542 8554 vimtex = buildVimPluginFrom2Nix { 8543 8555 pname = "vimtex"; 8544 - version = "2021-03-21"; 8556 + version = "2021-03-23"; 8545 8557 src = fetchFromGitHub { 8546 8558 owner = "lervag"; 8547 8559 repo = "vimtex"; 8548 - rev = "4b9e69dc5e817c3436843ee0cb431e59fa5705b0"; 8549 - sha256 = "1s2h2bgd751jf7vj9dr1756g7gxdx3b7pwx49686273ibv1spnwf"; 8560 + rev = "3109f140196716b3b3a430f06df35723d85f991d"; 8561 + sha256 = "1n44sg35xm1jc70wpjgc5xjf8h6hrpa2f9jwq6x3dcrppj781naq"; 8550 8562 }; 8551 8563 meta.homepage = "https://github.com/lervag/vimtex/"; 8552 8564 }; ··· 8722 8734 8723 8735 YouCompleteMe = buildVimPluginFrom2Nix { 8724 8736 pname = "YouCompleteMe"; 8725 - version = "2021-03-20"; 8737 + version = "2021-03-22"; 8726 8738 src = fetchFromGitHub { 8727 8739 owner = "ycm-core"; 8728 8740 repo = "YouCompleteMe"; 8729 - rev = "3352684bfb6a08be8e864a46b0773e459d4d201f"; 8730 - sha256 = "03mqrprmiain4n9aw5388msq4smczw1avcls71rj0c7igzpdc4vw"; 8741 + rev = "ed423e8a1d2a5842a126d33b824ad3b65f85f3ba"; 8742 + sha256 = "19c238sdc6i3ky374v52g13csnbmdcm9d97iji6fmklmzsyrq4cr"; 8731 8743 fetchSubmodules = true; 8732 8744 }; 8733 8745 meta.homepage = "https://github.com/ycm-core/YouCompleteMe/"; ··· 8771 8783 8772 8784 zephyr-nvim = buildVimPluginFrom2Nix { 8773 8785 pname = "zephyr-nvim"; 8774 - version = "2021-03-18"; 8786 + version = "2021-03-23"; 8775 8787 src = fetchFromGitHub { 8776 8788 owner = "glepnir"; 8777 8789 repo = "zephyr-nvim"; 8778 - rev = "05315a214fc0b4681e596cbcb40045d54564ff8c"; 8779 - sha256 = "0bapbwyvvbvqd8ggcyns2y5iya44jvb0jxq14xh5qfnxiycrwrgi"; 8790 + rev = "79e273ed8ff386a81e6a88ae888ec6d878a9dcbc"; 8791 + sha256 = "00x0b2lwrfkmny6rhwjrb1kyp2lai597f6f62whhwgw7iq9j5b5k"; 8780 8792 }; 8781 8793 meta.homepage = "https://github.com/glepnir/zephyr-nvim/"; 8782 8794 };
+1
pkgs/misc/vim-plugins/vim-plugin-names
··· 3 3 ackyshake/Spacegray.vim@main 4 4 airblade/vim-gitgutter 5 5 airblade/vim-rooter 6 + akinsho/nvim-bufferline.lua 6 7 aklt/plantuml-syntax 7 8 altercation/vim-colors-solarized 8 9 alvan/vim-closetag
+25 -9
pkgs/shells/mksh/default.nix
··· 1 - { lib, stdenv, fetchurl }: 1 + { lib 2 + , stdenv 3 + , fetchurl 4 + , installShellFiles 5 + }: 2 6 3 7 stdenv.mkDerivation rec { 4 8 pname = "mksh"; ··· 6 10 7 11 src = fetchurl { 8 12 urls = [ 9 - "https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz" 10 - "http://pub.allbsd.org/MirOS/dist/mir/mksh/mksh-R${version}.tgz" 13 + "https://www.mirbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz" 14 + "http://pub.allbsd.org/MirOS/dist/mir/mksh/${pname}-R${version}.tgz" 11 15 ]; 12 - sha256 = "01n5ggw33bw4jv4d3148wlw9n4aj7vdn3ffnc66c9w9pldjidbkp"; 16 + hash = "sha256-d64WZaM38cSMYda5Yds+UhGbOOWIhNHIloSvMfh7xQY="; 13 17 }; 14 18 19 + nativeBuildInputs = [ 20 + installShellFiles 21 + ]; 22 + 15 23 dontConfigure = true; 16 24 17 - buildPhase = "sh ./Build.sh -r"; 25 + buildPhase = '' 26 + runHook preBuild 27 + sh ./Build.sh -r 28 + runHook postBuild 29 + ''; 18 30 19 31 installPhase = '' 20 - install -D -m 755 mksh $out/bin/mksh 21 - install -D -m 644 mksh.1 $out/share/man/man1/mksh.1 22 - install -D -m 644 dot.mkshrc $out/share/mksh/mkshrc 32 + runHook preInstall 33 + install -D mksh $out/bin/mksh 34 + install -D dot.mkshrc $out/share/mksh/mkshrc 35 + installManPage mksh.1 36 + runHook postInstall 23 37 ''; 24 38 25 39 meta = with lib; { ··· 32 46 systems. 33 47 ''; 34 48 homepage = "https://www.mirbsd.org/mksh.htm"; 35 - license = licenses.bsd3; 49 + license = with licenses; [ miros isc unicode-dfs-2016 ]; 36 50 maintainers = with maintainers; [ AndersonTorres joachifm ]; 37 51 platforms = platforms.unix; 38 52 }; ··· 41 55 shellPath = "/bin/mksh"; 42 56 }; 43 57 } 58 + # TODO [ AndersonTorres ]: lksh 59 + # TODO [ AndersonTorres ]: a more accurate licensing info
+6 -1
pkgs/stdenv/generic/make-derivation.nix
··· 106 106 ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0; 107 107 dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || (stdenv.noCC or false); 108 108 supportedHardeningFlags = [ "fortify" "stackprotector" "pie" "pic" "strictoverflow" "format" "relro" "bindnow" ]; 109 - defaultHardeningFlags = if stdenv.hostPlatform.isMusl 109 + # Musl-based platforms will keep "pie", other platforms will not. 110 + defaultHardeningFlags = if stdenv.hostPlatform.isMusl && 111 + # Except when: 112 + # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. 113 + # - static armv7l, where compilation fails. 114 + !((stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) && stdenv.hostPlatform.isStatic) 110 115 then supportedHardeningFlags 111 116 else lib.remove "pie" supportedHardeningFlags; 112 117 enabledHardeningOptions =
+2 -2
pkgs/tools/admin/salt/default.nix
··· 7 7 }: 8 8 python3.pkgs.buildPythonApplication rec { 9 9 pname = "salt"; 10 - version = "3002.5"; 10 + version = "3002.6"; 11 11 12 12 src = python3.pkgs.fetchPypi { 13 13 inherit pname version; 14 - sha256 = "1bqranhanxcxjc1qcc6cm95f4xxag0ic9g61dq352hqh6m1l1ay8"; 14 + sha256 = "/8R4VpNj4dF7ajoMQh6q6cB5u+q8THcloiLQ+/kDoKU="; 15 15 }; 16 16 17 17 propagatedBuildInputs = with python3.pkgs; [
+2
pkgs/top-level/kodi-packages.nix
··· 46 46 47 47 # addon packages 48 48 49 + a4ksubtitles = callPackage ../applications/video/kodi-packages/a4ksubtitles { }; 50 + 49 51 controllers = { 50 52 default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; }; 51 53