nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'master' into staging-next

Fixed trivial conflicts caused by removing rec.

+3153 -2159
+1
doc/functions.xml
··· 20 20 <xi:include href="functions/appimagetools.xml" /> 21 21 <xi:include href="functions/prefer-remote-fetch.xml" /> 22 22 <xi:include href="functions/nix-gitignore.xml" /> 23 + <xi:include href="functions/ocitools.xml" /> 23 24 </chapter>
+76
doc/functions/ocitools.xml
··· 1 + <section xmlns="http://docbook.org/ns/docbook" 2 + xmlns:xlink="http://www.w3.org/1999/xlink" 3 + xmlns:xi="http://www.w3.org/2001/XInclude" 4 + xml:id="sec-pkgs-ociTools"> 5 + <title>pkgs.ociTools</title> 6 + 7 + <para> 8 + <varname>pkgs.ociTools</varname> is a set of functions for creating 9 + containers according to the 10 + <link xlink:href="https://github.com/opencontainers/runtime-spec">OCI 11 + container specification v1.0.0</link>. Beyond that it makes no assumptions 12 + about the container runner you choose to use to run the created container. 13 + </para> 14 + 15 + <section xml:id="ssec-pkgs-ociTools-buildContainer"> 16 + <title>buildContainer</title> 17 + 18 + <para> 19 + This function creates a simple OCI container that runs a single command 20 + inside of it. An OCI container consists of a <varname>config.json</varname> 21 + and a rootfs directory.The nix store of the container will contain all 22 + referenced dependencies of the given command. 23 + </para> 24 + 25 + <para> 26 + The parameters of <varname>buildContainer</varname> with an example value 27 + are described below: 28 + </para> 29 + 30 + <example xml:id='ex-ociTools-buildContainer'> 31 + <title>Build Container</title> 32 + <programlisting> 33 + buildContainer { 34 + cmd = with pkgs; writeScript "run.sh" '' 35 + #!${bash}/bin/bash 36 + ${coreutils}/bin/exec ${bash}/bin/bash 37 + ''; <co xml:id='ex-ociTools-buildContainer-1' /> 38 + 39 + mounts = { 40 + "/data" = { 41 + type = "none"; 42 + source = "/var/lib/mydata"; 43 + options = [ "bind" ]; 44 + }; 45 + };<co xml:id='ex-ociTools-buildContainer-2' /> 46 + 47 + readonly = false; <co xml:id='ex-ociTools-buildContainer-3' /> 48 + } 49 + 50 + </programlisting> 51 + <calloutlist> 52 + <callout arearefs='ex-ociTools-buildContainer-1'> 53 + <para> 54 + <varname>cmd</varname> specifies the program to run inside the container. 55 + This is the only required argument for <varname>buildContainer</varname>. 56 + All referenced packages inside the derivation will be made available 57 + inside the container 58 + </para> 59 + </callout> 60 + <callout arearefs='ex-ociTools-buildContainer-2'> 61 + <para> 62 + <varname>mounts</varname> specifies additional mount points chosen by the 63 + user. By default only a minimal set of necessary filesystems are mounted 64 + into the container (e.g procfs, cgroupfs) 65 + </para> 66 + </callout> 67 + <callout arearefs='ex-ociTools-buildContainer-3'> 68 + <para> 69 + <varname>readonly</varname> makes the container's rootfs read-only if it is set to true. 70 + The default value is false <literal>false</literal>. 71 + </para> 72 + </callout> 73 + </calloutlist> 74 + </example> 75 + </section> 76 + </section>
+43
doc/stdenv.xml
··· 2716 2716 </varlistentry> 2717 2717 <varlistentry> 2718 2718 <term> 2719 + installShellFiles 2720 + </term> 2721 + <listitem> 2722 + <para> 2723 + This hook helps with installing manpages and shell completion files. It 2724 + exposes 2 shell functions <literal>installManPage</literal> and 2725 + <literal>installShellCompletion</literal> that can be used from your 2726 + <literal>postInstall</literal> hook. 2727 + </para> 2728 + <para> 2729 + The <literal>installManPage</literal> function takes one or more paths 2730 + to manpages to install. The manpages must have a section suffix, and may 2731 + optionally be compressed (with <literal>.gz</literal> suffix). This 2732 + function will place them into the correct directory. 2733 + </para> 2734 + <para> 2735 + The <literal>installShellCompletion</literal> function takes one or more 2736 + paths to shell completion files. By default it will autodetect the shell 2737 + type from the completion file extension, but you may also specify it by 2738 + passing one of <literal>--bash</literal>, <literal>--fish</literal>, or 2739 + <literal>--zsh</literal>. These flags apply to all paths listed after 2740 + them (up until another shell flag is given). Each path may also have a 2741 + custom installation name provided by providing a flag <literal>--name 2742 + NAME</literal> before the path. If this flag is not provided, zsh 2743 + completions will be renamed automatically such that 2744 + <literal>foobar.zsh</literal> becomes <literal>_foobar</literal>. 2745 + <programlisting> 2746 + nativeBuildInputs = [ installShellFiles ]; 2747 + postInstall = '' 2748 + installManPage doc/foobar.1 doc/barfoo.3 2749 + # explicit behavior 2750 + installShellCompletion --bash --name foobar.bash share/completions.bash 2751 + installShellCompletion --fish --name foobar.fish share/completions.fish 2752 + installShellCompletion --zsh --name _foobar share/completions.zsh 2753 + # implicit behavior 2754 + installShellCompletion share/completions/foobar.{bash,fish,zsh} 2755 + ''; 2756 + </programlisting> 2757 + </para> 2758 + </listitem> 2759 + </varlistentry> 2760 + <varlistentry> 2761 + <term> 2719 2762 libiconv, libintl 2720 2763 </term> 2721 2764 <listitem>
+3 -3
nixos/doc/manual/configuration/customizing-packages.xml
··· 24 24 <para> 25 25 Apart from high-level options, it’s possible to tweak a package in almost 26 26 arbitrary ways, such as changing or disabling dependencies of a package. For 27 - instance, the Emacs package in Nixpkgs by default has a dependency on GTK+ 2. 28 - If you want to build it against GTK+ 3, you can specify that as follows: 27 + instance, the Emacs package in Nixpkgs by default has a dependency on GTK 2. 28 + If you want to build it against GTK 3, you can specify that as follows: 29 29 <programlisting> 30 30 <xref linkend="opt-environment.systemPackages"/> = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ]; 31 31 </programlisting> ··· 33 33 function that produces Emacs, with the original arguments amended by the set 34 34 of arguments specified by you. So here the function argument 35 35 <varname>gtk</varname> gets the value <literal>pkgs.gtk3</literal>, causing 36 - Emacs to depend on GTK+ 3. (The parentheses are necessary because in Nix, 36 + Emacs to depend on GTK 3. (The parentheses are necessary because in Nix, 37 37 function application binds more weakly than list construction, so without 38 38 them, <xref linkend="opt-environment.systemPackages"/> would be a list with 39 39 two elements.)
+1 -1
nixos/doc/manual/release-notes/rl-1703.xml
··· 730 730 </listitem> 731 731 <listitem> 732 732 <para> 733 - <literal>jre</literal> now defaults to GTK+ UI by default. This improves 733 + <literal>jre</literal> now defaults to GTK UI by default. This improves 734 734 visual consistency and makes Java follow system font style, improving the 735 735 situation on HighDPI displays. This has a cost of increased closure size; 736 736 for server and other headless workloads it's recommended to use
+22
nixos/doc/manual/release-notes/rl-1909.xml
··· 422 422 It was not useful except for debugging purposes and was confusingly set as default in some circumstances. 423 423 </para> 424 424 </listitem> 425 + <listitem> 426 + <para> 427 + The WeeChat plugin <literal>pkgs.weechatScripts.weechat-xmpp</literal> has been removed as it doesn't receive 428 + any updates from upstream and depends on outdated Python2-based modules. 429 + </para> 430 + </listitem> 425 431 426 432 </itemizedlist> 427 433 </section> ··· 716 710 <literal>nix-shell -p altcoins.dogecoin</literal>, etc. 717 711 </para> 718 712 </listitem> 713 + <listitem> 714 + <para> 715 + Ceph has been upgraded to v14.2.1. 716 + See the <link xlink:href="https://ceph.com/releases/v14-2-0-nautilus-released/">release notes</link> for details. 717 + The mgr dashboard as well as osds backed by loop-devices is no longer explicitly supported by the package and module. 718 + Note: There's been some issues with python-cherrypy, which is used by the dashboard 719 + and prometheus mgr modules (and possibly others), hence 0000-dont-check-cherrypy-version.patch. 720 + </para> 721 + </listitem> 722 + <listitem> 723 + <para> 724 + <literal>pkgs.weechat</literal> is now compiled against <literal>pkgs.python3</literal>. 725 + Weechat also recommends <link xlink:href="https://weechat.org/scripts/python3/">to use Python3 726 + in their docs.</link> 727 + </para> 728 + </listitem> 719 729 </itemizedlist> 720 730 </section> 721 731 </section>
+25 -3
nixos/maintainers/scripts/ec2/amazon-image.nix
··· 17 17 name = mkOption { 18 18 type = types.str; 19 19 description = "The name of the generated derivation"; 20 - default = "nixos-disk-image"; 20 + default = "nixos-amazon-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}"; 21 21 }; 22 22 23 23 contents = mkOption { ··· 42 42 43 43 format = mkOption { 44 44 type = types.enum [ "raw" "qcow2" "vpc" ]; 45 - default = "qcow2"; 45 + default = "vpc"; 46 46 description = "The image format to output"; 47 47 }; 48 48 }; ··· 51 51 inherit lib config; 52 52 inherit (cfg) contents format name; 53 53 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package 54 - partitionTableType = if config.ec2.hvm then "legacy" else "none"; 54 + partitionTableType = if config.ec2.efi then "efi" 55 + else if config.ec2.hvm then "legacy" 56 + else "none"; 55 57 diskSize = cfg.sizeMB; 56 58 fsType = "ext4"; 57 59 configFile = pkgs.writeText "configuration.nix" ··· 63 61 ${optionalString config.ec2.hvm '' 64 62 ec2.hvm = true; 65 63 ''} 64 + ${optionalString config.ec2.efi '' 65 + ec2.efi = true; 66 + ''} 66 67 } 67 68 ''; 69 + postVM = '' 70 + extension=''${diskImage##*.} 71 + friendlyName=$out/${cfg.name}.$extension 72 + mv "$diskImage" "$friendlyName" 73 + diskImage=$friendlyName 74 + 75 + mkdir -p $out/nix-support 76 + echo "file ${cfg.format} $diskImage" >> $out/nix-support/hydra-build-products 77 + 78 + ${pkgs.jq}/bin/jq -n \ 79 + --arg label ${lib.escapeShellArg config.system.nixos.label} \ 80 + --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \ 81 + --arg logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$diskImage" | ${pkgs.jq}/bin/jq '."virtual-size"')" \ 82 + --arg file "$diskImage" \ 83 + '$ARGS.named' \ 84 + > $out/nix-support/image-info.json 85 + ''; 68 86 }; 69 87 }
+265 -248
nixos/maintainers/scripts/ec2/create-amis.sh
··· 1 1 #!/usr/bin/env nix-shell 2 - #! nix-shell -i bash -p qemu ec2_ami_tools jq ec2_api_tools awscli 2 + #!nix-shell -p awscli -p jq -p qemu -i bash 3 3 4 - # To start with do: nix-shell -p awscli --run "aws configure" 4 + # Uploads and registers NixOS images built from the 5 + # <nixos/release.nix> amazonImage attribute. Images are uploaded and 6 + # registered via a home region, and then copied to other regions. 5 7 6 - set -e 7 - set -o pipefail 8 + # The home region requires an s3 bucket, and a "vmimport" IAM role 9 + # with access to the S3 bucket. Configuration of the vmimport role is 10 + # documented in 11 + # https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html 8 12 9 - version=$(nix-instantiate --eval --strict '<nixpkgs>' -A lib.version | sed s/'"'//g) 10 - major=${version:0:5} 11 - echo "NixOS version is $version ($major)" 13 + # set -x 14 + set -euo pipefail 12 15 13 - stateDir=/home/deploy/amis/ec2-image-$version 14 - echo "keeping state in $stateDir" 15 - mkdir -p $stateDir 16 + # configuration 17 + state_dir=/home/deploy/amis/ec2-images 18 + home_region=eu-west-1 19 + bucket=nixos-amis 16 20 17 - rm -f ec2-amis.nix 21 + regions=(eu-west-1 eu-west-2 eu-west-3 eu-central-1 22 + us-east-1 us-east-2 us-west-1 us-west-2 23 + ca-central-1 24 + ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2 25 + ap-south-1 ap-east-1 26 + sa-east-1) 18 27 19 - types="hvm" 20 - stores="ebs" 21 - regions="eu-west-1 eu-west-2 eu-west-3 eu-central-1 us-east-1 us-east-2 us-west-1 us-west-2 ca-central-1 ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2 sa-east-1 ap-south-1" 28 + log() { 29 + echo "$@" >&2 30 + } 22 31 23 - for type in $types; do 24 - link=$stateDir/$type 25 - imageFile=$link/nixos.qcow2 26 - system=x86_64-linux 27 - arch=x86_64 32 + if [ -z "$1" ]; then 33 + log "Usage: ./upload-amazon-image.sh IMAGE_OUTPUT" 34 + exit 1 35 + fi 28 36 29 - # Build the image. 30 - if ! [ -L $link ]; then 31 - if [ $type = pv ]; then hvmFlag=false; else hvmFlag=true; fi 37 + # result of the amazon-image from nixos/release.nix 38 + store_path=$1 32 39 33 - echo "building image type '$type'..." 34 - nix-build -o $link \ 35 - '<nixpkgs/nixos>' \ 36 - -A config.system.build.amazonImage \ 37 - --arg configuration "{ imports = [ <nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix> ]; ec2.hvm = $hvmFlag; }" 40 + if [ ! -e "$store_path" ]; then 41 + log "Store path: $store_path does not exist, fetching..." 42 + nix-store --realise "$store_path" 43 + fi 44 + 45 + if [ ! -d "$store_path" ]; then 46 + log "store_path: $store_path is not a directory. aborting" 47 + exit 1 48 + fi 49 + 50 + read_image_info() { 51 + if [ ! -e "$store_path/nix-support/image-info.json" ]; then 52 + log "Image missing metadata" 53 + exit 1 54 + fi 55 + jq -r "$1" "$store_path/nix-support/image-info.json" 56 + } 57 + 58 + # We handle a single image per invocation, store all attributes in 59 + # globals for convenience. 60 + image_label=$(read_image_info .label) 61 + image_system=$(read_image_info .system) 62 + image_file=$(read_image_info .file) 63 + image_logical_bytes=$(read_image_info .logical_bytes) 64 + 65 + # Derived attributes 66 + 67 + image_logical_gigabytes=$((($image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB 68 + 69 + case "$image_system" in 70 + aarch64-linux) 71 + amazon_arch=arm64 72 + ;; 73 + x86_64-linux) 74 + amazon_arch=x86_64 75 + ;; 76 + *) 77 + log "Unknown system: $image_system" 78 + exit 1 79 + esac 80 + 81 + image_name="NixOS-${image_label}-${image_system}" 82 + image_description="NixOS ${image_label} ${image_system}" 83 + 84 + log "Image Details:" 85 + log " Name: $image_name" 86 + log " Description: $image_description" 87 + log " Size (gigabytes): $image_logical_gigabytes" 88 + log " System: $image_system" 89 + log " Amazon Arch: $amazon_arch" 90 + 91 + read_state() { 92 + local state_key=$1 93 + local type=$2 94 + 95 + cat "$state_dir/$state_key.$type" 2>/dev/null || true 96 + } 97 + 98 + write_state() { 99 + local state_key=$1 100 + local type=$2 101 + local val=$3 102 + 103 + mkdir -p $state_dir 104 + echo "$val" > "$state_dir/$state_key.$type" 105 + } 106 + 107 + wait_for_import() { 108 + local region=$1 109 + local task_id=$2 110 + local state snapshot_id 111 + log "Waiting for import task $task_id to be completed" 112 + while true; do 113 + read state progress snapshot_id < <( 114 + aws ec2 describe-import-snapshot-tasks --region $region --import-task-ids "$task_id" | \ 115 + jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail | "\(.Status) \(.Progress) \(.SnapshotId)"' 116 + ) 117 + log " ... state=$state progress=$progress snapshot_id=$snapshot_id" 118 + case "$state" in 119 + active) 120 + sleep 10 121 + ;; 122 + completed) 123 + echo "$snapshot_id" 124 + return 125 + ;; 126 + *) 127 + log "Unexpected snapshot import state: '${state}'" 128 + exit 1 129 + ;; 130 + esac 131 + done 132 + } 133 + 134 + wait_for_image() { 135 + local region=$1 136 + local ami_id=$2 137 + local state 138 + log "Waiting for image $ami_id to be available" 139 + 140 + while true; do 141 + read state < <( 142 + aws ec2 describe-images --image-ids "$ami_id" --region $region | \ 143 + jq -r ".Images[].State" 144 + ) 145 + log " ... state=$state" 146 + case "$state" in 147 + pending) 148 + sleep 10 149 + ;; 150 + available) 151 + return 152 + ;; 153 + *) 154 + log "Unexpected AMI state: '${state}'" 155 + exit 1 156 + ;; 157 + esac 158 + done 159 + } 160 + 161 + 162 + make_image_public() { 163 + local region=$1 164 + local ami_id=$2 165 + 166 + wait_for_image $region "$ami_id" 167 + 168 + log "Making image $ami_id public" 169 + 170 + aws ec2 modify-image-attribute \ 171 + --image-id "$ami_id" --region "$region" --launch-permission 'Add={Group=all}' >&2 172 + } 173 + 174 + upload_image() { 175 + local region=$1 176 + 177 + local aws_path=${image_file#/} 178 + 179 + local state_key="$region.$image_label.$image_system" 180 + local task_id=$(read_state "$state_key" task_id) 181 + local snapshot_id=$(read_state "$state_key" snapshot_id) 182 + local ami_id=$(read_state "$state_key" ami_id) 183 + 184 + if [ -z "$task_id" ]; then 185 + log "Checking for image on S3" 186 + if ! aws s3 ls --region "$region" "s3://${bucket}/${aws_path}" >&2; then 187 + log "Image missing from aws, uploading" 188 + aws s3 cp --region $region "$image_file" "s3://${bucket}/${aws_path}" >&2 189 + fi 190 + 191 + log "Importing image from S3 path s3://$bucket/$aws_path" 192 + 193 + task_id=$(aws ec2 import-snapshot --disk-container "{ 194 + \"Description\": \"nixos-image-${image_label}-${image_system}\", 195 + \"Format\": \"vhd\", 196 + \"UserBucket\": { 197 + \"S3Bucket\": \"$bucket\", 198 + \"S3Key\": \"$aws_path\" 199 + } 200 + }" --region $region | jq -r '.ImportTaskId') 201 + 202 + write_state "$state_key" task_id "$task_id" 38 203 fi 39 204 40 - for store in $stores; do 205 + if [ -z "$snapshot_id" ]; then 206 + snapshot_id=$(wait_for_import "$region" "$task_id") 207 + write_state "$state_key" snapshot_id "$snapshot_id" 208 + fi 41 209 42 - bucket=nixos-amis 43 - bucketDir="$version-$type-$store" 210 + if [ -z "$ami_id" ]; then 211 + log "Registering snapshot $snapshot_id as AMI" 44 212 45 - prevAmi= 46 - prevRegion= 213 + local block_device_mappings=( 214 + "DeviceName=/dev/sda1,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp2}" 215 + ) 47 216 48 - for region in $regions; do 217 + local extra_flags=( 218 + --root-device-name /dev/sda1 219 + --sriov-net-support simple 220 + --ena-support 221 + --virtualization-type hvm 222 + ) 49 223 50 - name=nixos-$version-$arch-$type-$store 51 - description="NixOS $system $version ($type-$store)" 224 + block_device_mappings+=(DeviceName=/dev/sdb,VirtualName=ephemeral0) 225 + block_device_mappings+=(DeviceName=/dev/sdc,VirtualName=ephemeral1) 226 + block_device_mappings+=(DeviceName=/dev/sdd,VirtualName=ephemeral2) 227 + block_device_mappings+=(DeviceName=/dev/sde,VirtualName=ephemeral3) 52 228 53 - amiFile=$stateDir/$region.$type.$store.ami-id 229 + ami_id=$( 230 + aws ec2 register-image \ 231 + --name "$image_name" \ 232 + --description "$image_description" \ 233 + --region $region \ 234 + --architecture $amazon_arch \ 235 + --block-device-mappings "${block_device_mappings[@]}" \ 236 + "${extra_flags[@]}" \ 237 + | jq -r '.ImageId' 238 + ) 54 239 55 - if ! [ -e $amiFile ]; then 240 + write_state "$state_key" ami_id "$ami_id" 241 + fi 56 242 57 - echo "doing $name in $region..." 243 + make_image_public $region "$ami_id" 58 244 59 - if [ -n "$prevAmi" ]; then 60 - ami=$(aws ec2 copy-image \ 61 - --region "$region" \ 62 - --source-region "$prevRegion" --source-image-id "$prevAmi" \ 63 - --name "$name" --description "$description" | jq -r '.ImageId') 64 - if [ "$ami" = null ]; then break; fi 65 - else 245 + echo "$ami_id" 246 + } 66 247 67 - if [ $store = s3 ]; then 248 + copy_to_region() { 249 + local region=$1 250 + local from_region=$2 251 + local from_ami_id=$3 68 252 69 - # Bundle the image. 70 - imageDir=$stateDir/$type-bundled 253 + state_key="$region.$image_label.$image_system" 254 + ami_id=$(read_state "$state_key" ami_id) 71 255 72 - # Convert the image to raw format. 73 - rawFile=$stateDir/$type.raw 74 - if ! [ -e $rawFile ]; then 75 - qemu-img convert -f qcow2 -O raw $imageFile $rawFile.tmp 76 - mv $rawFile.tmp $rawFile 77 - fi 256 + if [ -z "$ami_id" ]; then 257 + log "Copying $from_ami_id to $region" 258 + ami_id=$( 259 + aws ec2 copy-image \ 260 + --region "$region" \ 261 + --source-region "$from_region" \ 262 + --source-image-id "$from_ami_id" \ 263 + --name "$image_name" \ 264 + --description "$image_description" \ 265 + | jq -r '.ImageId' 266 + ) 78 267 79 - if ! [ -d $imageDir ]; then 80 - rm -rf $imageDir.tmp 81 - mkdir -p $imageDir.tmp 82 - ec2-bundle-image \ 83 - -d $imageDir.tmp \ 84 - -i $rawFile --arch $arch \ 85 - --user "$AWS_ACCOUNT" -c "$EC2_CERT" -k "$EC2_PRIVATE_KEY" 86 - mv $imageDir.tmp $imageDir 87 - fi 268 + write_state "$state_key" ami_id "$ami_id" 269 + fi 88 270 89 - # Upload the bundle to S3. 90 - if ! [ -e $imageDir/uploaded ]; then 91 - echo "uploading bundle to S3..." 92 - ec2-upload-bundle \ 93 - -m $imageDir/$type.raw.manifest.xml \ 94 - -b "$bucket/$bucketDir" \ 95 - -a "$AWS_ACCESS_KEY_ID" -s "$AWS_SECRET_ACCESS_KEY" \ 96 - --location EU 97 - touch $imageDir/uploaded 98 - fi 271 + make_image_public $region "$ami_id" 99 272 100 - extraFlags="--image-location $bucket/$bucketDir/$type.raw.manifest.xml" 273 + echo "$ami_id" 274 + } 101 275 102 - else 276 + upload_all() { 277 + home_image_id=$(upload_image "$home_region") 278 + jq -n \ 279 + --arg key "$home_region.$image_system" \ 280 + --arg value "$home_image_id" \ 281 + '$ARGS.named' 103 282 104 - # Convert the image to vhd format so we don't have 105 - # to upload a huge raw image. 106 - vhdFile=$stateDir/$type.vhd 107 - if ! [ -e $vhdFile ]; then 108 - qemu-img convert -f qcow2 -O vpc $imageFile $vhdFile.tmp 109 - mv $vhdFile.tmp $vhdFile 110 - fi 283 + for region in "${regions[@]}"; do 284 + if [ "$region" = "$home_region" ]; then 285 + continue 286 + fi 287 + copied_image_id=$(copy_to_region "$region" "$home_region" "$home_image_id") 111 288 112 - vhdFileLogicalBytes="$(qemu-img info "$vhdFile" | grep ^virtual\ size: | cut -f 2 -d \( | cut -f 1 -d \ )" 113 - vhdFileLogicalGigaBytes=$(((vhdFileLogicalBytes-1)/1024/1024/1024+1)) # Round to the next GB 114 - 115 - echo "Disk size is $vhdFileLogicalBytes bytes. Will be registered as $vhdFileLogicalGigaBytes GB." 116 - 117 - taskId=$(cat $stateDir/$region.$type.task-id 2> /dev/null || true) 118 - volId=$(cat $stateDir/$region.$type.vol-id 2> /dev/null || true) 119 - snapId=$(cat $stateDir/$region.$type.snap-id 2> /dev/null || true) 120 - 121 - # Import the VHD file. 122 - if [ -z "$snapId" -a -z "$volId" -a -z "$taskId" ]; then 123 - echo "importing $vhdFile..." 124 - taskId=$(ec2-import-volume $vhdFile --no-upload -f vhd \ 125 - -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \ 126 - -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" \ 127 - --region "$region" -z "${region}a" \ 128 - --bucket "$bucket" --prefix "$bucketDir/" \ 129 - | tee /dev/stderr \ 130 - | sed 's/.*\(import-vol-[0-9a-z]\+\).*/\1/ ; t ; d') 131 - echo -n "$taskId" > $stateDir/$region.$type.task-id 132 - fi 133 - 134 - if [ -z "$snapId" -a -z "$volId" ]; then 135 - ec2-resume-import $vhdFile -t "$taskId" --region "$region" \ 136 - -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \ 137 - -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" 138 - fi 139 - 140 - # Wait for the volume creation to finish. 141 - if [ -z "$snapId" -a -z "$volId" ]; then 142 - echo "waiting for import to finish..." 143 - while true; do 144 - volId=$(aws ec2 describe-conversion-tasks --conversion-task-ids "$taskId" --region "$region" | jq -r .ConversionTasks[0].ImportVolume.Volume.Id) 145 - if [ "$volId" != null ]; then break; fi 146 - sleep 10 147 - done 148 - 149 - echo -n "$volId" > $stateDir/$region.$type.vol-id 150 - fi 151 - 152 - # Delete the import task. 153 - if [ -n "$volId" -a -n "$taskId" ]; then 154 - echo "removing import task..." 155 - ec2-delete-disk-image -t "$taskId" --region "$region" \ 156 - -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \ 157 - -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" || true 158 - rm -f $stateDir/$region.$type.task-id 159 - fi 160 - 161 - # Create a snapshot. 162 - if [ -z "$snapId" ]; then 163 - echo "creating snapshot..." 164 - # FIXME: this can fail with InvalidVolume.NotFound. Eventual consistency yay. 165 - snapId=$(aws ec2 create-snapshot --volume-id "$volId" --region "$region" --description "$description" | jq -r .SnapshotId) 166 - if [ "$snapId" = null ]; then exit 1; fi 167 - echo -n "$snapId" > $stateDir/$region.$type.snap-id 168 - fi 169 - 170 - # Wait for the snapshot to finish. 171 - echo "waiting for snapshot to finish..." 172 - while true; do 173 - status=$(aws ec2 describe-snapshots --snapshot-ids "$snapId" --region "$region" | jq -r .Snapshots[0].State) 174 - if [ "$status" = completed ]; then break; fi 175 - sleep 10 176 - done 177 - 178 - # Delete the volume. 179 - if [ -n "$volId" ]; then 180 - echo "deleting volume..." 181 - aws ec2 delete-volume --volume-id "$volId" --region "$region" || true 182 - rm -f $stateDir/$region.$type.vol-id 183 - fi 184 - 185 - blockDeviceMappings="DeviceName=/dev/sda1,Ebs={SnapshotId=$snapId,VolumeSize=$vhdFileLogicalGigaBytes,DeleteOnTermination=true,VolumeType=gp2}" 186 - extraFlags="" 187 - 188 - if [ $type = pv ]; then 189 - extraFlags+=" --root-device-name /dev/sda1" 190 - else 191 - extraFlags+=" --root-device-name /dev/sda1" 192 - extraFlags+=" --sriov-net-support simple" 193 - extraFlags+=" --ena-support" 194 - fi 195 - 196 - blockDeviceMappings+=" DeviceName=/dev/sdb,VirtualName=ephemeral0" 197 - blockDeviceMappings+=" DeviceName=/dev/sdc,VirtualName=ephemeral1" 198 - blockDeviceMappings+=" DeviceName=/dev/sdd,VirtualName=ephemeral2" 199 - blockDeviceMappings+=" DeviceName=/dev/sde,VirtualName=ephemeral3" 200 - fi 201 - 202 - if [ $type = hvm ]; then 203 - extraFlags+=" --sriov-net-support simple" 204 - extraFlags+=" --ena-support" 205 - fi 206 - 207 - # Register the AMI. 208 - if [ $type = pv ]; then 209 - kernel=$(aws ec2 describe-images --owner amazon --filters "Name=name,Values=pv-grub-hd0_1.05-$arch.gz" | jq -r .Images[0].ImageId) 210 - if [ "$kernel" = null ]; then break; fi 211 - echo "using PV-GRUB kernel $kernel" 212 - extraFlags+=" --virtualization-type paravirtual --kernel $kernel" 213 - else 214 - extraFlags+=" --virtualization-type hvm" 215 - fi 216 - 217 - ami=$(aws ec2 register-image \ 218 - --name "$name" \ 219 - --description "$description" \ 220 - --region "$region" \ 221 - --architecture "$arch" \ 222 - --block-device-mappings $blockDeviceMappings \ 223 - $extraFlags | jq -r .ImageId) 224 - if [ "$ami" = null ]; then break; fi 225 - fi 226 - 227 - echo -n "$ami" > $amiFile 228 - echo "created AMI $ami of type '$type' in $region..." 229 - 230 - else 231 - ami=$(cat $amiFile) 232 - fi 233 - 234 - echo "region = $region, type = $type, store = $store, ami = $ami" 235 - 236 - if [ -z "$prevAmi" ]; then 237 - prevAmi="$ami" 238 - prevRegion="$region" 239 - fi 240 - done 241 - 289 + jq -n \ 290 + --arg key "$region.$image_system" \ 291 + --arg value "$copied_image_id" \ 292 + '$ARGS.named' 242 293 done 294 + } 243 295 244 - done 245 - 246 - for type in $types; do 247 - link=$stateDir/$type 248 - system=x86_64-linux 249 - arch=x86_64 250 - 251 - for store in $stores; do 252 - 253 - for region in $regions; do 254 - 255 - name=nixos-$version-$arch-$type-$store 256 - amiFile=$stateDir/$region.$type.$store.ami-id 257 - ami=$(cat $amiFile) 258 - 259 - echo "region = $region, type = $type, store = $store, ami = $ami" 260 - 261 - echo -n "waiting for AMI..." 262 - while true; do 263 - status=$(aws ec2 describe-images --image-ids "$ami" --region "$region" | jq -r .Images[0].State) 264 - if [ "$status" = available ]; then break; fi 265 - sleep 10 266 - echo -n '.' 267 - done 268 - echo 269 - 270 - # Make the image public. 271 - aws ec2 modify-image-attribute \ 272 - --image-id "$ami" --region "$region" --launch-permission 'Add={Group=all}' 273 - 274 - echo " \"$major\".$region.$type-$store = \"$ami\";" >> ec2-amis.nix 275 - done 276 - 277 - done 278 - 279 - done 296 + upload_all | jq --slurp from_entries
+1 -1
nixos/modules/config/gtk/gtk-icon-cache.nix
··· 7 7 type = types.bool; 8 8 default = config.services.xserver.enable; 9 9 description = '' 10 - Whether to build icon theme caches for GTK+ applications. 10 + Whether to build icon theme caches for GTK applications. 11 11 ''; 12 12 }; 13 13 };
+4 -4
nixos/modules/installer/tools/nix-fallback-paths.nix
··· 1 1 { 2 - x86_64-linux = "/nix/store/hbhdjn5ik3byg642d1m11k3k3s0kn3py-nix-2.2.2"; 3 - i686-linux = "/nix/store/fz5cikwvj3n0a6zl44h6l2z3cin64mda-nix-2.2.2"; 4 - aarch64-linux = "/nix/store/2gba4cyl4wvxzfbhmli90jy4n5aj0kjj-nix-2.2.2"; 5 - x86_64-darwin = "/nix/store/87i4fp46jfw9yl8c7i9gx75m5yph7irl-nix-2.2.2"; 2 + x86_64-linux = "/nix/store/3ds3cgji9vjxdbgp10av6smyym1126d1-nix-2.3"; 3 + i686-linux = "/nix/store/ln1ndqvfpc9cdl03vqxi6kvlxm9wfv9g-nix-2.3"; 4 + aarch64-linux = "/nix/store/n8a1rwzrp20qcr2c4hvyn6c5q9zx8csw-nix-2.3"; 5 + x86_64-darwin = "/nix/store/jq6npmpld02sz4rgniz0qrsdfnm6j17a-nix-2.3"; 6 6 }
+1
nixos/modules/module-list.nix
··· 948 948 ./virtualisation/openvswitch.nix 949 949 ./virtualisation/parallels-guest.nix 950 950 ./virtualisation/qemu-guest-agent.nix 951 + ./virtualisation/railcar.nix 951 952 ./virtualisation/rkt.nix 952 953 ./virtualisation/virtualbox-guest.nix 953 954 ./virtualisation/virtualbox-host.nix
+1 -1
nixos/modules/programs/plotinus.nix
··· 18 18 enable = mkOption { 19 19 default = false; 20 20 description = '' 21 - Whether to enable the Plotinus GTK+3 plugin. Plotinus provides a 21 + Whether to enable the Plotinus GTK 3 plugin. Plotinus provides a 22 22 popup (triggered by Ctrl-Shift-P) to search the menus of a 23 23 compatible application. 24 24 '';
+2 -2
nixos/modules/programs/plotinus.xml
··· 13 13 <link xlink:href="https://github.com/p-e-w/plotinus"/> 14 14 </para> 15 15 <para> 16 - Plotinus is a searchable command palette in every modern GTK+ application. 16 + Plotinus is a searchable command palette in every modern GTK application. 17 17 </para> 18 18 <para> 19 - When in a GTK+3 application and Plotinus is enabled, you can press 19 + When in a GTK 3 application and Plotinus is enabled, you can press 20 20 <literal>Ctrl+Shift+P</literal> to open the command palette. The command 21 21 palette provides a searchable list of of all menu items in the application. 22 22 </para>
+1
nixos/modules/rename.nix
··· 34 34 (mkRenamedOptionModule [ "services" "kubernetes" "etcd" "caFile" ] [ "services" "kubernetes" "apiserver" "etcd" "caFile" ]) 35 35 (mkRemovedOptionModule [ "services" "kubernetes" "kubelet" "applyManifests" ] "") 36 36 (mkRemovedOptionModule [ "services" "kubernetes" "kubelet" "cadvisorPort" ] "") 37 + (mkRemovedOptionModule [ "services" "kubernetes" "kubelet" "allowPrivileged" ] "") 37 38 (mkRenamedOptionModule [ "services" "kubernetes" "proxy" "address" ] ["services" "kubernetes" "proxy" "bindAddress"]) 38 39 (mkRemovedOptionModule [ "services" "kubernetes" "verbose" ] "") 39 40 (mkRenamedOptionModule [ "services" "logstash" "address" ] [ "services" "logstash" "listenAddress" ])
+5 -80
nixos/modules/services/cluster/kubernetes/addon-manager.nix
··· 62 62 ''; 63 63 }; 64 64 65 - enable = mkEnableOption "Kubernetes addon manager"; 66 - 67 - kubeconfig = top.lib.mkKubeConfigOptions "Kubernetes addon manager"; 68 - bootstrapAddonsKubeconfig = top.lib.mkKubeConfigOptions "Kubernetes addon manager bootstrap"; 65 + enable = mkEnableOption "Whether to enable Kubernetes addon manager."; 69 66 }; 70 67 71 68 ###### implementation 72 - config = let 73 - 74 - addonManagerPaths = filter (a: a != null) [ 75 - cfg.kubeconfig.caFile 76 - cfg.kubeconfig.certFile 77 - cfg.kubeconfig.keyFile 78 - ]; 79 - bootstrapAddonsPaths = filter (a: a != null) [ 80 - cfg.bootstrapAddonsKubeconfig.caFile 81 - cfg.bootstrapAddonsKubeconfig.certFile 82 - cfg.bootstrapAddonsKubeconfig.keyFile 83 - ]; 84 - 85 - in mkIf cfg.enable { 69 + config = mkIf cfg.enable { 86 70 environment.etc."kubernetes/addons".source = "${addons}/"; 87 71 88 - #TODO: Get rid of kube-addon-manager in the future for the following reasons 89 - # - it is basically just a shell script wrapped around kubectl 90 - # - it assumes that it is clusterAdmin or can gain clusterAdmin rights through serviceAccount 91 - # - it is designed to be used with k8s system components only 92 - # - it would be better with a more Nix-oriented way of managing addons 93 72 systemd.services.kube-addon-manager = { 94 73 description = "Kubernetes addon manager"; 95 74 wantedBy = [ "kubernetes.target" ]; 96 - after = [ "kube-node-online.target" ]; 97 - before = [ "kubernetes.target" ]; 98 - environment = { 99 - ADDON_PATH = "/etc/kubernetes/addons/"; 100 - KUBECONFIG = top.lib.mkKubeConfig "kube-addon-manager" cfg.kubeconfig; 101 - }; 102 - path = with pkgs; [ gawk kubectl ]; 103 - preStart = '' 104 - until kubectl -n kube-system get serviceaccounts/default 2>/dev/null; do 105 - echo kubectl -n kube-system get serviceaccounts/default: exit status $? 106 - sleep 2 107 - done 108 - ''; 75 + after = [ "kube-apiserver.service" ]; 76 + environment.ADDON_PATH = "/etc/kubernetes/addons/"; 77 + path = [ pkgs.gawk ]; 109 78 serviceConfig = { 110 79 Slice = "kubernetes.slice"; 111 80 ExecStart = "${top.package}/bin/kube-addons"; ··· 84 115 Restart = "on-failure"; 85 116 RestartSec = 10; 86 117 }; 87 - unitConfig.ConditionPathExists = addonManagerPaths; 88 118 }; 89 - 90 - systemd.paths.kube-addon-manager = { 91 - wantedBy = [ "kube-addon-manager.service" ]; 92 - pathConfig = { 93 - PathExists = addonManagerPaths; 94 - PathChanged = addonManagerPaths; 95 - }; 96 - }; 97 - 98 - services.kubernetes.addonManager.kubeconfig.server = mkDefault top.apiserverAddress; 99 - 100 - systemd.services.kube-addon-manager-bootstrap = mkIf (top.apiserver.enable && top.addonManager.bootstrapAddons != {}) { 101 - wantedBy = [ "kube-control-plane-online.target" ]; 102 - after = [ "kube-apiserver.service" ]; 103 - before = [ "kube-control-plane-online.target" ]; 104 - path = [ pkgs.kubectl ]; 105 - environment = { 106 - KUBECONFIG = top.lib.mkKubeConfig "kube-addon-manager-bootstrap" cfg.bootstrapAddonsKubeconfig; 107 - }; 108 - preStart = with pkgs; let 109 - files = mapAttrsToList (n: v: writeText "${n}.json" (builtins.toJSON v)) 110 - cfg.bootstrapAddons; 111 - in '' 112 - until kubectl auth can-i '*' '*' -q 2>/dev/null; do 113 - echo kubectl auth can-i '*' '*': exit status $? 114 - sleep 2 115 - done 116 - 117 - kubectl apply -f ${concatStringsSep " \\\n -f " files} 118 - ''; 119 - script = "echo Ok"; 120 - unitConfig.ConditionPathExists = bootstrapAddonsPaths; 121 - }; 122 - 123 - systemd.paths.kube-addon-manager-bootstrap = { 124 - wantedBy = [ "kube-addon-manager-bootstrap.service" ]; 125 - pathConfig = { 126 - PathExists = bootstrapAddonsPaths; 127 - PathChanged = bootstrapAddonsPaths; 128 - }; 129 - }; 130 - 131 - services.kubernetes.addonManager.bootstrapAddonsKubeconfig.server = mkDefault top.apiserverAddress; 132 119 133 120 services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled 134 121 (let
+15 -21
nixos/modules/services/cluster/kubernetes/addons/dashboard.nix
··· 169 169 }; 170 170 }; 171 171 172 - kubernetes-dashboard-cm = { 173 - apiVersion = "v1"; 174 - kind = "ConfigMap"; 175 - metadata = { 176 - labels = { 177 - k8s-app = "kubernetes-dashboard"; 178 - # Allows editing resource and makes sure it is created first. 179 - "addonmanager.kubernetes.io/mode" = "EnsureExists"; 180 - }; 181 - name = "kubernetes-dashboard-settings"; 182 - namespace = "kube-system"; 183 - }; 184 - }; 185 - }; 186 - 187 - services.kubernetes.addonManager.bootstrapAddons = mkMerge [{ 188 - 189 172 kubernetes-dashboard-sa = { 190 173 apiVersion = "v1"; 191 174 kind = "ServiceAccount"; ··· 210 227 }; 211 228 type = "Opaque"; 212 229 }; 213 - } 214 - 215 - (optionalAttrs cfg.rbac.enable 230 + kubernetes-dashboard-cm = { 231 + apiVersion = "v1"; 232 + kind = "ConfigMap"; 233 + metadata = { 234 + labels = { 235 + k8s-app = "kubernetes-dashboard"; 236 + # Allows editing resource and makes sure it is created first. 237 + "addonmanager.kubernetes.io/mode" = "EnsureExists"; 238 + }; 239 + name = "kubernetes-dashboard-settings"; 240 + namespace = "kube-system"; 241 + }; 242 + }; 243 + } // (optionalAttrs cfg.rbac.enable 216 244 (let 217 245 subjects = [{ 218 246 kind = "ServiceAccount"; ··· 323 329 inherit subjects; 324 330 }; 325 331 }) 326 - ))]; 332 + )); 327 333 }; 328 334 }
+3 -45
nixos/modules/services/cluster/kubernetes/apiserver.nix
··· 290 290 ###### implementation 291 291 config = mkMerge [ 292 292 293 - (let 294 - 295 - apiserverPaths = filter (a: a != null) [ 296 - cfg.clientCaFile 297 - cfg.etcd.caFile 298 - cfg.etcd.certFile 299 - cfg.etcd.keyFile 300 - cfg.kubeletClientCaFile 301 - cfg.kubeletClientCertFile 302 - cfg.kubeletClientKeyFile 303 - cfg.serviceAccountKeyFile 304 - cfg.tlsCertFile 305 - cfg.tlsKeyFile 306 - ]; 307 - etcdPaths = filter (a: a != null) [ 308 - config.services.etcd.trustedCaFile 309 - config.services.etcd.certFile 310 - config.services.etcd.keyFile 311 - ]; 312 - 313 - in mkIf cfg.enable { 293 + (mkIf cfg.enable { 314 294 systemd.services.kube-apiserver = { 315 295 description = "Kubernetes APIServer Service"; 316 - wantedBy = [ "kube-control-plane-online.target" ]; 317 - after = [ "certmgr.service" ]; 318 - before = [ "kube-control-plane-online.target" ]; 296 + wantedBy = [ "kubernetes.target" ]; 297 + after = [ "network.target" ]; 319 298 serviceConfig = { 320 299 Slice = "kubernetes.slice"; 321 300 ExecStart = ''${top.package}/bin/kube-apiserver \ ··· 365 386 Restart = "on-failure"; 366 387 RestartSec = 5; 367 388 }; 368 - unitConfig.ConditionPathExists = apiserverPaths; 369 - }; 370 - 371 - systemd.paths.kube-apiserver = mkIf top.apiserver.enable { 372 - wantedBy = [ "kube-apiserver.service" ]; 373 - pathConfig = { 374 - PathExists = apiserverPaths; 375 - PathChanged = apiserverPaths; 376 - }; 377 389 }; 378 390 379 391 services.etcd = { ··· 376 406 initialCluster = mkDefault ["${top.masterAddress}=https://${top.masterAddress}:2380"]; 377 407 name = mkDefault top.masterAddress; 378 408 initialAdvertisePeerUrls = mkDefault ["https://${top.masterAddress}:2380"]; 379 - }; 380 - 381 - systemd.services.etcd = { 382 - unitConfig.ConditionPathExists = etcdPaths; 383 - }; 384 - 385 - systemd.paths.etcd = { 386 - wantedBy = [ "etcd.service" ]; 387 - pathConfig = { 388 - PathExists = etcdPaths; 389 - PathChanged = etcdPaths; 390 - }; 391 409 }; 392 410 393 411 services.kubernetes.addonManager.bootstrapAddons = mkIf isRBACEnabled {
+5 -34
nixos/modules/services/cluster/kubernetes/controller-manager.nix
··· 104 104 }; 105 105 106 106 ###### implementation 107 - config = let 108 - 109 - controllerManagerPaths = filter (a: a != null) [ 110 - cfg.kubeconfig.caFile 111 - cfg.kubeconfig.certFile 112 - cfg.kubeconfig.keyFile 113 - cfg.rootCaFile 114 - cfg.serviceAccountKeyFile 115 - cfg.tlsCertFile 116 - cfg.tlsKeyFile 117 - ]; 118 - 119 - in mkIf cfg.enable { 120 - systemd.services.kube-controller-manager = rec { 107 + config = mkIf cfg.enable { 108 + systemd.services.kube-controller-manager = { 121 109 description = "Kubernetes Controller Manager Service"; 122 - wantedBy = [ "kube-control-plane-online.target" ]; 110 + wantedBy = [ "kubernetes.target" ]; 123 111 after = [ "kube-apiserver.service" ]; 124 - before = [ "kube-control-plane-online.target" ]; 125 - environment.KUBECONFIG = top.lib.mkKubeConfig "kube-controller-manager" cfg.kubeconfig; 126 - preStart = '' 127 - until kubectl auth can-i get /api -q 2>/dev/null; do 128 - echo kubectl auth can-i get /api: exit status $? 129 - sleep 2 130 - done 131 - ''; 132 112 serviceConfig = { 133 113 RestartSec = "30s"; 134 114 Restart = "on-failure"; ··· 120 140 "--cluster-cidr=${cfg.clusterCidr}"} \ 121 141 ${optionalString (cfg.featureGates != []) 122 142 "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \ 123 - --kubeconfig=${environment.KUBECONFIG} \ 143 + --kubeconfig=${top.lib.mkKubeConfig "kube-controller-manager" cfg.kubeconfig} \ 124 144 --leader-elect=${boolToString cfg.leaderElect} \ 125 145 ${optionalString (cfg.rootCaFile!=null) 126 146 "--root-ca-file=${cfg.rootCaFile}"} \ ··· 141 161 User = "kubernetes"; 142 162 Group = "kubernetes"; 143 163 }; 144 - path = top.path ++ [ pkgs.kubectl ]; 145 - unitConfig.ConditionPathExists = controllerManagerPaths; 146 - }; 147 - 148 - systemd.paths.kube-controller-manager = { 149 - wantedBy = [ "kube-controller-manager.service" ]; 150 - pathConfig = { 151 - PathExists = controllerManagerPaths; 152 - PathChanged = controllerManagerPaths; 153 - }; 164 + path = top.path; 154 165 }; 155 166 156 167 services.kubernetes.pki.certs = with top.lib; {
-25
nixos/modules/services/cluster/kubernetes/default.nix
··· 256 256 wantedBy = [ "multi-user.target" ]; 257 257 }; 258 258 259 - systemd.targets.kube-control-plane-online = { 260 - wantedBy = [ "kubernetes.target" ]; 261 - before = [ "kubernetes.target" ]; 262 - }; 263 - 264 - systemd.services.kube-control-plane-online = { 265 - description = "Kubernetes control plane is online"; 266 - wantedBy = [ "kube-control-plane-online.target" ]; 267 - after = [ "kube-scheduler.service" "kube-controller-manager.service" ]; 268 - before = [ "kube-control-plane-online.target" ]; 269 - path = [ pkgs.curl ]; 270 - preStart = '' 271 - until curl -Ssf ${cfg.apiserverAddress}/healthz do 272 - echo curl -Ssf ${cfg.apiserverAddress}/healthz: exit status $? 273 - sleep 3 274 - done 275 - ''; 276 - script = "echo Ok"; 277 - serviceConfig = { 278 - TimeoutSec = "500"; 279 - }; 280 - }; 281 - 282 259 systemd.tmpfiles.rules = [ 283 260 "d /opt/cni/bin 0755 root root -" 284 261 "d /run/kubernetes 0755 kubernetes kubernetes -" ··· 279 302 services.kubernetes.apiserverAddress = mkDefault ("https://${if cfg.apiserver.advertiseAddress != null 280 303 then cfg.apiserver.advertiseAddress 281 304 else "${cfg.masterAddress}:${toString cfg.apiserver.securePort}"}"); 282 - 283 - services.kubernetes.kubeconfig.server = mkDefault cfg.apiserverAddress; 284 305 }) 285 306 ]; 286 307 }
+11 -62
nixos/modules/services/cluster/kubernetes/flannel.nix
··· 14 14 buildInputs = [ pkgs.makeWrapper ]; 15 15 } '' 16 16 mkdir -p $out 17 - cp ${pkgs.kubernetes.src}/cluster/centos/node/bin/mk-docker-opts.sh $out/mk-docker-opts.sh 18 17 19 18 # bashInteractive needed for `compgen` 20 - makeWrapper ${pkgs.bashInteractive}/bin/bash $out/mk-docker-opts --add-flags "$out/mk-docker-opts.sh" 19 + makeWrapper ${pkgs.bashInteractive}/bin/bash $out/mk-docker-opts --add-flags "${pkgs.kubernetes}/bin/mk-docker-opts.sh" 21 20 ''; 22 21 in 23 22 { 24 23 ###### interface 25 24 options.services.kubernetes.flannel = { 26 - enable = mkEnableOption "flannel networking"; 27 - kubeconfig = top.lib.mkKubeConfigOptions "Kubernetes flannel"; 25 + enable = mkEnableOption "enable flannel networking"; 28 26 }; 29 27 30 28 ###### implementation 31 - config = let 32 - 33 - flannelPaths = filter (a: a != null) [ 34 - cfg.kubeconfig.caFile 35 - cfg.kubeconfig.certFile 36 - cfg.kubeconfig.keyFile 37 - ]; 38 - kubeconfig = top.lib.mkKubeConfig "flannel" cfg.kubeconfig; 39 - 40 - in mkIf cfg.enable { 29 + config = mkIf cfg.enable { 41 30 services.flannel = { 42 31 43 32 enable = mkDefault true; 44 33 network = mkDefault top.clusterCidr; 45 - inherit storageBackend kubeconfig; 46 - nodeName = top.kubelet.hostname; 34 + inherit storageBackend; 35 + nodeName = config.services.kubernetes.kubelet.hostname; 47 36 }; 48 37 49 38 services.kubernetes.kubelet = { ··· 47 58 }]; 48 59 }; 49 60 50 - systemd.services.mk-docker-opts = { 61 + systemd.services."mk-docker-opts" = { 51 62 description = "Pre-Docker Actions"; 52 - wantedBy = [ "flannel.target" ]; 53 - before = [ "flannel.target" ]; 54 63 path = with pkgs; [ gawk gnugrep ]; 55 64 script = '' 56 65 ${mkDockerOpts}/mk-docker-opts -d /run/flannel/docker 57 66 systemctl restart docker 58 67 ''; 59 - unitConfig.ConditionPathExists = [ "/run/flannel/subnet.env" ]; 60 68 serviceConfig.Type = "oneshot"; 61 69 }; 62 70 63 - systemd.paths.flannel-subnet-env = { 64 - wantedBy = [ "mk-docker-opts.service" ]; 71 + systemd.paths."flannel-subnet-env" = { 72 + wantedBy = [ "flannel.service" ]; 65 73 pathConfig = { 66 - PathExists = [ "/run/flannel/subnet.env" ]; 67 - PathChanged = [ "/run/flannel/subnet.env" ]; 74 + PathModified = "/run/flannel/subnet.env"; 68 75 Unit = "mk-docker-opts.service"; 69 76 }; 70 77 }; 71 - 72 - systemd.targets.flannel = { 73 - wantedBy = [ "kube-node-online.target" ]; 74 - before = [ "kube-node-online.target" ]; 75 - }; 76 - 77 - systemd.services.flannel = { 78 - wantedBy = [ "flannel.target" ]; 79 - after = [ "kubelet.target" ]; 80 - before = [ "flannel.target" ]; 81 - path = with pkgs; [ iptables kubectl ]; 82 - environment.KUBECONFIG = kubeconfig; 83 - preStart = let 84 - args = [ 85 - "--selector=kubernetes.io/hostname=${top.kubelet.hostname}" 86 - # flannel exits if node is not registered yet, before that there is no podCIDR 87 - "--output=jsonpath={.items[0].spec.podCIDR}" 88 - # if jsonpath cannot be resolved exit with status 1 89 - "--allow-missing-template-keys=false" 90 - ]; 91 - in '' 92 - until kubectl get nodes ${concatStringsSep " " args} 2>/dev/null; do 93 - echo Waiting for ${top.kubelet.hostname} to be RegisteredNode 94 - sleep 1 95 - done 96 - ''; 97 - unitConfig.ConditionPathExists = flannelPaths; 98 - }; 99 - 100 - systemd.paths.flannel = { 101 - wantedBy = [ "flannel.service" ]; 102 - pathConfig = { 103 - PathExists = flannelPaths; 104 - PathChanged = flannelPaths; 105 - }; 106 - }; 107 - 108 - services.kubernetes.flannel.kubeconfig.server = mkDefault top.apiserverAddress; 109 78 110 79 systemd.services.docker = { 111 80 environment.DOCKER_OPTS = "-b none"; ··· 91 144 92 145 # give flannel som kubernetes rbac permissions if applicable 93 146 services.kubernetes.addonManager.bootstrapAddons = mkIf ((storageBackend == "kubernetes") && (elem "RBAC" top.apiserver.authorizationMode)) { 147 + 94 148 flannel-cr = { 95 149 apiVersion = "rbac.authorization.k8s.io/v1beta1"; 96 150 kind = "ClusterRole"; ··· 127 179 name = "flannel-client"; 128 180 }]; 129 181 }; 182 + 130 183 }; 131 184 }; 132 185 }
+9 -84
nixos/modules/services/cluster/kubernetes/kubelet.nix
··· 61 61 type = str; 62 62 }; 63 63 64 - allowPrivileged = mkOption { 65 - description = "Whether to allow Kubernetes containers to request privileged mode."; 66 - default = false; 67 - type = bool; 68 - }; 69 - 70 64 clusterDns = mkOption { 71 65 description = "Use alternative DNS."; 72 66 default = "10.1.0.1"; ··· 228 234 229 235 ###### implementation 230 236 config = mkMerge [ 231 - (let 232 - 233 - kubeletPaths = filter (a: a != null) [ 234 - cfg.kubeconfig.caFile 235 - cfg.kubeconfig.certFile 236 - cfg.kubeconfig.keyFile 237 - cfg.clientCaFile 238 - cfg.tlsCertFile 239 - cfg.tlsKeyFile 240 - ]; 241 - 242 - in mkIf cfg.enable { 237 + (mkIf cfg.enable { 243 238 services.kubernetes.kubelet.seedDockerImages = [infraContainer]; 244 239 245 240 systemd.services.kubelet = { 246 241 description = "Kubernetes Kubelet Service"; 247 - wantedBy = [ "kubelet.target" ]; 248 - after = [ "kube-control-plane-online.target" ]; 249 - before = [ "kubelet.target" ]; 242 + wantedBy = [ "kubernetes.target" ]; 243 + after = [ "network.target" "docker.service" "kube-apiserver.service" ]; 250 244 path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables socat ] ++ top.path; 251 245 preStart = '' 252 - rm -f /opt/cni/bin/* || true 246 + ${concatMapStrings (img: '' 247 + echo "Seeding docker image: ${img}" 248 + docker load <${img} 249 + '') cfg.seedDockerImages} 250 + 251 + rm /opt/cni/bin/* || true 253 252 ${concatMapStrings (package: '' 254 253 echo "Linking cni package: ${package}" 255 254 ln -fs ${package}/bin/* /opt/cni/bin ··· 256 269 RestartSec = "1000ms"; 257 270 ExecStart = ''${top.package}/bin/kubelet \ 258 271 --address=${cfg.address} \ 259 - --allow-privileged=${boolToString cfg.allowPrivileged} \ 260 272 --authentication-token-webhook \ 261 273 --authentication-token-webhook-cache-ttl="10s" \ 262 274 --authorization-mode=Webhook \ ··· 294 308 ''; 295 309 WorkingDirectory = top.dataDir; 296 310 }; 297 - unitConfig.ConditionPathExists = kubeletPaths; 298 - }; 299 - 300 - systemd.paths.kubelet = { 301 - wantedBy = [ "kubelet.service" ]; 302 - pathConfig = { 303 - PathExists = kubeletPaths; 304 - PathChanged = kubeletPaths; 305 - }; 306 - }; 307 - 308 - systemd.services.docker.before = [ "kubelet.service" ]; 309 - 310 - systemd.services.docker-seed-images = { 311 - wantedBy = [ "docker.service" ]; 312 - after = [ "docker.service" ]; 313 - before = [ "kubelet.service" ]; 314 - path = with pkgs; [ docker ]; 315 - preStart = '' 316 - ${concatMapStrings (img: '' 317 - echo "Seeding docker image: ${img}" 318 - docker load <${img} 319 - '') cfg.seedDockerImages} 320 - ''; 321 - script = "echo Ok"; 322 - serviceConfig.Type = "oneshot"; 323 - serviceConfig.RemainAfterExit = true; 324 - serviceConfig.Slice = "kubernetes.slice"; 325 - }; 326 - 327 - systemd.services.kubelet-online = { 328 - wantedBy = [ "kube-node-online.target" ]; 329 - after = [ "flannel.target" "kubelet.target" ]; 330 - before = [ "kube-node-online.target" ]; 331 - # it is complicated. flannel needs kubelet to run the pause container before 332 - # it discusses the node CIDR with apiserver and afterwards configures and restarts 333 - # dockerd. Until then prevent creating any pods because they have to be recreated anyway 334 - # because the network of docker0 has been changed by flannel. 335 - script = let 336 - docker-env = "/run/flannel/docker"; 337 - flannel-date = "stat --print=%Y ${docker-env}"; 338 - docker-date = "systemctl show --property=ActiveEnterTimestamp --value docker"; 339 - in '' 340 - until test -f ${docker-env} ; do sleep 1 ; done 341 - while test `${flannel-date}` -gt `date +%s --date="$(${docker-date})"` ; do 342 - sleep 1 343 - done 344 - ''; 345 - serviceConfig.Type = "oneshot"; 346 - serviceConfig.Slice = "kubernetes.slice"; 347 311 }; 348 312 349 313 # Allways include cni plugins ··· 340 404 }; 341 405 }) 342 406 343 - { 344 - systemd.targets.kubelet = { 345 - wantedBy = [ "kube-node-online.target" ]; 346 - before = [ "kube-node-online.target" ]; 347 - }; 348 - 349 - systemd.targets.kube-node-online = { 350 - wantedBy = [ "kubernetes.target" ]; 351 - before = [ "kubernetes.target" ]; 352 - }; 353 - } 354 407 ]; 355 408 }
+73 -89
nixos/modules/services/cluster/kubernetes/pki.nix
··· 27 27 certmgrAPITokenPath = "${top.secretsPath}/${cfsslAPITokenBaseName}"; 28 28 cfsslAPITokenLength = 32; 29 29 30 - clusterAdminKubeconfig = with cfg.certs.clusterAdmin; { 31 - server = top.apiserverAddress; 32 - certFile = cert; 33 - keyFile = key; 34 - }; 30 + clusterAdminKubeconfig = with cfg.certs.clusterAdmin; 31 + top.lib.mkKubeConfig "cluster-admin" { 32 + server = top.apiserverAddress; 33 + certFile = cert; 34 + keyFile = key; 35 + }; 35 36 36 37 remote = with config.services; "https://${kubernetes.masterAddress}:${toString cfssl.port}"; 37 38 in ··· 119 118 cfsslCertPathPrefix = "${config.services.cfssl.dataDir}/cfssl"; 120 119 cfsslCert = "${cfsslCertPathPrefix}.pem"; 121 120 cfsslKey = "${cfsslCertPathPrefix}-key.pem"; 122 - 123 - certmgrPaths = [ 124 - top.caFile 125 - certmgrAPITokenPath 126 - ]; 127 121 in 128 122 { 129 123 ··· 168 172 chown cfssl "${cfsslAPITokenPath}" && chmod 400 "${cfsslAPITokenPath}" 169 173 '')]); 170 174 171 - systemd.targets.cfssl-online = { 172 - wantedBy = [ "network-online.target" ]; 173 - after = [ "cfssl.service" "network-online.target" "cfssl-online.service" ]; 174 - }; 175 - 176 - systemd.services.cfssl-online = { 177 - description = "Wait for ${remote} to be reachable."; 178 - wantedBy = [ "cfssl-online.target" ]; 179 - before = [ "cfssl-online.target" ]; 180 - path = [ pkgs.curl ]; 181 - preStart = '' 182 - until curl --fail-early -fskd '{}' ${remote}/api/v1/cfssl/info -o /dev/null; do 183 - echo curl ${remote}/api/v1/cfssl/info: exit status $? 184 - sleep 2 185 - done 186 - ''; 187 - script = "echo Ok"; 188 - serviceConfig = { 189 - TimeoutSec = "300"; 190 - }; 191 - }; 192 - 193 175 systemd.services.kube-certmgr-bootstrap = { 194 176 description = "Kubernetes certmgr bootstrapper"; 195 - wantedBy = [ "cfssl-online.target" ]; 196 - after = [ "cfssl-online.target" ]; 197 - before = [ "certmgr.service" ]; 198 - path = with pkgs; [ curl cfssl ]; 177 + wantedBy = [ "certmgr.service" ]; 178 + after = [ "cfssl.target" ]; 199 179 script = concatStringsSep "\n" ['' 200 180 set -e 201 - 202 - mkdir -p $(dirname ${certmgrAPITokenPath}) 203 - mkdir -p $(dirname ${top.caFile}) 204 181 205 182 # If there's a cfssl (cert issuer) running locally, then don't rely on user to 206 183 # manually paste it in place. Just symlink. ··· 186 217 fi 187 218 '' 188 219 (optionalString (cfg.pkiTrustOnBootstrap) '' 189 - if [ ! -s "${top.caFile}" ]; then 190 - until test -s ${top.caFile}.json; do 191 - sleep 2 192 - curl --fail-early -fskd '{}' ${remote}/api/v1/cfssl/info -o ${top.caFile}.json 193 - done 194 - cfssljson -f ${top.caFile}.json -stdout >${top.caFile} 195 - rm ${top.caFile}.json 220 + if [ ! -f "${top.caFile}" ] || [ $(cat "${top.caFile}" | wc -c) -lt 1 ]; then 221 + ${pkgs.curl}/bin/curl --fail-early -f -kd '{}' ${remote}/api/v1/cfssl/info | \ 222 + ${pkgs.cfssl}/bin/cfssljson -stdout >${top.caFile} 196 223 fi 197 224 '') 198 225 ]; 199 226 serviceConfig = { 200 - TimeoutSec = "500"; 227 + RestartSec = "10s"; 228 + Restart = "on-failure"; 201 229 }; 202 230 }; 203 231 ··· 230 264 mapAttrs mkSpec cfg.certs; 231 265 }; 232 266 233 - systemd.services.certmgr = { 234 - wantedBy = [ "cfssl-online.target" ]; 235 - after = [ "cfssl-online.target" "kube-certmgr-bootstrap.service" ]; 236 - preStart = '' 237 - while ! test -s ${certmgrAPITokenPath} ; do 238 - sleep 1 239 - echo Waiting for ${certmgrAPITokenPath} 240 - done 241 - ''; 242 - unitConfig.ConditionPathExists = certmgrPaths; 243 - }; 267 + #TODO: Get rid of kube-addon-manager in the future for the following reasons 268 + # - it is basically just a shell script wrapped around kubectl 269 + # - it assumes that it is clusterAdmin or can gain clusterAdmin rights through serviceAccount 270 + # - it is designed to be used with k8s system components only 271 + # - it would be better with a more Nix-oriented way of managing addons 272 + systemd.services.kube-addon-manager = mkIf top.addonManager.enable (mkMerge [{ 273 + environment.KUBECONFIG = with cfg.certs.addonManager; 274 + top.lib.mkKubeConfig "addon-manager" { 275 + server = top.apiserverAddress; 276 + certFile = cert; 277 + keyFile = key; 278 + }; 279 + } 244 280 245 - systemd.paths.certmgr = { 246 - wantedBy = [ "certmgr.service" ]; 247 - pathConfig = { 248 - PathExists = certmgrPaths; 249 - PathChanged = certmgrPaths; 250 - }; 251 - }; 281 + (optionalAttrs (top.addonManager.bootstrapAddons != {}) { 282 + serviceConfig.PermissionsStartOnly = true; 283 + preStart = with pkgs; 284 + let 285 + files = mapAttrsToList (n: v: writeText "${n}.json" (builtins.toJSON v)) 286 + top.addonManager.bootstrapAddons; 287 + in 288 + '' 289 + export KUBECONFIG=${clusterAdminKubeconfig} 290 + ${kubectl}/bin/kubectl apply -f ${concatStringsSep " \\\n -f " files} 291 + ''; 292 + })]); 252 293 253 - environment.etc.${cfg.etcClusterAdminKubeconfig}.source = mkIf (cfg.etcClusterAdminKubeconfig != null) 254 - (top.lib.mkKubeConfig "cluster-admin" clusterAdminKubeconfig); 294 + environment.etc.${cfg.etcClusterAdminKubeconfig}.source = mkIf (!isNull cfg.etcClusterAdminKubeconfig) 295 + clusterAdminKubeconfig; 255 296 256 297 environment.systemPackages = mkIf (top.kubelet.enable || top.proxy.enable) [ 257 298 (pkgs.writeScriptBin "nixos-kubernetes-node-join" '' ··· 284 311 exit 1 285 312 fi 286 313 287 - do_restart=$(test -s ${certmgrAPITokenPath} && echo -n y || echo -n n) 288 - 289 314 echo $token > ${certmgrAPITokenPath} 290 315 chmod 600 ${certmgrAPITokenPath} 291 316 292 - if [ y = $do_restart ]; then 293 - echo "Restarting certmgr..." >&1 294 - systemctl restart certmgr 295 - fi 317 + echo "Restarting certmgr..." >&1 318 + systemctl restart certmgr 296 319 297 - echo "Node joined succesfully" >&1 320 + echo "Waiting for certs to appear..." >&1 321 + 322 + ${optionalString top.kubelet.enable '' 323 + while [ ! -f ${cfg.certs.kubelet.cert} ]; do sleep 1; done 324 + echo "Restarting kubelet..." >&1 325 + systemctl restart kubelet 326 + ''} 327 + 328 + ${optionalString top.proxy.enable '' 329 + while [ ! -f ${cfg.certs.kubeProxyClient.cert} ]; do sleep 1; done 330 + echo "Restarting kube-proxy..." >&1 331 + systemctl restart kube-proxy 332 + ''} 333 + 334 + ${optionalString top.flannel.enable '' 335 + while [ ! -f ${cfg.certs.flannelClient.cert} ]; do sleep 1; done 336 + echo "Restarting flannel..." >&1 337 + systemctl restart flannel 338 + ''} 339 + 340 + echo "Node joined succesfully" 298 341 '')]; 299 342 300 343 # isolate etcd on loopback at the master node 301 344 # easyCerts doesn't support multimaster clusters anyway atm. 302 - services.etcd = mkIf top.apiserver.enable (with cfg.certs.etcd; { 345 + services.etcd = with cfg.certs.etcd; { 303 346 listenClientUrls = ["https://127.0.0.1:2379"]; 304 347 listenPeerUrls = ["https://127.0.0.1:2380"]; 305 348 advertiseClientUrls = ["https://etcd.local:2379"]; ··· 324 335 certFile = mkDefault cert; 325 336 keyFile = mkDefault key; 326 337 trustedCaFile = mkDefault caCert; 327 - }); 338 + }; 328 339 networking.extraHosts = mkIf (config.services.etcd.enable) '' 329 340 127.0.0.1 etcd.${top.addons.dns.clusterDomain} etcd.local 330 341 ''; 342 + 343 + services.flannel = with cfg.certs.flannelClient; { 344 + kubeconfig = top.lib.mkKubeConfig "flannel" { 345 + server = top.apiserverAddress; 346 + certFile = cert; 347 + keyFile = key; 348 + }; 349 + }; 331 350 332 351 services.kubernetes = { 333 352 ··· 356 359 proxyClientCertFile = mkDefault cfg.certs.apiserverProxyClient.cert; 357 360 proxyClientKeyFile = mkDefault cfg.certs.apiserverProxyClient.key; 358 361 }); 359 - addonManager = mkIf top.addonManager.enable { 360 - kubeconfig = with cfg.certs.addonManager; { 361 - certFile = mkDefault cert; 362 - keyFile = mkDefault key; 363 - }; 364 - bootstrapAddonsKubeconfig = clusterAdminKubeconfig; 365 - }; 366 362 controllerManager = mkIf top.controllerManager.enable { 367 363 serviceAccountKeyFile = mkDefault cfg.certs.serviceAccount.key; 368 364 rootCaFile = cfg.certs.controllerManagerClient.caCert; 369 365 kubeconfig = with cfg.certs.controllerManagerClient; { 370 366 certFile = mkDefault cert; 371 367 keyFile = mkDefault key; 372 - }; 373 - }; 374 - flannel = mkIf top.flannel.enable { 375 - kubeconfig = with cfg.certs.flannelClient; { 376 - certFile = cert; 377 - keyFile = key; 378 368 }; 379 369 }; 380 370 scheduler = mkIf top.scheduler.enable {
+6 -31
nixos/modules/services/cluster/kubernetes/proxy.nix
··· 45 45 }; 46 46 47 47 ###### implementation 48 - config = let 49 - 50 - proxyPaths = filter (a: a != null) [ 51 - cfg.kubeconfig.caFile 52 - cfg.kubeconfig.certFile 53 - cfg.kubeconfig.keyFile 54 - ]; 55 - 56 - in mkIf cfg.enable { 57 - systemd.services.kube-proxy = rec { 48 + config = mkIf cfg.enable { 49 + systemd.services.kube-proxy = { 58 50 description = "Kubernetes Proxy Service"; 59 - wantedBy = [ "kube-node-online.target" ]; 60 - after = [ "kubelet-online.service" ]; 61 - before = [ "kube-node-online.target" ]; 62 - environment.KUBECONFIG = top.lib.mkKubeConfig "kube-proxy" cfg.kubeconfig; 63 - path = with pkgs; [ iptables conntrack_tools kubectl ]; 64 - preStart = '' 65 - until kubectl auth can-i get nodes/${top.kubelet.hostname} -q 2>/dev/null; do 66 - echo kubectl auth can-i get nodes/${top.kubelet.hostname}: exit status $? 67 - sleep 2 68 - done 69 - ''; 51 + wantedBy = [ "kubernetes.target" ]; 52 + after = [ "kube-apiserver.service" ]; 53 + path = with pkgs; [ iptables conntrack_tools ]; 70 54 serviceConfig = { 71 55 Slice = "kubernetes.slice"; 72 56 ExecStart = ''${top.package}/bin/kube-proxy \ ··· 59 75 "--cluster-cidr=${top.clusterCidr}"} \ 60 76 ${optionalString (cfg.featureGates != []) 61 77 "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \ 62 - --kubeconfig=${environment.KUBECONFIG} \ 78 + --kubeconfig=${top.lib.mkKubeConfig "kube-proxy" cfg.kubeconfig} \ 63 79 ${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \ 64 80 ${cfg.extraOpts} 65 81 ''; 66 82 WorkingDirectory = top.dataDir; 67 83 Restart = "on-failure"; 68 84 RestartSec = 5; 69 - }; 70 - unitConfig.ConditionPathExists = proxyPaths; 71 - }; 72 - 73 - systemd.paths.kube-proxy = { 74 - wantedBy = [ "kube-proxy.service" ]; 75 - pathConfig = { 76 - PathExists = proxyPaths; 77 - PathChanged = proxyPaths; 78 85 }; 79 86 }; 80 87
+4 -30
nixos/modules/services/cluster/kubernetes/scheduler.nix
··· 56 56 }; 57 57 58 58 ###### implementation 59 - config = let 60 - 61 - schedulerPaths = filter (a: a != null) [ 62 - cfg.kubeconfig.caFile 63 - cfg.kubeconfig.certFile 64 - cfg.kubeconfig.keyFile 65 - ]; 66 - 67 - in mkIf cfg.enable { 68 - systemd.services.kube-scheduler = rec { 59 + config = mkIf cfg.enable { 60 + systemd.services.kube-scheduler = { 69 61 description = "Kubernetes Scheduler Service"; 70 - wantedBy = [ "kube-control-plane-online.target" ]; 62 + wantedBy = [ "kubernetes.target" ]; 71 63 after = [ "kube-apiserver.service" ]; 72 - before = [ "kube-control-plane-online.target" ]; 73 - environment.KUBECONFIG = top.lib.mkKubeConfig "kube-scheduler" cfg.kubeconfig; 74 - path = [ pkgs.kubectl ]; 75 - preStart = '' 76 - until kubectl auth can-i get /api -q 2>/dev/null; do 77 - echo kubectl auth can-i get /api: exit status $? 78 - sleep 2 79 - done 80 - ''; 81 64 serviceConfig = { 82 65 Slice = "kubernetes.slice"; 83 66 ExecStart = ''${top.package}/bin/kube-scheduler \ 84 67 --address=${cfg.address} \ 85 68 ${optionalString (cfg.featureGates != []) 86 69 "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \ 87 - --kubeconfig=${environment.KUBECONFIG} \ 70 + --kubeconfig=${top.lib.mkKubeConfig "kube-scheduler" cfg.kubeconfig} \ 88 71 --leader-elect=${boolToString cfg.leaderElect} \ 89 72 --port=${toString cfg.port} \ 90 73 ${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \ ··· 78 95 Group = "kubernetes"; 79 96 Restart = "on-failure"; 80 97 RestartSec = 5; 81 - }; 82 - unitConfig.ConditionPathExists = schedulerPaths; 83 - }; 84 - 85 - systemd.paths.kube-scheduler = { 86 - wantedBy = [ "kube-scheduler.service" ]; 87 - pathConfig = { 88 - PathExists = schedulerPaths; 89 - PathChanged = schedulerPaths; 90 98 }; 91 99 }; 92 100
+4
nixos/modules/services/databases/postgresql.nix
··· 81 81 default = ""; 82 82 description = '' 83 83 Defines the mapping from system users to database users. 84 + 85 + The general form is: 86 + 87 + map-name system-username database-username 84 88 ''; 85 89 }; 86 90
+3 -3
nixos/modules/services/editors/emacs.xml
··· 59 59 <para> 60 60 The latest stable version of Emacs 25 using the 61 61 <link 62 - xlink:href="http://www.gtk.org">GTK+ 2</link> 62 + xlink:href="http://www.gtk.org">GTK 2</link> 63 63 widget toolkit. 64 64 </para> 65 65 </listitem> ··· 321 321 <para> 322 322 If you want, you can tweak the Emacs package itself from your 323 323 <filename>emacs.nix</filename>. For example, if you want to have a 324 - GTK+3-based Emacs instead of the default GTK+2-based binary and remove the 324 + GTK 3-based Emacs instead of the default GTK 2-based binary and remove the 325 325 automatically generated <filename>emacs.desktop</filename> (useful is you 326 326 only use <command>emacsclient</command>), you can change your file 327 327 <filename>emacs.nix</filename> in this way: ··· 349 349 350 350 <para> 351 351 After building this file as shown in <xref linkend="ex-emacsNix" />, you 352 - will get an GTK3-based Emacs binary pre-loaded with your favorite packages. 352 + will get an GTK 3-based Emacs binary pre-loaded with your favorite packages. 353 353 </para> 354 354 </section> 355 355 </section>
+1
nixos/modules/services/misc/zookeeper.nix
··· 121 121 122 122 systemd.tmpfiles.rules = [ 123 123 "d '${cfg.dataDir}' 0700 zookeeper - - -" 124 + "Z '${cfg.dataDir}' 0700 zookeeper - - -" 124 125 ]; 125 126 126 127 systemd.services.zookeeper = {
+73 -37
nixos/modules/services/network-filesystems/ceph.nix
··· 3 3 with lib; 4 4 5 5 let 6 - ceph = pkgs.ceph; 7 6 cfg = config.services.ceph; 7 + 8 8 # function that translates "camelCaseOptions" to "camel case options", credits to tilpner in #nixos@freenode 9 - translateOption = replaceStrings upperChars (map (s: " ${s}") lowerChars); 10 - generateDaemonList = (daemonType: daemons: extraServiceConfig: 11 - mkMerge ( 12 - map (daemon: 13 - { "ceph-${daemonType}-${daemon}" = generateServiceFile daemonType daemon cfg.global.clusterName ceph extraServiceConfig; } 14 - ) daemons 15 - ) 16 - ); 17 - generateServiceFile = (daemonType: daemonId: clusterName: ceph: extraServiceConfig: { 9 + expandCamelCase = replaceStrings upperChars (map (s: " ${s}") lowerChars); 10 + expandCamelCaseAttrs = mapAttrs' (name: value: nameValuePair (expandCamelCase name) value); 11 + 12 + makeServices = (daemonType: daemonIds: extraServiceConfig: 13 + mkMerge (map (daemonId: 14 + { "ceph-${daemonType}-${daemonId}" = makeService daemonType daemonId cfg.global.clusterName pkgs.ceph extraServiceConfig; }) 15 + daemonIds)); 16 + 17 + makeService = (daemonType: daemonId: clusterName: ceph: extraServiceConfig: { 18 18 enable = true; 19 19 description = "Ceph ${builtins.replaceStrings lowerChars upperChars daemonType} daemon ${daemonId}"; 20 20 after = [ "network-online.target" "time-sync.target" ] ++ optional (daemonType == "osd") "ceph-mon.target"; ··· 34 34 Restart = "on-failure"; 35 35 StartLimitBurst = "5"; 36 36 StartLimitInterval = "30min"; 37 - ExecStart = "${ceph.out}/bin/${if daemonType == "rgw" then "radosgw" else "ceph-${daemonType}"} -f --cluster ${clusterName} --id ${if daemonType == "rgw" then "client.${daemonId}" else daemonId} --setuser ceph --setgroup ceph"; 37 + ExecStart = ''${ceph.out}/bin/${if daemonType == "rgw" then "radosgw" else "ceph-${daemonType}"} \ 38 + -f --cluster ${clusterName} --id ${daemonId} --setuser ceph \ 39 + --setgroup ${if daemonType == "osd" then "disk" else "ceph"}''; 38 40 } // extraServiceConfig 39 - // optionalAttrs (daemonType == "osd") { ExecStartPre = "${ceph.out}/libexec/ceph/ceph-osd-prestart.sh --id ${daemonId} --cluster ${clusterName}"; }; 40 - } // optionalAttrs (builtins.elem daemonType [ "mds" "mon" "rgw" "mgr" ]) { preStart = '' 41 + // optionalAttrs (daemonType == "osd") { ExecStartPre = ''${ceph.lib}/libexec/ceph/ceph-osd-prestart.sh \ 42 + --id ${daemonId} --cluster ${clusterName}''; }; 43 + } // optionalAttrs (builtins.elem daemonType [ "mds" "mon" "rgw" "mgr" ]) { 44 + preStart = '' 41 45 daemonPath="/var/lib/ceph/${if daemonType == "rgw" then "radosgw" else daemonType}/${clusterName}-${daemonId}" 42 - if [ ! -d ''$daemonPath ]; then 43 - mkdir -m 755 -p ''$daemonPath 44 - chown -R ceph:ceph ''$daemonPath 46 + if [ ! -d $daemonPath ]; then 47 + mkdir -m 755 -p $daemonPath 48 + chown -R ceph:ceph $daemonPath 45 49 fi 46 50 ''; 47 51 } // optionalAttrs (daemonType == "osd") { path = [ pkgs.getopt ]; } 48 52 ); 49 - generateTargetFile = (daemonType: 53 + 54 + makeTarget = (daemonType: 50 55 { 51 56 "ceph-${daemonType}" = { 52 57 description = "Ceph target allowing to start/stop all ceph-${daemonType} services at once"; 53 58 partOf = [ "ceph.target" ]; 59 + wantedBy = [ "ceph.target" ]; 54 60 before = [ "ceph.target" ]; 55 61 }; 56 62 } ··· 85 79 default = "ceph"; 86 80 description = '' 87 81 Name of cluster 82 + ''; 83 + }; 84 + 85 + mgrModulePath = mkOption { 86 + type = types.path; 87 + default = "${pkgs.ceph.lib}/lib/ceph/mgr"; 88 + description = '' 89 + Path at which to find ceph-mgr modules. 88 90 ''; 89 91 }; 90 92 ··· 171 157 A comma-separated list of subnets that will be used as cluster networks in the cluster. 172 158 ''; 173 159 }; 160 + 161 + rgwMimeTypesFile = mkOption { 162 + type = with types; nullOr path; 163 + default = "${pkgs.mime-types}/etc/mime.types"; 164 + description = '' 165 + Path to mime types used by radosgw. 166 + ''; 167 + }; 168 + }; 169 + 170 + extraConfig = mkOption { 171 + type = with types; attrsOf str; 172 + default = {}; 173 + example = '' 174 + { 175 + "ms bind ipv6" = "true"; 176 + }; 177 + ''; 178 + description = '' 179 + Extra configuration to add to the global section. Use for setting values that are common for all daemons in the cluster. 180 + ''; 174 181 }; 175 182 176 183 mgr = { ··· 251 216 to the id part in ceph i.e. [ "name1" ] would result in osd.name1 252 217 ''; 253 218 }; 219 + 254 220 extraConfig = mkOption { 255 221 type = with types; attrsOf str; 256 222 default = { ··· 332 296 { assertion = cfg.global.fsid != ""; 333 297 message = "fsid has to be set to a valid uuid for the cluster to function"; 334 298 } 335 - { assertion = cfg.mgr.enable == true; 336 - message = "ceph 12.x requires atleast 1 MGR daemon enabled for the cluster to function"; 337 - } 338 299 { assertion = cfg.mon.enable == true -> cfg.mon.daemons != []; 339 300 message = "have to set id of atleast one MON if you're going to enable Monitor"; 340 301 } ··· 350 317 ''Not setting up a list of members in monInitialMembers requires that you set the host variable for each mon daemon or else the cluster won't function''; 351 318 352 319 environment.etc."ceph/ceph.conf".text = let 353 - # Translate camelCaseOptions to the expected camel case option for ceph.conf 354 - translatedGlobalConfig = mapAttrs' (name: value: nameValuePair (translateOption name) value) cfg.global; 355 320 # Merge the extraConfig set for mgr daemons, as mgr don't have their own section 356 - globalAndMgrConfig = translatedGlobalConfig // optionalAttrs cfg.mgr.enable cfg.mgr.extraConfig; 321 + globalSection = expandCamelCaseAttrs (cfg.global // cfg.extraConfig // optionalAttrs cfg.mgr.enable cfg.mgr.extraConfig); 357 322 # Remove all name-value pairs with null values from the attribute set to avoid making empty sections in the ceph.conf 358 - globalConfig = mapAttrs' (name: value: nameValuePair (translateOption name) value) (filterAttrs (name: value: value != null) globalAndMgrConfig); 323 + globalSection' = filterAttrs (name: value: value != null) globalSection; 359 324 totalConfig = { 360 - global = globalConfig; 325 + global = globalSection'; 361 326 } // optionalAttrs (cfg.mon.enable && cfg.mon.extraConfig != {}) { mon = cfg.mon.extraConfig; } 362 327 // optionalAttrs (cfg.mds.enable && cfg.mds.extraConfig != {}) { mds = cfg.mds.extraConfig; } 363 328 // optionalAttrs (cfg.osd.enable && cfg.osd.extraConfig != {}) { osd = cfg.osd.extraConfig; } ··· 367 336 name = "ceph"; 368 337 uid = config.ids.uids.ceph; 369 338 description = "Ceph daemon user"; 339 + group = "ceph"; 340 + extraGroups = [ "disk" ]; 370 341 }; 371 - 372 342 users.groups = singleton { 373 343 name = "ceph"; 374 344 gid = config.ids.gids.ceph; ··· 377 345 378 346 systemd.services = let 379 347 services = [] 380 - ++ optional cfg.mon.enable (generateDaemonList "mon" cfg.mon.daemons { RestartSec = "10"; }) 381 - ++ optional cfg.mds.enable (generateDaemonList "mds" cfg.mds.daemons { StartLimitBurst = "3"; }) 382 - ++ optional cfg.osd.enable (generateDaemonList "osd" cfg.osd.daemons { StartLimitBurst = "30"; RestartSec = "20s"; }) 383 - ++ optional cfg.rgw.enable (generateDaemonList "rgw" cfg.rgw.daemons { }) 384 - ++ optional cfg.mgr.enable (generateDaemonList "mgr" cfg.mgr.daemons { StartLimitBurst = "3"; }); 348 + ++ optional cfg.mon.enable (makeServices "mon" cfg.mon.daemons { RestartSec = "10"; }) 349 + ++ optional cfg.mds.enable (makeServices "mds" cfg.mds.daemons { StartLimitBurst = "3"; }) 350 + ++ optional cfg.osd.enable (makeServices "osd" cfg.osd.daemons { StartLimitBurst = "30"; 351 + RestartSec = "20s"; 352 + PrivateDevices = "no"; # osd needs disk access 353 + }) 354 + ++ optional cfg.rgw.enable (makeServices "rgw" cfg.rgw.daemons { }) 355 + ++ optional cfg.mgr.enable (makeServices "mgr" cfg.mgr.daemons { StartLimitBurst = "3"; }); 385 356 in 386 357 mkMerge services; 387 358 388 359 systemd.targets = let 389 360 targets = [ 390 - { ceph = { description = "Ceph target allowing to start/stop all ceph service instances at once"; }; } 391 - ] ++ optional cfg.mon.enable (generateTargetFile "mon") 392 - ++ optional cfg.mds.enable (generateTargetFile "mds") 393 - ++ optional cfg.osd.enable (generateTargetFile "osd") 394 - ++ optional cfg.rgw.enable (generateTargetFile "rgw") 395 - ++ optional cfg.mgr.enable (generateTargetFile "mgr"); 361 + { "ceph" = { description = "Ceph target allowing to start/stop all ceph service instances at once"; 362 + wantedBy = [ "multi-user.target" ]; }; } 363 + ] ++ optional cfg.mon.enable (makeTarget "mon") 364 + ++ optional cfg.mds.enable (makeTarget "mds") 365 + ++ optional cfg.osd.enable (makeTarget "osd") 366 + ++ optional cfg.rgw.enable (makeTarget "rgw") 367 + ++ optional cfg.mgr.enable (makeTarget "mgr"); 396 368 in 397 369 mkMerge targets; 398 370
+1 -1
nixos/modules/services/web-servers/darkhttpd.nix
··· 67 67 wantedBy = [ "multi-user.target" ]; 68 68 serviceConfig = { 69 69 DynamicUser = true; 70 - ExecStart = "${cfg.package}/bin/darkhttpd ${args}"; 70 + ExecStart = "${pkgs.darkhttpd}/bin/darkhttpd ${args}"; 71 71 AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ]; 72 72 Restart = "on-failure"; 73 73 RestartSec = "2s";
+2 -2
nixos/modules/services/x11/desktop-managers/enlightenment.nix
··· 31 31 e.efl e.enlightenment 32 32 e.terminology e.econnman 33 33 pkgs.xorg.xauth # used by kdesu 34 - pkgs.gtk2 # To get GTK+'s themes. 34 + pkgs.gtk2 # To get GTK's themes. 35 35 pkgs.tango-icon-theme 36 36 37 37 pkgs.gnome2.gnome_icon_theme ··· 48 48 services.xserver.desktopManager.session = [ 49 49 { name = "Enlightenment"; 50 50 start = '' 51 - # Set GTK_DATA_PREFIX so that GTK+ can find the themes 51 + # Set GTK_DATA_PREFIX so that GTK can find the themes 52 52 export GTK_DATA_PREFIX=${config.system.path} 53 53 # find theme engines 54 54 export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0
+1 -1
nixos/modules/services/x11/desktop-managers/mate.nix
··· 48 48 name = "mate"; 49 49 bgSupport = true; 50 50 start = '' 51 - # Set GTK_DATA_PREFIX so that GTK+ can find the themes 51 + # Set GTK_DATA_PREFIX so that GTK can find the themes 52 52 export GTK_DATA_PREFIX=${config.system.path} 53 53 54 54 # Find theme engines
+3 -3
nixos/modules/services/x11/desktop-managers/xfce.nix
··· 48 48 49 49 config = mkIf cfg.enable { 50 50 environment.systemPackages = with pkgs.xfce // pkgs; [ 51 - # Get GTK+ themes and gtk-update-icon-cache 51 + # Get GTK themes and gtk-update-icon-cache 52 52 gtk2.out 53 53 54 54 # Supplies some abstract icons such as: ··· 107 107 start = '' 108 108 ${cfg.extraSessionCommands} 109 109 110 - # Set GTK_PATH so that GTK+ can find the theme engines. 110 + # Set GTK_PATH so that GTK can find the theme engines. 111 111 export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0" 112 112 113 - # Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes. 113 + # Set GTK_DATA_PREFIX so that GTK can find the Xfce themes. 114 114 export GTK_DATA_PREFIX=${config.system.path} 115 115 116 116 ${pkgs.runtimeShell} ${pkgs.xfce.xinitrc} &
+2 -2
nixos/modules/services/x11/desktop-managers/xfce4-14.nix
··· 114 114 name = "xfce4-14"; 115 115 bgSupport = true; 116 116 start = '' 117 - # Set GTK_PATH so that GTK+ can find the theme engines. 117 + # Set GTK_PATH so that GTK can find the theme engines. 118 118 export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0" 119 119 120 - # Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes. 120 + # Set GTK_DATA_PREFIX so that GTK can find the Xfce themes. 121 121 export GTK_DATA_PREFIX=${config.system.path} 122 122 123 123 ${pkgs.runtimeShell} ${pkgs.xfce4-14.xinitrc} &
+12 -2
nixos/modules/virtualisation/amazon-image.nix
··· 25 25 { assertion = cfg.hvm; 26 26 message = "Paravirtualized EC2 instances are no longer supported."; 27 27 } 28 + { assertion = cfg.efi -> cfg.hvm; 29 + message = "EC2 instances using EFI must be HVM instances."; 30 + } 28 31 ]; 29 32 30 33 boot.growPartition = cfg.hvm; ··· 36 33 device = "/dev/disk/by-label/nixos"; 37 34 fsType = "ext4"; 38 35 autoResize = true; 36 + }; 37 + 38 + fileSystems."/boot" = mkIf cfg.efi { 39 + device = "/dev/disk/by-label/ESP"; 40 + fsType = "vfat"; 39 41 }; 40 42 41 43 boot.extraModulePackages = [ ··· 58 50 59 51 # Generate a GRUB menu. Amazon's pv-grub uses this to boot our kernel/initrd. 60 52 boot.loader.grub.version = if cfg.hvm then 2 else 1; 61 - boot.loader.grub.device = if cfg.hvm then "/dev/xvda" else "nodev"; 53 + boot.loader.grub.device = if (cfg.hvm && !cfg.efi) then "/dev/xvda" else "nodev"; 62 54 boot.loader.grub.extraPerEntryConfig = mkIf (!cfg.hvm) "root (hd0)"; 55 + boot.loader.grub.efiSupport = cfg.efi; 56 + boot.loader.grub.efiInstallAsRemovable = cfg.efi; 63 57 boot.loader.timeout = 0; 64 58 65 59 boot.initrd.network.enable = true; ··· 147 137 networking.timeServers = [ "169.254.169.123" ]; 148 138 149 139 # udisks has become too bloated to have in a headless system 150 - # (e.g. it depends on GTK+). 140 + # (e.g. it depends on GTK). 151 141 services.udisks2.enable = false; 152 142 }; 153 143 }
+8 -1
nixos/modules/virtualisation/amazon-options.nix
··· 1 - { config, lib, ... }: 1 + { config, lib, pkgs, ... }: 2 2 { 3 3 options = { 4 4 ec2 = { ··· 7 7 internal = true; 8 8 description = '' 9 9 Whether the EC2 instance is a HVM instance. 10 + ''; 11 + }; 12 + efi = lib.mkOption { 13 + default = pkgs.stdenv.hostPlatform.isAarch64; 14 + internal = true; 15 + description = '' 16 + Whether the EC2 instance is using EFI. 10 17 ''; 11 18 }; 12 19 };
+125
nixos/modules/virtualisation/railcar.nix
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.railcar; 7 + generateUnit = name: containerConfig: 8 + let 9 + container = pkgs.ociTools.buildContainer { 10 + args = [ 11 + (pkgs.writeShellScript "run.sh" containerConfig.cmd).outPath 12 + ]; 13 + }; 14 + in 15 + nameValuePair "railcar-${name}" { 16 + enable = true; 17 + wantedBy = [ "multi-user.target" ]; 18 + serviceConfig = { 19 + ExecStart = '' 20 + ${cfg.package}/bin/railcar -r ${cfg.stateDir} run ${name} -b ${container} 21 + ''; 22 + Type = containerConfig.runType; 23 + }; 24 + }; 25 + mount = with types; (submodule { 26 + options = { 27 + type = mkOption { 28 + type = string; 29 + default = "none"; 30 + description = '' 31 + The type of the filesystem to be mounted. 32 + Linux: filesystem types supported by the kernel as listed in 33 + `/proc/filesystems` (e.g., "minix", "ext2", "ext3", "jfs", "xfs", 34 + "reiserfs", "msdos", "proc", "nfs", "iso9660"). For bind mounts 35 + (when options include either bind or rbind), the type is a dummy, 36 + often "none" (not listed in /proc/filesystems). 37 + ''; 38 + }; 39 + source = mkOption { 40 + type = string; 41 + description = "Source for the in-container mount"; 42 + }; 43 + options = mkOption { 44 + type = loaOf (string); 45 + default = [ "bind" ]; 46 + description = '' 47 + Mount options of the filesystem to be used. 48 + 49 + Support optoions are listed in the mount(8) man page. Note that 50 + both filesystem-independent and filesystem-specific options 51 + are listed. 52 + ''; 53 + }; 54 + }; 55 + }); 56 + in 57 + { 58 + options.services.railcar = { 59 + enable = mkEnableOption "railcar"; 60 + 61 + containers = mkOption { 62 + default = {}; 63 + description = "Declarative container configuration"; 64 + type = with types; loaOf (submodule ({ name, config, ... }: { 65 + options = { 66 + cmd = mkOption { 67 + type = types.string; 68 + description = "Command or script to run inside the container"; 69 + }; 70 + 71 + mounts = mkOption { 72 + type = with types; attrsOf mount; 73 + default = {}; 74 + description = '' 75 + A set of mounts inside the container. 76 + 77 + The defaults have been chosen for simple bindmounts, meaning 78 + that you only need to provide the "source" parameter. 79 + ''; 80 + example = '' 81 + { "/data" = { source = "/var/lib/data"; }; } 82 + ''; 83 + }; 84 + 85 + runType = mkOption { 86 + type = types.string; 87 + default = "oneshot"; 88 + description = "The systemd service run type"; 89 + }; 90 + 91 + os = mkOption { 92 + type = types.string; 93 + default = "linux"; 94 + description = "OS type of the container"; 95 + }; 96 + 97 + arch = mkOption { 98 + type = types.string; 99 + default = "x86_64"; 100 + description = "Computer architecture type of the container"; 101 + }; 102 + }; 103 + })); 104 + }; 105 + 106 + stateDir = mkOption { 107 + type = types.path; 108 + default = ''/var/railcar''; 109 + description = "Railcar persistent state directory"; 110 + }; 111 + 112 + package = mkOption { 113 + type = types.package; 114 + default = pkgs.railcar; 115 + description = "Railcar package to use"; 116 + }; 117 + }; 118 + 119 + config = mkIf cfg.enable { 120 + systemd.services = flip mapAttrs' cfg.containers (name: containerConfig: 121 + generateUnit name containerConfig 122 + ); 123 + }; 124 + } 125 +
+16
nixos/release.nix
··· 196 196 ); 197 197 198 198 199 + # A disk image that can be imported to Amazon EC2 and registered as an AMI 200 + amazonImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: 201 + 202 + with import nixpkgs { inherit system; }; 203 + 204 + hydraJob ((import lib/eval-config.nix { 205 + inherit system; 206 + modules = 207 + [ versionModule 208 + ./maintainers/scripts/ec2/amazon-image.nix 209 + ]; 210 + }).config.system.build.amazonImage) 211 + 212 + ); 213 + 214 + 199 215 # Ensure that all packages used by the minimal NixOS config end up in the channel. 200 216 dummy = forAllSystems (system: pkgs.runCommand "dummy" 201 217 { toplevel = (import lib/eval-config.nix {
+37 -15
nixos/tests/ceph.nix
··· 1 - import ./make-test.nix ({pkgs, ...}: { 1 + import ./make-test.nix ({pkgs, lib, ...}: { 2 2 name = "All-in-one-basic-ceph-cluster"; 3 3 meta = with pkgs.stdenv.lib.maintainers; { 4 4 maintainers = [ lejonet ]; ··· 7 7 nodes = { 8 8 aio = { pkgs, ... }: { 9 9 virtualisation = { 10 + memorySize = 1536; 10 11 emptyDiskImages = [ 20480 20480 ]; 11 12 vlans = [ 1 ]; 12 13 }; ··· 25 24 ceph 26 25 xfsprogs 27 26 ]; 28 - nixpkgs.config.packageOverrides = super: { 29 - ceph = super.ceph.override({ nss = super.nss; libxfs = super.libxfs; libaio = super.libaio; jemalloc = super.jemalloc; }); 30 - }; 31 27 32 28 boot.kernelModules = [ "xfs" ]; 33 29 ··· 49 51 enable = true; 50 52 daemons = [ "0" "1" ]; 51 53 }; 54 + 55 + # So that we don't have to battle systemd when bootstraping 56 + systemd.targets.ceph.wantedBy = lib.mkForce []; 52 57 }; 53 58 }; 54 59 ··· 62 61 63 62 # Create the ceph-related directories 64 63 $aio->mustSucceed( 65 - "mkdir -p /var/lib/ceph/mgr/ceph-aio/", 66 - "mkdir -p /var/lib/ceph/mon/ceph-aio/", 67 - "mkdir -p /var/lib/ceph/osd/ceph-{0..1}/", 68 - "chown ceph:ceph -R /var/lib/ceph/" 64 + "mkdir -p /var/lib/ceph/mgr/ceph-aio", 65 + "mkdir -p /var/lib/ceph/mon/ceph-aio", 66 + "mkdir -p /var/lib/ceph/osd/ceph-{0,1}", 67 + "chown ceph:ceph -R /var/lib/ceph/", 68 + "mkdir -p /etc/ceph", 69 + "chown ceph:ceph -R /etc/ceph" 69 70 ); 70 71 71 72 # Bootstrap ceph-mon daemon 72 73 $aio->mustSucceed( 73 - "mkdir -p /var/lib/ceph/bootstrap-osd && chown ceph:ceph /var/lib/ceph/bootstrap-osd", 74 74 "sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'", 75 - "ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'", 76 - "ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring", 77 - "monmaptool --create --add aio 192.168.1.1 --fsid 066ae264-2a5d-4729-8001-6ad265f50b03 /tmp/monmap", 75 + "sudo -u ceph ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'", 76 + "sudo -u ceph ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring", 77 + "monmaptool --create --add aio 192.168.1.1 --fsid 066ae264-2a5d-4729-8001-6ad265f50b03 /tmp/monmap", 78 78 "sudo -u ceph ceph-mon --mkfs -i aio --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring", 79 - "touch /var/lib/ceph/mon/ceph-aio/done", 79 + "sudo -u ceph touch /var/lib/ceph/mon/ceph-aio/done", 80 80 "systemctl start ceph-mon-aio" 81 81 ); 82 82 $aio->waitForUnit("ceph-mon-aio"); 83 + $aio->mustSucceed("ceph mon enable-msgr2"); 83 84 84 85 # Can't check ceph status until a mon is up 85 86 $aio->succeed("ceph -s | grep 'mon: 1 daemons'"); ··· 93 90 ); 94 91 $aio->waitForUnit("ceph-mgr-aio"); 95 92 $aio->waitUntilSucceeds("ceph -s | grep 'quorum aio'"); 93 + $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active,'"); 96 94 97 95 # Bootstrap both OSDs 98 96 $aio->mustSucceed( ··· 116 112 "systemctl start ceph-osd-1" 117 113 ); 118 114 119 - $aio->waitUntilSucceeds("ceph osd stat | grep '2 osds: 2 up, 2 in'"); 120 - $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active)'"); 115 + $aio->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'"); 116 + $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active,'"); 121 117 $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'"); 122 118 123 119 $aio->mustSucceed( ··· 139 135 "ceph osd pool ls | grep 'aio-test'", 140 136 "ceph osd pool delete aio-other-test aio-other-test --yes-i-really-really-mean-it" 141 137 ); 138 + 139 + # As we disable the target in the config, we still want to test that it works as intended 140 + $aio->mustSucceed( 141 + "systemctl stop ceph-osd-0", 142 + "systemctl stop ceph-osd-1", 143 + "systemctl stop ceph-mgr-aio", 144 + "systemctl stop ceph-mon-aio" 145 + ); 146 + $aio->succeed("systemctl start ceph.target"); 147 + $aio->waitForUnit("ceph-mon-aio"); 148 + $aio->waitForUnit("ceph-mgr-aio"); 149 + $aio->waitForUnit("ceph-osd-0"); 150 + $aio->waitForUnit("ceph-osd-1"); 151 + $aio->succeed("ceph -s | grep 'mon: 1 daemons'"); 152 + $aio->waitUntilSucceeds("ceph -s | grep 'quorum aio'"); 153 + $aio->waitUntilSucceeds("ceph osd stat | grep -e '2 osds: 2 up[^,]*, 2 in'"); 154 + $aio->waitUntilSucceeds("ceph -s | grep 'mgr: aio(active,'"); 155 + $aio->waitUntilSucceeds("ceph -s | grep 'HEALTH_OK'"); 142 156 ''; 143 157 })
+1 -4
nixos/tests/kubernetes/base.nix
··· 30 30 { config, pkgs, lib, nodes, ... }: 31 31 mkMerge [ 32 32 { 33 - boot = { 34 - postBootCommands = "rm -fr /var/lib/kubernetes/secrets /tmp/shared/*"; 35 - kernel.sysctl = { "fs.inotify.max_user_instances" = 256; }; 36 - }; 33 + boot.postBootCommands = "rm -fr /var/lib/kubernetes/secrets /tmp/shared/*"; 37 34 virtualisation.memorySize = mkDefault 1536; 38 35 virtualisation.diskSize = mkDefault 4096; 39 36 networking = {
-3
nixos/tests/kubernetes/dns.nix
··· 77 77 singleNodeTest = { 78 78 test = '' 79 79 # prepare machine1 for test 80 - $machine1->waitForUnit("kubernetes.target"); 81 80 $machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready"); 82 81 $machine1->waitUntilSucceeds("docker load < ${redisImage}"); 83 82 $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}"); ··· 102 103 # Node token exchange 103 104 $machine1->waitUntilSucceeds("cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret"); 104 105 $machine2->waitUntilSucceeds("cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join"); 105 - $machine1->waitForUnit("kubernetes.target"); 106 - $machine2->waitForUnit("kubernetes.target"); 107 106 108 107 # prepare machines for test 109 108 $machine1->waitUntilSucceeds("kubectl get node machine2.${domain} | grep -w Ready");
-4
nixos/tests/kubernetes/rbac.nix
··· 94 94 95 95 singlenode = base // { 96 96 test = '' 97 - $machine1->waitForUnit("kubernetes.target"); 98 - 99 97 $machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready"); 100 98 101 99 $machine1->waitUntilSucceeds("docker load < ${kubectlImage}"); ··· 116 118 # Node token exchange 117 119 $machine1->waitUntilSucceeds("cp -f /var/lib/cfssl/apitoken.secret /tmp/shared/apitoken.secret"); 118 120 $machine2->waitUntilSucceeds("cat /tmp/shared/apitoken.secret | nixos-kubernetes-node-join"); 119 - $machine1->waitForUnit("kubernetes.target"); 120 - $machine2->waitForUnit("kubernetes.target"); 121 121 122 122 $machine1->waitUntilSucceeds("kubectl get node machine2.my.zyx | grep -w Ready"); 123 123
+2 -2
nixos/tests/quake3.nix
··· 12 12 13 13 # Only allow the demo data to be used (only if it's unfreeRedistributable). 14 14 unfreePredicate = pkg: with pkgs.lib; let 15 - allowDrvPredicates = [ "quake3-demo" "quake3-pointrelease" ]; 15 + allowPackageNames = [ "quake3-demodata" "quake3-pointrelease" ]; 16 16 allowLicenses = [ pkgs.lib.licenses.unfreeRedistributable ]; 17 - in any (flip hasPrefix pkg.name) allowDrvPredicates && 17 + in elem pkg.pname allowPackageNames && 18 18 elem (pkg.meta.license or null) allowLicenses; 19 19 20 20 in
+1 -1
pkgs/applications/audio/cozy-audiobooks/default.nix
··· 74 74 ''; 75 75 76 76 meta = with stdenv.lib; { 77 - description = "A modern audio book player for Linux using GTK+ 3"; 77 + description = "A modern audio book player for Linux using GTK 3"; 78 78 homepage = https://cozy.geigi.de/; 79 79 maintainers = [ maintainers.makefu ]; 80 80 license = licenses.gpl3;
+1 -1
pkgs/applications/audio/pavucontrol/default.nix
··· 27 27 description = "PulseAudio Volume Control"; 28 28 29 29 longDescription = '' 30 - PulseAudio Volume Control (pavucontrol) provides a GTK+ 30 + PulseAudio Volume Control (pavucontrol) provides a GTK 31 31 graphical user interface to connect to a PulseAudio server and 32 32 easily control the volume of all clients, sinks, etc. 33 33 '';
+2 -2
pkgs/applications/audio/quodlibet/default.nix
··· 46 46 preFixup = stdenv.lib.optionalString (kakasi != null) "gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)"; 47 47 48 48 meta = with stdenv.lib; { 49 - description = "GTK+-based audio player written in Python, using the Mutagen tagging library"; 49 + description = "GTK-based audio player written in Python, using the Mutagen tagging library"; 50 50 license = licenses.gpl2Plus; 51 51 52 52 longDescription = '' 53 - Quod Libet is a GTK+-based audio player written in Python, using 53 + Quod Libet is a GTK-based audio player written in Python, using 54 54 the Mutagen tagging library. It's designed around the idea that 55 55 you know how to organize your music better than we do. It lets 56 56 you make playlists based on regular expressions (don't worry,
+1 -1
pkgs/applications/audio/sonata/default.nix
··· 41 41 longDescription = '' 42 42 Sonata is an elegant client for the Music Player Daemon. 43 43 44 - Written in Python and using the GTK+ 3 widget set, its features 44 + Written in Python and using the GTK 3 widget set, its features 45 45 include: 46 46 47 47 - Expanded and collapsed views
+1 -1
pkgs/applications/editors/leafpad/default.nix
··· 18 18 ]; 19 19 20 20 meta = with stdenv.lib; { 21 - description = "A notepad clone for GTK+ 2.0"; 21 + description = "A notepad clone for GTK 2.0"; 22 22 homepage = http://tarot.freeshell.org/leafpad; 23 23 platforms = platforms.linux; 24 24 maintainers = [ maintainers.flosse ];
+3 -3
pkgs/applications/editors/vscode/vscode.nix
··· 11 11 archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; 12 12 13 13 sha256 = { 14 - "x86_64-linux" = "1np7j6xv0bxmq7762ml0h6pib8963s2vdmyvigi0fz2iik92zv8z"; 15 - "x86_64-darwin" = "0f87cv1sbcvix9f7hhw0vsypp0bf627xdyh4bmh0g41k17ls8wvc"; 14 + "x86_64-linux" = "1iz36nhkg78346g5407df6jv4d1ydb22hhgs8hiaxql3hq5z7x3q"; 15 + "x86_64-darwin" = "1iijk0kx90rax39iradbbafyvd3vwnzsgvyb3s13asy42pbhhkky"; 16 16 }.${system}; 17 17 in 18 18 callPackage ./generic.nix rec { 19 19 20 - version = "1.37.1"; 20 + version = "1.38.0"; 21 21 pname = "vscode"; 22 22 23 23 executableName = "code" + lib.optionalString isInsiders "-insiders";
+3 -3
pkgs/applications/editors/vscode/vscodium.nix
··· 11 11 archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; 12 12 13 13 sha256 = { 14 - "x86_64-linux" = "0j6188gm66bwffyg0vn3ak8242vs2vb2cw92b9wfkiml6sfg555n"; 15 - "x86_64-darwin" = "0iblg0hn6jdds7d2hzp0icb5yh6hhw3fd5g4iim64ibi7lpwj2cj"; 14 + "x86_64-linux" = "09rq5jx7aicwp3qqi5pcv6bmyyp1rm5cfa96hvy3f4grhq1fi132"; 15 + "x86_64-darwin" = "1y1lbb3q5myaz7jg21x5sl0in8wr46brqj9zyrg3f16zahsagzr4"; 16 16 }.${system}; 17 17 in 18 18 callPackage ./generic.nix rec { 19 19 20 - version = "1.37.1"; 20 + version = "1.38.0"; 21 21 pname = "vscodium"; 22 22 23 23 executableName = "codium";
+1 -1
pkgs/applications/graphics/gcolor2/default.nix
··· 26 26 ++ (with perlPackages; [ perl XMLParser ]); 27 27 28 28 meta = { 29 - description = "Simple GTK+2 color selector"; 29 + description = "Simple GTK 2 color selector"; 30 30 homepage = http://gcolor2.sourceforge.net/; 31 31 license = stdenv.lib.licenses.gpl2Plus; 32 32 maintainers = with stdenv.lib.maintainers; [ notthemessiah ];
+2 -2
pkgs/applications/graphics/geeqie/default.nix
··· 46 46 enableParallelBuilding = true; 47 47 48 48 meta = with stdenv.lib; { 49 - description = "Lightweight GTK+ based image viewer"; 49 + description = "Lightweight GTK based image viewer"; 50 50 51 51 longDescription = 52 52 '' 53 - Geeqie is a lightweight GTK+ based image viewer for Unix like 53 + Geeqie is a lightweight GTK based image viewer for Unix like 54 54 operating systems. It features: EXIF, IPTC and XMP metadata 55 55 browsing and editing interoperability; easy integration with other 56 56 software; geeqie works on files and directories, there is no need to
+1 -1
pkgs/applications/graphics/mcomix/default.nix
··· 19 19 MComix is an user-friendly, customizable image viewer. It is specifically 20 20 designed to handle comic books, but also serves as a generic viewer. 21 21 It reads images in ZIP, RAR, 7Zip or tar archives as well as plain image 22 - files. It is written in Python and uses GTK+ through the PyGTK bindings, 22 + files. It is written in Python and uses GTK through the PyGTK bindings, 23 23 and runs on both Linux and Windows. 24 24 25 25 MComix is a fork of the Comix project, and aims to add bug fixes and
+2 -2
pkgs/applications/graphics/mtpaint/default.nix
··· 22 22 ]; 23 23 24 24 meta = { 25 - description = "A simple GTK+1/2 painting program"; 25 + description = "A simple GTK painting program"; 26 26 longDescription = '' 27 - mtPaint is a simple GTK+1/2 painting program designed for 27 + mtPaint is a simple GTK painting program designed for 28 28 creating icons and pixel based artwork. It can edit indexed palette 29 29 or 24 bit RGB images and offers basic painting and palette manipulation 30 30 tools. It also has several other more powerful features such as channels,
+4 -4
pkgs/applications/misc/calibre/default.nix
··· 6 6 7 7 mkDerivation rec { 8 8 pname = "calibre"; 9 - version = "3.47.0"; 9 + version = "3.47.1"; 10 10 11 11 src = fetchurl { 12 12 url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; 13 - sha256 = "0mjj47w9pa7ihycialijrfq2qk107dcxwcwriz3b2mg4lixlawy4"; 13 + sha256 = "17lz6rawlv268vv8i5kj59rswsipq3c14066adaz1paw54zr62dk"; 14 14 }; 15 15 16 16 patches = [ ··· 105 105 disallowedReferences = [ podofo.dev ]; 106 106 107 107 calibreDesktopItem = makeDesktopItem { 108 - name = "calibre"; 108 + name = "calibre-gui"; 109 109 desktopName = "calibre"; 110 110 exec = "@out@/bin/calibre --detach %F"; 111 111 genericName = "E-book library management"; ··· 151 151 }; 152 152 153 153 ebookEditDesktopItem = makeDesktopItem { 154 - name = "calibre-edit-ebook"; 154 + name = "calibre-edit-book"; 155 155 desktopName = "Edit E-book"; 156 156 genericName = "E-book Editor"; 157 157 comment = "Edit e-books";
+1 -1
pkgs/applications/misc/clipit/default.nix
··· 13 13 buildInputs = [ intltool gtk2 xdotool hicolor-icon-theme ]; 14 14 15 15 meta = with stdenv.lib; { 16 - description = "Lightweight GTK+ Clipboard Manager"; 16 + description = "Lightweight GTK Clipboard Manager"; 17 17 homepage = "http://clipit.rspwn.com"; 18 18 license = licenses.gpl3; 19 19 platforms = platforms.linux;
+4 -4
pkgs/applications/misc/epdfview/default.nix
··· 28 28 29 29 meta = with stdenv.lib; { 30 30 homepage = https://packages.debian.org/wheezy/epdfview; 31 - description = "A lightweight PDF document viewer using Poppler and GTK+"; 31 + description = "A lightweight PDF document viewer using Poppler and GTK"; 32 32 longDescription = '' 33 - ePDFView is a free lightweight PDF document viewer using Poppler and 34 - GTK+ libraries. The aim of ePDFView is to make a simple PDF document 35 - viewer, in the lines of Evince but without using the Gnome libraries. 33 + ePDFView is a free lightweight PDF document viewer using Poppler and 34 + GTK libraries. The aim of ePDFView is to make a simple PDF document 35 + viewer, in the lines of Evince but without using the Gnome libraries. 36 36 ''; 37 37 license = licenses.gpl2; 38 38 maintainers = [ maintainers.astsmtl ];
+2 -2
pkgs/applications/misc/font-manager/default.nix
··· 49 49 50 50 meta = with stdenv.lib; { 51 51 homepage = https://fontmanager.github.io/; 52 - description = "Simple font management for GTK+ desktop environments"; 52 + description = "Simple font management for GTK desktop environments"; 53 53 longDescription = '' 54 54 Font Manager is intended to provide a way for average users to 55 55 easily manage desktop fonts, without having to resort to command 56 56 line tools or editing configuration files by hand. While designed 57 57 primarily with the Gnome Desktop Environment in mind, it should 58 - work well with other Gtk+ desktop environments. 58 + work well with other GTK desktop environments. 59 59 60 60 Font Manager is NOT a professional-grade font management solution. 61 61 '';
+1 -1
pkgs/applications/misc/girara/default.nix
··· 33 33 homepage = https://pwmt.org/projects/girara/; 34 34 description = "User interface library"; 35 35 longDescription = '' 36 - girara is a library that implements a GTK+ based VIM-like user interface 36 + girara is a library that implements a GTK based VIM-like user interface 37 37 that focuses on simplicity and minimalism. 38 38 ''; 39 39 license = licenses.zlib;
+1 -1
pkgs/applications/misc/gksu/default.nix
··· 39 39 meta = { 40 40 description = "A graphical frontend for libgksu"; 41 41 longDescription = '' 42 - GKSu is a library that provides a Gtk+ frontend to su and sudo. 42 + GKSu is a library that provides a GTK frontend to su and sudo. 43 43 It supports login shells and preserving environment when acting as 44 44 a su frontend. It is useful to menu items or other graphical 45 45 programs that need to ask a user's password to run another program
+1 -1
pkgs/applications/misc/gmrun/default.nix
··· 30 30 description = "Gnome Completion-Run Utility"; 31 31 longDescription = '' 32 32 A simple program which provides a "run program" window, featuring a bash-like TAB completion. 33 - It uses GTK+ interface. 33 + It uses GTK interface. 34 34 Also, supports CTRL-R / CTRL-S / "!" for searching through history. 35 35 Running commands in a terminal with CTRL-Enter. URL handlers. 36 36 '';
+1 -1
pkgs/applications/misc/grip/default.nix
··· 16 16 hardeningDisable = [ "format" ]; 17 17 18 18 meta = { 19 - description = "GTK+-based audio CD player/ripper"; 19 + description = "GTK-based audio CD player/ripper"; 20 20 homepage = http://nostatic.org/grip; 21 21 license = stdenv.lib.licenses.gpl2; 22 22
+2 -2
pkgs/applications/misc/gtk2fontsel/default.nix
··· 15 15 preferLocalBuild = true; 16 16 17 17 meta = with stdenv.lib; { 18 - description = "A font selection program for X11 using the GTK2 toolkit"; 18 + description = "A font selection program for X11 using the GTK 2 toolkit"; 19 19 longDescription = '' 20 - Font selection tool similar to xfontsel implemented using GTK+ 2. 20 + Font selection tool similar to xfontsel implemented using GTK 2. 21 21 Trivial, but useful nonetheless. 22 22 ''; 23 23 homepage = http://gtk2fontsel.sourceforge.net/;
+53
pkgs/applications/misc/michabo/default.nix
··· 1 + { lib 2 + , mkDerivation 3 + , makeDesktopItem 4 + , fetchFromGitLab 5 + , qmake 6 + # qt 7 + , qtbase 8 + , qtwebsockets 9 + }: 10 + 11 + let 12 + desktopItem = makeDesktopItem { 13 + type = "Application"; 14 + name = "Michabo"; 15 + desktopName = "Michabo"; 16 + exec = "Michabo"; 17 + }; 18 + 19 + in mkDerivation rec { 20 + pname = "michabo"; 21 + version = "0.1"; 22 + 23 + src = fetchFromGitLab { 24 + domain = "git.pleroma.social"; 25 + owner = "kaniini"; 26 + repo = "michabo"; 27 + rev = "v${version}"; 28 + sha256 = "0pl4ymdb36r0kwlclfjjp6b1qml3fm9ql7ag5inprny5y8vcjpzn"; 29 + }; 30 + 31 + nativeBuildInputs = [ 32 + qmake 33 + ]; 34 + buildInputs = [ 35 + qtbase 36 + qtwebsockets 37 + ]; 38 + 39 + qmakeFlags = [ "michabo.pro" "DESTDIR=${placeholder "out"}/bin" ]; 40 + 41 + postInstall = '' 42 + ln -s ${desktopItem}/share $out/share 43 + ''; 44 + 45 + meta = with lib; { 46 + description = "A native desktop app for Pleroma and Mastodon servers"; 47 + homepage = "https://git.pleroma.social/kaniini/michabo"; 48 + license = licenses.gpl3; 49 + maintainers = with maintainers; [ fgaz ]; 50 + platforms = platforms.all; 51 + }; 52 + } 53 +
+1 -1
pkgs/applications/misc/orca/default.nix
··· 64 64 access to the graphical desktop via speech and refreshable braille. 65 65 It works with applications and toolkits that support the Assistive 66 66 Technology Service Provider Interface (AT-SPI). That includes the GNOME 67 - Gtk+ toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and 67 + GTK toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and 68 68 WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued. 69 69 70 70 Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`.
+1 -1
pkgs/applications/misc/pcmanfm/default.nix
··· 21 21 meta = with stdenv.lib; { 22 22 homepage = https://blog.lxde.org/category/pcmanfm/; 23 23 license = licenses.gpl2Plus; 24 - description = "File manager with GTK+ interface"; 24 + description = "File manager with GTK interface"; 25 25 maintainers = [ maintainers.ttuegel ]; 26 26 platforms = platforms.linux; 27 27 };
+1 -1
pkgs/applications/misc/pcmanx-gtk2/default.nix
··· 23 23 meta = with stdenv.lib; { 24 24 homepage = https://pcman.ptt.cc; 25 25 license = licenses.gpl2; 26 - description = "Telnet BBS browser with GTK+ interface"; 26 + description = "Telnet BBS browser with GTK interface"; 27 27 maintainers = [ maintainers.sifmelcara ]; 28 28 platforms = platforms.linux; 29 29 };
+1 -4
pkgs/applications/misc/stupidterm/default.nix
··· 27 27 ''; 28 28 29 29 meta = with stdenv.lib; { 30 - description = "Simple wrapper around the VTE terminal emulator widget for GTK+"; 31 - longDescription = '' 32 - Simple wrapper around the VTE terminal emulator widget for GTK+ 33 - ''; 30 + description = "Simple wrapper around the VTE terminal emulator widget for GTK"; 34 31 homepage = https://github.com/esmil/stupidterm; 35 32 license = licenses.lgpl3Plus; 36 33 maintainers = [ maintainers.etu ];
+2 -2
pkgs/applications/misc/taskell/default.nix
··· 1 1 { lib, haskellPackages, fetchFromGitHub }: 2 2 3 3 let 4 - version = "1.6.0"; 5 - sha256 = "1yq7lbqg759i3hyxcskx3924b7xmw6i4ny6n8yq80k4hikw2k6mf"; 4 + version = "1.6.1"; 5 + sha256 = "047gvpq52pif9sfb4qcfdiwz50x3wlnjvsnnjzypm1qlwyl2rbz1"; 6 6 7 7 in (haskellPackages.mkDerivation { 8 8 pname = "taskell";
+1 -1
pkgs/applications/misc/zathura/wrapper.nix
··· 21 21 description = "A highly customizable and functional PDF viewer"; 22 22 longDescription = '' 23 23 Zathura is a highly customizable and functional PDF viewer based on the 24 - poppler rendering library and the gtk+ toolkit. The idea behind zathura 24 + poppler rendering library and the GTK toolkit. The idea behind zathura 25 25 is an application that provides a minimalistic and space saving interface 26 26 as well as an easy usage that mainly focuses on keyboard interaction. 27 27 '';
+1 -1
pkgs/applications/networking/browsers/midori/default.nix
··· 22 22 ]; 23 23 24 24 meta = with stdenv.lib; { 25 - description = "Lightweight WebKitGTK+ web browser"; 25 + description = "Lightweight WebKitGTK web browser"; 26 26 homepage = https://www.midori-browser.org/; 27 27 license = with licenses; [ lgpl21Plus ]; 28 28 platforms = with platforms; linux;
+2 -2
pkgs/applications/networking/browsers/surf/default.nix
··· 21 21 installFlags = [ "PREFIX=$(out)" ]; 22 22 23 23 meta = with stdenv.lib; { 24 - description = "A simple web browser based on WebKit/GTK+"; 24 + description = "A simple web browser based on WebKit/GTK"; 25 25 longDescription = '' 26 - Surf is a simple web browser based on WebKit/GTK+. It is able to display 26 + Surf is a simple web browser based on WebKit/GTK. It is able to display 27 27 websites and follow links. It supports the XEmbed protocol which makes it 28 28 possible to embed it in another application. Furthermore, one can point 29 29 surf to another URI by setting its XProperties.
+2 -2
pkgs/applications/networking/browsers/vivaldi/default.nix
··· 17 17 vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; 18 18 in stdenv.mkDerivation rec { 19 19 pname = "vivaldi"; 20 - version = "2.7.1628.30-1"; 20 + version = "2.7.1628.33-1"; 21 21 22 22 src = fetchurl { 23 23 url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; 24 - sha256 = "1lz8adwiwll8g246s5pa0ipfraph51s9f4lcfysdrp1s3s1qhw8x"; 24 + sha256 = "1km5ccxqyd5xgmzm42zca670jf7wd4j7c726fhyj4wjni71zar34"; 25 25 }; 26 26 27 27 unpackPhase = ''
+8 -6
pkgs/applications/networking/cluster/kubernetes/default.nix
··· 15 15 16 16 stdenv.mkDerivation rec { 17 17 pname = "kubernetes"; 18 - version = "1.14.3"; 18 + version = "1.15.3"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "kubernetes"; 22 22 repo = "kubernetes"; 23 23 rev = "v${version}"; 24 - sha256 = "1r31ssf8bdbz8fdsprhkc34jqhz5rcs3ixlf0mbjcbq0xr7y651z"; 24 + sha256 = "0vamr7m8i5svmvb0z01cngv3sffdfjj0bky2zalm7cfnapib8vz1"; 25 25 }; 26 26 27 27 buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; ··· 29 29 outputs = ["out" "man" "pause"]; 30 30 31 31 postPatch = '' 32 - substituteInPlace "hack/lib/golang.sh" --replace "_cgo" "" 32 + # go env breaks the sandbox 33 + substituteInPlace "hack/lib/golang.sh" \ 34 + --replace 'echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)"' 'echo "${go.GOOS}/${go.GOARCH}"' 35 + 33 36 substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}" 34 37 # hack/update-munge-docs.sh only performs some tests on the documentation. 35 38 # They broke building k8s; disabled for now. ··· 55 52 cp build/pause/pause "$pause/bin/pause" 56 53 cp -R docs/man/man1 "$man/share/man" 57 54 58 - cp cluster/addons/addon-manager/namespace.yaml $out/share 59 55 cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons 60 56 patchShebangs $out/bin/kube-addons 61 - substituteInPlace $out/bin/kube-addons \ 62 - --replace /opt/namespace.yaml $out/share/namespace.yaml 63 57 wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl" 58 + 59 + cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh 64 60 65 61 $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl 66 62 $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl
+113
pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
··· 1 + #!/usr/bin/env bash 2 + 3 + # Copyright 2014 The Kubernetes Authors. 4 + # 5 + # Licensed under the Apache License, Version 2.0 (the "License"); 6 + # you may not use this file except in compliance with the License. 7 + # You may obtain a copy of the License at 8 + # 9 + # http://www.apache.org/licenses/LICENSE-2.0 10 + # 11 + # Unless required by applicable law or agreed to in writing, software 12 + # distributed under the License is distributed on an "AS IS" BASIS, 13 + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 + # See the License for the specific language governing permissions and 15 + # limitations under the License. 16 + 17 + # Generate Docker daemon options based on flannel env file. 18 + 19 + # exit on any error 20 + set -e 21 + 22 + usage() { 23 + echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY] 24 + 25 + Generate Docker daemon options based on flannel env file 26 + OPTIONS: 27 + -f Path to flannel env file. Defaults to /run/flannel/subnet.env 28 + -d Path to Docker env file to write to. Defaults to /run/docker_opts.env 29 + -i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500 30 + -c Output combined Docker options into DOCKER_OPTS var 31 + -k Set the combined options key to this value (default DOCKER_OPTS=) 32 + -m Do not output --ip-masq (useful for older Docker version) 33 + " >/dev/stderr 34 + exit 1 35 + } 36 + 37 + flannel_env="/run/flannel/subnet.env" 38 + docker_env="/run/docker_opts.env" 39 + combined_opts_key="DOCKER_OPTS" 40 + indiv_opts=false 41 + combined_opts=false 42 + ipmasq=true 43 + val="" 44 + 45 + while getopts "f:d:icmk:" opt; do 46 + case $opt in 47 + f) 48 + flannel_env=$OPTARG 49 + ;; 50 + d) 51 + docker_env=$OPTARG 52 + ;; 53 + i) 54 + indiv_opts=true 55 + ;; 56 + c) 57 + combined_opts=true 58 + ;; 59 + m) 60 + ipmasq=false 61 + ;; 62 + k) 63 + combined_opts_key=$OPTARG 64 + ;; 65 + \?) 66 + usage 67 + ;; 68 + esac 69 + done 70 + 71 + if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then 72 + indiv_opts=true 73 + combined_opts=true 74 + fi 75 + 76 + if [[ -f "${flannel_env}" ]]; then 77 + source "${flannel_env}" 78 + fi 79 + 80 + if [[ -n "$FLANNEL_SUBNET" ]]; then 81 + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below 82 + DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET" 83 + fi 84 + 85 + if [[ -n "$FLANNEL_MTU" ]]; then 86 + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below 87 + DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU" 88 + fi 89 + 90 + if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then 91 + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below 92 + DOCKER_OPT_IPMASQ="--ip-masq=false" 93 + fi 94 + 95 + eval docker_opts="\$${combined_opts_key}" 96 + docker_opts+=" " 97 + 98 + echo -n "" >"${docker_env}" 99 + 100 + # OPT_LOOP 101 + for opt in $(compgen -v DOCKER_OPT_); do 102 + eval val=\$"${opt}" 103 + 104 + if [[ "$indiv_opts" = true ]]; then 105 + echo "$opt=\"$val\"" >>"${docker_env}" 106 + fi 107 + 108 + docker_opts+="$val " 109 + done 110 + 111 + if [[ "$combined_opts" = true ]]; then 112 + echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}" 113 + fi
+2 -2
pkgs/applications/networking/cluster/terraform/default.nix
··· 97 97 terraform_0_11-full = terraform_0_11.full; 98 98 99 99 terraform_0_12 = pluggable (generic { 100 - version = "0.12.7"; 101 - sha256 = "09zsak1a9z2mk88vb6xs9jaxfpazhs0p7x68mw62c9mm13m8kq02"; 100 + version = "0.12.8"; 101 + sha256 = "1qlhbn6xj2nd8gwr6aiyjsb62qmj4j9jnxab006xgdr1avvl2p67"; 102 102 patches = [ ./provider-path.patch ]; 103 103 passthru = { inherit plugins; }; 104 104 });
+1 -1
pkgs/applications/networking/corebird/default.nix
··· 28 28 ''; 29 29 30 30 meta = { 31 - description = "Native Gtk+ Twitter client for the Linux desktop"; 31 + description = "Native GTK Twitter client for the Linux desktop"; 32 32 longDescription = "Corebird is a modern, easy and fun Twitter client."; 33 33 homepage = https://corebird.baedert.org/; 34 34 license = stdenv.lib.licenses.gpl3;
+1 -1
pkgs/applications/networking/instant-messengers/dino/default.nix
··· 62 62 enableParallelBuilding = true; 63 63 64 64 meta = with stdenv.lib; { 65 - description = "Modern Jabber/XMPP Client using GTK+/Vala"; 65 + description = "Modern Jabber/XMPP Client using GTK/Vala"; 66 66 homepage = https://github.com/dino/dino; 67 67 license = licenses.gpl3; 68 68 platforms = platforms.linux;
+3 -3
pkgs/applications/networking/instant-messengers/discord/default.nix
··· 27 27 pname = "discord-canary"; 28 28 binaryName = "DiscordCanary"; 29 29 desktopName = "Discord Canary"; 30 - version = "0.0.95"; 30 + version = "0.0.96"; 31 31 src = fetchurl { 32 - url = "https://dl-canary.discordapp.net/apps/linux/0.0.95/discord-canary-0.0.95.tar.gz"; 33 - sha256 = "06qhm73kc88pq0lgbi7qjy4gx9ighkmx128fdm1dpzfv62fjdasw"; 32 + url = "https://dl-canary.discordapp.net/apps/linux/0.0.96/discord-canary-0.0.96.tar.gz"; 33 + sha256 = "1fxyh9v5xglwbgr5sidn0cv70qpzcd2q240wsv87k3nawhvfcwsp"; 34 34 }; 35 35 }; 36 36 }.${branch}
+4 -3
pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
··· 2 2 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig 3 3 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite 4 4 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib 5 - , cups, expat, udev, libnotify, libuuid 5 + , cups, expat, udev, libnotify, libuuid, at-spi2-core 6 6 # Unfortunately this also overwrites the UI language (not just the spell 7 7 # checking language!): 8 8 , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE" ··· 25 25 alsaLib 26 26 atk 27 27 at-spi2-atk 28 + at-spi2-core 28 29 cairo 29 30 cups 30 31 dbus ··· 58 57 59 58 in stdenv.mkDerivation rec { 60 59 pname = "signal-desktop"; 61 - version = "1.26.2"; 60 + version = "1.27.1"; 62 61 63 62 src = fetchurl { 64 63 url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; 65 - sha256 = "08qx7k82x6ybqi3lln6ixzmdz4sr8yz8vfx0y408b85wjfc7ncjk"; 64 + sha256 = "16fg60c5r7zcjs8ya6jk33l5kz8m21y9a1si3i0a2dvyaclz4a3q"; 66 65 }; 67 66 68 67 phases = [ "unpackPhase" "installPhase" ];
+3 -3
pkgs/applications/networking/irc/weechat/default.nix
··· 6 6 , guileSupport ? true, guile 7 7 , luaSupport ? true, lua5 8 8 , perlSupport ? true, perl 9 - , pythonSupport ? true, pythonPackages 9 + , pythonSupport ? true, python3Packages 10 10 , rubySupport ? true, ruby 11 11 , tclSupport ? true, tcl 12 12 , extraBuildInputs ? [] 13 13 }: 14 14 15 15 let 16 - inherit (pythonPackages) python; 16 + inherit (python3Packages) python; 17 17 plugins = [ 18 18 { name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; } 19 19 { name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; } 20 20 { name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; } 21 21 { name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; } 22 22 { name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; } 23 - { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON"; buildInputs = [ python ]; } 23 + { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; } 24 24 ]; 25 25 enabledPlugins = builtins.filter (p: p.enabled) plugins; 26 26
+4 -8
pkgs/applications/networking/irc/weechat/scripts/default.nix
··· 1 - { callPackage, luaPackages, pythonPackages }: 1 + { callPackage, luaPackages }: 2 2 3 3 { 4 - weechat-xmpp = callPackage ./weechat-xmpp { 5 - inherit (pythonPackages) pydns; 6 - }; 7 - 8 4 weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { 9 5 inherit (luaPackages) cjson luaffi; 10 6 }; 11 7 12 - wee-slack = callPackage ./wee-slack { 13 - inherit pythonPackages; 14 - }; 8 + wee-slack = callPackage ./wee-slack { }; 15 9 16 10 weechat-autosort = callPackage ./weechat-autosort { }; 11 + 12 + weechat-otr = callPackage ./weechat-otr { }; 17 13 }
+3 -3
pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
··· 1 - { stdenv, substituteAll, buildEnv, fetchFromGitHub, pythonPackages }: 1 + { stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "wee-slack"; ··· 16 16 src = ./libpath.patch; 17 17 env = "${buildEnv { 18 18 name = "wee-slack-env"; 19 - paths = with pythonPackages; [ websocket_client six ]; 20 - }}/${pythonPackages.python.sitePackages}"; 19 + paths = with python3Packages; [ websocket_client six ]; 20 + }}/${python3Packages.python.sitePackages}"; 21 21 }) 22 22 ]; 23 23
+64
pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
··· 1 + { stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }: 2 + 3 + let 4 + # pure-python-otr (potr) requires an older version of pycrypto, which is 5 + # not compatible with pycryptodome. Therefore, the latest patched version 6 + # of pycrypto will be fetched from the Debian project. 7 + # https://security-tracker.debian.org/tracker/source-package/python-crypto 8 + 9 + pycrypto = python3Packages.buildPythonPackage rec { 10 + pname = "pycrypto"; 11 + version = "2.6.1-10"; 12 + 13 + src = fetchgit { 14 + url = "https://salsa.debian.org/sramacher/python-crypto.git"; 15 + rev = "debian/${version}"; 16 + sha256 = "10rgq8bmjfpiqqa1g1p1hh7pxlxs7x0nawvk6zip0pd6x2vsr661"; 17 + }; 18 + 19 + buildInputs = [ gmp ]; 20 + 21 + preConfigure = '' 22 + sed -i 's,/usr/include,/no-such-dir,' configure 23 + sed -i "s!,'/usr/include/'!!" setup.py 24 + ''; 25 + }; 26 + 27 + potr = python3Packages.potr.overridePythonAttrs (oldAttrs: { 28 + propagatedBuildInputs = [ pycrypto ]; 29 + }); 30 + in stdenv.mkDerivation rec { 31 + pname = "weechat-otr"; 32 + version = "1.9.2"; 33 + 34 + src = fetchFromGitHub { 35 + repo = pname; 36 + owner = "mmb"; 37 + rev = "v${version}"; 38 + sha256 = "1lngv98y6883vk8z2628cl4d5y8jxy39w8245gjdvshl8g18k5s2"; 39 + }; 40 + 41 + patches = [ 42 + (substituteAll { 43 + src = ./libpath.patch; 44 + env = "${buildEnv { 45 + name = "weechat-otr-env"; 46 + paths = [ potr pycrypto ]; 47 + }}/${python3Packages.python.sitePackages}"; 48 + }) 49 + ]; 50 + 51 + passthru.scripts = [ "weechat_otr.py" ]; 52 + 53 + installPhase = '' 54 + mkdir -p $out/share 55 + cp weechat_otr.py $out/share/weechat_otr.py 56 + ''; 57 + 58 + meta = with stdenv.lib; { 59 + homepage = "https://github.com/mmb/weechat-otr"; 60 + license = licenses.gpl3; 61 + maintainers = with maintainers; [ geistesk ]; 62 + description = "WeeChat script for Off-the-Record messaging"; 63 + }; 64 + }
+13
pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch
··· 1 + diff --git a/weechat_otr.py b/weechat_otr.py 2 + index 0ccfb35..c42bebf 100644 3 + --- a/weechat_otr.py 4 + +++ b/weechat_otr.py 5 + @@ -41,6 +41,8 @@ import shlex 6 + import shutil 7 + import sys 8 + 9 + +sys.path.append('@env@') 10 + + 11 + import potr 12 + import weechat 13 +
-36
pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix
··· 1 - { stdenv, fetchFromGitHub, xmpppy, pydns, substituteAll, buildEnv }: 2 - 3 - stdenv.mkDerivation { 4 - name = "weechat-jabber-2017-08-30"; 5 - 6 - src = fetchFromGitHub { 7 - repo = "weechat-xmpp"; 8 - owner = "sleduc"; 9 - sha256 = "0s02xs0ynld9cxxzj07al364sfglyc5ir1i82133mq0s8cpphnxv"; 10 - rev = "8f6c21f5a160c9318c7a2d8fd5dcac7ab2e0d843"; 11 - }; 12 - 13 - installPhase = '' 14 - mkdir -p $out/share 15 - cp jabber.py $out/share/jabber.py 16 - ''; 17 - 18 - patches = [ 19 - (substituteAll { 20 - src = ./libpath.patch; 21 - env = "${buildEnv { 22 - name = "weechat-xmpp-env"; 23 - paths = [ pydns xmpppy ]; 24 - }}/lib/python2.7/site-packages"; 25 - }) 26 - ]; 27 - 28 - passthru.scripts = [ "jabber.py" ]; 29 - 30 - meta = with stdenv.lib; { 31 - description = "A fork of the jabber plugin for weechat"; 32 - homepage = "https://github.com/sleduc/weechat-xmpp"; 33 - maintainers = with maintainers; [ ma27 ]; 34 - license = licenses.gpl3Plus; 35 - }; 36 - }
-16
pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch
··· 1 - diff --git a/jabber.py b/jabber.py 2 - index 27006a3..e53c2c0 100644 3 - --- a/jabber.py 4 - +++ b/jabber.py 5 - @@ -95,6 +95,11 @@ SCRIPT_COMMAND = SCRIPT_NAME 6 - import re 7 - import warnings 8 - 9 - +import sys 10 - + 11 - +sys.path.append('@env@') 12 - + 13 - + 14 - import_ok = True 15 - 16 - try:
+3 -3
pkgs/applications/networking/irc/weechat/wrapper.nix
··· 1 1 { lib, runCommand, writeScriptBin, buildEnv 2 - , pythonPackages, perlPackages, runtimeShell 2 + , python3Packages, perlPackages, runtimeShell 3 3 }: 4 4 5 5 weechat: ··· 17 17 in rec { 18 18 python = (simplePlugin "python") // { 19 19 extraEnv = '' 20 - export PATH="${pythonPackages.python}/bin:$PATH" 20 + export PATH="${python3Packages.python}/bin:$PATH" 21 21 ''; 22 22 withPackages = pkgsFun: (python // { 23 23 extraEnv = '' 24 - export PYTHONHOME="${pythonPackages.python.withPackages pkgsFun}" 24 + export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}" 25 25 ''; 26 26 }); 27 27 };
+1 -1
pkgs/applications/networking/mailreaders/astroid/default.nix
··· 40 40 41 41 meta = with stdenv.lib; { 42 42 homepage = https://astroidmail.github.io/; 43 - description = "GTK+ frontend to the notmuch mail system"; 43 + description = "GTK frontend to the notmuch mail system"; 44 44 maintainers = with maintainers; [ bdimcheff SuprDewd ]; 45 45 license = licenses.gpl3Plus; 46 46 platforms = platforms.linux;
+1 -1
pkgs/applications/networking/modem-manager-gui/default.nix
··· 50 50 meta = with stdenv.lib; { 51 51 description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more"; 52 52 longDescription = '' 53 - A simple GTK+ based GUI compatible with Modem manager, Wader and oFono 53 + A simple GTK based GUI compatible with Modem manager, Wader and oFono 54 54 system services able to control EDGE/3G/4G broadband modem specific 55 55 functions. You can check balance of your SIM card, send or receive SMS 56 56 messages, control mobile traffic consumption and more.
+1 -1
pkgs/applications/networking/newsreaders/pan/default.nix
··· 38 38 enableParallelBuilding = true; 39 39 40 40 meta = { 41 - description = "A GTK+-based Usenet newsreader good at both text and binaries"; 41 + description = "A GTK-based Usenet newsreader good at both text and binaries"; 42 42 homepage = http://pan.rebelbase.com/; 43 43 maintainers = [ stdenv.lib.maintainers.eelco ]; 44 44 platforms = stdenv.lib.platforms.linux;
+1 -1
pkgs/applications/networking/p2p/transmission/default.nix
··· 49 49 on top of a cross-platform back-end. 50 50 Feature spotlight: 51 51 * Uses fewer resources than other clients 52 - * Native Mac, GTK+ and Qt GUI clients 52 + * Native Mac, GTK and Qt GUI clients 53 53 * Daemon ideal for servers, embedded systems, and headless use 54 54 * All these can be remote controlled by Web and Terminal clients 55 55 * Bluetack (PeerGuardian) blocklists with automatic updates
+1 -1
pkgs/applications/networking/remote/remmina/default.nix
··· 52 52 meta = { 53 53 license = licenses.gpl2; 54 54 homepage = https://gitlab.com/Remmina/Remmina; 55 - description = "Remote desktop client written in GTK+"; 55 + description = "Remote desktop client written in GTK"; 56 56 maintainers = with maintainers; [ melsigl ryantm ]; 57 57 platforms = platforms.linux; 58 58 };
+1 -1
pkgs/applications/office/planner/default.nix
··· 61 61 Its goal is to be an easy-to-use no-nonsense cross-platform 62 62 project management application. 63 63 64 - Planner is a GTK+ application written in C and licensed under the 64 + Planner is a GTK application written in C and licensed under the 65 65 GPLv2 or any later version. It can store its data in either xml 66 66 files or in a postgresql database. Projects can also be printed 67 67 to PDF or exported to HTML for easy viewing from any web browser.
+1 -1
pkgs/applications/science/astronomy/gpredict/default.nix
··· 21 21 description = "Real time satellite tracking and orbit prediction"; 22 22 longDescription = '' 23 23 Gpredict is a real time satellite tracking and orbit prediction program 24 - written using the Gtk+ widgets. Gpredict is targetted mainly towards ham radio 24 + written using the GTK widgets. Gpredict is targetted mainly towards ham radio 25 25 operators but others interested in satellite tracking may find it useful as 26 26 well. Gpredict uses the SGP4/SDP4 algorithms, which are compatible with the 27 27 NORAD Keplerian elements.
+23
pkgs/applications/science/biology/xenomapper/default.nix
··· 1 + {buildPythonPackage, lib, fetchFromGitHub, statistics}: 2 + 3 + buildPythonPackage rec { 4 + pname = "xenomapper"; 5 + version = "1.0.2"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "genomematt"; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "0mnmfzlq5mhih6z8dq5bkx95vb8whjycz9mdlqwbmlqjb3gb3zhr"; 12 + }; 13 + 14 + propagatedBuildInputs = [ statistics ]; 15 + 16 + meta = with lib; { 17 + homepage = "http://github.com/genomematt/xenomapper"; 18 + description = "A utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins"; 19 + license = licenses.gpl3; 20 + platforms = platforms.all; 21 + maintainers = [ maintainers.jbedo ]; 22 + }; 23 + }
+1 -1
pkgs/applications/search/catfish/default.nix
··· 56 56 description = "A handy file search tool"; 57 57 longDescription = '' 58 58 Catfish is a handy file searching tool. The interface is 59 - intentionally lightweight and simple, using only GTK+3. 59 + intentionally lightweight and simple, using only GTK 3. 60 60 You can configure it to your needs by using several command line 61 61 options. 62 62 '';
+1 -1
pkgs/applications/video/celluloid/default.nix
··· 51 51 doCheck = true; 52 52 53 53 meta = with stdenv.lib; { 54 - description = "Simple GTK+ frontend for the mpv video player"; 54 + description = "Simple GTK frontend for the mpv video player"; 55 55 longDescription = '' 56 56 GNOME MPV interacts with mpv via the client API exported by libmpv, 57 57 allowing access to mpv's powerful playback capabilities through an
+1 -1
pkgs/applications/video/handbrake/default.nix
··· 97 97 and containers. Very versatile and customizable. 98 98 Package provides: 99 99 CLI - `HandbrakeCLI` 100 - GTK+ GUI - `ghb` 100 + GTK GUI - `ghb` 101 101 ''; 102 102 license = licenses.gpl2; 103 103 maintainers = with maintainers; [ Anton-Latukha wmertens ];
+2 -2
pkgs/applications/video/mkvtoolnix/default.nix
··· 13 13 14 14 stdenv.mkDerivation rec { 15 15 pname = "mkvtoolnix"; 16 - version = "36.0.0"; 16 + version = "37.0.0"; 17 17 18 18 src = fetchFromGitLab { 19 19 owner = "mbunkus"; 20 20 repo = "mkvtoolnix"; 21 21 rev = "release-${version}"; 22 - sha256 = "114j9n2m6dkh7vqzyhcsjzzffadr0lzyjmh31cbl4mvvkg9j5z6r"; 22 + sha256 = "0r1qzvqc6xx7rmv4v4fjc70cqy832h8v0fjf6c5ljbg1c6pgkl0l"; 23 23 }; 24 24 25 25 nativeBuildInputs = [
+2 -2
pkgs/applications/video/subtitleeditor/default.nix
··· 49 49 configureFlags = [ "--disable-debug" ]; 50 50 51 51 meta = { 52 - description = "GTK+3 application to edit video subtitles"; 52 + description = "GTK 3 application to edit video subtitles"; 53 53 longDescription = '' 54 - Subtitle Editor is a GTK+3 tool to edit subtitles for GNU/Linux/*BSD. It 54 + Subtitle Editor is a GTK 3 tool to edit subtitles for GNU/Linux/*BSD. It 55 55 can be used for new subtitles or as a tool to transform, edit, correct 56 56 and refine existing subtitle. This program also shows sound waves, which 57 57 makes it easier to synchronise subtitles to voices.
+7 -4
pkgs/applications/virtualization/docker-compose/default.nix
··· 5 5 , six, texttable, websocket_client, cached-property 6 6 , enum34, functools32, paramiko 7 7 }: 8 + 8 9 buildPythonApplication rec { 9 10 version = "1.24.1"; 10 11 pname = "docker-compose"; ··· 33 32 ''; 34 33 35 34 postInstall = '' 36 - mkdir -p $out/share/bash-completion/completions/ 37 - cp contrib/completion/bash/docker-compose $out/share/bash-completion/completions/docker-compose 35 + install -D -m 0444 contrib/completion/bash/docker-compose \ 36 + $out/share/bash-completion/completions/docker-compose 37 + 38 + install -D -m 0444 contrib/completion/zsh/_docker-compose \ 39 + $out/share/zsh-completion/zsh/site-functions/_docker-compose 38 40 ''; 39 41 40 42 meta = with stdenv.lib; { 41 43 homepage = https://docs.docker.com/compose/; 42 44 description = "Multi-container orchestration for Docker"; 43 45 license = licenses.asl20; 44 - maintainers = with maintainers; [ 45 - ]; 46 + maintainers = [ ]; 46 47 }; 47 48 }
+19 -3
pkgs/applications/virtualization/virtualbox/default.nix
··· 1 1 { config, stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, wrapQtAppsHook 2 2 , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL 3 3 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras 4 - , qttools, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43 5 - , alsaLib, curl, libvpx, nettools, dbus 4 + , qttools, qtsvg, qtwayland, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43 5 + , alsaLib, curl, libvpx, nettools, dbus, substituteAll 6 6 , makeself, perl 7 7 , javaBindings ? true, jdk ? null # Almost doesn't affect closure size 8 8 , pythonBindings ? false, python3 ? null ··· 37 37 nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ] 38 38 ++ optional (!headless) wrapQtAppsHook; 39 39 40 - # Wrap manually because we just need to wrap one executable 40 + # Wrap manually because we wrap just a small number of executables. 41 41 dontWrapQtApps = true; 42 42 43 43 buildInputs = ··· 79 79 80 80 patches = 81 81 optional enableHardening ./hardened.patch 82 + # When hardening is enabled, we cannot use wrapQtApp to ensure that VirtualBoxVM sees 83 + # the correct environment variables needed for Qt to work, specifically QT_PLUGIN_PATH. 84 + # This is because VirtualBoxVM would detect that it is wrapped that and refuse to run, 85 + # and also because it would unset QT_PLUGIN_PATH for security reasons. We work around 86 + # these issues by patching the code to set QT_PLUGIN_PATH to the necessary paths, 87 + # after the code that unsets it. Note that qtsvg is included so that SVG icons from 88 + # the user's icon theme can be loaded. 89 + ++ optional (!headless && enableHardening) (substituteAll { 90 + src = ./qt-env-vars.patch; 91 + qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}"; 92 + }) 82 93 ++ [ 83 94 ./qtx11extras.patch 84 95 ]; ··· 195 184 196 185 preFixup = optionalString (!headless) '' 197 186 wrapQtApp $out/bin/VirtualBox 187 + '' 188 + # If hardening is disabled, wrap the VirtualBoxVM binary instead of patching 189 + # the source code (see postPatch). 190 + + optionalString (!headless && !enableHardening) '' 191 + wrapQtApp $out/libexec/virtualbox/VirtualBoxVM 198 192 ''; 199 193 200 194 passthru = {
+14
pkgs/applications/virtualization/virtualbox/qt-env-vars.patch
··· 1 + --- a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp 2 + +++ b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp 3 + @@ -2131,6 +2131,11 @@ static void supR3HardenedMainPurgeEnvironment(char **envp) 4 + /** @todo Call NT API to do the same. */ 5 + #endif 6 + } 7 + + 8 + + /* 9 + + * NixOS hack: Set QT_PLUGIN_PATH to make Qt find plugins. 10 + + */ 11 + + setenv("QT_PLUGIN_PATH", "@qtPluginPath@", /*overwrite=*/ 1); 12 + } 13 + 14 +
+2 -2
pkgs/applications/window-managers/i3/default.nix
··· 5 5 6 6 stdenv.mkDerivation rec { 7 7 pname = "i3"; 8 - version = "4.17"; 8 + version = "4.17.1"; 9 9 10 10 src = fetchurl { 11 11 url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2"; 12 - sha256 = "1z8qmkkq9dhqmqy8sjw3rnpnmnb8v7lr456bs0qzp23bgpj17gjf"; 12 + sha256 = "0iazv2i2rgmakzh95pgj6iapyzn7bdpcbcd35a79mhlml4ry33qy"; 13 13 }; 14 14 15 15 nativeBuildInputs = [ which pkgconfig makeWrapper ];
+1 -1
pkgs/applications/window-managers/i3/lock-fancy.nix
··· 23 23 sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy 24 24 sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy 25 25 sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy 26 - sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z)|" i3lock-fancy 26 + sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|" i3lock-fancy 27 27 rm Makefile 28 28 ''; 29 29 installPhase = ''
+4
pkgs/build-support/install-shell-files/default.nix
··· 1 + { makeSetupHook }: 2 + 3 + # See the header comment in ../setup-hooks/install-shell-files.sh for example usage. 4 + makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh
+78
pkgs/build-support/oci-tools/default.nix
··· 1 + { lib, writeText, runCommand, writeReferencesToFile }: 2 + 3 + { 4 + buildContainer = 5 + { args 6 + , mounts ? {} 7 + , os ? "linux" 8 + , arch ? "x86_64" 9 + , readonly ? false 10 + }: 11 + let 12 + sysMounts = { 13 + "/proc" = { 14 + type = "proc"; 15 + source = "proc"; 16 + }; 17 + "/dev" = { 18 + type = "tmpfs"; 19 + source = "tmpfs"; 20 + options = [ "nosuid" "strictatime" "mode=755" "size=65536k" ]; 21 + }; 22 + "/dev/pts" = { 23 + type = "devpts"; 24 + source = "devpts"; 25 + options = [ "nosuid" "noexec" "newinstance" "ptmxmode=0666" "mode=755" "gid=5" ]; 26 + }; 27 + "/dev/shm" = { 28 + type = "tmpfs"; 29 + source = "shm"; 30 + options = [ "nosuid" "noexec" "nodev" "mode=1777" "size=65536k" ]; 31 + }; 32 + "/dev/mqueue" = { 33 + type = "mqueue"; 34 + source = "mqueue"; 35 + options = [ "nosuid" "noexec" "nodev" ]; 36 + }; 37 + "/sys" = { 38 + type = "sysfs"; 39 + source = "sysfs"; 40 + options = [ "nosuid" "noexec" "nodev" "ro" ]; 41 + }; 42 + "/sys/fs/cgroup" = { 43 + type = "cgroup"; 44 + source = "cgroup"; 45 + options = [ "nosuid" "noexec" "nodev" "realatime" "ro" ]; 46 + }; 47 + }; 48 + config = writeText "config.json" (builtins.toJSON { 49 + ociVersion = "1.0.0"; 50 + platform = { 51 + inherit os arch; 52 + }; 53 + 54 + linux = { 55 + namespaces = map (type: { inherit type; }) [ "pid" "network" "mount" "ipc" "uts" ]; 56 + }; 57 + 58 + root = { path = "rootfs"; inherit readonly; }; 59 + 60 + process = { 61 + inherit args; 62 + user = { uid = 0; gid = 0; }; 63 + cwd = "/"; 64 + }; 65 + 66 + mounts = lib.mapAttrsToList (destination: { type, source, options ? null }: { 67 + inherit destination type source options; 68 + }) sysMounts; 69 + }); 70 + in 71 + runCommand "join" {} '' 72 + set -o pipefail 73 + mkdir -p $out/rootfs/{dev,proc,sys} 74 + cp ${config} $out/config.json 75 + xargs tar c < ${writeReferencesToFile args} | tar -xC $out/rootfs/ 76 + ''; 77 + } 78 +
+165
pkgs/build-support/setup-hooks/install-shell-files.sh
··· 1 + #!/bin/bash 2 + # Setup hook for the `installShellFiles` package. 3 + # 4 + # Example usage in a derivation: 5 + # 6 + # { …, installShellFiles, … }: 7 + # stdenv.mkDerivation { 8 + # … 9 + # nativeBuildInputs = [ installShellFiles ]; 10 + # postInstall = '' 11 + # installManPage share/doc/foobar.1 12 + # installShellCompletion share/completions/foobar.{bash,fish,zsh} 13 + # ''; 14 + # … 15 + # } 16 + # 17 + # See comments on each function for more details. 18 + 19 + # installManPage <path> [...<path>] 20 + # 21 + # Each argument is checked for its man section suffix and installed into the appropriate 22 + # share/man<n>/ directory. The function returns an error if any paths don't have the man section 23 + # suffix (with optional .gz compression). 24 + installManPage() { 25 + local path 26 + for path in "$@"; do 27 + if (( "${NIX_DEBUG:-0}" >= 1 )); then 28 + echo "installManPage: installing $path" 29 + fi 30 + if test -z "$path"; then 31 + echo "installManPage: error: path cannot be empty" >&2 32 + return 1 33 + fi 34 + local basename 35 + basename=$(stripHash "$path") # use stripHash in case it's a nix store path 36 + local trimmed=${basename%.gz} # don't get fooled by compressed manpages 37 + local suffix=${trimmed##*.} 38 + if test -z "$suffix" -o "$suffix" = "$trimmed"; then 39 + echo "installManPage: error: path missing manpage section suffix: $path" >&2 40 + return 1 41 + fi 42 + local outRoot 43 + if test "$suffix" = 3; then 44 + outRoot=${!outputDevman:?} 45 + else 46 + outRoot=${!outputMan:?} 47 + fi 48 + install -Dm644 -T "$path" "${outRoot}/share/man/man$suffix/$basename" || return 49 + done 50 + } 51 + 52 + # installShellCompletion [--bash|--fish|--zsh] ([--name <name>] <path>)... 53 + # 54 + # Each path is installed into the appropriate directory for shell completions for the given shell. 55 + # If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell. 56 + # Otherwise the file extension will be examined to pick a shell. If the shell is unknown a warning 57 + # will be logged and the command will return a non-zero status code after processing any remaining 58 + # paths. Any of the shell flags will affect all subsequent paths (unless another shell flag is 59 + # given). 60 + # 61 + # If the shell completion needs to be renamed before installing the optional `--name <name>` flag 62 + # may be given. Any name provided with this flag only applies to the next path. 63 + # 64 + # For zsh completions, if the `--name` flag is not given, the path will be automatically renamed 65 + # such that `foobar.zsh` becomes `_foobar`. 66 + # 67 + # This command accepts multiple shell flags in conjunction with multiple paths if you wish to 68 + # install them all in one command: 69 + # 70 + # installShellCompletion share/completions/foobar.{bash,fish} --zsh share/completions/_foobar 71 + # 72 + # However it may be easier to read if each shell is split into its own invocation, especially when 73 + # renaming is involved: 74 + # 75 + # installShellCompletion --bash --name foobar.bash share/completions.bash 76 + # installShellCompletion --fish --name foobar.fish share/completions.fish 77 + # installShellCompletion --zsh --name _foobar share/completions.zsh 78 + # 79 + # If any argument is `--` the remaining arguments will be treated as paths. 80 + installShellCompletion() { 81 + local shell='' name='' retval=0 parseArgs=1 arg 82 + while { arg=$1; shift; }; do 83 + # Parse arguments 84 + if (( parseArgs )); then 85 + case "$arg" in 86 + --bash|--fish|--zsh) 87 + shell=${arg#--} 88 + continue;; 89 + --name) 90 + name=$1 91 + shift || { 92 + echo 'installShellCompletion: error: --name flag expected an argument' >&2 93 + return 1 94 + } 95 + continue;; 96 + --name=*) 97 + # treat `--name=foo` the same as `--name foo` 98 + name=${arg#--name=} 99 + continue;; 100 + --?*) 101 + echo "installShellCompletion: warning: unknown flag ${arg%%=*}" >&2 102 + retval=2 103 + continue;; 104 + --) 105 + # treat remaining args as paths 106 + parseArgs=0 107 + continue;; 108 + esac 109 + fi 110 + if (( "${NIX_DEBUG:-0}" >= 1 )); then 111 + echo "installShellCompletion: installing $arg${name:+ as $name}" 112 + fi 113 + # if we get here, this is a path 114 + # Identify shell 115 + local basename 116 + basename=$(stripHash "$arg") 117 + local curShell=$shell 118 + if [[ -z "$curShell" ]]; then 119 + # auto-detect the shell 120 + case "$basename" in 121 + ?*.bash) curShell=bash;; 122 + ?*.fish) curShell=fish;; 123 + ?*.zsh) curShell=zsh;; 124 + *) 125 + if [[ "$basename" = _* && "$basename" != *.* ]]; then 126 + # probably zsh 127 + echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2 128 + curShell=zsh 129 + else 130 + echo "installShellCompletion: warning: unknown shell for path: $arg" >&2 131 + retval=2 132 + continue 133 + fi;; 134 + esac 135 + fi 136 + # Identify output path 137 + local outName sharePath 138 + outName=${name:-$basename} 139 + case "$curShell" in 140 + bash) sharePath=bash-completion/completions;; 141 + fish) sharePath=fish/vendor_completions.d;; 142 + zsh) 143 + sharePath=zsh/site-functions 144 + # only apply automatic renaming if we didn't have a manual rename 145 + if test -z "$name"; then 146 + # convert a name like `foo.zsh` into `_foo` 147 + outName=${outName%.zsh} 148 + outName=_${outName#_} 149 + fi;; 150 + *) 151 + # Our list of shells is out of sync with the flags we accept or extensions we detect. 152 + echo 'installShellCompletion: internal error' >&2 153 + return 1;; 154 + esac 155 + # Install file 156 + install -Dm644 -T "$arg" "${!outputBin:?}/share/$sharePath/$outName" || return 157 + # Clear the name, it only applies to one path 158 + name= 159 + done 160 + if [[ -n "$name" ]]; then 161 + echo 'installShellCompletion: error: --name flag given with no path' >&2 162 + return 1 163 + fi 164 + return $retval 165 + }
+2 -2
pkgs/data/fonts/sudo/default.nix
··· 1 1 { lib, fetchzip }: 2 2 3 3 let 4 - version = "0.37"; 4 + version = "0.40"; 5 5 in fetchzip { 6 6 name = "sudo-font-${version}"; 7 7 url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip"; 8 - sha256 = "16x6vs016wz6rmd4p248ri9fn35xq7r3dc8hv4w2c4rz1xl8c099"; 8 + sha256 = "1nf025sjps4yysf6zkns5fzjgls6xdpifh7bz4ray9x8h5pz0z64"; 9 9 10 10 postFetch = '' 11 11 mkdir -p $out/share/fonts/truetype/
+2 -2
pkgs/data/fonts/victor-mono/default.nix
··· 2 2 3 3 let 4 4 pname = "victor-mono"; 5 - version = "1.2.1"; 5 + version = "1.2.5"; 6 6 in fetchFromGitHub rec { 7 7 name = "${pname}-${version}"; 8 8 ··· 26 26 unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname} 27 27 ''; 28 28 29 - sha256 = "0347n3kdyrbg42rxcgnyghi21qz5iz6w30v7ms2vjal7pfm6h2vn"; 29 + sha256 = "0dj5h45qk6abggj6mgm19sb0a7q0v4x41f2zds1ab79yd22gbjns"; 30 30 31 31 meta = with lib; { 32 32 description = "Free programming font with cursive italics and ligatures";
+1 -1
pkgs/data/icons/elementary-xfce-icon-theme/default.nix
··· 22 22 ''; 23 23 24 24 meta = with stdenv.lib; { 25 - description = "Elementary icons for Xfce and other GTK+ desktops like GNOME"; 25 + description = "Elementary icons for Xfce and other GTK desktops like GNOME"; 26 26 homepage = https://github.com/shimmerproject/elementary-xfce; 27 27 license = licenses.gpl2; 28 28 # darwin cannot deal with file names differing only in case
+1 -1
pkgs/data/themes/adementary/default.nix
··· 27 27 ''; 28 28 29 29 meta = with stdenv.lib; { 30 - description = "Adwaita-based gtk+ theme with design influence from elementary OS and Vertex gtk+ theme"; 30 + description = "Adwaita-based GTK theme with design influence from elementary OS and Vertex GTK theme"; 31 31 homepage = https://github.com/hrdwrrsk/adementary-theme; 32 32 license = licenses.gpl3; 33 33 maintainers = with maintainers; [ dtzWill ];
+1 -1
pkgs/data/themes/greybird/default.nix
··· 29 29 ]; 30 30 31 31 meta = with stdenv.lib; { 32 - description = "Grey and blue theme from the Shimmer Project for GTK+-based environments"; 32 + description = "Grey and blue theme from the Shimmer Project for GTK-based environments"; 33 33 homepage = https://github.com/shimmerproject/Greybird; 34 34 license = with licenses; [ gpl2Plus ]; # or alternatively: cc-by-nc-sa-30 35 35 platforms = platforms.linux;
+1 -1
pkgs/data/themes/materia-theme/default.nix
··· 29 29 ''; 30 30 31 31 meta = with stdenv.lib; { 32 - description = "Material Design theme for GNOME/GTK+ based desktop environments"; 32 + description = "Material Design theme for GNOME/GTK based desktop environments"; 33 33 homepage = https://github.com/nana-4/materia-theme; 34 34 license = licenses.gpl2; 35 35 platforms = platforms.all;
+1 -1
pkgs/data/themes/plata/default.nix
··· 82 82 ''; 83 83 84 84 meta = with stdenv.lib; { 85 - description = "A Gtk+ theme based on Material Design Refresh"; 85 + description = "A GTK theme based on Material Design Refresh"; 86 86 homepage = https://gitlab.com/tista500/plata-theme; 87 87 license = with licenses; [ gpl2 cc-by-sa-40 ]; 88 88 platforms = platforms.linux;
+2 -2
pkgs/desktops/gnome-2/desktop/vte/default.nix
··· 45 45 46 46 meta = { 47 47 homepage = https://www.gnome.org/; 48 - description = "A library implementing a terminal emulator widget for GTK+"; 48 + description = "A library implementing a terminal emulator widget for GTK"; 49 49 longDescription = '' 50 50 VTE is a library (libvte) implementing a terminal emulator widget for 51 - GTK+, and a minimal sample application (vte) using that. Vte is 51 + GTK, and a minimal sample application (vte) using that. Vte is 52 52 mainly used in gnome-terminal, but can also be used to embed a 53 53 console/terminal in games, editors, IDEs, etc. VTE supports Unicode and 54 54 character set conversion, as well as emulating any terminal known to
+8 -8
pkgs/desktops/gnome-2/platform/gtkglext/default.nix
··· 29 29 30 30 meta = with stdenv.lib; { 31 31 homepage = https://projects.gnome.org/gtkglext/; 32 - description = "GtkGLExt, an OpenGL extension to GTK+"; 33 - longDescription = 34 - '' GtkGLExt is an OpenGL extension to GTK+. It provides additional GDK 35 - objects which support OpenGL rendering in GTK+ and GtkWidget API 36 - add-ons to make GTK+ widgets OpenGL-capable. In contrast to Janne 37 - Löf's GtkGLArea, GtkGLExt provides a GtkWidget API that enables 38 - OpenGL drawing for standard and custom GTK+ widgets. 39 - ''; 32 + description = "GtkGLExt, an OpenGL extension to GTK"; 33 + longDescription = '' 34 + GtkGLExt is an OpenGL extension to GTK. It provides additional GDK 35 + objects which support OpenGL rendering in GTK and GtkWidget API 36 + add-ons to make GTK widgets OpenGL-capable. In contrast to Janne 37 + Löf's GtkGLArea, GtkGLExt provides a GtkWidget API that enables 38 + OpenGL drawing for standard and custom GTK widgets. 39 + ''; 40 40 license = licenses.lgpl2Plus; 41 41 platforms = platforms.linux; 42 42 };
+1 -1
pkgs/desktops/gnome-3/apps/glade/default.nix
··· 29 29 30 30 meta = with stdenv.lib; { 31 31 homepage = https://wiki.gnome.org/Apps/Glade; 32 - description = "User interface designer for GTK+ applications"; 32 + description = "User interface designer for GTK applications"; 33 33 maintainers = gnome3.maintainers; 34 34 license = licenses.lgpl2; 35 35 platforms = platforms.linux;
+1 -1
pkgs/desktops/gnome-3/games/hitori/default.nix
··· 58 58 59 59 meta = with stdenv.lib; { 60 60 homepage = https://wiki.gnome.org/Apps/Hitori; 61 - description = "GTK+ application to generate and let you play games of Hitori"; 61 + description = "GTK application to generate and let you play games of Hitori"; 62 62 maintainers = gnome3.maintainers; 63 63 license = licenses.gpl2; 64 64 platforms = platforms.linux;
+1 -1
pkgs/desktops/lxde/core/lxtask/default.nix
··· 22 22 with all xfce4 dependencies removed, some bugs fixed, and some 23 23 improvement of UI. Although being part of LXDE, the Lightweight X11 24 24 Desktop Environment, it's totally desktop independent and only 25 - requires pure gtk+. 25 + requires pure GTK. 26 26 ''; 27 27 homepage = https://wiki.lxde.org/en/LXTask; 28 28 license = stdenv.lib.licenses.gpl2Plus;
+2 -2
pkgs/desktops/pantheon/granite/default.nix
··· 66 66 ''; 67 67 68 68 meta = with stdenv.lib; { 69 - description = "An extension to GTK+ used by elementary OS"; 69 + description = "An extension to GTK used by elementary OS"; 70 70 longDescription = '' 71 - Granite is a companion library for GTK+ and GLib. Among other things, it provides complex widgets and convenience functions 71 + Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions 72 72 designed for use in apps built for elementary OS. 73 73 ''; 74 74 homepage = https://github.com/elementary/granite;
+1 -1
pkgs/desktops/xfce/core/gtk-xfce-engine.nix
··· 23 23 24 24 meta = { 25 25 homepage = https://www.xfce.org/; 26 - description = "GTK+ theme engine for Xfce"; 26 + description = "GTK theme engine for Xfce"; 27 27 license = stdenv.lib.licenses.gpl2Plus; 28 28 platforms = stdenv.lib.platforms.linux; 29 29 maintainers = [ stdenv.lib.maintainers.eelco ];
+2 -2
pkgs/desktops/xfce/default.nix
··· 20 20 21 21 garcon = callPackage ./core/garcon.nix { }; 22 22 23 - # When built with GTK+3, it was breaking GTK+3 app layout 23 + # When built with GTK 3, it was breaking GTK 3 app layout 24 24 gtk-xfce-engine = callPackage ./core/gtk-xfce-engine.nix { withGtk3 = false; }; 25 25 26 26 libxfce4ui = callPackage ./core/libxfce4ui.nix { }; ··· 151 151 152 152 xfce4-pulseaudio-plugin = callPackage ./panel-plugins/xfce4-pulseaudio-plugin.nix { }; 153 153 154 - #### GTK+3 (deprecated, see NixOS/nixpkgs#32763) 154 + #### GTK3 (deprecated, see NixOS/nixpkgs#32763) 155 155 156 156 libxfce4ui_gtk3 = libxfce4ui.override { withGtk3 = true; }; 157 157
+1 -1
pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
··· 24 24 ''; 25 25 26 26 meta = with stdenv.lib; { 27 - description = "Port of the Unity GTK+ Module"; 27 + description = "Port of the Unity GTK Module"; 28 28 license = licenses.lgpl3; 29 29 maintainers = with maintainers; [ jD91mZM2 ]; 30 30 };
+2 -13
pkgs/development/arduino/platformio/chrootenv.nix
··· 3 3 let 4 4 pio-pkgs = pkgs: 5 5 let 6 - python = pkgs.python.override { 6 + python = pkgs.python3.override { 7 7 packageOverrides = self: super: { 8 - 9 - # https://github.com/platformio/platformio-core/issues/349 10 - click = super.click.overridePythonAttrs (oldAttrs: rec { 11 - version = "5.1"; 12 - src = oldAttrs.src.override { 13 - inherit version; 14 - sha256 = "678c98275431fad324275dec63791e4a17558b40e5a110e20a82866139a85a5a"; 15 - }; 16 - postPatch = ""; 17 - }); 18 - 19 8 platformio = self.callPackage ./core.nix { }; 20 9 }; 21 10 }; ··· 27 38 28 39 meta = with lib; { 29 40 description = "An open source ecosystem for IoT development"; 30 - homepage = http://platformio.org; 41 + homepage = "https://platformio.org"; 31 42 maintainers = with maintainers; [ mog ]; 32 43 license = licenses.asl20; 33 44 platforms = with platforms; linux;
+5 -3
pkgs/development/arduino/platformio/core.nix
··· 1 1 { stdenv, lib, buildPythonApplication, fetchFromGitHub 2 2 , bottle, click, colorama 3 3 , lockfile, pyserial, requests 4 - , pytest, semantic-version, tox 4 + , pytest, semantic-version, tox, tabulate 5 5 , git 6 6 }: 7 7 ··· 35 35 "test_builder.py::test_build_unflags" 36 36 "test_misc.py::test_api_cache" 37 37 "test_misc.py::test_ping_internet_ips" 38 + "test_misc.py::test_platformio_cli" 38 39 "test_pkgmanifest.py::test_packages" 39 40 ]) ++ (map (e: "--ignore=tests/${e}") [ 40 41 "commands/test_boards.py" ··· 47 46 48 47 in buildPythonApplication rec { 49 48 pname = "platformio"; 50 - version = "3.6.6"; 49 + version = "4.0.3"; 51 50 52 51 # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964 53 52 src = fetchFromGitHub { 54 53 owner = "platformio"; 55 54 repo = "platformio-core"; 56 55 rev = "v${version}"; 57 - sha256 = "1qwd6684y2xagl375sv8fm6a535hcdqx296hknjlbvsgc1jc514a"; 56 + sha256 = "1naaa53cc7n7zyqggqjvvgkcq8cyzngdf904y9ag0x1vvb70f8j9"; 58 57 }; 59 58 60 59 propagatedBuildInputs = [ 61 60 bottle click colorama git lockfile 62 61 pyserial requests semantic-version 62 + tabulate 63 63 ]; 64 64 65 65 HOME = "/tmp";
+3 -3
pkgs/development/arduino/platformio/fix-searchpath.patch
··· 1 - --- ./platformio/util.py-old 2017-09-29 01:20:08.174548250 +0200 2 - +++ ./platformio/util.py 2017-09-29 01:19:48.410485308 +0200 3 - @@ -395,7 +395,7 @@ 1 + --- ./platformio/proc.py-old 2017-09-29 01:20:08.174548250 +0200 2 + +++ ./platformio/proc.py 2017-09-29 01:19:48.410485308 +0200 3 + @@ -164,7 +164,7 @@ 4 4 isdir(join(p, "click")) or isdir(join(p, "platformio"))) 5 5 if all(conditions): 6 6 _PYTHONPATH.append(p)
+2 -2
pkgs/development/compilers/gcc/4.8/default.nix
··· 162 162 163 163 in 164 164 165 - # We need all these X libraries when building AWT with GTK+. 165 + # We need all these X libraries when building AWT with GTK. 166 166 assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == []; 167 167 168 168 stdenv.mkDerivation ({ ··· 341 341 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the 342 342 # library headers and binaries, regarless of the language being compiled. 343 343 # 344 - # Note: When building the Java AWT GTK+ peer, the build system doesn't honor 344 + # Note: When building the Java AWT GTK peer, the build system doesn't honor 345 345 # `--with-gmp' et al., e.g., when building 346 346 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add 347 347 # them to $CPATH and $LIBRARY_PATH in this case.
+2 -2
pkgs/development/compilers/gcc/4.9/default.nix
··· 170 170 171 171 in 172 172 173 - # We need all these X libraries when building AWT with GTK+. 173 + # We need all these X libraries when building AWT with GTK. 174 174 assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == []; 175 175 176 176 stdenv.mkDerivation ({ ··· 354 354 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the 355 355 # library headers and binaries, regarless of the language being compiled. 356 356 # 357 - # Note: When building the Java AWT GTK+ peer, the build system doesn't honor 357 + # Note: When building the Java AWT GTK peer, the build system doesn't honor 358 358 # `--with-gmp' et al., e.g., when building 359 359 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add 360 360 # them to $CPATH and $LIBRARY_PATH in this case.
+2 -2
pkgs/development/compilers/gcc/5/default.nix
··· 157 157 158 158 in 159 159 160 - # We need all these X libraries when building AWT with GTK+. 160 + # We need all these X libraries when building AWT with GTK. 161 161 assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == []; 162 162 163 163 stdenv.mkDerivation ({ ··· 359 359 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the 360 360 # library headers and binaries, regarless of the language being compiled. 361 361 # 362 - # Note: When building the Java AWT GTK+ peer, the build system doesn't honor 362 + # Note: When building the Java AWT GTK peer, the build system doesn't honor 363 363 # `--with-gmp' et al., e.g., when building 364 364 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add 365 365 # them to $CPATH and $LIBRARY_PATH in this case.
+2 -2
pkgs/development/compilers/gcc/6/default.nix
··· 156 156 157 157 in 158 158 159 - # We need all these X libraries when building AWT with GTK+. 159 + # We need all these X libraries when building AWT with GTK. 160 160 assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == []; 161 161 162 162 stdenv.mkDerivation ({ ··· 366 366 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the 367 367 # library headers and binaries, regarless of the language being compiled. 368 368 # 369 - # Note: When building the Java AWT GTK+ peer, the build system doesn't honor 369 + # Note: When building the Java AWT GTK peer, the build system doesn't honor 370 370 # `--with-gmp' et al., e.g., when building 371 371 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add 372 372 # them to $CPATH and $LIBRARY_PATH in this case.
+1 -1
pkgs/development/guile-modules/guile-gnome/default.nix
··· 28 28 longDescription = '' 29 29 GNU guile-gnome brings the power of Scheme to your graphical application. 30 30 guile-gnome modules support the entire Gnome library stack: from Pango to 31 - GnomeCanvas, Gtk+ to GStreamer, Glade to GtkSourceView, you will find in 31 + GnomeCanvas, GTK to GStreamer, Glade to GtkSourceView, you will find in 32 32 guile-gnome a comprehensive environment for developing modern 33 33 applications. 34 34 '';
+1 -1
pkgs/development/libraries/amtk/default.nix
··· 32 32 33 33 meta = with stdenv.lib; { 34 34 homepage = https://wiki.gnome.org/Projects/Amtk; 35 - description = "Actions, Menus and Toolbars Kit for GTK+ applications"; 35 + description = "Actions, Menus and Toolbars Kit for GTK applications"; 36 36 maintainers = [ maintainers.manveru ]; 37 37 license = licenses.lgpl21Plus; 38 38 platforms = platforms.linux;
+3 -3
pkgs/development/libraries/fflas-ffpack/default.nix
··· 3 3 }: 4 4 stdenv.mkDerivation rec { 5 5 pname = "fflas-ffpack"; 6 - version = "2.4.0"; 6 + version = "2.4.3"; 7 7 8 8 src = fetchFromGitHub { 9 9 owner = "linbox-team"; 10 10 repo = "${pname}"; 11 - rev = "v${version}"; 12 - sha256 = "1q1ala88ysz14pb5cn2kskv829nc1qif7zfzjwzhd5nnzwyivmc4"; 11 + rev = "${version}"; 12 + sha256 = "1ynbjd72qrwp0b4kpn0p5d7gddpvj8dlb5fwdxajr5pvkvi3if74"; 13 13 }; 14 14 15 15 checkInputs = [
+1 -1
pkgs/development/libraries/goffice/default.nix
··· 30 30 }; 31 31 32 32 meta = { 33 - description = "A Glib/GTK+ set of document centric objects and utilities"; 33 + description = "A Glib/GTK set of document centric objects and utilities"; 34 34 35 35 longDescription = '' 36 36 There are common operations for document centric applications that are
+1 -1
pkgs/development/libraries/goocanvas/2.x.nix
··· 23 23 PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "$(out)/lib/girepository-1.0"; 24 24 25 25 meta = with stdenv.lib; { 26 - description = "Canvas widget for GTK+ based on the the Cairo 2D library"; 26 + description = "Canvas widget for GTK based on the the Cairo 2D library"; 27 27 homepage = https://wiki.gnome.org/Projects/GooCanvas; 28 28 license = licenses.lgpl2; 29 29 maintainers = with maintainers; [ ];
+1 -1
pkgs/development/libraries/goocanvas/default.nix
··· 20 20 }; 21 21 22 22 meta = with stdenv.lib; { 23 - description = "Canvas widget for GTK+ based on the the Cairo 2D library"; 23 + description = "Canvas widget for GTK based on the the Cairo 2D library"; 24 24 homepage = "https://wiki.gnome.org/Projects/GooCanvas"; 25 25 license = licenses.lgpl2; 26 26 platforms = stdenv.lib.platforms.unix;
+1 -1
pkgs/development/libraries/gspell/default.nix
··· 26 26 }; 27 27 28 28 meta = with stdenv.lib; { 29 - description = "A spell-checking library for GTK+ applications"; 29 + description = "A spell-checking library for GTK applications"; 30 30 homepage = https://wiki.gnome.org/Projects/gspell; 31 31 license = licenses.lgpl21Plus; 32 32 maintainers = gnome3.maintainers;
pkgs/development/libraries/gtk+/01-build-Fix-path-handling-in-pkgconfig.patch pkgs/development/libraries/gtk/01-build-Fix-path-handling-in-pkgconfig.patch
pkgs/development/libraries/gtk+/2.0-darwin-x11.patch pkgs/development/libraries/gtk/2.0-darwin-x11.patch
pkgs/development/libraries/gtk+/2.0-immodules.cache.patch pkgs/development/libraries/gtk/2.0-immodules.cache.patch
+4 -4
pkgs/development/libraries/gtk+/2.x.nix pkgs/development/libraries/gtk/2.x.nix
··· 83 83 platforms = platforms.all; 84 84 85 85 longDescription = '' 86 - GTK+ is a highly usable, feature rich toolkit for creating 86 + GTK is a highly usable, feature rich toolkit for creating 87 87 graphical user interfaces which boasts cross platform 88 - compatibility and an easy to use API. GTK+ it is written in C, 88 + compatibility and an easy to use API. GTK it is written in C, 89 89 but has bindings to many other popular programming languages 90 - such as C++, Python and C# among others. GTK+ is licensed 90 + such as C++, Python and C# among others. GTK is licensed 91 91 under the GNU LGPL 2.1 allowing development of both free and 92 - proprietary software with GTK+ without any license fees or 92 + proprietary software with GTK without any license fees or 93 93 royalties. 94 94 ''; 95 95 };
pkgs/development/libraries/gtk+/3.0-darwin-x11.patch pkgs/development/libraries/gtk/3.0-darwin-x11.patch
pkgs/development/libraries/gtk+/3.0-immodules.cache.patch pkgs/development/libraries/gtk/3.0-immodules.cache.patch
+4 -4
pkgs/development/libraries/gtk+/3.x.nix pkgs/development/libraries/gtk/3.x.nix
··· 181 181 meta = { 182 182 description = "A multi-platform toolkit for creating graphical user interfaces"; 183 183 longDescription = '' 184 - GTK+ is a highly usable, feature rich toolkit for creating 184 + GTK is a highly usable, feature rich toolkit for creating 185 185 graphical user interfaces which boasts cross platform 186 - compatibility and an easy to use API. GTK+ it is written in C, 186 + compatibility and an easy to use API. GTK it is written in C, 187 187 but has bindings to many other popular programming languages 188 - such as C++, Python and C# among others. GTK+ is licensed 188 + such as C++, Python and C# among others. GTK is licensed 189 189 under the GNU LGPL 2.1 allowing development of both free and 190 - proprietary software with GTK+ without any license fees or 190 + proprietary software with GTK without any license fees or 191 191 royalties. 192 192 ''; 193 193 homepage = https://www.gtk.org/;
pkgs/development/libraries/gtk+/gtk2-theme-paths.patch pkgs/development/libraries/gtk/gtk2-theme-paths.patch
pkgs/development/libraries/gtk+/gtk3-setup-hook.sh pkgs/development/libraries/gtk/gtk3-setup-hook.sh
pkgs/development/libraries/gtk+/setup-hook.sh pkgs/development/libraries/gtk/setup-hook.sh
+2 -2
pkgs/development/libraries/gtk-mac-integration/default.nix
··· 19 19 ''; 20 20 21 21 meta = with lib; { 22 - description = "Provides integration for Gtk+ applications into the Mac desktop"; 22 + description = "Provides integration for GTK applications into the Mac desktop"; 23 23 24 24 license = licenses.lgpl21; 25 25 26 - homepage = https://wiki.gnome.org/Projects/GTK+/OSX/Integration; 26 + homepage = https://wiki.gnome.org/Projects/GTK/OSX/Integration; 27 27 28 28 maintainers = [ maintainers.matthewbauer ]; 29 29 platforms = platforms.darwin;
+1 -1
pkgs/development/libraries/gtk-sharp-beans/default.nix
··· 18 18 dontStrip = true; 19 19 20 20 meta = with stdenv.lib; { 21 - description = "Binds some API from Gtk+ that isn't in Gtk# 2.12.x"; 21 + description = "Binds some API from GTK that isn't in GTK# 2.12.x"; 22 22 platforms = platforms.linux; 23 23 license = licenses.lgpl21; 24 24 };
+1 -1
pkgs/development/libraries/gtkd/default.nix
··· 87 87 installFlags = "prefix=$(out)"; 88 88 89 89 meta = with stdenv.lib; { 90 - description = "D binding and OO wrapper for GTK+"; 90 + description = "D binding and OO wrapper for GTK"; 91 91 homepage = https://gtkd.org; 92 92 license = licenses.lgpl3Plus; 93 93 platforms = platforms.linux ++ platforms.darwin;
+1 -1
pkgs/development/libraries/gtkdatabox/default.nix
··· 13 13 propagatedBuildInputs = [ gtk2 ]; 14 14 15 15 meta = { 16 - description = "Gtk+ widget for displaying large amounts of numerical data"; 16 + description = "GTK widget for displaying large amounts of numerical data"; 17 17 18 18 license = stdenv.lib.licenses.lgpl2; 19 19
+2 -2
pkgs/development/libraries/gtkimageview/default.nix
··· 21 21 meta = { 22 22 homepage = "https://wiki.gnome.org/Projects/GTK%2B/GtkImageView"; 23 23 24 - description = "Image viewer widget for GTK+"; 24 + description = "Image viewer widget for GTK"; 25 25 26 26 longDescription = 27 - '' GtkImageView is a simple image viewer widget for GTK+. Similar to 27 + '' GtkImageView is a simple image viewer widget for GTK. Similar to 28 28 the image viewer panes in gThumb or Eye of Gnome. It makes writing 29 29 image viewing and editing applications easy. Among its features 30 30 are: mouse and keyboard zooming; scrolling and dragging; adjustable
+2 -2
pkgs/development/libraries/gtkmm/2.x.nix
··· 20 20 enableParallelBuilding = true; 21 21 22 22 meta = { 23 - description = "C++ interface to the GTK+ graphical user interface library"; 23 + description = "C++ interface to the GTK graphical user interface library"; 24 24 25 25 longDescription = '' 26 26 gtkmm is the official C++ interface for the popular GUI library 27 - GTK+. Highlights include typesafe callbacks, and a 27 + GTK. Highlights include typesafe callbacks, and a 28 28 comprehensive set of widgets that are easily extensible via 29 29 inheritance. You can create user interfaces either in code or 30 30 with the Glade User Interface designer, using libglademm.
+2 -2
pkgs/development/libraries/gtkmm/3.x.nix
··· 29 29 }; 30 30 31 31 meta = with stdenv.lib; { 32 - description = "C++ interface to the GTK+ graphical user interface library"; 32 + description = "C++ interface to the GTK graphical user interface library"; 33 33 34 34 longDescription = '' 35 35 gtkmm is the official C++ interface for the popular GUI library 36 - GTK+. Highlights include typesafe callbacks, and a 36 + GTK. Highlights include typesafe callbacks, and a 37 37 comprehensive set of widgets that are easily extensible via 38 38 inheritance. You can create user interfaces either in code or 39 39 with the Glade User Interface designer, using libglademm.
+1 -1
pkgs/development/libraries/indicator-application/gtk2.nix
··· 46 46 ]; 47 47 48 48 meta = { 49 - description = "Indicator to take menus from applications and place them in the panel (GTK+ 2 library for Xfce/LXDE)"; 49 + description = "Indicator to take menus from applications and place them in the panel (GTK 2 library for Xfce/LXDE)"; 50 50 homepage = https://launchpad.net/indicators-gtk2; 51 51 license = licenses.gpl3; 52 52 platforms = platforms.linux;
+1 -1
pkgs/development/libraries/libchamplain/default.nix
··· 37 37 38 38 longDescription = '' 39 39 libchamplain is a C library providing a ClutterActor to display 40 - maps. It also provides a Gtk+ widget to display maps in Gtk+ 40 + maps. It also provides a GTK widget to display maps in GTK 41 41 applications. Python and Perl bindings are also available. It 42 42 supports numerous free map sources such as OpenStreetMap, 43 43 OpenCycleMap, OpenAerialMap, and Maps for free.
+1 -1
pkgs/development/libraries/libdazzle/default.nix
··· 44 44 meta = with stdenv.lib; { 45 45 description = "A library to delight your users with fancy features"; 46 46 longDescription = '' 47 - The libdazzle library is a companion library to GObject and Gtk+. It 47 + The libdazzle library is a companion library to GObject and GTK. It 48 48 provides various features that we wish were in the underlying library but 49 49 cannot for various reasons. In most cases, they are wildly out of scope 50 50 for those libraries. In other cases, our design isn't quite generic
+1 -1
pkgs/development/libraries/libhandy/default.nix
··· 47 47 ''; 48 48 49 49 meta = with stdenv.lib; { 50 - description = "A library full of GTK+ widgets for mobile phones"; 50 + description = "A library full of GTK widgets for mobile phones"; 51 51 homepage = https://source.puri.sm/Librem5/libhandy; 52 52 license = licenses.lgpl21Plus; 53 53 maintainers = with maintainers; [ jtojnar ];
+1 -1
pkgs/development/libraries/libnotify/default.nix
··· 20 20 ]; 21 21 22 22 mesonFlags = [ 23 - # disable tests as we don't need to depend on gtk+(2/3) 23 + # disable tests as we don't need to depend on GTK (2/3) 24 24 "-Dtests=false" 25 25 "-Ddocbook_docs=disabled" 26 26 "-Dgtk_doc=false"
+2 -2
pkgs/development/libraries/libsexy/default.nix
··· 1 1 { stdenv, fetchurl, pkgconfig 2 2 , glib, gtk2, libxml2, pango 3 3 }: 4 - 4 + 5 5 stdenv.mkDerivation { 6 6 name = "libsexy-0.1.11"; 7 7 ··· 15 15 buildInputs = [ glib gtk2 libxml2 pango ]; 16 16 17 17 meta = with stdenv.lib; { 18 - description = "A collection of GTK+ widgets"; 18 + description = "A collection of GTK widgets"; 19 19 homepage = https://blog.chipx86.com/tag/libsexy/; 20 20 license = licenses.lgpl21; 21 21 maintainers = with maintainers; [ ];
+1 -1
pkgs/development/libraries/libyaml-cpp/default.nix
··· 15 15 16 16 nativeBuildInputs = [ cmake ]; 17 17 18 - cmakeFlags = "-DBUILD_SHARED_LIBS=ON"; 18 + cmakeFlags = "-DBUILD_SHARED_LIBS=ON -DYAML_CPP_BUILD_TESTS=OFF"; 19 19 20 20 meta = with stdenv.lib; { 21 21 inherit (src.meta) homepage;
+1 -1
pkgs/development/libraries/mm-common/default.nix
··· 17 17 }; 18 18 19 19 meta = with stdenv.lib; { 20 - description = "Common build files of GLib/GTK+ C++ bindings"; 20 + description = "Common build files of GLib/GTK C++ bindings"; 21 21 longDescription = '' 22 22 The mm-common module provides the build infrastructure and utilities 23 23 shared among the GNOME C++ binding libraries. It is only a required
+1 -1
pkgs/development/libraries/osm-gps-map/default.nix
··· 19 19 ]; 20 20 21 21 meta = with stdenv.lib; { 22 - description = "Gtk+ widget for displaying OpenStreetMap tiles"; 22 + description = "GTK widget for displaying OpenStreetMap tiles"; 23 23 homepage = https://nzjrs.github.io/osm-gps-map; 24 24 license = licenses.gpl2Plus; 25 25 maintainers = with maintainers; [ hrdinka ];
+2 -2
pkgs/development/libraries/pango/default.nix
··· 70 70 Pango is a library for laying out and rendering of text, with an 71 71 emphasis on internationalization. Pango can be used anywhere 72 72 that text layout is needed, though most of the work on Pango so 73 - far has been done in the context of the GTK+ widget toolkit. 74 - Pango forms the core of text and font handling for GTK+-2.x. 73 + far has been done in the context of the GTK widget toolkit. 74 + Pango forms the core of text and font handling for GTK. 75 75 ''; 76 76 77 77 homepage = https://www.pango.org/;
+2 -2
pkgs/development/libraries/pangomm/default.nix
··· 36 36 Pango is a library for laying out and rendering of text, with an 37 37 emphasis on internationalization. Pango can be used anywhere 38 38 that text layout is needed, though most of the work on Pango so 39 - far has been done in the context of the GTK+ widget toolkit. 40 - Pango forms the core of text and font handling for GTK+-2.x. 39 + far has been done in the context of the GTK widget toolkit. 40 + Pango forms the core of text and font handling for GTK. 41 41 ''; 42 42 }; 43 43 }
+1 -1
pkgs/development/libraries/qtstyleplugins/default.nix
··· 14 14 buildInputs = [ gtk2 ]; 15 15 16 16 meta = with stdenv.lib; { 17 - description = "Additional style plugins for Qt5, including BB10, GTK+, Cleanlooks, Motif, Plastique"; 17 + description = "Additional style plugins for Qt5, including BB10, GTK, Cleanlooks, Motif, Plastique"; 18 18 homepage = http://blog.qt.io/blog/2012/10/30/cleaning-up-styles-in-qt5-and-adding-fusion/; 19 19 license = licenses.lgpl21; 20 20 maintainers = [ maintainers.gnidorah ];
+1 -1
pkgs/development/libraries/rep-gtk/default.nix
··· 21 21 ''; 22 22 23 23 meta = { 24 - description = "GTK+ bindings for librep"; 24 + description = "GTK bindings for librep"; 25 25 homepage = http://sawfish.wikia.com; 26 26 license = licenses.gpl2; 27 27 maintainers = [ maintainers.AndersonTorres ];
+2 -2
pkgs/development/libraries/spice-gtk/default.nix
··· 117 117 ]; 118 118 119 119 meta = with stdenv.lib; { 120 - description = "A GTK+3 SPICE widget"; 120 + description = "GTK 3 SPICE widget"; 121 121 longDescription = '' 122 - spice-gtk is a GTK+3 SPICE widget. It features glib-based 122 + spice-gtk is a GTK 3 SPICE widget. It features glib-based 123 123 objects for SPICE protocol parsing and a gtk widget for embedding 124 124 the SPICE display into other applications such as virt-manager. 125 125 Python bindings are available too.
+2 -2
pkgs/development/libraries/vte/2.90.nix
··· 25 25 26 26 meta = with stdenv.lib; { 27 27 homepage = https://www.gnome.org/; 28 - description = "A library implementing a terminal emulator widget for GTK+"; 28 + description = "A library implementing a terminal emulator widget for GTK"; 29 29 longDescription = '' 30 30 VTE is a library (libvte) implementing a terminal emulator widget for 31 - GTK+, and a minimal sample application (vte) using that. Vte is 31 + GTK, and a minimal sample application (vte) using that. Vte is 32 32 mainly used in gnome-terminal, but can also be used to embed a 33 33 console/terminal in games, editors, IDEs, etc. VTE supports Unicode and 34 34 character set conversion, as well as emulating any terminal known to
+2 -2
pkgs/development/libraries/vte/default.nix
··· 34 34 35 35 meta = with stdenv.lib; { 36 36 homepage = https://www.gnome.org/; 37 - description = "A library implementing a terminal emulator widget for GTK+"; 37 + description = "A library implementing a terminal emulator widget for GTK"; 38 38 longDescription = '' 39 39 VTE is a library (libvte) implementing a terminal emulator widget for 40 - GTK+, and a minimal sample application (vte) using that. Vte is 40 + GTK, and a minimal sample application (vte) using that. Vte is 41 41 mainly used in gnome-terminal, but can also be used to embed a 42 42 console/terminal in games, editors, IDEs, etc. VTE supports Unicode and 43 43 character set conversion, as well as emulating any terminal known to
+1 -1
pkgs/development/libraries/webkitgtk/2.4.nix
··· 18 18 version = "2.4.11"; 19 19 20 20 meta = with stdenv.lib; { 21 - description = "Web content rendering engine, GTK+ port"; 21 + description = "Web content rendering engine, GTK port"; 22 22 homepage = http://webkitgtk.org/; 23 23 license = licenses.bsd2; 24 24 platforms = with platforms; linux ++ darwin;
+1 -1
pkgs/development/libraries/webkitgtk/default.nix
··· 18 18 version = "2.24.3"; 19 19 20 20 meta = { 21 - description = "Web content rendering engine, GTK+ port"; 21 + description = "Web content rendering engine, GTK port"; 22 22 homepage = https://webkitgtk.org/; 23 23 license = licenses.bsd2; 24 24 platforms = platforms.linux;
+1 -1
pkgs/development/ocaml-modules/lablgtk/2.14.0.nix
··· 35 35 stdenv.lib.maintainers.roconnor 36 36 ]; 37 37 homepage = http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html; 38 - description = "LablGTK is is an Objective Caml interface to gtk+"; 38 + description = "LablGTK is is an Objective Caml interface to GTK"; 39 39 license = stdenv.lib.licenses.lgpl21Plus; 40 40 }; 41 41 })
+1 -1
pkgs/development/ocaml-modules/lablgtk/default.nix
··· 40 40 z77z roconnor vbgl 41 41 ]; 42 42 homepage = http://lablgtk.forge.ocamlcore.org/; 43 - description = "An OCaml interface to gtk+"; 43 + description = "An OCaml interface to GTK"; 44 44 license = licenses.lgpl21Plus; 45 45 }; 46 46 }
+1 -1
pkgs/development/ocaml-modules/lablgtk3/default.nix
··· 16 16 propagatedBuildInputs = [ cairo2 ]; 17 17 18 18 meta = { 19 - description = "OCaml interface to gtk+-3"; 19 + description = "OCaml interface to GTK 3"; 20 20 homepage = "http://lablgtk.forge.ocamlcore.org/"; 21 21 license = lib.licenses.lgpl21; 22 22 maintainers = [ lib.maintainers.vbgl ];
+1 -1
pkgs/development/pure-modules/gtk/default.nix
··· 16 16 setupHook = ../generic-setup-hook.sh; 17 17 18 18 meta = { 19 - description = "A collection of bindings to use the GTK+ GUI toolkit version 2.x with Pure"; 19 + description = "A collection of bindings to use the GTK GUI toolkit version 2.x with Pure"; 20 20 homepage = http://puredocs.bitbucket.org/pure-gtk.html; 21 21 license = stdenv.lib.licenses.lgpl3Plus; 22 22 platforms = stdenv.lib.platforms.linux;
+1 -1
pkgs/development/python-modules/gtimelog/default.nix
··· 33 33 ''; 34 34 35 35 meta = with stdenv.lib; { 36 - description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible"; 36 + description = "A small GTK app for keeping track of your time. It's main goal is to be as unintrusive as possible"; 37 37 homepage = https://mg.pov.lt/gtimelog/; 38 38 license = licenses.gpl2Plus; 39 39 maintainers = with maintainers; [ ocharles ];
+25
pkgs/development/python-modules/imagecodecs-lite/default.nix
··· 1 + { lib, fetchPypi, buildPythonPackage 2 + , pytest 3 + , numpy 4 + , cython 5 + }: 6 + 7 + buildPythonPackage rec { 8 + pname = "imagecodecs-lite"; 9 + version = "2019.4.20"; 10 + 11 + src = fetchPypi { 12 + inherit pname version; 13 + sha256 = "1cp88g7g91gdhjhaz6gvb4jzvi5ad817id9f2bnc5r95ag93bqb0"; 14 + }; 15 + 16 + checkInputs = [ pytest ]; 17 + propagatedBuildInputs = [ numpy cython ]; 18 + 19 + meta = with lib; { 20 + description = "Block-oriented, in-memory buffer transformation, compression, and decompression functions"; 21 + homepage = "https://www.lfd.uci.edu/~gohlke/"; 22 + maintainers = [ maintainers.tbenst ]; 23 + license = licenses.bsd3; 24 + }; 25 + }
+1 -1
pkgs/development/python-modules/pygtk/default.nix
··· 52 52 ''; 53 53 54 54 meta = with stdenv.lib; { 55 - description = "GTK+-2 bindings"; 55 + description = "GTK 2 Python bindings"; 56 56 homepage = "https://gitlab.gnome.org/Archive/pygtk"; 57 57 platforms = platforms.all; 58 58 license = with licenses; [ lgpl21Plus ];
+24
pkgs/development/python-modules/pyvmomi/default.nix
··· 1 + { lib, buildPythonPackage, fetchFromGitHub, requests }: 2 + 3 + buildPythonPackage rec { 4 + pname = "pyvmomi"; 5 + version = "6.7.1.2018.12"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "vmware"; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "1pgl95rbghidbyr8hndjzfzgb1yjchfcknlqgg3qbqvljnz9hfja"; 12 + }; 13 + 14 + # requires old version of vcrpy 15 + doCheck = false; 16 + 17 + propagatedBuildInputs = [ requests ]; 18 + 19 + meta = with lib; { 20 + description = "Python SDK for the VMware vSphere API that allows you to manage ESX, ESXi, and vCenter"; 21 + homepage = "https://github.com/vmware/pyvmomi"; 22 + license = licenses.asl20; 23 + }; 24 + }
+1 -1
pkgs/development/python-modules/pywebkitgtk/default.nix
··· 20 20 21 21 meta = with stdenv.lib; { 22 22 homepage = "https://code.google.com/p/pywebkitgtk/"; 23 - description = "Python bindings for the WebKit GTK+ port"; 23 + description = "Python bindings for the WebKit GTK port"; 24 24 license = licenses.lgpl2Plus; 25 25 }; 26 26
+2 -2
pkgs/development/python-modules/semantic-version/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "semantic_version"; 5 - version = "2.6.0"; 5 + version = "2.8.1"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "1h2l9xyg1zzsda6kjcmfcgycbvrafwci283vcr1v5sbk01l2hhra"; 9 + sha256 = "1lnnpxmf3z1rcfr5n562vbraq236s13wlj8fmw2kwr2mrq7lqb8r"; 10 10 }; 11 11 12 12 # ModuleNotFoundError: No module named 'tests'
+2 -2
pkgs/development/python-modules/speedtest-cli/default.nix
··· 7 7 # required for home-assistant 8 8 buildPythonPackage rec { 9 9 pname = "speedtest-cli"; 10 - version = "2.1.1"; 10 + version = "2.1.2"; 11 11 12 12 src = fetchPypi { 13 13 inherit pname version; 14 - sha256 = "1s3ylvkclzdsyqmpjnsd6ixrbmj7vd4bfsdplkjaz1c2czyy3j9p"; 14 + sha256 = "0m1fpsb318mrpliw026a7nhx8iky306rmfi565734k7r49i3h7fg"; 15 15 }; 16 16 17 17 # tests require working internet connection
+17 -27
pkgs/development/python-modules/textacy/default.nix
··· 1 - { stdenv 2 - , buildPythonPackage 3 - , isPy27 4 - , fetchPypi 1 + { lib, buildPythonPackage, fetchPypi, isPy27 5 2 , cachetools 6 - , cld2-cffi 7 3 , cytoolz 8 - , ftfy 9 - , ijson 4 + , jellyfish 10 5 , matplotlib 11 6 , networkx 12 7 , numpy 13 8 , pyemd 14 9 , pyphen 15 - , python-Levenshtein 10 + , pytest 16 11 , requests 17 12 , scikitlearn 18 13 , scipy 19 14 , spacy 20 - , tqdm 21 - , unidecode 15 + , srsly 22 16 }: 23 17 24 18 buildPythonPackage rec { 25 19 pname = "textacy"; 26 - version = "0.6.3"; 20 + version = "0.9.1"; 21 + disabled = isPy27; 27 22 28 23 src = fetchPypi { 29 24 inherit pname version; 30 - sha256 = "50402545ac92b1a931c2365e341cb35c4ebe5575525f1dcc5265901ff3895a5f"; 25 + sha256 = "1jhj02g6kh5vc0z4az7n547siav3gj5571bqpzdryskj6bsma2z1"; 31 26 }; 32 27 33 28 propagatedBuildInputs = [ 34 29 cachetools 35 - cld2-cffi 36 30 cytoolz 37 - ftfy 38 - ijson 31 + jellyfish 39 32 matplotlib 40 33 networkx 41 34 numpy 42 35 pyemd 43 36 pyphen 44 - python-Levenshtein 45 37 requests 46 38 scikitlearn 47 39 scipy 48 40 spacy 49 - tqdm 50 - unidecode 41 + srsly 51 42 ]; 52 43 53 - postPatch = '' 54 - substituteInPlace setup.py \ 55 - --replace "'ftfy>=4.2.0,<5.0.0'," "'ftfy>=5.0.0'," 44 + checkInputs = [ pytest ]; 45 + # almost all tests have to deal with downloading a dataset, only test pure tests 46 + checkPhase = '' 47 + pytest tests/test_text_utils.py \ 48 + tests/test_utils.py \ 49 + tests/preprocessing \ 50 + tests/datasets/test_base_dataset.py 56 51 ''; 57 52 58 - doCheck = false; # tests want to download data files 59 - 60 - meta = with stdenv.lib; { 53 + meta = with lib; { 61 54 description = "Higher-level text processing, built on spaCy"; 62 55 homepage = "http://textacy.readthedocs.io/"; 63 56 license = licenses.asl20; 64 57 maintainers = with maintainers; [ rvl ]; 65 - # ftfy and jellyfish no longer support python2 66 - # latest scikitlearn not supported for this: https://github.com/chartbeat-labs/textacy/issues/260 67 - broken = true; 68 58 }; 69 59 }
+3 -3
pkgs/development/ruby-modules/bundix/default.nix
··· 6 6 7 7 name = "${gemName}-${version}"; 8 8 gemName = "bundix"; 9 - version = "2.4.2"; 9 + version = "2.5.0"; 10 10 11 11 src = fetchFromGitHub { 12 - owner = "manveru"; 12 + owner = "nix-community"; 13 13 repo = "bundix"; 14 14 rev = version; 15 - sha256 = "03jhj1dy0ljrymjnpi6mcxn36a29qxr835l1lc11879jjzvnr2ax"; 15 + sha256 = "05y8sy6v9km1dwvpjzkjxpfzv95g6yzac1b5blac2f1r2kw167p8"; 16 16 }; 17 17 18 18 buildInputs = [ ruby bundler ];
+2 -2
pkgs/development/tools/analysis/flow/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "flow"; 5 - version = "0.106.0"; 5 + version = "0.107.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "facebook"; 9 9 repo = "flow"; 10 10 rev = "refs/tags/v${version}"; 11 - sha256 = "0da32j8s3avxa84g2gn9sr4nakibllz1kq5i3bgqbndrgcgsdvgw"; 11 + sha256 = "1in7a006lgw4v2p0gn5sx41cn3p259vncpq0l3rz52lyfpn7ai3b"; 12 12 }; 13 13 14 14 installPhase = ''
+3 -2
pkgs/development/tools/analysis/radare2/cutter.nix
··· 5 5 , qtbase, qtsvg, qtwebengine 6 6 # buildInputs 7 7 , r2-for-cutter 8 - , python3 }: 8 + , python3 9 + , wrapQtAppsHook }: 9 10 10 11 stdenv.mkDerivation rec { 11 12 pname = "radare2-cutter"; ··· 31 30 ''; 32 31 33 32 nativeBuildInputs = [ qmake pkgconfig ]; 34 - buildInputs = [ qtbase qtsvg qtwebengine r2-for-cutter python3 ]; 33 + buildInputs = [ qtbase qtsvg qtwebengine r2-for-cutter python3 wrapQtAppsHook ]; 35 34 36 35 qmakeFlags = [ 37 36 "CONFIG+=link_pkgconfig"
+1 -1
pkgs/development/tools/documentation/gtk-doc/default.nix
··· 74 74 }; 75 75 76 76 meta = with stdenv.lib; { 77 - description = "Tools to extract documentation embedded in GTK+ and GNOME source code"; 77 + description = "Tools to extract documentation embedded in GTK and GNOME source code"; 78 78 homepage = "https://www.gtk.org/gtk-doc"; 79 79 license = licenses.gpl2; 80 80 maintainers = with maintainers; [ pSub ];
+2 -2
pkgs/development/tools/gtk-mac-bundler/default.nix
··· 22 22 ''; 23 23 24 24 meta = with lib; { 25 - description = "a helper script that creates application bundles form GTK+ executables for macOS"; 25 + description = "a helper script that creates application bundles form GTK executables for macOS"; 26 26 maintainers = [ maintainers.matthewbauer ]; 27 27 platforms = platforms.darwin; 28 - homepage = https://wiki.gnome.org/Projects/GTK+/OSX/Bundling; 28 + homepage = https://wiki.gnome.org/Projects/GTK/OSX/Bundling; 29 29 license = licenses.gpl2; 30 30 }; 31 31 }
+1 -1
pkgs/development/tools/misc/gtkperf/default.nix
··· 16 16 patches = [ ./bench.patch ]; 17 17 18 18 meta = with stdenv.lib; { 19 - description = "Application designed to test GTK+ performance"; 19 + description = "Application designed to test GTK performance"; 20 20 homepage = http://gtkperf.sourceforge.net/; 21 21 license = with licenses; [ gpl2 ]; 22 22 maintainers = with maintainers; [ dtzWill ];
+58 -54
pkgs/development/web/postman/default.nix
··· 1 - { stdenv, lib, gnome2, fetchurl, pkgs, xorg, makeWrapper, makeDesktopItem }: 1 + { stdenv, fetchurl, makeDesktopItem, wrapGAppsHook 2 + , atk, at-spi2-atk, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3 3 + , freetype, fontconfig, nss, nspr, pango, udev, libX11, libxcb, libXi 4 + , libXcursor, libXdamage, libXrandr, libXcomposite, libXext, libXfixes 5 + , libXrender, libXtst, libXScrnSaver 6 + }: 2 7 3 8 stdenv.mkDerivation rec { 4 9 pname = "postman"; 5 - version = "7.0.7"; 10 + version = "7.6.0"; 6 11 7 12 src = fetchurl { 8 13 url = "https://dl.pstmn.io/download/version/${version}/linux64"; 9 - sha256 = "47be1b955759520f3a2c7dcdecb85b4c52c38df717da294ba184f46f2058014a"; 10 - name = "${pname}-${version}.tar.gz"; 14 + sha256 = "sha256:03y82ydkj46l7dn35y944gnghbrrhc75y3yxdyidbh8fl3xvmlfv"; 15 + name = "${pname}.tar.gz"; 11 16 }; 12 17 13 - nativeBuildInputs = [ makeWrapper ]; 14 - 15 - dontPatchELF = true; 16 - 17 - buildPhase = ":"; # nothing to build 18 + dontBuild = true; # nothing to build 19 + dontConfigure = true; 18 20 19 21 desktopItem = makeDesktopItem { 20 22 name = "postman"; ··· 28 26 categories = "Application;Development;"; 29 27 }; 30 28 29 + buildInputs = [ 30 + stdenv.cc.cc.lib 31 + atk 32 + at-spi2-atk 33 + alsaLib 34 + cairo 35 + cups 36 + dbus 37 + expat 38 + gdk-pixbuf 39 + glib 40 + gtk3 41 + freetype 42 + fontconfig 43 + nss 44 + nspr 45 + pango 46 + udev 47 + libX11 48 + libxcb 49 + libXi 50 + libXcursor 51 + libXdamage 52 + libXrandr 53 + libXcomposite 54 + libXext 55 + libXfixes 56 + libXrender 57 + libXtst 58 + libXScrnSaver 59 + ]; 60 + 61 + nativeBuildInputs = [ wrapGAppsHook ]; 62 + 63 + 31 64 installPhase = '' 32 65 mkdir -p $out/share/postman 33 66 cp -R app/* $out/share/postman 67 + rm $out/share/postman/Postman 34 68 35 69 mkdir -p $out/bin 36 - ln -s $out/share/postman/Postman $out/bin/postman 70 + ln -s $out/share/postman/_Postman $out/bin/postman 37 71 38 72 mkdir -p $out/share/applications 39 73 ln -s ${desktopItem}/share/applications/* $out/share/applications/ ··· 81 43 ln -s $out/share/postman/resources/app/assets/icon.png $iconSizeDir/postman.png 82 44 ''; 83 45 84 - preFixup = let 85 - libPath = lib.makeLibraryPath [ 86 - stdenv.cc.cc.lib 87 - gnome2.pango 88 - gnome2.GConf 89 - pkgs.atk 90 - pkgs.alsaLib 91 - pkgs.cairo 92 - pkgs.cups 93 - pkgs.dbus.daemon.lib 94 - pkgs.expat 95 - pkgs.gdk-pixbuf 96 - pkgs.glib 97 - pkgs.gtk2-x11 98 - pkgs.freetype 99 - pkgs.fontconfig 100 - pkgs.nss 101 - pkgs.nspr 102 - pkgs.udev.lib 103 - xorg.libX11 104 - xorg.libxcb 105 - xorg.libXi 106 - xorg.libXcursor 107 - xorg.libXdamage 108 - xorg.libXrandr 109 - xorg.libXcomposite 110 - xorg.libXext 111 - xorg.libXfixes 112 - xorg.libXrender 113 - xorg.libX11 114 - xorg.libXtst 115 - xorg.libXScrnSaver 116 - ]; 117 - in '' 118 - patchelf \ 119 - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ 120 - --set-rpath "${libPath}:$out/share/postman" \ 121 - $out/share/postman/Postman 122 - patchelf --set-rpath "${libPath}" $out/share/postman/libnode.so 123 - patchelf --set-rpath "${libPath}" $out/share/postman/libffmpeg.so 124 - 125 - wrapProgram $out/share/postman/Postman --prefix LD_LIBRARY_PATH : ${libPath} 46 + postFixup = '' 47 + pushd $out/share/postman 48 + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" _Postman 49 + for file in $(find . -type f \( -name \*.node -o -name _Postman -o -name \*.so\* \) ); do 50 + ORIGIN=$(patchelf --print-rpath $file); \ 51 + patchelf --set-rpath "${stdenv.lib.makeLibraryPath buildInputs}:$ORIGIN" $file 52 + done 53 + popd 126 54 ''; 127 55 128 56 meta = with stdenv.lib; { 129 57 homepage = https://www.getpostman.com; 130 58 description = "API Development Environment"; 131 - license = stdenv.lib.licenses.postman; 59 + license = licenses.postman; 132 60 platforms = [ "x86_64-linux" ]; 133 - maintainers = with maintainers; [ xurei ]; 61 + maintainers = with maintainers; [ xurei evanjs ]; 134 62 }; 135 63 }
+1 -1
pkgs/misc/emulators/gens-gs/default.nix
··· 11 11 nativeBuildInputs = [ pkgconfig ]; 12 12 buildInputs = [ gtk2 SDL nasm zlib libpng libGLU_combined ]; 13 13 14 - # Work around build failures on recent GTK+. 14 + # Work around build failures on recent GTK. 15 15 # See http://ubuntuforums.org/showthread.php?p=10535837 16 16 NIX_CFLAGS_COMPILE = "-UGTK_DISABLE_DEPRECATED -UGSEAL_ENABLE"; 17 17
+1 -1
pkgs/misc/screensavers/xlockmore/default.nix
··· 10 10 curlOpts = "--user-agent 'Mozilla/5.0'"; 11 11 }; 12 12 13 - # Optionally, it can use GTK+. 13 + # Optionally, it can use GTK. 14 14 buildInputs = [ pam libX11 libXext libXinerama libXdmcp libXt ]; 15 15 16 16 # Don't try to install `xlock' setuid. Password authentication works
+1 -1
pkgs/misc/themes/adapta/default.nix
··· 40 40 ]; 41 41 42 42 meta = with stdenv.lib; { 43 - description = "An adaptive Gtk+ theme based on Material Design Guidelines"; 43 + description = "An adaptive GTK theme based on Material Design Guidelines"; 44 44 homepage = https://github.com/adapta-project/adapta-gtk-theme; 45 45 license = with licenses; [ gpl2 cc-by-sa-30 ]; 46 46 platforms = platforms.linux;
+1 -1
pkgs/misc/themes/e17gtk/default.nix
··· 18 18 ''; 19 19 20 20 meta = { 21 - description = "An Enlightenment-like GTK+ theme with sharp corners"; 21 + description = "An Enlightenment-like GTK theme with sharp corners"; 22 22 homepage = https://github.com/tsujan/E17gtk; 23 23 license = stdenv.lib.licenses.gpl3; 24 24 platforms = stdenv.lib.platforms.unix;
+1 -1
pkgs/misc/themes/equilux-theme/default.nix
··· 31 31 32 32 meta = with stdenv.lib; { 33 33 inherit (src.meta) homepage; 34 - description = "A Material Design theme for GNOME/GTK+ based desktop environments"; 34 + description = "A Material Design theme for GNOME/GTK based desktop environments"; 35 35 license = licenses.gpl2; 36 36 platforms = platforms.all; 37 37 maintainers = [ maintainers.fpletz ];
+1 -1
pkgs/misc/themes/gtk2/gtk-engines/default.nix
··· 12 12 buildInputs = [ intltool gtk2 ]; 13 13 14 14 meta = { 15 - description = "Theme engines for GTK+ 2"; 15 + description = "Theme engines for GTK 2"; 16 16 license = stdenv.lib.licenses.lgpl21Plus; 17 17 platforms = stdenv.lib.platforms.linux; 18 18 };
+3 -3
pkgs/os-specific/linux/fwts/default.nix
··· 3 3 4 4 stdenv.mkDerivation rec { 5 5 pname = "fwts"; 6 - version = "19.07.00"; 6 + version = "19.08.00"; 7 7 8 8 src = fetchzip { 9 - url = "http://fwts.ubuntu.com/release/fwts-V${version}.tar.gz"; 10 - sha256 = "04h99ri3nzhxr2js2a04bcj6zm17zlybqzv528j6hr6v0pv5wn4p"; 9 + url = "http://fwts.ubuntu.com/release/${pname}-V${version}.tar.gz"; 10 + sha256 = "14v4vxvfsl008xalsmlhl9wh89xlrfffh3pky9m90flaizdzwyp4"; 11 11 stripRoot = false; 12 12 }; 13 13
+2 -2
pkgs/os-specific/linux/sysdig/default.nix
··· 5 5 with stdenv.lib; 6 6 stdenv.mkDerivation rec { 7 7 pname = "sysdig"; 8 - version = "0.26.2"; 8 + version = "0.26.4"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "draios"; 12 12 repo = "sysdig"; 13 13 rev = version; 14 - sha256 = "1a74cvvy3lhilibc3lzcsvs6pwrdvdx2580qgckp1lrra9gf5hga"; 14 + sha256 = "1v2j1ns17wyj7xl91p6wy1iwfx2fnn8af9nm939skc6229m87zzn"; 15 15 }; 16 16 17 17 nativeBuildInputs = [ cmake perl ];
+10 -12
pkgs/os-specific/linux/usbguard/default.nix
··· 1 1 { 2 2 stdenv, fetchurl, lib, 3 - pkgconfig, libxml2, libxslt, 4 - dbus-glib, libcap_ng, libqb, libseccomp, polkit, protobuf, audit, 5 - withGui ? true, 6 - qtbase ? null, 7 - qttools ? null, 8 - qtsvg ? null, 3 + pkgconfig, libxslt, libxml2, docbook_xml_dtd_45, docbook_xsl, asciidoc, 4 + dbus-glib, libcap_ng, libqb, libseccomp, polkit, protobuf, 5 + audit, 9 6 libgcrypt ? null, 10 7 libsodium ? null 11 8 }: ··· 12 15 assert libgcrypt != null -> libsodium == null; 13 16 14 17 stdenv.mkDerivation rec { 15 - version = "0.7.4"; 18 + version = "0.7.5"; 16 19 pname = "usbguard"; 17 20 18 21 repo = "https://github.com/USBGuard/usbguard"; 19 22 20 23 src = fetchurl { 21 24 url = "${repo}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz"; 22 - sha256 = "1qkskd6q5cwlh2cpcsbzmmmgk6w63z0825wlb2sjwqq3kfgwjb3k"; 25 + sha256 = "0jj56sls13ryfgz6vajq8p4dm3grgb6rf2cmga6sckmzd4chk65b"; 23 26 }; 24 27 25 28 nativeBuildInputs = [ 29 + asciidoc 26 30 pkgconfig 27 31 libxslt # xsltproc 28 32 libxml2 # xmllint 33 + docbook_xml_dtd_45 34 + docbook_xsl 29 35 ]; 30 36 31 37 buildInputs = [ ··· 41 41 audit 42 42 ] 43 43 ++ (lib.optional (libgcrypt != null) libgcrypt) 44 - ++ (lib.optional (libsodium != null) libsodium) 45 - ++ (lib.optionals withGui [ qtbase qtsvg qttools ]); 44 + ++ (lib.optional (libsodium != null) libsodium); 46 45 47 46 configureFlags = [ 48 47 "--with-bundled-catch" ··· 50 51 "--with-polkit" 51 52 ] 52 53 ++ (lib.optional (libgcrypt != null) "--with-crypto-library=gcrypt") 53 - ++ (lib.optional (libsodium != null) "--with-crypto-library=sodium") 54 - ++ (lib.optional withGui "--with-gui-qt=qt5"); 54 + ++ (lib.optional (libsodium != null) "--with-crypto-library=sodium"); 55 55 56 56 enableParallelBuilding = true; 57 57
+3 -3
pkgs/os-specific/linux/v4l-utils/default.nix
··· 12 12 # we need to use stdenv.mkDerivation in order not to pollute the libv4l’s closure with Qt 13 13 in stdenv.mkDerivation rec { 14 14 pname = "v4l-utils"; 15 - version = "1.16.6"; 15 + version = "1.16.7"; 16 16 17 17 src = fetchurl { 18 - url = "https://linuxtv.org/downloads/v4l-utils/${pname}-${version}.tar.bz2"; 19 - sha256 = "1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr"; 18 + url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2"; 19 + sha256 = "1ng0x3wj3a1ckfd00yxa4za43xms92gdp7rdag060b7p39z7m4gf"; 20 20 }; 21 21 22 22 outputs = [ "out" "dev" ];
+7 -9
pkgs/servers/mautrix-whatsapp/default.nix
··· 1 - { stdenv, buildGoPackage, fetchFromGitHub }: 1 + { stdenv, buildGoModule, fetchFromGitHub }: 2 2 3 - buildGoPackage { 3 + buildGoModule { 4 4 pname = "mautrix-unstable"; 5 - version = "2019-07-04"; 6 - 7 - goPackagePath = "maunium.net/go/mautrix-whatsapp"; 5 + version = "2019-09-03"; 8 6 9 7 src = fetchFromGitHub { 10 8 owner = "tulir"; 11 9 repo = "mautrix-whatsapp"; 12 - rev = "29f5ae45c4b22f463003b23e355b951831f08b3e"; 13 - sha256 = "12209m3x01i7bnnkg57ag1ivsk6n6pqaqfin7y02irgi3i3rm31r"; 10 + rev = "22fb5c125db1a0a3a8be8e8e09e92bb38718e6bf"; 11 + sha256 = "03wd6mn9jr1hr3qxg1r707ibi1s9511y97bfrmzka4mrsymgamxa"; 14 12 }; 15 13 16 - goDeps = ./deps.nix; 14 + modSha256 = "14bqxx2hcr8yhcd5hi087pyc1hzqmr13p2fqb3nnsx12j7n07gww"; 17 15 18 16 meta = with stdenv.lib; { 19 17 homepage = https://github.com/tulir/mautrix-whatsapp; 20 18 description = "Matrix <-> Whatsapp hybrid puppeting/relaybot bridge"; 21 19 license = licenses.agpl3; 22 - maintainers = with maintainers; [ vskilet ]; 20 + maintainers = with maintainers; [ vskilet ma27 ]; 23 21 }; 24 22 }
-211
pkgs/servers/mautrix-whatsapp/deps.nix
··· 1 - # NOTE: this file isn't entirely generated, while performing the bump 2 - # from 2019-02-24 to 2019-06-01, a lot of stuff broke during `vgo2nix` as the 3 - # tool is unable to parse `replace` statements atm. 4 - # 5 - # The following sources were altered manually: 6 - # * github.com/Rhymen/go-whatsapp -> github.com/tulir/go-whatsapp (at 36ed380bdc18) 7 - # * github.com/golang/protobuf: v1.2.0 -> v1.3.1 8 - # * maunium.net/go/mautrix: v0.1.0-alpha3 -> ca5d9535b6cc 9 - # * maunium.net/go/mautrix-appservice: v0.1.0-alpha3 -> 6e6c9bb47548 10 - 11 - # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) 12 - [ 13 - { 14 - goPackagePath = "github.com/Rhymen/go-whatsapp"; 15 - fetch = { 16 - type = "git"; 17 - url = "https://github.com/tulir/go-whatsapp"; 18 - rev = "36ed380bdc188e35fe804d6dd4809ee170136670"; 19 - sha256 = "1ida4j5hgqc5djwfsaqp8g6iynn150rwj42kqk9q2srwz5075n4p"; 20 - }; 21 - } 22 - { 23 - goPackagePath = "github.com/fatih/color"; 24 - fetch = { 25 - type = "git"; 26 - url = "https://github.com/fatih/color"; 27 - rev = "v1.7.0"; 28 - sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv"; 29 - }; 30 - } 31 - { 32 - goPackagePath = "github.com/golang/protobuf"; 33 - fetch = { 34 - type = "git"; 35 - url = "https://github.com/golang/protobuf"; 36 - rev = "v1.3.1"; 37 - sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"; 38 - }; 39 - } 40 - { 41 - goPackagePath = "github.com/gorilla/mux"; 42 - fetch = { 43 - type = "git"; 44 - url = "https://github.com/gorilla/mux"; 45 - rev = "v1.6.2"; 46 - sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2"; 47 - }; 48 - } 49 - { 50 - goPackagePath = "github.com/gorilla/websocket"; 51 - fetch = { 52 - type = "git"; 53 - url = "https://github.com/gorilla/websocket"; 54 - rev = "v1.4.0"; 55 - sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk"; 56 - }; 57 - } 58 - { 59 - goPackagePath = "github.com/lib/pq"; 60 - fetch = { 61 - type = "git"; 62 - url = "https://github.com/lib/pq"; 63 - rev = "v1.1.1"; 64 - sha256 = "0g64wlg1l1ybq4x44idksl4pgm055s58jxc6r6x4qhqm5q76h0km"; 65 - }; 66 - } 67 - { 68 - goPackagePath = "github.com/mattn/go-colorable"; 69 - fetch = { 70 - type = "git"; 71 - url = "https://github.com/mattn/go-colorable"; 72 - rev = "v0.0.9"; 73 - sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx"; 74 - }; 75 - } 76 - { 77 - goPackagePath = "github.com/mattn/go-isatty"; 78 - fetch = { 79 - type = "git"; 80 - url = "https://github.com/mattn/go-isatty"; 81 - rev = "v0.0.4"; 82 - sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"; 83 - }; 84 - } 85 - { 86 - goPackagePath = "github.com/mattn/go-sqlite3"; 87 - fetch = { 88 - type = "git"; 89 - url = "https://github.com/mattn/go-sqlite3"; 90 - rev = "v1.10.0"; 91 - sha256 = "1zmz6asplixfihxhj11spgfs0v3xzb3nv0hlq6n6zsg781ni31xx"; 92 - }; 93 - } 94 - { 95 - goPackagePath = "github.com/pkg/errors"; 96 - fetch = { 97 - type = "git"; 98 - url = "https://github.com/pkg/errors"; 99 - rev = "v0.8.1"; 100 - sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1"; 101 - }; 102 - } 103 - { 104 - goPackagePath = "gopkg.in/russross/blackfriday.v2"; 105 - fetch = { 106 - type = "git"; 107 - url = "https://github.com/russross/blackfriday"; 108 - rev = "v2.0.1"; 109 - sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"; 110 - }; 111 - } 112 - { 113 - goPackagePath = "github.com/shurcooL/sanitized_anchor_name"; 114 - fetch = { 115 - type = "git"; 116 - url = "https://github.com/shurcooL/sanitized_anchor_name"; 117 - rev = "v1.0.0"; 118 - sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"; 119 - }; 120 - } 121 - { 122 - goPackagePath = "github.com/skip2/go-qrcode"; 123 - fetch = { 124 - type = "git"; 125 - url = "https://github.com/skip2/go-qrcode"; 126 - rev = "dc11ecdae0a9"; 127 - sha256 = "0mc70hsn5x2a66a9sbwlq51cng2s1aq7rw4pr9pif4xdzflkl057"; 128 - }; 129 - } 130 - { 131 - goPackagePath = "golang.org/x/crypto"; 132 - fetch = { 133 - type = "git"; 134 - url = "https://go.googlesource.com/crypto"; 135 - rev = "b8fe1690c613"; 136 - sha256 = "1mbfpbrirsz8fsdkibm9l4sccpm774p9201mpmfh4hxshz3girq3"; 137 - }; 138 - } 139 - { 140 - goPackagePath = "golang.org/x/net"; 141 - fetch = { 142 - type = "git"; 143 - url = "https://go.googlesource.com/net"; 144 - rev = "915654e7eabc"; 145 - sha256 = "0fzd7n2yc4qnnf2wk21zxy6gb01xviq2z1dzrbqcn8p1s4fjsqw5"; 146 - }; 147 - } 148 - { 149 - goPackagePath = "golang.org/x/sync"; 150 - fetch = { 151 - type = "git"; 152 - url = "https://go.googlesource.com/sync"; 153 - rev = "37e7f081c4d4"; 154 - sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm"; 155 - }; 156 - } 157 - { 158 - goPackagePath = "gopkg.in/check.v1"; 159 - fetch = { 160 - type = "git"; 161 - url = "https://gopkg.in/check.v1"; 162 - rev = "788fd7840127"; 163 - sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"; 164 - }; 165 - } 166 - { 167 - goPackagePath = "gopkg.in/yaml.v2"; 168 - fetch = { 169 - type = "git"; 170 - url = "https://gopkg.in/yaml.v2"; 171 - rev = "v2.2.2"; 172 - sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; 173 - }; 174 - } 175 - { 176 - goPackagePath = "maunium.net/go/mauflag"; 177 - fetch = { 178 - type = "git"; 179 - url = "https://github.com/tulir/mauflag.git"; 180 - rev = "v1.0.0"; 181 - sha256 = "09jv1819jwq5i29y6ngf4j4ii6qwlshydvprfvsfplc419dkz1vx"; 182 - }; 183 - } 184 - { 185 - goPackagePath = "maunium.net/go/maulogger"; 186 - fetch = { 187 - type = "git"; 188 - url = "https://github.com/tulir/maulogger.git"; 189 - rev = "v2.0.0"; 190 - sha256 = "0qz4cpaqvcmrj3fb2bb6yrhw3k5h51crskricyqgg1b7aklphan5"; 191 - }; 192 - } 193 - { 194 - goPackagePath = "maunium.net/go/mautrix"; 195 - fetch = { 196 - type = "git"; 197 - url = "https://github.com/tulir/mautrix-go.git"; 198 - rev = "ca5d9535b6ccee8fdf473f9cc935932ef3e53ae7"; 199 - sha256 = "1qrh77c8vh2k6ffwf0cymjmhcp7d0rdad1ixqx5r1xig27f7v0qg"; 200 - }; 201 - } 202 - { 203 - goPackagePath = "maunium.net/go/mautrix-appservice"; 204 - fetch = { 205 - type = "git"; 206 - url = "https://github.com/tulir/mautrix-appservice-go.git"; 207 - rev = "6e6c9bb4754849443cb3c64d9510f8d2eb3e668d"; 208 - sha256 = "1zwsfvgxs2zbc6yvgnk16w2wkh891kihrzar3qzz9cvsgjznlyvy"; 209 - }; 210 - } 211 - ]
+31
pkgs/servers/monitoring/prometheus/process-exporter.nix
··· 1 + { stdenv, buildGoPackage, fetchFromGitHub }: 2 + 3 + buildGoPackage rec { 4 + pname = "process-exporter"; 5 + version = "0.5.0"; 6 + 7 + goPackagePath = "github.com/ncabatoff/process-exporter"; 8 + 9 + goDeps = ./process-exporter_deps.nix; 10 + 11 + src = fetchFromGitHub { 12 + owner = "ncabatoff"; 13 + repo = pname; 14 + rev = "v${version}"; 15 + sha256 = "129vqry3l8waxcyvx83wg0dvh3qg4pr3rl5fw7vmhgdzygbaq3bq"; 16 + }; 17 + 18 + postPatch = '' 19 + substituteInPlace proc/read_test.go --replace /bin/cat cat 20 + ''; 21 + 22 + doCheck = true; 23 + 24 + meta = with stdenv.lib; { 25 + description = "Prometheus exporter that mines /proc to report on selected processes"; 26 + homepage = "https://github.com/ncabatoff/process-exporter"; 27 + license = licenses.mit; 28 + maintainers = with maintainers; [ maintainers."1000101" ]; 29 + platforms = platforms.linux; 30 + }; 31 + }
+156
pkgs/servers/monitoring/prometheus/process-exporter_deps.nix
··· 1 + # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) 2 + [ 3 + { 4 + goPackagePath = "github.com/beorn7/perks"; 5 + fetch = { 6 + type = "git"; 7 + url = "https://github.com/beorn7/perks"; 8 + rev = "3a771d992973"; 9 + sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3"; 10 + }; 11 + } 12 + { 13 + goPackagePath = "github.com/golang/protobuf"; 14 + fetch = { 15 + type = "git"; 16 + url = "https://github.com/golang/protobuf"; 17 + rev = "v1.1.0"; 18 + sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq"; 19 + }; 20 + } 21 + { 22 + goPackagePath = "github.com/google/go-cmp"; 23 + fetch = { 24 + type = "git"; 25 + url = "https://github.com/google/go-cmp"; 26 + rev = "v0.2.0"; 27 + sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds"; 28 + }; 29 + } 30 + { 31 + goPackagePath = "github.com/kr/pretty"; 32 + fetch = { 33 + type = "git"; 34 + url = "https://github.com/kr/pretty"; 35 + rev = "v0.1.0"; 36 + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; 37 + }; 38 + } 39 + { 40 + goPackagePath = "github.com/kr/pty"; 41 + fetch = { 42 + type = "git"; 43 + url = "https://github.com/kr/pty"; 44 + rev = "v1.1.1"; 45 + sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; 46 + }; 47 + } 48 + { 49 + goPackagePath = "github.com/kr/text"; 50 + fetch = { 51 + type = "git"; 52 + url = "https://github.com/kr/text"; 53 + rev = "v0.1.0"; 54 + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; 55 + }; 56 + } 57 + { 58 + goPackagePath = "github.com/matttproud/golang_protobuf_extensions"; 59 + fetch = { 60 + type = "git"; 61 + url = "https://github.com/matttproud/golang_protobuf_extensions"; 62 + rev = "v1.0.1"; 63 + sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"; 64 + }; 65 + } 66 + { 67 + goPackagePath = "github.com/ncabatoff/fakescraper"; 68 + fetch = { 69 + type = "git"; 70 + url = "https://github.com/ncabatoff/fakescraper"; 71 + rev = "15938421d91a"; 72 + sha256 = "1in2iakq6xly9r8gk0mfim8n0glbjzpa07hkaj1rlrm0i11jlc6f"; 73 + }; 74 + } 75 + { 76 + goPackagePath = "github.com/ncabatoff/go-seq"; 77 + fetch = { 78 + type = "git"; 79 + url = "https://github.com/ncabatoff/go-seq"; 80 + rev = "b08ef85ed833"; 81 + sha256 = "1x88x285n4wf221pp7ccmh2ai7rgcnwz764gn8k861qg30jl1ky6"; 82 + }; 83 + } 84 + { 85 + goPackagePath = "github.com/ncabatoff/procfs"; 86 + fetch = { 87 + type = "git"; 88 + url = "https://github.com/ncabatoff/procfs"; 89 + rev = "9ced60d7b905"; 90 + sha256 = "19756h4lw5v8f0xr70cl8gd0wfqcnszrhhgawqhyinnir82rz728"; 91 + }; 92 + } 93 + { 94 + goPackagePath = "github.com/prometheus/client_golang"; 95 + fetch = { 96 + type = "git"; 97 + url = "https://github.com/prometheus/client_golang"; 98 + rev = "v0.8.0"; 99 + sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd"; 100 + }; 101 + } 102 + { 103 + goPackagePath = "github.com/prometheus/client_model"; 104 + fetch = { 105 + type = "git"; 106 + url = "https://github.com/prometheus/client_model"; 107 + rev = "5c3871d89910"; 108 + sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0"; 109 + }; 110 + } 111 + { 112 + goPackagePath = "github.com/prometheus/common"; 113 + fetch = { 114 + type = "git"; 115 + url = "https://github.com/prometheus/common"; 116 + rev = "c7de2306084e"; 117 + sha256 = "11dqfm2d0m4sjjgyrnayman96g59x2apmvvqby9qmww2qj2k83ig"; 118 + }; 119 + } 120 + { 121 + goPackagePath = "github.com/prometheus/procfs"; 122 + fetch = { 123 + type = "git"; 124 + url = "https://github.com/prometheus/procfs"; 125 + rev = "ea9eea638872"; 126 + sha256 = "1j99qszynx2asac82bhzhk0g1nav87nfgkb1cz5a2iywj81liirj"; 127 + }; 128 + } 129 + { 130 + goPackagePath = "golang.org/x/sync"; 131 + fetch = { 132 + type = "git"; 133 + url = "https://go.googlesource.com/sync"; 134 + rev = "37e7f081c4d4"; 135 + sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm"; 136 + }; 137 + } 138 + { 139 + goPackagePath = "gopkg.in/check.v1"; 140 + fetch = { 141 + type = "git"; 142 + url = "https://gopkg.in/check.v1"; 143 + rev = "788fd7840127"; 144 + sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"; 145 + }; 146 + } 147 + { 148 + goPackagePath = "gopkg.in/yaml.v2"; 149 + fetch = { 150 + type = "git"; 151 + url = "https://gopkg.in/yaml.v2"; 152 + rev = "v2.2.1"; 153 + sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1"; 154 + }; 155 + } 156 + ]
+12 -7
pkgs/tools/X11/caffeine-ng/default.nix
··· 1 1 { gdk-pixbuf, glib, gobject-introspection, gtk3, lib, libnotify, 2 - pythonPackages, wrapGAppsHook 2 + python3Packages, wrapGAppsHook 3 3 }: 4 4 5 - pythonPackages.buildPythonApplication rec { 5 + python3Packages.buildPythonApplication rec { 6 6 pname = "caffeine-ng"; 7 7 version = "3.4.2"; 8 8 9 - src = pythonPackages.fetchPypi{ 9 + src = python3Packages.fetchPypi{ 10 10 inherit pname version; 11 11 sha256="05k8smjlfjcccgmp8qi04l7106k46fs4p8fl5bdqqjwv6pwl7y4w"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ wrapGAppsHook glib ]; 15 - buildInputs = [ gdk-pixbuf gobject-introspection libnotify gtk3 ]; 16 - pythonPath = with pythonPackages; [ 17 - dbus-python docopt ewmh pygobject3 pyxdg 18 - setproctitle setuptools setuptools_scm wheel 15 + buildInputs = [ 16 + gdk-pixbuf gobject-introspection libnotify gtk3 17 + python3Packages.setuptools_scm 19 18 ]; 19 + pythonPath = with python3Packages; [ 20 + dbus-python docopt ewmh pygobject3 pyxdg 21 + setproctitle 22 + ]; 23 + 24 + doCheck = false; # There are no tests. 20 25 21 26 postBuild = '' 22 27 mkdir -p $out/share
+1 -1
pkgs/tools/X11/wpgtk/default.nix
··· 39 39 longDescription = '' 40 40 In short, wpgtk is a colorscheme/wallpaper manager with a template system attached which lets you create templates from any textfile and will replace keywords on it on the fly, allowing for great styling and theming possibilities. 41 41 42 - wpgtk uses pywal as its colorscheme generator, but builds upon it with a UI and other features, such as the abilty to mix and edit the colorschemes generated and save them with their respective wallpapers, having light and dark themes, hackable and fast GTK+ theme made specifically for wpgtk and custom keywords and values to replace in templates. 42 + wpgtk uses pywal as its colorscheme generator, but builds upon it with a UI and other features, such as the abilty to mix and edit the colorschemes generated and save them with their respective wallpapers, having light and dark themes, hackable and fast GTK theme made specifically for wpgtk and custom keywords and values to replace in templates. 43 43 44 44 INFO: To work properly, this tool needs "programs.dconf.enable = true" on nixos or dconf installed. A reboot may be required after installing dconf. 45 45 '';
+2 -2
pkgs/tools/admin/aws-rotate-key/default.nix
··· 2 2 3 3 buildGoPackage rec { 4 4 pname = "aws-rotate-key"; 5 - version = "1.0.4"; 5 + version = "1.0.6"; 6 6 7 7 goPackagePath = "github.com/Fullscreen/aws-rotate-key"; 8 8 ··· 10 10 rev = "v${version}"; 11 11 owner = "Fullscreen"; 12 12 repo = "aws-rotate-key"; 13 - sha256 = "14bcs434646qdywws55r1a1v8ncwz8n0yljaa8zb5796pv4445wf"; 13 + sha256 = "sha256:1w9704g1l2b0y6g6mk79g28kk0yaswpgljkk85d0i10wyxq4icby"; 14 14 }; 15 15 16 16 goDeps = ./deps.nix;
+3 -3
pkgs/tools/admin/eksctl/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "eksctl"; 5 - version = "0.4.3"; 5 + version = "0.5.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "weaveworks"; 9 9 repo = pname; 10 10 rev = version; 11 - sha256 = "1h7fyxlwa9f9r08rpl05r62ap7h7viaqchldbnv7j3vs2j23k127"; 11 + sha256 = "1aifdrxasg7d6gpy7s6kdjz9ky2kddpigh8z0f3zckw7hd68jk0g"; 12 12 }; 13 13 14 - modSha256 = "17bb1k18x1xfq9bi9qbm8pln6h6pkhaqzy07qdvnhinmspll1695"; 14 + modSha256 = "18vsi1hrv3z36w7vwl2bg8b2p5dwzw7dsw434adw9l1k7yv5x4vv"; 15 15 16 16 subPackages = [ "cmd/eksctl" ]; 17 17
+1 -1
pkgs/tools/archivers/xarchive/default.nix
··· 15 15 hardeningDisable = [ "format" ]; 16 16 17 17 meta = { 18 - description = "A GTK+ front-end for command line archiving tools"; 18 + description = "A GTK front-end for command line archiving tools"; 19 19 maintainers = [ stdenv.lib.maintainers.domenkozar ]; 20 20 license = stdenv.lib.licenses.gpl2; 21 21 platforms = stdenv.lib.platforms.all;
+1 -1
pkgs/tools/archivers/xarchiver/default.nix
··· 15 15 buildInputs = [ gtk3 intltool libxslt hicolor-icon-theme ]; 16 16 17 17 meta = { 18 - description = "GTK+ frontend to 7z,zip,rar,tar,bzip2, gzip,arj, lha, rpm and deb (open and extract only)"; 18 + description = "GTK frontend to 7z,zip,rar,tar,bzip2, gzip,arj, lha, rpm and deb (open and extract only)"; 19 19 homepage = https://github.com/ib/xarchiver; 20 20 maintainers = [ stdenv.lib.maintainers.domenkozar ]; 21 21 license = stdenv.lib.licenses.gpl2;
+8 -5
pkgs/tools/audio/aucdtect/default.nix
··· 3 3 with lib; 4 4 5 5 stdenv.mkDerivation rec { 6 - pname = "aucdtext"; 6 + pname = "aucdtect"; 7 7 version = "0.8-2"; 8 8 9 9 src = fetchurl { 10 - url = "http://www.true-audio.com/ftp/aucdtect-${version}.i586.rpm"; 10 + url = "http://www.true-audio.com/ftp/${pname}-${version}.i586.rpm"; 11 11 sha256 = "1lp5f0rq5b5n5il0c64m00gcfskarvgqslpryms9443d200y6mmd"; 12 12 }; 13 13 14 14 unpackCmd = "${rpmextract}/bin/rpmextract $src"; 15 15 16 16 installPhase = '' 17 - mkdir -p $out/bin 18 - install -m755 local/bin/auCDtect $out/bin/aucdtect 17 + runHook preInstall 18 + 19 + install -Dm755 local/bin/auCDtect $out/bin/aucdtect 20 + 21 + runHook postInstall 19 22 ''; 20 23 21 24 dontStrip = true; 22 25 23 26 meta = with stdenv.lib; { 24 27 description = "Verify authenticity of lossless audio files"; 25 - homepage = http://tausoft.org; 28 + homepage = "http://tausoft.org"; 26 29 license = licenses.unfreeRedistributable; 27 30 maintainers = with maintainers; [ peterhoeg ]; 28 31 platforms = platforms.linux;
+1 -1
pkgs/tools/bluetooth/blueman/default.nix
··· 52 52 53 53 meta = with lib; { 54 54 homepage = https://github.com/blueman-project/blueman; 55 - description = "GTK+-based Bluetooth Manager"; 55 + description = "GTK-based Bluetooth Manager"; 56 56 license = licenses.gpl3; 57 57 platforms = platforms.linux; 58 58 maintainers = with maintainers; [ abbradar ];
+70
pkgs/tools/filesystems/ceph/0000-dont-check-cherrypy-version.patch
··· 1 + diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py 2 + index a8a3ec07c1..bcc9b86c37 100644 3 + --- a/src/pybind/mgr/dashboard/module.py 4 + +++ b/src/pybind/mgr/dashboard/module.py 5 + @@ -25,40 +25,6 @@ except ImportError: 6 + 7 + from .services.sso import load_sso_db 8 + 9 + -# The SSL code in CherryPy 3.5.0 is buggy. It was fixed long ago, 10 + -# but 3.5.0 is still shipping in major linux distributions 11 + -# (Fedora 27, Ubuntu Xenial), so we must monkey patch it to get SSL working. 12 + -if cherrypy is not None: 13 + - v = StrictVersion(cherrypy.__version__) 14 + - # It was fixed in 3.7.0. Exact lower bound version is probably earlier, 15 + - # but 3.5.0 is what this monkey patch is tested on. 16 + - if StrictVersion("3.5.0") <= v < StrictVersion("3.7.0"): 17 + - from cherrypy.wsgiserver.wsgiserver2 import HTTPConnection,\ 18 + - CP_fileobject 19 + - 20 + - def fixed_init(hc_self, server, sock, makefile=CP_fileobject): 21 + - hc_self.server = server 22 + - hc_self.socket = sock 23 + - hc_self.rfile = makefile(sock, "rb", hc_self.rbufsize) 24 + - hc_self.wfile = makefile(sock, "wb", hc_self.wbufsize) 25 + - hc_self.requests_seen = 0 26 + - 27 + - HTTPConnection.__init__ = fixed_init 28 + - 29 + -# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify 30 + -# that the ports its listening on are in fact bound. When using the any address 31 + -# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes) 32 + -# ipv6 isn't yet configured / supported and CherryPy throws an uncaught 33 + -# exception. 34 + -if cherrypy is not None: 35 + - v = StrictVersion(cherrypy.__version__) 36 + - # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on 37 + - # centos:7) and back to at least 3.0.0. 38 + - if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"): 39 + - # https://github.com/cherrypy/cherrypy/issues/1100 40 + - from cherrypy.process import servers 41 + - servers.wait_for_occupied_port = lambda host, port: None 42 + - 43 + if 'COVERAGE_ENABLED' in os.environ: 44 + import coverage 45 + __cov = coverage.Coverage(config_file="{}/.coveragerc".format(os.path.dirname(__file__)), 46 + diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py 47 + index b7fecf8d85..dfd4160591 100644 48 + --- a/src/pybind/mgr/prometheus/module.py 49 + +++ b/src/pybind/mgr/prometheus/module.py 50 + @@ -18,20 +18,6 @@ from rbd import RBD 51 + DEFAULT_ADDR = '::' 52 + DEFAULT_PORT = 9283 53 + 54 + -# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify 55 + -# that the ports its listening on are in fact bound. When using the any address 56 + -# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes) 57 + -# ipv6 isn't yet configured / supported and CherryPy throws an uncaught 58 + -# exception. 59 + -if cherrypy is not None: 60 + - v = StrictVersion(cherrypy.__version__) 61 + - # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on 62 + - # centos:7) and back to at least 3.0.0. 63 + - if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"): 64 + - # https://github.com/cherrypy/cherrypy/issues/1100 65 + - from cherrypy.process import servers 66 + - servers.wait_for_occupied_port = lambda host, port: None 67 + - 68 + # cherrypy likes to sys.exit on error. don't let it take us down too! 69 + def os_exit_noop(*args, **kwargs): 70 + pass
+11
pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
··· 1 + --- a/cmake/modules/BuildSPDK.cmake 2018-08-09 09:22:34.950684960 +0200 2 + +++ b/cmake/modules/BuildSPDK.cmake 2018-08-09 09:21:59.986964224 +0200 3 + @@ -16,7 +16,7 @@ 4 + # unset $CFLAGS, otherwise it will interfere with how SPDK sets 5 + # its include directory. 6 + # unset $LDFLAGS, otherwise SPDK will fail to mock some functions. 7 + - BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC" 8 + + BUILD_COMMAND env PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC" C_OPT="-mssse3" 9 + BUILD_IN_SOURCE 1 10 + INSTALL_COMMAND "true") 11 + ExternalProject_Get_Property(spdk-ext source_dir)
-58
pkgs/tools/filesystems/ceph/0001-kv-RocksDBStore-API-break-additional.patch
··· 1 - Seulement dans ceph: ceph.old 2 - diff -ur ceph.old/src/kv/RocksDBStore.cc ceph/src/kv/RocksDBStore.cc 3 - --- ceph.old/src/kv/RocksDBStore.cc 1980-01-02 00:00:00.000000000 +0100 4 - +++ ceph/src/kv/RocksDBStore.cc 2018-01-24 14:08:35.017553372 +0100 5 - @@ -505,7 +505,7 @@ 6 - // considering performance overhead, default is disabled 7 - if (g_conf->rocksdb_perf) { 8 - rocksdb::SetPerfLevel(rocksdb::PerfLevel::kEnableTimeExceptForMutex); 9 - - rocksdb::perf_context.Reset(); 10 - + rocksdb::get_perf_context()->Reset(); 11 - } 12 - 13 - RocksDBTransactionImpl * _t = 14 - @@ -532,13 +532,13 @@ 15 - utime_t write_wal_time; 16 - utime_t write_pre_and_post_process_time; 17 - write_wal_time.set_from_double( 18 - - static_cast<double>(rocksdb::perf_context.write_wal_time)/1000000000); 19 - + static_cast<double>(rocksdb::get_perf_context()->write_wal_time)/1000000000); 20 - write_memtable_time.set_from_double( 21 - - static_cast<double>(rocksdb::perf_context.write_memtable_time)/1000000000); 22 - + static_cast<double>(rocksdb::get_perf_context()->write_memtable_time)/1000000000); 23 - write_delay_time.set_from_double( 24 - - static_cast<double>(rocksdb::perf_context.write_delay_time)/1000000000); 25 - + static_cast<double>(rocksdb::get_perf_context()->write_delay_time)/1000000000); 26 - write_pre_and_post_process_time.set_from_double( 27 - - static_cast<double>(rocksdb::perf_context.write_pre_and_post_process_time)/1000000000); 28 - + static_cast<double>(rocksdb::get_perf_context()->write_pre_and_post_process_time)/1000000000); 29 - logger->tinc(l_rocksdb_write_memtable_time, write_memtable_time); 30 - logger->tinc(l_rocksdb_write_delay_time, write_delay_time); 31 - logger->tinc(l_rocksdb_write_wal_time, write_wal_time); 32 - @@ -558,7 +558,7 @@ 33 - // considering performance overhead, default is disabled 34 - if (g_conf->rocksdb_perf) { 35 - rocksdb::SetPerfLevel(rocksdb::PerfLevel::kEnableTimeExceptForMutex); 36 - - rocksdb::perf_context.Reset(); 37 - + rocksdb::get_perf_context()->Reset(); 38 - } 39 - 40 - RocksDBTransactionImpl * _t = 41 - @@ -586,13 +586,13 @@ 42 - utime_t write_wal_time; 43 - utime_t write_pre_and_post_process_time; 44 - write_wal_time.set_from_double( 45 - - static_cast<double>(rocksdb::perf_context.write_wal_time)/1000000000); 46 - + static_cast<double>(rocksdb::get_perf_context()->write_wal_time)/1000000000); 47 - write_memtable_time.set_from_double( 48 - - static_cast<double>(rocksdb::perf_context.write_memtable_time)/1000000000); 49 - + static_cast<double>(rocksdb::get_perf_context()->write_memtable_time)/1000000000); 50 - write_delay_time.set_from_double( 51 - - static_cast<double>(rocksdb::perf_context.write_delay_time)/1000000000); 52 - + static_cast<double>(rocksdb::get_perf_context()->write_delay_time)/1000000000); 53 - write_pre_and_post_process_time.set_from_double( 54 - - static_cast<double>(rocksdb::perf_context.write_pre_and_post_process_time)/1000000000); 55 - + static_cast<double>(rocksdb::get_perf_context()->write_pre_and_post_process_time)/1000000000); 56 - logger->tinc(l_rocksdb_write_memtable_time, write_memtable_time); 57 - logger->tinc(l_rocksdb_write_delay_time, write_delay_time); 58 - logger->tinc(l_rocksdb_write_wal_time, write_wal_time);
-19
pkgs/tools/filesystems/ceph/0002-fix-absolute-include-path.patch
··· 1 - diff -ru ceph/src/key_value_store/kv_flat_btree_async.cc ceph-copy/src/key_value_store/kv_flat_btree_async.cc 2 - --- ceph/src/key_value_store/kv_flat_btree_async.cc 1980-01-02 00:00:00.000000000 +0100 3 - +++ ceph-copy/src/key_value_store/kv_flat_btree_async.cc 2018-02-13 21:49:59.232860487 +0100 4 - @@ -15,13 +15,13 @@ 5 - #include "key_value_store/kv_flat_btree_async.h" 6 - #include "key_value_store/kvs_arg_types.h" 7 - #include "include/rados/librados.hpp" 8 - -#include "/usr/include/asm-generic/errno.h" 9 - -#include "/usr/include/asm-generic/errno-base.h" 10 - #include "common/ceph_context.h" 11 - #include "common/Clock.h" 12 - #include "include/types.h" 13 - 14 - 15 - +#include <asm-generic/errno.h> 16 - +#include <asm-generic/errno-base.h> 17 - #include <string> 18 - #include <iostream> 19 - #include <cassert>
+194 -8
pkgs/tools/filesystems/ceph/default.nix
··· 1 - { callPackage, fetchgit, fetchpatch, ... } @ args: 1 + { stdenv, runCommand, fetchurl 2 + , ensureNewerSourcesHook 3 + , cmake, pkgconfig 4 + , which, git 5 + , boost, python3Packages 6 + , libxml2, zlib, lz4 7 + , openldap, lttng-ust 8 + , babeltrace, gperf 9 + , cunit, snappy 10 + , rocksdb, makeWrapper 11 + , leveldb, oathToolkit, removeReferencesTo 2 12 3 - callPackage ./generic.nix (args // rec { 4 - version = "12.2.7"; 13 + # Optional Dependencies 14 + , yasm ? null, fcgi ? null, expat ? null 15 + , curl ? null, fuse ? null 16 + , libedit ? null, libatomic_ops ? null 17 + , libs3 ? null 5 18 6 - src = fetchgit { 7 - url = "https://github.com/ceph/ceph.git"; 8 - rev = "refs/tags/v${version}"; 9 - sha256 = "031nfw2g2fdpxxx39g862phgmdx68hj9r54axazandghfhc1bzrl"; 19 + # Mallocs 20 + , jemalloc ? null, gperftools ? null 21 + 22 + # Crypto Dependencies 23 + , cryptopp ? null 24 + , nss ? null, nspr ? null 25 + 26 + # Linux Only Dependencies 27 + , linuxHeaders, utillinux, libuuid, udev, keyutils, rdma-core, rabbitmq-c 28 + , libaio ? null, libxfs ? null, zfs ? null 29 + , ... 30 + }: 31 + 32 + # We must have one crypto library 33 + assert cryptopp != null || (nss != null && nspr != null); 34 + 35 + with stdenv; with stdenv.lib; 36 + let 37 + shouldUsePkg = pkg: if pkg != null && pkg.meta.available then pkg else null; 38 + 39 + optYasm = shouldUsePkg yasm; 40 + optFcgi = shouldUsePkg fcgi; 41 + optExpat = shouldUsePkg expat; 42 + optCurl = shouldUsePkg curl; 43 + optFuse = shouldUsePkg fuse; 44 + optLibedit = shouldUsePkg libedit; 45 + optLibatomic_ops = shouldUsePkg libatomic_ops; 46 + optLibs3 = shouldUsePkg libs3; 47 + 48 + optJemalloc = shouldUsePkg jemalloc; 49 + optGperftools = shouldUsePkg gperftools; 50 + 51 + optCryptopp = shouldUsePkg cryptopp; 52 + optNss = shouldUsePkg nss; 53 + optNspr = shouldUsePkg nspr; 54 + 55 + optLibaio = shouldUsePkg libaio; 56 + optLibxfs = shouldUsePkg libxfs; 57 + optZfs = shouldUsePkg zfs; 58 + 59 + hasRadosgw = optFcgi != null && optExpat != null && optCurl != null && optLibedit != null; 60 + 61 + 62 + # Malloc implementation (can be jemalloc, tcmalloc or null) 63 + malloc = if optJemalloc != null then optJemalloc else optGperftools; 64 + 65 + # We prefer nss over cryptopp 66 + cryptoStr = if optNss != null && optNspr != null then "nss" else 67 + if optCryptopp != null then "cryptopp" else "none"; 68 + 69 + cryptoLibsMap = { 70 + nss = [ optNss optNspr ]; 71 + cryptopp = [ optCryptopp ]; 72 + none = [ ]; 10 73 }; 11 74 12 - }) 75 + ceph-python-env = python3Packages.python.withPackages (ps: [ 76 + ps.sphinx 77 + ps.flask 78 + ps.cython 79 + ps.setuptools 80 + ps.virtualenv 81 + # Libraries needed by the python tools 82 + ps.Mako 83 + ps.cherrypy 84 + ps.pecan 85 + ps.prettytable 86 + ps.pyjwt 87 + ps.webob 88 + ps.bcrypt 89 + ps.six 90 + ]); 91 + 92 + version = "14.2.1"; 93 + in rec { 94 + ceph = stdenv.mkDerivation { 95 + name="ceph-${version}"; 96 + 97 + src = fetchurl { 98 + url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz"; 99 + sha256 = "0qa9p8xp26d45h3jfj1rbwhmqv44f9n1mvccmpzaf2i05v42kmzb"; 100 + }; 101 + 102 + patches = [ 103 + ./0000-fix-SPDK-build-env.patch 104 + ./0000-dont-check-cherrypy-version.patch 105 + ]; 106 + 107 + nativeBuildInputs = [ 108 + cmake 109 + pkgconfig which git python3Packages.wrapPython makeWrapper 110 + (ensureNewerSourcesHook { year = "1980"; }) 111 + ]; 112 + 113 + buildInputs = cryptoLibsMap.${cryptoStr} ++ [ 114 + boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3 115 + malloc zlib openldap lttng-ust babeltrace gperf cunit 116 + snappy rocksdb lz4 oathToolkit leveldb 117 + removeReferencesTo 118 + ] ++ optionals stdenv.isLinux [ 119 + linuxHeaders utillinux libuuid udev keyutils optLibaio optLibxfs optZfs 120 + # ceph 14 121 + rdma-core rabbitmq-c 122 + ] ++ optionals hasRadosgw [ 123 + optFcgi optExpat optCurl optFuse optLibedit 124 + ]; 125 + 126 + preConfigure ='' 127 + substituteInPlace src/common/module.c --replace "/sbin/modinfo" "modinfo" 128 + substituteInPlace src/common/module.c --replace "/sbin/modprobe" "modprobe" 129 + # Since Boost 1.67 this seems to have changed 130 + substituteInPlace CMakeLists.txt --replace "list(APPEND BOOST_COMPONENTS python)" "list(APPEND BOOST_COMPONENTS python37)" 131 + substituteInPlace src/CMakeLists.txt --replace "Boost::python " "Boost::python37 " 132 + 133 + # for pybind/rgw to find internal dep 134 + export LD_LIBRARY_PATH="$PWD/build/lib:$LD_LIBRARY_PATH" 135 + # install target needs to be in PYTHONPATH for "*.pth support" check to succeed 136 + export PYTHONPATH=${ceph-python-env}/lib/python3.7/site-packages:$lib/lib/python3.7/site-packages/:$out/lib/python3.7/site-packages/ 137 + 138 + patchShebangs src/spdk 139 + ''; 140 + 141 + cmakeFlags = [ 142 + "-DWITH_PYTHON3=ON" 143 + "-DWITH_SYSTEM_ROCKSDB=OFF" 144 + 145 + "-DWITH_SYSTEM_BOOST=ON" 146 + "-DWITH_SYSTEMD=OFF" 147 + "-DWITH_TESTS=OFF" 148 + # TODO breaks with sandbox, tries to download stuff with npm 149 + "-DWITH_MGR_DASHBOARD_FRONTEND=OFF" 150 + ]; 151 + 152 + preFixup = '' 153 + find $lib -type f -exec remove-references-to -t $out '{}' + 154 + mv $out/share/ceph/mgr $lib/lib/ceph/ 155 + ''; 156 + 157 + postFixup = '' 158 + export PYTHONPATH="${ceph-python-env}/lib/python3.7/site-packages:$lib/lib/ceph/mgr:$out/lib/python3.7/site-packages/" 159 + wrapPythonPrograms 160 + wrapProgram $out/bin/ceph-mgr --prefix PYTHONPATH ":" "${ceph-python-env}/lib/python3.7/site-packages:$lib/lib/ceph/mgr:$out/lib/python3.7/site-packages/" 161 + wrapProgram $out/bin/ceph-volume --prefix PYTHONPATH ":" "${ceph-python-env}/lib/python3.7/site-packages:$lib/lib/ceph/mgr:$out/lib/python3.7/site-packages/" 162 + ''; 163 + 164 + enableParallelBuilding = true; 165 + 166 + outputs = [ "out" "lib" "dev" "doc" "man" ]; 167 + 168 + meta = { 169 + homepage = https://ceph.com/; 170 + description = "Distributed storage system"; 171 + license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ]; 172 + maintainers = with maintainers; [ adev ak krav johanot ]; 173 + platforms = platforms.unix; 174 + }; 175 + 176 + passthru.version = version; 177 + }; 178 + 179 + ceph-client = runCommand "ceph-client-${version}" { 180 + meta = { 181 + homepage = https://ceph.com/; 182 + description = "Tools needed to mount Ceph's RADOS Block Devices"; 183 + license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ]; 184 + maintainers = with maintainers; [ adev ak krav ]; 185 + platforms = platforms.unix; 186 + }; 187 + } '' 188 + mkdir -p $out/{bin,etc,lib/python3.7/site-packages} 189 + cp -r ${ceph}/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $out/bin 190 + cp -r ${ceph}/bin/ceph-{authtool,conf,dencoder,rbdnamer,syn} $out/bin 191 + cp -r ${ceph}/bin/rbd-replay* $out/bin 192 + cp -r ${ceph}/lib/python3.7/site-packages $out/lib/python3.7/ 193 + cp -r ${ceph}/etc/bash_completion.d $out/etc 194 + # wrapPythonPrograms modifies .ceph-wrapped, so lets just update its paths 195 + substituteInPlace $out/bin/ceph --replace ${ceph} $out 196 + substituteInPlace $out/bin/.ceph-wrapped --replace ${ceph} $out 197 + ''; 198 + }
-175
pkgs/tools/filesystems/ceph/generic.nix
··· 1 - { stdenv, ensureNewerSourcesHook, cmake, pkgconfig 2 - , which, git 3 - , boost, python2Packages 4 - , libxml2, zlib 5 - , openldap, lttng-ust 6 - , babeltrace, gperf 7 - , cunit, snappy 8 - , rocksdb, makeWrapper 9 - 10 - # Optional Dependencies 11 - , yasm ? null, fcgi ? null, expat ? null 12 - , curl ? null, fuse ? null 13 - , libedit ? null, libatomic_ops ? null, kinetic-cpp-client ? null 14 - , libs3 ? null 15 - 16 - # Mallocs 17 - , jemalloc ? null, gperftools ? null 18 - 19 - # Crypto Dependencies 20 - , cryptopp ? null 21 - , nss ? null, nspr ? null 22 - 23 - # Linux Only Dependencies 24 - , linuxHeaders, libuuid, udev, keyutils, libaio ? null, libxfs ? null 25 - , zfs ? null 26 - 27 - # Version specific arguments 28 - , version, src ? [], buildInputs ? [] 29 - , ... 30 - }: 31 - 32 - # We must have one crypto library 33 - assert cryptopp != null || (nss != null && nspr != null); 34 - 35 - with stdenv; 36 - with stdenv.lib; 37 - let 38 - 39 - shouldUsePkg = pkg_: let pkg = (builtins.tryEval pkg_).value; 40 - in if lib.any (lib.meta.platformMatch stdenv.hostPlatform) pkg.meta.platforms 41 - then pkg else null; 42 - 43 - optYasm = shouldUsePkg yasm; 44 - optFcgi = shouldUsePkg fcgi; 45 - optExpat = shouldUsePkg expat; 46 - optCurl = shouldUsePkg curl; 47 - optFuse = shouldUsePkg fuse; 48 - optLibedit = shouldUsePkg libedit; 49 - optLibatomic_ops = shouldUsePkg libatomic_ops; 50 - optKinetic-cpp-client = shouldUsePkg kinetic-cpp-client; 51 - optLibs3 = if versionAtLeast version "10.0.0" then null else shouldUsePkg libs3; 52 - 53 - optJemalloc = shouldUsePkg jemalloc; 54 - optGperftools = shouldUsePkg gperftools; 55 - 56 - optCryptopp = shouldUsePkg cryptopp; 57 - optNss = shouldUsePkg nss; 58 - optNspr = shouldUsePkg nspr; 59 - 60 - optLibaio = shouldUsePkg libaio; 61 - optLibxfs = shouldUsePkg libxfs; 62 - optZfs = shouldUsePkg zfs; 63 - 64 - hasRadosgw = optFcgi != null && optExpat != null && optCurl != null && optLibedit != null; 65 - 66 - 67 - # TODO: Reenable when kinetic support is fixed 68 - #hasKinetic = versionAtLeast version "9.0.0" && optKinetic-cpp-client != null; 69 - hasKinetic = false; 70 - 71 - # Malloc implementation (can be jemalloc, tcmalloc or null) 72 - malloc = if optJemalloc != null then optJemalloc else optGperftools; 73 - 74 - # We prefer nss over cryptopp 75 - cryptoStr = if optNss != null && optNspr != null then "nss" else 76 - if optCryptopp != null then "cryptopp" else "none"; 77 - cryptoLibsMap = { 78 - nss = [ optNss optNspr ]; 79 - cryptopp = [ optCryptopp ]; 80 - none = [ ]; 81 - }; 82 - 83 - ceph-python-env = python2Packages.python.withPackages (ps: [ 84 - ps.sphinx 85 - ps.flask 86 - ps.cython 87 - ps.setuptools 88 - ps.pip 89 - # Libraries needed by the python tools 90 - ps.Mako 91 - ps.pecan 92 - ps.prettytable 93 - ps.webob 94 - ps.cherrypy 95 - ]); 96 - 97 - in 98 - stdenv.mkDerivation { 99 - pname = "ceph"; 100 - inherit version; 101 - 102 - inherit src; 103 - 104 - patches = [ 105 - # ./ceph-patch-cmake-path.patch 106 - ./0001-kv-RocksDBStore-API-break-additional.patch 107 - ] ++ optionals stdenv.isLinux [ 108 - ./0002-fix-absolute-include-path.patch 109 - ]; 110 - 111 - nativeBuildInputs = [ 112 - cmake 113 - pkgconfig which git python2Packages.wrapPython makeWrapper 114 - (ensureNewerSourcesHook { year = "1980"; }) 115 - ]; 116 - 117 - buildInputs = buildInputs ++ cryptoLibsMap.${cryptoStr} ++ [ 118 - boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3 119 - malloc zlib openldap lttng-ust babeltrace gperf cunit 120 - snappy rocksdb 121 - ] ++ optionals stdenv.isLinux [ 122 - linuxHeaders libuuid udev keyutils optLibaio optLibxfs optZfs 123 - ] ++ optionals hasRadosgw [ 124 - optFcgi optExpat optCurl optFuse optLibedit 125 - ] ++ optionals hasKinetic [ 126 - optKinetic-cpp-client 127 - ]; 128 - 129 - 130 - preConfigure ='' 131 - # rip off submodule that interfer with system libs 132 - rm -rf src/boost 133 - rm -rf src/rocksdb 134 - 135 - # require LD_LIBRARY_PATH for cython to find internal dep 136 - export LD_LIBRARY_PATH="$PWD/build/lib:$LD_LIBRARY_PATH" 137 - 138 - # requires setuptools due to embedded in-cmake setup.py usage 139 - export PYTHONPATH="${python2Packages.setuptools}/lib/python2.7/site-packages/:$PYTHONPATH" 140 - ''; 141 - 142 - cmakeFlags = [ 143 - "-DENABLE_GIT_VERSION=OFF" 144 - "-DWITH_SYSTEM_BOOST=ON" 145 - "-DWITH_SYSTEM_ROCKSDB=ON" 146 - "-DWITH_LEVELDB=OFF" 147 - 148 - # enforce shared lib 149 - "-DBUILD_SHARED_LIBS=ON" 150 - 151 - # disable cephfs, cmake build broken for now 152 - "-DWITH_CEPHFS=OFF" 153 - "-DWITH_LIBCEPHFS=OFF" 154 - ]; 155 - 156 - postFixup = '' 157 - wrapPythonPrograms 158 - wrapProgram $out/bin/ceph-mgr --set PYTHONPATH $out/${python2Packages.python.sitePackages} 159 - ''; 160 - 161 - enableParallelBuilding = true; 162 - 163 - outputs = [ "dev" "lib" "out" "doc" ]; 164 - 165 - meta = { 166 - homepage = https://ceph.com/; 167 - description = "Distributed storage system"; 168 - license = licenses.lgpl21; 169 - maintainers = with maintainers; [ adev ak ]; 170 - platforms = platforms.unix; 171 - broken = true; 172 - }; 173 - 174 - passthru.version = version; 175 - }
+2 -2
pkgs/tools/graphics/pngquant/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "pngquant"; 5 - version = "2.12.1"; 5 + version = "2.12.5"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "pornel"; 9 9 repo = "pngquant"; 10 10 rev = version; 11 - sha256 = "0jdvry3kvmmxcgwf5a3zbfz0idl6yl3700ag7pf8sk4lg4qp0llp"; 11 + sha256 = "0sq398iv5cacblz6pb4j2hn16cnszsbkahikdpfq84rb9bj0ya40"; 12 12 fetchSubmodules = true; 13 13 }; 14 14
+2 -2
pkgs/tools/misc/bdf2psf/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "bdf2psf"; 5 - version = "1.192"; 5 + version = "1.193"; 6 6 7 7 src = fetchurl { 8 8 url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb"; 9 - sha256 = "0yjylbj88p2a7qi1wicicl1ivrhp52pnzy44mc1yg6l3n7zifcwn"; 9 + sha256 = "1mykng02fyxshm02kywrk16f27b1jhgn9zcaxcvxd255sn58w68k"; 10 10 }; 11 11 12 12 buildInputs = [ dpkg ];
+6 -5
pkgs/tools/misc/heimdall/default.nix
··· 1 - { stdenv, fetchFromGitHub, cmake 2 - , zlib, libusb1 3 - , enableGUI ? false, qtbase ? null }: 1 + { stdenv, mkDerivation, fetchFromGitHub, cmake, zlib, libusb1 2 + , enableGUI ? false, qtbase ? null 3 + }: 4 4 5 - stdenv.mkDerivation rec { 5 + let version = "1.4.2"; in 6 + 7 + mkDerivation { 6 8 name = "heimdall-${if enableGUI then "gui-" else ""}${version}"; 7 - version = "1.4.2"; 8 9 9 10 src = fetchFromGitHub { 10 11 owner = "Benjamin-Dobell";
+8 -19
pkgs/tools/misc/html-proofer/Gemfile.lock
··· 1 1 GEM 2 2 remote: https://rubygems.org/ 3 3 specs: 4 - activesupport (5.2.3) 5 - concurrent-ruby (~> 1.0, >= 1.0.2) 6 - i18n (>= 0.7, < 2) 7 - minitest (~> 5.1) 8 - tzinfo (~> 1.1) 9 - addressable (2.6.0) 10 - public_suffix (>= 2.0.2, < 4.0) 11 - concurrent-ruby (1.1.5) 4 + addressable (2.7.0) 5 + public_suffix (>= 2.0.2, < 5.0) 12 6 ethon (0.12.0) 13 7 ffi (>= 1.3.0) 14 8 ffi (1.11.1) 15 - html-proofer (3.11.1) 16 - activesupport (>= 4.2, < 6.0) 9 + html-proofer (3.12.0) 17 10 addressable (~> 2.3) 18 - mercenary (~> 0.3.2) 19 - nokogiri (~> 1.9) 11 + mercenary (~> 0.3) 12 + nokogiri (~> 1.10) 20 13 parallel (~> 1.3) 21 14 rainbow (~> 3.0) 15 + timerizer (~> 0.3) 22 16 typhoeus (~> 1.3) 23 17 yell (~> 2.0) 24 - i18n (1.6.0) 25 - concurrent-ruby (~> 1.0) 26 18 mercenary (0.3.6) 27 19 mini_portile2 (2.4.0) 28 - minitest (5.11.3) 29 20 nokogiri (1.10.4) 30 21 mini_portile2 (~> 2.4.0) 31 22 parallel (1.17.0) 32 - public_suffix (3.1.1) 23 + public_suffix (4.0.1) 33 24 rainbow (3.0.0) 34 - thread_safe (0.3.6) 25 + timerizer (0.3.2) 35 26 typhoeus (1.3.1) 36 27 ethon (>= 0.9.0) 37 - tzinfo (1.2.5) 38 - thread_safe (~> 0.1) 39 28 yell (2.2.0) 40 29 41 30 PLATFORMS
+10 -63
pkgs/tools/misc/html-proofer/gemset.nix
··· 1 1 { 2 - activesupport = { 3 - dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; 4 - groups = ["default"]; 5 - platforms = []; 6 - source = { 7 - remotes = ["https://rubygems.org"]; 8 - sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8"; 9 - type = "gem"; 10 - }; 11 - version = "5.2.3"; 12 - }; 13 2 addressable = { 14 3 dependencies = ["public_suffix"]; 15 4 groups = ["default"]; 16 5 platforms = []; 17 6 source = { 18 7 remotes = ["https://rubygems.org"]; 19 - sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l"; 8 + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; 20 9 type = "gem"; 21 10 }; 22 - version = "2.6.0"; 23 - }; 24 - concurrent-ruby = { 25 - groups = ["default"]; 26 - platforms = []; 27 - source = { 28 - remotes = ["https://rubygems.org"]; 29 - sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an"; 30 - type = "gem"; 31 - }; 32 - version = "1.1.5"; 11 + version = "2.7.0"; 33 12 }; 34 13 ethon = { 35 14 dependencies = ["ffi"]; ··· 32 53 version = "1.11.1"; 33 54 }; 34 55 html-proofer = { 35 - dependencies = ["activesupport" "addressable" "mercenary" "nokogiri" "parallel" "rainbow" "typhoeus" "yell"]; 56 + dependencies = ["addressable" "mercenary" "nokogiri" "parallel" "rainbow" "timerizer" "typhoeus" "yell"]; 36 57 groups = ["default"]; 37 58 platforms = []; 38 59 source = { 39 60 remotes = ["https://rubygems.org"]; 40 - sha256 = "0kpcz7p0yjr1y9fs8gila2bkgb8y6qkyqv5a8yymw0hkvddnqig4"; 61 + sha256 = "1a5h5ijrngfd4ri36g7bs5lcg4001i5xx7nlk35rsg34xpy8mp04"; 41 62 type = "gem"; 42 63 }; 43 - version = "3.11.1"; 44 - }; 45 - i18n = { 46 - dependencies = ["concurrent-ruby"]; 47 - groups = ["default"]; 48 - platforms = []; 49 - source = { 50 - remotes = ["https://rubygems.org"]; 51 - sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl"; 52 - type = "gem"; 53 - }; 54 - version = "1.6.0"; 64 + version = "3.12.0"; 55 65 }; 56 66 mercenary = { 57 67 groups = ["default"]; ··· 61 93 type = "gem"; 62 94 }; 63 95 version = "2.4.0"; 64 - }; 65 - minitest = { 66 - groups = ["default"]; 67 - platforms = []; 68 - source = { 69 - remotes = ["https://rubygems.org"]; 70 - sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; 71 - type = "gem"; 72 - }; 73 - version = "5.11.3"; 74 96 }; 75 97 nokogiri = { 76 98 dependencies = ["mini_portile2"]; ··· 88 130 platforms = []; 89 131 source = { 90 132 remotes = ["https://rubygems.org"]; 91 - sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm"; 133 + sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"; 92 134 type = "gem"; 93 135 }; 94 - version = "3.1.1"; 136 + version = "4.0.1"; 95 137 }; 96 138 rainbow = { 97 139 groups = ["default"]; ··· 103 145 }; 104 146 version = "3.0.0"; 105 147 }; 106 - thread_safe = { 148 + timerizer = { 107 149 groups = ["default"]; 108 150 platforms = []; 109 151 source = { 110 152 remotes = ["https://rubygems.org"]; 111 - sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; 153 + sha256 = "06zk04kprgj0abws15wqrk4q29f3wcx7z2jj3v25nnb2517lk66c"; 112 154 type = "gem"; 113 155 }; 114 - version = "0.3.6"; 156 + version = "0.3.2"; 115 157 }; 116 158 typhoeus = { 117 159 dependencies = ["ethon"]; ··· 123 165 type = "gem"; 124 166 }; 125 167 version = "1.3.1"; 126 - }; 127 - tzinfo = { 128 - dependencies = ["thread_safe"]; 129 - groups = ["default"]; 130 - platforms = []; 131 - source = { 132 - remotes = ["https://rubygems.org"]; 133 - sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; 134 - type = "gem"; 135 - }; 136 - version = "1.2.5"; 137 168 }; 138 169 yell = { 139 170 groups = ["default"];
+1 -1
pkgs/tools/misc/parcellite/default.nix
··· 23 23 ''; 24 24 25 25 meta = with stdenv.lib; { 26 - description = "Lightweight GTK+ clipboard manager"; 26 + description = "Lightweight GTK clipboard manager"; 27 27 homepage = https://github.com/rickyrockrat/parcellite; 28 28 license = licenses.gpl3Plus; 29 29 platforms = platforms.linux;
+1 -1
pkgs/tools/misc/plotinus/default.nix
··· 34 34 ]; 35 35 36 36 meta = with stdenv.lib; { 37 - description = "A searchable command palette in every modern GTK+ application"; 37 + description = "A searchable command palette in every modern GTK application"; 38 38 homepage = https://github.com/p-e-w/plotinus; 39 39 maintainers = with maintainers; [ samdroid-apps ]; 40 40 platforms = platforms.linux;
+2 -2
pkgs/tools/misc/txr/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "txr"; 5 - version = "220"; 5 + version = "224"; 6 6 7 7 src = fetchurl { 8 8 url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2"; 9 - sha256 = "00jg1zhsqhi146xrh0bfb2czfgfw9i2xbpqwk3yh0n766wcm4ryd"; 9 + sha256 = "10xz140i4sam9r7r8rz5mz5jbwal7xvaimzrb7lmisqsvby2qcw7"; 10 10 }; 11 11 12 12 nativeBuildInputs = [ bison flex ];
+2 -2
pkgs/tools/networking/gftp/default.nix
··· 11 11 nativeBuildInputs = [ pkgconfig ]; 12 12 buildInputs = [ gtk2 readline ncurses gettext openssl ]; 13 13 14 - meta = { 15 - description = "GTK+-based FTP client"; 14 + meta = { 15 + description = "GTK-based FTP client"; 16 16 homepage = http://www.gftp.org; 17 17 license = stdenv.lib.licenses.gpl2Plus; 18 18 platforms = stdenv.lib.platforms.unix;
+5 -4
pkgs/tools/networking/httpie/default.nix
··· 1 1 { stdenv, fetchurl, pythonPackages }: 2 2 3 3 pythonPackages.buildPythonApplication rec { 4 - name = "httpie-1.0.2"; 4 + pname = "httpie"; 5 + version = "1.0.3"; 5 6 6 - src = fetchurl { 7 - url = "mirror://pypi/h/httpie/${name}.tar.gz"; 8 - sha256 = "1ax22jh5lpjywpj7lsl072wdhr1pxiqzmxhyph5diwxxzs2nqrzw"; 7 + src = pythonPackages.fetchPypi { 8 + inherit pname version; 9 + sha256 = "103fcigpxf4nqmrdqjnyz7d9n4n16906slwmmqqc0gkxv8hnw6vd"; 9 10 }; 10 11 11 12 propagatedBuildInputs = with pythonPackages; [ pygments requests ];
+1 -1
pkgs/tools/networking/p2p/gtk-gnutella/default.nix
··· 42 42 ''; 43 43 44 44 meta = with stdenv.lib; { 45 - description = "A GTK+ Gnutella client, optimized for speed and scalability"; 45 + description = "A GTK Gnutella client, optimized for speed and scalability"; 46 46 homepage = "http://gtk-gnutella.sourceforge.net/"; # Code: https://github.com/gtk-gnutella/gtk-gnutella 47 47 changelog = "https://raw.githubusercontent.com/gtk-gnutella/gtk-gnutella/v${version}/ChangeLog"; 48 48 license = licenses.gpl2Plus;
+1 -1
pkgs/tools/networking/uget/default.nix
··· 34 34 ''gappsWrapperArgs+=(--suffix PATH : "${aria2}/bin")''; 35 35 36 36 meta = with stdenv.lib; { 37 - description = "Download manager using gtk+ and libcurl"; 37 + description = "Download manager using GTK and libcurl"; 38 38 longDescription = '' 39 39 uGet is a VERY Powerful download manager application with a large 40 40 inventory of features but is still very light-weight and low on
+3 -3
pkgs/tools/package-management/home-manager/default.nix
··· 6 6 stdenv.mkDerivation rec { 7 7 8 8 pname = "home-manager"; 9 - version = "2019-06-25"; 9 + version = "2019-09-04"; 10 10 11 11 src = fetchFromGitHub { 12 12 owner = "rycee"; 13 13 repo = "home-manager"; 14 - rev = "95d55b8da152f1efffb7713c82ead83a3fcf476d"; 15 - sha256 = "1zbx051rc0b880wjl832m9sliwrhrm1dbdxw8734gvc0pfz6qwn1"; 14 + rev = "1923ac3358cbd2d75352c2db2178314eb4623818"; 15 + sha256 = "1xdsz62sjh8j3p8jfz449gv9vl01adk3qdyjvbpgi7y5c09ymwg7"; 16 16 }; 17 17 18 18 nativeBuildInputs = [ makeWrapper ];
+2 -2
pkgs/tools/package-management/nix/default.nix
··· 174 174 }; 175 175 176 176 nixStable = callPackage common (rec { 177 - name = "nix-2.2.2"; 177 + name = "nix-2.3"; 178 178 src = fetchurl { 179 179 url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz"; 180 - sha256 = "f80a1b4f9837a8d33209f0b7769d5038335459ff4303eccf3e9217a9eca8594c"; 180 + sha256 = "b1d1b4d87390941fc64b19776f1ed9e3871231d38f5a1f295dd13925acd3a98d"; 181 181 }; 182 182 183 183 inherit storeDir stateDir confDir boehmgc;
+4 -2
pkgs/tools/package-management/xbps/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "xbps"; 5 - version = "0.56"; 5 + version = "0.57"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "void-linux"; 9 9 repo = "xbps"; 10 10 rev = version; 11 - sha256 = "0hqvq6fq62l5sgm4fy3zb0ks889d21mqz4f4my3iifs6c9f50na2"; 11 + sha256 = "1aaa0h265lx85hmcvg7zpg7iiq6dzzlyxqazn1s387ss709i5gxn"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ pkgconfig which ]; ··· 16 16 buildInputs = [ zlib openssl libarchive ]; 17 17 18 18 patches = [ ./cert-paths.patch ]; 19 + 20 + NIX_CFLAGS_COMPILE = [ "-Wno-error=unused-result" ]; 19 21 20 22 postPatch = '' 21 23 # fix unprefixed ranlib (needed on cross)
+1 -1
pkgs/tools/security/metasploit/Gemfile
··· 1 1 # frozen_string_literal: true 2 2 source "https://rubygems.org" 3 3 4 - gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/4.16.1" 4 + gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/5.0.45"
+159 -97
pkgs/tools/security/metasploit/Gemfile.lock
··· 1 1 GIT 2 2 remote: https://github.com/rapid7/metasploit-framework 3 - revision: dbec1c2d2ae4bd77276cbfb3c6ee2902048b9453 4 - ref: refs/tags/4.16.1 3 + revision: 2b9e74c7a8a4423ea195e75abca1f56c354e5541 4 + ref: refs/tags/5.0.45 5 5 specs: 6 - metasploit-framework (4.16.1) 6 + metasploit-framework (5.0.45) 7 7 actionpack (~> 4.2.6) 8 8 activerecord (~> 4.2.6) 9 9 activesupport (~> 4.2.6) 10 + aws-sdk-ec2 11 + aws-sdk-iam 12 + aws-sdk-s3 10 13 backports 11 - bcrypt 14 + bcrypt (= 3.1.12) 12 15 bcrypt_pbkdf 13 16 bit-struct 17 + concurrent-ruby (= 1.0.5) 14 18 dnsruby 19 + ed25519 20 + em-http-request 21 + faker 15 22 filesize 16 23 jsobfu 17 24 json ··· 26 19 metasploit-concern 27 20 metasploit-credential 28 21 metasploit-model 29 - metasploit-payloads (= 1.3.1) 30 - metasploit_data_models 31 - metasploit_payloads-mettle (= 0.2.0) 22 + metasploit-payloads (= 1.3.70) 23 + metasploit_data_models (= 3.0.10) 24 + metasploit_payloads-mettle (= 0.5.16) 25 + mqtt 32 26 msgpack 33 27 nessus_rest 34 28 net-ssh ··· 43 35 patch_finder 44 36 pcaprub 45 37 pdf-reader 46 - pg (= 0.20.0) 38 + pg (~> 0.20) 47 39 railties 48 40 rb-readline 49 - rbnacl (< 5.0.0) 50 - rbnacl-libsodium 51 41 recog 52 42 redcarpet 53 43 rex-arch ··· 57 51 rex-mime 58 52 rex-nop 59 53 rex-ole 60 - rex-powershell (< 0.1.73) 54 + rex-powershell 61 55 rex-random_identifier 62 56 rex-registry 63 57 rex-rop_builder 64 - rex-socket 58 + rex-socket (= 0.1.17) 65 59 rex-sslscan 66 60 rex-struct2 67 61 rex-text 68 62 rex-zip 69 - robots 63 + ruby-macho 70 64 ruby_smb 71 65 rubyntlm 72 66 rubyzip 67 + sinatra 73 68 sqlite3 74 69 sshkey 70 + thin 75 71 tzinfo 76 72 tzinfo-data 73 + warden 77 74 windows_error 78 75 xdr 79 76 xmlrpc ··· 84 75 GEM 85 76 remote: https://rubygems.org/ 86 77 specs: 87 - Ascii85 (1.0.2) 88 - actionpack (4.2.9) 89 - actionview (= 4.2.9) 90 - activesupport (= 4.2.9) 78 + Ascii85 (1.0.3) 79 + actionpack (4.2.11.1) 80 + actionview (= 4.2.11.1) 81 + activesupport (= 4.2.11.1) 91 82 rack (~> 1.6) 92 83 rack-test (~> 0.6.2) 93 84 rails-dom-testing (~> 1.0, >= 1.0.5) 94 85 rails-html-sanitizer (~> 1.0, >= 1.0.2) 95 - actionview (4.2.9) 96 - activesupport (= 4.2.9) 86 + actionview (4.2.11.1) 87 + activesupport (= 4.2.11.1) 97 88 builder (~> 3.1) 98 89 erubis (~> 2.7.0) 99 90 rails-dom-testing (~> 1.0, >= 1.0.5) 100 91 rails-html-sanitizer (~> 1.0, >= 1.0.3) 101 - activemodel (4.2.9) 102 - activesupport (= 4.2.9) 92 + activemodel (4.2.11.1) 93 + activesupport (= 4.2.11.1) 103 94 builder (~> 3.1) 104 - activerecord (4.2.9) 105 - activemodel (= 4.2.9) 106 - activesupport (= 4.2.9) 95 + activerecord (4.2.11.1) 96 + activemodel (= 4.2.11.1) 97 + activesupport (= 4.2.11.1) 107 98 arel (~> 6.0) 108 - activesupport (4.2.9) 99 + activesupport (4.2.11.1) 109 100 i18n (~> 0.7) 110 101 minitest (~> 5.1) 111 102 thread_safe (~> 0.3, >= 0.3.4) 112 103 tzinfo (~> 1.1) 113 - addressable (2.5.1) 114 - public_suffix (~> 2.0, >= 2.0.2) 104 + addressable (2.7.0) 105 + public_suffix (>= 2.0.2, < 5.0) 115 106 afm (0.2.2) 116 107 arel (6.0.4) 117 - arel-helpers (2.4.0) 118 - activerecord (>= 3.1.0, < 6) 119 - backports (3.8.0) 120 - bcrypt (3.1.11) 121 - bcrypt_pbkdf (1.0.0) 122 - bindata (2.4.0) 108 + arel-helpers (2.10.0) 109 + activerecord (>= 3.1.0, < 7) 110 + aws-eventstream (1.0.3) 111 + aws-partitions (1.208.0) 112 + aws-sdk-core (3.66.0) 113 + aws-eventstream (~> 1.0, >= 1.0.2) 114 + aws-partitions (~> 1.0) 115 + aws-sigv4 (~> 1.1) 116 + jmespath (~> 1.0) 117 + aws-sdk-ec2 (1.106.0) 118 + aws-sdk-core (~> 3, >= 3.61.1) 119 + aws-sigv4 (~> 1.1) 120 + aws-sdk-iam (1.29.0) 121 + aws-sdk-core (~> 3, >= 3.61.1) 122 + aws-sigv4 (~> 1.1) 123 + aws-sdk-kms (1.24.0) 124 + aws-sdk-core (~> 3, >= 3.61.1) 125 + aws-sigv4 (~> 1.1) 126 + aws-sdk-s3 (1.48.0) 127 + aws-sdk-core (~> 3, >= 3.61.1) 128 + aws-sdk-kms (~> 1) 129 + aws-sigv4 (~> 1.1) 130 + aws-sigv4 (1.1.0) 131 + aws-eventstream (~> 1.0, >= 1.0.2) 132 + backports (3.15.0) 133 + bcrypt (3.1.12) 134 + bcrypt_pbkdf (1.0.1) 135 + bindata (2.4.4) 123 136 bit-struct (0.16) 124 137 builder (3.2.3) 125 - dnsruby (1.60.2) 138 + concurrent-ruby (1.0.5) 139 + cookiejar (0.3.3) 140 + crass (1.0.4) 141 + daemons (1.3.1) 142 + dnsruby (1.61.3) 143 + addressable (~> 2.5) 144 + ed25519 (1.2.4) 145 + em-http-request (1.1.5) 146 + addressable (>= 2.3.4) 147 + cookiejar (!= 0.3.1) 148 + em-socksify (>= 0.3) 149 + eventmachine (>= 1.0.3) 150 + http_parser.rb (>= 0.6.0) 151 + em-socksify (0.3.2) 152 + eventmachine (>= 1.0.0.beta.4) 126 153 erubis (2.7.0) 127 - faraday (0.13.1) 154 + eventmachine (1.2.7) 155 + faker (2.2.1) 156 + i18n (>= 0.8) 157 + faraday (0.15.4) 128 158 multipart-post (>= 1.2, < 3) 129 - ffi (1.9.18) 130 - filesize (0.1.1) 159 + filesize (0.2.0) 131 160 hashery (2.1.2) 132 - i18n (0.8.6) 161 + http_parser.rb (0.6.0) 162 + i18n (0.9.5) 163 + concurrent-ruby (~> 1.0) 164 + jmespath (1.4.0) 133 165 jsobfu (0.4.2) 134 166 rkelly-remix 135 - json (2.1.0) 136 - loofah (2.0.3) 167 + json (2.2.0) 168 + loofah (2.2.3) 169 + crass (~> 1.0.2) 137 170 nokogiri (>= 1.5.9) 138 - metasm (1.0.3) 171 + metasm (1.0.4) 139 172 metasploit-concern (2.0.5) 140 173 activemodel (~> 4.2.6) 141 174 activesupport (~> 4.2.6) 142 175 railties (~> 4.2.6) 143 - metasploit-credential (2.0.12) 176 + metasploit-credential (3.0.3) 144 177 metasploit-concern 145 178 metasploit-model 146 - metasploit_data_models 179 + metasploit_data_models (>= 3.0.0) 180 + net-ssh 147 181 pg 148 182 railties 149 183 rex-socket ··· 196 144 activemodel (~> 4.2.6) 197 145 activesupport (~> 4.2.6) 198 146 railties (~> 4.2.6) 199 - metasploit-payloads (1.3.1) 200 - metasploit_data_models (2.0.15) 147 + metasploit-payloads (1.3.70) 148 + metasploit_data_models (3.0.10) 201 149 activerecord (~> 4.2.6) 202 150 activesupport (~> 4.2.6) 203 151 arel-helpers ··· 207 155 postgres_ext 208 156 railties (~> 4.2.6) 209 157 recog (~> 2.0) 210 - metasploit_payloads-mettle (0.2.0) 211 - mini_portile2 (2.2.0) 212 - minitest (5.10.3) 213 - msgpack (1.1.0) 214 - multipart-post (2.0.0) 158 + metasploit_payloads-mettle (0.5.16) 159 + mini_portile2 (2.4.0) 160 + minitest (5.11.3) 161 + mqtt (0.5.0) 162 + msgpack (1.3.1) 163 + multipart-post (2.1.1) 215 164 nessus_rest (0.1.6) 216 - net-ssh (4.1.0) 217 - network_interface (0.0.1) 218 - nexpose (6.1.1) 219 - nokogiri (1.8.0) 220 - mini_portile2 (~> 2.2.0) 221 - octokit (4.7.0) 165 + net-ssh (5.2.0) 166 + network_interface (0.0.2) 167 + nexpose (7.2.1) 168 + nokogiri (1.10.4) 169 + mini_portile2 (~> 2.4.0) 170 + octokit (4.14.0) 222 171 sawyer (~> 0.8.0, >= 0.5.3) 223 - openssl-ccm (1.2.1) 172 + openssl-ccm (1.2.2) 224 173 openvas-omp (0.0.4) 225 174 packetfu (1.1.13) 226 175 pcaprub 227 176 patch_finder (1.0.2) 228 - pcaprub (0.12.4) 229 - pdf-reader (2.0.0) 177 + pcaprub (0.13.0) 178 + pdf-reader (2.2.1) 230 179 Ascii85 (~> 1.0.0) 231 180 afm (~> 0.2.1) 232 181 hashery (~> 2.0) 233 182 ruby-rc4 234 183 ttfunk 235 - pg (0.20.0) 184 + pg (0.21.0) 236 185 pg_array_parser (0.0.9) 237 - postgres_ext (3.0.0) 238 - activerecord (>= 4.0.0) 186 + postgres_ext (3.0.1) 187 + activerecord (~> 4.0) 239 188 arel (>= 4.0.1) 240 189 pg_array_parser (~> 0.0.9) 241 - public_suffix (2.0.5) 190 + public_suffix (4.0.1) 242 191 rack (1.6.11) 192 + rack-protection (1.5.5) 193 + rack 243 194 rack-test (0.6.3) 244 195 rack (>= 1.0) 245 196 rails-deprecated_sanitizer (1.0.3) 246 197 activesupport (>= 4.2.0.alpha) 247 - rails-dom-testing (1.0.8) 248 - activesupport (>= 4.2.0.beta, < 5.0) 198 + rails-dom-testing (1.0.9) 199 + activesupport (>= 4.2.0, < 5.0) 249 200 nokogiri (~> 1.6) 250 201 rails-deprecated_sanitizer (>= 1.0.1) 251 - rails-html-sanitizer (1.0.3) 252 - loofah (~> 2.0) 253 - railties (4.2.9) 254 - actionpack (= 4.2.9) 255 - activesupport (= 4.2.9) 202 + rails-html-sanitizer (1.2.0) 203 + loofah (~> 2.2, >= 2.2.2) 204 + railties (4.2.11.1) 205 + actionpack (= 4.2.11.1) 206 + activesupport (= 4.2.11.1) 256 207 rake (>= 0.8.7) 257 208 thor (>= 0.18.1, < 2.0) 258 - rake (12.0.0) 209 + rake (12.3.3) 259 210 rb-readline (0.5.5) 260 - rbnacl (4.0.2) 261 - ffi 262 - rbnacl-libsodium (1.0.13) 263 - rbnacl (>= 3.0.1) 264 - recog (2.1.12) 211 + recog (2.3.2) 265 212 nokogiri 266 - redcarpet (3.4.0) 267 - rex-arch (0.1.11) 213 + redcarpet (3.5.0) 214 + rex-arch (0.1.13) 268 215 rex-text 269 - rex-bin_tools (0.1.4) 216 + rex-bin_tools (0.1.6) 270 217 metasm 271 218 rex-arch 272 219 rex-core 273 220 rex-struct2 274 221 rex-text 275 - rex-core (0.1.12) 222 + rex-core (0.1.13) 276 223 rex-encoder (0.1.4) 277 224 metasm 278 225 rex-arch 279 226 rex-text 280 - rex-exploitation (0.1.14) 227 + rex-exploitation (0.1.21) 281 228 jsobfu 282 229 metasm 283 230 rex-arch ··· 289 238 rex-arch 290 239 rex-ole (0.1.6) 291 240 rex-text 292 - rex-powershell (0.1.72) 241 + rex-powershell (0.1.82) 293 242 rex-random_identifier 294 243 rex-text 295 - rex-random_identifier (0.1.2) 244 + rex-random_identifier (0.1.4) 296 245 rex-text 297 246 rex-registry (0.1.3) 298 247 rex-rop_builder (0.1.3) 299 248 metasm 300 249 rex-core 301 250 rex-text 302 - rex-socket (0.1.8) 251 + rex-socket (0.1.17) 303 252 rex-core 304 253 rex-sslscan (0.1.5) 305 254 rex-core 306 255 rex-socket 307 256 rex-text 308 257 rex-struct2 (0.1.2) 309 - rex-text (0.2.15) 258 + rex-text (0.2.23) 310 259 rex-zip (0.1.3) 311 260 rex-text 312 261 rkelly-remix (0.0.7) 313 - robots (0.10.1) 262 + ruby-macho (2.2.0) 314 263 ruby-rc4 (0.1.5) 315 - ruby_smb (0.0.18) 264 + ruby_smb (1.1.0) 316 265 bindata 317 266 rubyntlm 318 267 windows_error 319 268 rubyntlm (0.6.2) 320 - rubyzip (1.2.1) 321 - sawyer (0.8.1) 322 - addressable (>= 2.3.5, < 2.6) 323 - faraday (~> 0.8, < 1.0) 324 - sqlite3 (1.3.13) 325 - sshkey (1.9.0) 326 - thor (0.20.0) 269 + rubyzip (1.2.3) 270 + sawyer (0.8.2) 271 + addressable (>= 2.3.5) 272 + faraday (> 0.8, < 2.0) 273 + sinatra (1.4.8) 274 + rack (~> 1.5) 275 + rack-protection (~> 1.4) 276 + tilt (>= 1.3, < 3) 277 + sqlite3 (1.4.1) 278 + sshkey (2.0.0) 279 + thin (1.7.2) 280 + daemons (~> 1.0, >= 1.0.9) 281 + eventmachine (~> 1.0, >= 1.0.4) 282 + rack (>= 1, < 3) 283 + thor (0.20.3) 327 284 thread_safe (0.3.6) 285 + tilt (2.0.9) 328 286 ttfunk (1.5.1) 329 - tzinfo (1.2.3) 287 + tzinfo (1.2.5) 330 288 thread_safe (~> 0.1) 331 - tzinfo-data (1.2017.2) 289 + tzinfo-data (1.2019.2) 332 290 tzinfo (>= 1.0.0) 291 + warden (1.2.7) 292 + rack (>= 1.0) 333 293 windows_error (0.1.2) 334 294 xdr (2.0.0) 335 295 activemodel (>= 4.2.7) ··· 354 292 metasploit-framework! 355 293 356 294 BUNDLED WITH 357 - 1.16.4 295 + 1.17.2
+2 -2
pkgs/tools/security/metasploit/default.nix
··· 17 17 }; 18 18 in stdenv.mkDerivation rec { 19 19 pname = "metasploit-framework"; 20 - version = "4.16.1"; 20 + version = "5.0.45"; 21 21 22 22 src = fetchFromGitHub { 23 23 owner = "rapid7"; 24 24 repo = "metasploit-framework"; 25 25 rev = version; 26 - sha256 = "1vilyy0dqzp8kbbpvs2zrv2ac7s39w2vv7mrbzgcjgh2bj7c6bg1"; 26 + sha256 = "16jl3fkfbwl4wwbj2zrq9yr8y8brkhj9641hplc8idv8gaqkgmm5"; 27 27 }; 28 28 29 29 buildInputs = [ makeWrapper ];
+622 -187
pkgs/tools/security/metasploit/gemset.nix
··· 1 1 { 2 2 actionpack = { 3 3 dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; 4 + groups = ["default"]; 5 + platforms = []; 4 6 source = { 5 7 remotes = ["https://rubygems.org"]; 6 - sha256 = "1kgrq74gp2czzxr0f2sqrc98llz03lgq498300z2z5n4khgznwc4"; 8 + sha256 = "0rmldsk3a4lwxk0lrp6x1nz1v1r2xmbm3300l4ghgfygv3grdwjh"; 7 9 type = "gem"; 8 10 }; 9 - version = "4.2.9"; 11 + version = "4.2.11.1"; 10 12 }; 11 13 actionview = { 12 14 dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"]; 15 + groups = ["default"]; 16 + platforms = []; 13 17 source = { 14 18 remotes = ["https://rubygems.org"]; 15 - sha256 = "04kgp4gmahw31miz8xdq1pns14qmvvzd14fgfv7fg9klkw3bxyyp"; 19 + sha256 = "0x7vjn8q6blzyf7j3kwg0ciy7vnfh28bjdkd1mp9k4ghp9jn0g9p"; 16 20 type = "gem"; 17 21 }; 18 - version = "4.2.9"; 22 + version = "4.2.11.1"; 19 23 }; 20 24 activemodel = { 21 25 dependencies = ["activesupport" "builder"]; 26 + groups = ["default"]; 27 + platforms = []; 22 28 source = { 23 29 remotes = ["https://rubygems.org"]; 24 - sha256 = "1qxmivny0ka5s3iyap08sn9bp2bd9wrhqp2njfw26hr9wsjk5kfv"; 30 + sha256 = "1c1x0rd6wnk1f0gsmxs6x3gx7yf6fs9qqkdv7r4hlbcdd849in33"; 25 31 type = "gem"; 26 32 }; 27 - version = "4.2.9"; 33 + version = "4.2.11.1"; 28 34 }; 29 35 activerecord = { 30 36 dependencies = ["activemodel" "activesupport" "arel"]; 37 + groups = ["default"]; 38 + platforms = []; 31 39 source = { 32 40 remotes = ["https://rubygems.org"]; 33 - sha256 = "18i790dfhi4ndypd1pj9pv08knpxr2sayvvwfq7axj5jfwgpmrqb"; 41 + sha256 = "07ixiwi0zzs9skqarvpfamsnay7npfswymrn28ngxaf8hi279q5p"; 34 42 type = "gem"; 35 43 }; 36 - version = "4.2.9"; 44 + version = "4.2.11.1"; 37 45 }; 38 46 activesupport = { 39 47 dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; 48 + groups = ["default"]; 49 + platforms = []; 40 50 source = { 41 51 remotes = ["https://rubygems.org"]; 42 - sha256 = "1d0a362p3m2m2kljichar2pwq0qm4vblc3njy1rdzm09ckzd45sp"; 52 + sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6"; 43 53 type = "gem"; 44 54 }; 45 - version = "4.2.9"; 55 + version = "4.2.11.1"; 46 56 }; 47 57 addressable = { 48 58 dependencies = ["public_suffix"]; 59 + groups = ["default"]; 60 + platforms = []; 49 61 source = { 50 62 remotes = ["https://rubygems.org"]; 51 - sha256 = "1i8q32a4gr0zghxylpyy7jfqwxvwrivsxflg9mks6kx92frh75mh"; 63 + sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; 52 64 type = "gem"; 53 65 }; 54 - version = "2.5.1"; 66 + version = "2.7.0"; 55 67 }; 56 68 afm = { 69 + groups = ["default"]; 70 + platforms = []; 57 71 source = { 58 72 remotes = ["https://rubygems.org"]; 59 73 sha256 = "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8"; ··· 76 62 version = "0.2.2"; 77 63 }; 78 64 arel = { 65 + groups = ["default"]; 66 + platforms = []; 79 67 source = { 80 68 remotes = ["https://rubygems.org"]; 81 69 sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4"; ··· 87 71 }; 88 72 arel-helpers = { 89 73 dependencies = ["activerecord"]; 74 + groups = ["default"]; 75 + platforms = []; 90 76 source = { 91 77 remotes = ["https://rubygems.org"]; 92 - sha256 = "1sx4qbzhld3a99175p2krz3hv1npc42rv3sd8x4awzkgplg3zy9c"; 78 + sha256 = "0lb52rd20ix7khh70vrwd85qivir9sis62s055k3zr5h9iy3lyqi"; 93 79 type = "gem"; 94 80 }; 95 - version = "2.4.0"; 81 + version = "2.10.0"; 96 82 }; 97 83 Ascii85 = { 84 + groups = ["default"]; 85 + platforms = []; 98 86 source = { 99 87 remotes = ["https://rubygems.org"]; 100 - sha256 = "0j95sbxd18kc8rhcnvl1w37kflqpax1r12h1x47gh4xxn3mz4m7q"; 88 + sha256 = "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs"; 101 89 type = "gem"; 102 90 }; 103 - version = "1.0.2"; 91 + version = "1.0.3"; 92 + }; 93 + aws-eventstream = { 94 + groups = ["default"]; 95 + platforms = []; 96 + source = { 97 + remotes = ["https://rubygems.org"]; 98 + sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6"; 99 + type = "gem"; 100 + }; 101 + version = "1.0.3"; 102 + }; 103 + aws-partitions = { 104 + groups = ["default"]; 105 + platforms = []; 106 + source = { 107 + remotes = ["https://rubygems.org"]; 108 + sha256 = "0vkjw8cxssfwplrcl593gp4jxxiajihb8gqmpgzyac8i3xigpacb"; 109 + type = "gem"; 110 + }; 111 + version = "1.208.0"; 112 + }; 113 + aws-sdk-core = { 114 + dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"]; 115 + groups = ["default"]; 116 + platforms = []; 117 + source = { 118 + remotes = ["https://rubygems.org"]; 119 + sha256 = "18h35j7wp7n6zc5r6dpixjcyjshqmpkhwph9qgpv2g0db37zlxyk"; 120 + type = "gem"; 121 + }; 122 + version = "3.66.0"; 123 + }; 124 + aws-sdk-ec2 = { 125 + dependencies = ["aws-sdk-core" "aws-sigv4"]; 126 + groups = ["default"]; 127 + platforms = []; 128 + source = { 129 + remotes = ["https://rubygems.org"]; 130 + sha256 = "1sb04blmc0lgdgq909cj8cm63zl2idgc5mcysj6cg4rvm8699ahp"; 131 + type = "gem"; 132 + }; 133 + version = "1.106.0"; 134 + }; 135 + aws-sdk-iam = { 136 + dependencies = ["aws-sdk-core" "aws-sigv4"]; 137 + groups = ["default"]; 138 + platforms = []; 139 + source = { 140 + remotes = ["https://rubygems.org"]; 141 + sha256 = "1ypv1cmmrc496myllqd8dqz422qm1i0bhskkvqb9b2lbagmzr3l9"; 142 + type = "gem"; 143 + }; 144 + version = "1.29.0"; 145 + }; 146 + aws-sdk-kms = { 147 + dependencies = ["aws-sdk-core" "aws-sigv4"]; 148 + groups = ["default"]; 149 + platforms = []; 150 + source = { 151 + remotes = ["https://rubygems.org"]; 152 + sha256 = "14blvvfz67rhffi4ahby50jiip5f0hm85mcxlx6y93g0cfrnxh3m"; 153 + type = "gem"; 154 + }; 155 + version = "1.24.0"; 156 + }; 157 + aws-sdk-s3 = { 158 + dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"]; 159 + groups = ["default"]; 160 + platforms = []; 161 + source = { 162 + remotes = ["https://rubygems.org"]; 163 + sha256 = "14iv2wqvvbiz0gdms21i9n6rh8390r1yg4zcf8pzzfplbqfwqw4w"; 164 + type = "gem"; 165 + }; 166 + version = "1.48.0"; 167 + }; 168 + aws-sigv4 = { 169 + dependencies = ["aws-eventstream"]; 170 + groups = ["default"]; 171 + platforms = []; 172 + source = { 173 + remotes = ["https://rubygems.org"]; 174 + sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs"; 175 + type = "gem"; 176 + }; 177 + version = "1.1.0"; 104 178 }; 105 179 backports = { 180 + groups = ["default"]; 181 + platforms = []; 106 182 source = { 107 183 remotes = ["https://rubygems.org"]; 108 - sha256 = "17pcz0z6jms5jydr1r95kf1bpk3ms618hgr26c62h34icy9i1dpm"; 184 + sha256 = "0cczfi1yp7a68bg7ipzi4lvrmi4xsi36n9a19krr4yb3nfwd8fn2"; 109 185 type = "gem"; 110 186 }; 111 - version = "3.8.0"; 187 + version = "3.15.0"; 112 188 }; 113 189 bcrypt = { 190 + groups = ["default"]; 191 + platforms = []; 114 192 source = { 115 193 remotes = ["https://rubygems.org"]; 116 - sha256 = "1d254sdhdj6mzak3fb5x3jam8b94pvl1srladvs53j05a89j5z50"; 194 + sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy"; 117 195 type = "gem"; 118 196 }; 119 - version = "3.1.11"; 197 + version = "3.1.12"; 120 198 }; 121 199 bcrypt_pbkdf = { 200 + groups = ["default"]; 201 + platforms = []; 122 202 source = { 123 203 remotes = ["https://rubygems.org"]; 124 - sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv"; 204 + sha256 = "02vssr285m7kpsr47jdmzbar1h1d0mnkmyrpr1zg828isfmwii35"; 125 205 type = "gem"; 126 206 }; 127 - version = "1.0.0"; 207 + version = "1.0.1"; 128 208 }; 129 209 bindata = { 210 + groups = ["default"]; 211 + platforms = []; 130 212 source = { 131 213 remotes = ["https://rubygems.org"]; 132 - sha256 = "10sii2chgnkp2jw830sbr2wb20p8p1wcwrl9jhadkw94f505qcyg"; 214 + sha256 = "0kz42nvxnk1j9cj0i8lcnhprcgdqsqska92g6l19ziadydfk2gqy"; 133 215 type = "gem"; 134 216 }; 135 - version = "2.4.0"; 217 + version = "2.4.4"; 136 218 }; 137 219 bit-struct = { 220 + groups = ["default"]; 221 + platforms = []; 138 222 source = { 139 223 remotes = ["https://rubygems.org"]; 140 224 sha256 = "1w7x1fh4a6inpb46imhdf4xrq0z4d6zdpg7sdf8n98pif2hx50sx"; ··· 243 127 version = "0.16"; 244 128 }; 245 129 builder = { 130 + groups = ["default"]; 131 + platforms = []; 246 132 source = { 247 133 remotes = ["https://rubygems.org"]; 248 134 sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; ··· 252 134 }; 253 135 version = "3.2.3"; 254 136 }; 255 - dnsruby = { 137 + concurrent-ruby = { 138 + groups = ["default"]; 139 + platforms = []; 256 140 source = { 257 141 remotes = ["https://rubygems.org"]; 258 - sha256 = "0qfvpkka69f8vnmda3zhkr54fjpf7pwgmbx0gcsxg3jd6c7sjs1d"; 142 + sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"; 259 143 type = "gem"; 260 144 }; 261 - version = "1.60.2"; 145 + version = "1.0.5"; 146 + }; 147 + cookiejar = { 148 + groups = ["default"]; 149 + platforms = []; 150 + source = { 151 + remotes = ["https://rubygems.org"]; 152 + sha256 = "0q0kmbks9l3hl0wdq744hzy97ssq9dvlzywyqv9k9y1p3qc9va2a"; 153 + type = "gem"; 154 + }; 155 + version = "0.3.3"; 156 + }; 157 + crass = { 158 + groups = ["default"]; 159 + platforms = []; 160 + source = { 161 + remotes = ["https://rubygems.org"]; 162 + sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi"; 163 + type = "gem"; 164 + }; 165 + version = "1.0.4"; 166 + }; 167 + daemons = { 168 + groups = ["default"]; 169 + platforms = []; 170 + source = { 171 + remotes = ["https://rubygems.org"]; 172 + sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w"; 173 + type = "gem"; 174 + }; 175 + version = "1.3.1"; 176 + }; 177 + dnsruby = { 178 + dependencies = ["addressable"]; 179 + groups = ["default"]; 180 + platforms = []; 181 + source = { 182 + remotes = ["https://rubygems.org"]; 183 + sha256 = "139cbl2k934q7d50g7hi8r4im69ca3iv16y9plq9yc6mgjq1cgfk"; 184 + type = "gem"; 185 + }; 186 + version = "1.61.3"; 187 + }; 188 + ed25519 = { 189 + groups = ["default"]; 190 + platforms = []; 191 + source = { 192 + remotes = ["https://rubygems.org"]; 193 + sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw"; 194 + type = "gem"; 195 + }; 196 + version = "1.2.4"; 197 + }; 198 + em-http-request = { 199 + dependencies = ["addressable" "cookiejar" "em-socksify" "eventmachine" "http_parser.rb"]; 200 + groups = ["default"]; 201 + platforms = []; 202 + source = { 203 + remotes = ["https://rubygems.org"]; 204 + sha256 = "13rxmbi0fv91n4sg300v3i9iiwd0jxv0i6xd0sp81dx3jlx7kasx"; 205 + type = "gem"; 206 + }; 207 + version = "1.1.5"; 208 + }; 209 + em-socksify = { 210 + dependencies = ["eventmachine"]; 211 + groups = ["default"]; 212 + platforms = []; 213 + source = { 214 + remotes = ["https://rubygems.org"]; 215 + sha256 = "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk"; 216 + type = "gem"; 217 + }; 218 + version = "0.3.2"; 262 219 }; 263 220 erubis = { 221 + groups = ["default"]; 222 + platforms = []; 264 223 source = { 265 224 remotes = ["https://rubygems.org"]; 266 225 sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; ··· 345 150 }; 346 151 version = "2.7.0"; 347 152 }; 153 + eventmachine = { 154 + groups = ["default"]; 155 + platforms = []; 156 + source = { 157 + remotes = ["https://rubygems.org"]; 158 + sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r"; 159 + type = "gem"; 160 + }; 161 + version = "1.2.7"; 162 + }; 163 + faker = { 164 + dependencies = ["i18n"]; 165 + groups = ["default"]; 166 + platforms = []; 167 + source = { 168 + remotes = ["https://rubygems.org"]; 169 + sha256 = "1wpzpqzpqd9jjzm3ap8182sfbnhdahcxpbg0dssbwq13qdf1s5xs"; 170 + type = "gem"; 171 + }; 172 + version = "2.2.1"; 173 + }; 348 174 faraday = { 349 175 dependencies = ["multipart-post"]; 176 + groups = ["default"]; 177 + platforms = []; 350 178 source = { 351 179 remotes = ["https://rubygems.org"]; 352 - sha256 = "1gyqsj7vlqynwvivf9485zwmcj04v1z7gq362z0b8zw2zf4ag0hw"; 180 + sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0"; 353 181 type = "gem"; 354 182 }; 355 - version = "0.13.1"; 356 - }; 357 - ffi = { 358 - source = { 359 - remotes = ["https://rubygems.org"]; 360 - sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"; 361 - type = "gem"; 362 - }; 363 - version = "1.9.18"; 183 + version = "0.15.4"; 364 184 }; 365 185 filesize = { 186 + groups = ["default"]; 187 + platforms = []; 366 188 source = { 367 189 remotes = ["https://rubygems.org"]; 368 - sha256 = "061qmg82mm9xnmnq3b7gbi24g28xk62w0b0nw86gybd07m1jn989"; 190 + sha256 = "17p7rf1x7h3ivaznb4n4kmxnnzj25zaviryqgn2n12v2kmibhp8g"; 369 191 type = "gem"; 370 192 }; 371 - version = "0.1.1"; 193 + version = "0.2.0"; 372 194 }; 373 195 hashery = { 196 + groups = ["default"]; 197 + platforms = []; 374 198 source = { 375 199 remotes = ["https://rubygems.org"]; 376 200 sha256 = "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj"; ··· 397 183 }; 398 184 version = "2.1.2"; 399 185 }; 400 - i18n = { 186 + "http_parser.rb" = { 187 + groups = ["default"]; 188 + platforms = []; 401 189 source = { 402 190 remotes = ["https://rubygems.org"]; 403 - sha256 = "1i3aqvzfsj786kwjj70jsjpxm6ffw5pwhalzr2abjfv2bdc7k9kw"; 191 + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; 404 192 type = "gem"; 405 193 }; 406 - version = "0.8.6"; 194 + version = "0.6.0"; 195 + }; 196 + i18n = { 197 + dependencies = ["concurrent-ruby"]; 198 + groups = ["default"]; 199 + platforms = []; 200 + source = { 201 + remotes = ["https://rubygems.org"]; 202 + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; 203 + type = "gem"; 204 + }; 205 + version = "0.9.5"; 206 + }; 207 + jmespath = { 208 + groups = ["default"]; 209 + platforms = []; 210 + source = { 211 + remotes = ["https://rubygems.org"]; 212 + sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf"; 213 + type = "gem"; 214 + }; 215 + version = "1.4.0"; 407 216 }; 408 217 jsobfu = { 409 218 dependencies = ["rkelly-remix"]; 219 + groups = ["default"]; 220 + platforms = []; 410 221 source = { 411 222 remotes = ["https://rubygems.org"]; 412 223 sha256 = "1hchns89cfj0gggm2zbr7ghb630imxm2x2d21ffx2jlasn9xbkyk"; ··· 440 201 version = "0.4.2"; 441 202 }; 442 203 json = { 204 + groups = ["default"]; 205 + platforms = []; 443 206 source = { 444 207 remotes = ["https://rubygems.org"]; 445 - sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp"; 208 + sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx"; 446 209 type = "gem"; 447 210 }; 448 - version = "2.1.0"; 211 + version = "2.2.0"; 449 212 }; 450 213 loofah = { 451 - dependencies = ["nokogiri"]; 214 + dependencies = ["crass" "nokogiri"]; 215 + groups = ["default"]; 216 + platforms = []; 452 217 source = { 453 218 remotes = ["https://rubygems.org"]; 454 - sha256 = "109ps521p0sr3kgc460d58b4pr1z4mqggan2jbsf0aajy9s6xis8"; 219 + sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg"; 455 220 type = "gem"; 456 221 }; 457 - version = "2.0.3"; 222 + version = "2.2.3"; 458 223 }; 459 224 metasm = { 225 + groups = ["default"]; 226 + platforms = []; 460 227 source = { 461 228 remotes = ["https://rubygems.org"]; 462 - sha256 = "0gss57q4lv6l0jkih77zffrpjjzgkdcsy7b9nvvawyzknis9w4s5"; 229 + sha256 = "0mbmpc8vsi574s78f23bhiqk07sr6yrrrmk702lfv61ql4ah5l89"; 463 230 type = "gem"; 464 231 }; 465 - version = "1.0.3"; 232 + version = "1.0.4"; 466 233 }; 467 234 metasploit-concern = { 468 235 dependencies = ["activemodel" "activesupport" "railties"]; 236 + groups = ["default"]; 237 + platforms = []; 469 238 source = { 470 239 remotes = ["https://rubygems.org"]; 471 240 sha256 = "0v9lm225fhzhnbjcc0vwb38ybikxwzlv8116rrrkndzs8qy79297"; ··· 482 235 version = "2.0.5"; 483 236 }; 484 237 metasploit-credential = { 485 - dependencies = ["metasploit-concern" "metasploit-model" "metasploit_data_models" "pg" "railties" "rex-socket" "rubyntlm" "rubyzip"]; 238 + dependencies = ["metasploit-concern" "metasploit-model" "metasploit_data_models" "net-ssh" "pg" "railties" "rex-socket" "rubyntlm" "rubyzip"]; 239 + groups = ["default"]; 240 + platforms = []; 486 241 source = { 487 242 remotes = ["https://rubygems.org"]; 488 - sha256 = "1flahrcl5hf4bncqs40mry6pkffvmir85kqzkad22x3dh6crw50i"; 243 + sha256 = "0m6j149x502p00y2jzra65281dhhw3m8a41pwfn1sk9wv7aiclvl"; 489 244 type = "gem"; 490 245 }; 491 - version = "2.0.12"; 246 + version = "3.0.3"; 492 247 }; 493 248 metasploit-framework = { 494 - dependencies = ["actionpack" "activerecord" "activesupport" "backports" "bcrypt" "bcrypt_pbkdf" "bit-struct" "dnsruby" "filesize" "jsobfu" "json" "metasm" "metasploit-concern" "metasploit-credential" "metasploit-model" "metasploit-payloads" "metasploit_data_models" "metasploit_payloads-mettle" "msgpack" "nessus_rest" "net-ssh" "network_interface" "nexpose" "nokogiri" "octokit" "openssl-ccm" "openvas-omp" "packetfu" "patch_finder" "pcaprub" "pdf-reader" "pg" "railties" "rb-readline" "rbnacl" "rbnacl-libsodium" "recog" "redcarpet" "rex-arch" "rex-bin_tools" "rex-core" "rex-encoder" "rex-exploitation" "rex-java" "rex-mime" "rex-nop" "rex-ole" "rex-powershell" "rex-random_identifier" "rex-registry" "rex-rop_builder" "rex-socket" "rex-sslscan" "rex-struct2" "rex-text" "rex-zip" "robots" "ruby_smb" "rubyntlm" "rubyzip" "sqlite3" "sshkey" "tzinfo" "tzinfo-data" "windows_error" "xdr" "xmlrpc"]; 249 + dependencies = ["actionpack" "activerecord" "activesupport" "aws-sdk-ec2" "aws-sdk-iam" "aws-sdk-s3" "backports" "bcrypt" "bcrypt_pbkdf" "bit-struct" "concurrent-ruby" "dnsruby" "ed25519" "em-http-request" "faker" "filesize" "jsobfu" "json" "metasm" "metasploit-concern" "metasploit-credential" "metasploit-model" "metasploit-payloads" "metasploit_data_models" "metasploit_payloads-mettle" "mqtt" "msgpack" "nessus_rest" "net-ssh" "network_interface" "nexpose" "nokogiri" "octokit" "openssl-ccm" "openvas-omp" "packetfu" "patch_finder" "pcaprub" "pdf-reader" "pg" "railties" "rb-readline" "recog" "redcarpet" "rex-arch" "rex-bin_tools" "rex-core" "rex-encoder" "rex-exploitation" "rex-java" "rex-mime" "rex-nop" "rex-ole" "rex-powershell" "rex-random_identifier" "rex-registry" "rex-rop_builder" "rex-socket" "rex-sslscan" "rex-struct2" "rex-text" "rex-zip" "ruby-macho" "ruby_smb" "rubyntlm" "rubyzip" "sinatra" "sqlite3" "sshkey" "thin" "tzinfo" "tzinfo-data" "warden" "windows_error" "xdr" "xmlrpc"]; 250 + groups = ["default"]; 251 + platforms = []; 495 252 source = { 496 253 fetchSubmodules = false; 497 - rev = "dbec1c2d2ae4bd77276cbfb3c6ee2902048b9453"; 498 - sha256 = "06a2dc64wl8w02zimf44hch4cap7ckw42kg1x01lmcwaa8d5q09w"; 254 + rev = "2b9e74c7a8a4423ea195e75abca1f56c354e5541"; 255 + sha256 = "16jl3fkfbwl4wwbj2zrq9yr8y8brkhj9641hplc8idv8gaqkgmm5"; 499 256 type = "git"; 500 257 url = "https://github.com/rapid7/metasploit-framework"; 501 258 }; 502 - version = "4.16.1"; 259 + version = "5.0.45"; 503 260 }; 504 261 metasploit-model = { 505 262 dependencies = ["activemodel" "activesupport" "railties"]; 263 + groups = ["default"]; 264 + platforms = []; 506 265 source = { 507 266 remotes = ["https://rubygems.org"]; 508 267 sha256 = "05pnai1cv00xw87rrz38dz4s3ss45s90290d0knsy1mq6rp8yvmw"; ··· 517 264 version = "2.0.4"; 518 265 }; 519 266 metasploit-payloads = { 267 + groups = ["default"]; 268 + platforms = []; 520 269 source = { 521 270 remotes = ["https://rubygems.org"]; 522 - sha256 = "0icha08z4c5rnyp66xcyn9c8lbv43gx7hgs9rsm3539gj8c40znx"; 271 + sha256 = "01s3xmgw4fp2ic0wql8lswa86q3lgr3z687idx3xkfii3dskjpp3"; 272 + type = "gem"; 273 + }; 274 + version = "1.3.70"; 275 + }; 276 + metasploit_data_models = { 277 + dependencies = ["activerecord" "activesupport" "arel-helpers" "metasploit-concern" "metasploit-model" "pg" "postgres_ext" "railties" "recog"]; 278 + groups = ["default"]; 279 + platforms = []; 280 + source = { 281 + remotes = ["https://rubygems.org"]; 282 + sha256 = "1h59lblfrx8gsnqr10wk958zp6rsjy3qib3hb87s3nm6m1zhm2bc"; 283 + type = "gem"; 284 + }; 285 + version = "3.0.10"; 286 + }; 287 + metasploit_payloads-mettle = { 288 + groups = ["default"]; 289 + platforms = []; 290 + source = { 291 + remotes = ["https://rubygems.org"]; 292 + sha256 = "1x2rgs2r16m8z87j5z78vp49xvr2sr4dxjgbi6d0nxrlr52pd8yf"; 293 + type = "gem"; 294 + }; 295 + version = "0.5.16"; 296 + }; 297 + mini_portile2 = { 298 + groups = ["default"]; 299 + platforms = []; 300 + source = { 301 + remotes = ["https://rubygems.org"]; 302 + sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; 303 + type = "gem"; 304 + }; 305 + version = "2.4.0"; 306 + }; 307 + minitest = { 308 + groups = ["default"]; 309 + platforms = []; 310 + source = { 311 + remotes = ["https://rubygems.org"]; 312 + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; 313 + type = "gem"; 314 + }; 315 + version = "5.11.3"; 316 + }; 317 + mqtt = { 318 + groups = ["default"]; 319 + platforms = []; 320 + source = { 321 + remotes = ["https://rubygems.org"]; 322 + sha256 = "0d1khsry5mf63y03r6v91f4vrbn88277ksv7d69z3xmqs9sgpri9"; 323 + type = "gem"; 324 + }; 325 + version = "0.5.0"; 326 + }; 327 + msgpack = { 328 + groups = ["default"]; 329 + platforms = []; 330 + source = { 331 + remotes = ["https://rubygems.org"]; 332 + sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1"; 523 333 type = "gem"; 524 334 }; 525 335 version = "1.3.1"; 526 336 }; 527 - metasploit_data_models = { 528 - dependencies = ["activerecord" "activesupport" "arel-helpers" "metasploit-concern" "metasploit-model" "pg" "postgres_ext" "railties" "recog"]; 529 - source = { 530 - remotes = ["https://rubygems.org"]; 531 - sha256 = "0j3ijxn6n3ack9572a74cwknijymy41c8rx34njyhg25lx4hbvah"; 532 - type = "gem"; 533 - }; 534 - version = "2.0.15"; 535 - }; 536 - metasploit_payloads-mettle = { 537 - source = { 538 - remotes = ["https://rubygems.org"]; 539 - sha256 = "1y2nfzgs17pq3xvlw14jgjcksr4h8p4miypxk9a87l1h7xv7dcgn"; 540 - type = "gem"; 541 - }; 542 - version = "0.2.0"; 543 - }; 544 - mini_portile2 = { 545 - source = { 546 - remotes = ["https://rubygems.org"]; 547 - sha256 = "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm"; 548 - type = "gem"; 549 - }; 550 - version = "2.2.0"; 551 - }; 552 - minitest = { 553 - source = { 554 - remotes = ["https://rubygems.org"]; 555 - sha256 = "05521clw19lrksqgvg2kmm025pvdhdaniix52vmbychrn2jm7kz2"; 556 - type = "gem"; 557 - }; 558 - version = "5.10.3"; 559 - }; 560 - msgpack = { 561 - source = { 562 - remotes = ["https://rubygems.org"]; 563 - sha256 = "0ck7w17d6b4jbb8inh1q57bghi9cjkiaxql1d3glmj1yavbpmlh7"; 564 - type = "gem"; 565 - }; 566 - version = "1.1.0"; 567 - }; 568 337 multipart-post = { 338 + groups = ["default"]; 339 + platforms = []; 569 340 source = { 570 341 remotes = ["https://rubygems.org"]; 571 - sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; 342 + sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj"; 572 343 type = "gem"; 573 344 }; 574 - version = "2.0.0"; 345 + version = "2.1.1"; 575 346 }; 576 347 nessus_rest = { 348 + groups = ["default"]; 349 + platforms = []; 577 350 source = { 578 351 remotes = ["https://rubygems.org"]; 579 352 sha256 = "1allyrd4rll333zbmsi3hcyg6cw1dhc4bg347ibsw191nswnp8ci"; ··· 608 329 version = "0.1.6"; 609 330 }; 610 331 net-ssh = { 332 + groups = ["default"]; 333 + platforms = []; 611 334 source = { 612 335 remotes = ["https://rubygems.org"]; 613 - sha256 = "013p5jb4wy0cq7x7036piw2a3s1i9p752ki1srx2m289mpz4ml3q"; 336 + sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40"; 614 337 type = "gem"; 615 338 }; 616 - version = "4.1.0"; 339 + version = "5.2.0"; 617 340 }; 618 341 network_interface = { 342 + groups = ["default"]; 343 + platforms = []; 619 344 source = { 620 345 remotes = ["https://rubygems.org"]; 621 - sha256 = "0ir4c1vbz1y0gxyih024262i7ig1nji1lkylcrn9pjzx3798p97a"; 346 + sha256 = "1xh4knfq77ii4pjzsd2z1p3nd6nrcdjhb2vi5gw36jqj43ffw0zp"; 622 347 type = "gem"; 623 348 }; 624 - version = "0.0.1"; 349 + version = "0.0.2"; 625 350 }; 626 351 nexpose = { 352 + groups = ["default"]; 353 + platforms = []; 627 354 source = { 628 355 remotes = ["https://rubygems.org"]; 629 - sha256 = "0jnyvj09z8r3chhj930fdnashbfcfv0vw2drjvsrcnm7firdhdzb"; 356 + sha256 = "0i108glkklwgjxhfhnlqf4b16plqf9b84qpfz0pnl2pbnal5af8m"; 630 357 type = "gem"; 631 358 }; 632 - version = "6.1.1"; 359 + version = "7.2.1"; 633 360 }; 634 361 nokogiri = { 635 362 dependencies = ["mini_portile2"]; 363 + groups = ["default"]; 364 + platforms = []; 636 365 source = { 637 366 remotes = ["https://rubygems.org"]; 638 - sha256 = "1nffsyx1xjg6v5n9rrbi8y1arrcx2i5f21cp6clgh9iwiqkr7rnn"; 367 + sha256 = "0nmdrqqz1gs0fwkgzxjl4wr554gr8dc1fkrqjc2jpsvwgm41rygv"; 639 368 type = "gem"; 640 369 }; 641 - version = "1.8.0"; 370 + version = "1.10.4"; 642 371 }; 643 372 octokit = { 644 373 dependencies = ["sawyer"]; 374 + groups = ["default"]; 375 + platforms = []; 645 376 source = { 646 377 remotes = ["https://rubygems.org"]; 647 - sha256 = "0h6cm7bi0y7ysjgwws3paaipqdld6c0m0niazrjahhpz88qqq1g4"; 378 + sha256 = "1w7agbfg39jzqk81yad9xhscg31869277ysr2iwdvpjafl5lj4ha"; 648 379 type = "gem"; 649 380 }; 650 - version = "4.7.0"; 381 + version = "4.14.0"; 651 382 }; 652 383 openssl-ccm = { 384 + groups = ["default"]; 385 + platforms = []; 653 386 source = { 654 387 remotes = ["https://rubygems.org"]; 655 - sha256 = "18h5lxv0zh4j2f0wnhdmfz63x02vbzbq2k1clz6kzr0q83h8kj9c"; 388 + sha256 = "0gxwxk657jya2s5m8cpckvgy5m7qx0hzfp8xvc0hg2wf1lg5gwp0"; 656 389 type = "gem"; 657 390 }; 658 - version = "1.2.1"; 391 + version = "1.2.2"; 659 392 }; 660 393 openvas-omp = { 394 + groups = ["default"]; 395 + platforms = []; 661 396 source = { 662 397 remotes = ["https://rubygems.org"]; 663 398 sha256 = "14xf614vd76qjdjxjv14mmjar6s64fwp4cwb7bv5g1wc29srg28x"; ··· 681 388 }; 682 389 packetfu = { 683 390 dependencies = ["pcaprub"]; 391 + groups = ["default"]; 392 + platforms = []; 684 393 source = { 685 394 remotes = ["https://rubygems.org"]; 686 395 sha256 = "16ppq9wfxq4x2hss61l5brs3s6fmi8gb50mnp1nnnzb1asq4g8ll"; ··· 691 396 version = "1.1.13"; 692 397 }; 693 398 patch_finder = { 399 + groups = ["default"]; 400 + platforms = []; 694 401 source = { 695 402 remotes = ["https://rubygems.org"]; 696 403 sha256 = "1md9scls55n1riw26vw1ak0ajq38dfygr36l0h00wqhv51cq745m"; ··· 701 404 version = "1.0.2"; 702 405 }; 703 406 pcaprub = { 407 + groups = ["default"]; 408 + platforms = []; 704 409 source = { 705 410 remotes = ["https://rubygems.org"]; 706 - sha256 = "0pl4lqy7308185pfv0197n8b4v20fhd0zb3wlpz284rk8ssclkvz"; 411 + sha256 = "0h4iarqdych6v4jm5s0ywkc01qspadz8sf6qn7pkqmszq4iqv67q"; 707 412 type = "gem"; 708 413 }; 709 - version = "0.12.4"; 414 + version = "0.13.0"; 710 415 }; 711 416 pdf-reader = { 712 417 dependencies = ["Ascii85" "afm" "hashery" "ruby-rc4" "ttfunk"]; 418 + groups = ["default"]; 419 + platforms = []; 713 420 source = { 714 421 remotes = ["https://rubygems.org"]; 715 - sha256 = "0nlammdpjy3padmzxhsql7mw31jyqp88n6bdffiarv5kzl4s3y7p"; 422 + sha256 = "14lqdbiwn2qwgbvnnzxg7haqiy026d8x37hp45c3m9jb9rym92ps"; 716 423 type = "gem"; 717 424 }; 718 - version = "2.0.0"; 425 + version = "2.2.1"; 719 426 }; 720 427 pg = { 428 + groups = ["default"]; 429 + platforms = []; 721 430 source = { 722 431 remotes = ["https://rubygems.org"]; 723 - sha256 = "03xcgwjs6faxis81jxf2plnlalg55dhhafqv3kvjxfr8ic7plpw5"; 432 + sha256 = "00vhasqwc4f98qb4wxqn2h07fjwzhp5lwyi41j2gndi2g02wrdqh"; 724 433 type = "gem"; 725 434 }; 726 - version = "0.20.0"; 435 + version = "0.21.0"; 727 436 }; 728 437 pg_array_parser = { 438 + groups = ["default"]; 439 + platforms = []; 729 440 source = { 730 441 remotes = ["https://rubygems.org"]; 731 442 sha256 = "1034dhg8h53j48sfm373js54skg4vpndjga6hzn2zylflikrrf3s"; ··· 743 438 }; 744 439 postgres_ext = { 745 440 dependencies = ["activerecord" "arel" "pg_array_parser"]; 441 + groups = ["default"]; 442 + platforms = []; 746 443 source = { 747 444 remotes = ["https://rubygems.org"]; 748 - sha256 = "1lbp1qf5s1addhznm7d4bzks9adh7jpilgcsr8k7mbd0a1ailcgc"; 445 + sha256 = "0ni1ajzxvc17ba4rgl27cd3645ddbpqpfckv7m08sfgk015hh7dq"; 749 446 type = "gem"; 750 447 }; 751 - version = "3.0.0"; 448 + version = "3.0.1"; 752 449 }; 753 450 public_suffix = { 451 + groups = ["default"]; 452 + platforms = []; 754 453 source = { 755 454 remotes = ["https://rubygems.org"]; 756 - sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q"; 455 + sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"; 757 456 type = "gem"; 758 457 }; 759 - version = "2.0.5"; 458 + version = "4.0.1"; 760 459 }; 761 460 rack = { 461 + groups = ["default"]; 462 + platforms = []; 762 463 source = { 763 464 remotes = ["https://rubygems.org"]; 764 465 sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f"; ··· 772 461 }; 773 462 version = "1.6.11"; 774 463 }; 464 + rack-protection = { 465 + dependencies = ["rack"]; 466 + groups = ["default"]; 467 + platforms = []; 468 + source = { 469 + remotes = ["https://rubygems.org"]; 470 + sha256 = "0my0wlw4a5l3hs79jkx2xzv7djhajgf8d28k8ai1ddlnxxb0v7ss"; 471 + type = "gem"; 472 + }; 473 + version = "1.5.5"; 474 + }; 775 475 rack-test = { 776 476 dependencies = ["rack"]; 477 + groups = ["default"]; 478 + platforms = []; 777 479 source = { 778 480 remotes = ["https://rubygems.org"]; 779 481 sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z"; ··· 796 472 }; 797 473 rails-deprecated_sanitizer = { 798 474 dependencies = ["activesupport"]; 475 + groups = ["default"]; 476 + platforms = []; 799 477 source = { 800 478 remotes = ["https://rubygems.org"]; 801 479 sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj"; ··· 807 481 }; 808 482 rails-dom-testing = { 809 483 dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"]; 484 + groups = ["default"]; 485 + platforms = []; 810 486 source = { 811 487 remotes = ["https://rubygems.org"]; 812 - sha256 = "1ny7mbjxhq20rzg4pivvyvk14irmc7cn20kxfk3vc0z2r2c49p8r"; 488 + sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6"; 813 489 type = "gem"; 814 490 }; 815 - version = "1.0.8"; 491 + version = "1.0.9"; 816 492 }; 817 493 rails-html-sanitizer = { 818 494 dependencies = ["loofah"]; 495 + groups = ["default"]; 496 + platforms = []; 819 497 source = { 820 498 remotes = ["https://rubygems.org"]; 821 - sha256 = "138fd86kv073zqfx0xifm646w6bgw2lr8snk16lknrrfrss8xnm7"; 499 + sha256 = "0ilwxzm3a7bql5c9q2n9g9nb1hax7vd8d65a5yp3d967ld97nvrq"; 822 500 type = "gem"; 823 501 }; 824 - version = "1.0.3"; 502 + version = "1.2.0"; 825 503 }; 826 504 railties = { 827 505 dependencies = ["actionpack" "activesupport" "rake" "thor"]; 506 + groups = ["default"]; 507 + platforms = []; 828 508 source = { 829 509 remotes = ["https://rubygems.org"]; 830 - sha256 = "1g5jnk1zllm2fr06lixq7gv8l2cwqc99akv7886gz6lshijpfyxd"; 510 + sha256 = "1bjf21z9maiiazc1if56nnh9xmgbkcqlpznv34f40a1hsvgk1d1m"; 831 511 type = "gem"; 832 512 }; 833 - version = "4.2.9"; 513 + version = "4.2.11.1"; 834 514 }; 835 515 rake = { 516 + groups = ["default"]; 517 + platforms = []; 836 518 source = { 837 519 remotes = ["https://rubygems.org"]; 838 - sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n"; 520 + sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp"; 839 521 type = "gem"; 840 522 }; 841 - version = "12.0.0"; 523 + version = "12.3.3"; 842 524 }; 843 525 rb-readline = { 526 + groups = ["default"]; 527 + platforms = []; 844 528 source = { 845 529 remotes = ["https://rubygems.org"]; 846 530 sha256 = "14w79a121czmvk1s953qfzww30mqjb2zc0k9qhi0ivxxk3hxg6wy"; ··· 858 522 }; 859 523 version = "0.5.5"; 860 524 }; 861 - rbnacl = { 862 - dependencies = ["ffi"]; 863 - source = { 864 - remotes = ["https://rubygems.org"]; 865 - sha256 = "08dkigw8wdx53hviw1zqrs7rcrzqcwh9jd3dvwr72013z9fmyp48"; 866 - type = "gem"; 867 - }; 868 - version = "4.0.2"; 869 - }; 870 - rbnacl-libsodium = { 871 - dependencies = ["rbnacl"]; 872 - source = { 873 - remotes = ["https://rubygems.org"]; 874 - sha256 = "1323fli41m01af13xz5xvabsjnz09si1b9l4qd2p802kq0dr61gd"; 875 - type = "gem"; 876 - }; 877 - version = "1.0.13"; 878 - }; 879 525 recog = { 880 526 dependencies = ["nokogiri"]; 527 + groups = ["default"]; 528 + platforms = []; 881 529 source = { 882 530 remotes = ["https://rubygems.org"]; 883 - sha256 = "0h023ykrrra74bpbibkyg083kafaswvraw4naw9p1ghcjzn9ggj3"; 531 + sha256 = "0kbv0j82zf90sc9hhwna2bkb5zv0nxagk22gxyfy82kjmcz71c6k"; 884 532 type = "gem"; 885 533 }; 886 - version = "2.1.12"; 534 + version = "2.3.2"; 887 535 }; 888 536 redcarpet = { 537 + groups = ["default"]; 538 + platforms = []; 889 539 source = { 890 540 remotes = ["https://rubygems.org"]; 891 - sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; 541 + sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k"; 892 542 type = "gem"; 893 543 }; 894 - version = "3.4.0"; 544 + version = "3.5.0"; 895 545 }; 896 546 rex-arch = { 897 547 dependencies = ["rex-text"]; 548 + groups = ["default"]; 549 + platforms = []; 898 550 source = { 899 551 remotes = ["https://rubygems.org"]; 900 - sha256 = "1izzalmjwdyib8y0xlgys8qb60di6xyjk485ylgh14p47wkyc6yp"; 552 + sha256 = "0cvdy2ysiphdig258lkicbxqq2y47bkl69kgj4kkj8w338rb5kwa"; 901 553 type = "gem"; 902 554 }; 903 - version = "0.1.11"; 555 + version = "0.1.13"; 904 556 }; 905 557 rex-bin_tools = { 906 558 dependencies = ["metasm" "rex-arch" "rex-core" "rex-struct2" "rex-text"]; 559 + groups = ["default"]; 560 + platforms = []; 907 561 source = { 908 562 remotes = ["https://rubygems.org"]; 909 - sha256 = "01hi1cjr68adp47nxbjfprvn0r3b72r4ib82x9j33bf2pny6nvaw"; 563 + sha256 = "19q4cj7cis29k3zx9j2gp4h3ib0zig2fa4rs56c1gjr32f192zzk"; 910 564 type = "gem"; 911 565 }; 912 - version = "0.1.4"; 566 + version = "0.1.6"; 913 567 }; 914 568 rex-core = { 569 + groups = ["default"]; 570 + platforms = []; 915 571 source = { 916 572 remotes = ["https://rubygems.org"]; 917 - sha256 = "16dwf4pw7bpx8xvlv241imxvwhvjfv0cw9kl7ipsv40yazy5lzpk"; 573 + sha256 = "1b9pf7f8m2zjck65dpp8h8v4n0a05kfas6cn9adv0w8d9z58aqvv"; 918 574 type = "gem"; 919 575 }; 920 - version = "0.1.12"; 576 + version = "0.1.13"; 921 577 }; 922 578 rex-encoder = { 923 579 dependencies = ["metasm" "rex-arch" "rex-text"]; 580 + groups = ["default"]; 581 + platforms = []; 924 582 source = { 925 583 remotes = ["https://rubygems.org"]; 926 584 sha256 = "1zm5jdxgyyp8pkfqwin34izpxdrmglx6vmk20ifnvcsm55c9m70z"; ··· 924 594 }; 925 595 rex-exploitation = { 926 596 dependencies = ["jsobfu" "metasm" "rex-arch" "rex-encoder" "rex-text"]; 597 + groups = ["default"]; 598 + platforms = []; 927 599 source = { 928 600 remotes = ["https://rubygems.org"]; 929 - sha256 = "0gbj28jqaaldpk4qzysgcl6m0wcqx3gcldarqdk55p5z9zasrk19"; 601 + sha256 = "0b2jg7mccwc34j9mfpndh7b387723qas38qsd906bs4s8b6hf05c"; 930 602 type = "gem"; 931 603 }; 932 - version = "0.1.14"; 604 + version = "0.1.21"; 933 605 }; 934 606 rex-java = { 607 + groups = ["default"]; 608 + platforms = []; 935 609 source = { 936 610 remotes = ["https://rubygems.org"]; 937 611 sha256 = "0j58k02p5g9snkpak64sb4aymkrvrh9xpqh8wsnya4w7b86w2y6i"; ··· 945 611 }; 946 612 rex-mime = { 947 613 dependencies = ["rex-text"]; 614 + groups = ["default"]; 615 + platforms = []; 948 616 source = { 949 617 remotes = ["https://rubygems.org"]; 950 618 sha256 = "15a14kz429h7pn81ysa6av3qijxjmxagjff6dyss5v394fxzxf4a"; ··· 956 620 }; 957 621 rex-nop = { 958 622 dependencies = ["rex-arch"]; 623 + groups = ["default"]; 624 + platforms = []; 959 625 source = { 960 626 remotes = ["https://rubygems.org"]; 961 627 sha256 = "0aigf9qsqsmiraa6zvfy1a7cyvf7zc3iyhzxi6fjv5sb8f64d6ny"; ··· 967 629 }; 968 630 rex-ole = { 969 631 dependencies = ["rex-text"]; 632 + groups = ["default"]; 633 + platforms = []; 970 634 source = { 971 635 remotes = ["https://rubygems.org"]; 972 636 sha256 = "1pnzbqfnvbs0vc0z0ryszk3fxhgxrjd6gzwqa937rhlphwp5jpww"; ··· 978 638 }; 979 639 rex-powershell = { 980 640 dependencies = ["rex-random_identifier" "rex-text"]; 641 + groups = ["default"]; 642 + platforms = []; 981 643 source = { 982 644 remotes = ["https://rubygems.org"]; 983 - sha256 = "0nl60fdd1rlckk95d3s3y873w84vb0sgwvwxdzv414qxz8icpjnm"; 645 + sha256 = "1fcyiz8cgcv6pcn5w969ac4wwhr1cz6jk6kf6p8gyw5rjrlwfz0j"; 984 646 type = "gem"; 985 647 }; 986 - version = "0.1.72"; 648 + version = "0.1.82"; 987 649 }; 988 650 rex-random_identifier = { 989 651 dependencies = ["rex-text"]; 652 + groups = ["default"]; 653 + platforms = []; 990 654 source = { 991 655 remotes = ["https://rubygems.org"]; 992 - sha256 = "0cksrljaw61mdjvbmj9vqqhd8nra7jv466w5nim47n73rj72jc19"; 656 + sha256 = "0fg94sczff5c2rlvqqgw2dndlqyzjil5rjk3p9f46ss2hc8zxlbk"; 993 657 type = "gem"; 994 658 }; 995 - version = "0.1.2"; 659 + version = "0.1.4"; 996 660 }; 997 661 rex-registry = { 662 + groups = ["default"]; 663 + platforms = []; 998 664 source = { 999 665 remotes = ["https://rubygems.org"]; 1000 666 sha256 = "0wv812ghnz143vx10ixmv32ypj1xrzr4rh4kgam8d8wwjwxsgw1q"; ··· 1010 664 }; 1011 665 rex-rop_builder = { 1012 666 dependencies = ["metasm" "rex-core" "rex-text"]; 667 + groups = ["default"]; 668 + platforms = []; 1013 669 source = { 1014 670 remotes = ["https://rubygems.org"]; 1015 671 sha256 = "0xjd3d6wnbq4ym0d0m268md8fb16f2hbwrahvxnl14q63fj9i3wy"; ··· 1021 673 }; 1022 674 rex-socket = { 1023 675 dependencies = ["rex-core"]; 676 + groups = ["default"]; 677 + platforms = []; 1024 678 source = { 1025 679 remotes = ["https://rubygems.org"]; 1026 - sha256 = "0bkr64qrfy2mcv6cpp2z2rn9npgn9s0yyagzjh7kawbm80ldwf2h"; 680 + sha256 = "136szyv31fcdzmcgs44vg009k3ssyawkqppkhm3xyv2ivpp1mlgv"; 1027 681 type = "gem"; 1028 682 }; 1029 - version = "0.1.8"; 683 + version = "0.1.17"; 1030 684 }; 1031 685 rex-sslscan = { 1032 686 dependencies = ["rex-core" "rex-socket" "rex-text"]; 687 + groups = ["default"]; 688 + platforms = []; 1033 689 source = { 1034 690 remotes = ["https://rubygems.org"]; 1035 691 sha256 = "06gbx45q653ajcx099p0yxdqqxazfznbrqshd4nwiwg1p498lmyx"; ··· 1042 690 version = "0.1.5"; 1043 691 }; 1044 692 rex-struct2 = { 693 + groups = ["default"]; 694 + platforms = []; 1045 695 source = { 1046 696 remotes = ["https://rubygems.org"]; 1047 697 sha256 = "1nbdn53264a20cr2m2nq2v4mg0n33dvrd1jj1sixl37qjzw2k452"; ··· 1052 698 version = "0.1.2"; 1053 699 }; 1054 700 rex-text = { 701 + groups = ["default"]; 702 + platforms = []; 1055 703 source = { 1056 704 remotes = ["https://rubygems.org"]; 1057 - sha256 = "024miva867h4wv4y1lnxxrw2d7p51va32ismxqf3fsz4s9cqc88m"; 705 + sha256 = "0cmfwzd3r6xzhaw5l2grgiivql1yynh620drg8h39q8hiixya6xz"; 1058 706 type = "gem"; 1059 707 }; 1060 - version = "0.2.15"; 708 + version = "0.2.23"; 1061 709 }; 1062 710 rex-zip = { 1063 711 dependencies = ["rex-text"]; 712 + groups = ["default"]; 713 + platforms = []; 1064 714 source = { 1065 715 remotes = ["https://rubygems.org"]; 1066 716 sha256 = "1mbfryyhcw47i7jb8cs8vilbyqgyiyjkfl1ngl6wdbf7d87dwdw7"; ··· 1073 715 version = "0.1.3"; 1074 716 }; 1075 717 rkelly-remix = { 718 + groups = ["default"]; 719 + platforms = []; 1076 720 source = { 1077 721 remotes = ["https://rubygems.org"]; 1078 722 sha256 = "1g7hjl9nx7f953y7lncmfgp0xgxfxvgfm367q6da9niik6rp1y3j"; ··· 1082 722 }; 1083 723 version = "0.0.7"; 1084 724 }; 1085 - robots = { 725 + ruby-macho = { 726 + groups = ["default"]; 727 + platforms = []; 1086 728 source = { 1087 729 remotes = ["https://rubygems.org"]; 1088 - sha256 = "141gvihcr2c0dpzl3dqyh8kqc9121prfdql2iamaaw0mf9qs3njs"; 730 + sha256 = "1k5vvk9d13pixhbram6fs74ibgmr2dngv7bks13npcjb42q275if"; 1089 731 type = "gem"; 1090 732 }; 1091 - version = "0.10.1"; 733 + version = "2.2.0"; 1092 734 }; 1093 735 ruby-rc4 = { 736 + groups = ["default"]; 737 + platforms = []; 1094 738 source = { 1095 739 remotes = ["https://rubygems.org"]; 1096 740 sha256 = "00vci475258mmbvsdqkmqadlwn6gj9m01sp7b5a3zd90knil1k00"; ··· 1104 740 }; 1105 741 ruby_smb = { 1106 742 dependencies = ["bindata" "rubyntlm" "windows_error"]; 743 + groups = ["default"]; 744 + platforms = []; 1107 745 source = { 1108 746 remotes = ["https://rubygems.org"]; 1109 - sha256 = "1jby5wlppxhc2jlqldic05aqd5l57171lsxqv86702grk665n612"; 747 + sha256 = "125pimmaskp13nkk5j138nfk1kd8n91sfdlx4dhj2j9zk342wsf4"; 1110 748 type = "gem"; 1111 749 }; 1112 - version = "0.0.18"; 750 + version = "1.1.0"; 1113 751 }; 1114 752 rubyntlm = { 753 + groups = ["default"]; 754 + platforms = []; 1115 755 source = { 1116 756 remotes = ["https://rubygems.org"]; 1117 757 sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy"; ··· 1124 756 version = "0.6.2"; 1125 757 }; 1126 758 rubyzip = { 759 + groups = ["default"]; 760 + platforms = []; 1127 761 source = { 1128 762 remotes = ["https://rubygems.org"]; 1129 - sha256 = "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz"; 763 + sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc"; 1130 764 type = "gem"; 1131 765 }; 1132 - version = "1.2.1"; 766 + version = "1.2.3"; 1133 767 }; 1134 768 sawyer = { 1135 769 dependencies = ["addressable" "faraday"]; 770 + groups = ["default"]; 771 + platforms = []; 1136 772 source = { 1137 773 remotes = ["https://rubygems.org"]; 1138 - sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd"; 774 + sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz"; 1139 775 type = "gem"; 1140 776 }; 1141 - version = "0.8.1"; 777 + version = "0.8.2"; 778 + }; 779 + sinatra = { 780 + dependencies = ["rack" "rack-protection" "tilt"]; 781 + groups = ["default"]; 782 + platforms = []; 783 + source = { 784 + remotes = ["https://rubygems.org"]; 785 + sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq"; 786 + type = "gem"; 787 + }; 788 + version = "1.4.8"; 1142 789 }; 1143 790 sqlite3 = { 791 + groups = ["default"]; 792 + platforms = []; 1144 793 source = { 1145 794 remotes = ["https://rubygems.org"]; 1146 - sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i"; 795 + sha256 = "1v903nbcws3ifm6jnxrdfcpgl1qg2x3lbif16mhlbyfn0npzb494"; 1147 796 type = "gem"; 1148 797 }; 1149 - version = "1.3.13"; 798 + version = "1.4.1"; 1150 799 }; 1151 800 sshkey = { 801 + groups = ["default"]; 802 + platforms = []; 1152 803 source = { 1153 804 remotes = ["https://rubygems.org"]; 1154 - sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h"; 805 + sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp"; 1155 806 type = "gem"; 1156 807 }; 1157 - version = "1.9.0"; 808 + version = "2.0.0"; 809 + }; 810 + thin = { 811 + dependencies = ["daemons" "eventmachine" "rack"]; 812 + groups = ["default"]; 813 + platforms = []; 814 + source = { 815 + remotes = ["https://rubygems.org"]; 816 + sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f"; 817 + type = "gem"; 818 + }; 819 + version = "1.7.2"; 1158 820 }; 1159 821 thor = { 822 + groups = ["default"]; 823 + platforms = []; 1160 824 source = { 1161 825 remotes = ["https://rubygems.org"]; 1162 - sha256 = "0nmqpyj642sk4g16nkbq6pj856adpv91lp4krwhqkh2iw63aszdl"; 826 + sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29"; 1163 827 type = "gem"; 1164 828 }; 1165 - version = "0.20.0"; 829 + version = "0.20.3"; 1166 830 }; 1167 831 thread_safe = { 832 + groups = ["default"]; 833 + platforms = []; 1168 834 source = { 1169 835 remotes = ["https://rubygems.org"]; 1170 836 sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; ··· 1206 804 }; 1207 805 version = "0.3.6"; 1208 806 }; 807 + tilt = { 808 + groups = ["default"]; 809 + platforms = []; 810 + source = { 811 + remotes = ["https://rubygems.org"]; 812 + sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz"; 813 + type = "gem"; 814 + }; 815 + version = "2.0.9"; 816 + }; 1209 817 ttfunk = { 818 + groups = ["default"]; 819 + platforms = []; 1210 820 source = { 1211 821 remotes = ["https://rubygems.org"]; 1212 822 sha256 = "1mgrnqla5n51v4ivn844albsajkck7k6lviphfqa8470r46c58cd"; ··· 1228 814 }; 1229 815 tzinfo = { 1230 816 dependencies = ["thread_safe"]; 817 + groups = ["default"]; 818 + platforms = []; 1231 819 source = { 1232 820 remotes = ["https://rubygems.org"]; 1233 - sha256 = "05r81lk7q7275rdq7xipfm0yxgqyd2ggh73xpc98ypngcclqcscl"; 821 + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; 1234 822 type = "gem"; 1235 823 }; 1236 - version = "1.2.3"; 824 + version = "1.2.5"; 1237 825 }; 1238 826 tzinfo-data = { 1239 827 dependencies = ["tzinfo"]; 828 + groups = ["default"]; 829 + platforms = []; 1240 830 source = { 1241 831 remotes = ["https://rubygems.org"]; 1242 - sha256 = "1n83rmy476d4qmzq74qx0j7lbcpskbvrj1bmy3np4d5pydyw2yky"; 832 + sha256 = "1m507in0d7vlfgasxpkz3y1a44zp532k9qlqcaz90ay939sz9h5q"; 1243 833 type = "gem"; 1244 834 }; 1245 - version = "1.2017.2"; 835 + version = "1.2019.2"; 836 + }; 837 + warden = { 838 + dependencies = ["rack"]; 839 + groups = ["default"]; 840 + platforms = []; 841 + source = { 842 + remotes = ["https://rubygems.org"]; 843 + sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12"; 844 + type = "gem"; 845 + }; 846 + version = "1.2.7"; 1246 847 }; 1247 848 windows_error = { 849 + groups = ["default"]; 850 + platforms = []; 1248 851 source = { 1249 852 remotes = ["https://rubygems.org"]; 1250 853 sha256 = "0kbcv9j5sc7pvjzf1dkp6h69i6lmj205zyy2arxcfgqg11bsz2kp"; ··· 1271 840 }; 1272 841 xdr = { 1273 842 dependencies = ["activemodel" "activesupport"]; 843 + groups = ["default"]; 844 + platforms = []; 1274 845 source = { 1275 846 remotes = ["https://rubygems.org"]; 1276 847 sha256 = "0c5cp1k4ij3xq1q6fb0f6xv5b65wy18y7bhwvsdx8wd0zyg3x96m"; ··· 1281 848 version = "2.0.0"; 1282 849 }; 1283 850 xmlrpc = { 851 + groups = ["default"]; 852 + platforms = []; 1284 853 source = { 1285 854 remotes = ["https://rubygems.org"]; 1286 855 sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683";
+1 -1
pkgs/tools/security/pinentry/default.nix
··· 60 60 license = licenses.gpl2Plus; 61 61 platforms = platforms.all; 62 62 longDescription = '' 63 - Pinentry provides a console and (optional) GTK+ and Qt GUIs allowing users 63 + Pinentry provides a console and (optional) GTK and Qt GUIs allowing users 64 64 to enter a passphrase when `gpg' or `gpg2' is run and needs it. 65 65 ''; 66 66 maintainers = [ maintainers.ttuegel ];
+2 -2
pkgs/tools/system/netdata/default.nix
··· 12 12 with stdenv.lib; 13 13 14 14 stdenv.mkDerivation rec { 15 - version = "1.16.0"; 15 + version = "1.17.0"; 16 16 pname = "netdata"; 17 17 18 18 src = fetchurl { 19 19 url = "https://github.com/netdata/netdata/releases/download/v${version}/netdata-v${version}.tar.gz"; 20 - sha256 = "0kwbrkv7g9m7l580myd2r8bpxqn6fxmx5vd6xh7x94wygfffhann"; 20 + sha256 = "099xvndf5lql4ipwqhm38lpc65yicmpmkk3a7c2j4m48l3vqw9y6"; 21 21 }; 22 22 23 23 nativeBuildInputs = [ autoreconfHook pkgconfig ];
+2 -2
pkgs/tools/system/stress-ng/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 pname = "stress-ng"; 7 - version = "0.10.01"; 7 + version = "0.10.02"; 8 8 9 9 src = fetchurl { 10 10 url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz"; 11 - sha256 = "0gcgm96prkzysszgq34cpx30y0bx9b5zll7943zwg3941fkg4x2a"; 11 + sha256 = "100daxz0j80jhmpfnqa78mvfwq1qj7zb67y7w9f747a0f1havvim"; 12 12 }; 13 13 14 14 # All platforms inputs then Linux-only ones
+1 -1
pkgs/top-level/aliases.nix
··· 373 373 ucsFonts = ucs-fonts; # added 2016-07-15 374 374 ultrastardx-beta = ultrastardx; # added 2017-08-12 375 375 usb_modeswitch = usb-modeswitch; # added 2016-05-10 376 + usbguard-nox = usbguard; # added 2019-09-04 376 377 v4l_utils = v4l-utils; # added 2019-08-07 377 378 vimbWrapper = vimb; # added 2015-01 378 379 vimprobable2Wrapper = vimprobable2; # added 2015-01 379 380 virtviewer = virt-viewer; # added 2015-12-24 380 381 vorbisTools = vorbis-tools; # added 2016-01-26 381 382 webkit = webkitgtk; # added 2019-03-05 382 - weechat-xmpp = weechatScripts.weechat-xmpp; # added 2018-09-06 383 383 weechat-matrix-bridge = weechatScripts.weechat-matrix-bridge; # added 2018-09-06 384 384 wineStaging = wine-staging; # added 2018-01-08 385 385 winusb = woeusb; # added 2017-12-22
+20 -13
pkgs/top-level/all-packages.nix
··· 360 360 inherit url; 361 361 }; 362 362 363 + installShellFiles = callPackage ../build-support/install-shell-files {}; 364 + 363 365 lazydocker = callPackage ../tools/misc/lazydocker { }; 364 366 365 367 ld-is-cc-hook = makeSetupHook { name = "ld-is-cc-hook"; } ··· 390 388 nixBufferBuilders = import ../build-support/emacs/buffer.nix { inherit (pkgs) lib writeText; inherit (emacsPackages) inherit-local; }; 391 389 392 390 nix-gitignore = callPackage ../build-support/nix-gitignore { }; 391 + 392 + ociTools = callPackage ../build-support/oci-tools { }; 393 393 394 394 pathsFromGraph = ../build-support/kernel/paths-from-graph.pl; 395 395 ··· 2197 2193 nrg2iso = callPackage ../tools/cd-dvd/nrg2iso { }; 2198 2194 2199 2195 libceph = ceph.lib; 2200 - ceph = callPackage ../tools/filesystems/ceph { 2201 - boost = boost166.override { enablePython = true; }; 2202 - }; 2196 + inherit (callPackages ../tools/filesystems/ceph { 2197 + boost = boost167.override { enablePython = true; python = python37; }; 2198 + }) 2199 + ceph 2200 + ceph-client; 2203 2201 ceph-dev = ceph; 2204 2202 2205 2203 inherit (callPackages ../tools/security/certmgr { }) ··· 11229 11223 11230 11224 elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { }; 11231 11225 11232 - gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { 11226 + gtk2 = callPackage ../development/libraries/gtk/2.x.nix { 11233 11227 inherit (darwin.apple_sdk.frameworks) AppKit Cocoa; 11234 11228 }; 11235 11229 ··· 11239 11233 gdktarget = "x11"; 11240 11234 }; 11241 11235 11242 - gtk3 = callPackage ../development/libraries/gtk+/3.x.nix { 11236 + gtk3 = callPackage ../development/libraries/gtk/3.x.nix { 11243 11237 inherit (darwin.apple_sdk.frameworks) AppKit Cocoa; 11244 11238 }; 11245 11239 ··· 12729 12723 withGUI = false; 12730 12724 }; 12731 12725 12732 - mlt = callPackage ../development/libraries/mlt {}; 12726 + mlt = callPackage ../development/libraries/mlt { ffmpeg = ffmpeg_4; }; 12733 12727 12734 12728 mono-addins = callPackage ../development/libraries/mono-addins { }; 12735 12729 ··· 13312 13306 kpmcore = callPackage ../development/libraries/kpmcore { }; 13313 13307 13314 13308 mlt = callPackage ../development/libraries/mlt/qt-5.nix { 13315 - ffmpeg = ffmpeg_2; 13309 + ffmpeg = ffmpeg_4; 13316 13310 }; 13317 13311 13318 13312 openbr = callPackage ../development/libraries/openbr { }; ··· 15089 15083 prometheus-openvpn-exporter = callPackage ../servers/monitoring/prometheus/openvpn-exporter.nix { }; 15090 15084 prometheus-postfix-exporter = callPackage ../servers/monitoring/prometheus/postfix-exporter.nix { }; 15091 15085 prometheus-postgres-exporter = callPackage ../servers/monitoring/prometheus/postgres-exporter.nix { }; 15086 + prometheus-process-exporter = callPackage ../servers/monitoring/prometheus/process-exporter.nix { }; 15092 15087 prometheus-pushgateway = callPackage ../servers/monitoring/prometheus/pushgateway.nix { }; 15093 15088 prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { }; 15094 15089 prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { ··· 15942 15935 15943 15936 perf = callPackage ../os-specific/linux/kernel/perf.nix { }; 15944 15937 15945 - phc-intel = callPackage ../os-specific/linux/phc-intel { }; 15938 + phc-intel = if stdenv.lib.versionAtLeast kernel.version "4.10" then callPackage ../os-specific/linux/phc-intel { } else null; 15946 15939 15947 15940 # Disable for kernels 4.15 and above due to compatibility issues 15948 15941 prl-tools = if stdenv.lib.versionOlder kernel.version "4.15" then callPackage ../os-specific/linux/prl-tools { } else null; ··· 16541 16534 16542 16535 upower = callPackage ../os-specific/linux/upower { }; 16543 16536 16544 - usbguard = libsForQt5.callPackage ../os-specific/linux/usbguard { 16537 + usbguard = callPackage ../os-specific/linux/usbguard { 16545 16538 libgcrypt = null; 16546 - }; 16547 - 16548 - usbguard-nox = usbguard.override { 16549 - withGui = false; 16550 16539 }; 16551 16540 16552 16541 usbtop = callPackage ../os-specific/linux/usbtop { }; ··· 19388 19385 metersLv2 = callPackage ../applications/audio/meters_lv2 { }; 19389 19386 19390 19387 mhwaveedit = callPackage ../applications/audio/mhwaveedit {}; 19388 + 19389 + michabo = libsForQt5.callPackage ../applications/misc/michabo { }; 19391 19390 19392 19391 mid2key = callPackage ../applications/audio/mid2key { }; 19393 19392 ··· 24149 24144 nix-review = callPackage ../tools/package-management/nix-review { }; 24150 24145 24151 24146 nix-serve = callPackage ../tools/package-management/nix-serve { }; 24147 + 24148 + nixfmt = haskell.lib.justStaticExecutables haskellPackages.nixfmt; 24152 24149 24153 24150 nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { }; 24154 24151
+2 -2
pkgs/top-level/perl-packages.nix
··· 7537 7537 }; 7538 7538 propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ]; 7539 7539 meta = { 7540 - description = "Perl interface to the 3.x series of the gtk+ toolkit"; 7540 + description = "Perl interface to the 3.x series of the GTK toolkit"; 7541 7541 license = stdenv.lib.licenses.lgpl21Plus; 7542 7542 }; 7543 7543 }; ··· 19379 19379 }; 19380 19380 propagatedBuildInputs = [ AlienWxWidgets ]; 19381 19381 # Testing requires an X server: 19382 - # Error: Unable to initialize GTK+, is DISPLAY set properly?" 19382 + # Error: Unable to initialize GTK, is DISPLAY set properly?" 19383 19383 doCheck = false; 19384 19384 buildInputs = [ ExtUtilsXSpp ]; 19385 19385 };
+6
pkgs/top-level/python-packages.nix
··· 2435 2435 2436 2436 ijson = callPackage ../development/python-modules/ijson {}; 2437 2437 2438 + imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { }); 2439 + 2438 2440 imagesize = callPackage ../development/python-modules/imagesize { }; 2439 2441 2440 2442 image-match = callPackage ../development/python-modules/image-match { }; ··· 4433 4431 4434 4432 pyupdate = callPackage ../development/python-modules/pyupdate {}; 4435 4433 4434 + pyvmomi = callPackage ../development/python-modules/pyvmomi { }; 4435 + 4436 4436 pyx = callPackage ../development/python-modules/pyx { }; 4437 4437 4438 4438 mmpython = callPackage ../development/python-modules/mmpython { }; ··· 6185 6181 x256 = callPackage ../development/python-modules/x256 { }; 6186 6182 6187 6183 yattag = callPackage ../development/python-modules/yattag { }; 6184 + 6185 + xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { }); 6188 6186 6189 6187 z3 = (toPythonModule (pkgs.z3.override { 6190 6188 inherit python;
+1 -1
pkgs/top-level/release.nix
··· 102 102 # Needed for support 103 103 jobs.nix-info.x86_64-linux 104 104 jobs.nix-info-tested.x86_64-linux 105 - # Ensure that X11/GTK+ are in order. 105 + # Ensure that X11/GTK are in order. 106 106 jobs.thunderbird.x86_64-linux 107 107 jobs.unar.x86_64-linux 108 108