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