···11+<section xmlns="http://docbook.org/ns/docbook"22+ xmlns:xlink="http://www.w3.org/1999/xlink"33+ xmlns:xi="http://www.w3.org/2001/XInclude"44+ xml:id="sec-pkgs-ociTools">55+ <title>pkgs.ociTools</title>66+77+ <para>88+ <varname>pkgs.ociTools</varname> is a set of functions for creating99+ containers according to the1010+ <link xlink:href="https://github.com/opencontainers/runtime-spec">OCI1111+ container specification v1.0.0</link>. Beyond that it makes no assumptions1212+ about the container runner you choose to use to run the created container.1313+ </para>1414+1515+ <section xml:id="ssec-pkgs-ociTools-buildContainer">1616+ <title>buildContainer</title>1717+1818+ <para>1919+ This function creates a simple OCI container that runs a single command2020+ inside of it. An OCI container consists of a <varname>config.json</varname>2121+ and a rootfs directory.The nix store of the container will contain all2222+ referenced dependencies of the given command.2323+ </para>2424+2525+ <para>2626+ The parameters of <varname>buildContainer</varname> with an example value2727+ are described below:2828+ </para>2929+3030+ <example xml:id='ex-ociTools-buildContainer'>3131+ <title>Build Container</title>3232+<programlisting>3333+buildContainer {3434+ cmd = with pkgs; writeScript "run.sh" ''3535+ #!${bash}/bin/bash3636+ ${coreutils}/bin/exec ${bash}/bin/bash3737+ ''; <co xml:id='ex-ociTools-buildContainer-1' />3838+3939+ mounts = {4040+ "/data" = {4141+ type = "none";4242+ source = "/var/lib/mydata";4343+ options = [ "bind" ];4444+ };4545+ };<co xml:id='ex-ociTools-buildContainer-2' />4646+4747+ readonly = false; <co xml:id='ex-ociTools-buildContainer-3' />4848+}4949+5050+ </programlisting>5151+ <calloutlist>5252+ <callout arearefs='ex-ociTools-buildContainer-1'>5353+ <para>5454+ <varname>cmd</varname> specifies the program to run inside the container.5555+ This is the only required argument for <varname>buildContainer</varname>.5656+ All referenced packages inside the derivation will be made available5757+ inside the container5858+ </para>5959+ </callout>6060+ <callout arearefs='ex-ociTools-buildContainer-2'>6161+ <para>6262+ <varname>mounts</varname> specifies additional mount points chosen by the6363+ user. By default only a minimal set of necessary filesystems are mounted6464+ into the container (e.g procfs, cgroupfs)6565+ </para>6666+ </callout>6767+ <callout arearefs='ex-ociTools-buildContainer-3'>6868+ <para>6969+ <varname>readonly</varname> makes the container's rootfs read-only if it is set to true.7070+ The default value is false <literal>false</literal>.7171+ </para>7272+ </callout>7373+ </calloutlist>7474+ </example>7575+ </section>7676+</section>
+43
doc/stdenv.xml
···27162716 </varlistentry>27172717 <varlistentry>27182718 <term>27192719+ installShellFiles27202720+ </term>27212721+ <listitem>27222722+ <para>27232723+ This hook helps with installing manpages and shell completion files. It27242724+ exposes 2 shell functions <literal>installManPage</literal> and27252725+ <literal>installShellCompletion</literal> that can be used from your27262726+ <literal>postInstall</literal> hook.27272727+ </para>27282728+ <para>27292729+ The <literal>installManPage</literal> function takes one or more paths27302730+ to manpages to install. The manpages must have a section suffix, and may27312731+ optionally be compressed (with <literal>.gz</literal> suffix). This27322732+ function will place them into the correct directory.27332733+ </para>27342734+ <para>27352735+ The <literal>installShellCompletion</literal> function takes one or more27362736+ paths to shell completion files. By default it will autodetect the shell27372737+ type from the completion file extension, but you may also specify it by27382738+ passing one of <literal>--bash</literal>, <literal>--fish</literal>, or27392739+ <literal>--zsh</literal>. These flags apply to all paths listed after27402740+ them (up until another shell flag is given). Each path may also have a27412741+ custom installation name provided by providing a flag <literal>--name27422742+ NAME</literal> before the path. If this flag is not provided, zsh27432743+ completions will be renamed automatically such that27442744+ <literal>foobar.zsh</literal> becomes <literal>_foobar</literal>.27452745+<programlisting>27462746+nativeBuildInputs = [ installShellFiles ];27472747+postInstall = ''27482748+ installManPage doc/foobar.1 doc/barfoo.327492749+ # explicit behavior27502750+ installShellCompletion --bash --name foobar.bash share/completions.bash27512751+ installShellCompletion --fish --name foobar.fish share/completions.fish27522752+ installShellCompletion --zsh --name _foobar share/completions.zsh27532753+ # implicit behavior27542754+ installShellCompletion share/completions/foobar.{bash,fish,zsh}27552755+'';27562756+</programlisting>27572757+ </para>27582758+ </listitem>27592759+ </varlistentry>27602760+ <varlistentry>27612761+ <term>27192762 libiconv, libintl27202763 </term>27212764 <listitem>
···2424 <para>2525 Apart from high-level options, it’s possible to tweak a package in almost2626 arbitrary ways, such as changing or disabling dependencies of a package. For2727- instance, the Emacs package in Nixpkgs by default has a dependency on GTK+ 2.2828- If you want to build it against GTK+ 3, you can specify that as follows:2727+ instance, the Emacs package in Nixpkgs by default has a dependency on GTK 2.2828+ If you want to build it against GTK 3, you can specify that as follows:2929<programlisting>3030<xref linkend="opt-environment.systemPackages"/> = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];3131</programlisting>···3333 function that produces Emacs, with the original arguments amended by the set3434 of arguments specified by you. So here the function argument3535 <varname>gtk</varname> gets the value <literal>pkgs.gtk3</literal>, causing3636- Emacs to depend on GTK+ 3. (The parentheses are necessary because in Nix,3636+ Emacs to depend on GTK 3. (The parentheses are necessary because in Nix,3737 function application binds more weakly than list construction, so without3838 them, <xref linkend="opt-environment.systemPackages"/> would be a list with3939 two elements.)
+1-1
nixos/doc/manual/release-notes/rl-1703.xml
···730730 </listitem>731731 <listitem>732732 <para>733733- <literal>jre</literal> now defaults to GTK+ UI by default. This improves733733+ <literal>jre</literal> now defaults to GTK UI by default. This improves734734 visual consistency and makes Java follow system font style, improving the735735 situation on HighDPI displays. This has a cost of increased closure size;736736 for server and other headless workloads it's recommended to use
+22
nixos/doc/manual/release-notes/rl-1909.xml
···422422 It was not useful except for debugging purposes and was confusingly set as default in some circumstances.423423 </para>424424 </listitem>425425+ <listitem>426426+ <para>427427+ The WeeChat plugin <literal>pkgs.weechatScripts.weechat-xmpp</literal> has been removed as it doesn't receive428428+ any updates from upstream and depends on outdated Python2-based modules.429429+ </para>430430+ </listitem>425431426432 </itemizedlist>427433 </section>···716710 <literal>nix-shell -p altcoins.dogecoin</literal>, etc.717711 </para>718712 </listitem>713713+ <listitem>714714+ <para>715715+ Ceph has been upgraded to v14.2.1.716716+ See the <link xlink:href="https://ceph.com/releases/v14-2-0-nautilus-released/">release notes</link> for details.717717+ The mgr dashboard as well as osds backed by loop-devices is no longer explicitly supported by the package and module.718718+ Note: There's been some issues with python-cherrypy, which is used by the dashboard719719+ and prometheus mgr modules (and possibly others), hence 0000-dont-check-cherrypy-version.patch.720720+ </para>721721+ </listitem>722722+ <listitem>723723+ <para>724724+ <literal>pkgs.weechat</literal> is now compiled against <literal>pkgs.python3</literal>.725725+ Weechat also recommends <link xlink:href="https://weechat.org/scripts/python3/">to use Python3726726+ in their docs.</link>727727+ </para>728728+ </listitem>719729 </itemizedlist>720730 </section>721731</section>
+25-3
nixos/maintainers/scripts/ec2/amazon-image.nix
···1717 name = mkOption {1818 type = types.str;1919 description = "The name of the generated derivation";2020- default = "nixos-disk-image";2020+ default = "nixos-amazon-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";2121 };22222323 contents = mkOption {···42424343 format = mkOption {4444 type = types.enum [ "raw" "qcow2" "vpc" ];4545- default = "qcow2";4545+ default = "vpc";4646 description = "The image format to output";4747 };4848 };···5151 inherit lib config;5252 inherit (cfg) contents format name;5353 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package5454- partitionTableType = if config.ec2.hvm then "legacy" else "none";5454+ partitionTableType = if config.ec2.efi then "efi"5555+ else if config.ec2.hvm then "legacy"5656+ else "none";5557 diskSize = cfg.sizeMB;5658 fsType = "ext4";5759 configFile = pkgs.writeText "configuration.nix"···6361 ${optionalString config.ec2.hvm ''6462 ec2.hvm = true;6563 ''}6464+ ${optionalString config.ec2.efi ''6565+ ec2.efi = true;6666+ ''}6667 }6768 '';6969+ postVM = ''7070+ extension=''${diskImage##*.}7171+ friendlyName=$out/${cfg.name}.$extension7272+ mv "$diskImage" "$friendlyName"7373+ diskImage=$friendlyName7474+7575+ mkdir -p $out/nix-support7676+ echo "file ${cfg.format} $diskImage" >> $out/nix-support/hydra-build-products7777+7878+ ${pkgs.jq}/bin/jq -n \7979+ --arg label ${lib.escapeShellArg config.system.nixos.label} \8080+ --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \8181+ --arg logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$diskImage" | ${pkgs.jq}/bin/jq '."virtual-size"')" \8282+ --arg file "$diskImage" \8383+ '$ARGS.named' \8484+ > $out/nix-support/image-info.json8585+ '';6886 };6987}
+265-248
nixos/maintainers/scripts/ec2/create-amis.sh
···11#!/usr/bin/env nix-shell22-#! nix-shell -i bash -p qemu ec2_ami_tools jq ec2_api_tools awscli22+#!nix-shell -p awscli -p jq -p qemu -i bash3344-# To start with do: nix-shell -p awscli --run "aws configure"44+# Uploads and registers NixOS images built from the55+# <nixos/release.nix> amazonImage attribute. Images are uploaded and66+# registered via a home region, and then copied to other regions.5766-set -e77-set -o pipefail88+# The home region requires an s3 bucket, and a "vmimport" IAM role99+# with access to the S3 bucket. Configuration of the vmimport role is1010+# documented in1111+# https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html81299-version=$(nix-instantiate --eval --strict '<nixpkgs>' -A lib.version | sed s/'"'//g)1010-major=${version:0:5}1111-echo "NixOS version is $version ($major)"1313+# set -x1414+set -euo pipefail12151313-stateDir=/home/deploy/amis/ec2-image-$version1414-echo "keeping state in $stateDir"1515-mkdir -p $stateDir1616+# configuration1717+state_dir=/home/deploy/amis/ec2-images1818+home_region=eu-west-11919+bucket=nixos-amis16201717-rm -f ec2-amis.nix2121+regions=(eu-west-1 eu-west-2 eu-west-3 eu-central-12222+ us-east-1 us-east-2 us-west-1 us-west-22323+ ca-central-12424+ ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-22525+ ap-south-1 ap-east-12626+ sa-east-1)18271919-types="hvm"2020-stores="ebs"2121-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"2828+log() {2929+ echo "$@" >&23030+}22312323-for type in $types; do2424- link=$stateDir/$type2525- imageFile=$link/nixos.qcow22626- system=x86_64-linux2727- arch=x86_643232+if [ -z "$1" ]; then3333+ log "Usage: ./upload-amazon-image.sh IMAGE_OUTPUT"3434+ exit 13535+fi28362929- # Build the image.3030- if ! [ -L $link ]; then3131- if [ $type = pv ]; then hvmFlag=false; else hvmFlag=true; fi3737+# result of the amazon-image from nixos/release.nix3838+store_path=$132393333- echo "building image type '$type'..."3434- nix-build -o $link \3535- '<nixpkgs/nixos>' \3636- -A config.system.build.amazonImage \3737- --arg configuration "{ imports = [ <nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix> ]; ec2.hvm = $hvmFlag; }"4040+if [ ! -e "$store_path" ]; then4141+ log "Store path: $store_path does not exist, fetching..."4242+ nix-store --realise "$store_path"4343+fi4444+4545+if [ ! -d "$store_path" ]; then4646+ log "store_path: $store_path is not a directory. aborting"4747+ exit 14848+fi4949+5050+read_image_info() {5151+ if [ ! -e "$store_path/nix-support/image-info.json" ]; then5252+ log "Image missing metadata"5353+ exit 15454+ fi5555+ jq -r "$1" "$store_path/nix-support/image-info.json"5656+}5757+5858+# We handle a single image per invocation, store all attributes in5959+# globals for convenience.6060+image_label=$(read_image_info .label)6161+image_system=$(read_image_info .system)6262+image_file=$(read_image_info .file)6363+image_logical_bytes=$(read_image_info .logical_bytes)6464+6565+# Derived attributes6666+6767+image_logical_gigabytes=$((($image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB6868+6969+case "$image_system" in7070+ aarch64-linux)7171+ amazon_arch=arm647272+ ;;7373+ x86_64-linux)7474+ amazon_arch=x86_647575+ ;;7676+ *)7777+ log "Unknown system: $image_system"7878+ exit 17979+esac8080+8181+image_name="NixOS-${image_label}-${image_system}"8282+image_description="NixOS ${image_label} ${image_system}"8383+8484+log "Image Details:"8585+log " Name: $image_name"8686+log " Description: $image_description"8787+log " Size (gigabytes): $image_logical_gigabytes"8888+log " System: $image_system"8989+log " Amazon Arch: $amazon_arch"9090+9191+read_state() {9292+ local state_key=$19393+ local type=$29494+9595+ cat "$state_dir/$state_key.$type" 2>/dev/null || true9696+}9797+9898+write_state() {9999+ local state_key=$1100100+ local type=$2101101+ local val=$3102102+103103+ mkdir -p $state_dir104104+ echo "$val" > "$state_dir/$state_key.$type"105105+}106106+107107+wait_for_import() {108108+ local region=$1109109+ local task_id=$2110110+ local state snapshot_id111111+ log "Waiting for import task $task_id to be completed"112112+ while true; do113113+ read state progress snapshot_id < <(114114+ aws ec2 describe-import-snapshot-tasks --region $region --import-task-ids "$task_id" | \115115+ jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail | "\(.Status) \(.Progress) \(.SnapshotId)"'116116+ )117117+ log " ... state=$state progress=$progress snapshot_id=$snapshot_id"118118+ case "$state" in119119+ active)120120+ sleep 10121121+ ;;122122+ completed)123123+ echo "$snapshot_id"124124+ return125125+ ;;126126+ *)127127+ log "Unexpected snapshot import state: '${state}'"128128+ exit 1129129+ ;;130130+ esac131131+ done132132+}133133+134134+wait_for_image() {135135+ local region=$1136136+ local ami_id=$2137137+ local state138138+ log "Waiting for image $ami_id to be available"139139+140140+ while true; do141141+ read state < <(142142+ aws ec2 describe-images --image-ids "$ami_id" --region $region | \143143+ jq -r ".Images[].State"144144+ )145145+ log " ... state=$state"146146+ case "$state" in147147+ pending)148148+ sleep 10149149+ ;;150150+ available)151151+ return152152+ ;;153153+ *)154154+ log "Unexpected AMI state: '${state}'"155155+ exit 1156156+ ;;157157+ esac158158+ done159159+}160160+161161+162162+make_image_public() {163163+ local region=$1164164+ local ami_id=$2165165+166166+ wait_for_image $region "$ami_id"167167+168168+ log "Making image $ami_id public"169169+170170+ aws ec2 modify-image-attribute \171171+ --image-id "$ami_id" --region "$region" --launch-permission 'Add={Group=all}' >&2172172+}173173+174174+upload_image() {175175+ local region=$1176176+177177+ local aws_path=${image_file#/}178178+179179+ local state_key="$region.$image_label.$image_system"180180+ local task_id=$(read_state "$state_key" task_id)181181+ local snapshot_id=$(read_state "$state_key" snapshot_id)182182+ local ami_id=$(read_state "$state_key" ami_id)183183+184184+ if [ -z "$task_id" ]; then185185+ log "Checking for image on S3"186186+ if ! aws s3 ls --region "$region" "s3://${bucket}/${aws_path}" >&2; then187187+ log "Image missing from aws, uploading"188188+ aws s3 cp --region $region "$image_file" "s3://${bucket}/${aws_path}" >&2189189+ fi190190+191191+ log "Importing image from S3 path s3://$bucket/$aws_path"192192+193193+ task_id=$(aws ec2 import-snapshot --disk-container "{194194+ \"Description\": \"nixos-image-${image_label}-${image_system}\",195195+ \"Format\": \"vhd\",196196+ \"UserBucket\": {197197+ \"S3Bucket\": \"$bucket\",198198+ \"S3Key\": \"$aws_path\"199199+ }200200+ }" --region $region | jq -r '.ImportTaskId')201201+202202+ write_state "$state_key" task_id "$task_id"38203 fi392044040- for store in $stores; do205205+ if [ -z "$snapshot_id" ]; then206206+ snapshot_id=$(wait_for_import "$region" "$task_id")207207+ write_state "$state_key" snapshot_id "$snapshot_id"208208+ fi412094242- bucket=nixos-amis4343- bucketDir="$version-$type-$store"210210+ if [ -z "$ami_id" ]; then211211+ log "Registering snapshot $snapshot_id as AMI"442124545- prevAmi=4646- prevRegion=213213+ local block_device_mappings=(214214+ "DeviceName=/dev/sda1,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp2}"215215+ )472164848- for region in $regions; do217217+ local extra_flags=(218218+ --root-device-name /dev/sda1219219+ --sriov-net-support simple220220+ --ena-support221221+ --virtualization-type hvm222222+ )492235050- name=nixos-$version-$arch-$type-$store5151- description="NixOS $system $version ($type-$store)"224224+ block_device_mappings+=(DeviceName=/dev/sdb,VirtualName=ephemeral0)225225+ block_device_mappings+=(DeviceName=/dev/sdc,VirtualName=ephemeral1)226226+ block_device_mappings+=(DeviceName=/dev/sdd,VirtualName=ephemeral2)227227+ block_device_mappings+=(DeviceName=/dev/sde,VirtualName=ephemeral3)522285353- amiFile=$stateDir/$region.$type.$store.ami-id229229+ ami_id=$(230230+ aws ec2 register-image \231231+ --name "$image_name" \232232+ --description "$image_description" \233233+ --region $region \234234+ --architecture $amazon_arch \235235+ --block-device-mappings "${block_device_mappings[@]}" \236236+ "${extra_flags[@]}" \237237+ | jq -r '.ImageId'238238+ )542395555- if ! [ -e $amiFile ]; then240240+ write_state "$state_key" ami_id "$ami_id"241241+ fi562425757- echo "doing $name in $region..."243243+ make_image_public $region "$ami_id"582445959- if [ -n "$prevAmi" ]; then6060- ami=$(aws ec2 copy-image \6161- --region "$region" \6262- --source-region "$prevRegion" --source-image-id "$prevAmi" \6363- --name "$name" --description "$description" | jq -r '.ImageId')6464- if [ "$ami" = null ]; then break; fi6565- else245245+ echo "$ami_id"246246+}662476767- if [ $store = s3 ]; then248248+copy_to_region() {249249+ local region=$1250250+ local from_region=$2251251+ local from_ami_id=$3682526969- # Bundle the image.7070- imageDir=$stateDir/$type-bundled253253+ state_key="$region.$image_label.$image_system"254254+ ami_id=$(read_state "$state_key" ami_id)712557272- # Convert the image to raw format.7373- rawFile=$stateDir/$type.raw7474- if ! [ -e $rawFile ]; then7575- qemu-img convert -f qcow2 -O raw $imageFile $rawFile.tmp7676- mv $rawFile.tmp $rawFile7777- fi256256+ if [ -z "$ami_id" ]; then257257+ log "Copying $from_ami_id to $region"258258+ ami_id=$(259259+ aws ec2 copy-image \260260+ --region "$region" \261261+ --source-region "$from_region" \262262+ --source-image-id "$from_ami_id" \263263+ --name "$image_name" \264264+ --description "$image_description" \265265+ | jq -r '.ImageId'266266+ )782677979- if ! [ -d $imageDir ]; then8080- rm -rf $imageDir.tmp8181- mkdir -p $imageDir.tmp8282- ec2-bundle-image \8383- -d $imageDir.tmp \8484- -i $rawFile --arch $arch \8585- --user "$AWS_ACCOUNT" -c "$EC2_CERT" -k "$EC2_PRIVATE_KEY"8686- mv $imageDir.tmp $imageDir8787- fi268268+ write_state "$state_key" ami_id "$ami_id"269269+ fi882708989- # Upload the bundle to S3.9090- if ! [ -e $imageDir/uploaded ]; then9191- echo "uploading bundle to S3..."9292- ec2-upload-bundle \9393- -m $imageDir/$type.raw.manifest.xml \9494- -b "$bucket/$bucketDir" \9595- -a "$AWS_ACCESS_KEY_ID" -s "$AWS_SECRET_ACCESS_KEY" \9696- --location EU9797- touch $imageDir/uploaded9898- fi271271+ make_image_public $region "$ami_id"99272100100- extraFlags="--image-location $bucket/$bucketDir/$type.raw.manifest.xml"273273+ echo "$ami_id"274274+}101275102102- else276276+upload_all() {277277+ home_image_id=$(upload_image "$home_region")278278+ jq -n \279279+ --arg key "$home_region.$image_system" \280280+ --arg value "$home_image_id" \281281+ '$ARGS.named'103282104104- # Convert the image to vhd format so we don't have105105- # to upload a huge raw image.106106- vhdFile=$stateDir/$type.vhd107107- if ! [ -e $vhdFile ]; then108108- qemu-img convert -f qcow2 -O vpc $imageFile $vhdFile.tmp109109- mv $vhdFile.tmp $vhdFile110110- fi283283+ for region in "${regions[@]}"; do284284+ if [ "$region" = "$home_region" ]; then285285+ continue286286+ fi287287+ copied_image_id=$(copy_to_region "$region" "$home_region" "$home_image_id")111288112112- vhdFileLogicalBytes="$(qemu-img info "$vhdFile" | grep ^virtual\ size: | cut -f 2 -d \( | cut -f 1 -d \ )"113113- vhdFileLogicalGigaBytes=$(((vhdFileLogicalBytes-1)/1024/1024/1024+1)) # Round to the next GB114114-115115- echo "Disk size is $vhdFileLogicalBytes bytes. Will be registered as $vhdFileLogicalGigaBytes GB."116116-117117- taskId=$(cat $stateDir/$region.$type.task-id 2> /dev/null || true)118118- volId=$(cat $stateDir/$region.$type.vol-id 2> /dev/null || true)119119- snapId=$(cat $stateDir/$region.$type.snap-id 2> /dev/null || true)120120-121121- # Import the VHD file.122122- if [ -z "$snapId" -a -z "$volId" -a -z "$taskId" ]; then123123- echo "importing $vhdFile..."124124- taskId=$(ec2-import-volume $vhdFile --no-upload -f vhd \125125- -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \126126- -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" \127127- --region "$region" -z "${region}a" \128128- --bucket "$bucket" --prefix "$bucketDir/" \129129- | tee /dev/stderr \130130- | sed 's/.*\(import-vol-[0-9a-z]\+\).*/\1/ ; t ; d')131131- echo -n "$taskId" > $stateDir/$region.$type.task-id132132- fi133133-134134- if [ -z "$snapId" -a -z "$volId" ]; then135135- ec2-resume-import $vhdFile -t "$taskId" --region "$region" \136136- -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \137137- -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY"138138- fi139139-140140- # Wait for the volume creation to finish.141141- if [ -z "$snapId" -a -z "$volId" ]; then142142- echo "waiting for import to finish..."143143- while true; do144144- volId=$(aws ec2 describe-conversion-tasks --conversion-task-ids "$taskId" --region "$region" | jq -r .ConversionTasks[0].ImportVolume.Volume.Id)145145- if [ "$volId" != null ]; then break; fi146146- sleep 10147147- done148148-149149- echo -n "$volId" > $stateDir/$region.$type.vol-id150150- fi151151-152152- # Delete the import task.153153- if [ -n "$volId" -a -n "$taskId" ]; then154154- echo "removing import task..."155155- ec2-delete-disk-image -t "$taskId" --region "$region" \156156- -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \157157- -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" || true158158- rm -f $stateDir/$region.$type.task-id159159- fi160160-161161- # Create a snapshot.162162- if [ -z "$snapId" ]; then163163- echo "creating snapshot..."164164- # FIXME: this can fail with InvalidVolume.NotFound. Eventual consistency yay.165165- snapId=$(aws ec2 create-snapshot --volume-id "$volId" --region "$region" --description "$description" | jq -r .SnapshotId)166166- if [ "$snapId" = null ]; then exit 1; fi167167- echo -n "$snapId" > $stateDir/$region.$type.snap-id168168- fi169169-170170- # Wait for the snapshot to finish.171171- echo "waiting for snapshot to finish..."172172- while true; do173173- status=$(aws ec2 describe-snapshots --snapshot-ids "$snapId" --region "$region" | jq -r .Snapshots[0].State)174174- if [ "$status" = completed ]; then break; fi175175- sleep 10176176- done177177-178178- # Delete the volume.179179- if [ -n "$volId" ]; then180180- echo "deleting volume..."181181- aws ec2 delete-volume --volume-id "$volId" --region "$region" || true182182- rm -f $stateDir/$region.$type.vol-id183183- fi184184-185185- blockDeviceMappings="DeviceName=/dev/sda1,Ebs={SnapshotId=$snapId,VolumeSize=$vhdFileLogicalGigaBytes,DeleteOnTermination=true,VolumeType=gp2}"186186- extraFlags=""187187-188188- if [ $type = pv ]; then189189- extraFlags+=" --root-device-name /dev/sda1"190190- else191191- extraFlags+=" --root-device-name /dev/sda1"192192- extraFlags+=" --sriov-net-support simple"193193- extraFlags+=" --ena-support"194194- fi195195-196196- blockDeviceMappings+=" DeviceName=/dev/sdb,VirtualName=ephemeral0"197197- blockDeviceMappings+=" DeviceName=/dev/sdc,VirtualName=ephemeral1"198198- blockDeviceMappings+=" DeviceName=/dev/sdd,VirtualName=ephemeral2"199199- blockDeviceMappings+=" DeviceName=/dev/sde,VirtualName=ephemeral3"200200- fi201201-202202- if [ $type = hvm ]; then203203- extraFlags+=" --sriov-net-support simple"204204- extraFlags+=" --ena-support"205205- fi206206-207207- # Register the AMI.208208- if [ $type = pv ]; then209209- kernel=$(aws ec2 describe-images --owner amazon --filters "Name=name,Values=pv-grub-hd0_1.05-$arch.gz" | jq -r .Images[0].ImageId)210210- if [ "$kernel" = null ]; then break; fi211211- echo "using PV-GRUB kernel $kernel"212212- extraFlags+=" --virtualization-type paravirtual --kernel $kernel"213213- else214214- extraFlags+=" --virtualization-type hvm"215215- fi216216-217217- ami=$(aws ec2 register-image \218218- --name "$name" \219219- --description "$description" \220220- --region "$region" \221221- --architecture "$arch" \222222- --block-device-mappings $blockDeviceMappings \223223- $extraFlags | jq -r .ImageId)224224- if [ "$ami" = null ]; then break; fi225225- fi226226-227227- echo -n "$ami" > $amiFile228228- echo "created AMI $ami of type '$type' in $region..."229229-230230- else231231- ami=$(cat $amiFile)232232- fi233233-234234- echo "region = $region, type = $type, store = $store, ami = $ami"235235-236236- if [ -z "$prevAmi" ]; then237237- prevAmi="$ami"238238- prevRegion="$region"239239- fi240240- done241241-289289+ jq -n \290290+ --arg key "$region.$image_system" \291291+ --arg value "$copied_image_id" \292292+ '$ARGS.named'242293 done294294+}243295244244-done245245-246246-for type in $types; do247247- link=$stateDir/$type248248- system=x86_64-linux249249- arch=x86_64250250-251251- for store in $stores; do252252-253253- for region in $regions; do254254-255255- name=nixos-$version-$arch-$type-$store256256- amiFile=$stateDir/$region.$type.$store.ami-id257257- ami=$(cat $amiFile)258258-259259- echo "region = $region, type = $type, store = $store, ami = $ami"260260-261261- echo -n "waiting for AMI..."262262- while true; do263263- status=$(aws ec2 describe-images --image-ids "$ami" --region "$region" | jq -r .Images[0].State)264264- if [ "$status" = available ]; then break; fi265265- sleep 10266266- echo -n '.'267267- done268268- echo269269-270270- # Make the image public.271271- aws ec2 modify-image-attribute \272272- --image-id "$ami" --region "$region" --launch-permission 'Add={Group=all}'273273-274274- echo " \"$major\".$region.$type-$store = \"$ami\";" >> ec2-amis.nix275275- done276276-277277- done278278-279279-done296296+upload_all | jq --slurp from_entries
+1-1
nixos/modules/config/gtk/gtk-icon-cache.nix
···77 type = types.bool;88 default = config.services.xserver.enable;99 description = ''1010- Whether to build icon theme caches for GTK+ applications.1010+ Whether to build icon theme caches for GTK applications.1111 '';1212 };1313 };
···1818 enable = mkOption {1919 default = false;2020 description = ''2121- Whether to enable the Plotinus GTK+3 plugin. Plotinus provides a2121+ Whether to enable the Plotinus GTK 3 plugin. Plotinus provides a2222 popup (triggered by Ctrl-Shift-P) to search the menus of a2323 compatible application.2424 '';
+2-2
nixos/modules/programs/plotinus.xml
···1313 <link xlink:href="https://github.com/p-e-w/plotinus"/>1414 </para>1515 <para>1616- Plotinus is a searchable command palette in every modern GTK+ application.1616+ Plotinus is a searchable command palette in every modern GTK application.1717 </para>1818 <para>1919- When in a GTK+3 application and Plotinus is enabled, you can press1919+ When in a GTK 3 application and Plotinus is enabled, you can press2020 <literal>Ctrl+Shift+P</literal> to open the command palette. The command2121 palette provides a searchable list of of all menu items in the application.2222 </para>
···8181 default = "";8282 description = ''8383 Defines the mapping from system users to database users.8484+8585+ The general form is:8686+8787+ map-name system-username database-username8488 '';8589 };8690
+3-3
nixos/modules/services/editors/emacs.xml
···5959 <para>6060 The latest stable version of Emacs 25 using the6161 <link6262- xlink:href="http://www.gtk.org">GTK+ 2</link>6262+ xlink:href="http://www.gtk.org">GTK 2</link>6363 widget toolkit.6464 </para>6565 </listitem>···321321 <para>322322 If you want, you can tweak the Emacs package itself from your323323 <filename>emacs.nix</filename>. For example, if you want to have a324324- GTK+3-based Emacs instead of the default GTK+2-based binary and remove the324324+ GTK 3-based Emacs instead of the default GTK 2-based binary and remove the325325 automatically generated <filename>emacs.desktop</filename> (useful is you326326 only use <command>emacsclient</command>), you can change your file327327 <filename>emacs.nix</filename> in this way:···349349350350 <para>351351 After building this file as shown in <xref linkend="ex-emacsNix" />, you352352- will get an GTK3-based Emacs binary pre-loaded with your favorite packages.352352+ will get an GTK 3-based Emacs binary pre-loaded with your favorite packages.353353 </para>354354 </section>355355 </section>
···3131 e.efl e.enlightenment3232 e.terminology e.econnman3333 pkgs.xorg.xauth # used by kdesu3434- pkgs.gtk2 # To get GTK+'s themes.3434+ pkgs.gtk2 # To get GTK's themes.3535 pkgs.tango-icon-theme36363737 pkgs.gnome2.gnome_icon_theme···4848 services.xserver.desktopManager.session = [4949 { name = "Enlightenment";5050 start = ''5151- # Set GTK_DATA_PREFIX so that GTK+ can find the themes5151+ # Set GTK_DATA_PREFIX so that GTK can find the themes5252 export GTK_DATA_PREFIX=${config.system.path}5353 # find theme engines5454 export GTK_PATH=${config.system.path}/lib/gtk-3.0:${config.system.path}/lib/gtk-2.0
···4848 name = "mate";4949 bgSupport = true;5050 start = ''5151- # Set GTK_DATA_PREFIX so that GTK+ can find the themes5151+ # Set GTK_DATA_PREFIX so that GTK can find the themes5252 export GTK_DATA_PREFIX=${config.system.path}53535454 # Find theme engines
···48484949 config = mkIf cfg.enable {5050 environment.systemPackages = with pkgs.xfce // pkgs; [5151- # Get GTK+ themes and gtk-update-icon-cache5151+ # Get GTK themes and gtk-update-icon-cache5252 gtk2.out53535454 # Supplies some abstract icons such as:···107107 start = ''108108 ${cfg.extraSessionCommands}109109110110- # Set GTK_PATH so that GTK+ can find the theme engines.110110+ # Set GTK_PATH so that GTK can find the theme engines.111111 export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"112112113113- # Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.113113+ # Set GTK_DATA_PREFIX so that GTK can find the Xfce themes.114114 export GTK_DATA_PREFIX=${config.system.path}115115116116 ${pkgs.runtimeShell} ${pkgs.xfce.xinitrc} &
···114114 name = "xfce4-14";115115 bgSupport = true;116116 start = ''117117- # Set GTK_PATH so that GTK+ can find the theme engines.117117+ # Set GTK_PATH so that GTK can find the theme engines.118118 export GTK_PATH="${config.system.path}/lib/gtk-2.0:${config.system.path}/lib/gtk-3.0"119119120120- # Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.120120+ # Set GTK_DATA_PREFIX so that GTK can find the Xfce themes.121121 export GTK_DATA_PREFIX=${config.system.path}122122123123 ${pkgs.runtimeShell} ${pkgs.xfce4-14.xinitrc} &
+12-2
nixos/modules/virtualisation/amazon-image.nix
···2525 { assertion = cfg.hvm;2626 message = "Paravirtualized EC2 instances are no longer supported.";2727 }2828+ { assertion = cfg.efi -> cfg.hvm;2929+ message = "EC2 instances using EFI must be HVM instances.";3030+ }2831 ];29323033 boot.growPartition = cfg.hvm;···3633 device = "/dev/disk/by-label/nixos";3734 fsType = "ext4";3835 autoResize = true;3636+ };3737+3838+ fileSystems."/boot" = mkIf cfg.efi {3939+ device = "/dev/disk/by-label/ESP";4040+ fsType = "vfat";3941 };40424143 boot.extraModulePackages = [···58505951 # Generate a GRUB menu. Amazon's pv-grub uses this to boot our kernel/initrd.6052 boot.loader.grub.version = if cfg.hvm then 2 else 1;6161- boot.loader.grub.device = if cfg.hvm then "/dev/xvda" else "nodev";5353+ boot.loader.grub.device = if (cfg.hvm && !cfg.efi) then "/dev/xvda" else "nodev";6254 boot.loader.grub.extraPerEntryConfig = mkIf (!cfg.hvm) "root (hd0)";5555+ boot.loader.grub.efiSupport = cfg.efi;5656+ boot.loader.grub.efiInstallAsRemovable = cfg.efi;6357 boot.loader.timeout = 0;64586559 boot.initrd.network.enable = true;···147137 networking.timeServers = [ "169.254.169.123" ];148138149139 # udisks has become too bloated to have in a headless system150150- # (e.g. it depends on GTK+).140140+ # (e.g. it depends on GTK).151141 services.udisks2.enable = false;152142 };153143}
+8-1
nixos/modules/virtualisation/amazon-options.nix
···11-{ config, lib, ... }:11+{ config, lib, pkgs, ... }:22{33 options = {44 ec2 = {···77 internal = true;88 description = ''99 Whether the EC2 instance is a HVM instance.1010+ '';1111+ };1212+ efi = lib.mkOption {1313+ default = pkgs.stdenv.hostPlatform.isAarch64;1414+ internal = true;1515+ description = ''1616+ Whether the EC2 instance is using EFI.1017 '';1118 };1219 };
+125
nixos/modules/virtualisation/railcar.nix
···11+{ config, lib, pkgs, ... }:22+33+with lib;44+55+let66+ cfg = config.services.railcar;77+ generateUnit = name: containerConfig:88+ let99+ container = pkgs.ociTools.buildContainer {1010+ args = [1111+ (pkgs.writeShellScript "run.sh" containerConfig.cmd).outPath1212+ ];1313+ };1414+ in1515+ nameValuePair "railcar-${name}" {1616+ enable = true;1717+ wantedBy = [ "multi-user.target" ];1818+ serviceConfig = {1919+ ExecStart = ''2020+ ${cfg.package}/bin/railcar -r ${cfg.stateDir} run ${name} -b ${container}2121+ '';2222+ Type = containerConfig.runType;2323+ };2424+ };2525+ mount = with types; (submodule {2626+ options = {2727+ type = mkOption {2828+ type = string;2929+ default = "none";3030+ description = ''3131+ The type of the filesystem to be mounted.3232+ Linux: filesystem types supported by the kernel as listed in 3333+ `/proc/filesystems` (e.g., "minix", "ext2", "ext3", "jfs", "xfs", 3434+ "reiserfs", "msdos", "proc", "nfs", "iso9660"). For bind mounts 3535+ (when options include either bind or rbind), the type is a dummy,3636+ often "none" (not listed in /proc/filesystems).3737+ '';3838+ };3939+ source = mkOption {4040+ type = string;4141+ description = "Source for the in-container mount";4242+ };4343+ options = mkOption {4444+ type = loaOf (string);4545+ default = [ "bind" ];4646+ description = ''4747+ Mount options of the filesystem to be used.4848+4949+ Support optoions are listed in the mount(8) man page. Note that 5050+ both filesystem-independent and filesystem-specific options 5151+ are listed.5252+ '';5353+ };5454+ };5555+ });5656+in5757+{5858+ options.services.railcar = {5959+ enable = mkEnableOption "railcar";6060+6161+ containers = mkOption {6262+ default = {};6363+ description = "Declarative container configuration";6464+ type = with types; loaOf (submodule ({ name, config, ... }: {6565+ options = {6666+ cmd = mkOption {6767+ type = types.string;6868+ description = "Command or script to run inside the container";6969+ };7070+7171+ mounts = mkOption {7272+ type = with types; attrsOf mount;7373+ default = {};7474+ description = ''7575+ A set of mounts inside the container.7676+7777+ The defaults have been chosen for simple bindmounts, meaning7878+ that you only need to provide the "source" parameter.7979+ '';8080+ example = ''8181+ { "/data" = { source = "/var/lib/data"; }; }8282+ '';8383+ };8484+8585+ runType = mkOption {8686+ type = types.string;8787+ default = "oneshot";8888+ description = "The systemd service run type";8989+ };9090+9191+ os = mkOption {9292+ type = types.string;9393+ default = "linux";9494+ description = "OS type of the container";9595+ };9696+9797+ arch = mkOption {9898+ type = types.string;9999+ default = "x86_64";100100+ description = "Computer architecture type of the container";101101+ };102102+ };103103+ }));104104+ };105105+106106+ stateDir = mkOption {107107+ type = types.path;108108+ default = ''/var/railcar'';109109+ description = "Railcar persistent state directory";110110+ };111111+112112+ package = mkOption {113113+ type = types.package;114114+ default = pkgs.railcar;115115+ description = "Railcar package to use";116116+ };117117+ };118118+119119+ config = mkIf cfg.enable {120120+ systemd.services = flip mapAttrs' cfg.containers (name: containerConfig:121121+ generateUnit name containerConfig122122+ );123123+ };124124+}125125+
+16
nixos/release.nix
···196196 );197197198198199199+ # A disk image that can be imported to Amazon EC2 and registered as an AMI200200+ amazonImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:201201+202202+ with import nixpkgs { inherit system; };203203+204204+ hydraJob ((import lib/eval-config.nix {205205+ inherit system;206206+ modules =207207+ [ versionModule208208+ ./maintainers/scripts/ec2/amazon-image.nix209209+ ];210210+ }).config.system.build.amazonImage)211211+212212+ );213213+214214+199215 # Ensure that all packages used by the minimal NixOS config end up in the channel.200216 dummy = forAllSystems (system: pkgs.runCommand "dummy"201217 { toplevel = (import lib/eval-config.nix {
···12121313 # Only allow the demo data to be used (only if it's unfreeRedistributable).1414 unfreePredicate = pkg: with pkgs.lib; let1515- allowDrvPredicates = [ "quake3-demo" "quake3-pointrelease" ];1515+ allowPackageNames = [ "quake3-demodata" "quake3-pointrelease" ];1616 allowLicenses = [ pkgs.lib.licenses.unfreeRedistributable ];1717- in any (flip hasPrefix pkg.name) allowDrvPredicates &&1717+ in elem pkg.pname allowPackageNames &&1818 elem (pkg.meta.license or null) allowLicenses;19192020in
···7474 '';75757676 meta = with stdenv.lib; {7777- description = "A modern audio book player for Linux using GTK+ 3";7777+ description = "A modern audio book player for Linux using GTK 3";7878 homepage = https://cozy.geigi.de/;7979 maintainers = [ maintainers.makefu ];8080 license = licenses.gpl3;
+1-1
pkgs/applications/audio/pavucontrol/default.nix
···2727 description = "PulseAudio Volume Control";28282929 longDescription = ''3030- PulseAudio Volume Control (pavucontrol) provides a GTK+3030+ PulseAudio Volume Control (pavucontrol) provides a GTK3131 graphical user interface to connect to a PulseAudio server and3232 easily control the volume of all clients, sinks, etc.3333 '';
+2-2
pkgs/applications/audio/quodlibet/default.nix
···4646 preFixup = stdenv.lib.optionalString (kakasi != null) "gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)";47474848 meta = with stdenv.lib; {4949- description = "GTK+-based audio player written in Python, using the Mutagen tagging library";4949+ description = "GTK-based audio player written in Python, using the Mutagen tagging library";5050 license = licenses.gpl2Plus;51515252 longDescription = ''5353- Quod Libet is a GTK+-based audio player written in Python, using5353+ Quod Libet is a GTK-based audio player written in Python, using5454 the Mutagen tagging library. It's designed around the idea that5555 you know how to organize your music better than we do. It lets5656 you make playlists based on regular expressions (don't worry,
+1-1
pkgs/applications/audio/sonata/default.nix
···4141 longDescription = ''4242 Sonata is an elegant client for the Music Player Daemon.43434444- Written in Python and using the GTK+ 3 widget set, its features4444+ Written in Python and using the GTK 3 widget set, its features4545 include:46464747 - Expanded and collapsed views
+1-1
pkgs/applications/editors/leafpad/default.nix
···1818 ];19192020 meta = with stdenv.lib; {2121- description = "A notepad clone for GTK+ 2.0";2121+ description = "A notepad clone for GTK 2.0";2222 homepage = http://tarot.freeshell.org/leafpad;2323 platforms = platforms.linux;2424 maintainers = [ maintainers.flosse ];
+3-3
pkgs/applications/editors/vscode/vscode.nix
···1111 archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";12121313 sha256 = {1414- "x86_64-linux" = "1np7j6xv0bxmq7762ml0h6pib8963s2vdmyvigi0fz2iik92zv8z";1515- "x86_64-darwin" = "0f87cv1sbcvix9f7hhw0vsypp0bf627xdyh4bmh0g41k17ls8wvc";1414+ "x86_64-linux" = "1iz36nhkg78346g5407df6jv4d1ydb22hhgs8hiaxql3hq5z7x3q";1515+ "x86_64-darwin" = "1iijk0kx90rax39iradbbafyvd3vwnzsgvyb3s13asy42pbhhkky";1616 }.${system};1717in1818 callPackage ./generic.nix rec {19192020- version = "1.37.1";2020+ version = "1.38.0";2121 pname = "vscode";22222323 executableName = "code" + lib.optionalString isInsiders "-insiders";
+3-3
pkgs/applications/editors/vscode/vscodium.nix
···1111 archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";12121313 sha256 = {1414- "x86_64-linux" = "0j6188gm66bwffyg0vn3ak8242vs2vb2cw92b9wfkiml6sfg555n";1515- "x86_64-darwin" = "0iblg0hn6jdds7d2hzp0icb5yh6hhw3fd5g4iim64ibi7lpwj2cj";1414+ "x86_64-linux" = "09rq5jx7aicwp3qqi5pcv6bmyyp1rm5cfa96hvy3f4grhq1fi132";1515+ "x86_64-darwin" = "1y1lbb3q5myaz7jg21x5sl0in8wr46brqj9zyrg3f16zahsagzr4";1616 }.${system};1717in1818 callPackage ./generic.nix rec {19192020- version = "1.37.1";2020+ version = "1.38.0";2121 pname = "vscodium";22222323 executableName = "codium";
+1-1
pkgs/applications/graphics/gcolor2/default.nix
···2626 ++ (with perlPackages; [ perl XMLParser ]);27272828 meta = {2929- description = "Simple GTK+2 color selector";2929+ description = "Simple GTK 2 color selector";3030 homepage = http://gcolor2.sourceforge.net/;3131 license = stdenv.lib.licenses.gpl2Plus;3232 maintainers = with stdenv.lib.maintainers; [ notthemessiah ];
+2-2
pkgs/applications/graphics/geeqie/default.nix
···4646 enableParallelBuilding = true;47474848 meta = with stdenv.lib; {4949- description = "Lightweight GTK+ based image viewer";4949+ description = "Lightweight GTK based image viewer";50505151 longDescription =5252 ''5353- Geeqie is a lightweight GTK+ based image viewer for Unix like5353+ Geeqie is a lightweight GTK based image viewer for Unix like5454 operating systems. It features: EXIF, IPTC and XMP metadata5555 browsing and editing interoperability; easy integration with other5656 software; geeqie works on files and directories, there is no need to
+1-1
pkgs/applications/graphics/mcomix/default.nix
···1919 MComix is an user-friendly, customizable image viewer. It is specifically2020 designed to handle comic books, but also serves as a generic viewer.2121 It reads images in ZIP, RAR, 7Zip or tar archives as well as plain image2222- files. It is written in Python and uses GTK+ through the PyGTK bindings,2222+ files. It is written in Python and uses GTK through the PyGTK bindings,2323 and runs on both Linux and Windows.24242525 MComix is a fork of the Comix project, and aims to add bug fixes and
+2-2
pkgs/applications/graphics/mtpaint/default.nix
···2222 ];23232424 meta = {2525- description = "A simple GTK+1/2 painting program";2525+ description = "A simple GTK painting program";2626 longDescription = ''2727- mtPaint is a simple GTK+1/2 painting program designed for2727+ mtPaint is a simple GTK painting program designed for2828 creating icons and pixel based artwork. It can edit indexed palette2929 or 24 bit RGB images and offers basic painting and palette manipulation3030 tools. It also has several other more powerful features such as channels,
···28282929 meta = with stdenv.lib; {3030 homepage = https://packages.debian.org/wheezy/epdfview;3131- description = "A lightweight PDF document viewer using Poppler and GTK+";3131+ description = "A lightweight PDF document viewer using Poppler and GTK";3232 longDescription = ''3333- ePDFView is a free lightweight PDF document viewer using Poppler and3434- GTK+ libraries. The aim of ePDFView is to make a simple PDF document3535- viewer, in the lines of Evince but without using the Gnome libraries.3333+ ePDFView is a free lightweight PDF document viewer using Poppler and3434+ GTK libraries. The aim of ePDFView is to make a simple PDF document3535+ viewer, in the lines of Evince but without using the Gnome libraries.3636 '';3737 license = licenses.gpl2;3838 maintainers = [ maintainers.astsmtl ];
+2-2
pkgs/applications/misc/font-manager/default.nix
···49495050 meta = with stdenv.lib; {5151 homepage = https://fontmanager.github.io/;5252- description = "Simple font management for GTK+ desktop environments";5252+ description = "Simple font management for GTK desktop environments";5353 longDescription = ''5454 Font Manager is intended to provide a way for average users to5555 easily manage desktop fonts, without having to resort to command5656 line tools or editing configuration files by hand. While designed5757 primarily with the Gnome Desktop Environment in mind, it should5858- work well with other Gtk+ desktop environments.5858+ work well with other GTK desktop environments.59596060 Font Manager is NOT a professional-grade font management solution.6161 '';
+1-1
pkgs/applications/misc/girara/default.nix
···3333 homepage = https://pwmt.org/projects/girara/;3434 description = "User interface library";3535 longDescription = ''3636- girara is a library that implements a GTK+ based VIM-like user interface3636+ girara is a library that implements a GTK based VIM-like user interface3737 that focuses on simplicity and minimalism.3838 '';3939 license = licenses.zlib;
+1-1
pkgs/applications/misc/gksu/default.nix
···3939 meta = {4040 description = "A graphical frontend for libgksu";4141 longDescription = ''4242- GKSu is a library that provides a Gtk+ frontend to su and sudo.4242+ GKSu is a library that provides a GTK frontend to su and sudo.4343 It supports login shells and preserving environment when acting as4444 a su frontend. It is useful to menu items or other graphical4545 programs that need to ask a user's password to run another program
+1-1
pkgs/applications/misc/gmrun/default.nix
···3030 description = "Gnome Completion-Run Utility";3131 longDescription = ''3232 A simple program which provides a "run program" window, featuring a bash-like TAB completion.3333- It uses GTK+ interface.3333+ It uses GTK interface.3434 Also, supports CTRL-R / CTRL-S / "!" for searching through history.3535 Running commands in a terminal with CTRL-Enter. URL handlers.3636 '';
+1-1
pkgs/applications/misc/grip/default.nix
···1616 hardeningDisable = [ "format" ];17171818 meta = {1919- description = "GTK+-based audio CD player/ripper";1919+ description = "GTK-based audio CD player/ripper";2020 homepage = http://nostatic.org/grip;2121 license = stdenv.lib.licenses.gpl2;2222
+2-2
pkgs/applications/misc/gtk2fontsel/default.nix
···1515 preferLocalBuild = true;16161717 meta = with stdenv.lib; {1818- description = "A font selection program for X11 using the GTK2 toolkit";1818+ description = "A font selection program for X11 using the GTK 2 toolkit";1919 longDescription = ''2020- Font selection tool similar to xfontsel implemented using GTK+ 2.2020+ Font selection tool similar to xfontsel implemented using GTK 2.2121 Trivial, but useful nonetheless.2222 '';2323 homepage = http://gtk2fontsel.sourceforge.net/;
···6464 access to the graphical desktop via speech and refreshable braille.6565 It works with applications and toolkits that support the Assistive6666 Technology Service Provider Interface (AT-SPI). That includes the GNOME6767- Gtk+ toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and6767+ GTK toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and6868 WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued.69697070 Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`.
+1-1
pkgs/applications/misc/pcmanfm/default.nix
···2121 meta = with stdenv.lib; {2222 homepage = https://blog.lxde.org/category/pcmanfm/;2323 license = licenses.gpl2Plus;2424- description = "File manager with GTK+ interface";2424+ description = "File manager with GTK interface";2525 maintainers = [ maintainers.ttuegel ];2626 platforms = platforms.linux;2727 };
+1-1
pkgs/applications/misc/pcmanx-gtk2/default.nix
···2323 meta = with stdenv.lib; {2424 homepage = https://pcman.ptt.cc;2525 license = licenses.gpl2;2626- description = "Telnet BBS browser with GTK+ interface";2626+ description = "Telnet BBS browser with GTK interface";2727 maintainers = [ maintainers.sifmelcara ];2828 platforms = platforms.linux;2929 };
+1-4
pkgs/applications/misc/stupidterm/default.nix
···2727 '';28282929 meta = with stdenv.lib; {3030- description = "Simple wrapper around the VTE terminal emulator widget for GTK+";3131- longDescription = ''3232- Simple wrapper around the VTE terminal emulator widget for GTK+3333- '';3030+ description = "Simple wrapper around the VTE terminal emulator widget for GTK";3431 homepage = https://github.com/esmil/stupidterm;3532 license = licenses.lgpl3Plus;3633 maintainers = [ maintainers.etu ];
···2121 description = "A highly customizable and functional PDF viewer";2222 longDescription = ''2323 Zathura is a highly customizable and functional PDF viewer based on the2424- poppler rendering library and the gtk+ toolkit. The idea behind zathura2424+ poppler rendering library and the GTK toolkit. The idea behind zathura2525 is an application that provides a minimalistic and space saving interface2626 as well as an easy usage that mainly focuses on keyboard interaction.2727 '';
···2121 installFlags = [ "PREFIX=$(out)" ];22222323 meta = with stdenv.lib; {2424- description = "A simple web browser based on WebKit/GTK+";2424+ description = "A simple web browser based on WebKit/GTK";2525 longDescription = ''2626- Surf is a simple web browser based on WebKit/GTK+. It is able to display2626+ Surf is a simple web browser based on WebKit/GTK. It is able to display2727 websites and follow links. It supports the XEmbed protocol which makes it2828 possible to embed it in another application. Furthermore, one can point2929 surf to another URI by setting its XProperties.
···11+#!/usr/bin/env bash22+33+# Copyright 2014 The Kubernetes Authors.44+#55+# Licensed under the Apache License, Version 2.0 (the "License");66+# you may not use this file except in compliance with the License.77+# You may obtain a copy of the License at88+#99+# http://www.apache.org/licenses/LICENSE-2.01010+#1111+# Unless required by applicable law or agreed to in writing, software1212+# distributed under the License is distributed on an "AS IS" BASIS,1313+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.1414+# See the License for the specific language governing permissions and1515+# limitations under the License.1616+1717+# Generate Docker daemon options based on flannel env file.1818+1919+# exit on any error2020+set -e2121+2222+usage() {2323+ echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]2424+2525+Generate Docker daemon options based on flannel env file2626+OPTIONS:2727+ -f Path to flannel env file. Defaults to /run/flannel/subnet.env2828+ -d Path to Docker env file to write to. Defaults to /run/docker_opts.env2929+ -i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=15003030+ -c Output combined Docker options into DOCKER_OPTS var3131+ -k Set the combined options key to this value (default DOCKER_OPTS=)3232+ -m Do not output --ip-masq (useful for older Docker version)3333+" >/dev/stderr3434+ exit 13535+}3636+3737+flannel_env="/run/flannel/subnet.env"3838+docker_env="/run/docker_opts.env"3939+combined_opts_key="DOCKER_OPTS"4040+indiv_opts=false4141+combined_opts=false4242+ipmasq=true4343+val=""4444+4545+while getopts "f:d:icmk:" opt; do4646+ case $opt in4747+ f)4848+ flannel_env=$OPTARG4949+ ;;5050+ d)5151+ docker_env=$OPTARG5252+ ;;5353+ i)5454+ indiv_opts=true5555+ ;;5656+ c)5757+ combined_opts=true5858+ ;;5959+ m)6060+ ipmasq=false6161+ ;;6262+ k)6363+ combined_opts_key=$OPTARG6464+ ;;6565+ \?)6666+ usage6767+ ;;6868+ esac6969+done7070+7171+if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then7272+ indiv_opts=true7373+ combined_opts=true7474+fi7575+7676+if [[ -f "${flannel_env}" ]]; then7777+ source "${flannel_env}"7878+fi7979+8080+if [[ -n "$FLANNEL_SUBNET" ]]; then8181+ # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below8282+ DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"8383+fi8484+8585+if [[ -n "$FLANNEL_MTU" ]]; then8686+ # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below8787+ DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"8888+fi8989+9090+if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then9191+ # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below9292+ DOCKER_OPT_IPMASQ="--ip-masq=false"9393+fi9494+9595+eval docker_opts="\$${combined_opts_key}"9696+docker_opts+=" "9797+9898+echo -n "" >"${docker_env}"9999+100100+# OPT_LOOP101101+for opt in $(compgen -v DOCKER_OPT_); do102102+ eval val=\$"${opt}"103103+104104+ if [[ "$indiv_opts" = true ]]; then105105+ echo "$opt=\"$val\"" >>"${docker_env}"106106+ fi107107+108108+ docker_opts+="$val "109109+done110110+111111+if [[ "$combined_opts" = true ]]; then112112+ echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}"113113+fi
···2828 '';29293030 meta = {3131- description = "Native Gtk+ Twitter client for the Linux desktop";3131+ description = "Native GTK Twitter client for the Linux desktop";3232 longDescription = "Corebird is a modern, easy and fun Twitter client.";3333 homepage = https://corebird.baedert.org/;3434 license = stdenv.lib.licenses.gpl3;
···40404141 meta = with stdenv.lib; {4242 homepage = https://astroidmail.github.io/;4343- description = "GTK+ frontend to the notmuch mail system";4343+ description = "GTK frontend to the notmuch mail system";4444 maintainers = with maintainers; [ bdimcheff SuprDewd ];4545 license = licenses.gpl3Plus;4646 platforms = platforms.linux;
···5050 meta = with stdenv.lib; {5151 description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more";5252 longDescription = ''5353- A simple GTK+ based GUI compatible with Modem manager, Wader and oFono5353+ A simple GTK based GUI compatible with Modem manager, Wader and oFono5454 system services able to control EDGE/3G/4G broadband modem specific5555 functions. You can check balance of your SIM card, send or receive SMS5656 messages, control mobile traffic consumption and more.
···3838 enableParallelBuilding = true;39394040 meta = {4141- description = "A GTK+-based Usenet newsreader good at both text and binaries";4141+ description = "A GTK-based Usenet newsreader good at both text and binaries";4242 homepage = http://pan.rebelbase.com/;4343 maintainers = [ stdenv.lib.maintainers.eelco ];4444 platforms = stdenv.lib.platforms.linux;
···4949 on top of a cross-platform back-end.5050 Feature spotlight:5151 * Uses fewer resources than other clients5252- * Native Mac, GTK+ and Qt GUI clients5252+ * Native Mac, GTK and Qt GUI clients5353 * Daemon ideal for servers, embedded systems, and headless use5454 * All these can be remote controlled by Web and Terminal clients5555 * Bluetack (PeerGuardian) blocklists with automatic updates
···5252 meta = {5353 license = licenses.gpl2;5454 homepage = https://gitlab.com/Remmina/Remmina;5555- description = "Remote desktop client written in GTK+";5555+ description = "Remote desktop client written in GTK";5656 maintainers = with maintainers; [ melsigl ryantm ];5757 platforms = platforms.linux;5858 };
+1-1
pkgs/applications/office/planner/default.nix
···6161 Its goal is to be an easy-to-use no-nonsense cross-platform6262 project management application.63636464- Planner is a GTK+ application written in C and licensed under the6464+ Planner is a GTK application written in C and licensed under the6565 GPLv2 or any later version. It can store its data in either xml6666 files or in a postgresql database. Projects can also be printed6767 to PDF or exported to HTML for easy viewing from any web browser.
···2121 description = "Real time satellite tracking and orbit prediction";2222 longDescription = ''2323 Gpredict is a real time satellite tracking and orbit prediction program2424- written using the Gtk+ widgets. Gpredict is targetted mainly towards ham radio2424+ written using the GTK widgets. Gpredict is targetted mainly towards ham radio2525 operators but others interested in satellite tracking may find it useful as2626 well. Gpredict uses the SGP4/SDP4 algorithms, which are compatible with the2727 NORAD Keplerian elements.
···11+{buildPythonPackage, lib, fetchFromGitHub, statistics}:22+33+buildPythonPackage rec {44+ pname = "xenomapper";55+ version = "1.0.2";66+77+ src = fetchFromGitHub {88+ owner = "genomematt";99+ repo = pname;1010+ rev = "v${version}";1111+ sha256 = "0mnmfzlq5mhih6z8dq5bkx95vb8whjycz9mdlqwbmlqjb3gb3zhr";1212+ };1313+1414+ propagatedBuildInputs = [ statistics ];1515+1616+ meta = with lib; {1717+ homepage = "http://github.com/genomematt/xenomapper";1818+ 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";1919+ license = licenses.gpl3;2020+ platforms = platforms.all;2121+ maintainers = [ maintainers.jbedo ];2222+ };2323+}
+1-1
pkgs/applications/search/catfish/default.nix
···5656 description = "A handy file search tool";5757 longDescription = ''5858 Catfish is a handy file searching tool. The interface is5959- intentionally lightweight and simple, using only GTK+3.5959+ intentionally lightweight and simple, using only GTK 3.6060 You can configure it to your needs by using several command line6161 options.6262 '';
+1-1
pkgs/applications/video/celluloid/default.nix
···5151 doCheck = true;52525353 meta = with stdenv.lib; {5454- description = "Simple GTK+ frontend for the mpv video player";5454+ description = "Simple GTK frontend for the mpv video player";5555 longDescription = ''5656 GNOME MPV interacts with mpv via the client API exported by libmpv,5757 allowing access to mpv's powerful playback capabilities through an
+1-1
pkgs/applications/video/handbrake/default.nix
···9797 and containers. Very versatile and customizable.9898 Package provides:9999 CLI - `HandbrakeCLI`100100- GTK+ GUI - `ghb`100100+ GTK GUI - `ghb`101101 '';102102 license = licenses.gpl2;103103 maintainers = with maintainers; [ Anton-Latukha wmertens ];
···4949 configureFlags = [ "--disable-debug" ];50505151 meta = {5252- description = "GTK+3 application to edit video subtitles";5252+ description = "GTK 3 application to edit video subtitles";5353 longDescription = ''5454- Subtitle Editor is a GTK+3 tool to edit subtitles for GNU/Linux/*BSD. It5454+ Subtitle Editor is a GTK 3 tool to edit subtitles for GNU/Linux/*BSD. It5555 can be used for new subtitles or as a tool to transform, edit, correct5656 and refine existing subtitle. This program also shows sound waves, which5757 makes it easier to synchronise subtitles to voices.
···11{ config, stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, wrapQtAppsHook22, libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL33, libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras44-, qttools, pkgconfig, which, docbook_xsl, docbook_xml_dtd_4355-, alsaLib, curl, libvpx, nettools, dbus44+, qttools, qtsvg, qtwayland, pkgconfig, which, docbook_xsl, docbook_xml_dtd_4355+, alsaLib, curl, libvpx, nettools, dbus, substituteAll66, makeself, perl77, javaBindings ? true, jdk ? null # Almost doesn't affect closure size88, pythonBindings ? false, python3 ? null···3737 nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ]3838 ++ optional (!headless) wrapQtAppsHook;39394040- # Wrap manually because we just need to wrap one executable4040+ # Wrap manually because we wrap just a small number of executables.4141 dontWrapQtApps = true;42424343 buildInputs =···79798080 patches =8181 optional enableHardening ./hardened.patch8282+ # When hardening is enabled, we cannot use wrapQtApp to ensure that VirtualBoxVM sees8383+ # the correct environment variables needed for Qt to work, specifically QT_PLUGIN_PATH.8484+ # This is because VirtualBoxVM would detect that it is wrapped that and refuse to run,8585+ # and also because it would unset QT_PLUGIN_PATH for security reasons. We work around8686+ # these issues by patching the code to set QT_PLUGIN_PATH to the necessary paths,8787+ # after the code that unsets it. Note that qtsvg is included so that SVG icons from8888+ # the user's icon theme can be loaded.8989+ ++ optional (!headless && enableHardening) (substituteAll {9090+ src = ./qt-env-vars.patch;9191+ qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}";9292+ })8293 ++ [8394 ./qtx11extras.patch8495 ];···195184196185 preFixup = optionalString (!headless) ''197186 wrapQtApp $out/bin/VirtualBox187187+ ''188188+ # If hardening is disabled, wrap the VirtualBoxVM binary instead of patching189189+ # the source code (see postPatch).190190+ + optionalString (!headless && !enableHardening) ''191191+ wrapQtApp $out/libexec/virtualbox/VirtualBoxVM198192 '';199193200194 passthru = {
···11+--- a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp22++++ b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp33+@@ -2131,6 +2131,11 @@ static void supR3HardenedMainPurgeEnvironment(char **envp)44+ /** @todo Call NT API to do the same. */55+ #endif66+ }77++88++ /*99++ * NixOS hack: Set QT_PLUGIN_PATH to make Qt find plugins.1010++ */1111++ setenv("QT_PLUGIN_PATH", "@qtPluginPath@", /*overwrite=*/ 1);1212+ }1313+1414+
···11+{ makeSetupHook }:22+33+# See the header comment in ../setup-hooks/install-shell-files.sh for example usage.44+makeSetupHook { name = "install-shell-files"; } ../setup-hooks/install-shell-files.sh
···11+#!/bin/bash22+# Setup hook for the `installShellFiles` package.33+#44+# Example usage in a derivation:55+#66+# { …, installShellFiles, … }:77+# stdenv.mkDerivation {88+# …99+# nativeBuildInputs = [ installShellFiles ];1010+# postInstall = ''1111+# installManPage share/doc/foobar.11212+# installShellCompletion share/completions/foobar.{bash,fish,zsh}1313+# '';1414+# …1515+# }1616+#1717+# See comments on each function for more details.1818+1919+# installManPage <path> [...<path>]2020+#2121+# Each argument is checked for its man section suffix and installed into the appropriate2222+# share/man<n>/ directory. The function returns an error if any paths don't have the man section2323+# suffix (with optional .gz compression).2424+installManPage() {2525+ local path2626+ for path in "$@"; do2727+ if (( "${NIX_DEBUG:-0}" >= 1 )); then2828+ echo "installManPage: installing $path"2929+ fi3030+ if test -z "$path"; then3131+ echo "installManPage: error: path cannot be empty" >&23232+ return 13333+ fi3434+ local basename3535+ basename=$(stripHash "$path") # use stripHash in case it's a nix store path3636+ local trimmed=${basename%.gz} # don't get fooled by compressed manpages3737+ local suffix=${trimmed##*.}3838+ if test -z "$suffix" -o "$suffix" = "$trimmed"; then3939+ echo "installManPage: error: path missing manpage section suffix: $path" >&24040+ return 14141+ fi4242+ local outRoot4343+ if test "$suffix" = 3; then4444+ outRoot=${!outputDevman:?}4545+ else4646+ outRoot=${!outputMan:?}4747+ fi4848+ install -Dm644 -T "$path" "${outRoot}/share/man/man$suffix/$basename" || return4949+ done5050+}5151+5252+# installShellCompletion [--bash|--fish|--zsh] ([--name <name>] <path>)...5353+#5454+# Each path is installed into the appropriate directory for shell completions for the given shell.5555+# If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell.5656+# Otherwise the file extension will be examined to pick a shell. If the shell is unknown a warning5757+# will be logged and the command will return a non-zero status code after processing any remaining5858+# paths. Any of the shell flags will affect all subsequent paths (unless another shell flag is5959+# given).6060+#6161+# If the shell completion needs to be renamed before installing the optional `--name <name>` flag6262+# may be given. Any name provided with this flag only applies to the next path.6363+#6464+# For zsh completions, if the `--name` flag is not given, the path will be automatically renamed6565+# such that `foobar.zsh` becomes `_foobar`.6666+#6767+# This command accepts multiple shell flags in conjunction with multiple paths if you wish to6868+# install them all in one command:6969+#7070+# installShellCompletion share/completions/foobar.{bash,fish} --zsh share/completions/_foobar7171+#7272+# However it may be easier to read if each shell is split into its own invocation, especially when7373+# renaming is involved:7474+#7575+# installShellCompletion --bash --name foobar.bash share/completions.bash7676+# installShellCompletion --fish --name foobar.fish share/completions.fish7777+# installShellCompletion --zsh --name _foobar share/completions.zsh7878+#7979+# If any argument is `--` the remaining arguments will be treated as paths.8080+installShellCompletion() {8181+ local shell='' name='' retval=0 parseArgs=1 arg8282+ while { arg=$1; shift; }; do8383+ # Parse arguments8484+ if (( parseArgs )); then8585+ case "$arg" in8686+ --bash|--fish|--zsh)8787+ shell=${arg#--}8888+ continue;;8989+ --name)9090+ name=$19191+ shift || {9292+ echo 'installShellCompletion: error: --name flag expected an argument' >&29393+ return 19494+ }9595+ continue;;9696+ --name=*)9797+ # treat `--name=foo` the same as `--name foo`9898+ name=${arg#--name=}9999+ continue;;100100+ --?*)101101+ echo "installShellCompletion: warning: unknown flag ${arg%%=*}" >&2102102+ retval=2103103+ continue;;104104+ --)105105+ # treat remaining args as paths106106+ parseArgs=0107107+ continue;;108108+ esac109109+ fi110110+ if (( "${NIX_DEBUG:-0}" >= 1 )); then111111+ echo "installShellCompletion: installing $arg${name:+ as $name}"112112+ fi113113+ # if we get here, this is a path114114+ # Identify shell115115+ local basename116116+ basename=$(stripHash "$arg")117117+ local curShell=$shell118118+ if [[ -z "$curShell" ]]; then119119+ # auto-detect the shell120120+ case "$basename" in121121+ ?*.bash) curShell=bash;;122122+ ?*.fish) curShell=fish;;123123+ ?*.zsh) curShell=zsh;;124124+ *)125125+ if [[ "$basename" = _* && "$basename" != *.* ]]; then126126+ # probably zsh127127+ echo "installShellCompletion: warning: assuming path \`$arg' is zsh; please specify with --zsh" >&2128128+ curShell=zsh129129+ else130130+ echo "installShellCompletion: warning: unknown shell for path: $arg" >&2131131+ retval=2132132+ continue133133+ fi;;134134+ esac135135+ fi136136+ # Identify output path137137+ local outName sharePath138138+ outName=${name:-$basename}139139+ case "$curShell" in140140+ bash) sharePath=bash-completion/completions;;141141+ fish) sharePath=fish/vendor_completions.d;;142142+ zsh)143143+ sharePath=zsh/site-functions144144+ # only apply automatic renaming if we didn't have a manual rename145145+ if test -z "$name"; then146146+ # convert a name like `foo.zsh` into `_foo`147147+ outName=${outName%.zsh}148148+ outName=_${outName#_}149149+ fi;;150150+ *)151151+ # Our list of shells is out of sync with the flags we accept or extensions we detect.152152+ echo 'installShellCompletion: internal error' >&2153153+ return 1;;154154+ esac155155+ # Install file156156+ install -Dm644 -T "$arg" "${!outputBin:?}/share/$sharePath/$outName" || return157157+ # Clear the name, it only applies to one path158158+ name=159159+ done160160+ if [[ -n "$name" ]]; then161161+ echo 'installShellCompletion: error: --name flag given with no path' >&2162162+ return 1163163+ fi164164+ return $retval165165+}
+2-2
pkgs/data/fonts/sudo/default.nix
···11{ lib, fetchzip }:2233let44- version = "0.37";44+ version = "0.40";55in fetchzip {66 name = "sudo-font-${version}";77 url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";88- sha256 = "16x6vs016wz6rmd4p248ri9fn35xq7r3dc8hv4w2c4rz1xl8c099";88+ sha256 = "1nf025sjps4yysf6zkns5fzjgls6xdpifh7bz4ray9x8h5pz0z64";991010 postFetch = ''1111 mkdir -p $out/share/fonts/truetype/
+2-2
pkgs/data/fonts/victor-mono/default.nix
···2233let44 pname = "victor-mono";55- version = "1.2.1";55+ version = "1.2.5";66in fetchFromGitHub rec {77 name = "${pname}-${version}";88···2626 unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}2727 '';28282929- sha256 = "0347n3kdyrbg42rxcgnyghi21qz5iz6w30v7ms2vjal7pfm6h2vn";2929+ sha256 = "0dj5h45qk6abggj6mgm19sb0a7q0v4x41f2zds1ab79yd22gbjns";30303131 meta = with lib; {3232 description = "Free programming font with cursive italics and ligatures";
···2222 '';23232424 meta = with stdenv.lib; {2525- description = "Elementary icons for Xfce and other GTK+ desktops like GNOME";2525+ description = "Elementary icons for Xfce and other GTK desktops like GNOME";2626 homepage = https://github.com/shimmerproject/elementary-xfce;2727 license = licenses.gpl2;2828 # darwin cannot deal with file names differing only in case
+1-1
pkgs/data/themes/adementary/default.nix
···2727 '';28282929 meta = with stdenv.lib; {3030- description = "Adwaita-based gtk+ theme with design influence from elementary OS and Vertex gtk+ theme";3030+ description = "Adwaita-based GTK theme with design influence from elementary OS and Vertex GTK theme";3131 homepage = https://github.com/hrdwrrsk/adementary-theme;3232 license = licenses.gpl3;3333 maintainers = with maintainers; [ dtzWill ];
+1-1
pkgs/data/themes/greybird/default.nix
···2929 ];30303131 meta = with stdenv.lib; {3232- description = "Grey and blue theme from the Shimmer Project for GTK+-based environments";3232+ description = "Grey and blue theme from the Shimmer Project for GTK-based environments";3333 homepage = https://github.com/shimmerproject/Greybird;3434 license = with licenses; [ gpl2Plus ]; # or alternatively: cc-by-nc-sa-303535 platforms = platforms.linux;
+1-1
pkgs/data/themes/materia-theme/default.nix
···2929 '';30303131 meta = with stdenv.lib; {3232- description = "Material Design theme for GNOME/GTK+ based desktop environments";3232+ description = "Material Design theme for GNOME/GTK based desktop environments";3333 homepage = https://github.com/nana-4/materia-theme;3434 license = licenses.gpl2;3535 platforms = platforms.all;
+1-1
pkgs/data/themes/plata/default.nix
···8282 '';83838484 meta = with stdenv.lib; {8585- description = "A Gtk+ theme based on Material Design Refresh";8585+ description = "A GTK theme based on Material Design Refresh";8686 homepage = https://gitlab.com/tista500/plata-theme;8787 license = with licenses; [ gpl2 cc-by-sa-40 ];8888 platforms = platforms.linux;
+2-2
pkgs/desktops/gnome-2/desktop/vte/default.nix
···45454646 meta = {4747 homepage = https://www.gnome.org/;4848- description = "A library implementing a terminal emulator widget for GTK+";4848+ description = "A library implementing a terminal emulator widget for GTK";4949 longDescription = ''5050 VTE is a library (libvte) implementing a terminal emulator widget for5151- GTK+, and a minimal sample application (vte) using that. Vte is5151+ GTK, and a minimal sample application (vte) using that. Vte is5252 mainly used in gnome-terminal, but can also be used to embed a5353 console/terminal in games, editors, IDEs, etc. VTE supports Unicode and5454 character set conversion, as well as emulating any terminal known to
···29293030 meta = with stdenv.lib; {3131 homepage = https://projects.gnome.org/gtkglext/;3232- description = "GtkGLExt, an OpenGL extension to GTK+";3333- longDescription =3434- '' GtkGLExt is an OpenGL extension to GTK+. It provides additional GDK3535- objects which support OpenGL rendering in GTK+ and GtkWidget API3636- add-ons to make GTK+ widgets OpenGL-capable. In contrast to Janne3737- Löf's GtkGLArea, GtkGLExt provides a GtkWidget API that enables3838- OpenGL drawing for standard and custom GTK+ widgets.3939- '';3232+ description = "GtkGLExt, an OpenGL extension to GTK";3333+ longDescription = ''3434+ GtkGLExt is an OpenGL extension to GTK. It provides additional GDK3535+ objects which support OpenGL rendering in GTK and GtkWidget API3636+ add-ons to make GTK widgets OpenGL-capable. In contrast to Janne3737+ Löf's GtkGLArea, GtkGLExt provides a GtkWidget API that enables3838+ OpenGL drawing for standard and custom GTK widgets.3939+ '';4040 license = licenses.lgpl2Plus;4141 platforms = platforms.linux;4242 };
+1-1
pkgs/desktops/gnome-3/apps/glade/default.nix
···29293030 meta = with stdenv.lib; {3131 homepage = https://wiki.gnome.org/Apps/Glade;3232- description = "User interface designer for GTK+ applications";3232+ description = "User interface designer for GTK applications";3333 maintainers = gnome3.maintainers;3434 license = licenses.lgpl2;3535 platforms = platforms.linux;
+1-1
pkgs/desktops/gnome-3/games/hitori/default.nix
···58585959 meta = with stdenv.lib; {6060 homepage = https://wiki.gnome.org/Apps/Hitori;6161- description = "GTK+ application to generate and let you play games of Hitori";6161+ description = "GTK application to generate and let you play games of Hitori";6262 maintainers = gnome3.maintainers;6363 license = licenses.gpl2;6464 platforms = platforms.linux;
+1-1
pkgs/desktops/lxde/core/lxtask/default.nix
···2222 with all xfce4 dependencies removed, some bugs fixed, and some2323 improvement of UI. Although being part of LXDE, the Lightweight X112424 Desktop Environment, it's totally desktop independent and only2525- requires pure gtk+.2525+ requires pure GTK.2626 '';2727 homepage = https://wiki.lxde.org/en/LXTask;2828 license = stdenv.lib.licenses.gpl2Plus;
+2-2
pkgs/desktops/pantheon/granite/default.nix
···6666 '';67676868 meta = with stdenv.lib; {6969- description = "An extension to GTK+ used by elementary OS";6969+ description = "An extension to GTK used by elementary OS";7070 longDescription = ''7171- Granite is a companion library for GTK+ and GLib. Among other things, it provides complex widgets and convenience functions7171+ Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions7272 designed for use in apps built for elementary OS.7373 '';7474 homepage = https://github.com/elementary/granite;
···2424 '';25252626 meta = with stdenv.lib; {2727- description = "Port of the Unity GTK+ Module";2727+ description = "Port of the Unity GTK Module";2828 license = licenses.lgpl3;2929 maintainers = with maintainers; [ jD91mZM2 ];3030 };
···162162163163in164164165165-# We need all these X libraries when building AWT with GTK+.165165+# We need all these X libraries when building AWT with GTK.166166assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];167167168168stdenv.mkDerivation ({···341341 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the342342 # library headers and binaries, regarless of the language being compiled.343343 #344344- # Note: When building the Java AWT GTK+ peer, the build system doesn't honor344344+ # Note: When building the Java AWT GTK peer, the build system doesn't honor345345 # `--with-gmp' et al., e.g., when building346346 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add347347 # them to $CPATH and $LIBRARY_PATH in this case.
+2-2
pkgs/development/compilers/gcc/4.9/default.nix
···170170171171in172172173173-# We need all these X libraries when building AWT with GTK+.173173+# We need all these X libraries when building AWT with GTK.174174assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];175175176176stdenv.mkDerivation ({···354354 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the355355 # library headers and binaries, regarless of the language being compiled.356356 #357357- # Note: When building the Java AWT GTK+ peer, the build system doesn't honor357357+ # Note: When building the Java AWT GTK peer, the build system doesn't honor358358 # `--with-gmp' et al., e.g., when building359359 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add360360 # them to $CPATH and $LIBRARY_PATH in this case.
+2-2
pkgs/development/compilers/gcc/5/default.nix
···157157158158in159159160160-# We need all these X libraries when building AWT with GTK+.160160+# We need all these X libraries when building AWT with GTK.161161assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];162162163163stdenv.mkDerivation ({···359359 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the360360 # library headers and binaries, regarless of the language being compiled.361361 #362362- # Note: When building the Java AWT GTK+ peer, the build system doesn't honor362362+ # Note: When building the Java AWT GTK peer, the build system doesn't honor363363 # `--with-gmp' et al., e.g., when building364364 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add365365 # them to $CPATH and $LIBRARY_PATH in this case.
+2-2
pkgs/development/compilers/gcc/6/default.nix
···156156157157in158158159159-# We need all these X libraries when building AWT with GTK+.159159+# We need all these X libraries when building AWT with GTK.160160assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];161161162162stdenv.mkDerivation ({···366366 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the367367 # library headers and binaries, regarless of the language being compiled.368368 #369369- # Note: When building the Java AWT GTK+ peer, the build system doesn't honor369369+ # Note: When building the Java AWT GTK peer, the build system doesn't honor370370 # `--with-gmp' et al., e.g., when building371371 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add372372 # them to $CPATH and $LIBRARY_PATH in this case.
···2828 longDescription = ''2929 GNU guile-gnome brings the power of Scheme to your graphical application.3030 guile-gnome modules support the entire Gnome library stack: from Pango to3131- GnomeCanvas, Gtk+ to GStreamer, Glade to GtkSourceView, you will find in3131+ GnomeCanvas, GTK to GStreamer, Glade to GtkSourceView, you will find in3232 guile-gnome a comprehensive environment for developing modern3333 applications.3434 '';
+1-1
pkgs/development/libraries/amtk/default.nix
···32323333 meta = with stdenv.lib; {3434 homepage = https://wiki.gnome.org/Projects/Amtk;3535- description = "Actions, Menus and Toolbars Kit for GTK+ applications";3535+ description = "Actions, Menus and Toolbars Kit for GTK applications";3636 maintainers = [ maintainers.manveru ];3737 license = licenses.lgpl21Plus;3838 platforms = platforms.linux;
···3030 };31313232 meta = {3333- description = "A Glib/GTK+ set of document centric objects and utilities";3333+ description = "A Glib/GTK set of document centric objects and utilities";34343535 longDescription = ''3636 There are common operations for document centric applications that are
+1-1
pkgs/development/libraries/goocanvas/2.x.nix
···2323 PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR = "$(out)/lib/girepository-1.0";24242525 meta = with stdenv.lib; {2626- description = "Canvas widget for GTK+ based on the the Cairo 2D library";2626+ description = "Canvas widget for GTK based on the the Cairo 2D library";2727 homepage = https://wiki.gnome.org/Projects/GooCanvas;2828 license = licenses.lgpl2;2929 maintainers = with maintainers; [ ];
+1-1
pkgs/development/libraries/goocanvas/default.nix
···2020 };21212222 meta = with stdenv.lib; {2323- description = "Canvas widget for GTK+ based on the the Cairo 2D library";2323+ description = "Canvas widget for GTK based on the the Cairo 2D library";2424 homepage = "https://wiki.gnome.org/Projects/GooCanvas";2525 license = licenses.lgpl2;2626 platforms = stdenv.lib.platforms.unix;
+1-1
pkgs/development/libraries/gspell/default.nix
···2626 };27272828 meta = with stdenv.lib; {2929- description = "A spell-checking library for GTK+ applications";2929+ description = "A spell-checking library for GTK applications";3030 homepage = https://wiki.gnome.org/Projects/gspell;3131 license = licenses.lgpl21Plus;3232 maintainers = gnome3.maintainers;
···8383 platforms = platforms.all;84848585 longDescription = ''8686- GTK+ is a highly usable, feature rich toolkit for creating8686+ GTK is a highly usable, feature rich toolkit for creating8787 graphical user interfaces which boasts cross platform8888- compatibility and an easy to use API. GTK+ it is written in C,8888+ compatibility and an easy to use API. GTK it is written in C,8989 but has bindings to many other popular programming languages9090- such as C++, Python and C# among others. GTK+ is licensed9090+ such as C++, Python and C# among others. GTK is licensed9191 under the GNU LGPL 2.1 allowing development of both free and9292- proprietary software with GTK+ without any license fees or9292+ proprietary software with GTK without any license fees or9393 royalties.9494 '';9595 };
···181181 meta = {182182 description = "A multi-platform toolkit for creating graphical user interfaces";183183 longDescription = ''184184- GTK+ is a highly usable, feature rich toolkit for creating184184+ GTK is a highly usable, feature rich toolkit for creating185185 graphical user interfaces which boasts cross platform186186- compatibility and an easy to use API. GTK+ it is written in C,186186+ compatibility and an easy to use API. GTK it is written in C,187187 but has bindings to many other popular programming languages188188- such as C++, Python and C# among others. GTK+ is licensed188188+ such as C++, Python and C# among others. GTK is licensed189189 under the GNU LGPL 2.1 allowing development of both free and190190- proprietary software with GTK+ without any license fees or190190+ proprietary software with GTK without any license fees or191191 royalties.192192 '';193193 homepage = https://www.gtk.org/;
···1919 '';20202121 meta = with lib; {2222- description = "Provides integration for Gtk+ applications into the Mac desktop";2222+ description = "Provides integration for GTK applications into the Mac desktop";23232424 license = licenses.lgpl21;25252626- homepage = https://wiki.gnome.org/Projects/GTK+/OSX/Integration;2626+ homepage = https://wiki.gnome.org/Projects/GTK/OSX/Integration;27272828 maintainers = [ maintainers.matthewbauer ];2929 platforms = platforms.darwin;
···1818 dontStrip = true;19192020 meta = with stdenv.lib; {2121- description = "Binds some API from Gtk+ that isn't in Gtk# 2.12.x";2121+ description = "Binds some API from GTK that isn't in GTK# 2.12.x";2222 platforms = platforms.linux;2323 license = licenses.lgpl21;2424 };
+1-1
pkgs/development/libraries/gtkd/default.nix
···8787 installFlags = "prefix=$(out)";88888989 meta = with stdenv.lib; {9090- description = "D binding and OO wrapper for GTK+";9090+ description = "D binding and OO wrapper for GTK";9191 homepage = https://gtkd.org;9292 license = licenses.lgpl3Plus;9393 platforms = platforms.linux ++ platforms.darwin;
+1-1
pkgs/development/libraries/gtkdatabox/default.nix
···1313 propagatedBuildInputs = [ gtk2 ];14141515 meta = {1616- description = "Gtk+ widget for displaying large amounts of numerical data";1616+ description = "GTK widget for displaying large amounts of numerical data";17171818 license = stdenv.lib.licenses.lgpl2;1919
···2121 meta = {2222 homepage = "https://wiki.gnome.org/Projects/GTK%2B/GtkImageView";23232424- description = "Image viewer widget for GTK+";2424+ description = "Image viewer widget for GTK";25252626 longDescription =2727- '' GtkImageView is a simple image viewer widget for GTK+. Similar to2727+ '' GtkImageView is a simple image viewer widget for GTK. Similar to2828 the image viewer panes in gThumb or Eye of Gnome. It makes writing2929 image viewing and editing applications easy. Among its features3030 are: mouse and keyboard zooming; scrolling and dragging; adjustable
+2-2
pkgs/development/libraries/gtkmm/2.x.nix
···2020 enableParallelBuilding = true;21212222 meta = {2323- description = "C++ interface to the GTK+ graphical user interface library";2323+ description = "C++ interface to the GTK graphical user interface library";24242525 longDescription = ''2626 gtkmm is the official C++ interface for the popular GUI library2727- GTK+. Highlights include typesafe callbacks, and a2727+ GTK. Highlights include typesafe callbacks, and a2828 comprehensive set of widgets that are easily extensible via2929 inheritance. You can create user interfaces either in code or3030 with the Glade User Interface designer, using libglademm.
+2-2
pkgs/development/libraries/gtkmm/3.x.nix
···2929 };30303131 meta = with stdenv.lib; {3232- description = "C++ interface to the GTK+ graphical user interface library";3232+ description = "C++ interface to the GTK graphical user interface library";33333434 longDescription = ''3535 gtkmm is the official C++ interface for the popular GUI library3636- GTK+. Highlights include typesafe callbacks, and a3636+ GTK. Highlights include typesafe callbacks, and a3737 comprehensive set of widgets that are easily extensible via3838 inheritance. You can create user interfaces either in code or3939 with the Glade User Interface designer, using libglademm.
···4646 ];47474848 meta = {4949- description = "Indicator to take menus from applications and place them in the panel (GTK+ 2 library for Xfce/LXDE)";4949+ description = "Indicator to take menus from applications and place them in the panel (GTK 2 library for Xfce/LXDE)";5050 homepage = https://launchpad.net/indicators-gtk2;5151 license = licenses.gpl3;5252 platforms = platforms.linux;
···37373838 longDescription = ''3939 libchamplain is a C library providing a ClutterActor to display4040- maps. It also provides a Gtk+ widget to display maps in Gtk+4040+ maps. It also provides a GTK widget to display maps in GTK4141 applications. Python and Perl bindings are also available. It4242 supports numerous free map sources such as OpenStreetMap,4343 OpenCycleMap, OpenAerialMap, and Maps for free.
+1-1
pkgs/development/libraries/libdazzle/default.nix
···4444 meta = with stdenv.lib; {4545 description = "A library to delight your users with fancy features";4646 longDescription = ''4747- The libdazzle library is a companion library to GObject and Gtk+. It4747+ The libdazzle library is a companion library to GObject and GTK. It4848 provides various features that we wish were in the underlying library but4949 cannot for various reasons. In most cases, they are wildly out of scope5050 for those libraries. In other cases, our design isn't quite generic
+1-1
pkgs/development/libraries/libhandy/default.nix
···4747 '';48484949 meta = with stdenv.lib; {5050- description = "A library full of GTK+ widgets for mobile phones";5050+ description = "A library full of GTK widgets for mobile phones";5151 homepage = https://source.puri.sm/Librem5/libhandy;5252 license = licenses.lgpl21Plus;5353 maintainers = with maintainers; [ jtojnar ];
+1-1
pkgs/development/libraries/libnotify/default.nix
···2020 ];21212222 mesonFlags = [2323- # disable tests as we don't need to depend on gtk+(2/3)2323+ # disable tests as we don't need to depend on GTK (2/3)2424 "-Dtests=false"2525 "-Ddocbook_docs=disabled"2626 "-Dgtk_doc=false"
+2-2
pkgs/development/libraries/libsexy/default.nix
···11{ stdenv, fetchurl, pkgconfig22, glib, gtk2, libxml2, pango33}:44-44+55stdenv.mkDerivation {66 name = "libsexy-0.1.11";77···1515 buildInputs = [ glib gtk2 libxml2 pango ];16161717 meta = with stdenv.lib; {1818- description = "A collection of GTK+ widgets";1818+ description = "A collection of GTK widgets";1919 homepage = https://blog.chipx86.com/tag/libsexy/;2020 license = licenses.lgpl21;2121 maintainers = with maintainers; [ ];
···1717 };18181919 meta = with stdenv.lib; {2020- description = "Common build files of GLib/GTK+ C++ bindings";2020+ description = "Common build files of GLib/GTK C++ bindings";2121 longDescription = ''2222 The mm-common module provides the build infrastructure and utilities2323 shared among the GNOME C++ binding libraries. It is only a required
···1919 ];20202121 meta = with stdenv.lib; {2222- description = "Gtk+ widget for displaying OpenStreetMap tiles";2222+ description = "GTK widget for displaying OpenStreetMap tiles";2323 homepage = https://nzjrs.github.io/osm-gps-map;2424 license = licenses.gpl2Plus;2525 maintainers = with maintainers; [ hrdinka ];
+2-2
pkgs/development/libraries/pango/default.nix
···7070 Pango is a library for laying out and rendering of text, with an7171 emphasis on internationalization. Pango can be used anywhere7272 that text layout is needed, though most of the work on Pango so7373- far has been done in the context of the GTK+ widget toolkit.7474- Pango forms the core of text and font handling for GTK+-2.x.7373+ far has been done in the context of the GTK widget toolkit.7474+ Pango forms the core of text and font handling for GTK.7575 '';76767777 homepage = https://www.pango.org/;
+2-2
pkgs/development/libraries/pangomm/default.nix
···3636 Pango is a library for laying out and rendering of text, with an3737 emphasis on internationalization. Pango can be used anywhere3838 that text layout is needed, though most of the work on Pango so3939- far has been done in the context of the GTK+ widget toolkit.4040- Pango forms the core of text and font handling for GTK+-2.x.3939+ far has been done in the context of the GTK widget toolkit.4040+ Pango forms the core of text and font handling for GTK.4141 '';4242 };4343}
···1414 buildInputs = [ gtk2 ];15151616 meta = with stdenv.lib; {1717- description = "Additional style plugins for Qt5, including BB10, GTK+, Cleanlooks, Motif, Plastique";1717+ description = "Additional style plugins for Qt5, including BB10, GTK, Cleanlooks, Motif, Plastique";1818 homepage = http://blog.qt.io/blog/2012/10/30/cleaning-up-styles-in-qt5-and-adding-fusion/;1919 license = licenses.lgpl21;2020 maintainers = [ maintainers.gnidorah ];
+1-1
pkgs/development/libraries/rep-gtk/default.nix
···2121 '';22222323 meta = {2424- description = "GTK+ bindings for librep";2424+ description = "GTK bindings for librep";2525 homepage = http://sawfish.wikia.com;2626 license = licenses.gpl2;2727 maintainers = [ maintainers.AndersonTorres ];
+2-2
pkgs/development/libraries/spice-gtk/default.nix
···117117 ];118118119119 meta = with stdenv.lib; {120120- description = "A GTK+3 SPICE widget";120120+ description = "GTK 3 SPICE widget";121121 longDescription = ''122122- spice-gtk is a GTK+3 SPICE widget. It features glib-based122122+ spice-gtk is a GTK 3 SPICE widget. It features glib-based123123 objects for SPICE protocol parsing and a gtk widget for embedding124124 the SPICE display into other applications such as virt-manager.125125 Python bindings are available too.
+2-2
pkgs/development/libraries/vte/2.90.nix
···25252626 meta = with stdenv.lib; {2727 homepage = https://www.gnome.org/;2828- description = "A library implementing a terminal emulator widget for GTK+";2828+ description = "A library implementing a terminal emulator widget for GTK";2929 longDescription = ''3030 VTE is a library (libvte) implementing a terminal emulator widget for3131- GTK+, and a minimal sample application (vte) using that. Vte is3131+ GTK, and a minimal sample application (vte) using that. Vte is3232 mainly used in gnome-terminal, but can also be used to embed a3333 console/terminal in games, editors, IDEs, etc. VTE supports Unicode and3434 character set conversion, as well as emulating any terminal known to
+2-2
pkgs/development/libraries/vte/default.nix
···34343535 meta = with stdenv.lib; {3636 homepage = https://www.gnome.org/;3737- description = "A library implementing a terminal emulator widget for GTK+";3737+ description = "A library implementing a terminal emulator widget for GTK";3838 longDescription = ''3939 VTE is a library (libvte) implementing a terminal emulator widget for4040- GTK+, and a minimal sample application (vte) using that. Vte is4040+ GTK, and a minimal sample application (vte) using that. Vte is4141 mainly used in gnome-terminal, but can also be used to embed a4242 console/terminal in games, editors, IDEs, etc. VTE supports Unicode and4343 character set conversion, as well as emulating any terminal known to
+1-1
pkgs/development/libraries/webkitgtk/2.4.nix
···1818 version = "2.4.11";19192020 meta = with stdenv.lib; {2121- description = "Web content rendering engine, GTK+ port";2121+ description = "Web content rendering engine, GTK port";2222 homepage = http://webkitgtk.org/;2323 license = licenses.bsd2;2424 platforms = with platforms; linux ++ darwin;
···3535 stdenv.lib.maintainers.roconnor3636 ];3737 homepage = http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html;3838- description = "LablGTK is is an Objective Caml interface to gtk+";3838+ description = "LablGTK is is an Objective Caml interface to GTK";3939 license = stdenv.lib.licenses.lgpl21Plus;4040 };4141})
···1616 setupHook = ../generic-setup-hook.sh;17171818 meta = {1919- description = "A collection of bindings to use the GTK+ GUI toolkit version 2.x with Pure";1919+ description = "A collection of bindings to use the GTK GUI toolkit version 2.x with Pure";2020 homepage = http://puredocs.bitbucket.org/pure-gtk.html;2121 license = stdenv.lib.licenses.lgpl3Plus;2222 platforms = stdenv.lib.platforms.linux;
···3333 '';34343535 meta = with stdenv.lib; {3636- description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible";3636+ description = "A small GTK app for keeping track of your time. It's main goal is to be as unintrusive as possible";3737 homepage = https://mg.pov.lt/gtimelog/;3838 license = licenses.gpl2Plus;3939 maintainers = with maintainers; [ ocharles ];
···2222 '';23232424 meta = with lib; {2525- description = "a helper script that creates application bundles form GTK+ executables for macOS";2525+ description = "a helper script that creates application bundles form GTK executables for macOS";2626 maintainers = [ maintainers.matthewbauer ];2727 platforms = platforms.darwin;2828- homepage = https://wiki.gnome.org/Projects/GTK+/OSX/Bundling;2828+ homepage = https://wiki.gnome.org/Projects/GTK/OSX/Bundling;2929 license = licenses.gpl2;3030 };3131}
+1-1
pkgs/development/tools/misc/gtkperf/default.nix
···1616 patches = [ ./bench.patch ];17171818 meta = with stdenv.lib; {1919- description = "Application designed to test GTK+ performance";1919+ description = "Application designed to test GTK performance";2020 homepage = http://gtkperf.sourceforge.net/;2121 license = with licenses; [ gpl2 ];2222 maintainers = with maintainers; [ dtzWill ];
···1111 nativeBuildInputs = [ pkgconfig ];1212 buildInputs = [ gtk2 SDL nasm zlib libpng libGLU_combined ];13131414- # Work around build failures on recent GTK+.1414+ # Work around build failures on recent GTK.1515 # See http://ubuntuforums.org/showthread.php?p=105358371616 NIX_CFLAGS_COMPILE = "-UGTK_DISABLE_DEPRECATED -UGSEAL_ENABLE";1717
+1-1
pkgs/misc/screensavers/xlockmore/default.nix
···1010 curlOpts = "--user-agent 'Mozilla/5.0'";1111 };12121313- # Optionally, it can use GTK+.1313+ # Optionally, it can use GTK.1414 buildInputs = [ pam libX11 libXext libXinerama libXdmcp libXt ];15151616 # Don't try to install `xlock' setuid. Password authentication works
+1-1
pkgs/misc/themes/adapta/default.nix
···4040 ];41414242 meta = with stdenv.lib; {4343- description = "An adaptive Gtk+ theme based on Material Design Guidelines";4343+ description = "An adaptive GTK theme based on Material Design Guidelines";4444 homepage = https://github.com/adapta-project/adapta-gtk-theme;4545 license = with licenses; [ gpl2 cc-by-sa-30 ];4646 platforms = platforms.linux;
···31313232 meta = with stdenv.lib; {3333 inherit (src.meta) homepage;3434- description = "A Material Design theme for GNOME/GTK+ based desktop environments";3434+ description = "A Material Design theme for GNOME/GTK based desktop environments";3535 license = licenses.gpl2;3636 platforms = platforms.all;3737 maintainers = [ maintainers.fpletz ];
···1212# we need to use stdenv.mkDerivation in order not to pollute the libv4l’s closure with Qt1313in stdenv.mkDerivation rec {1414 pname = "v4l-utils";1515- version = "1.16.6";1515+ version = "1.16.7";16161717 src = fetchurl {1818- url = "https://linuxtv.org/downloads/v4l-utils/${pname}-${version}.tar.bz2";1919- sha256 = "1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr";1818+ url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2";1919+ sha256 = "1ng0x3wj3a1ckfd00yxa4za43xms92gdp7rdag060b7p39z7m4gf";2020 };21212222 outputs = [ "out" "dev" ];
···3939 longDescription = ''4040 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.41414242- 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.4242+ 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.43434444 INFO: To work properly, this tool needs "programs.dconf.enable = true" on nixos or dconf installed. A reboot may be required after installing dconf.4545 '';
···11+diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py22+index a8a3ec07c1..bcc9b86c37 10064433+--- a/src/pybind/mgr/dashboard/module.py44++++ b/src/pybind/mgr/dashboard/module.py55+@@ -25,40 +25,6 @@ except ImportError:66+77+ from .services.sso import load_sso_db88+99+-# The SSL code in CherryPy 3.5.0 is buggy. It was fixed long ago,1010+-# but 3.5.0 is still shipping in major linux distributions1111+-# (Fedora 27, Ubuntu Xenial), so we must monkey patch it to get SSL working.1212+-if cherrypy is not None:1313+- v = StrictVersion(cherrypy.__version__)1414+- # It was fixed in 3.7.0. Exact lower bound version is probably earlier,1515+- # but 3.5.0 is what this monkey patch is tested on.1616+- if StrictVersion("3.5.0") <= v < StrictVersion("3.7.0"):1717+- from cherrypy.wsgiserver.wsgiserver2 import HTTPConnection,\1818+- CP_fileobject1919+-2020+- def fixed_init(hc_self, server, sock, makefile=CP_fileobject):2121+- hc_self.server = server2222+- hc_self.socket = sock2323+- hc_self.rfile = makefile(sock, "rb", hc_self.rbufsize)2424+- hc_self.wfile = makefile(sock, "wb", hc_self.wbufsize)2525+- hc_self.requests_seen = 02626+-2727+- HTTPConnection.__init__ = fixed_init2828+-2929+-# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify3030+-# that the ports its listening on are in fact bound. When using the any address3131+-# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes)3232+-# ipv6 isn't yet configured / supported and CherryPy throws an uncaught3333+-# exception.3434+-if cherrypy is not None:3535+- v = StrictVersion(cherrypy.__version__)3636+- # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on3737+- # centos:7) and back to at least 3.0.0.3838+- if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"):3939+- # https://github.com/cherrypy/cherrypy/issues/11004040+- from cherrypy.process import servers4141+- servers.wait_for_occupied_port = lambda host, port: None4242+-4343+ if 'COVERAGE_ENABLED' in os.environ:4444+ import coverage4545+ __cov = coverage.Coverage(config_file="{}/.coveragerc".format(os.path.dirname(__file__)),4646+diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py4747+index b7fecf8d85..dfd4160591 1006444848+--- a/src/pybind/mgr/prometheus/module.py4949++++ b/src/pybind/mgr/prometheus/module.py5050+@@ -18,20 +18,6 @@ from rbd import RBD5151+ DEFAULT_ADDR = '::'5252+ DEFAULT_PORT = 92835353+5454+-# When the CherryPy server in 3.2.2 (and later) starts it attempts to verify5555+-# that the ports its listening on are in fact bound. When using the any address5656+-# "::" it tries both ipv4 and ipv6, and in some environments (e.g. kubernetes)5757+-# ipv6 isn't yet configured / supported and CherryPy throws an uncaught5858+-# exception.5959+-if cherrypy is not None:6060+- v = StrictVersion(cherrypy.__version__)6161+- # the issue was fixed in 3.2.3. it's present in 3.2.2 (current version on6262+- # centos:7) and back to at least 3.0.0.6363+- if StrictVersion("3.1.2") <= v < StrictVersion("3.2.3"):6464+- # https://github.com/cherrypy/cherrypy/issues/11006565+- from cherrypy.process import servers6666+- servers.wait_for_occupied_port = lambda host, port: None6767+-6868+ # cherrypy likes to sys.exit on error. don't let it take us down too!6969+ def os_exit_noop(*args, **kwargs):7070+ pass
···3434 ];35353636 meta = with stdenv.lib; {3737- description = "A searchable command palette in every modern GTK+ application";3737+ description = "A searchable command palette in every modern GTK application";3838 homepage = https://github.com/p-e-w/plotinus;3939 maintainers = with maintainers; [ samdroid-apps ];4040 platforms = platforms.linux;
···4242 '';43434444 meta = with stdenv.lib; {4545- description = "A GTK+ Gnutella client, optimized for speed and scalability";4545+ description = "A GTK Gnutella client, optimized for speed and scalability";4646 homepage = "http://gtk-gnutella.sourceforge.net/"; # Code: https://github.com/gtk-gnutella/gtk-gnutella4747 changelog = "https://raw.githubusercontent.com/gtk-gnutella/gtk-gnutella/v${version}/ChangeLog";4848 license = licenses.gpl2Plus;
+1-1
pkgs/tools/networking/uget/default.nix
···3434 ''gappsWrapperArgs+=(--suffix PATH : "${aria2}/bin")'';35353636 meta = with stdenv.lib; {3737- description = "Download manager using gtk+ and libcurl";3737+ description = "Download manager using GTK and libcurl";3838 longDescription = ''3939 uGet is a VERY Powerful download manager application with a large4040 inventory of features but is still very light-weight and low on
···6060 license = licenses.gpl2Plus;6161 platforms = platforms.all;6262 longDescription = ''6363- Pinentry provides a console and (optional) GTK+ and Qt GUIs allowing users6363+ Pinentry provides a console and (optional) GTK and Qt GUIs allowing users6464 to enter a passphrase when `gpg' or `gpg2' is run and needs it.6565 '';6666 maintainers = [ maintainers.ttuegel ];
···75377537 };75387538 propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];75397539 meta = {75407540- description = "Perl interface to the 3.x series of the gtk+ toolkit";75407540+ description = "Perl interface to the 3.x series of the GTK toolkit";75417541 license = stdenv.lib.licenses.lgpl21Plus;75427542 };75437543 };···1937919379 };1938019380 propagatedBuildInputs = [ AlienWxWidgets ];1938119381 # Testing requires an X server:1938219382- # Error: Unable to initialize GTK+, is DISPLAY set properly?"1938219382+ # Error: Unable to initialize GTK, is DISPLAY set properly?"1938319383 doCheck = false;1938419384 buildInputs = [ ExtUtilsXSpp ];1938519385 };
···102102 # Needed for support103103 jobs.nix-info.x86_64-linux104104 jobs.nix-info-tested.x86_64-linux105105- # Ensure that X11/GTK+ are in order.105105+ # Ensure that X11/GTK are in order.106106 jobs.thunderbird.x86_64-linux107107 jobs.unar.x86_64-linux108108