diff --git a/doc/functions.xml b/doc/functions.xml index 73b178b061f..908e9571ed6 100644 --- a/doc/functions.xml +++ b/doc/functions.xml @@ -89,27 +89,27 @@ in ... <pkg>.overrideDerivation - Do not use this function in Nixpkgs. Because it breaks - package abstraction and doesn’t provide error checking for - function arguments, it is only intended for ad-hoc customisation - (such as in ~/.nixpkgs/config.nix). - - - - Additionally, overrideDerivation forces an evaluation - of the Derivation which can be quite a performance penalty if there are many - overrides used. + Do not use this function in Nixpkgs as it evaluates a Derivation + before modifying it, which breaks package abstraction and removes + error-checking of function arguments. In addition, this + evaluation-per-function application incurs a performance penalty, + which can become a problem if many overrides are used. + It is only intended for ad-hoc customisation, such as in + ~/.nixpkgs/config.nix. - The function overrideDerivation is usually available for all the - derivations in the nixpkgs expression (pkgs). + The function overrideDerivation creates a new derivation + based on an existing one by overriding the original's attributes with + the attribute set produced by the specified function. + This function is available on all + derivations defined using the makeOverridable function. + Most standard derivation-producing functions, such as + stdenv.mkDerivation, are defined using this + function, which means most packages in the nixpkgs expression, + pkgs, have this function. - - It is used to create a new derivation by overriding the attributes of - the original derivation according to the given function. - Example usage: @@ -125,9 +125,9 @@ in ... - In the above example, the name, src and patches of the derivation - will be overridden, while all other attributes will be retained from the - original derivation. + In the above example, the name, src, + and patches of the derivation will be overridden, while + all other attributes will be retained from the original derivation. @@ -135,6 +135,20 @@ in ... the original derivation. + + + A package's attributes are evaluated *before* being modified by + the overrideDerivation function. + For example, the name attribute reference + in url = "mirror://gnu/hello/${name}.tar.gz"; + is filled-in *before* the overrideDerivation function + modifies the attribute set. This means that overriding the + name attribute, in this example, *will not* change the + value of the url attribute. Instead, we need to override + both the name *and* url attributes. + + +
diff --git a/lib/attrsets.nix b/lib/attrsets.nix index 636cb257d6b..f47e481c58a 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -457,7 +457,6 @@ rec { /*** deprecated stuff ***/ - deepSeqAttrs = throw "removed 2016-02-29 because unused and broken"; zipWithNames = zipAttrsWithNames; zip = builtins.trace "lib.zip is deprecated, use lib.zipAttrsWith instead" zipAttrsWith; diff --git a/lib/lists.nix b/lib/lists.nix index c810c8c2f5f..6712e5cc93f 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -374,8 +374,4 @@ rec { */ subtractLists = e: filter (x: !(elem x e)); - /*** deprecated stuff ***/ - - deepSeqList = throw "removed 2016-02-29 because unused and broken"; - } diff --git a/lib/maintainers.nix b/lib/maintainers.nix index ca4dd4f98e8..3d83a0a3a1c 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -15,6 +15,7 @@ adev = "Adrien Devresse "; Adjective-Object = "Maxwell Huang-Hobbs "; adnelson = "Allen Nelson "; + adolfogc = "Adolfo E. García Castro "; aespinosa = "Allan Espinosa "; aflatter = "Alexander Flatter "; aforemny = "Alexander Foremny "; @@ -185,6 +186,7 @@ joamaki = "Jussi Maki "; joelmo = "Joel Moberg "; joelteon = "Joel Taylor "; + joko = "Ioannis Koutras "; jpbernardy = "Jean-Philippe Bernardy "; jraygauthier = "Raymond Gauthier "; juliendehos = "Julien Dehos "; @@ -231,6 +233,7 @@ markus1189 = "Markus Hauck "; markWot = "Markus Wotringer "; martijnvermaat = "Martijn Vermaat "; + martingms = "Martin Gammelsæter "; matejc = "Matej Cotman "; mathnerd314 = "Mathnerd314 "; matthiasbeyer = "Matthias Beyer "; @@ -420,6 +423,7 @@ wscott = "Wayne Scott "; wyvie = "Elijah Rum "; yarr = "Dmitry V. "; + yurrriq = "Eric Bailey "; z77z = "Marco Maggesi "; zagy = "Christian Zagrodnick "; zef = "Zef Hemel "; diff --git a/maintainers/scripts/generate-kde-frameworks.sh b/maintainers/scripts/generate-kde-frameworks.sh index aa693ced704..e690662b3f2 100755 --- a/maintainers/scripts/generate-kde-frameworks.sh +++ b/maintainers/scripts/generate-kde-frameworks.sh @@ -1,3 +1,3 @@ #!/bin/sh -./fetch-kde-qt.sh http://download.kde.org/stable/frameworks/5.22/ -A '*.tar.xz' +./fetch-kde-qt.sh http://download.kde.org/stable/frameworks/5.24/ -A '*.tar.xz' diff --git a/maintainers/scripts/generate-kde-plasma.sh b/maintainers/scripts/generate-kde-plasma.sh index fa804758f09..ad916f3a25b 100755 --- a/maintainers/scripts/generate-kde-plasma.sh +++ b/maintainers/scripts/generate-kde-plasma.sh @@ -1,3 +1,3 @@ #!/bin/sh -./fetch-kde-qt.sh http://download.kde.org/stable/plasma/5.6.5/ -A '*.tar.xz' +./fetch-kde-qt.sh http://download.kde.org/stable/plasma/5.7.0/ -A '*.tar.xz' diff --git a/nixos/doc/manual/man-nixos-version.xml b/nixos/doc/manual/man-nixos-version.xml new file mode 100644 index 00000000000..db7440977c9 --- /dev/null +++ b/nixos/doc/manual/man-nixos-version.xml @@ -0,0 +1,102 @@ + + + + nixos-version + 8 + NixOS + + + + nixos-version + show the version of nixpkgs NixOS was built from + + + + + nixos-version + + + + + +Description + +This command describes the version of nixpkgs used to build +NixOS. + +By default the output includes: + + + The NixOS release + Number of commits since the release + Git SHA of the released commit + Codename of the NixOS release + + + +Example + +Here is an example output, and corresponding information: +$ nixos-version +16.03.1011.6317da4 (Emu) + + + + + + + + Attribute + Value + + + + + NixOS Release + 16.03 + + + Commit Count + 1011 + + + Commit SHA + 6317da4 + + + Release Codename + Emu + + + + + + + + + + + +Options + +This command accepts the following options: + + + + + + + + The output will be the full hash of the git commit +$ nixos-version --hash +6317da40006f6bc2480c6781999c52d88dde2acf + + + + + + + + diff --git a/nixos/doc/manual/man-pages.xml b/nixos/doc/manual/man-pages.xml index 97a2c16d406..e945e0e6263 100644 --- a/nixos/doc/manual/man-pages.xml +++ b/nixos/doc/manual/man-pages.xml @@ -27,5 +27,6 @@ + diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh index 192f608e138..e26caa19164 100755 --- a/nixos/maintainers/scripts/ec2/create-amis.sh +++ b/nixos/maintainers/scripts/ec2/create-amis.sh @@ -13,8 +13,11 @@ echo "NixOS version is $version ($major)" rm -f ec2-amis.nix +types="hvm pv" +stores="ebs s3" +regions="eu-west-1 eu-central-1 us-east-1 us-west-1 us-west-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2 sa-east-1 ap-south-1" -for type in hvm pv; do +for type in $types; do link=$stateDir/$type imageFile=$link/nixos.qcow2 system=x86_64-linux @@ -31,7 +34,7 @@ for type in hvm pv; do --arg configuration "{ imports = [ ]; ec2.hvm = $hvmFlag; }" fi - for store in ebs s3; do + for store in $stores; do bucket=nixos-amis bucketDir="$version-$type-$store" @@ -39,7 +42,7 @@ for type in hvm pv; do prevAmi= prevRegion= - for region in eu-west-1 eu-central-1 us-east-1 us-west-1 us-west-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 sa-east-1; do + for region in $regions; do name=nixos-$version-$arch-$type-$store description="NixOS $system $version ($type-$store)" @@ -51,10 +54,11 @@ for type in hvm pv; do echo "doing $name in $region..." if [ -n "$prevAmi" ]; then - ami=$(ec2-copy-image \ + ami=$(aws ec2 copy-image \ --region "$region" \ - --source-region "$prevRegion" --source-ami-id "$prevAmi" \ - --name "$name" --description "$description" | cut -f 2) + --source-region "$prevRegion" --source-image-id "$prevAmi" \ + --name "$name" --description "$description" | json -q .ImageId) + if [ "$ami" = null ]; then break; fi else if [ $store = s3 ]; then @@ -85,12 +89,12 @@ for type in hvm pv; do ec2-upload-bundle \ -m $imageDir/$type.raw.manifest.xml \ -b "$bucket/$bucketDir" \ - -a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" \ + -a "$AWS_ACCESS_KEY_ID" -s "$AWS_SECRET_ACCESS_KEY" \ --location EU touch $imageDir/uploaded fi - extraFlags="$bucket/$bucketDir/$type.raw.manifest.xml" + extraFlags="--image-location $bucket/$bucketDir/$type.raw.manifest.xml" else @@ -115,7 +119,8 @@ for type in hvm pv; do if [ -z "$snapId" -a -z "$volId" -a -z "$taskId" ]; then echo "importing $vhdFile..." taskId=$(ec2-import-volume $vhdFile --no-upload -f vhd \ - -o "$EC2_ACCESS_KEY" -w "$EC2_SECRET_KEY" \ + -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \ + -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" \ --region "$region" -z "${region}a" \ --bucket "$bucket" --prefix "$bucketDir/" \ | tee /dev/stderr \ @@ -125,15 +130,16 @@ for type in hvm pv; do if [ -z "$snapId" -a -z "$volId" ]; then ec2-resume-import $vhdFile -t "$taskId" --region "$region" \ - -o "$EC2_ACCESS_KEY" -w "$EC2_SECRET_KEY" + -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \ + -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" fi # Wait for the volume creation to finish. if [ -z "$snapId" -a -z "$volId" ]; then echo "waiting for import to finish..." while true; do - volId=$(ec2-describe-conversion-tasks "$taskId" --region "$region" | sed 's/.*VolumeId.*\(vol-[0-9a-f]\+\).*/\1/ ; t ; d') - if [ -n "$volId" ]; then break; fi + volId=$(aws ec2 describe-conversion-tasks --conversion-task-ids "$taskId" --region "$region" | jq -r .ConversionTasks[0].ImportVolume.Volume.Id) + if [ "$volId" != null ]; then break; fi sleep 10 done @@ -143,22 +149,24 @@ for type in hvm pv; do # Delete the import task. if [ -n "$volId" -a -n "$taskId" ]; then echo "removing import task..." - ec2-delete-disk-image -t "$taskId" --region "$region" -o "$EC2_ACCESS_KEY" -w "$EC2_SECRET_KEY" || true + ec2-delete-disk-image -t "$taskId" --region "$region" \ + -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \ + -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" || true rm -f $stateDir/$region.$type.task-id fi # Create a snapshot. if [ -z "$snapId" ]; then echo "creating snapshot..." - snapId=$(ec2-create-snapshot "$volId" --region "$region" | cut -f 2) + snapId=$(aws ec2 create-snapshot --volume-id "$volId" --region "$region" --description "$description" | jq -r .SnapshotId) + if [ "$snapId" = null ]; then exit 1; fi echo -n "$snapId" > $stateDir/$region.$type.snap-id - ec2-create-tags "$snapId" -t "Name=$description" --region "$region" fi # Wait for the snapshot to finish. echo "waiting for snapshot to finish..." while true; do - status=$(ec2-describe-snapshots "$snapId" --region "$region" | head -n1 | cut -f 4) + status=$(aws ec2 describe-snapshots --snapshot-ids "$snapId" --region "$region" | jq -r .Snapshots[0].State) if [ "$status" = completed ]; then break; fi sleep 10 done @@ -166,35 +174,50 @@ for type in hvm pv; do # Delete the volume. if [ -n "$volId" ]; then echo "deleting volume..." - ec2-delete-volume "$volId" --region "$region" || true + aws ec2 delete-volume --volume-id "$volId" --region "$region" || true rm -f $stateDir/$region.$type.vol-id fi - extraFlags="-b /dev/sda1=$snapId:$vhdFileLogicalGigaBytes:true:gp2" + blockDeviceMappings="DeviceName=/dev/sda1,Ebs={SnapshotId=$snapId,VolumeSize=$vhdFileLogicalGigaBytes,DeleteOnTermination=true,VolumeType=gp2}" + extraFlags="" if [ $type = pv ]; then - extraFlags+=" --root-device-name=/dev/sda1" + extraFlags+=" --root-device-name /dev/sda1" + else + extraFlags+=" --root-device-name /dev/sda1" + extraFlags+=" --sriov-net-support simple" + extraFlags+=" --ena-support" fi - extraFlags+=" -b /dev/sdb=ephemeral0 -b /dev/sdc=ephemeral1 -b /dev/sdd=ephemeral2 -b /dev/sde=ephemeral3" + blockDeviceMappings+=" DeviceName=/dev/sdb,VirtualName=ephemeral0" + blockDeviceMappings+=" DeviceName=/dev/sdc,VirtualName=ephemeral1" + blockDeviceMappings+=" DeviceName=/dev/sdd,VirtualName=ephemeral2" + blockDeviceMappings+=" DeviceName=/dev/sde,VirtualName=ephemeral3" + fi + + if [ $type = hvm ]; then + extraFlags+=" --sriov-net-support simple" + extraFlags+=" --ena-support" fi # Register the AMI. if [ $type = pv ]; then - kernel=$(ec2-describe-images -o amazon --filter "manifest-location=*pv-grub-hd0_1.04-$arch*" --region "$region" | cut -f 2) - [ -n "$kernel" ] + kernel=$(aws ec2 describe-images --owner amazon --filters "Name=name,Values=pv-grub-hd0_1.04-$arch.gz" | jq -r .Images[0].ImageId) + if [ "$kernel" = null ]; then break; fi echo "using PV-GRUB kernel $kernel" extraFlags+=" --virtualization-type paravirtual --kernel $kernel" else extraFlags+=" --virtualization-type hvm" fi - ami=$(ec2-register \ - -n "$name" \ - -d "$description" \ + ami=$(aws ec2 register-image \ + --name "$name" \ + --description "$description" \ --region "$region" \ --architecture "$arch" \ - $extraFlags | cut -f 2) + --block-device-mappings $blockDeviceMappings \ + $extraFlags | jq -r .ImageId) + if [ "$ami" = null ]; then break; fi fi echo -n "$ami" > $amiFile @@ -204,23 +227,45 @@ for type in hvm pv; do ami=$(cat $amiFile) fi - if [ -z "$NO_WAIT" -o -z "$prevAmi" ]; then - echo "waiting for AMI..." - while true; do - status=$(ec2-describe-images "$ami" --region "$region" | head -n1 | cut -f 5) - if [ "$status" = available ]; then break; fi - sleep 10 - done - - ec2-modify-image-attribute \ - --region "$region" "$ami" -l -a all - fi - echo "region = $region, type = $type, store = $store, ami = $ami" + if [ -z "$prevAmi" ]; then prevAmi="$ami" prevRegion="$region" fi + done + + done + +done + +for type in $types; do + link=$stateDir/$type + system=x86_64-linux + arch=x86_64 + + for store in $stores; do + + for region in $regions; do + + name=nixos-$version-$arch-$type-$store + amiFile=$stateDir/$region.$type.$store.ami-id + ami=$(cat $amiFile) + + echo "region = $region, type = $type, store = $store, ami = $ami" + + echo -n "waiting for AMI..." + while true; do + status=$(aws ec2 describe-images --image-ids "$ami" --region "$region" | jq -r .Images[0].State) + if [ "$status" = available ]; then break; fi + sleep 10 + echo -n '.' + done + echo + + # Make the image public. + aws ec2 modify-image-attribute \ + --image-id "$ami" --region "$region" --launch-permission 'Add={Group=all}' echo " \"$major\".$region.$type-$store = \"$ami\";" >> ec2-amis.nix done diff --git a/nixos/modules/i18n/input-method/fcitx.nix b/nixos/modules/i18n/input-method/fcitx.nix index bdefd2d2d59..e97bb9f80eb 100644 --- a/nixos/modules/i18n/input-method/fcitx.nix +++ b/nixos/modules/i18n/input-method/fcitx.nix @@ -4,7 +4,7 @@ with lib; let cfg = config.i18n.inputMethod.fcitx; - fcitxPackage = pkgs.fcitx-with-plugins.override { plugins = cfg.engines; }; + fcitxPackage = pkgs.fcitx.override { plugins = cfg.engines; }; fcitxEngine = types.package // { name = "fcitx-engine"; check = x: (lib.types.package.check x) && (attrByPath ["meta" "isFcitxEngine"] false x); diff --git a/nixos/modules/installer/tools/nixos-version.sh b/nixos/modules/installer/tools/nixos-version.sh index 51aa2dd8232..77a1b458a34 100644 --- a/nixos/modules/installer/tools/nixos-version.sh +++ b/nixos/modules/installer/tools/nixos-version.sh @@ -1,6 +1,10 @@ #! @shell@ case "$1" in + -h|--help) + exec man nixos-version + exit 1 + ;; --hash|--revision) echo "@nixosRevision@" ;; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 034943be9e4..7a8491d6836 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -368,6 +368,7 @@ ./services/networking/ntopng.nix ./services/networking/ntpd.nix ./services/networking/nylon.nix + ./services/networking/offlineimap.nix ./services/networking/oidentd.nix ./services/networking/openfire.nix ./services/networking/openntpd.nix diff --git a/nixos/modules/programs/bash/inputrc b/nixos/modules/programs/bash/inputrc index e4eabc052c5..f339eb649ed 100644 --- a/nixos/modules/programs/bash/inputrc +++ b/nixos/modules/programs/bash/inputrc @@ -6,6 +6,7 @@ set meta-flag on set input-meta on set convert-meta off set output-meta on +set colored-stats on #set mark-symlinked-directories on diff --git a/nixos/modules/services/games/factorio.nix b/nixos/modules/services/games/factorio.nix index 10f3daea69e..90834c5b260 100644 --- a/nixos/modules/services/games/factorio.nix +++ b/nixos/modules/services/games/factorio.nix @@ -78,7 +78,7 @@ in test -e ${stateDir}/saves/${cfg.saveName}.zip || \ ${pkgs.factorio-headless}/bin/factorio \ --config=${cfg.configFile} \ - --create=${cfg.saveName} + --create=${stateDir}/saves/${cfg.saveName}.zip ''; serviceConfig = { @@ -93,7 +93,7 @@ in "${pkgs.factorio-headless}/bin/factorio" "--config=${cfg.configFile}" "--port=${toString cfg.port}" - "--start-server=${cfg.saveName}" + "--start-server=${stateDir}/saves/${cfg.saveName}.zip" ]; }; }; diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix index c5dd1e71c18..633ceaebfa4 100644 --- a/nixos/modules/services/networking/ddclient.nix +++ b/nixos/modules/services/networking/ddclient.nix @@ -7,22 +7,8 @@ let stateDir = "/var/spool/ddclient"; ddclientUser = "ddclient"; - ddclientFlags = "-foreground -verbose -noquiet -file ${ddclientCfg}"; + ddclientFlags = "-foreground -verbose -noquiet -file /etc/ddclient.conf"; ddclientPIDFile = "${stateDir}/ddclient.pid"; - ddclientCfg = pkgs.writeText "ddclient.conf" '' - daemon=600 - cache=${stateDir}/ddclient.cache - pid=${ddclientPIDFile} - use=${config.services.ddclient.use} - login=${config.services.ddclient.username} - password=${config.services.ddclient.password} - protocol=${config.services.ddclient.protocol} - server=${config.services.ddclient.server} - ssl=${if config.services.ddclient.ssl then "yes" else "no"} - wildcard=YES - ${config.services.ddclient.domain} - ${config.services.ddclient.extraConfig} - ''; in @@ -122,10 +108,30 @@ in home = stateDir; }; + environment.etc."ddclient.conf" = { + uid = config.ids.uids.ddclient; + mode = "0600"; + text = '' + daemon=600 + cache=${stateDir}/ddclient.cache + pid=${ddclientPIDFile} + use=${config.services.ddclient.use} + login=${config.services.ddclient.username} + password=${config.services.ddclient.password} + protocol=${config.services.ddclient.protocol} + server=${config.services.ddclient.server} + ssl=${if config.services.ddclient.ssl then "yes" else "no"} + wildcard=YES + ${config.services.ddclient.domain} + ${config.services.ddclient.extraConfig} + ''; + }; + systemd.services.ddclient = { description = "Dynamic DNS Client"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; + restartTriggers = [ config.environment.etc."ddclient.conf".source ]; serviceConfig = { # Uncomment this if too many problems occur: diff --git a/nixos/modules/services/networking/offlineimap.nix b/nixos/modules/services/networking/offlineimap.nix new file mode 100644 index 00000000000..31ce9280f31 --- /dev/null +++ b/nixos/modules/services/networking/offlineimap.nix @@ -0,0 +1,73 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.offlineimap; +in { + + options.services.offlineimap = { + enable = mkEnableOption "Offlineimap, a software to dispose your mailbox(es) as a local Maildir(s)."; + + install = mkOption { + type = types.bool; + default = false; + example = true; + description = '' + Whether to install a user service for Offlineimap. Once + the service is started, emails will be fetched automatically. + + The service must be manually started for each user with + "systemctl --user start offlineimap" or globally through + services.offlineimap.enable. + ''; + }; + + package = mkOption { + type = types.package; + default = pkgs.offlineimap; + defaultText = "pkgs.offlineimap"; + description = "Offlineimap derivation to use."; + }; + + path = mkOption { + type = types.listOf types.path; + default = []; + example = literalExample "[ pkgs.pass pkgs.bash pkgs.notmuch ]"; + description = "List of derivations to put in Offlineimap's path."; + }; + + onCalendar = mkOption { + type = types.str; + default = "*:0/3"; # every 3 minutes + description = "How often is offlineimap started. Default is '*:0/3' meaning every 3 minutes. See systemd.time(7) for more information about the format."; + }; + + timeoutStartSec = mkOption { + type = types.str; + default = "120sec"; # Kill if still alive after 2 minutes + description = "How long waiting for offlineimap before killing it. Default is '120sec' meaning every 2 minutes. See systemd.time(7) for more information about the format."; + }; + }; + config = mkIf (cfg.enable || cfg.install) { + systemd.user.services.offlineimap = { + description = "Offlineimap: a software to dispose your mailbox(es) as a local Maildir(s)"; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${cfg.package}/bin/offlineimap -u basic -o -1"; + TimeoutStartSec = cfg.timeoutStartSec; + }; + path = cfg.path; + }; + environment.systemPackages = [ "${cfg.package}" ]; + systemd.user.timers.offlineimap = { + description = "offlineimap timer"; + timerConfig = { + Unit = "offlineimap.service"; + OnCalendar = cfg.onCalendar; + # start immediately after computer is started: + Persistent = "true"; + }; + } // optionalAttrs cfg.enable { wantedBy = [ "default.target" ]; }; + }; +} diff --git a/nixos/modules/system/boot/coredump.nix b/nixos/modules/system/boot/coredump.nix index 793c7515c76..b27a35b6257 100644 --- a/nixos/modules/system/boot/coredump.nix +++ b/nixos/modules/system/boot/coredump.nix @@ -36,6 +36,8 @@ with lib; config = mkMerge [ (mkIf config.systemd.coredump.enable { + systemd.additionalUpstreamSystemUnits = [ "systemd-coredump.socket" "systemd-coredump@.service" ]; + environment.etc."systemd/coredump.conf".text = '' [Coredump] @@ -45,7 +47,7 @@ with lib; # Have the kernel pass core dumps to systemd's coredump helper binary. # From systemd's 50-coredump.conf file. See: # - boot.kernel.sysctl."kernel.core_pattern" = "|${pkgs.systemd}/lib/systemd/systemd-coredump %p %u %g %s %t %e"; + boot.kernel.sysctl."kernel.core_pattern" = "|${pkgs.systemd}/lib/systemd/systemd-coredump %P %u %g %s %t %c %e"; }) (mkIf (!config.systemd.coredump.enable) { diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix index c5c250c14ce..576a07c1d27 100644 --- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix +++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix @@ -5,5 +5,4 @@ pkgs.substituteAll { isExecutable = true; path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep]; inherit (pkgs) bash; - kernelDTB = pkgs.stdenv.platform.kernelDTB or false; } diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh index 78a8e8fd658..c780a89b102 100644 --- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh +++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh @@ -75,9 +75,10 @@ addEntry() { copyToKernelsDir "$path/kernel"; kernel=$result copyToKernelsDir "$path/initrd"; initrd=$result - if [ -n "@kernelDTB@" ]; then - # XXX UGLY: maybe the system config should have a top-level "dtbs" entry? - copyToKernelsDir $(readlink -m "$path/kernel/../dtbs"); dtbs=$result + # XXX UGLY: maybe the system config should have a top-level "dtbs" entry? + dtbDir=$(readlink -m "$path/kernel/../dtbs") + if [ -d "$dtbDir" ]; then + copyToKernelsDir "$dtbDir"; dtbs=$result fi timestampEpoch=$(stat -L -c '%Z' $path) @@ -95,7 +96,7 @@ addEntry() { fi echo " LINUX ../nixos/$(basename $kernel)" echo " INITRD ../nixos/$(basename $initrd)" - if [ -n "@kernelDTB@" ]; then + if [ -d "$dtbDir" ]; then echo " FDTDIR ../nixos/$(basename $dtbs)" fi echo " APPEND systemConfig=$path init=$path/init $extraParams" diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index b7c09d2e4bf..5c8cce5066a 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -764,7 +764,7 @@ in { wantedBy = [ "timers.target" ]; timerConfig.OnCalendar = service.startAt; }) - (filterAttrs (name: service: service.startAt != "") cfg.services); + (filterAttrs (name: service: service.enable && service.startAt != "") cfg.services); # Generate timer units for all services that have a ‘startAt’ value. systemd.user.timers = diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix index da5575f4b6d..ebf398fa266 100644 --- a/nixos/modules/virtualisation/amazon-image.nix +++ b/nixos/modules/virtualisation/amazon-image.nix @@ -20,8 +20,12 @@ let cfg = config.ec2; in autoResize = true; }; - boot.extraModulePackages = [ config.boot.kernelPackages.ixgbevf ]; - boot.initrd.kernelModules = [ "xen-blkfront" "xen-netfront" "ixgbevf" ]; + boot.extraModulePackages = + [ config.boot.kernelPackages.ixgbevf + config.boot.kernelPackages.ena + ]; + boot.initrd.kernelModules = [ "xen-blkfront" "xen-netfront" ]; + boot.initrd.availableKernelModules = [ "ixgbevf" "ena" ]; boot.kernelParams = mkIf cfg.hvm [ "console=ttyS0" ]; # Prevent the nouveau kernel module from being loaded, as it diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix index 5257aaf6202..bdf6ed4dcd2 100644 --- a/nixos/modules/virtualisation/ec2-amis.nix +++ b/nixos/modules/virtualisation/ec2-amis.nix @@ -90,40 +90,48 @@ "15.09".us-west-2.pv-ebs = "ami-005fb160"; "15.09".us-west-2.pv-s3 = "ami-cd55bbad"; - "16.03".ap-northeast-1.hvm-ebs = "ami-b6edf5d8"; - "16.03".ap-northeast-1.hvm-s3 = "ami-b1e3fbdf"; - "16.03".ap-northeast-1.pv-ebs = "ami-6190880f"; - "16.03".ap-northeast-1.pv-s3 = "ami-908d95fe"; - "16.03".ap-southeast-1.hvm-ebs = "ami-35b16656"; - "16.03".ap-southeast-1.hvm-s3 = "ami-41be6922"; - "16.03".ap-southeast-1.pv-ebs = "ami-4cb96e2f"; - "16.03".ap-southeast-1.pv-s3 = "ami-3bb96e58"; - "16.03".ap-southeast-2.hvm-ebs = "ami-debc91bd"; - "16.03".ap-southeast-2.hvm-s3 = "ami-55bc9136"; - "16.03".ap-southeast-2.pv-ebs = "ami-b38ba6d0"; - "16.03".ap-southeast-2.pv-s3 = "ami-9e8ba6fd"; - "16.03".eu-central-1.hvm-ebs = "ami-7c967413"; - "16.03".eu-central-1.hvm-s3 = "ami-b29072dd"; - "16.03".eu-central-1.pv-ebs = "ami-7a947615"; - "16.03".eu-central-1.pv-s3 = "ami-729b791d"; - "16.03".eu-west-1.hvm-ebs = "ami-ff27a98c"; - "16.03".eu-west-1.hvm-s3 = "ami-6c21af1f"; - "16.03".eu-west-1.pv-ebs = "ami-a33cb2d0"; - "16.03".eu-west-1.pv-s3 = "ami-ec38b69f"; - "16.03".sa-east-1.hvm-ebs = "ami-5bef6637"; - "16.03".sa-east-1.hvm-s3 = "ami-55f87139"; - "16.03".sa-east-1.pv-ebs = "ami-76e56c1a"; - "16.03".sa-east-1.pv-s3 = "ami-e1f8718d"; - "16.03".us-east-1.hvm-ebs = "ami-4bfd1926"; - "16.03".us-east-1.hvm-s3 = "ami-60c5210d"; - "16.03".us-east-1.pv-ebs = "ami-c0c92dad"; - "16.03".us-east-1.pv-s3 = "ami-f9d63294"; - "16.03".us-west-1.hvm-ebs = "ami-13aad473"; - "16.03".us-west-1.hvm-s3 = "ami-e1a8d681"; - "16.03".us-west-1.pv-ebs = "ami-c0a6d8a0"; - "16.03".us-west-1.pv-s3 = "ami-6aa9d70a"; - "16.03".us-west-2.hvm-ebs = "ami-265dad46"; - "16.03".us-west-2.hvm-s3 = "ami-cd40b0ad"; - "16.03".us-west-2.pv-ebs = "ami-7b4aba1b"; - "16.03".us-west-2.pv-s3 = "ami-0849b968"; + "16.03".ap-northeast-1.hvm-ebs = "ami-40619d21"; + "16.03".ap-northeast-1.hvm-s3 = "ami-ce629eaf"; + "16.03".ap-northeast-1.pv-ebs = "ami-ef639f8e"; + "16.03".ap-northeast-1.pv-s3 = "ami-a1609cc0"; + "16.03".ap-northeast-2.hvm-ebs = "ami-deca00b0"; + "16.03".ap-northeast-2.hvm-s3 = "ami-a3b77dcd"; + "16.03".ap-northeast-2.pv-ebs = "ami-7bcb0115"; + "16.03".ap-northeast-2.pv-s3 = "ami-a2b77dcc"; + "16.03".ap-south-1.hvm-ebs = "ami-0dff9562"; + "16.03".ap-south-1.hvm-s3 = "ami-13f69c7c"; + "16.03".ap-south-1.pv-ebs = "ami-0ef39961"; + "16.03".ap-south-1.pv-s3 = "ami-e0c8a28f"; + "16.03".ap-southeast-1.hvm-ebs = "ami-5e964a3d"; + "16.03".ap-southeast-1.hvm-s3 = "ami-4d964a2e"; + "16.03".ap-southeast-1.pv-ebs = "ami-ec9b478f"; + "16.03".ap-southeast-1.pv-s3 = "ami-999b47fa"; + "16.03".ap-southeast-2.hvm-ebs = "ami-9f7359fc"; + "16.03".ap-southeast-2.hvm-s3 = "ami-987359fb"; + "16.03".ap-southeast-2.pv-ebs = "ami-a2705ac1"; + "16.03".ap-southeast-2.pv-s3 = "ami-a3705ac0"; + "16.03".eu-central-1.hvm-ebs = "ami-17a45178"; + "16.03".eu-central-1.hvm-s3 = "ami-f9a55096"; + "16.03".eu-central-1.pv-ebs = "ami-c8a550a7"; + "16.03".eu-central-1.pv-s3 = "ami-6ea45101"; + "16.03".eu-west-1.hvm-ebs = "ami-b5b3d5c6"; + "16.03".eu-west-1.hvm-s3 = "ami-c986e0ba"; + "16.03".eu-west-1.pv-ebs = "ami-b083e5c3"; + "16.03".eu-west-1.pv-s3 = "ami-3c83e54f"; + "16.03".sa-east-1.hvm-ebs = "ami-f6eb7f9a"; + "16.03".sa-east-1.hvm-s3 = "ami-93e773ff"; + "16.03".sa-east-1.pv-ebs = "ami-cbb82ca7"; + "16.03".sa-east-1.pv-s3 = "ami-abb82cc7"; + "16.03".us-east-1.hvm-ebs = "ami-c123a3d6"; + "16.03".us-east-1.hvm-s3 = "ami-bc25a5ab"; + "16.03".us-east-1.pv-ebs = "ami-bd25a5aa"; + "16.03".us-east-1.pv-s3 = "ami-a325a5b4"; + "16.03".us-west-1.hvm-ebs = "ami-748bcd14"; + "16.03".us-west-1.hvm-s3 = "ami-a68dcbc6"; + "16.03".us-west-1.pv-ebs = "ami-048acc64"; + "16.03".us-west-1.pv-s3 = "ami-208dcb40"; + "16.03".us-west-2.hvm-ebs = "ami-8263a0e2"; + "16.03".us-west-2.hvm-s3 = "ami-925c9ff2"; + "16.03".us-west-2.pv-ebs = "ami-5e61a23e"; + "16.03".us-west-2.pv-s3 = "ami-734c8f13"; } diff --git a/nixos/release.nix b/nixos/release.nix index c8547784bbc..1800122fa2e 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -220,6 +220,7 @@ in rec { tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; }); tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; }); tests.dnscrypt-proxy = callTest tests/dnscrypt-proxy.nix { system = "x86_64-linux"; }; + tests.ecryptfs = callTest tests/ecryptfs.nix {}; tests.etcd = hydraJob (import tests/etcd.nix { system = "x86_64-linux"; }); tests.ec2-nixops = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-nixops; tests.ec2-config = hydraJob (import tests/ec2.nix { system = "x86_64-linux"; }).boot-ec2-config; diff --git a/nixos/tests/ecryptfs.nix b/nixos/tests/ecryptfs.nix new file mode 100644 index 00000000000..eceb25a0dea --- /dev/null +++ b/nixos/tests/ecryptfs.nix @@ -0,0 +1,81 @@ +import ./make-test.nix ({ pkgs, ... }: +{ + name = "ecryptfs"; + + machine = { config, pkgs, ... }: { + imports = [ ./common/user-account.nix ]; + boot.kernelModules = [ "ecryptfs" ]; + security.pam.enableEcryptfs = true; + environment.systemPackages = with pkgs; [ keyutils ]; + }; + + testScript = '' + $machine->waitForUnit("default.target"); + + # Set alice up with a password and a home + $machine->succeed("(echo foobar; echo foobar) | passwd alice"); + $machine->succeed("chown -R alice.users ~alice"); + + # Migrate alice's home + my $out = $machine->succeed("echo foobar | ecryptfs-migrate-home -u alice"); + $machine->log("ecryptfs-migrate-home said: $out"); + + # Log alice in (ecryptfs passwhrase is wrapped during first login) + $machine->sleep(2); # urgh: wait for username prompt + $machine->sendChars("alice\n"); + $machine->sleep(1); + $machine->sendChars("foobar\n"); + $machine->sleep(2); + $machine->sendChars("logout\n"); + $machine->sleep(2); + + # Why do I need to do this?? + $machine->succeed("su alice -c ecryptfs-umount-private"); + $machine->sleep(1); + $machine->fail("mount | grep ecryptfs"); # check that encrypted home is not mounted + + # Show contents of the user keyring + my $out = $machine->succeed("su - alice -c 'keyctl list \@u'"); + $machine->log("keyctl unlink said: " . $out); + + # Log alice again + $machine->sendChars("alice\n"); + $machine->sleep(1); + $machine->sendChars("foobar\n"); + $machine->sleep(2); + + # Create some files in encrypted home + $machine->succeed("su alice -c 'touch ~alice/a'"); + $machine->succeed("su alice -c 'echo c > ~alice/b'"); + + # Logout + $machine->sendChars("logout\n"); + $machine->sleep(2); + + # Why do I need to do this?? + $machine->succeed("su alice -c ecryptfs-umount-private"); + $machine->sleep(1); + + # Check that the filesystem is not accessible + $machine->fail("mount | grep ecryptfs"); + $machine->succeed("su alice -c 'test \! -f ~alice/a'"); + $machine->succeed("su alice -c 'test \! -f ~alice/b'"); + + # Log alice once more + $machine->sendChars("alice\n"); + $machine->sleep(1); + $machine->sendChars("foobar\n"); + $machine->sleep(2); + + # Check that the files are there + $machine->sleep(1); + $machine->succeed("su alice -c 'test -f ~alice/a'"); + $machine->succeed("su alice -c 'test -f ~alice/b'"); + $machine->succeed(qq%test "\$(cat ~alice/b)" = "c"%); + + # Catch https://github.com/NixOS/nixpkgs/issues/16766 + $machine->succeed("su alice -c 'ls -lh ~alice/'"); + + $machine->sendChars("logout\n"); + ''; +}) diff --git a/nixos/tests/gnome3_20-gdm.nix b/nixos/tests/gnome3_18-gdm.nix similarity index 100% rename from nixos/tests/gnome3_20-gdm.nix rename to nixos/tests/gnome3_18-gdm.nix diff --git a/nixos/tests/gnome3_20.nix b/nixos/tests/gnome3_18.nix similarity index 95% rename from nixos/tests/gnome3_20.nix rename to nixos/tests/gnome3_18.nix index 51c83a4e312..2c88e6abe89 100644 --- a/nixos/tests/gnome3_20.nix +++ b/nixos/tests/gnome3_18.nix @@ -15,7 +15,7 @@ import ./make-test.nix ({ pkgs, ...} : { services.xserver.displayManager.auto.user = "alice"; services.xserver.desktopManager.gnome3.enable = true; - environment.gnome3.packageSet = pkgs.gnome3_20; + environment.gnome3.packageSet = pkgs.gnome3_18; virtualisation.memorySize = 512; }; diff --git a/pkgs/applications/audio/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix index 17fadfe8b1f..97e8f5f1429 100644 --- a/pkgs/applications/audio/i-score/default.nix +++ b/pkgs/applications/audio/i-score/default.nix @@ -3,7 +3,7 @@ cln, cmake, fetchgit, - gcc5, + gcc, ginac, jamomacore, kde5, @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { cln cmake ginac - gcc5 + gcc jamomacore kde5.kdnssd libsndfile diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix index b4f6baa9c64..cd93a4ed0e8 100644 --- a/pkgs/applications/editors/geany/default.nix +++ b/pkgs/applications/editors/geany/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }: let - version = "1.27"; + version = "1.28"; in stdenv.mkDerivation rec { @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://download.geany.org/${name}.tar.bz2"; - sha256 = "846ff699a5944c5c3c068ae0199d4c13946a668bfc6d03f8c79765667c20cadf"; + sha256 = "0nha21rbdhl10vdpaq8d5v5fszvggl1xar555pvrnvm2y443ffpp"; }; buildInputs = [ gtk2 which pkgconfig intltool file ]; diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix index 6ef4edb5362..bc6f7fffeb3 100644 --- a/pkgs/applications/editors/idea/default.nix +++ b/pkgs/applications/editors/idea/default.nix @@ -189,13 +189,13 @@ in idea-community = buildIdea rec { name = "idea-community-${version}"; - version = "2016.1.3"; - build = "IC-145.1617.8"; + version = "2016.2"; + build = "IC-162.1121"; description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; license = stdenv.lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; - sha256 = "0yd1jqz4arywyjsiakszrr48w2xqnik6vnl1a6l0ph2hssgkzkfi"; + sha256 = "164x4l0q31zpc1jh3js1xx9y6afrzsshmnkx1mwhmq8qmvzc4w32"; }; wmClass = "jetbrains-idea-ce"; }; @@ -228,13 +228,13 @@ in idea-ultimate = buildIdea rec { name = "idea-ultimate-${version}"; - version = "2016.1.3"; - build = "IU-145.1617.8"; + version = "2016.2"; + build = "IU-162.1121"; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; license = stdenv.lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIU-${version}.tar.gz"; - sha256 = "1zzxwdnw2bbnl86kj7fjk5p8c99d0hdn1ki2alw5xm8wp4k0w7rv"; + sha256 = "10hiqh6ccmai2cnc5p72vqjcz9kzmmcpn0hy5v514h4mq6vs4zk4"; }; wmClass = "jetbrains-idea"; }; diff --git a/pkgs/applications/graphics/antimony/default.nix b/pkgs/applications/graphics/antimony/default.nix index 8d17a290ceb..b7d9f4a8159 100644 --- a/pkgs/applications/graphics/antimony/default.nix +++ b/pkgs/applications/graphics/antimony/default.nix @@ -1,29 +1,25 @@ -{ stdenv, fetchgit, libpng, python3, boost, mesa, qtbase, qmakeHook, ncurses }: +{ stdenv, fetchFromGitHub, libpng, python3, boost, mesa, qtbase, ncurses, cmake, flex, lemon }: let - gitRev = "745eca3a2d2657c495d5509e9083c884e021d09c"; + gitRev = "e8480c718e8c49ae3cc2d7af10ea93ea4c2fff9a"; gitBranch = "master"; - gitTag = "0.8.0b"; + gitTag = "0.9.2"; in stdenv.mkDerivation rec { name = "antimony-${version}"; version = gitTag; - src = fetchgit { - url = "git://github.com/mkeeter/antimony.git"; - rev = gitRev; - sha256 = "0azjdkbixz2pyk2yy7a0ya5xk60xgw3l2pd4pj4ijyqxx5jmh0sy"; + src = fetchFromGitHub { + owner = "mkeeter"; + repo = "antimony"; + rev = gitTag; + sha256 = "0fpgy5cb4knz2z9q078206k8wzxfs8b9g76mf4bz1ic77931ykjz"; }; patches = [ ./paths-fix.patch ]; - # fix build with glibc-2.23 + postPatch = '' - sed 's/\ /dev/null) --GITBRANCH = $$system(git rev-parse --abbrev-ref HEAD) +-execute_process(COMMAND git log --pretty=format:'%h' -n 1 +- OUTPUT_VARIABLE GITREV) +-execute_process(COMMAND bash -c "git diff --quiet --exit-code || echo +" +- OUTPUT_VARIABLE GITDIFF) +-execute_process(COMMAND git describe --exact-match --tags +- OUTPUT_VARIABLE GITTAG +- ERROR_QUIET) +-execute_process(COMMAND git rev-parse --abbrev-ref HEAD +- OUTPUT_VARIABLE GITBRANCH) - --QMAKE_CXXFLAGS += "-D'GITREV=\"$${GITREV}$${GITDIFF}\"'" --QMAKE_CXXFLAGS += "-D'GITTAG=\"$${GITTAG}\"'" --QMAKE_CXXFLAGS += "-D'GITBRANCH=\"$${GITBRANCH}\"'" -+QMAKE_CXXFLAGS += "-D'GITREV=\"$$(GITREV)\"'" -+QMAKE_CXXFLAGS += "-D'GITTAG=\"$$(GITTAG)\"'" -+QMAKE_CXXFLAGS += "-D'GITBRANCH=\"$$(GITBRANCH)\"'" - - OLD_GL_SET = $$(OLD_GL) - equals(OLD_GL_SET, "true") { -@@ -125,11 +120,11 @@ macx { - } - - linux { -- executable.path = /usr/local/bin -+ executable.path = $$(out)/bin - executable.files = antimony -- nodes_folder.path = /usr/local/bin/sb/nodes -+ nodes_folder.path = $$(out)/bin/sb/nodes - nodes_folder.files = ../py/nodes/* -- fab_folder.path = /usr/local/bin/sb/fab -+ fab_folder.path = $$(out)/bin/sb/fab - fab_folder.files = ../py/fab/* - INSTALLS += executable nodes_folder fab_folder - } -diff --git a/qt/fab.pri b/qt/fab.pri -index a54813b..b500536 100644 ---- a/qt/fab.pri -+++ b/qt/fab.pri -@@ -54,7 +54,7 @@ DEFINES += '_STATIC_= ' - - linux { - QMAKE_CFLAGS += -std=gnu99 -- QMAKE_CXXFLAGS += $$system(/usr/bin/python3-config --includes) -+ QMAKE_CXXFLAGS += $$system(python3-config --includes) - LIBS += -lpng - } - -diff --git a/qt/shared.pri b/qt/shared.pri -index e7d0e3a..026eae3 100644 ---- a/qt/shared.pri -+++ b/qt/shared.pri -@@ -39,41 +39,11 @@ macx { - } - - linux { -- QMAKE_CXXFLAGS += $$system(/usr/bin/python3-config --includes) -- QMAKE_LFLAGS += $$system(/usr/bin/python3-config --ldflags) -+ QMAKE_CXXFLAGS += $$system(python3-config --includes) -+ QMAKE_LFLAGS += $$system(python3-config --ldflags) - - # Even though this is in QMAKE_LFLAGS, the linker is picky about - # library ordering (so it needs to be here too). - LIBS += -lpython3.4m -- -- # ldconfig is being used to find libboost_python, but it's in a different -- # place in different distros (and is not in the default $PATH on Debian). -- # First, check to see if it's on the default $PATH. -- system(which ldconfig > /dev/null) { -- LDCONFIG_BIN = "ldconfig" -- } -- # If that failed, then search for it in its usual places. -- isEmpty(LDCONFIG_BIN) { -- for(p, $$list(/sbin/ldconfig /usr/bin/ldconfig)) { -- exists($$p): LDCONFIG_BIN = $$p -- } -- } -- # If that search failed too, then exit with an error. -- isEmpty(LDCONFIG_BIN) { -- error("Could not find ldconfig!") -- } -- -- # Check for different boost::python naming schemes -- LDCONFIG_OUT = $$system($$LDCONFIG_BIN -p|grep python) -- for (b, $$list(boost_python-py34 boost_python3)) { -- contains(LDCONFIG_OUT, "lib$${b}.so") { -- LIBS += "-l$$b" -- GOT_BOOST_PYTHON = True -- } -- } -- -- # If we couldn't find boost::python, exit with an error. -- isEmpty(GOT_BOOST_PYTHON) { -- error("Could not find boost::python3") -- } -+ LIBS += -lboost_python3 - } + add_definitions(-D'GITREV="${GITREV}${GITDIFF}"' + -D'GITTAG="${GITTAG}"' + -D'GITBRANCH="${GITBRANCH}"') diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix index 2d7b8874246..a20a1be77f8 100644 --- a/pkgs/applications/graphics/feh/default.nix +++ b/pkgs/applications/graphics/feh/default.nix @@ -2,11 +2,11 @@ , libXinerama, curl, libexif, perlPackages }: stdenv.mkDerivation rec { - name = "feh-2.15.4"; + name = "feh-2.16.1"; src = fetchurl { url = "http://feh.finalrewind.org/${name}.tar.bz2"; - sha256 = "b8a9c29f37b1349228b19866f712b677e2a150837bc46be8c5d6348dd4850758"; + sha256 = "1cxnc8dxyl7s4qnkvdjaqx7gdvc6brxpq0qbg91mljg47fd2hmbf"; }; outputs = [ "out" "doc" ]; diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix index 63b88ee4fb9..b780067823a 100644 --- a/pkgs/applications/graphics/graphicsmagick/default.nix +++ b/pkgs/applications/graphics/graphicsmagick/default.nix @@ -2,14 +2,14 @@ , libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz , libX11, libwebp, quantumdepth ? 8}: -let version = "1.3.23"; in +let version = "1.3.24"; in stdenv.mkDerivation { name = "graphicsmagick-${version}"; src = fetchurl { url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz"; - sha256 = "03g6l2h8cmf231y1vma0z7x85070jm1ysgs9ppqcd3jj56jka9gx"; + sha256 = "1q40w5hcl8rcpszm0r7rpr3a9lj390p39zfvavkvlgxyyk7bmgsj"; }; patches = [ ./disable-popen.patch ]; diff --git a/pkgs/applications/misc/iterm2/default.nix b/pkgs/applications/misc/iterm2/default.nix index add16365324..028e5d6b725 100644 --- a/pkgs/applications/misc/iterm2/default.nix +++ b/pkgs/applications/misc/iterm2/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "iterm2-${version}"; - version = "3.0.2"; + version = "3.0.4"; src = fetchFromGitHub { owner = "gnachman"; repo = "iTerm2"; rev = "v${version}"; - sha256 = "121g759i814y1g1g1jwhsmxgg4wrzv08vq7a7qwc7b85a17zbd3h"; + sha256 = "0ffg9l2jvv503h13nd5rjkn5xrahswcqqwmm052qzd6d0lmqjm93"; }; patches = [ ./disable_updates.patch ]; diff --git a/pkgs/applications/misc/lighthouse/Makefile.patch b/pkgs/applications/misc/lighthouse/Makefile.patch new file mode 100644 index 00000000000..0207299cc2c --- /dev/null +++ b/pkgs/applications/misc/lighthouse/Makefile.patch @@ -0,0 +1,31 @@ +# Description: Fix lighthouse Makefile +Index: Makefile +=================================================================== +--- ./Makefile 1970-01-01 02:00:01.000000000 +0200 ++++ ./Makefile 1970-01-01 02:00:01.000000000 +0200 +@@ -19,21 +19,10 @@ + endif + + # Library specific +-HAS_GDK := $(shell pkg-config --exists gdk-2.0 echo $?) +-ifdef $(HAS_GDK) +- CFLAGS+=`pkg-config --cflags gdk-2.0` +- LDFLAGS+=`pkg-config --libs gdk-2.0` +-else +- CFLAGS+=-DNO_GDK +-endif +-HAS_PANGO := $(shell pkg-config --exists pango echo $?) +-ifdef $(HAS_PANGO) +- CFLAGS+=`pkg-config --cflags pango` +- LDFLAGS+=`pkg-config --libs pango` +-else +- CFLAGS+=-DNO_PANGO +-endif +- ++CFLAGS+=$(shell pkg-config --cflags gdk-2.0) ++LDFLAGS+=$(shell pkg-config --libs gdk-2.0) ++CFLAGS+=$(shell pkg-config --cflags pango) ++LDFLAGS+=$(shell pkg-config --libs pango) + + all: lighthouse + diff --git a/pkgs/applications/misc/lighthouse/default.nix b/pkgs/applications/misc/lighthouse/default.nix new file mode 100644 index 00000000000..8400c01665e --- /dev/null +++ b/pkgs/applications/misc/lighthouse/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, pkgconfig +, libX11, libxcb, cairo, gtk, pango, python27, python3 +}: + +stdenv.mkDerivation rec { + name = "lighthouse-${date}"; + date = "2016-01-26"; + + src = fetchFromGitHub { + owner = "emgram769"; + repo = "lighthouse"; + rev = "bf11f111572475e855b0329202a14c9e128c7e57"; + sha256 = "1ppika61vg4sc9mczbkjqy2mhgxqg57xrnsmmq0h2lyvj0yhg3qn"; + }; + + buildInputs = [ + pkgconfig libX11 libxcb cairo gtk pango python27 python3 + ]; + + patches = [ ./Makefile.patch ]; + + lighthouseInstaller = '' + #!${stdenv.shell} + cp -r $out/share/lighthouse/.config/lighthouse \$HOME/.config + chmod -R +w \$HOME/.config/lighthouse + ''; + + installPhase = '' + mkdir -p $out/bin + cp lighthouse $out/bin + chmod +x config/lighthouse/cmd* + chmod +x config/lighthouse/google.py + patchShebangs config/lighthouse/ + patchShebangs config/lighthouse/scripts/ + mkdir -p $out/share/lighthouse/.config + cp -r config/lighthouse $out/share/lighthouse/.config + echo "${lighthouseInstaller}" > $out/bin/lighthouse-install + chmod +x $out/bin/lighthouse-install + ''; + + meta = with stdenv.lib; { + description = "A simple flexible popup dialog to run on X"; + homepage = https://github.com/emgram769/lighthouse; + license = licenses.mit; + maintainers = with maintainers; [ ramkromberg ]; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/applications/misc/mop/default.nix b/pkgs/applications/misc/mop/default.nix new file mode 100644 index 00000000000..ccdb47c4b60 --- /dev/null +++ b/pkgs/applications/misc/mop/default.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, buildGoPackage, fetchgit }: + +buildGoPackage rec { + name = "mop-${version}"; + version = "0.2.0"; + rev = "bc666ec165d08b43134f7ec0bf29083ad5466243"; + + goPackagePath = "github.com/michaeldv/mop"; + goDeps = ./deps.json; + + preConfigure = '' + for i in $(find . -type f);do + substituteInPlace $i --replace michaeldv/termbox-go nsf/termbox-go + done + substituteInPlace Makefile --replace mop/cmd mop/mop + mv cmd mop + ''; + + src = fetchgit { + inherit rev; + url = "https://github.com/mop-tracker/mop"; + sha256 = "0zp51g9i8rw6acs4vnrxclbxa5z1v0a0m1xx27szszp0rphcczkx"; + }; + + meta = { + description = "Simple stock tracker implemented in go"; + homepage = https://github.com/mop-tracker/mop; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/applications/misc/mop/deps.json b/pkgs/applications/misc/mop/deps.json new file mode 100644 index 00000000000..e1b40df8310 --- /dev/null +++ b/pkgs/applications/misc/mop/deps.json @@ -0,0 +1,8 @@ +[ + { + "include": "../../libs.json", + "packages": [ + "github.com/nsf/termbox-go" + ] + } +] diff --git a/pkgs/applications/misc/pdfmod/default.nix b/pkgs/applications/misc/pdfmod/default.nix index 24a0a8c6967..0978da3512b 100644 --- a/pkgs/applications/misc/pdfmod/default.nix +++ b/pkgs/applications/misc/pdfmod/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig, gnome_doc_utils, intltool +{ stdenv, fetchurl, fetchpatch, pkgconfig, gnome_doc_utils, intltool, lib , mono, gtk-sharp, gnome-sharp, hyena , which, makeWrapper, glib, gnome3, poppler, wrapGAppsHook }: @@ -33,12 +33,7 @@ stdenv.mkDerivation rec { --add-flags "$out/lib/pdfmod/PdfMod.exe" \ --prefix MONO_GAC_PREFIX : ${gtk-sharp} \ --prefix MONO_GAC_PREFIX : ${gnome-sharp} \ - --prefix LD_LIBRARY_PATH : ${glib}/lib \ - --prefix LD_LIBRARY_PATH : ${gtk-sharp}/lib \ - --prefix LD_LIBRARY_PATH : ${gnome-sharp}/lib \ - --prefix LD_LIBRARY_PATH : ${gtk-sharp.gtk}/lib \ - --prefix LD_LIBRARY_PATH : ${gnome3.gconf}/lib \ - --prefix LD_LIBRARY_PATH : ${poppler.out}/lib + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gnome-sharp gnome3.gconf gtk-sharp gtk-sharp.gtk poppler ]} ''; dontStrip = true; diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 26030e33e48..e9f6f816be5 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -42,12 +42,9 @@ assert stdenv.isLinux; let - generated = if channel == "stable" then (import ./sources.nix) - else if channel == "beta" then (import ./beta_sources.nix) - else if channel == "developer" then { version = "49.0a2"; sources = [ - { locale = "en-US"; arch = "linux-i686"; sha512 = "45dad182bf7a4e753c1be6b8f966393a06531e7b5530238d20cb67b26324e8f5d0eeec983a0855418f31187d3ae508c28810ab86269848b4e48ab2ca3b5d21e7"; } - { locale = "en-US"; arch = "linux-x86_64"; sha512 = "cfcbfc633b51612a62267c8a1afc25af212eb832d1fa876a1ffd82421e9378f96b3ac1488446f804518290abd99c21c9f10e4d0e0f699432aeb74b63305d7edc"; } - ]; } + generated = if channel == "stable" then (import ./sources.nix) + else if channel == "beta" then (import ./beta_sources.nix) + else if channel == "developer" then (import ./dev_sources.nix) else builtins.abort "Wrong channel! Channel must be one of `stable`, `beta` or `developer`"; inherit (generated) version sources; diff --git a/pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix new file mode 100644 index 00000000000..f43810d53f0 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix @@ -0,0 +1,12 @@ +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix + +{ + version = "49.0a2"; + sources = [ + { locale = "en-US"; arch = "linux-i686"; sha512 = "85c4289e561d2246f96a05e3b8df011337984b9f176670826a705c2cd68a1284056ba507e4b6e4887595bf37f25386d9f7b28a20bc1f125865b9fd7b8be17eaa"; } + { locale = "en-US"; arch = "linux-x86_64"; sha512 = "2bf9518dbfbb48348f74929c19d03e8daf51020bf9ba6db577a202b6e98ad7ffb9e9a0b4ca92af010cd3f864ae84940b65438f4230e6de3165f72e4e7280086d"; } + ]; +} diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb new file mode 100644 index 00000000000..37d5569efb0 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb @@ -0,0 +1,53 @@ +#!/usr/bin/env ruby +require "open-uri" + +version = + if ARGV.empty? + $stderr.puts("Usage: ruby generate_sources_dev.rb > dev_sources.nix") + exit(-1) + else + ARGV[0] + end + +base_url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora" + +arches = ["linux-i686", "linux-x86_64"] +locales = ["en-US"] +sources = [] + +Source = Struct.new(:hash, :arch, :locale, :filename) + +locales.each do |locale| + arches.each do |arch| + basename = "firefox-#{version}.#{locale}.#{arch}" + filename = basename + ".tar.bz2" + sha512 = open("#{base_url}/#{basename}.checksums").each_line + .find(filename).first + .split(" ").first + sources << Source.new(sha512, arch, locale, filename) + end +end + +sources = sources.sort_by do |source| + [source.locale, source.arch] +end + +puts(<<"EOH") +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix + +{ + version = "#{version}"; + sources = [ +EOH + +sources.each do |source| + puts(%Q| { locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) +end + +puts(<<'EOF') + ]; +} +EOF diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix index 147540ed158..574fd9efdd4 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix @@ -17,11 +17,11 @@ in stdenv.mkDerivation rec { name = "bluejeans-${version}"; - version = "2.160.49.8"; + version = "2.160.63.8"; src = fetchurl { url = "https://swdl.bluejeans.com/skinny/bjnplugin_${version}-1_amd64.deb"; - sha256 = "1hf4jx0d1wiv622rwck0mm8cckm121yszviw47jsw0mjnp91hqch"; + sha256 = "1sfz9xvvrbw7gg7fxxwg9wmgbxgv3fa14p7i4m85mg10l3qxaqfc"; }; phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix index 4b7b56c69ea..5d92f7455d6 100644 --- a/pkgs/applications/networking/ftp/filezilla/default.nix +++ b/pkgs/applications/networking/ftp/filezilla/default.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext , pkgconfig, xdg_utils, gtk2, sqlite, pugixml, libfilezilla, nettle }: -let version = "3.18.0"; in +let version = "3.19.0"; in stdenv.mkDerivation { name = "filezilla-${version}"; src = fetchurl { url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2"; - sha256 = "1qnpbx2684r529ldih6fi5anjlcgqn2xfcls0q38iadrk1qnqr1p"; + sha256 = "0827z1jmn8pkzrcpjgh5yh2r23vgv73yb4rikraxa9i7l118g9l2"; }; configureFlags = [ diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix new file mode 100644 index 00000000000..7f4a27cf9a2 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -0,0 +1,105 @@ +{ alsaLib +, fetchurl +, gcc +, glib +, gst_plugins_base +, gstreamer +, icu_54_1 +, libpulseaudio +, libuuid +, libxml2 +, libxslt +, makeQtWrapper +, qt55 +, sqlite +, stdenv +, xlibs +, xorg +, zlib +}: + +stdenv.mkDerivation rec { + name = "zoom-us"; + meta = { + homepage = http://zoom.us; + description = "zoom.us instant messenger"; + license = stdenv.lib.licenses.unfree; + platforms = stdenv.lib.platforms.linux; + }; + + version = "2.0.52458.0531"; + src = fetchurl { + url = "https://zoom.us/client/latest/zoom_${version}_x86_64.tar.xz"; + sha256 = "16d64pn9j27v3fnh4c9i32vpkr10q1yr26w14964n0af1mv5jf7a"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + nativeBuildInputs = [ makeQtWrapper ]; + libPath = stdenv.lib.makeLibraryPath [ + alsaLib + gcc.cc + glib + gst_plugins_base + gstreamer + icu_54_1 + libpulseaudio + libuuid + libxml2 + libxslt + qt55.qtbase + qt55.qtdeclarative + qt55.qtscript + qt55.qtwebkit + sqlite + xlibs.xcbutilkeysyms + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXext + xorg.libXfixes + xorg.libXrender + xorg.xcbutilimage + zlib + ]; + installPhase = '' + mkdir -p $out/share + cp -r \ + application-x-zoom.png \ + audio \ + imageformats \ + chrome.bmp \ + config-dump.sh \ + dingdong1.pcm \ + dingdong.pcm \ + doc \ + Droplet.pcm \ + Droplet.wav \ + platforminputcontexts \ + platforms \ + platformthemes \ + Qt \ + QtMultimedia \ + QtQml \ + QtQuick \ + QtQuick.2 \ + QtWebKit \ + QtWebProcess \ + ring.pcm \ + ring.wav \ + version.txt \ + xcbglintegrations \ + zcacert.pem \ + zoom \ + Zoom.png \ + ZXMPPROOT.cer \ + $out/share + + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + --set-rpath ${libPath} \ + $out/share/zoom + wrapQtProgram "$out/share/zoom" + mkdir -p $out/bin + ln -s $out/share/zoom $out/bin/zoom-us + ''; + } diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix index 1964faf2f5c..31ead22e1fd 100644 --- a/pkgs/applications/networking/mailreaders/mutt/default.nix +++ b/pkgs/applications/networking/mailreaders/mutt/default.nix @@ -1,43 +1,51 @@ { stdenv, fetchurl, ncurses, which, perl, autoreconfHook -, sslSupport ? true -, imapSupport ? true -, headerCache ? true -, saslSupport ? true -, gpgmeSupport ? true , gdbm ? null , openssl ? null , cyrus_sasl ? null , gpgme ? null -, withSidebar ? false +, aclocal ? null +, headerCache ? true +, sslSupport ? true +, saslSupport ? true +, gpgmeSupport ? true +, imapSupport ? true +, withSidebar ? false +, withTrash ? false }: -assert headerCache -> gdbm != null; -assert sslSupport -> openssl != null; -assert saslSupport -> cyrus_sasl != null; -assert gpgmeSupport -> gpgme != null; +assert headerCache -> gdbm != null; +assert sslSupport -> openssl != null; +assert saslSupport -> cyrus_sasl != null; +assert gpgmeSupport -> gpgme != null; + +with stdenv.lib; -let - version = "1.6.0"; -in stdenv.mkDerivation rec { - name = "mutt${stdenv.lib.optionalString withSidebar "-with-sidebar"}-${version}"; + name = "mutt-${version}"; + version = "1.6.2"; src = fetchurl { - url = "http://ftp.mutt.org/pub/mutt/mutt-${version}.tar.gz"; - sha256 = "06bc2drbgalkk68rzg7hq2v5m5qgjxff5357wg0419dpi8ivdbr9"; + url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz"; + sha256 = "13hxmji7v9m2agmvzrs7gzx8s3c9jiwrv7pbkr7z1kc6ckq2xl65"; }; - buildInputs = with stdenv.lib; + buildInputs = [ ncurses which perl ] - ++ optional headerCache gdbm - ++ optional sslSupport openssl - ++ optional saslSupport cyrus_sasl - ++ optional gpgmeSupport gpgme; - - nativeBuildInputs = stdenv.lib.optional withSidebar autoreconfHook; + ++ optional headerCache gdbm + ++ optional sslSupport openssl + ++ optional saslSupport cyrus_sasl + ++ optional gpgmeSupport gpgme + ++ optional withSidebar autoreconfHook; configureFlags = [ - "--with-mailpath=" "--enable-smtp" + (enableFeature headerCache "hcache") + (enableFeature gpgmeSupport "gpgme") + (enableFeature imapSupport "imap") + (enableFeature withSidebar "sidebar") + "--enable-smtp" + "--enable-pop" + "--enable-imap" + "--with-mailpath=" # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail "ac_cv_path_SENDMAIL=sendmail" @@ -45,36 +53,22 @@ stdenv.mkDerivation rec { # This allows calls with "-d N", that output debug info into ~/.muttdebug* "--enable-debug" - "--enable-pop" "--enable-imap" - # The next allows building mutt without having anything setgid # set by the installer, and removing the need for the group 'mail' # I set the value 'mailbox' because it is a default in the configure script "--with-homespool=mailbox" - (if headerCache then "--enable-hcache" else "--disable-hcache") - (if sslSupport then "--with-ssl" else "--without-ssl") - (if imapSupport then "--enable-imap" else "--disable-imap") - (if saslSupport then "--with-sasl" else "--without-sasl") - (if gpgmeSupport then "--enable-gpgme" else "--disable-gpgme") - ]; + ] ++ optional sslSupport "--with-ssl" + ++ optional saslSupport "--with-sasl"; - # Adding the sidebar - patches = stdenv.lib.optional withSidebar [ - ./trash-folder.patch - ./sidebar.patch - ./sidebar-dotpathsep.patch - ./sidebar-utf8.patch - ./sidebar-newonly.patch - ./sidebar-delimnullwide.patch - ./sidebar-compose.patch - ./sidebar-new.patch - ]; + patches = + optional withTrash ./trash.patch ++ + optional withSidebar ./sidebar.patch; - meta = with stdenv.lib; { + meta = { description = "A small but very powerful text-based mail client"; homepage = http://www.mutt.org; - license = stdenv.lib.licenses.gpl2Plus; + license = licenses.gpl2Plus; platforms = platforms.unix; - maintainers = with maintainers; [ the-kenny ]; + maintainers = with maintainers; [ the-kenny rnhmjoj ]; }; } diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar-compose.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar-compose.patch deleted file mode 100644 index 90d815b841d..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar-compose.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Evgeni Golov -Date: Fri, 14 Mar 2014 08:54:47 +0100 -Subject: sidebar-compose - -draw_sidebar sets SidebarWidth to 0 when sidebar_visible is false. -However, if you start mutt in compose mode, draw_sidebar won't be -called until the next redraw and your header lines will be off by -the width of the sidebar, even when you did not want a sidebar at -all. - -Can be tested with: - HOME=/ LC_ALL=C mutt -e 'unset sidebar_visible' -s test recipient - -Closes: #502627 - -Gbp-Pq: Topic mutt-patched ---- - compose.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/compose.c b/compose.c -index b63695f..0fa6df2 100644 ---- a/compose.c -+++ b/compose.c -@@ -32,6 +32,7 @@ - #include "mailbox.h" - #include "sort.h" - #include "charset.h" -+#include "sidebar.h" - - #ifdef MIXMASTER - #include "remailer.h" -@@ -248,6 +249,7 @@ static void draw_envelope_addr (int line, ADDRESS *addr) - - static void draw_envelope (HEADER *msg, char *fcc) - { -+ draw_sidebar (MENU_COMPOSE); - draw_envelope_addr (HDR_FROM, msg->env->from); - draw_envelope_addr (HDR_TO, msg->env->to); - draw_envelope_addr (HDR_CC, msg->env->cc); diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar-delimnullwide.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar-delimnullwide.patch deleted file mode 100644 index 11d2ced5a0c..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar-delimnullwide.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Evgeni Golov -Date: Wed, 5 Mar 2014 17:46:07 +0100 -Subject: sidebar-delimnullwide - -SidebarDelim can be NULL and strlen(NULL) is a bad idea, as it will segfault. -Wrap it with NONULL(). - -While at it, change strlen to mbstowcs for better utf8 support. - -Closes: #696145, #663883 - -Gbp-Pq: Topic mutt-patched ---- - sidebar.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sidebar.c b/sidebar.c -index 51a25ca..c3ea338 100644 ---- a/sidebar.c -+++ b/sidebar.c -@@ -88,7 +88,7 @@ char *make_sidebar_entry(char *box, int size, int new, int flagged) - int box_len, box_bytes; - int int_len; - int right_offset = 0; -- int delim_len = strlen(SidebarDelim); -+ int delim_len = mbstowcs(NULL, NONULL(SidebarDelim), 0); - static char *entry; - - right_width = left_width = 0; -@@ -178,7 +178,7 @@ int draw_sidebar(int menu) { - #ifndef USE_SLANG_CURSES - attr_t attrs; - #endif -- short delim_len = strlen(SidebarDelim); -+ short delim_len = mbstowcs(NULL, NONULL(SidebarDelim), 0); - short color_pair; - - static bool initialized = false; diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar-dotpathsep.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar-dotpathsep.patch deleted file mode 100644 index 315fa1649bc..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar-dotpathsep.patch +++ /dev/null @@ -1,98 +0,0 @@ -From: Fabian Groffen -Date: Tue, 4 Mar 2014 21:12:15 +0100 -Subject: sidebar-dotpathsep - -Make path separators for sidebar folders configurable. - -When using IMAP, a '.' is often used as path separator, hence make the -path separators configurable through sidebar_delim_chars variable. -It defaults to "/." to work for both mboxes as well as IMAP folders. It -can be set to only "/" or "." or whichever character desired as needed. - -Gbp-Pq: Topic mutt-patched ---- - globals.h | 1 + - init.h | 8 ++++++++ - sidebar.c | 31 ++++++++++++++++++++++++------- - 3 files changed, 33 insertions(+), 7 deletions(-) - -diff --git a/globals.h b/globals.h -index 004c795..602f932 100644 ---- a/globals.h -+++ b/globals.h -@@ -119,6 +119,7 @@ WHERE char *SendCharset; - WHERE char *Sendmail; - WHERE char *Shell; - WHERE char *SidebarDelim; -+WHERE char *SidebarDelimChars INITVAL (NULL); - WHERE char *Signature; - WHERE char *SimpleSearch; - #if USE_SMTP -diff --git a/init.h b/init.h -index c664e5f..166671b 100644 ---- a/init.h -+++ b/init.h -@@ -2051,6 +2051,14 @@ struct option_t MuttVars[] = { - ** .pp - ** The width of the sidebar. - */ -+ { "sidebar_delim_chars", DT_STR, R_NONE, UL &SidebarDelimChars, UL "/." }, -+ /* -+ ** .pp -+ ** This contains the list of characters which you would like to treat -+ ** as folder separators for displaying paths in the sidebar. If -+ ** you're not using IMAP folders, you probably prefer setting this to "/" -+ ** alone. -+ */ - { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, - /* - ** .pp -diff --git a/sidebar.c b/sidebar.c -index 6098c2a..4356ffc 100644 ---- a/sidebar.c -+++ b/sidebar.c -@@ -249,20 +249,37 @@ int draw_sidebar(int menu) { - // calculate depth of current folder and generate its display name with indented spaces - int sidebar_folder_depth = 0; - char *sidebar_folder_name; -- sidebar_folder_name = basename(tmp->path); -+ int i; -+ sidebar_folder_name = tmp->path; -+ /* disregard a trailing separator, so strlen() - 2 -+ * https://bugs.gentoo.org/show_bug.cgi?id=373197#c16 */ -+ for (i = strlen(sidebar_folder_name) - 2; i >= 0; i--) { -+ if (SidebarDelimChars && -+ strchr(SidebarDelimChars, sidebar_folder_name[i])) -+ { -+ sidebar_folder_name += i + 1; -+ break; -+ } -+ } - if ( maildir_is_prefix ) { - char *tmp_folder_name; -- int i; -+ int lastsep = 0; - tmp_folder_name = tmp->path + strlen(Maildir); -- for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) { -- if (tmp_folder_name[i] == '/') sidebar_folder_depth++; -- } -+ for (i = 0; i < strlen(tmp_folder_name) - 1; i++) { -+ if (SidebarDelimChars && -+ strchr(SidebarDelimChars, tmp_folder_name[i])) -+ { -+ sidebar_folder_depth++; -+ lastsep = i + 1; -+ } -+ } - if (sidebar_folder_depth > 0) { -- sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1); -+ tmp_folder_name += lastsep; /* basename */ -+ sidebar_folder_name = malloc(strlen(tmp_folder_name) + sidebar_folder_depth + 1); - for (i=0; i < sidebar_folder_depth; i++) - sidebar_folder_name[i]=' '; - sidebar_folder_name[i]=0; -- strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth); -+ strncat(sidebar_folder_name, tmp_folder_name, strlen(tmp_folder_name) + sidebar_folder_depth); - } - } - printw( "%.*s", SidebarWidth - delim_len + 1, diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar-new.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar-new.patch deleted file mode 100644 index fb265346361..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar-new.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 355399bde98203af59d20821f9e840fc056bd383 Mon Sep 17 00:00:00 2001 -From: Julius Haertl -Date: Tue, 9 Sep 2014 22:31:49 +0200 -Subject: Patch for sidebar iteration functionality - -sidebar-new will move the selected folder to the next with new messages. -If the end is reached, it will start at the top. - -Useful macros would be: - - macro index a "" - macro pager a "" ---- - OPS | 1 + - curs_main.c | 1 + - functions.h | 2 ++ - pager.c | 1 + - sidebar.c | 10 ++++++++++ - 5 files changed, 15 insertions(+) - -diff --git a/OPS b/OPS -index 1ed9c96..3ffb82a 100644 ---- a/OPS -+++ b/OPS -@@ -187,3 +187,4 @@ OP_SIDEBAR_PREV "go to previous mailbox" - OP_SIDEBAR_OPEN "open hilighted mailbox" - OP_SIDEBAR_NEXT_NEW "go down to next mailbox with new mail" - OP_SIDEBAR_PREV_NEW "go to previous mailbox with new mail" -+OP_SIDEBAR_NEW "iterate though mailboxes with new mail" -diff --git a/curs_main.c b/curs_main.c -index acb106d..2e35f90 100644 ---- a/curs_main.c -+++ b/curs_main.c -@@ -2328,6 +2328,7 @@ int mutt_index_menu (void) - case OP_SIDEBAR_PREV: - case OP_SIDEBAR_NEXT_NEW: - case OP_SIDEBAR_PREV_NEW: -+ case OP_SIDEBAR_NEW: - scroll_sidebar(op, menu->menu); - break; - default: -diff --git a/functions.h b/functions.h -index 363b4d5..1485080 100644 ---- a/functions.h -+++ b/functions.h -@@ -176,6 +176,7 @@ const struct binding_t OpMain[] = { /* map: index */ - { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, - { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL}, - { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL}, -+ { "sidebar-new", OP_SIDEBAR_NEW, NULL }, - { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, - { NULL, 0, NULL } - }; -@@ -287,6 +288,7 @@ const struct binding_t OpPager[] = { /* map: pager */ - { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, - { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL}, - { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL}, -+ { "sidebar-new", OP_SIDEBAR_NEW, NULL }, - { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, - { NULL, 0, NULL } - }; -diff --git a/pager.c b/pager.c -index 8d64fe1..696e55c 100644 ---- a/pager.c -+++ b/pager.c -@@ -2791,6 +2791,7 @@ search_next: - case OP_SIDEBAR_PREV: - case OP_SIDEBAR_NEXT_NEW: - case OP_SIDEBAR_PREV_NEW: -+ case OP_SIDEBAR_NEW: - scroll_sidebar(ch, MENU_PAGER); - break; - -diff --git a/sidebar.c b/sidebar.c -index c3ea338..eb8ecd2 100644 ---- a/sidebar.c -+++ b/sidebar.c -@@ -429,6 +429,16 @@ void scroll_sidebar(int op, int menu) - CurBuffy = CurBuffy->next; - } - break; -+ case OP_SIDEBAR_NEW: -+ if ( (tmp = exist_next_new()) == NULL) -+ tmp = TopBuffy; -+ if ( tmp->msg_unread == 0 ) { -+ CurBuffy = tmp; -+ tmp = exist_next_new(); -+ } -+ if ( tmp != NULL ) -+ CurBuffy = tmp; -+ break; - default: - return; - } --- -2.6.0.rc0.2.g7662973.dirty - diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar-newonly.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar-newonly.patch deleted file mode 100644 index d206848026b..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar-newonly.patch +++ /dev/null @@ -1,198 +0,0 @@ -From: Steve Kemp -Date: Tue, 4 Mar 2014 22:07:06 +0100 -Subject: sidebar-newonly - -patches written by Steve Kemp, it adds two new functionalities to the sidebar, -so only the mailbox with new messages will be shown (and/or) selected -See Debian bug http://bugs.debian.org/532510 - -Gbp-Pq: Topic mutt-patched ---- - OPS | 2 ++ - curs_main.c | 2 ++ - functions.h | 4 ++++ - init.h | 5 +++++ - mutt.h | 2 ++ - pager.c | 2 ++ - sidebar.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- - 7 files changed, 70 insertions(+), 2 deletions(-) - -diff --git a/OPS b/OPS -index b036db9..1ed9c96 100644 ---- a/OPS -+++ b/OPS -@@ -185,3 +185,5 @@ OP_SIDEBAR_SCROLL_DOWN "scroll the mailbox pane down 1 page" - OP_SIDEBAR_NEXT "go down to next mailbox" - OP_SIDEBAR_PREV "go to previous mailbox" - OP_SIDEBAR_OPEN "open hilighted mailbox" -+OP_SIDEBAR_NEXT_NEW "go down to next mailbox with new mail" -+OP_SIDEBAR_PREV_NEW "go to previous mailbox with new mail" -diff --git a/curs_main.c b/curs_main.c -index ea530a6..acb106d 100644 ---- a/curs_main.c -+++ b/curs_main.c -@@ -2326,6 +2326,8 @@ int mutt_index_menu (void) - case OP_SIDEBAR_SCROLL_DOWN: - case OP_SIDEBAR_NEXT: - case OP_SIDEBAR_PREV: -+ case OP_SIDEBAR_NEXT_NEW: -+ case OP_SIDEBAR_PREV_NEW: - scroll_sidebar(op, menu->menu); - break; - default: -diff --git a/functions.h b/functions.h -index ef8937a..363b4d5 100644 ---- a/functions.h -+++ b/functions.h -@@ -174,6 +174,8 @@ const struct binding_t OpMain[] = { /* map: index */ - { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, - { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, - { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, -+ { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL}, -+ { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL}, - { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, - { NULL, 0, NULL } - }; -@@ -283,6 +285,8 @@ const struct binding_t OpPager[] = { /* map: pager */ - { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, - { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, - { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, -+ { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL}, -+ { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL}, - { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, - { NULL, 0, NULL } - }; -diff --git a/init.h b/init.h -index 166671b..a5d4238 100644 ---- a/init.h -+++ b/init.h -@@ -2059,6 +2059,11 @@ struct option_t MuttVars[] = { - ** you're not using IMAP folders, you probably prefer setting this to "/" - ** alone. - */ -+ {"sidebar_newmail_only", DT_BOOL, R_BOTH, OPTSIDEBARNEWMAILONLY, 0 }, -+ /* -+ ** .pp -+ ** Show only new mail in the sidebar. -+ */ - { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, - /* - ** .pp -diff --git a/mutt.h b/mutt.h -index 5f25406..d73e514 100644 ---- a/mutt.h -+++ b/mutt.h -@@ -529,6 +529,8 @@ enum - OPTDONTHANDLEPGPKEYS, /* (pseudo) used to extract PGP keys */ - OPTUNBUFFEREDINPUT, /* (pseudo) don't use key buffer */ - -+ OPTSIDEBARNEWMAILONLY, -+ - OPTMAX - }; - -diff --git a/pager.c b/pager.c -index 5cfcb75..8d64fe1 100644 ---- a/pager.c -+++ b/pager.c -@@ -2789,6 +2789,8 @@ search_next: - case OP_SIDEBAR_SCROLL_DOWN: - case OP_SIDEBAR_NEXT: - case OP_SIDEBAR_PREV: -+ case OP_SIDEBAR_NEXT_NEW: -+ case OP_SIDEBAR_PREV_NEW: - scroll_sidebar(ch, MENU_PAGER); - break; - -diff --git a/sidebar.c b/sidebar.c -index 8f58f85..51a25ca 100644 ---- a/sidebar.c -+++ b/sidebar.c -@@ -269,8 +269,21 @@ int draw_sidebar(int menu) { - SETCOLOR(MT_COLOR_NEW); - else if ( tmp->msg_flagged > 0 ) - SETCOLOR(MT_COLOR_FLAGGED); -- else -- SETCOLOR(MT_COLOR_NORMAL); -+ else { -+ /* make sure the path is either: -+ 1. Containing new mail. -+ 2. The inbox. -+ 3. The current box. -+ */ -+ if ((option (OPTSIDEBARNEWMAILONLY)) && -+ ( (tmp->msg_unread <= 0) && -+ ( tmp != Incoming ) && -+ Context && -+ ( strcmp( tmp->path, Context->path ) != 0 ) ) ) -+ continue; -+ else -+ SETCOLOR(MT_COLOR_NORMAL); -+ } - - move( lines, 0 ); - if ( Context && !strcmp( tmp->path, Context->path ) ) { -@@ -336,6 +349,29 @@ int draw_sidebar(int menu) { - return 0; - } - -+BUFFY * exist_next_new() -+{ -+ BUFFY *tmp = CurBuffy; -+ if(tmp == NULL) return NULL; -+ while (tmp->next != NULL) -+ { -+ tmp = tmp->next; -+ if(tmp->msg_unread) return tmp; -+ } -+ return NULL; -+} -+ -+BUFFY * exist_prev_new() -+{ -+ BUFFY *tmp = CurBuffy; -+ if(tmp == NULL) return NULL; -+ while (tmp->prev != NULL) -+ { -+ tmp = tmp->prev; -+ if(tmp->msg_unread) return tmp; -+ } -+ return NULL; -+} - - void set_buffystats(CONTEXT* Context) - { -@@ -352,18 +388,33 @@ void set_buffystats(CONTEXT* Context) - - void scroll_sidebar(int op, int menu) - { -+ BUFFY *tmp; - if(!SidebarWidth) return; - if(!CurBuffy) return; - - switch (op) { - case OP_SIDEBAR_NEXT: -+ if (!option (OPTSIDEBARNEWMAILONLY)) { - if ( CurBuffy->next == NULL ) return; - CurBuffy = CurBuffy->next; - break; -+ } -+ case OP_SIDEBAR_NEXT_NEW: -+ if ( (tmp = exist_next_new()) == NULL) -+ return; -+ else CurBuffy = tmp; -+ break; - case OP_SIDEBAR_PREV: -+ if (!option (OPTSIDEBARNEWMAILONLY)) { - if ( CurBuffy->prev == NULL ) return; - CurBuffy = CurBuffy->prev; - break; -+ } -+ case OP_SIDEBAR_PREV_NEW: -+ if ( (tmp = exist_prev_new()) == NULL) -+ return; -+ else CurBuffy = tmp; -+ break; - case OP_SIDEBAR_SCROLL_UP: - CurBuffy = TopBuffy; - if ( CurBuffy != Incoming ) { diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar-utf8.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar-utf8.patch deleted file mode 100644 index d67e43c24b6..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar-utf8.patch +++ /dev/null @@ -1,132 +0,0 @@ -From: Antonio Radici -Date: Tue, 4 Mar 2014 15:39:14 +0100 -Subject: sidebar-utf8 - -This patch fixes a problem with utf-8 strings and the sidebar, -it rewrites entirely make_sidebar_entry so it also fixes some -segfaults due to misallocations and overflows. - -See: - http://bugs.debian.org/584581 - http://bugs.debian.org/603287 - -Gbp-Pq: Topic mutt-patched ---- - sidebar.c | 97 +++++++++++++++++++++++++++++++++++++++++++-------------------- - 1 file changed, 67 insertions(+), 30 deletions(-) - -diff --git a/sidebar.c b/sidebar.c -index 4356ffc..8f58f85 100644 ---- a/sidebar.c -+++ b/sidebar.c -@@ -30,6 +30,7 @@ - #include - #include "keymap.h" - #include -+#include - - /*BUFFY *CurBuffy = 0;*/ - static BUFFY *TopBuffy = 0; -@@ -82,36 +83,72 @@ void calc_boundaries (int menu) - - char *make_sidebar_entry(char *box, int size, int new, int flagged) - { -- static char *entry = 0; -- char *c; -- int i = 0; -- int delim_len = strlen(SidebarDelim); -- -- c = realloc(entry, SidebarWidth - delim_len + 2); -- if ( c ) entry = c; -- entry[SidebarWidth - delim_len + 1] = 0; -- for (; i < SidebarWidth - delim_len + 1; entry[i++] = ' ' ); -- i = strlen(box); -- strncpy( entry, box, i < (SidebarWidth - delim_len + 1) ? i : (SidebarWidth - delim_len + 1) ); -- -- if (size == -1) -- sprintf(entry + SidebarWidth - delim_len - 3, "?"); -- else if ( new ) { -- if (flagged > 0) { -- sprintf( -- entry + SidebarWidth - delim_len - 5 - quick_log10(size) - quick_log10(new) - quick_log10(flagged), -- "% d(%d)[%d]", size, new, flagged); -- } else { -- sprintf( -- entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(new), -- "% d(%d)", size, new); -- } -- } else if (flagged > 0) { -- sprintf( entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(flagged), "% d[%d]", size, flagged); -- } else { -- sprintf( entry + SidebarWidth - delim_len - 1 - quick_log10(size), "% d", size); -- } -- return entry; -+ char int_store[20]; // up to 64 bits integers -+ int right_width, left_width; -+ int box_len, box_bytes; -+ int int_len; -+ int right_offset = 0; -+ int delim_len = strlen(SidebarDelim); -+ static char *entry; -+ -+ right_width = left_width = 0; -+ box_len = box_bytes = 0; -+ -+ // allocate an entry big enough to contain SidebarWidth wide chars -+ entry = malloc((SidebarWidth*4)+1); // TODO: error check -+ -+ // determine the right space (i.e.: how big are the numbers that we want to print) -+ if ( size > 0 ) { -+ int_len = snprintf(int_store, sizeof(int_store), "%d", size); -+ right_width += int_len; -+ } else { -+ right_width = 1; // to represent 0 -+ } -+ if ( new > 0 ) { -+ int_len = snprintf(int_store, sizeof(int_store), "%d", new); -+ right_width += int_len + 2; // 2 is for () -+ } -+ if ( flagged > 0 ) { -+ int_len = snprintf(int_store, sizeof(int_store), "%d", flagged); -+ right_width += int_len + 2; // 2 is for [] -+ } -+ -+ // determine how much space we have for *box and its padding (if any) -+ left_width = SidebarWidth - right_width - 1 - delim_len; // 1 is for the space -+ //fprintf(stdout, "left_width: %d right_width: %d\n", left_width, right_width); -+ // right side overflow case -+ if ( left_width <= 0 ) { -+ snprintf(entry, SidebarWidth*4, "%-*.*s ...", SidebarWidth-4-delim_len, SidebarWidth-4-delim_len, box); -+ return entry; -+ } -+ right_width -= delim_len; -+ -+ // to support utf-8 chars we need to add enough space padding in case there -+ // are less chars than bytes in *box -+ box_len = mbstowcs(NULL, box, 0); -+ box_bytes = strlen(box); -+ // debug -+ //fprintf(stdout, "box_len: %d box_bytes: %d (diff: %d)\n", box_len, box_bytes, (box_bytes-box_len)); -+ // if there is less string than the space we allow, then we will add the -+ // spaces -+ if ( box_len != -1 && box_len < left_width ) { -+ left_width += (box_bytes - box_len); -+ } -+ // otherwise sprintf will truncate the string for us (therefore, no else case) -+ -+ // print the sidebar entry (without new and flagged messages, at the moment) -+ //fprintf(stdout, "left_width: %d right_width: %d\n", left_width, right_width); -+ right_offset = snprintf(entry, SidebarWidth*4, "%-*.*s %d", left_width, left_width, box, size); -+ -+ // then pad new and flagged messages if any -+ if ( new > 0 ) { -+ right_offset += snprintf(entry+right_offset, SidebarWidth*4-right_offset, "(%d)", new); -+ } -+ if ( flagged > 0 ) { -+ right_offset += snprintf(entry+right_offset, SidebarWidth*4-right_offset, "[%d]", flagged); -+ } -+ -+ return entry; - } - - void set_curbuffy(char buf[LONG_STRING]) diff --git a/pkgs/applications/networking/mailreaders/mutt/sidebar.patch b/pkgs/applications/networking/mailreaders/mutt/sidebar.patch index bac1b4ab83b..218de7a0c46 100644 --- a/pkgs/applications/networking/mailreaders/mutt/sidebar.patch +++ b/pkgs/applications/networking/mailreaders/mutt/sidebar.patch @@ -1,306 +1,373 @@ -From: Antonio Radici -Date: Tue, 4 Mar 2014 15:21:10 +0100 -Subject: sidebar - -When enabled, mutt will show a list of mailboxes with (new) message counts in a -separate column on the left side of the screen. - -As this feature is still considered to be unstable, this patch is only applied -in the "mutt-patched" package. - -* Configuration variables: - - sidebar_delim (string, default "|") - - This specifies the delimiter between the sidebar (if visible) and - other screens. - - sidebar_visible (boolean, default no) - - This specifies whether or not to show sidebar (left-side list of folders). - - sidebar_width (integer, default 0) -- - The width of the sidebar. - -* Patch source: - - http://www.lunar-linux.org/index.php?page=mutt-sidebar - - http://lunar-linux.org/~tchan/mutt/patch-1.5.19.sidebar.20090522.txt - -* Changes made: - - 2008-08-02 myon: Refreshed patch using quilt push -f to remove hunks we do - not need (Makefile.in). - - - 2014-03-04 evgeni: refresh sidebar patch with the version from OpenBSD - Source: - ftp://ftp.openbsd.org/pub/OpenBSD/distfiles/mutt/sidebar-1.5.22.diff1.gz - -Signed-off-by: Matteo F. Vescovi -Signed-off-by: Evgeni Golov - -Gbp-Pq: Topic mutt-patched ---- - Makefile.am | 1 + - OPS | 5 + - buffy.c | 124 +++++++++++++++++++++ - buffy.h | 4 + - color.c | 2 + - compose.c | 26 ++--- - curs_main.c | 30 +++++- - flags.c | 3 + - functions.h | 10 ++ - globals.h | 4 + - imap/command.c | 7 ++ - imap/imap.c | 2 +- - init.h | 21 ++++ - mailbox.h | 1 + - mbox.c | 2 + - menu.c | 20 ++-- - mh.c | 22 ++++ - mutt.h | 4 + - mutt_curses.h | 3 + - muttlib.c | 48 +++++++++ - mx.c | 15 +++ - mx.h | 1 + - pager.c | 30 ++++-- - sidebar.c | 333 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - sidebar.h | 36 +++++++ - 25 files changed, 720 insertions(+), 34 deletions(-) - create mode 100644 sidebar.c - create mode 100644 sidebar.h - -diff --git a/Makefile.am b/Makefile.am -index 5dfeff6..cf1ac98 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -33,6 +33,7 @@ mutt_SOURCES = \ - rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \ - score.c send.c sendlib.c signal.c sort.c \ - status.c system.c thread.c charset.c history.c lib.c \ -+ sidebar.c \ - muttlib.c editmsg.c mbyte.c mutt_idna.c \ - url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c +diff -urN mutt-1.6.1/buffy.c mutt-1.6.1-sidebar/buffy.c +--- mutt-1.6.1/buffy.c 2016-06-12 18:43:00.397447512 +0100 ++++ mutt-1.6.1-sidebar/buffy.c 2016-06-12 18:43:03.951502935 +0100 +@@ -27,6 +27,10 @@ -diff --git a/OPS b/OPS -index 02cea8e..b036db9 100644 ---- a/OPS -+++ b/OPS -@@ -180,3 +180,8 @@ OP_WHAT_KEY "display the keycode for a key press" - OP_MAIN_SHOW_LIMIT "show currently active limit pattern" - OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread" - OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads" -+OP_SIDEBAR_SCROLL_UP "scroll the mailbox pane up 1 page" -+OP_SIDEBAR_SCROLL_DOWN "scroll the mailbox pane down 1 page" -+OP_SIDEBAR_NEXT "go down to next mailbox" -+OP_SIDEBAR_PREV "go to previous mailbox" -+OP_SIDEBAR_OPEN "open hilighted mailbox" -diff --git a/buffy.c b/buffy.c -index 12a16d1..90ca6db 100644 ---- a/buffy.c -+++ b/buffy.c -@@ -161,6 +161,49 @@ void mutt_buffy_cleanup (const char *buf, struct stat *st) - } - } + #include "mutt_curses.h" -+static int buffy_compare_name(const void *a, const void *b) { -+ const BUFFY *b1 = * (BUFFY * const *) a; -+ const BUFFY *b2 = * (BUFFY * const *) b; ++#ifdef USE_SIDEBAR ++#include "sidebar.h" ++#endif + -+ return mutt_strcoll(b1->path, b2->path); -+} -+ -+static BUFFY *buffy_sort(BUFFY *b) -+{ -+ BUFFY *tmp = b; -+ int buffycount = 0; -+ BUFFY **ary; -+ int i; -+ -+ if (!option(OPTSIDEBARSORT)) -+ return b; -+ -+ for (; tmp != NULL; tmp = tmp->next) -+ buffycount++; -+ -+ ary = (BUFFY **) safe_calloc(buffycount, sizeof (*ary)); -+ -+ tmp = b; -+ for (i = 0; tmp != NULL; tmp = tmp->next, i++) { -+ ary[i] = tmp; -+ } -+ -+ qsort(ary, buffycount, sizeof(*ary), buffy_compare_name); -+ -+ for (i = 0; i < buffycount - 1; i++) { -+ ary[i]->next = ary[i+1]; -+ } -+ ary[buffycount - 1]->next = NULL; -+ for (i = 1; i < buffycount; i++) { -+ ary[i]->prev = ary[i-1]; -+ } -+ ary[0]->prev = NULL; -+ -+ tmp = ary[0]; -+ free(ary); -+ return tmp; -+} -+ - BUFFY *mutt_find_mailbox (const char *path) + #ifdef USE_IMAP + #include "imap.h" + #endif +@@ -196,9 +200,17 @@ + static BUFFY *buffy_new (const char *path) { - BUFFY *tmp = NULL; -@@ -282,6 +325,7 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e - else - (*tmp)->size = 0; + BUFFY* buffy; ++#ifdef USE_SIDEBAR ++ char rp[PATH_MAX] = ""; ++ char *r = NULL; ++#endif + + buffy = (BUFFY *) safe_calloc (1, sizeof (BUFFY)); + strfcpy (buffy->path, path, sizeof (buffy->path)); ++#ifdef USE_SIDEBAR ++ r = realpath (path, rp); ++ strfcpy (buffy->realpath, r ? rp : path, sizeof (buffy->realpath)); ++#endif + buffy->next = NULL; + buffy->magic = 0; + +@@ -215,7 +227,10 @@ + BUFFY **tmp,*tmp1; + char buf[_POSIX_PATH_MAX]; + struct stat sb; +- char f1[PATH_MAX], f2[PATH_MAX]; ++ char f1[PATH_MAX]; ++#ifndef USE_SIDEBAR ++ char f2[PATH_MAX]; ++#endif + char *p, *q; + + while (MoreArgs (s)) +@@ -228,6 +243,9 @@ + for (tmp = &Incoming; *tmp;) + { + tmp1=(*tmp)->next; ++#ifdef USE_SIDEBAR ++ mutt_sb_notify_mailbox (*tmp, 0); ++#endif + buffy_free (tmp); + *tmp=tmp1; + } +@@ -243,8 +261,13 @@ + p = realpath (buf, f1); + for (tmp = &Incoming; *tmp; tmp = &((*tmp)->next)) + { ++#ifdef USE_SIDEBAR ++ q = (*tmp)->realpath; ++ if (mutt_strcmp (p ? p : buf, q) == 0) ++#else + q = realpath ((*tmp)->path, f2); + if (mutt_strcmp (p ? p : buf, q ? q : (*tmp)->path) == 0) ++#endif + { + dprint(3,(debugfile,"mailbox '%s' already registered as '%s'\n", buf, (*tmp)->path)); + break; +@@ -256,14 +279,21 @@ + if(*tmp) + { + tmp1=(*tmp)->next; ++#ifdef USE_SIDEBAR ++ mutt_sb_notify_mailbox (*tmp, 0); ++#endif + buffy_free (tmp); + *tmp=tmp1; + } + continue; + } + +- if (!*tmp) ++ if (!*tmp) { + *tmp = buffy_new (buf); ++#ifdef USE_SIDEBAR ++ mutt_sb_notify_mailbox (*tmp, 1); ++#endif ++ } + + (*tmp)->new = 0; + (*tmp)->notified = 1; +@@ -306,6 +336,13 @@ + return 0; } -+ Incoming = buffy_sort(Incoming); - return 0; - } -@@ -357,6 +401,69 @@ static int buffy_maildir_hasnew (BUFFY* mailbox) ++#ifdef USE_SIDEBAR ++ if (option (OPTSIDEBAR) && mailbox->msg_unread > 0) { ++ mailbox->new = 1; ++ return 1; ++ } ++#endif ++ + if ((dirp = opendir (path)) == NULL) + { + mailbox->magic = 0; +@@ -357,6 +394,93 @@ return 0; } + -+/* update message counts for the sidebar */ -+void buffy_maildir_update (BUFFY* mailbox) ++#ifdef USE_SIDEBAR ++/** ++ * buffy_maildir_update_dir - Update counts for one directory ++ * @mailbox: BUFFY representing a maildir mailbox ++ * @dir: Which directory to search ++ * ++ * Look through one directory of a maildir mailbox. The directory could ++ * be either "new" or "cur". ++ * ++ * Count how many new, or flagged, messages there are. ++ */ ++static void ++buffy_maildir_update_dir (BUFFY *mailbox, const char *dir) +{ -+ char path[_POSIX_PATH_MAX]; -+ DIR *dirp; -+ struct dirent *de; -+ char *p; ++ char path[_POSIX_PATH_MAX] = ""; ++ DIR *dirp = NULL; ++ struct dirent *de = NULL; ++ char *p = NULL; ++ int read; + -+ mailbox->msgcount = 0; -+ mailbox->msg_unread = 0; -+ mailbox->msg_flagged = 0; ++ snprintf (path, sizeof (path), "%s/%s", mailbox->path, dir); + -+ snprintf (path, sizeof (path), "%s/new", mailbox->path); -+ -+ if ((dirp = opendir (path)) == NULL) -+ { ++ dirp = opendir (path); ++ if (!dirp) ++ { + mailbox->magic = 0; + return; -+ } -+ ++ } ++ + while ((de = readdir (dirp)) != NULL) + { + if (*de->d_name == '.') + continue; + -+ if (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')) { -+ mailbox->new = 1; -+ mailbox->msgcount++; ++ /* Matches maildir_parse_flags logic */ ++ read = 0; ++ mailbox->msg_count++; ++ p = strstr (de->d_name, ":2,"); ++ if (p) ++ { ++ p += 3; ++ if (strchr (p, 'S')) ++ read = 1; ++ if (strchr (p, 'F')) ++ mailbox->msg_flagged++; ++ } ++ if (!read) { + mailbox->msg_unread++; + } + } + + closedir (dirp); -+ snprintf (path, sizeof (path), "%s/cur", mailbox->path); -+ -+ if ((dirp = opendir (path)) == NULL) -+ { -+ mailbox->magic = 0; -+ return; -+ } -+ -+ while ((de = readdir (dirp)) != NULL) -+ { -+ if (*de->d_name == '.') -+ continue; -+ -+ if (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')) { -+ mailbox->msgcount++; -+ if ((p = strstr (de->d_name, ":2,"))) { -+ if (!strchr (p + 3, 'T')) { -+ if (!strchr (p + 3, 'S')) -+ mailbox->msg_unread++; -+ if (strchr(p + 3, 'F')) -+ mailbox->msg_flagged++; -+ } -+ } -+ } -+ } -+ -+ closedir (dirp); +} ++ ++/** ++ * buffy_maildir_update - Update messages counts for a maildir mailbox ++ * @mailbox: BUFFY representing a maildir mailbox ++ * ++ * Open a mailbox directories and update our record of how many new, or ++ * flagged, messages there are. ++ */ ++void ++buffy_maildir_update (BUFFY *mailbox) ++{ ++ if (!option (OPTSIDEBAR)) ++ return; ++ ++ mailbox->msg_count = 0; ++ mailbox->msg_unread = 0; ++ mailbox->msg_flagged = 0; ++ ++ buffy_maildir_update_dir (mailbox, "new"); ++ if (mailbox->msg_count) { ++ mailbox->new = 1; ++ } ++ buffy_maildir_update_dir (mailbox, "cur"); ++ ++ mailbox->sb_last_checked = time (NULL); ++ ++ /* make sure the updates are actually put on screen */ ++ if (SidebarWidth) ++ mutt_sb_draw(); ++} ++ ++#endif + /* returns 1 if mailbox has new mail */ static int buffy_mbox_hasnew (BUFFY* mailbox, struct stat *sb) { -@@ -388,6 +495,20 @@ static int buffy_mbox_hasnew (BUFFY* mailbox, struct stat *sb) +@@ -368,7 +491,11 @@ + else + statcheck = sb->st_mtime > sb->st_atime + || (mailbox->newly_created && sb->st_ctime == sb->st_mtime && sb->st_ctime == sb->st_atime); ++#ifdef USE_SIDEBAR ++ if ((!option (OPTSIDEBAR) && statcheck) || (option (OPTSIDEBAR) && mailbox->msg_unread > 0)) ++#else + if (statcheck) ++#endif + { + if (!option(OPTMAILCHECKRECENT) || sb->st_mtime > mailbox->last_visited) + { +@@ -388,6 +515,42 @@ return rc; } -+/* update message counts for the sidebar */ -+void buffy_mbox_update (BUFFY* mailbox) ++#ifdef USE_SIDEBAR ++/** ++ * buffy_mbox_update - Update messages counts for an mbox mailbox ++ * @mailbox: BUFFY representing an mbox mailbox ++ * @sb: stat(2) infomation about the mailbox file ++ * ++ * Open a mbox file and update our record of how many new, or flagged, ++ * messages there are. If the mailbox hasn't changed since the last call, ++ * the function does nothing. ++ */ ++void ++buffy_mbox_update (BUFFY *mailbox, struct stat *sb) +{ + CONTEXT *ctx = NULL; + -+ ctx = mx_open_mailbox(mailbox->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); -+ if(ctx) ++ if (!option (OPTSIDEBAR)) ++ return; ++ if ((mailbox->sb_last_checked > sb->st_mtime) && (mailbox->msg_count != 0)) ++ return; /* no check necessary */ ++ ++ ctx = mx_open_mailbox (mailbox->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL); ++ if (ctx) + { -+ mailbox->msgcount = ctx->msgcount; -+ mailbox->msg_unread = ctx->unread; -+ mx_close_mailbox(ctx, 0); ++ mailbox->msg_count = ctx->msgcount; ++ mailbox->msg_unread = ctx->unread; ++ mailbox->msg_flagged = ctx->flagged; ++ mailbox->sb_last_checked = time (NULL); ++ mx_close_mailbox (ctx, 0); + } ++ ++ /* make sure the updates are actually put on screen */ ++ if (SidebarWidth) ++ mutt_sb_draw(); +} ++#endif + int mutt_buffy_check (int force) { BUFFY *tmp; -@@ -461,16 +582,19 @@ int mutt_buffy_check (int force) +@@ -461,16 +623,25 @@ { case M_MBOX: case M_MMDF: -+ buffy_mbox_update (tmp); ++#ifdef USE_SIDEBAR ++ buffy_mbox_update (tmp, &sb); ++#endif if (buffy_mbox_hasnew (tmp, &sb) > 0) BuffyCount++; break; case M_MAILDIR: ++#ifdef USE_SIDEBAR + buffy_maildir_update (tmp); ++#endif if (buffy_maildir_hasnew (tmp) > 0) BuffyCount++; break; case M_MH: -+ mh_buffy_update (tmp->path, &tmp->msgcount, &tmp->msg_unread, &tmp->msg_flagged); ++#ifdef USE_SIDEBAR ++ mh_buffy_update (tmp); ++#endif mh_buffy(tmp); if (tmp->new) BuffyCount++; -diff --git a/buffy.h b/buffy.h -index f9fc55a..672d178 100644 ---- a/buffy.h -+++ b/buffy.h -@@ -25,7 +25,11 @@ typedef struct buffy_t +diff -urN mutt-1.6.1/buffy.h mutt-1.6.1-sidebar/buffy.h +--- mutt-1.6.1/buffy.h 2016-06-12 18:43:00.397447512 +0100 ++++ mutt-1.6.1-sidebar/buffy.h 2016-06-12 18:43:03.951502935 +0100 +@@ -16,6 +16,9 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + ++#ifndef _BUFFY_H ++#define _BUFFY_H ++ + /*parameter to mutt_parse_mailboxes*/ + #define M_MAILBOXES 1 + #define M_UNMAILBOXES 2 +@@ -23,13 +26,28 @@ + typedef struct buffy_t + { char path[_POSIX_PATH_MAX]; ++#ifdef USE_SIDEBAR ++ char realpath[_POSIX_PATH_MAX]; ++#endif off_t size; struct buffy_t *next; ++#ifdef USE_SIDEBAR + struct buffy_t *prev; ++#endif short new; /* mailbox has new mail */ -+ int msgcount; /* total number of messages */ ++#ifdef USE_SIDEBAR ++ int msg_count; /* total number of messages */ + int msg_unread; /* number of unread messages */ + int msg_flagged; /* number of flagged messages */ ++ short is_hidden; /* is hidden from the sidebar */ ++#endif short notified; /* user has been notified */ short magic; /* mailbox type */ short newly_created; /* mbox or mmdf just popped into existence */ -diff --git a/color.c b/color.c -index 64a46dc..d6f9198 100644 ---- a/color.c -+++ b/color.c -@@ -94,6 +94,8 @@ static const struct mapping_t Fields[] = + time_t last_visited; /* time of last exit from this mailbox */ ++#ifdef USE_SIDEBAR ++ time_t sb_last_checked; /* time of last buffy check from sidebar */ ++#endif + } + BUFFY; + +@@ -49,3 +67,5 @@ + void mutt_buffy_setnotified (const char *path); + + void mh_buffy (BUFFY *); ++ ++#endif /* _BUFFY_H */ +diff -urN mutt-1.6.1/color.c mutt-1.6.1-sidebar/color.c +--- mutt-1.6.1/color.c 2016-06-12 18:43:00.397447512 +0100 ++++ mutt-1.6.1-sidebar/color.c 2016-06-12 18:43:03.951502935 +0100 +@@ -94,6 +94,14 @@ { "underline", MT_COLOR_UNDERLINE }, { "index", MT_COLOR_INDEX }, { "prompt", MT_COLOR_PROMPT }, -+ { "sidebar_new", MT_COLOR_NEW }, ++#ifdef USE_SIDEBAR ++ { "sidebar_divider", MT_COLOR_DIVIDER }, + { "sidebar_flagged", MT_COLOR_FLAGGED }, ++ { "sidebar_highlight",MT_COLOR_HIGHLIGHT }, ++ { "sidebar_indicator",MT_COLOR_SB_INDICATOR }, ++ { "sidebar_new", MT_COLOR_NEW }, ++ { "sidebar_spoolfile",MT_COLOR_SB_SPOOLFILE }, ++#endif { NULL, 0 } }; -diff --git a/compose.c b/compose.c -index 9d87060..b63695f 100644 ---- a/compose.c -+++ b/compose.c -@@ -72,7 +72,7 @@ enum +@@ -146,6 +154,9 @@ + ColorDefs[MT_COLOR_INDICATOR] = A_REVERSE; + ColorDefs[MT_COLOR_SEARCH] = A_REVERSE; + ColorDefs[MT_COLOR_MARKERS] = A_REVERSE; ++#ifdef USE_SIDEBAR ++ ColorDefs[MT_COLOR_HIGHLIGHT] = A_UNDERLINE; ++#endif + /* special meaning: toggle the relevant attribute */ + ColorDefs[MT_COLOR_BOLD] = 0; + ColorDefs[MT_COLOR_UNDERLINE] = 0; +diff -urN mutt-1.6.1/compose.c mutt-1.6.1-sidebar/compose.c +--- mutt-1.6.1/compose.c 2016-06-12 18:43:00.398447528 +0100 ++++ mutt-1.6.1-sidebar/compose.c 2016-06-12 18:43:03.952502951 +0100 +@@ -32,6 +32,9 @@ + #include "mailbox.h" + #include "sort.h" + #include "charset.h" ++#ifdef USE_SIDEBAR ++#include "sidebar.h" ++#endif + + #ifdef MIXMASTER + #include "remailer.h" +@@ -72,7 +75,7 @@ #define HDR_XOFFSET 10 #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */ @@ -309,16 +376,16 @@ index 9d87060..b63695f 100644 static const char * const Prompts[] = { -@@ -110,7 +110,7 @@ static void snd_entry (char *b, size_t blen, MUTTMENU *menu, int num) +@@ -110,7 +113,7 @@ static void redraw_crypt_lines (HEADER *msg) { - mvaddstr (HDR_CRYPT, 0, "Security: "); -+ mvaddstr (HDR_CRYPT, SidebarWidth, "Security: "); ++ mvprintw (HDR_CRYPT, SidebarWidth, TITLE_FMT, "Security: "); if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME)) == 0) { -@@ -145,7 +145,7 @@ static void redraw_crypt_lines (HEADER *msg) +@@ -145,16 +148,16 @@ addstr (_(" (OppEnc mode)")); clrtoeol (); @@ -327,7 +394,18 @@ index 9d87060..b63695f 100644 clrtoeol (); if ((WithCrypto & APPLICATION_PGP) -@@ -162,7 +162,7 @@ static void redraw_crypt_lines (HEADER *msg) + && (msg->security & APPLICATION_PGP) && (msg->security & SIGN)) +- printw ("%s%s", _(" sign as: "), PgpSignAs ? PgpSignAs : _("")); ++ printw (TITLE_FMT "%s", _("sign as: "), PgpSignAs ? PgpSignAs : _("")); + + if ((WithCrypto & APPLICATION_SMIME) + && (msg->security & APPLICATION_SMIME) && (msg->security & SIGN)) { +- printw ("%s%s", _(" sign as: "), SmimeDefaultKey ? SmimeDefaultKey : _("")); ++ printw (TITLE_FMT "%s", _("sign as: "), SmimeDefaultKey ? SmimeDefaultKey : _("")); + } + + if ((WithCrypto & APPLICATION_SMIME) +@@ -162,7 +165,7 @@ && (msg->security & ENCRYPT) && SmimeCryptAlg && *SmimeCryptAlg) { @@ -336,16 +414,17 @@ index 9d87060..b63695f 100644 NONULL(SmimeCryptAlg)); } } -@@ -175,7 +175,7 @@ static void redraw_mix_line (LIST *chain) +@@ -175,7 +178,8 @@ int c; char *t; - mvaddstr (HDR_MIX, 0, " Mix: "); -+ mvaddstr (HDR_MIX, SidebarWidth, " Mix: "); ++ /* L10N: "Mix" refers to the MixMaster chain for anonymous email */ ++ mvprintw (HDR_MIX, SidebarWidth, TITLE_FMT, _("Mix: ")); if (!chain) { -@@ -190,7 +190,7 @@ static void redraw_mix_line (LIST *chain) +@@ -190,7 +194,7 @@ if (t && t[0] == '0' && t[1] == '\0') t = ""; @@ -354,7 +433,7 @@ index 9d87060..b63695f 100644 break; addstr (NONULL(t)); -@@ -242,7 +242,7 @@ static void draw_envelope_addr (int line, ADDRESS *addr) +@@ -242,20 +246,23 @@ buf[0] = 0; rfc822_write_address (buf, sizeof (buf), addr, 1); @@ -363,7 +442,12 @@ index 9d87060..b63695f 100644 mutt_paddstr (W, buf); } -@@ -252,10 +252,10 @@ static void draw_envelope (HEADER *msg, char *fcc) + static void draw_envelope (HEADER *msg, char *fcc) + { ++#ifdef USE_SIDEBAR ++ mutt_sb_draw(); ++#endif + draw_envelope_addr (HDR_FROM, msg->env->from); draw_envelope_addr (HDR_TO, msg->env->to); draw_envelope_addr (HDR_CC, msg->env->cc); draw_envelope_addr (HDR_BCC, msg->env->bcc); @@ -376,7 +460,7 @@ index 9d87060..b63695f 100644 mutt_paddstr (W, fcc); if (WithCrypto) -@@ -266,7 +266,7 @@ static void draw_envelope (HEADER *msg, char *fcc) +@@ -266,7 +273,7 @@ #endif SETCOLOR (MT_COLOR_STATUS); @@ -385,16 +469,25 @@ index 9d87060..b63695f 100644 clrtoeol (); NORMAL_COLOR; -@@ -302,7 +302,7 @@ static int edit_address_list (int line, ADDRESS **addr) +@@ -302,7 +309,7 @@ /* redraw the expanded list so the user can see the result */ buf[0] = 0; rfc822_write_address (buf, sizeof (buf), *addr, 1); - move (line, HDR_XOFFSET); -+ move (line, HDR_XOFFSET+SidebarWidth); ++ move (line, HDR_XOFFSET + SidebarWidth); mutt_paddstr (W, buf); return 0; -@@ -562,7 +562,7 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */ +@@ -515,7 +522,7 @@ + menu->tag = mutt_tag_attach; + menu->data = idx; + menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_COMPOSE, ComposeHelp); +- ++ + while (loop) + { + switch (op = mutt_menuLoop (menu)) +@@ -564,7 +571,7 @@ if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0) { mutt_str_replace (&msg->env->subject, buf); @@ -403,7 +496,7 @@ index 9d87060..b63695f 100644 if (msg->env->subject) mutt_paddstr (W, msg->env->subject); else -@@ -580,7 +580,7 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */ +@@ -582,7 +589,7 @@ { strfcpy (fcc, buf, fcclen); mutt_pretty_mailbox (fcc, fcclen); @@ -412,57 +505,118 @@ index 9d87060..b63695f 100644 mutt_paddstr (W, fcc); fccSet = 1; } -diff --git a/curs_main.c b/curs_main.c -index 9d718ee..ea530a6 100644 ---- a/curs_main.c -+++ b/curs_main.c -@@ -26,7 +26,9 @@ +diff -urN mutt-1.6.1/configure.ac mutt-1.6.1-sidebar/configure.ac +--- mutt-1.6.1/configure.ac 2016-06-12 18:43:00.398447528 +0100 ++++ mutt-1.6.1-sidebar/configure.ac 2016-06-12 18:43:03.952502951 +0100 +@@ -175,6 +175,14 @@ + SMIMEAUX_TARGET="smime_keys" + fi + ++AC_ARG_ENABLE(sidebar, AC_HELP_STRING([--enable-sidebar], [Enable Sidebar support]), ++[ if test x$enableval = xyes ; then ++ AC_DEFINE(USE_SIDEBAR, 1, [Define if you want support for the sidebar.]) ++ OPS="$OPS \$(srcdir)/OPS.SIDEBAR" ++ MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS sidebar.o" ++ fi ++]) ++ + AC_ARG_WITH(mixmaster, AS_HELP_STRING([--with-mixmaster@<:@=PATH@:>@],[Include Mixmaster support]), + [if test "$withval" != no + then +diff -urN mutt-1.6.1/copy.c mutt-1.6.1-sidebar/copy.c +--- mutt-1.6.1/copy.c 2016-06-12 18:43:00.398447528 +0100 ++++ mutt-1.6.1-sidebar/copy.c 2016-06-12 18:43:03.952502951 +0100 +@@ -288,7 +288,8 @@ + if (flags & (CH_DECODE|CH_PREFIX)) + { + if (mutt_write_one_header (out, 0, headers[x], +- flags & CH_PREFIX ? prefix : 0, mutt_term_width (Wrap), flags) == -1) ++ flags & CH_PREFIX ? prefix : 0, ++ mutt_term_width (Wrap), flags) == -1) + { + error = TRUE; + break; +diff -urN mutt-1.6.1/curs_main.c mutt-1.6.1-sidebar/curs_main.c +--- mutt-1.6.1/curs_main.c 2016-06-12 18:43:00.399447544 +0100 ++++ mutt-1.6.1-sidebar/curs_main.c 2016-06-12 18:43:03.953502966 +0100 +@@ -26,8 +26,13 @@ #include "mailbox.h" #include "mapping.h" #include "sort.h" +#include "buffy.h" #include "mx.h" -+#include "sidebar.h" ++#ifdef USE_SIDEBAR ++#include "sidebar.h" ++#endif ++ #ifdef USE_POP #include "pop.h" -@@ -596,8 +598,12 @@ int mutt_index_menu (void) + #endif +@@ -595,21 +600,39 @@ menu->redraw |= REDRAW_STATUS; if (do_buffy_notify) { - if (mutt_buffy_notify () && option (OPTBEEPNEW)) - beep (); -+ if (mutt_buffy_notify ()) ++ if (mutt_buffy_notify()) + { -+ menu->redraw |= REDRAW_FULL; ++ menu->redraw |= REDRAW_STATUS; + if (option (OPTBEEPNEW)) -+ beep (); ++ beep(); + } } else do_buffy_notify = 1; -@@ -609,6 +615,7 @@ int mutt_index_menu (void) + } + ++#ifdef USE_SIDEBAR ++ if (option (OPTSIDEBAR)) ++ menu->redraw |= REDRAW_SIDEBAR; ++#endif ++ + if (op != -1) + mutt_curs_set (0); + if (menu->redraw & REDRAW_FULL) { menu_redraw_full (menu); -+ draw_sidebar(menu->menu); ++#ifdef USE_SIDEBAR ++ mutt_sb_draw(); ++#endif mutt_show_error (); } ++#ifdef USE_SIDEBAR ++ else if (menu->redraw & REDRAW_SIDEBAR) { ++ mutt_sb_draw(); ++ menu->redraw &= ~REDRAW_SIDEBAR; ++ } ++#endif -@@ -631,9 +638,12 @@ int mutt_index_menu (void) + if (menu->menu == MENU_MAIN) + { +@@ -630,9 +653,20 @@ if (menu->redraw & REDRAW_STATUS) { -+ DrawFullLine = 1; ++#ifdef USE_SIDEBAR ++ /* Temporarily lie about the sidebar width */ ++ short sw = SidebarWidth; ++ SidebarWidth = 0; ++#endif menu_status_line (buf, sizeof (buf), menu, NONULL (Status)); -+ DrawFullLine = 0; ++#ifdef USE_SIDEBAR ++ SidebarWidth = sw; /* Restore the sidebar width */ ++#endif move (option (OPTSTATUSONTOP) ? 0 : LINES-2, 0); SETCOLOR (MT_COLOR_STATUS); -+ set_buffystats(Context); ++#ifdef USE_SIDEBAR ++ mutt_sb_set_buffystats (Context); ++#endif mutt_paddstr (COLS, buf); NORMAL_COLOR; menu->redraw &= ~REDRAW_STATUS; -@@ -653,7 +663,7 @@ int mutt_index_menu (void) +@@ -652,7 +686,7 @@ menu->oldcurrent = -1; if (option (OPTARROWCURSOR)) @@ -471,229 +625,1948 @@ index 9d718ee..ea530a6 100644 else if (option (OPTBRAILLEFRIENDLY)) move (menu->current - menu->top + menu->offset, 0); else -@@ -1154,6 +1164,7 @@ int mutt_index_menu (void) +@@ -1091,6 +1125,9 @@ + break; + + CHECK_MSGCOUNT; ++#ifdef USE_SIDEBAR ++ CHECK_VISIBLE; ++#endif + CHECK_READONLY; + { + int oldvcount = Context->vcount; +@@ -1150,6 +1187,9 @@ menu->redraw = REDRAW_FULL; break; ++#ifdef USE_SIDEBAR + case OP_SIDEBAR_OPEN: ++#endif case OP_MAIN_CHANGE_FOLDER: case OP_MAIN_NEXT_UNREAD_MAILBOX: -@@ -1185,7 +1196,11 @@ int mutt_index_menu (void) +@@ -1181,6 +1221,14 @@ { mutt_buffy (buf, sizeof (buf)); -- if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) -+ if ( op == OP_SIDEBAR_OPEN ) { -+ if(!CurBuffy) -+ break; -+ strncpy( buf, CurBuffy->path, sizeof(buf) ); -+ } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) ++#ifdef USE_SIDEBAR ++ if (op == OP_SIDEBAR_OPEN) { ++ const char *path = mutt_sb_get_highlight(); ++ if (!path) ++ break; ++ strncpy (buf, path, sizeof (buf)); ++ } else ++#endif + if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) { if (menu->menu == MENU_PAGER) - { -@@ -1203,6 +1218,7 @@ int mutt_index_menu (void) +@@ -1199,6 +1247,9 @@ } mutt_expand_path (buf, sizeof (buf)); -+ set_curbuffy(buf); ++#ifdef USE_SIDEBAR ++ mutt_sb_set_open_buffy (buf); ++#endif if (mx_get_magic (buf) <= 0) { mutt_error (_("%s is not a mailbox."), buf); -@@ -2306,6 +2322,12 @@ int mutt_index_menu (void) +@@ -2310,6 +2361,21 @@ mutt_what_key(); break; -+ case OP_SIDEBAR_SCROLL_UP: -+ case OP_SIDEBAR_SCROLL_DOWN: ++#ifdef USE_SIDEBAR + case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_NEXT_NEW: ++ case OP_SIDEBAR_PAGE_DOWN: ++ case OP_SIDEBAR_PAGE_UP: + case OP_SIDEBAR_PREV: -+ scroll_sidebar(op, menu->menu); ++ case OP_SIDEBAR_PREV_NEW: ++ mutt_sb_change_mailbox (op); + break; ++ ++ case OP_SIDEBAR_TOGGLE_VISIBLE: ++ toggle_option (OPTSIDEBAR); ++ menu->redraw = REDRAW_FULL; ++ break; ++#endif default: if (menu->menu == MENU_MAIN) km_error_key (MENU_MAIN); -diff --git a/flags.c b/flags.c -index 133fa35..48fb287 100644 ---- a/flags.c -+++ b/flags.c -@@ -22,8 +22,10 @@ +diff -urN mutt-1.6.1/doc/manual.xml.head mutt-1.6.1-sidebar/doc/manual.xml.head +--- mutt-1.6.1/doc/manual.xml.head 2016-06-12 18:43:00.402447590 +0100 ++++ mutt-1.6.1-sidebar/doc/manual.xml.head 2016-06-12 18:43:03.955502998 +0100 +@@ -405,6 +405,623 @@ + + + ++ ++ Sidebar ++ ++ The Sidebar shows a list of all your mailboxes. The list can be ++ turned on and off, it can be themed and the list style can be ++ configured. ++ ++ ++ This part of the manual is suitable for beginners. ++ If you already know Mutt you could skip ahead to the main ++ Sidebar guide. ++ If you just want to get started, you could use the sample ++ Sidebar muttrc. ++ ++ ++ This version of Sidebar is based on Terry Chan's ++ 2015-11-11 release. ++ It contains many ++ new features, ++ lots of ++ bugfixes ++ and a generous helping of ++ new documentation which you are already reading. ++ ++ ++ To check if Mutt supports Sidebar, look for the string ++ +USE_SIDEBAR in the mutt version. ++ ++ ++mutt -v ++ ++ ++ Let's turn on the Sidebar: ++ ++ set sidebar_visible ++ ++ You will see something like this. ++ A list of mailboxes on the left. ++ A list of emails, from the selected mailbox, on the right. ++ ++ ++Fruit [1] 3/8| 1 + Jan 24 Rhys Lee (192) Yew ++Animals [1] 2/6| 2 + Feb 11 Grace Hall (167) Ilama ++Cars 4| 3 Feb 23 Aimee Scott (450) Nectarine ++Seas 1/7| 4 ! Feb 28 Summer Jackson (264) Lemon ++ | 5 Mar 07 Callum Harrison (464) Raspberry ++ | 6 N + Mar 24 Samuel Harris (353) Tangerine ++ | 7 N + Sep 05 Sofia Graham (335) Cherry ++ | 8 N Sep 16 Ewan Brown (105) Ugli ++ | ++ | ++ ++ ++ This user has four mailboxes: Fruit, ++ Cars, Animals and ++ Seas. ++ ++ ++ The current, open, mailbox is Fruit. We can ++ also see information about the other mailboxes. For example: ++ The Animals mailbox contains, 1 flagged email, 2 ++ new emails out of a total of 6 emails. ++ ++ ++ Navigation ++ ++ The Sidebar adds some new functions ++ to Mutt. ++ ++ ++ The user pressed the c key to ++ <change-folder> to the ++ Animals mailbox. The Sidebar automatically ++ updated the indicator to match. ++ ++ ++Fruit [1] 3/8| 1 Jan 03 Tia Gibson (362) Caiman ++Animals [1] 2/6| 2 + Jan 22 Rhys Lee ( 48) Dolphin ++Cars 4| 3 ! Aug 16 Ewan Brown (333) Hummingbird ++Seas 1/7| 4 Sep 25 Grace Hall ( 27) Capybara ++ | 5 N + Nov 12 Evelyn Rogers (453) Tapir ++ | 6 N + Nov 16 Callum Harrison (498) Hedgehog ++ | ++ | ++ | ++ | ++ ++ ++ Let's map some functions: ++ ++ ++bind index,pager \CP sidebar-prev # Ctrl-Shift-P - Previous Mailbox ++bind index,pager \CN sidebar-next # Ctrl-Shift-N - Next Mailbox ++bind index,pager \CO sidebar-open # Ctrl-Shift-O - Open Highlighted Mailbox ++ ++ ++ Press Ctrl-Shift-N (Next mailbox) twice will ++ move the Sidebar highlight to ++ down to the Seas mailbox. ++ ++ ++Fruit [1] 3/8| 1 Jan 03 Tia Gibson (362) Caiman ++Animals [1] 2/6| 2 + Jan 22 Rhys Lee ( 48) Dolphin ++Cars 4| 3 ! Aug 16 Ewan Brown (333) Hummingbird ++Seas 1/7| 4 Sep 25 Grace Hall ( 27) Capybara ++ | 5 N + Nov 12 Evelyn Rogers (453) Tapir ++ | 6 N + Nov 16 Callum Harrison (498) Hedgehog ++ | ++ | ++ | ++ | ++ ++ ++ Functions <sidebar-next> and ++ <sidebar-prev> move the Sidebar ++ highlight. ++ They do not change the open ++ mailbox. ++ ++ ++ Press Ctrl-Shift-O ++ (<sidebar-open>) ++ to open the highlighted mailbox. ++ ++ ++Fruit [1] 3/8| 1 ! Mar 07 Finley Jones (139) Molucca Sea ++Animals [1] 2/6| 2 + Mar 24 Summer Jackson ( 25) Arafura Sea ++Cars 4| 3 + Feb 28 Imogen Baker (193) Pechora Sea ++Seas 1/7| 4 N + Feb 23 Isla Hussain (348) Balearic Sea ++ | ++ | ++ | ++ | ++ | ++ | ++ ++ ++ ++ Features ++ ++ The Sidebar shows a list of mailboxes in a panel. ++ ++ ++ Everything about the Sidebar can be configured. ++ ++ ++ <link linkend="intro-sidebar-basics">State of the Sidebar</link> ++ Visibility ++ Width ++ ++ ++ <link linkend="intro-sidebar-limit">Which mailboxes are displayed</link> ++ Display all ++ Limit to mailboxes with new mail ++ Whitelist mailboxes to display always ++ ++ ++ <link linkend="sidebar-sort">The order in which mailboxes are displayed</link> ++ ++ Unsorted (order of mailboxes commands) ++ Sorted alphabetically ++ Sorted by number of new mails ++ ++ ++ <link linkend="intro-sidebar-colors">Color</link> ++ Sidebar indicators and divider ++ Mailboxes depending on their type ++ Mailboxes depending on their contents ++ ++ ++ <link linkend="sidebar-functions">Key bindings</link> ++ Hide/Unhide the Sidebar ++ Select previous/next mailbox ++ Select previous/next mailbox with new mail ++ Page up/down through a list of mailboxes ++ ++ ++ Misc ++ Formatting string for mailbox ++ Wraparound searching ++ Flexible mailbox abbreviations ++ Support for Unicode mailbox names (utf-8) ++ ++ ++ ++ Display ++ ++ Everything about the Sidebar can be configured. ++ ++ ++ For a quick reference: ++ Sidebar variables to set ++ Sidebar colors to apply ++ Sidebar sort methods ++ ++ ++ Sidebar Basics ++ ++ The most important variable is $sidebar_visible. ++ You can set this in your muttrc, or bind a key to the ++ function <sidebar-toggle-visible>. ++ ++ ++set sidebar_visible # Make the Sidebar visible by default ++bind index,pager B sidebar-toggle-visible # Use 'B' to switch the Sidebar on and off ++ ++ ++ Next, decide how wide you want the Sidebar to be. 25 ++ characters might be enough for the mailbox name and some numbers. ++ Remember, you can hide/show the Sidebar at the press of button. ++ ++ ++ Finally, you might want to change the divider character. ++ By default, Sidebar draws an ASCII line between it and the Index panel ++ If your terminal supports it, you can use a Unicode line-drawing character. ++ ++ ++set sidebar_width = 25 # Plenty of space ++set sidebar_divider_char = '│' # Pretty line-drawing character ++ ++ ++ ++ Sidebar Format String ++ ++ $sidebar_format allows you to customize the Sidebar display. ++ For an introduction, read format strings ++ including the section about conditionals. ++ ++ ++ The default value is %B%?F? [%F]?%* %?N?%N/?%S ++ ++ ++ Which breaks down as: ++ %B - Mailbox name ++ %?F? [%F]? - If flagged emails [%F], otherwise nothing ++ %* - Pad with spaces ++ %?N?%N/? - If new emails %N/, otherwise nothing ++ %S - Total number of emails ++ ++ ++ sidebar_format ++ ++ ++ ++ Format ++ Notes ++ Description ++ ++ ++ ++ ++ %B ++ ++ Name of the mailbox ++ ++ ++ %S ++ * ++ Size of mailbox (total number of messages) ++ ++ ++ %N ++ * ++ Number of New messages in the mailbox ++ ++ ++ %F ++ * ++ Number of Flagged messages in the mailbox ++ ++ ++ %! ++ ++ ++ !: one flagged message; ++ !!: two flagged messages; ++ n!: n flagged messages (for n > 2). ++ Otherwise prints nothing. ++ ++ ++ ++ %d ++ * ‡ ++ Number of deleted messages ++ ++ ++ %L ++ * ‡ ++ Number of messages after limiting ++ ++ ++ %t ++ * ‡ ++ Number of tagged messages ++ ++ ++ %>X ++ ++ Right justify the rest of the string and pad with X ++ ++ ++ %|X ++ ++ Pad to the end of the line with ++ X ++ ++ ++ %*X ++ ++ Soft-fill with character Xas pad ++ ++ ++ ++
++ ++ * = Can be optionally printed if nonzero ++ ++ ++ ‡ = Only applicable to the current folder ++ ++ ++ Here are some examples. ++ They show the number of (F)lagged, (N)ew and (S)ize. ++ ++ ++ sidebar_format ++ ++ ++ ++ Format ++ Example ++ ++ ++ ++ ++ %B%?F? [%F]?%* %?N?%N/?%S ++ mailbox [F] N/S ++ ++ ++ %B%* %F:%N:%S ++ mailbox F:N:S ++ ++ ++ %B %?N?(%N)?%* %S ++ mailbox (N) S ++ ++ ++ %B%* ?F?%F/?%N ++ mailbox F/S ++ ++ ++ ++
++
++ ++ Abbreviating Mailbox Names ++ ++ $sidebar_delim_chars tells Sidebar ++ how to split up mailbox paths. For local directories ++ use /; for IMAP folders use . ++ ++ ++ Example 1 ++ ++ This example works well if your mailboxes have unique names ++ after the last separator. ++ ++ ++ Add some mailboxes of diffent depths. ++ ++ ++set folder="~/mail" ++mailboxes =fruit/apple =fruit/banana =fruit/cherry ++mailboxes =water/sea/sicily =water/sea/archipelago =water/sea/sibuyan ++mailboxes =water/ocean/atlantic =water/ocean/pacific =water/ocean/arctic ++ ++ ++ Shorten the names: ++ ++ ++set sidebar_short_path # Shorten mailbox names ++set sidebar_delim_chars="/" # Delete everything up to the last / character ++ ++ ++ The screenshot below shows what the Sidebar would look like ++ before and after shortening. ++ ++ ++|fruit/apple |apple ++|fruit/banana |banana ++|fruit/cherry |cherry ++|water/sea/sicily |sicily ++|water/sea/archipelago |archipelago ++|water/sea/sibuyan |sibuyan ++|water/ocean/atlantic |atlantic ++|water/ocean/pacific |pacific ++|water/ocean/arctic |arctic ++ ++ ++ ++ Example 2 ++ ++ This example works well if you have lots of mailboxes which are arranged ++ in a tree. ++ ++ ++ Add some mailboxes of diffent depths. ++ ++ ++set folder="~/mail" ++mailboxes =fruit ++mailboxes =fruit/apple =fruit/banana =fruit/cherry ++mailboxes =water ++mailboxes =water/sea ++mailboxes =water/sea/sicily =water/sea/archipelago =water/sea/sibuyan ++mailboxes =water/ocean ++mailboxes =water/ocean/atlantic =water/ocean/pacific =water/ocean/arctic ++ ++ ++ Shorten the names: ++ ++ ++set sidebar_short_path # Shorten mailbox names ++set sidebar_delim_chars="/" # Delete everything up to the last / character ++set sidebar_folder_indent # Indent folders whose names we've shortened ++set sidebar_indent_string=" " # Indent with two spaces ++ ++ ++ The screenshot below shows what the Sidebar would look like ++ before and after shortening. ++ ++ ++|fruit |fruit ++|fruit/apple | apple ++|fruit/banana | banana ++|fruit/cherry | cherry ++|water |water ++|water/sea | sea ++|water/sea/sicily | sicily ++|water/sea/archipelago | archipelago ++|water/sea/sibuyan | sibuyan ++|water/ocean | ocean ++|water/ocean/atlantic | atlantic ++|water/ocean/pacific | pacific ++|water/ocean/arctic | arctic ++ ++ ++ Sometimes, it will be necessary to add mailboxes, that you ++ don't use, to fill in part of the tree. This will trade ++ vertical space for horizonal space (but it looks good). ++ ++ ++ ++ ++ Limiting the Number of Mailboxes ++ ++ If you have a lot of mailboxes, sometimes it can be useful to hide ++ the ones you aren't using. $sidebar_new_mail_only ++ tells Sidebar to only show mailboxes that contain new, or flagged, email. ++ ++ ++ If you want some mailboxes to be always visible, then use the ++ sidebar_whitelist command. It takes a list of ++ mailboxes as parameters. ++ ++ ++set sidebar_new_mail_only # Only mailboxes with new/flagged email ++sidebar_whitelist fruit fruit/apple # Always display these two mailboxes ++ ++ ++
++ ++ Colors ++ ++ Here is a sample color scheme: ++ ++ ++color sidebar_indicator default color17 # Dark blue background ++color sidebar_highlight white color238 # Grey background ++color sidebar_spoolfile yellow default # Yellow ++color sidebar_new green default # Green ++color sidebar_flagged red default # Red ++color sidebar_divider color8 default # Dark grey ++ ++ ++ There is a priority order when coloring Sidebar mailboxes. ++ e.g. If a mailbox has new mail it will have the ++ sidebar_new color, even if it also contains ++ flagged mails. ++ ++ ++ Sidebar Color Priority ++ ++ ++ ++ Priority ++ Color ++ Description ++ ++ ++ ++ ++ Highest ++ sidebar_indicator ++ Mailbox is open ++ ++ ++ ++ sidebar_highlight ++ Mailbox is highlighed ++ ++ ++ ++ sidebar_spoolfile ++ Mailbox is the spoolfile (receives incoming mail) ++ ++ ++ ++ sidebar_new ++ Mailbox contains new mail ++ ++ ++ ++ sidebar_flagged ++ Mailbox contains flagged mail ++ ++ ++ Lowest ++ (None) ++ Mailbox does not match above ++ ++ ++ ++
++
++ ++ Bug-fixes ++ ++ If you haven't used Sidebar before, you can ignore this section. ++ ++ ++ These bugs have been fixed since the previous Sidebar release: 2015-11-11. ++ ++ ++ Fix bug when starting in compose mode ++ Fix bug with empty sidebar_divider_char string ++ Fix bug with header wrapping ++ Correctly handle utf8 character sequences ++ Fix a bug in mh_buffy_update ++ Fix refresh -- time overflowed short ++ Protect against empty format strings ++ Limit Sidebar width to COLS ++ Handle unmailboxes * safely ++ Refresh Sidebar after timeout ++ ++ ++ ++ Config Changes ++ ++ If you haven't used Sidebar before, you can ignore this section. ++ ++ ++ Some of the Sidebar config has been changed to make its meaning clearer. ++ These changes have been made since the previous Sidebar release: 2015-11-11. ++ ++ ++ Config Changes ++ ++ ++ ++ Old Name ++ New Name ++ ++ ++ ++ ++ $sidebar_delim ++ $sidebar_divider_char ++ ++ ++ $sidebar_folderindent ++ $sidebar_folder_indent ++ ++ ++ $sidebar_indentstr ++ $sidebar_indent_string ++ ++ ++ $sidebar_newmail_only ++ $sidebar_new_mail_only ++ ++ ++ $sidebar_refresh ++ $sidebar_refresh_time ++ ++ ++ $sidebar_shortpath ++ $sidebar_short_path ++ ++ ++ $sidebar_sort ++ $sidebar_sort_method ++ ++ ++ <sidebar-scroll-down> ++ <sidebar-page-down> ++ ++ ++ <sidebar-scroll-up> ++ <sidebar-page-up> ++ ++ ++ ++
++
++
++ + + Help + +@@ -6773,6 +7390,17 @@ + + + ++Mutt will set the COLUMNS environment variable to ++the width of the pager. Some programs make use of this environment ++variable automatically. Others provide a command line argument that ++can use this to set the output width: ++ ++ ++ ++text/html; lynx -dump -width ${COLUMNS:-80} %s; copiousoutput ++ ++ ++ + Note that when using the built-in pager, only + entries with this flag will be considered a handler for a MIME type + — all other entries will be ignored. +@@ -7467,6 +8095,16 @@ + + + ++ ++Mutt Patches ++ ++Mutt may also be patched to support smaller features. ++These patches should add a free-form string to the end Mutt's version string. ++Running mutt -v might show: ++patch-1.6.1.sidebar.20160502 ++ ++ ++ + + URL Syntax + +@@ -8081,6 +8719,469 @@ + + + ++ ++ Sidebar Patch ++ Overview of mailboxes ++ ++ ++ Patch ++ ++ ++ To check if Mutt supports Sidebar, look for ++ +USE_SIDEBAR in the mutt version. ++ See: . ++ ++ ++ ++ Dependencies: ++ mutt-1.6.1 ++ ++ ++ This patch is part of the NeoMutt Project. ++ ++ ++ ++ Introduction ++ ++ ++ The Sidebar shows a list of all your mailboxes. The list can be ++ turned on and off, it can be themed and the list style can be ++ configured. ++ ++ ++ ++ This part of the manual is a reference guide. ++ If you want a simple introduction with examples see the ++ Sidebar Howto. ++ If you just want to get started, you could use the sample ++ Sidebar muttrc. ++ ++ ++ ++ This version of Sidebar is based on Terry Chan's ++ 2015-11-11 release. ++ It contains many ++ new features, ++ lots of ++ bugfixes. ++ ++ ++ ++ ++ Variables ++ ++ ++ Sidebar Variables ++ ++ ++ ++ Name ++ Type ++ Default ++ ++ ++ ++ ++ sidebar_delim_chars ++ string ++ /. ++ ++ ++ sidebar_divider_char ++ string ++ | ++ ++ ++ sidebar_folder_indent ++ boolean ++ no ++ ++ ++ sidebar_format ++ string ++ %B%?F? [%F]?%* %?N?%N/?%S ++ ++ ++ sidebar_indent_string ++ string ++    (two spaces) ++ ++ ++ sidebar_new_mail_only ++ boolean ++ no ++ ++ ++ sidebar_next_new_wrap ++ boolean ++ no ++ ++ ++ sidebar_refresh_time ++ number ++ 60 ++ ++ ++ sidebar_short_path ++ boolean ++ no ++ ++ ++ sidebar_sort_method ++ enum ++ SORT_ORDER ++ ++ ++ sidebar_visible ++ boolean ++ no ++ ++ ++ sidebar_whitelist ++ list ++ (empty) ++ ++ ++ sidebar_width ++ number ++ 20 ++ ++ ++ ++
++
++ ++ ++ Functions ++ ++ ++ Sidebar adds the following functions to Mutt. ++ By default, none of them are bound to keys. ++ ++ ++ ++ Sidebar Functions ++ ++ ++ ++ Menus ++ Function ++ Description ++ ++ ++ ++ ++ index,pager ++ <sidebar-next> ++ Move the highlight to next mailbox ++ ++ ++ index,pager ++ <sidebar-next-new> ++ Move the highlight to next mailbox with new mail ++ ++ ++ index,pager ++ <sidebar-open> ++ Open highlighted mailbox ++ ++ ++ index,pager ++ <sidebar-page-down> ++ Scroll the Sidebar down 1 page ++ ++ ++ index,pager ++ <sidebar-page-up> ++ Scroll the Sidebar up 1 page ++ ++ ++ index,pager ++ <sidebar-prev> ++ Move the highlight to previous mailbox ++ ++ ++ index,pager ++ <sidebar-prev-new> ++ Move the highlight to previous mailbox with new mail ++ ++ ++ index,pager ++ <sidebar-toggle-visible> ++ Make the Sidebar (in)visible ++ ++ ++ ++
++
++ ++ ++ Commands ++ ++ sidebar_whitelist ++ ++ mailbox ++ ++ ++ mailbox ++ ++ ++ ++ ++ ++ Colors ++ ++ ++ Sidebar Colors ++ ++ ++ ++ Name ++ Default Color ++ Description ++ ++ ++ ++ ++ sidebar_divider ++ default ++ The dividing line between the Sidebar and the Index/Pager panels ++ ++ ++ sidebar_flagged ++ default ++ Mailboxes containing flagged mail ++ ++ ++ sidebar_highlight ++ underline ++ Cursor to select a mailbox ++ ++ ++ sidebar_indicator ++ mutt indicator ++ The mailbox open in the Index panel ++ ++ ++ sidebar_new ++ default ++ Mailboxes containing new mail ++ ++ ++ sidebar_spoolfile ++ default ++ Mailbox that receives incoming mail ++ ++ ++ ++
++ ++ If the sidebar_indicator color isn't set, then the default Mutt ++ indicator color will be used (the color used in the index panel). ++
++ ++ ++ Sort ++ ++ ++ Sidebar Sort ++ ++ ++ ++ Sort ++ Description ++ ++ ++ ++ ++ alpha ++ Alphabetically by path ++ ++ ++ count ++ Total number of messages ++ ++ ++ flagged ++ Number of flagged messages ++ ++ ++ name ++ Alphabetically by path ++ ++ ++ new ++ Number of new messages ++ ++ ++ path ++ Alphabetically by path ++ ++ ++ unsorted ++ Do not resort the paths ++ ++ ++ ++
++
++ ++ ++ Muttrc ++ ++# This is a complete list of sidebar-related configuration. ++ ++# -------------------------------------------------------------------------- ++# VARIABLES - shown with their default values ++# -------------------------------------------------------------------------- ++ ++# Should the Sidebar be shown? ++set sidebar_visible = no ++ ++# How wide should the Sidebar be in screen columns? ++# Note: Some characters, e.g. Chinese, take up two columns each. ++set sidebar_width = 20 ++ ++# Should the mailbox paths be abbreviated? ++set sidebar_short_path = no ++ ++# When abbreviating mailbox path names, use any of these characters as path ++# separators. Only the part after the last separators will be shown. ++# For file folders '/' is good. For IMAP folders, often '.' is useful. ++set sidebar_delim_chars = '/.' ++ ++# If the mailbox path is abbreviated, should it be indented? ++set sidebar_folder_indent = no ++ ++# Indent mailbox paths with this string. ++set sidebar_indent_string = ' ' ++ ++# Make the Sidebar only display mailboxes that contain new, or flagged, ++# mail. ++set sidebar_new_mail_only = no ++ ++# Any mailboxes that are whitelisted will always be visible, even if the ++# sidebar_new_mail_only option is enabled. ++sidebar_whitelist '/home/user/mailbox1' ++sidebar_whitelist '/home/user/mailbox2' ++ ++# When searching for mailboxes containing new mail, should the search wrap ++# around when it reaches the end of the list? ++set sidebar_next_new_wrap = no ++ ++# The character to use as the divider between the Sidebar and the other Mutt ++# panels. ++# Note: Only the first character of this string is used. ++set sidebar_divider_char = '|' ++ ++# Display the Sidebar mailboxes using this format string. ++set sidebar_format = '%B%?F? [%F]?%* %?N?%N/?%S' ++ ++# Sidebar will not refresh its list of mailboxes any more frequently than ++# this number of seconds. This will help reduce disk/network traffic. ++set sidebar_refresh_time = 60 ++ ++# Sort the mailboxes in the Sidebar using this method: ++# count - total number of messages ++# flagged - number of flagged messages ++# new - number of new messages ++# path - mailbox path ++# unsorted - do not sort the mailboxes ++set sidebar_sort_method = 'unsorted' ++ ++# -------------------------------------------------------------------------- ++# FUNCTIONS - shown with an example mapping ++# -------------------------------------------------------------------------- ++ ++# Move the highlight to the previous mailbox ++bind index,pager \Cp sidebar-prev ++ ++# Move the highlight to the next mailbox ++bind index,pager \Cn sidebar-next ++ ++# Open the highlighted mailbox ++bind index,pager \Co sidebar-open ++ ++# Move the highlight to the previous page ++# This is useful if you have a LOT of mailboxes. ++bind index,pager <F3> sidebar-page-up ++ ++# Move the highlight to the next page ++# This is useful if you have a LOT of mailboxes. ++bind index,pager <F4> sidebar-page-down ++ ++# Move the highlight to the previous mailbox containing new, or flagged, ++# mail. ++bind index,pager <F5> sidebar-prev-new ++ ++# Move the highlight to the next mailbox containing new, or flagged, mail. ++bind index,pager <F6> sidebar-next-new ++ ++# Toggle the visibility of the Sidebar. ++bind index,pager B sidebar-toggle-visible ++ ++# -------------------------------------------------------------------------- ++# COLORS - some unpleasant examples are given ++# -------------------------------------------------------------------------- ++# Note: All color operations are of the form: ++# color OBJECT FOREGROUND BACKGROUND ++ ++# Color of the current, open, mailbox ++# Note: This is a general Mutt option which colors all selected items. ++color indicator cyan black ++ ++# Color of the highlighted, but not open, mailbox. ++color sidebar_highlight black color8 ++ ++# Color of the divider separating the Sidebar from Mutt panels ++color sidebar_divider color8 black ++ ++# Color to give mailboxes containing flagged mail ++color sidebar_flagged red black ++ ++# Color to give mailboxes containing new mail ++color sidebar_new green black ++ ++# -------------------------------------------------------------------------- ++ ++# vim: syntax=muttrc ++ ++ ++ ++ ++ See Also ++ ++ ++ Regular Expressions ++ Patterns ++ Color command ++ notmuch patch ++ ++ ++ ++ ++ Known Bugs ++ Unsorted isn't ++ ++ ++ ++ Credits ++ ++ Justin Hibbits jrh29@po.cwru.edu ++ Thomer M. Gil mutt@thomer.com ++ David Sterba dsterba@suse.cz ++ Evgeni Golov evgeni@debian.org ++ Fabian Groffen grobian@gentoo.org ++ Jason DeTiberus jdetiber@redhat.com ++ Stefan Assmann sassmann@kpanic.de ++ Steve Kemp steve@steve.org.uk ++ Terry Chan tchan@lunar-linux.org ++ Tyler Earnest tylere@rne.st ++ Richard Russon rich@flatcap.org ++ ++ ++
++ + + + +@@ -9237,6 +10338,17 @@ + + + ++sidebar_whitelist ++ ++item ++ ++ ++command ++ ++ ++ ++ ++ + source + + filename +diff -urN mutt-1.6.1/doc/mutt.css mutt-1.6.1-sidebar/doc/mutt.css +--- mutt-1.6.1/doc/mutt.css 2016-06-12 18:43:00.402447590 +0100 ++++ mutt-1.6.1-sidebar/doc/mutt.css 2016-06-12 18:43:03.811500752 +0100 +@@ -9,17 +9,24 @@ + div.table-contents table th, div.informaltable table th { + font-family:sans-serif; + background:#d0d0d0; +- font-weight:normal; ++ font-weight:bold; + vertical-align:top; + } +-div.cmdsynopsis { border-left:1px solid #707070; padding-left:5px; } ++div.cmdsynopsis { border-left:1px solid #707070; padding-left: 1em; } + li div.cmdsynopsis { border-left:none; padding-left:0px; } +-pre.screen, div.note { background:#f0f0f0; border:1px solid #c0c0c0; padding:5px; margin-left:2%; margin-right:2%; } ++li p { margin: 0; } ++pre.screen, div.note { border:1px solid #c0c0c0; margin-left:2%; margin-right:2%; } ++pre.screen { color: #ffffff; background:#000000; padding: 0.5em; } ++div.note { background:#ffff80; padding: 0.5em; } + div.example p.title { margin-left:2%; } + div.note h3 { font-size:small; font-style:italic; font-variant: small-caps; } + div.note h3:after { content: ":" } + div.note { margin-bottom: 5px; } +-.command { font-family: monospace; font-weight: normal; } ++div.literallayout, .command { font-family: monospace; font-weight: normal; } + .command strong { font-weight: normal; } + tr { vertical-align: top; } +-.comment { color:#707070; } ++.comment { color:#00c000; } ++code.literal { background: #f0f0f0; color: #000000; } ++span.indicator { background: #000060; color: #ffffff; } ++span.highlight { background: #404040; color: #ffffff; } ++span.reverse { background: #ffffff; color: #000000; } +diff -urN mutt-1.6.1/doc/muttrc.sidebar mutt-1.6.1-sidebar/doc/muttrc.sidebar +--- mutt-1.6.1/doc/muttrc.sidebar 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-sidebar/doc/muttrc.sidebar 2016-06-12 18:43:03.812500768 +0100 +@@ -0,0 +1,116 @@ ++# This is a complete list of sidebar-related configuration. ++ ++# -------------------------------------------------------------------------- ++# VARIABLES - shown with their default values ++# -------------------------------------------------------------------------- ++ ++# Should the Sidebar be shown? ++set sidebar_visible = no ++ ++# How wide should the Sidebar be in screen columns? ++# Note: Some characters, e.g. Chinese, take up two columns each. ++set sidebar_width = 20 ++ ++# Should the mailbox paths be abbreviated? ++set sidebar_short_path = no ++ ++# When abbreviating mailbox path names, use any of these characters as path ++# separators. Only the part after the last separators will be shown. ++# For file folders '/' is good. For IMAP folders, often '.' is useful. ++set sidebar_delim_chars = '/.' ++ ++# If the mailbox path is abbreviated, should it be indented? ++set sidebar_folder_indent = no ++ ++# Indent mailbox paths with this string. ++set sidebar_indent_string = ' ' ++ ++# Make the Sidebar only display mailboxes that contain new, or flagged, ++# mail. ++set sidebar_new_mail_only = no ++ ++# Any mailboxes that are whitelisted will always be visible, even if the ++# sidebar_new_mail_only option is enabled. ++sidebar_whitelist '/home/user/mailbox1' ++sidebar_whitelist '/home/user/mailbox2' ++ ++# When searching for mailboxes containing new mail, should the search wrap ++# around when it reaches the end of the list? ++set sidebar_next_new_wrap = no ++ ++# The character to use as the divider between the Sidebar and the other Mutt ++# panels. ++# Note: Only the first character of this string is used. ++set sidebar_divider_char = '|' ++ ++# Display the Sidebar mailboxes using this format string. ++set sidebar_format = '%B%?F? [%F]?%* %?N?%N/?%S' ++ ++# Sidebar will not refresh its list of mailboxes any more frequently than ++# this number of seconds. This will help reduce disk/network traffic. ++set sidebar_refresh_time = 60 ++ ++# Sort the mailboxes in the Sidebar using this method: ++# count - total number of messages ++# flagged - number of flagged messages ++# new - number of new messages ++# path - mailbox path ++# unsorted - do not sort the mailboxes ++set sidebar_sort_method = 'unsorted' ++ ++# -------------------------------------------------------------------------- ++# FUNCTIONS - shown with an example mapping ++# -------------------------------------------------------------------------- ++ ++# Move the highlight to the previous mailbox ++bind index,pager \Cp sidebar-prev ++ ++# Move the highlight to the next mailbox ++bind index,pager \Cn sidebar-next ++ ++# Open the highlighted mailbox ++bind index,pager \Co sidebar-open ++ ++# Move the highlight to the previous page ++# This is useful if you have a LOT of mailboxes. ++bind index,pager sidebar-page-up ++ ++# Move the highlight to the next page ++# This is useful if you have a LOT of mailboxes. ++bind index,pager sidebar-page-down ++ ++# Move the highlight to the previous mailbox containing new, or flagged, ++# mail. ++bind index,pager sidebar-prev-new ++ ++# Move the highlight to the next mailbox containing new, or flagged, mail. ++bind index,pager sidebar-next-new ++ ++# Toggle the visibility of the Sidebar. ++bind index,pager B sidebar-toggle-visible ++ ++# -------------------------------------------------------------------------- ++# COLORS - some unpleasant examples are given ++# -------------------------------------------------------------------------- ++# Note: All color operations are of the form: ++# color OBJECT FOREGROUND BACKGROUND ++ ++# Color of the current, open, mailbox ++# Note: This is a general Mutt option which colors all selected items. ++color indicator cyan black ++ ++# Color of the highlighted, but not open, mailbox. ++color sidebar_highlight black color8 ++ ++# Color of the divider separating the Sidebar from Mutt panels ++color sidebar_divider color8 black ++ ++# Color to give mailboxes containing flagged mail ++color sidebar_flagged red black ++ ++# Color to give mailboxes containing new mail ++color sidebar_new green black ++ ++# -------------------------------------------------------------------------- ++ ++# vim: syntax=muttrc +diff -urN mutt-1.6.1/doc/vimrc.sidebar mutt-1.6.1-sidebar/doc/vimrc.sidebar +--- mutt-1.6.1/doc/vimrc.sidebar 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-sidebar/doc/vimrc.sidebar 2016-06-12 18:43:03.813500783 +0100 +@@ -0,0 +1,35 @@ ++" Vim syntax file for the mutt sidebar patch ++ ++syntax keyword muttrcVarBool skipwhite contained sidebar_folder_indent nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++syntax keyword muttrcVarBool skipwhite contained sidebar_new_mail_only nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++syntax keyword muttrcVarBool skipwhite contained sidebar_next_new_wrap nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++syntax keyword muttrcVarBool skipwhite contained sidebar_short_path nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++syntax keyword muttrcVarBool skipwhite contained sidebar_visible nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++ ++syntax keyword muttrcVarNum skipwhite contained sidebar_refresh_time nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++syntax keyword muttrcVarNum skipwhite contained sidebar_width nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr ++ ++syntax keyword muttrcVarStr contained skipwhite sidebar_divider_char nextgroup=muttrcVarEqualsIdxFmt ++syntax keyword muttrcVarStr contained skipwhite sidebar_delim_chars nextgroup=muttrcVarEqualsIdxFmt ++syntax keyword muttrcVarStr contained skipwhite sidebar_format nextgroup=muttrcVarEqualsIdxFmt ++syntax keyword muttrcVarStr contained skipwhite sidebar_indent_string nextgroup=muttrcVarEqualsIdxFmt ++syntax keyword muttrcVarStr contained skipwhite sidebar_sort_method nextgroup=muttrcVarEqualsIdxFmt ++ ++syntax keyword muttrcCommand sidebar_whitelist ++ ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++syntax match muttrcFunction contained "\" ++ ++syntax keyword muttrcColorField contained sidebar_divider ++syntax keyword muttrcColorField contained sidebar_flagged ++syntax keyword muttrcColorField contained sidebar_highlight ++syntax keyword muttrcColorField contained sidebar_indicator ++syntax keyword muttrcColorField contained sidebar_new ++ ++" vim: syntax=vim +diff -urN mutt-1.6.1/filter.c mutt-1.6.1-sidebar/filter.c +--- mutt-1.6.1/filter.c 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-sidebar/filter.c 2016-06-12 18:43:03.835501127 +0100 +@@ -21,6 +21,7 @@ + #endif #include "mutt.h" - #include "mutt_curses.h" -+#include "mutt_menu.h" ++#include "mutt_curses.h" + + #include + #include +@@ -34,6 +35,7 @@ + int fdin, int fdout, int fderr) + { + int pin[2], pout[2], perr[2], thepid; ++ char columns[11]; + + if (in) + { +@@ -117,6 +119,9 @@ + close (fderr); + } + ++ snprintf (columns, sizeof (columns), "%d", COLS - SidebarWidth); ++ setenv ("COLUMNS", columns, 1); ++ + execl (EXECSHELL, "sh", "-c", cmd, NULL); + _exit (127); + } +diff -urN mutt-1.6.1/flags.c mutt-1.6.1-sidebar/flags.c +--- mutt-1.6.1/flags.c 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-sidebar/flags.c 2016-06-12 18:43:03.956503013 +0100 +@@ -25,6 +25,10 @@ #include "sort.h" #include "mx.h" -+#include "sidebar.h" ++#ifdef USE_SIDEBAR ++#include "sidebar.h" ++#endif ++ void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) { -@@ -290,6 +292,7 @@ void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) + int changed = h->changed; +@@ -263,6 +267,9 @@ */ if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged)) h->searched = 0; -+ draw_sidebar(0); ++#ifdef USE_SIDEBAR ++ mutt_sb_draw(); ++#endif } void mutt_tag_set_flag (int flag, int bf) -diff --git a/functions.h b/functions.h -index 26171a0..ef8937a 100644 ---- a/functions.h -+++ b/functions.h -@@ -170,6 +170,11 @@ const struct binding_t OpMain[] = { /* map: index */ +diff -urN mutt-1.6.1/functions.h mutt-1.6.1-sidebar/functions.h +--- mutt-1.6.1/functions.h 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-sidebar/functions.h 2016-06-12 18:43:03.956503013 +0100 +@@ -168,6 +168,16 @@ + { "decrypt-copy", OP_DECRYPT_COPY, NULL }, { "decrypt-save", OP_DECRYPT_SAVE, NULL }, ++#ifdef USE_SIDEBAR ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, ++ { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN, NULL }, ++ { "sidebar-page-up", OP_SIDEBAR_PAGE_UP, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL }, ++ { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE, NULL }, ++#endif -+ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, -+ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, -+ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, -+ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, -+ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, { NULL, 0, NULL } }; - -@@ -274,6 +279,11 @@ const struct binding_t OpPager[] = { /* map: pager */ +@@ -272,6 +282,17 @@ { "what-key", OP_WHAT_KEY, NULL }, -+ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL }, -+ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL }, -+ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, -+ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, -+ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, ++#ifdef USE_SIDEBAR ++ { "sidebar-next", OP_SIDEBAR_NEXT, NULL }, ++ { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL }, ++ { "sidebar-open", OP_SIDEBAR_OPEN, NULL }, ++ { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN, NULL }, ++ { "sidebar-page-up", OP_SIDEBAR_PAGE_UP, NULL }, ++ { "sidebar-prev", OP_SIDEBAR_PREV, NULL }, ++ { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL }, ++ { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE, NULL }, ++#endif ++ { NULL, 0, NULL } }; -diff --git a/globals.h b/globals.h -index 282fde3..004c795 100644 ---- a/globals.h -+++ b/globals.h -@@ -118,6 +118,7 @@ WHERE short SearchContext; +diff -urN mutt-1.6.1/globals.h mutt-1.6.1-sidebar/globals.h +--- mutt-1.6.1/globals.h 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-sidebar/globals.h 2016-06-12 18:43:03.956503013 +0100 +@@ -118,6 +118,12 @@ WHERE char *SendCharset; WHERE char *Sendmail; WHERE char *Shell; -+WHERE char *SidebarDelim; ++#ifdef USE_SIDEBAR ++WHERE char *SidebarDelimChars; ++WHERE char *SidebarDividerChar; ++WHERE char *SidebarFormat; ++WHERE char *SidebarIndentString; ++#endif WHERE char *Signature; WHERE char *SimpleSearch; #if USE_SMTP -@@ -214,6 +215,9 @@ WHERE short ScoreThresholdDelete; +@@ -214,6 +220,14 @@ WHERE short ScoreThresholdRead; WHERE short ScoreThresholdFlag; -+WHERE struct buffy_t *CurBuffy INITVAL(0); -+WHERE short DrawFullLine INITVAL(0); ++/* This isn't excluded from the build because it's too entwined in the code. ++ * For now. */ +WHERE short SidebarWidth; ++#ifdef USE_SIDEBAR ++WHERE short SidebarRefreshTime; ++WHERE LIST *SidebarWhitelist INITVAL(0); ++#endif ++ #ifdef USE_IMAP WHERE short ImapKeepalive; WHERE short ImapPipelineDepth; -diff --git a/imap/command.c b/imap/command.c -index 32f8417..d68e3ab 100644 ---- a/imap/command.c -+++ b/imap/command.c -@@ -1012,6 +1012,13 @@ static void cmd_parse_status (IMAP_DATA* idata, char* s) +diff -urN mutt-1.6.1/imap/command.c mutt-1.6.1-sidebar/imap/command.c +--- mutt-1.6.1/imap/command.c 2016-06-12 18:43:00.405447637 +0100 ++++ mutt-1.6.1-sidebar/imap/command.c 2016-06-12 18:43:03.839501189 +0100 +@@ -1016,6 +1016,14 @@ opened */ status->uidnext = oldun; -+ /* Added to make the sidebar show the correct numbers */ -+ if (status->messages) -+ { -+ inc->msgcount = status->messages; -+ inc->msg_unread = status->unseen; -+ } ++#ifdef USE_SIDEBAR ++ /* Make the sidebar show the correct numbers */ ++ if (status->messages) { ++ inc->msg_count = status->messages; ++ inc->msg_unread = status->unseen; ++ } ++#endif + FREE (&value); return; } -diff --git a/imap/imap.c b/imap/imap.c -index f476873..af3ac3d 100644 ---- a/imap/imap.c -+++ b/imap/imap.c -@@ -1529,7 +1529,7 @@ int imap_buffy_check (int force) +diff -urN mutt-1.6.1/imap/imap.c mutt-1.6.1-sidebar/imap/imap.c +--- mutt-1.6.1/imap/imap.c 2016-06-12 18:43:00.405447637 +0100 ++++ mutt-1.6.1-sidebar/imap/imap.c 2016-06-12 18:43:03.958503044 +0100 +@@ -1535,7 +1535,11 @@ - imap_munge_mbox_name (munged, sizeof (munged), name); + imap_munge_mbox_name (idata, munged, sizeof (munged), name); snprintf (command, sizeof (command), -- "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT)", munged); ++#ifdef USE_SIDEBAR + "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT MESSAGES)", munged); ++#else + "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT)", munged); ++#endif if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0) { -diff --git a/init.h b/init.h -index 35224c1..c664e5f 100644 ---- a/init.h -+++ b/init.h -@@ -2030,6 +2030,27 @@ struct option_t MuttVars[] = { - ** not used. - ** (PGP only) +diff -urN mutt-1.6.1/init.c mutt-1.6.1-sidebar/init.c +--- mutt-1.6.1/init.c 2016-06-12 18:43:00.406447652 +0100 ++++ mutt-1.6.1-sidebar/init.c 2016-06-12 18:43:03.959503060 +0100 +@@ -2173,6 +2173,9 @@ + case DT_SORT_AUX: + map = SortAuxMethods; + break; ++ case DT_SORT_SIDEBAR: ++ map = SortSidebarMethods; ++ break; + default: + map = SortMethods; + break; +diff -urN mutt-1.6.1/init.h mutt-1.6.1-sidebar/init.h +--- mutt-1.6.1/init.h 2016-06-12 18:43:00.408447684 +0100 ++++ mutt-1.6.1-sidebar/init.h 2016-06-12 18:43:03.960503075 +0100 +@@ -42,11 +42,12 @@ + #define DTYPE(x) ((x) & DT_MASK) + + /* subtypes */ +-#define DT_SUBTYPE_MASK 0xf0 ++#define DT_SUBTYPE_MASK 0xff0 + #define DT_SORT_ALIAS 0x10 + #define DT_SORT_BROWSER 0x20 + #define DT_SORT_KEYS 0x40 + #define DT_SORT_AUX 0x80 ++#define DT_SORT_SIDEBAR 0x100 + + /* flags to parse_set() */ + #define M_SET_INV (1<<0) /* default is to invert all vars */ +@@ -2665,6 +2666,147 @@ + ** Command to use when spawning a subshell. By default, the user's login + ** shell from \fC/etc/passwd\fP is used. */ -+ {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"}, ++#ifdef USE_SIDEBAR ++ { "sidebar_divider_char", DT_STR, R_BOTH, UL &SidebarDividerChar, UL "|" }, + /* + ** .pp -+ ** This specifies the delimiter between the sidebar (if visible) and -+ ** other screens. ++ ** This specifies the characters to be drawn between the sidebar (when ++ ** visible) and the other Mutt panels. ASCII and Unicode line-drawing ++ ** characters are supported. ++ */ ++ { "sidebar_delim_chars", DT_STR, R_NONE, UL &SidebarDelimChars, UL "/." }, ++ /* ++ ** .pp ++ ** This contains the list of characters which you would like to treat ++ ** as folder separators for displaying paths in the sidebar. ++ ** .pp ++ ** Local mail is often arranged in directories: `dir1/dir2/mailbox'. ++ ** .ts ++ ** set sidebar_delim_chars='/' ++ ** .te ++ ** .pp ++ ** IMAP mailboxes are often named: `folder1.folder2.mailbox'. ++ ** .ts ++ ** set sidebar_delim_chars='.' ++ ** .te ++ ** .pp ++ ** \fBSee also:\fP $$sidebar_short_path, $$sidebar_folder_indent, $$sidebar_indent_string. ++ */ ++ { "sidebar_folder_indent", DT_BOOL, R_BOTH, OPTSIDEBARFOLDERINDENT, 0 }, ++ /* ++ ** .pp ++ ** Set this to indent mailboxes in the sidebar. ++ ** .pp ++ ** \fBSee also:\fP $$sidebar_short_path, $$sidebar_indent_string, $$sidebar_delim_chars. ++ */ ++ { "sidebar_format", DT_STR, R_NONE, UL &SidebarFormat, UL "%B%?F? [%F]?%* %?N?%N/?%S" }, ++ /* ++ ** .pp ++ ** This variable allows you to customize the sidebar display. This string is ++ ** similar to $$index_format, but has its own set of \fCprintf(3)\fP-like ++ ** sequences: ++ ** .dl ++ ** .dt %B .dd Name of the mailbox ++ ** .dt %S .dd * Size of mailbox (total number of messages) ++ ** .dt %N .dd * Number of New messages in the mailbox ++ ** .dt %F .dd * Number of Flagged messages in the mailbox ++ ** .dt %! .dd ``!'' : one flagged message; ++ ** ``!!'' : two flagged messages; ++ ** ``n!'' : n flagged messages (for n > 2). ++ ** Otherwise prints nothing. ++ ** .dt %d .dd * @ Number of deleted messages ++ ** .dt %L .dd * @ Number of messages after limiting ++ ** .dt %t .dd * @ Number of tagged messages ++ ** .dt %>X .dd right justify the rest of the string and pad with ``X'' ++ ** .dt %|X .dd pad to the end of the line with ``X'' ++ ** .dt %*X .dd soft-fill with character ``X'' as pad ++ ** .de ++ ** .pp ++ ** * = Can be optionally printed if nonzero ++ ** @ = Only applicable to the current folder ++ */ ++ { "sidebar_indent_string", DT_STR, R_BOTH, UL &SidebarIndentString, UL " " }, ++ /* ++ ** .pp ++ ** This specifies the string that is used to indent mailboxes in the sidebar. ++ ** It defaults to two spaces. ++ ** .pp ++ ** \fBSee also:\fP $$sidebar_short_path, $$sidebar_folder_indent, $$sidebar_delim_chars. ++ */ ++ { "sidebar_new_mail_only", DT_BOOL, R_BOTH, OPTSIDEBARNEWMAILONLY, 0 }, ++ /* ++ ** .pp ++ ** When set, the sidebar will only display mailboxes containing new, or ++ ** flagged, mail. ++ ** .pp ++ ** \fBSee also:\fP $sidebar_whitelist. ++ */ ++ { "sidebar_next_new_wrap", DT_BOOL, R_BOTH, UL OPTSIDEBARNEXTNEWWRAP, 0 }, ++ /* ++ ** .pp ++ ** When set, the \fC\fP command will not stop and the end of ++ ** the list of mailboxes, but wrap around to the beginning. The ++ ** \fC\fP command is similarly affected, wrapping around to ++ ** the end of the list. ++ */ ++ { "sidebar_refresh_time", DT_NUM, R_BOTH, UL &SidebarRefreshTime, 60 }, ++ /* ++ ** .pp ++ ** Set sidebar_refresh_time to the minimum number of seconds between refreshes. ++ ** This will reduce network traffic. ++ ** .pp ++ ** \fBNote:\fP Set to 0 to disable refreshing. ++ */ ++ { "sidebar_short_path", DT_BOOL, R_BOTH, OPTSIDEBARSHORTPATH, 0 }, ++ /* ++ ** .pp ++ ** By default the sidebar will show the mailbox's path, relative to the ++ ** $$folder variable. Setting \fCsidebar_shortpath=yes\fP will shorten the ++ ** names relative to the previous name. Here's an example: ++ ** .dl ++ ** .dt \fBshortpath=no\fP .dd \fBshortpath=yes\fP .dd \fBshortpath=yes, folderindent=yes, indentstr=".."\fP ++ ** .dt \fCfruit\fP .dd \fCfruit\fP .dd \fCfruit\fP ++ ** .dt \fCfruit.apple\fP .dd \fCapple\fP .dd \fC..apple\fP ++ ** .dt \fCfruit.banana\fP .dd \fCbanana\fP .dd \fC..banana\fP ++ ** .dt \fCfruit.cherry\fP .dd \fCcherry\fP .dd \fC..cherry\fP ++ ** .de ++ ** .pp ++ ** \fBSee also:\fP $$sidebar_delim_chars, $$sidebar_folder_indent, $$sidebar_indent_string. ++ */ ++ { "sidebar_sort_method", DT_SORT|DT_SORT_SIDEBAR, R_NONE, UL &SidebarSortMethod, SORT_ORDER }, ++ /* ++ ** .pp ++ ** Specifies how to sort entries in the file browser. By default, the ++ ** entries are sorted alphabetically. Valid values: ++ ** .il ++ ** .dd alpha (alphabetically) ++ ** .dd count (all message count) ++ ** .dd date ++ ** .dd desc (description) ++ ** .dd new (new message count) ++ ** .dd size ++ ** .dd unsorted ++ ** .ie ++ ** .pp ++ ** You may optionally use the ``reverse-'' prefix to specify reverse sorting ++ ** order (example: ``\fCset sort_browser=reverse-date\fP''). + */ + { "sidebar_visible", DT_BOOL, R_BOTH, OPTSIDEBAR, 0 }, + /* + ** .pp -+ ** This specifies whether or not to show sidebar (left-side list of folders). -+ */ -+ { "sidebar_sort", DT_BOOL, R_BOTH, OPTSIDEBARSORT, 0 }, -+ /* ++ ** This specifies whether or not to show sidebar. The sidebar shows a list of ++ ** all your mailboxes. + ** .pp -+ ** This specifies whether or not to sort the sidebar alphabetically. ++ ** \fBSee also:\fP $$sidebar_format, $$sidebar_width + */ + { "sidebar_width", DT_NUM, R_BOTH, UL &SidebarWidth, 0 }, + /* + ** .pp -+ ** The width of the sidebar. ++ ** This controls the width of the sidebar. It is measured in screen columns. ++ ** For example: sidebar_width=20 could display 20 ASCII characters, or 10 ++ ** Chinese characters. + */ - { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, ++#endif + { "sig_dashes", DT_BOOL, R_NONE, OPTSIGDASHES, 1 }, /* ** .pp -diff --git a/mailbox.h b/mailbox.h -index 2b2c9a1..000503d 100644 ---- a/mailbox.h -+++ b/mailbox.h -@@ -27,6 +27,7 @@ +@@ -3652,6 +3794,19 @@ + { NULL, 0 } + }; + ++const struct mapping_t SortSidebarMethods[] = { ++ { "alpha", SORT_PATH }, ++ { "count", SORT_COUNT }, ++ { "desc", SORT_DESC }, ++ { "flagged", SORT_FLAGGED }, ++ { "mailbox-order", SORT_ORDER }, ++ { "name", SORT_PATH }, ++ { "new", SORT_COUNT_NEW }, ++ { "path", SORT_PATH }, ++ { "unsorted", SORT_ORDER }, ++ { NULL, 0 } ++}; ++ + + /* functions used to parse commands in a rc file */ + +@@ -3741,6 +3896,9 @@ + { "send-hook", mutt_parse_hook, M_SENDHOOK }, + { "send2-hook", mutt_parse_hook, M_SEND2HOOK }, + { "set", parse_set, 0 }, ++#ifdef USE_SIDEBAR ++ { "sidebar_whitelist",parse_list, UL &SidebarWhitelist }, ++#endif + { "source", parse_source, 0 }, + { "spam", parse_spam_list, M_SPAM }, + { "nospam", parse_spam_list, M_NOSPAM }, +diff -urN mutt-1.6.1/keymap.c mutt-1.6.1-sidebar/keymap.c +--- mutt-1.6.1/keymap.c 2016-06-12 18:43:00.408447684 +0100 ++++ mutt-1.6.1-sidebar/keymap.c 2016-06-12 18:43:03.960503075 +0100 +@@ -453,6 +453,9 @@ + } + #endif + ++ /* update sidebar stats */ ++ mutt_buffy_check(0); ++ + timeout (i * 1000); + tmp = mutt_getch(); + timeout (-1); +diff -urN mutt-1.6.1/mailbox.h mutt-1.6.1-sidebar/mailbox.h +--- mutt-1.6.1/mailbox.h 2016-06-12 18:43:00.408447684 +0100 ++++ mutt-1.6.1-sidebar/mailbox.h 2016-06-12 18:43:03.960503075 +0100 +@@ -27,6 +27,9 @@ #define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses * safe_fopen() for mbox-style folders. */ ++#ifdef USE_SIDEBAR +#define M_PEEK (1<<5) /* revert atime back after taking a look (if applicable) */ ++#endif /* mx_open_new_message() */ #define M_ADD_FROM (1<<0) /* add a From_ line */ -diff --git a/mbox.c b/mbox.c -index 6d3b6bd..fa82eb3 100644 ---- a/mbox.c -+++ b/mbox.c -@@ -104,6 +104,7 @@ int mmdf_parse_mailbox (CONTEXT *ctx) +diff -urN mutt-1.6.1/main.c mutt-1.6.1-sidebar/main.c +--- mutt-1.6.1/main.c 2016-06-12 18:43:00.409447699 +0100 ++++ mutt-1.6.1-sidebar/main.c 2016-06-12 18:43:03.961503091 +0100 +@@ -31,6 +31,9 @@ + #include "url.h" + #include "mutt_crypt.h" + #include "mutt_idna.h" ++#ifdef USE_SIDEBAR ++#include "sidebar.h" ++#endif + + #ifdef USE_SASL + #include "mutt_sasl.h" +@@ -485,6 +488,12 @@ + "-USE_HCACHE " + #endif + ++#ifdef USE_SIDEBAR ++ "+USE_SIDEBAR " ++#else ++ "-USE_SIDEBAR " ++#endif ++ + ); + + #ifdef ISPELL +@@ -557,7 +566,11 @@ + + int main (int argc, char **argv) + { ++#ifdef USE_SIDEBAR ++ char folder[PATH_MAX] = ""; ++#else + char folder[_POSIX_PATH_MAX] = ""; ++#endif + char *subject = NULL; + char *includeFile = NULL; + char *draftFile = NULL; +@@ -828,6 +841,9 @@ + clear (); + mutt_error = mutt_curses_error; + mutt_message = mutt_curses_message; ++#ifdef USE_SIDEBAR ++ mutt_sb_init(); ++#endif + } + + /* Create the Maildir directory if it doesn't exist. */ +@@ -1184,6 +1200,15 @@ + strfcpy (folder, NONULL(Spoolfile), sizeof (folder)); + mutt_expand_path (folder, sizeof (folder)); + ++#ifdef USE_SIDEBAR ++ { ++ char tmpfolder[PATH_MAX] = ""; ++ strfcpy (tmpfolder, folder, sizeof (tmpfolder)); ++ if (!realpath (tmpfolder, folder)) ++ strfcpy (folder, tmpfolder, sizeof (tmpfolder)); ++ } ++#endif ++ + mutt_str_replace (&CurrentFolder, folder); + mutt_str_replace (&LastFolder, folder); + +@@ -1206,6 +1231,9 @@ + if((Context = mx_open_mailbox (folder, ((flags & M_RO) || option (OPTREADONLY)) ? M_READONLY : 0, NULL)) + || !explicit_folder) + { ++#ifdef USE_SIDEBAR ++ mutt_sb_set_open_buffy (folder); ++#endif + mutt_index_menu (); + if (Context) + FREE (&Context); +diff -urN mutt-1.6.1/Makefile.am mutt-1.6.1-sidebar/Makefile.am +--- mutt-1.6.1/Makefile.am 2016-06-12 18:43:00.389447388 +0100 ++++ mutt-1.6.1-sidebar/Makefile.am 2016-06-12 18:43:03.944502826 +0100 +@@ -56,7 +56,7 @@ + mutt_idna.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \ + mutt_tunnel.c pgp.c pgpinvoke.c pgpkey.c pgplib.c pgpmicalg.c \ + pgppacket.c pop.c pop_auth.c pop_lib.c remailer.c resize.c sha1.c \ +- smime.c smtp.c utf8.c wcwidth.c \ ++ sidebar.c smime.c smtp.c utf8.c wcwidth.c \ + bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h + + EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \ +@@ -71,7 +71,7 @@ + mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h \ + README.SSL smime.h group.h \ + muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \ +- ChangeLog mkchangelog.sh mutt_idna.h \ ++ ChangeLog mkchangelog.sh mutt_idna.h sidebar.h OPS.sidebar \ + snprintf.c regex.c crypt-gpgme.h hcachever.sh.in sys_socket.h \ + txt2c.c txt2c.sh version.sh check_sec.sh + +@@ -129,9 +129,9 @@ + keymap_defs.h: $(OPS) $(srcdir)/gen_defs + $(srcdir)/gen_defs $(OPS) > keymap_defs.h + +-keymap_alldefs.h: $(srcdir)/OPS $(srcdir)/OPS.PGP $(srcdir)/OPS.MIX $(srcdir)/OPS.CRYPT $(srcdir)/OPS.SMIME $(srcdir)/gen_defs ++keymap_alldefs.h: $(srcdir)/OPS $(srcdir)/OPS.SIDEBAR $(srcdir)/OPS.PGP $(srcdir)/OPS.MIX $(srcdir)/OPS.CRYPT $(srcdir)/OPS.SMIME $(srcdir)/gen_defs + rm -f $@ +- $(srcdir)/gen_defs $(srcdir)/OPS $(srcdir)/OPS.PGP \ ++ $(srcdir)/gen_defs $(srcdir)/OPS $(srcdir)/OPS.SIDEBAR $(srcdir)/OPS.PGP \ + $(srcdir)/OPS.MIX $(srcdir)/OPS.CRYPT $(srcdir)/OPS.SMIME \ + > keymap_alldefs.h + +diff -urN mutt-1.6.1/mbox.c mutt-1.6.1-sidebar/mbox.c +--- mutt-1.6.1/mbox.c 2016-06-12 18:43:00.409447699 +0100 ++++ mutt-1.6.1-sidebar/mbox.c 2016-06-12 18:43:03.961503091 +0100 +@@ -100,6 +100,9 @@ mutt_perror (ctx->path); return (-1); } ++#ifdef USE_SIDEBAR + ctx->atime = sb.st_atime; ++#endif ctx->mtime = sb.st_mtime; ctx->size = sb.st_size; -@@ -255,6 +256,7 @@ int mbox_parse_mailbox (CONTEXT *ctx) +@@ -251,6 +254,9 @@ ctx->size = sb.st_size; ctx->mtime = sb.st_mtime; ++#ifdef USE_SIDEBAR + ctx->atime = sb.st_atime; ++#endif #ifdef NFS_ATTRIBUTE_HACK if (sb.st_mtime > sb.st_atime) -diff --git a/menu.c b/menu.c -index 27b5f8e..bc3a02f 100644 ---- a/menu.c -+++ b/menu.c -@@ -24,6 +24,7 @@ +diff -urN mutt-1.6.1/menu.c mutt-1.6.1-sidebar/menu.c +--- mutt-1.6.1/menu.c 2016-06-12 18:43:00.409447699 +0100 ++++ mutt-1.6.1-sidebar/menu.c 2016-06-12 18:43:03.961503091 +0100 +@@ -24,6 +24,9 @@ #include "mutt_curses.h" #include "mutt_menu.h" #include "mbyte.h" ++#ifdef USE_SIDEBAR +#include "sidebar.h" ++#endif - extern size_t UngetCount; + char* SearchBuffers[MENU_MAX]; -@@ -186,7 +187,7 @@ static void menu_pad_string (char *s, size_t n) +@@ -184,7 +187,7 @@ { char *scratch = safe_strdup (s); int shift = option (OPTARROWCURSOR) ? 3 : 0; @@ -702,15 +2575,17 @@ index 27b5f8e..bc3a02f 100644 mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1); s[n - 1] = 0; -@@ -239,6 +240,7 @@ void menu_redraw_index (MUTTMENU *menu) +@@ -237,6 +240,9 @@ int do_color; int attr; -+ draw_sidebar(1); ++#ifdef USE_SIDEBAR ++ mutt_sb_draw(); ++#endif for (i = menu->top; i < menu->top + menu->pagelen; i++) { if (i < menu->max) -@@ -249,7 +251,7 @@ void menu_redraw_index (MUTTMENU *menu) +@@ -247,7 +253,7 @@ menu_pad_string (buf, sizeof (buf)); ATTRSET(attr); @@ -719,16 +2594,19 @@ index 27b5f8e..bc3a02f 100644 do_color = 1; if (i == menu->current) -@@ -272,7 +274,7 @@ void menu_redraw_index (MUTTMENU *menu) +@@ -270,7 +276,11 @@ else { NORMAL_COLOR; -- CLEARLINE(i - menu->top + menu->offset); ++#ifdef USE_SIDEBAR + CLEARLINE_WIN(i - menu->top + menu->offset); ++#else + CLEARLINE(i - menu->top + menu->offset); ++#endif } } NORMAL_COLOR; -@@ -289,7 +291,7 @@ void menu_redraw_motion (MUTTMENU *menu) +@@ -287,7 +297,7 @@ return; } @@ -737,7 +2615,7 @@ index 27b5f8e..bc3a02f 100644 ATTRSET(menu->color (menu->oldcurrent)); if (option (OPTARROWCURSOR)) -@@ -301,13 +303,13 @@ void menu_redraw_motion (MUTTMENU *menu) +@@ -299,13 +309,13 @@ { menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); menu_pad_string (buf, sizeof (buf)); @@ -753,7 +2631,7 @@ index 27b5f8e..bc3a02f 100644 } else { -@@ -320,7 +322,7 @@ void menu_redraw_motion (MUTTMENU *menu) +@@ -318,7 +328,7 @@ menu_make_entry (buf, sizeof (buf), menu, menu->current); menu_pad_string (buf, sizeof (buf)); SETCOLOR(MT_COLOR_INDICATOR); @@ -762,7 +2640,7 @@ index 27b5f8e..bc3a02f 100644 print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0); } menu->redraw &= REDRAW_STATUS; -@@ -332,7 +334,7 @@ void menu_redraw_current (MUTTMENU *menu) +@@ -330,7 +340,7 @@ char buf[LONG_STRING]; int attr = menu->color (menu->current); @@ -771,7 +2649,7 @@ index 27b5f8e..bc3a02f 100644 menu_make_entry (buf, sizeof (buf), menu, menu->current); menu_pad_string (buf, sizeof (buf)); -@@ -881,7 +883,7 @@ int mutt_menuLoop (MUTTMENU *menu) +@@ -873,7 +883,7 @@ if (option (OPTARROWCURSOR)) @@ -780,160 +2658,207 @@ index 27b5f8e..bc3a02f 100644 else if (option (OPTBRAILLEFRIENDLY)) move (menu->current - menu->top + menu->offset, 0); else -diff --git a/mh.c b/mh.c -index 63e12d2..4a84a99 100644 ---- a/mh.c -+++ b/mh.c -@@ -295,6 +295,28 @@ void mh_buffy(BUFFY *b) +diff -urN mutt-1.6.1/mh.c mutt-1.6.1-sidebar/mh.c +--- mutt-1.6.1/mh.c 2016-06-12 18:43:00.410447715 +0100 ++++ mutt-1.6.1-sidebar/mh.c 2016-06-12 18:43:03.962503107 +0100 +@@ -295,6 +295,48 @@ mhs_free_sequences (&mhs); } -+void mh_buffy_update (const char *path, int *msgcount, int *msg_unread, int *msg_flagged) ++#ifdef USE_SIDEBAR ++/** ++ * mh_buffy_update - Update messages counts for an mh mailbox ++ * @mailbox: BUFFY representing a maildir mailbox ++ * ++ * Read through an mh mailbox and count messages. Save the number of new, ++ * flagged messages and a timestamp for now. ++ */ ++void ++mh_buffy_update (BUFFY *mailbox) +{ + int i; + struct mh_sequences mhs; -+ memset (&mhs, 0, sizeof (mhs)); + -+ if (mh_read_sequences (&mhs, path) < 0) ++ if (!mailbox) + return; + -+ msgcount = 0; -+ msg_unread = 0; -+ msg_flagged = 0; ++ if (!option (OPTSIDEBAR)) ++ return; ++ ++ memset (&mhs, 0, sizeof (mhs)); ++ ++ if (mh_read_sequences (&mhs, mailbox->path) < 0) ++ return; ++ ++ mailbox->msg_count = 0; ++ mailbox->msg_unread = 0; ++ mailbox->msg_flagged = 0; ++ + for (i = 0; i <= mhs.max; i++) -+ msgcount++; -+ if (mhs_check (&mhs, i) & MH_SEQ_UNSEEN) { -+ msg_unread++; ++ { ++ mailbox->msg_count++; ++ if (mhs_check (&mhs, i) & MH_SEQ_UNSEEN) ++ mailbox->msg_unread++; ++ if (mhs_check (&mhs, i) & MH_SEQ_FLAGGED) ++ mailbox->msg_flagged++; + } -+ if (mhs_check (&mhs, i) & MH_SEQ_FLAGGED) -+ msg_flagged++; + mhs_free_sequences (&mhs); ++ mailbox->sb_last_checked = time (NULL); +} ++#endif + static int mh_mkstemp (CONTEXT * dest, FILE ** fp, char **tgt) { int fd; -diff --git a/mutt.h b/mutt.h -index 01d47de..5f25406 100644 ---- a/mutt.h -+++ b/mutt.h -@@ -435,6 +435,8 @@ enum - OPTSAVEEMPTY, - OPTSAVENAME, - OPTSCORE, -+ OPTSIDEBAR, -+ OPTSIDEBARSORT, - OPTSIGDASHES, - OPTSIGONTOP, - OPTSORTRE, -@@ -880,6 +882,7 @@ typedef struct _context - { - char *path; - FILE *fp; -+ time_t atime; - time_t mtime; - off_t size; - off_t vsize; -@@ -920,6 +923,7 @@ typedef struct _context - unsigned int quiet : 1; /* inhibit status messages? */ - unsigned int collapsed : 1; /* are all threads collapsed? */ - unsigned int closing : 1; /* mailbox is being closed */ -+ unsigned int peekonly : 1; /* just taking a glance, revert atime */ - - /* driver hooks */ - void *data; /* driver specific data */ -diff --git a/mutt_curses.h b/mutt_curses.h -index f8bc47c..ef9884e 100644 ---- a/mutt_curses.h -+++ b/mutt_curses.h -@@ -64,6 +64,7 @@ +diff -urN mutt-1.6.1/mutt_curses.h mutt-1.6.1-sidebar/mutt_curses.h +--- mutt-1.6.1/mutt_curses.h 2016-06-12 18:43:00.410447715 +0100 ++++ mutt-1.6.1-sidebar/mutt_curses.h 2016-06-12 18:43:03.962503107 +0100 +@@ -64,6 +64,9 @@ #undef lines #endif /* lines */ -+#define CLEARLINE_WIN(x) move(x,SidebarWidth), clrtoeol() ++#ifdef USE_SIDEBAR ++#define CLEARLINE_WIN(x) move (x,SidebarWidth), clrtoeol() ++#endif #define CLEARLINE(x) move(x,0), clrtoeol() #define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x) #define BEEP() do { if (option (OPTBEEP)) beep(); } while (0) -@@ -121,6 +122,8 @@ enum +@@ -124,6 +127,14 @@ MT_COLOR_UNDERLINE, MT_COLOR_INDEX, MT_COLOR_PROMPT, -+ MT_COLOR_NEW, ++#ifdef USE_SIDEBAR ++ MT_COLOR_DIVIDER, + MT_COLOR_FLAGGED, ++ MT_COLOR_HIGHLIGHT, ++ MT_COLOR_NEW, ++ MT_COLOR_SB_INDICATOR, ++ MT_COLOR_SB_SPOOLFILE, ++#endif MT_COLOR_MAX }; -diff --git a/muttlib.c b/muttlib.c -index c1d565f..039e7c3 100644 ---- a/muttlib.c -+++ b/muttlib.c -@@ -1279,6 +1279,8 @@ void mutt_FormatString (char *dest, /* output buffer */ +@@ -163,12 +174,16 @@ + + static inline int mutt_term_width(short wrap) + { ++ int cols = COLS; ++#ifdef USE_SIDEBAR ++ cols -= SidebarWidth; ++#endif + if (wrap < 0) +- return COLS > -wrap ? COLS + wrap : COLS; ++ return cols > -wrap ? cols + wrap : cols; + else if (wrap) +- return wrap < COLS ? wrap : COLS; ++ return wrap < cols ? wrap : cols; + else +- return COLS; ++ return cols; + } + + extern int *ColorQuote; +diff -urN mutt-1.6.1/mutt.h mutt-1.6.1-sidebar/mutt.h +--- mutt-1.6.1/mutt.h 2016-06-12 18:43:00.410447715 +0100 ++++ mutt-1.6.1-sidebar/mutt.h 2016-06-12 18:43:03.962503107 +0100 +@@ -428,6 +428,13 @@ + OPTSAVEEMPTY, + OPTSAVENAME, + OPTSCORE, ++#ifdef USE_SIDEBAR ++ OPTSIDEBAR, ++ OPTSIDEBARFOLDERINDENT, ++ OPTSIDEBARNEWMAILONLY, ++ OPTSIDEBARNEXTNEWWRAP, ++ OPTSIDEBARSHORTPATH, ++#endif + OPTSIGDASHES, + OPTSIGONTOP, + OPTSORTRE, +@@ -872,6 +879,9 @@ + { + char *path; + FILE *fp; ++#ifdef USE_SIDEBAR ++ time_t atime; ++#endif + time_t mtime; + off_t size; + off_t vsize; +@@ -906,6 +916,9 @@ + unsigned int quiet : 1; /* inhibit status messages? */ + unsigned int collapsed : 1; /* are all threads collapsed? */ + unsigned int closing : 1; /* mailbox is being closed */ ++#ifdef USE_SIDEBAR ++ unsigned int peekonly : 1; /* just taking a glance, revert atime */ ++#endif + + /* driver hooks */ + void *data; /* driver specific data */ +diff -urN mutt-1.6.1/muttlib.c mutt-1.6.1-sidebar/muttlib.c +--- mutt-1.6.1/muttlib.c 2016-06-12 18:43:00.411447731 +0100 ++++ mutt-1.6.1-sidebar/muttlib.c 2016-06-12 18:43:03.963503122 +0100 +@@ -1282,7 +1282,7 @@ pl = pw = 1; /* see if there's room to add content, else ignore */ -+ if ( DrawFullLine ) -+ { - if ((col < COLS && wlen < destlen) || soft) +- if ((col < COLS && wlen < destlen) || soft) ++ if ((col < (COLS - SidebarWidth) && (wlen < destlen)) || soft) { int pad; -@@ -1322,6 +1324,52 @@ void mutt_FormatString (char *dest, /* output buffer */ - col += wid; - src += pl; - } -+ } -+ else -+ { -+ if ((col < COLS-SidebarWidth && wlen < destlen) || soft) -+ { -+ int pad; -+ -+ /* get contents after padding */ -+ mutt_FormatString (buf, sizeof (buf), 0, src + pl, callback, data, flags); -+ len = mutt_strlen (buf); -+ wid = mutt_strwidth (buf); -+ -+ /* try to consume as many columns as we can, if we don't have -+ * memory for that, use as much memory as possible */ + +@@ -1293,7 +1293,7 @@ + + /* try to consume as many columns as we can, if we don't have + * memory for that, use as much memory as possible */ +- pad = (COLS - col - wid) / pw; + pad = (COLS - SidebarWidth - col - wid) / pw; -+ if (pad > 0 && wlen + (pad * pl) + len > destlen) -+ pad = ((signed)(destlen - wlen - len)) / pl; -+ if (pad > 0) -+ { -+ while (pad--) -+ { -+ memcpy (wptr, src, pl); -+ wptr += pl; -+ wlen += pl; -+ col += pw; -+ } -+ } -+ else if (soft && pad < 0) -+ { -+ /* \0-terminate dest for length computation in mutt_wstr_trunc() */ -+ *wptr = 0; -+ /* make sure right part is at most as wide as display */ -+ len = mutt_wstr_trunc (buf, destlen, COLS, &wid); -+ /* truncate left so that right part fits completely in */ -+ wlen = mutt_wstr_trunc (dest, destlen - len, col + pad, &col); -+ wptr = dest + wlen; -+ } -+ if (len + wlen > destlen) + if (pad > 0 && wlen + (pad * pl) + len > destlen) + pad = ((signed)(destlen - wlen - len)) / pl; + if (pad > 0) +@@ -1312,13 +1312,13 @@ + /* \0-terminate dest for length computation in mutt_wstr_trunc() */ + *wptr = 0; + /* make sure right part is at most as wide as display */ +- len = mutt_wstr_trunc (buf, destlen, COLS-offset, &wid); ++ len = mutt_wstr_trunc (buf, destlen, COLS - offset - SidebarWidth, &wid); + /* truncate left so that right part fits completely in */ + wlen = mutt_wstr_trunc (dest, destlen - len, col + pad*pw -offset, &col); + wptr = dest + wlen; + } + if (len + wlen > destlen) +- len = mutt_wstr_trunc (buf, destlen - wlen, COLS - col, NULL); + len = mutt_wstr_trunc (buf, destlen - wlen, COLS - SidebarWidth - col, NULL); -+ memcpy (wptr, buf, len); -+ wptr += len; -+ wlen += len; -+ col += wid; -+ src += pl; -+ } -+ } - break; /* skip rest of input */ - } - else if (ch == '|') -diff --git a/mx.c b/mx.c -index 0a1a80e..e80b8ff 100644 ---- a/mx.c -+++ b/mx.c -@@ -595,6 +595,7 @@ static int mx_open_mailbox_append (CONTEXT *ctx, int flags) + memcpy (wptr, buf, len); + wptr += len; + wlen += len; +diff -urN mutt-1.6.1/mutt_menu.h mutt-1.6.1-sidebar/mutt_menu.h +--- mutt-1.6.1/mutt_menu.h 2016-06-12 18:43:00.410447715 +0100 ++++ mutt-1.6.1-sidebar/mutt_menu.h 2016-06-12 18:43:03.962503107 +0100 +@@ -34,6 +34,9 @@ + #define REDRAW_FULL (1<<5) + #define REDRAW_BODY (1<<6) + #define REDRAW_SIGWINCH (1<<7) ++#ifdef USE_SIDEBAR ++#define REDRAW_SIDEBAR (1<<8) ++#endif + + #define M_MODEFMT "-- Mutt: %s" + +diff -urN mutt-1.6.1/mx.c mutt-1.6.1-sidebar/mx.c +--- mutt-1.6.1/mx.c 2016-06-12 18:43:00.411447731 +0100 ++++ mutt-1.6.1-sidebar/mx.c 2016-06-12 18:43:03.963503122 +0100 +@@ -29,6 +29,9 @@ + #include "copy.h" + #include "keymap.h" + #include "url.h" ++#ifdef USE_SIDEBAR ++#include "sidebar.h" ++#endif + + #ifdef USE_IMAP + #include "imap.h" +@@ -580,6 +583,7 @@ * M_APPEND open mailbox for appending * M_READONLY open mailbox in read-only mode * M_QUIET only print error messages @@ -941,70 +2866,128 @@ index 0a1a80e..e80b8ff 100644 * ctx if non-null, context struct to use */ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx) -@@ -617,6 +618,8 @@ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx) +@@ -602,6 +606,10 @@ ctx->quiet = 1; if (flags & M_READONLY) ctx->readonly = 1; ++#ifdef USE_SIDEBAR + if (flags & M_PEEK) + ctx->peekonly = 1; ++#endif if (flags & (M_APPEND|M_NEWFOLDER)) { -@@ -721,9 +724,21 @@ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx) - void mx_fastclose_mailbox (CONTEXT *ctx) - { - int i; -+#ifndef BUFFY_SIZE -+ struct utimbuf ut; -+#endif - +@@ -705,8 +713,21 @@ if(!ctx) return; -+#ifndef BUFFY_SIZE + ++#ifdef USE_SIDEBAR + /* fix up the times so buffy won't get confused */ -+ if (ctx->peekonly && ctx->path && ctx->mtime > ctx->atime) -+ { -+ ut.actime = ctx->atime; ++ struct utimbuf ut; ++ if (ctx->peekonly && ctx->path && (ctx->mtime > ctx->atime)) { ++ ut.actime = ctx->atime; + ut.modtime = ctx->mtime; -+ utime (ctx->path, &ut); ++ utime (ctx->path, &ut); + } +#endif - ++ /* never announce that a mailbox we've just left has new mail. #3290 * XXX: really belongs in mx_close_mailbox, but this is a nice hook point */ -diff --git a/mx.h b/mx.h -index 2ef4ec7..4aabadf 100644 ---- a/mx.h -+++ b/mx.h -@@ -60,6 +60,7 @@ void mbox_reset_atime (CONTEXT *, struct stat *); ++#ifdef USE_SIDEBAR ++ if (!ctx->peekonly) ++#endif + mutt_buffy_setnotified(ctx->path); + + if (ctx->mx_close) +@@ -812,6 +833,12 @@ + if (!ctx->hdrs[i]->deleted && ctx->hdrs[i]->read + && !(ctx->hdrs[i]->flagged && option (OPTKEEPFLAGGED))) + read_msgs++; ++#ifdef USE_SIDEBAR ++ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->read) ++ ctx->unread--; ++ if (ctx->hdrs[i]->deleted && ctx->hdrs[i]->flagged) ++ ctx->flagged--; ++#endif + } + + if (read_msgs && quadoption (OPT_MOVE) != M_NO) +@@ -981,6 +1008,11 @@ + !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY)) + mx_unlink_empty (ctx->path); + ++#ifdef USE_SIDEBAR ++ ctx->msgcount -= ctx->deleted; ++ mutt_sb_set_buffystats (ctx); ++#endif ++ + mx_fastclose_mailbox (ctx); + + return 0; +diff -urN mutt-1.6.1/mx.h mutt-1.6.1-sidebar/mx.h +--- mutt-1.6.1/mx.h 2016-06-12 18:43:00.411447731 +0100 ++++ mutt-1.6.1-sidebar/mx.h 2016-06-12 18:43:03.963503122 +0100 +@@ -26,6 +26,7 @@ + #define _MX_H + + #include "mailbox.h" ++#include "buffy.h" + + /* supported mailbox formats */ + enum +@@ -57,6 +58,9 @@ int mh_read_dir (CONTEXT *, const char *); int mh_sync_mailbox (CONTEXT *, int *); int mh_check_mailbox (CONTEXT *, int *); -+void mh_buffy_update (const char *, int *, int *, int *); ++#ifdef USE_SIDEBAR ++void mh_buffy_update (BUFFY *mailbox); ++#endif int mh_check_empty (const char *); int maildir_read_dir (CONTEXT *); -diff --git a/pager.c b/pager.c -index c99f1e4..5cfcb75 100644 ---- a/pager.c -+++ b/pager.c -@@ -29,6 +29,7 @@ +diff -urN mutt-1.6.1/OPS.SIDEBAR mutt-1.6.1-sidebar/OPS.SIDEBAR +--- mutt-1.6.1/OPS.SIDEBAR 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-sidebar/OPS.SIDEBAR 2016-06-12 18:43:03.944502826 +0100 +@@ -0,0 +1,8 @@ ++OP_SIDEBAR_NEXT "Move the highlight to next mailbox" ++OP_SIDEBAR_NEXT_NEW "Move the highlight to next mailbox with new mail" ++OP_SIDEBAR_OPEN "Open highlighted mailbox" ++OP_SIDEBAR_PAGE_DOWN "Scroll the Sidebar down 1 page" ++OP_SIDEBAR_PAGE_UP "Scroll the Sidebar up 1 page" ++OP_SIDEBAR_PREV "Move the highlight to previous mailbox" ++OP_SIDEBAR_PREV_NEW "Move the highlight to previous mailbox with new mail" ++OP_SIDEBAR_TOGGLE_VISIBLE "Make the Sidebar (in)visible" +diff -urN mutt-1.6.1/pager.c mutt-1.6.1-sidebar/pager.c +--- mutt-1.6.1/pager.c 2016-06-12 18:43:00.412447746 +0100 ++++ mutt-1.6.1-sidebar/pager.c 2016-06-12 18:43:03.964503138 +0100 +@@ -29,6 +29,9 @@ #include "pager.h" #include "attach.h" #include "mbyte.h" ++#ifdef USE_SIDEBAR +#include "sidebar.h" ++#endif #include "mutt_crypt.h" -@@ -1095,6 +1096,7 @@ static int format_line (struct line_t **lineInfo, int n, unsigned char *buf, - wchar_t wc; - mbstate_t mbstate; - int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap); -+ wrap_cols -= SidebarWidth; +@@ -1491,7 +1494,7 @@ + * a newline (grr!). + */ + #ifndef USE_SLANG_CURSES +- if (col < COLS) ++ if (col < (COLS - SidebarWidth)) + #endif + addch ('\n'); - if (check_attachment_marker ((char *)buf) == 0) - wrap_cols = COLS; -@@ -1746,7 +1748,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) +@@ -1573,6 +1576,7 @@ + + int bodyoffset = 1; /* offset of first line of real text */ + int statusoffset = 0; /* offset for the status bar */ ++ int statuswidth = COLS; + int helpoffset = LINES - 2; /* offset for the help bar. */ + int bodylen = LINES - 2 - bodyoffset; /* length of displayable area */ + +@@ -1747,7 +1751,7 @@ if ((redraw & REDRAW_BODY) || topline != oldtopline) { do { @@ -1013,465 +2996,1455 @@ index c99f1e4..5cfcb75 100644 curline = oldtopline = topline; lines = 0; force_redraw = 0; -@@ -1759,6 +1761,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) +@@ -1760,6 +1764,9 @@ &QuoteList, &q_level, &force_redraw, &SearchRE) > 0) lines++; curline++; -+ move(lines + bodyoffset, SidebarWidth); ++#ifdef USE_SIDEBAR ++ move (lines + bodyoffset, SidebarWidth); ++#endif } last_offset = lineInfo[curline].offset; } while (force_redraw); -@@ -1771,6 +1774,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) +@@ -1772,6 +1779,9 @@ addch ('~'); addch ('\n'); lines++; -+ move(lines + bodyoffset, SidebarWidth); ++#ifdef USE_SIDEBAR ++ move (lines + bodyoffset, SidebarWidth); ++#endif } NORMAL_COLOR; -@@ -1794,22 +1798,22 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) +@@ -1789,29 +1799,49 @@ + hfi.ctx = Context; + hfi.pager_progress = pager_progress_str; + ++#ifdef USE_SIDEBAR ++ statuswidth = COLS; ++ if (option (OPTSTATUSONTOP) && (PagerIndexLines > 0)) ++ statuswidth -= SidebarWidth; ++#endif ++ + if (last_pos < sb.st_size - 1) + snprintf(pager_progress_str, sizeof(pager_progress_str), OFF_T_FMT "%%", (100 * last_offset / sb.st_size)); + else strfcpy(pager_progress_str, (topline == 0) ? "all" : "end", sizeof(pager_progress_str)); /* print out the pager status bar */ - move (statusoffset, 0); + move (statusoffset, SidebarWidth); SETCOLOR (MT_COLOR_STATUS); ++#ifdef USE_SIDEBAR ++ short sw = SidebarWidth; ++ if (option (OPTSTATUSONTOP) && PagerIndexLines > 0) { ++ CLEARLINE_WIN (statusoffset); ++ } else { ++ CLEARLINE (statusoffset); ++ /* Temporarily lie about the sidebar width */ ++ SidebarWidth = 0; ++ } ++#endif if (IsHeader (extra) || IsMsgAttach (extra)) { - size_t l1 = COLS * MB_LEN_MAX; -+ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX; ++ size_t l1 = statuswidth * MB_LEN_MAX; size_t l2 = sizeof (buffer); hfi.hdr = (IsHeader (extra)) ? extra->hdr : extra->bdy->hdr; mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT); - mutt_paddstr (COLS, buffer); -+ mutt_paddstr (COLS-SidebarWidth, buffer); ++ mutt_paddstr (statuswidth, buffer); } else { char bn[STRING]; snprintf (bn, sizeof (bn), "%s (%s)", banner, pager_progress_str); - mutt_paddstr (COLS, bn); -+ mutt_paddstr (COLS-SidebarWidth, bn); ++ mutt_paddstr (statuswidth, bn); } ++#ifdef USE_SIDEBAR ++ if (!option (OPTSTATUSONTOP) || PagerIndexLines == 0) ++ SidebarWidth = sw; /* Restore the sidebar width */ ++#endif NORMAL_COLOR; if (option(OPTTSENABLED) && TSSupported) -@@ -1826,16 +1830,21 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra) + { +@@ -1827,16 +1857,26 @@ /* redraw the pager_index indicator, because the * flags for this message might have changed. */ menu_redraw_current (index); -+ draw_sidebar(MENU_PAGER); ++#ifdef USE_SIDEBAR ++ mutt_sb_draw(); ++#endif /* print out the index status bar */ menu_status_line (buffer, sizeof (buffer), index, NONULL(Status)); - move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0); -+ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth); ++ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), ++ (option(OPTSTATUSONTOP) ? 0: SidebarWidth)); SETCOLOR (MT_COLOR_STATUS); - mutt_paddstr (COLS, buffer); -+ mutt_paddstr (COLS-SidebarWidth, buffer); ++ mutt_paddstr (COLS - (option(OPTSTATUSONTOP) ? 0 : SidebarWidth), buffer); NORMAL_COLOR; } ++#ifdef USE_SIDEBAR + /* if we're not using the index, update every time */ -+ if ( index == 0 ) -+ draw_sidebar(MENU_PAGER); ++ if (index == 0) ++ mutt_sb_draw(); ++#endif + redraw = 0; if (option(OPTBRAILLEFRIENDLY)) { -@@ -2776,6 +2785,13 @@ search_next: +@@ -2498,8 +2538,12 @@ + ch = 0; + } + +- if (option (OPTFORCEREDRAWPAGER)) ++ if (option (OPTFORCEREDRAWPAGER)) { + redraw = REDRAW_FULL; ++#ifdef USE_SIDEBAR ++ mutt_sb_draw(); ++#endif ++ } + unset_option (OPTFORCEREDRAWINDEX); + unset_option (OPTFORCEREDRAWPAGER); + break; +@@ -2777,6 +2821,22 @@ mutt_what_key (); break; -+ case OP_SIDEBAR_SCROLL_UP: -+ case OP_SIDEBAR_SCROLL_DOWN: ++#ifdef USE_SIDEBAR + case OP_SIDEBAR_NEXT: ++ case OP_SIDEBAR_NEXT_NEW: ++ case OP_SIDEBAR_PAGE_DOWN: ++ case OP_SIDEBAR_PAGE_UP: + case OP_SIDEBAR_PREV: -+ scroll_sidebar(ch, MENU_PAGER); -+ break; ++ case OP_SIDEBAR_PREV_NEW: ++ mutt_sb_change_mailbox (ch); ++ break; ++ ++ case OP_SIDEBAR_TOGGLE_VISIBLE: ++ toggle_option (OPTSIDEBAR); ++ redraw = REDRAW_FULL; ++ break; ++#endif + default: ch = -1; break; -diff --git a/sidebar.c b/sidebar.c -new file mode 100644 -index 0000000..6098c2a ---- /dev/null -+++ b/sidebar.c -@@ -0,0 +1,333 @@ -+/* -+ * Copyright (C) ????-2004 Justin Hibbits +diff -urN mutt-1.6.1/PATCHES mutt-1.6.1-sidebar/PATCHES +--- mutt-1.6.1/PATCHES 2016-06-12 18:43:00.395447481 +0100 ++++ mutt-1.6.1-sidebar/PATCHES 2016-06-12 18:43:03.949502904 +0100 +@@ -0,0 +1 @@ ++patch-sidebar-neo-20160612 +diff -urN mutt-1.6.1/README.sidebar mutt-1.6.1-sidebar/README.sidebar +--- mutt-1.6.1/README.sidebar 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-sidebar/README.sidebar 2016-06-12 18:43:03.792500456 +0100 +@@ -0,0 +1,145 @@ ++Sidebar Patch ++============= ++ ++ Overview of mailboxes ++ ++ NOTES: ++ ++ If you haven't used the sidebar before, you might like to read the ++ Sidebar Introduction: ++ ++ http://www.neomutt.org/sidebar-intro.html ++ ++ If you have used an older version of the Sidebar, please note that some ++ of the configuration has changed. ++ ++ http://www.neomutt.org/sidebar-intro.html#intro-sidebar-config-changes ++ ++Patch ++----- ++ ++ To check if Mutt supports "Sidebar", look for "+USE_SIDEBAR" in the mutt ++ version. ++ ++ Dependencies ++ * mutt-1.6.1 ++ ++Introduction ++------------ ++ ++ The Sidebar shows a list of all your mailboxes. The list can be turned on ++ and off, it can be themed and the list style can be configured. ++ ++ This part of the manual is a reference guide. If you want a simple ++ introduction with examples see the Sidebar Howto. If you just want to get ++ started, you could use the sample Sidebar muttrc. ++ ++ This version of Sidebar is based on Terry Chan's [2015-11-11 ++ release](http://www.lunar-linux.org/mutt-sidebar/). It contains many new ++ features, lots of bugfixes. ++ ++Variables ++--------- ++ ++ Sidebar Variables ++ ++ | Name | Type | Default | ++ |-------------------------|---------|-----------------------------| ++ | 'sidebar_delim_chars' | string | '/.' | ++ | 'sidebar_divider_char' | string | '|' | ++ | 'sidebar_folder_indent' | boolean | 'no' | ++ | 'sidebar_format' | string | '%B%?F? [%F]?%* %?N?%N/?%S' | ++ | 'sidebar_indent_string' | string | '  ' (two spaces) | ++ | 'sidebar_new_mail_only' | boolean | 'no' | ++ | 'sidebar_next_new_wrap' | boolean | 'no' | ++ | 'sidebar_refresh_time' | number | '60' | ++ | 'sidebar_short_path' | boolean | 'no' | ++ | 'sidebar_sort_method' | enum | 'SORT_ORDER' | ++ | 'sidebar_visible' | boolean | 'no' | ++ | 'sidebar_whitelist' | list | (empty) | ++ | 'sidebar_width' | number | '20' | ++ ++Functions ++--------- ++ ++ Sidebar Functions ++ ++ Sidebar adds the following functions to Mutt. By default, none of them are ++ bound to keys. ++ ++ | Menus | Function | Description | ++ |-------------|----------------------------|------------------------------------------------------| ++ | index,pager | '' | Move the highlight to next mailbox | ++ | index,pager | '' | Move the highlight to next mailbox with new mail | ++ | index,pager | '' | Open highlighted mailbox | ++ | index,pager | '' | Scroll the Sidebar down 1 page | ++ | index,pager | '' | Scroll the Sidebar up 1 page | ++ | index,pager | '' | Move the highlight to previous mailbox | ++ | index,pager | '' | Move the highlight to previous mailbox with new mail | ++ | index,pager | '' | Make the Sidebar (in)visible | ++ ++Commands ++-------- ++ ++ sidebar_whitelist mailbox [ mailbox... ] ++ ++Colors ++------ ++ ++ Sidebar Colors ++ ++ | Name | Default Color | Description | ++ |---------------------|------------------|------------------------------------------------------------------| ++ | 'sidebar_divider' | default | The dividing line between the Sidebar and the Index/Pager panels | ++ | 'sidebar_flagged' | default | Mailboxes containing flagged mail | ++ | 'sidebar_highlight' | underline | Cursor to select a mailbox | ++ | 'sidebar_indicator' | mutt 'indicator' | The mailbox open in the Index panel | ++ | 'sidebar_new' | default | Mailboxes containing new mail | ++ | 'sidebar_spoolfile' | default | Mailbox that receives incoming mail | ++ ++ If the sidebar_indicator color isn't set, then the default Mutt indicator ++ color will be used (the color used in the index panel). ++ ++Sort ++---- ++ ++ Sidebar Sort ++ ++ | Sort | Description | ++ |------------|----------------------------| ++ | 'alpha' | Alphabetically by path | ++ | 'count' | Total number of messages | ++ | 'flagged' | Number of flagged messages | ++ | 'name' | Alphabetically by path | ++ | 'new' | Number of new messages | ++ | 'path' | Alphabetically by path | ++ | 'unsorted' | Do not resort the paths | ++ ++See Also ++-------- ++ ++ * Regular Expressions ++ * Patterns ++ * Color command ++ * notmuch patch ++ ++Known Bugs ++---------- ++ ++ Unsorted isn't ++ ++Credits ++------- ++ ++ * Justin Hibbits ++ * Thomer M. Gil ++ * David Sterba ++ * Evgeni Golov ++ * Fabian Groffen ++ * Jason DeTiberus ++ * Stefan Assmann ++ * Steve Kemp ++ * Terry Chan ++ * Tyler Earnest ++ * Richard Russon ++ +diff -urN mutt-1.6.1/sidebar.c mutt-1.6.1-sidebar/sidebar.c +--- mutt-1.6.1/sidebar.c 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-sidebar/sidebar.c 2016-06-14 18:46:00.000000000 +0100 +@@ -0,0 +1,1090 @@ ++/* Copyright (C) 2004 Justin Hibbits + * Copyright (C) 2004 Thomer M. Gil -+ * ++ * Copyright (C) 2015-2016 Richard Russon ++ * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. -+ * ++ * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. -+ * ++ * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. -+ */ -+ ++ */ + +#if HAVE_CONFIG_H +# include "config.h" +#endif + +#include "mutt.h" -+#include "mutt_menu.h" -+#include "mutt_curses.h" -+#include "sidebar.h" +#include "buffy.h" -+#include +#include "keymap.h" -+#include ++#include "mutt_curses.h" ++#include "mutt_menu.h" ++#include "sort.h" + -+/*BUFFY *CurBuffy = 0;*/ -+static BUFFY *TopBuffy = 0; -+static BUFFY *BottomBuffy = 0; -+static int known_lines = 0; ++/* Previous values for some sidebar config */ ++static short OldVisible; /* sidebar_visible */ ++static short OldWidth; /* sidebar_width */ ++static short PreviousSort; /* sidebar_sort_method */ ++static time_t LastRefresh; /* Time of last refresh */ + -+static int quick_log10(int n) ++/* Keep track of various BUFFYs */ ++static BUFFY *TopBuffy; /* First mailbox visible in sidebar */ ++static BUFFY *OpnBuffy; /* Current (open) mailbox */ ++static BUFFY *HilBuffy; /* Highlighted mailbox */ ++static BUFFY *BotBuffy; /* Last mailbox visible in sidebar */ ++static BUFFY *Outgoing; /* Last mailbox in the linked list */ ++ ++/** ++ * struct sidebar_entry - Info about folders in the sidebar ++ * ++ * Used in the mutt_FormatString callback ++ */ ++struct sidebar_entry +{ -+ char string[32]; -+ sprintf(string, "%d", n); -+ return strlen(string); ++ char box[STRING]; ++ BUFFY *buffy; ++}; ++ ++ ++/** ++ * find_next_new - Find the next folder that contains new mail ++ * @wrap: Wrap around to the beginning if the end is reached ++ * ++ * Search down the list of mail folders for one containing new mail. ++ * ++ * Returns: ++ * BUFFY*: Success ++ * NULL: Failure ++ */ ++static BUFFY *find_next_new (int wrap) ++{ ++ BUFFY *b = HilBuffy; ++ if (!b) ++ return NULL; ++ ++ do ++ { ++ b = b->next; ++ if (!b && wrap) ++ b = Incoming; ++ if (!b || (b == HilBuffy)) ++ break; ++ if (b->msg_unread > 0) ++ return b; ++ } while (b); ++ ++ return NULL; +} + -+void calc_boundaries (int menu) ++/** ++ * find_prev_new - Find the previous folder that contains new mail ++ * @wrap: Wrap around to the beginning if the end is reached ++ * ++ * Search up the list of mail folders for one containing new mail. ++ * ++ * Returns: ++ * BUFFY*: Success ++ * NULL: Failure ++ */ ++static BUFFY *find_prev_new (int wrap) +{ -+ BUFFY *tmp = Incoming; ++ BUFFY *b = HilBuffy; ++ if (!b) ++ return NULL; + -+ if ( known_lines != LINES ) { -+ TopBuffy = BottomBuffy = 0; -+ known_lines = LINES; -+ } -+ for ( ; tmp->next != 0; tmp = tmp->next ) -+ tmp->next->prev = tmp; ++ do ++ { ++ b = b->prev; ++ if (!b && wrap) ++ b = Outgoing; ++ if (!b || (b == HilBuffy)) ++ break; ++ if (b->msg_unread > 0) ++ return b; ++ } while (b); + -+ if ( TopBuffy == 0 && BottomBuffy == 0 ) -+ TopBuffy = Incoming; -+ if ( BottomBuffy == 0 ) { -+ int count = LINES - 2 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); -+ BottomBuffy = TopBuffy; -+ while ( --count && BottomBuffy->next ) -+ BottomBuffy = BottomBuffy->next; -+ } -+ else if ( TopBuffy == CurBuffy->next ) { -+ int count = LINES - 2 - (menu != MENU_PAGER); -+ BottomBuffy = CurBuffy; -+ tmp = BottomBuffy; -+ while ( --count && tmp->prev) -+ tmp = tmp->prev; -+ TopBuffy = tmp; -+ } -+ else if ( BottomBuffy == CurBuffy->prev ) { -+ int count = LINES - 2 - (menu != MENU_PAGER); -+ TopBuffy = CurBuffy; -+ tmp = TopBuffy; -+ while ( --count && tmp->next ) -+ tmp = tmp->next; -+ BottomBuffy = tmp; -+ } ++ return NULL; +} + -+char *make_sidebar_entry(char *box, int size, int new, int flagged) ++/** ++ * cb_format_str - Create the string to show in the sidebar ++ * @dest: Buffer in which to save string ++ * @destlen: Buffer length ++ * @col: Starting column, UNUSED ++ * @op: printf-like operator, e.g. 'B' ++ * @src: printf-like format string ++ * @prefix: Field formatting string, UNUSED ++ * @ifstring: If condition is met, display this string ++ * @elsestring: Otherwise, display this string ++ * @data: Pointer to our sidebar_entry ++ * @flags: Format flags, e.g. M_FORMAT_OPTIONAL ++ * ++ * cb_format_str is a callback function for mutt_FormatString. It understands ++ * five operators. '%B' : Mailbox name, '%F' : Number of flagged messages, ++ * '%N' : Number of new messages, '%S' : Size (total number of messages), ++ * '%!' : Icon denoting number of flagged messages. ++ * ++ * Returns: src (unchanged) ++ */ ++static const char *cb_format_str(char *dest, size_t destlen, size_t col, char op, ++ const char *src, const char *prefix, const char *ifstring, ++ const char *elsestring, unsigned long data, format_flag flags) +{ -+ static char *entry = 0; -+ char *c; -+ int i = 0; -+ int delim_len = strlen(SidebarDelim); ++ struct sidebar_entry *sbe = (struct sidebar_entry *) data; ++ unsigned int optional; ++ char fmt[STRING]; + -+ c = realloc(entry, SidebarWidth - delim_len + 2); -+ if ( c ) entry = c; -+ entry[SidebarWidth - delim_len + 1] = 0; -+ for (; i < SidebarWidth - delim_len + 1; entry[i++] = ' ' ); -+ i = strlen(box); -+ strncpy( entry, box, i < (SidebarWidth - delim_len + 1) ? i : (SidebarWidth - delim_len + 1) ); ++ if (!sbe || !dest) ++ return src; + -+ if (size == -1) -+ sprintf(entry + SidebarWidth - delim_len - 3, "?"); -+ else if ( new ) { -+ if (flagged > 0) { -+ sprintf( -+ entry + SidebarWidth - delim_len - 5 - quick_log10(size) - quick_log10(new) - quick_log10(flagged), -+ "% d(%d)[%d]", size, new, flagged); -+ } else { -+ sprintf( -+ entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(new), -+ "% d(%d)", size, new); -+ } -+ } else if (flagged > 0) { -+ sprintf( entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(flagged), "% d[%d]", size, flagged); -+ } else { -+ sprintf( entry + SidebarWidth - delim_len - 1 - quick_log10(size), "% d", size); -+ } -+ return entry; ++ dest[0] = 0; /* Just in case there's nothing to do */ ++ ++ BUFFY *b = sbe->buffy; ++ if (!b) ++ return src; ++ ++ int c = Context && (mutt_strcmp (Context->path, b->path) == 0); ++ ++ optional = flags & M_FORMAT_OPTIONAL; ++ ++ switch (op) ++ { ++ case 'B': ++ mutt_format_s (dest, destlen, prefix, sbe->box); ++ break; ++ ++ case 'd': ++ if (!optional) ++ { ++ snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ snprintf (dest, destlen, fmt, c ? Context->deleted : 0); ++ } ++ else if ((c && Context->deleted == 0) || !c) ++ optional = 0; ++ break; ++ ++ case 'F': ++ if (!optional) ++ { ++ snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ snprintf (dest, destlen, fmt, b->msg_flagged); ++ } ++ else if (b->msg_flagged == 0) ++ optional = 0; ++ break; ++ ++ case 'L': ++ if (!optional) ++ { ++ snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ snprintf (dest, destlen, fmt, c ? Context->vcount : b->msg_count); ++ } ++ else if ((c && Context->vcount == b->msg_count) || !c) ++ optional = 0; ++ break; ++ ++ case 'N': ++ if (!optional) ++ { ++ snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ snprintf (dest, destlen, fmt, b->msg_unread); ++ } ++ else if (b->msg_unread == 0) ++ optional = 0; ++ break; ++ ++ case 'S': ++ if (!optional) ++ { ++ snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ snprintf (dest, destlen, fmt, b->msg_count); ++ } ++ else if (b->msg_count == 0) ++ optional = 0; ++ break; ++ ++ case 't': ++ if (!optional) ++ { ++ snprintf (fmt, sizeof (fmt), "%%%sd", prefix); ++ snprintf (dest, destlen, fmt, c ? Context->tagged : 0); ++ } ++ else if ((c && Context->tagged == 0) || !c) ++ optional = 0; ++ break; ++ ++ case '!': ++ if (b->msg_flagged == 0) ++ mutt_format_s (dest, destlen, prefix, ""); ++ else if (b->msg_flagged == 1) ++ mutt_format_s (dest, destlen, prefix, "!"); ++ else if (b->msg_flagged == 2) ++ mutt_format_s (dest, destlen, prefix, "!!"); ++ else ++ { ++ snprintf (fmt, sizeof (fmt), "%d!", b->msg_flagged); ++ mutt_format_s (dest, destlen, prefix, fmt); ++ } ++ break; ++ } ++ ++ if (optional) ++ mutt_FormatString (dest, destlen, col, ifstring, cb_format_str, (unsigned long) sbe, flags); ++ else if (flags & M_FORMAT_OPTIONAL) ++ mutt_FormatString (dest, destlen, col, elsestring, cb_format_str, (unsigned long) sbe, flags); ++ ++ /* We return the format string, unchanged */ ++ return src; +} + -+void set_curbuffy(char buf[LONG_STRING]) ++/** ++ * make_sidebar_entry - Turn mailbox data into a sidebar string ++ * @buf: Buffer in which to save string ++ * @buflen: Buffer length ++ * @width: Desired width in screen cells ++ * @box: Mailbox name ++ * @size: Size (total number of messages) ++ * @new: Number of new messages ++ * @flagged: Number of flagged messages ++ * ++ * Take all the relevant mailbox data and the desired screen width and then get ++ * mutt_FormatString to do the actual work. mutt_FormatString will callback to ++ * us using cb_format_str() for the sidebar specific formatting characters. ++ */ ++static void make_sidebar_entry (char *buf, unsigned int buflen, int width, char *box, ++ BUFFY *b) +{ -+ BUFFY* tmp = CurBuffy = Incoming; ++ struct sidebar_entry sbe; + -+ if (!Incoming) ++ if (!buf || !box || !b) + return; + -+ while(1) { -+ if(!strcmp(tmp->path, buf)) { -+ CurBuffy = tmp; -+ break; -+ } ++ sbe.buffy = b; ++ strfcpy (sbe.box, box, sizeof (sbe.box)); + -+ if(tmp->next) -+ tmp = tmp->next; -+ else -+ break; ++ /* Temporarily lie about the screen width */ ++ int oc = COLS; ++ COLS = width + SidebarWidth; ++ mutt_FormatString (buf, buflen, 0, NONULL(SidebarFormat), cb_format_str, (unsigned long) &sbe, 0); ++ COLS = oc; ++ ++ /* Force string to be exactly the right width */ ++ int w = mutt_strwidth (buf); ++ int s = strlen (buf); ++ width = MIN(buflen, width); ++ if (w < width) ++ { ++ /* Pad with spaces */ ++ memset (buf + s, ' ', width - w); ++ buf[s + width - w] = 0; ++ } ++ else if (w > width) ++ { ++ /* Truncate to fit */ ++ int len = mutt_wstr_trunc (buf, buflen, width, NULL); ++ buf[len] = 0; + } +} + -+int draw_sidebar(int menu) { ++/** ++ * cb_qsort_buffy - qsort callback to sort BUFFYs ++ * @a: First BUFFY to compare ++ * @b: Second BUFFY to compare ++ * ++ * Compare the paths of two BUFFYs taking the locale into account. ++ * ++ * Returns: ++ * -1: a precedes b ++ * 0: a and b are identical ++ * 1: b precedes a ++ */ ++static int cb_qsort_buffy (const void *a, const void *b) ++{ ++ const BUFFY *b1 = *(const BUFFY **) a; ++ const BUFFY *b2 = *(const BUFFY **) b; + -+ int lines = option(OPTHELP) ? 1 : 0; -+ BUFFY *tmp; -+#ifndef USE_SLANG_CURSES -+ attr_t attrs; -+#endif -+ short delim_len = strlen(SidebarDelim); -+ short color_pair; ++ /* Special case -- move hidden BUFFYs to the end */ ++ if (b1->is_hidden != b2->is_hidden) ++ { ++ if (b1->is_hidden) ++ return 1; ++ else ++ return -1; ++ } + -+ static bool initialized = false; -+ static int prev_show_value; -+ static short saveSidebarWidth; ++ int result = 0; + -+ /* initialize first time */ -+ if(!initialized) { -+ prev_show_value = option(OPTSIDEBAR); -+ saveSidebarWidth = SidebarWidth; -+ if(!option(OPTSIDEBAR)) SidebarWidth = 0; -+ initialized = true; -+ } ++ switch ((SidebarSortMethod & SORT_MASK)) ++ { ++ case SORT_COUNT: ++ result = (b2->msg_count - b1->msg_count); ++ break; ++ case SORT_COUNT_NEW: ++ result = (b2->msg_unread - b1->msg_unread); ++ break; ++ case SORT_FLAGGED: ++ result = (b2->msg_flagged - b1->msg_flagged); ++ break; ++ case SORT_PATH: ++ result = mutt_strcasecmp (b1->path, b2->path); ++ break; ++ } + -+ /* save or restore the value SidebarWidth */ -+ if(prev_show_value != option(OPTSIDEBAR)) { -+ if(prev_show_value && !option(OPTSIDEBAR)) { -+ saveSidebarWidth = SidebarWidth; -+ SidebarWidth = 0; -+ } else if(!prev_show_value && option(OPTSIDEBAR)) { -+ SidebarWidth = saveSidebarWidth; -+ } -+ prev_show_value = option(OPTSIDEBAR); -+ } ++ if (SidebarSortMethod & SORT_REVERSE) ++ result = -result; + ++ return result; ++} + -+// if ( SidebarWidth == 0 ) return 0; -+ if (SidebarWidth > 0 && option (OPTSIDEBAR) -+ && delim_len >= SidebarWidth) { -+ unset_option (OPTSIDEBAR); -+ /* saveSidebarWidth = SidebarWidth; */ -+ if (saveSidebarWidth > delim_len) { -+ SidebarWidth = saveSidebarWidth; -+ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar.")); -+ sleep (2); -+ } else { -+ SidebarWidth = 0; -+ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar. Please set your sidebar_width to a sane value.")); -+ sleep (4); /* the advise to set a sane value should be seen long enough */ -+ } -+ saveSidebarWidth = 0; -+ return (0); -+ } ++/** ++ * buffy_going - Prevent our pointers becoming invalid ++ * @b: BUFFY about to be deleted ++ * ++ * If we receive a delete-notification for a BUFFY, we need to change any ++ * pointers we have to reference a different BUFFY, or set them to NULL. ++ * ++ * We don't update the prev/next pointers, they'll be fixed on the next ++ * call to prepare_sidebar(). ++ * ++ * Returns: ++ * A valid alternative BUFFY, or NULL ++ */ ++static BUFFY *buffy_going (const BUFFY *b) ++{ ++ if (!b) ++ return NULL; + -+ if ( SidebarWidth == 0 || !option(OPTSIDEBAR)) { -+ if (SidebarWidth > 0) { -+ saveSidebarWidth = SidebarWidth; -+ SidebarWidth = 0; -+ } -+ unset_option(OPTSIDEBAR); -+ return 0; ++ if (b->prev) ++ { ++ b->prev->next = NULL; ++ } ++ ++ if (b->next) ++ { ++ b->next->prev = NULL; ++ return b->next; ++ } ++ ++ return b->prev; ++} ++ ++/** ++ * update_buffy_visibility - Should a BUFFY be displayed in the sidebar ++ * @arr: array of BUFFYs ++ * @arr_len: number of BUFFYs in array ++ * ++ * For each BUFFY in the array, check whether we should display it. ++ * This is determined by several criteria. If the BUFFY: ++ * is the currently open mailbox ++ * is the currently highlighted mailbox ++ * has unread messages ++ * has flagged messages ++ * is whitelisted ++ */ ++static void update_buffy_visibility (BUFFY **arr, int arr_len) ++{ ++ if (!arr) ++ return; ++ ++ short new_only = option (OPTSIDEBARNEWMAILONLY); ++ ++ BUFFY *b; ++ int i; ++ for (i = 0; i < arr_len; i++) ++ { ++ b = arr[i]; ++ ++ b->is_hidden = 0; ++ ++ if (!new_only) ++ continue; ++ ++ if ((b == OpnBuffy) || (b->msg_unread > 0) || ++ (b == HilBuffy) || (b->msg_flagged > 0)) ++ continue; ++ ++ if (Context && (strcmp (b->path, Context->path) == 0)) ++ /* Spool directory */ ++ continue; ++ ++ if (mutt_find_list (SidebarWhitelist, b->path)) ++ /* Explicitly asked to be visible */ ++ continue; ++ ++ b->is_hidden = 1; ++ } ++} ++ ++/** ++ * sort_buffy_array - Sort an array of BUFFY pointers ++ * @arr: array of BUFFYs ++ * @arr_len: number of BUFFYs in array ++ * ++ * Sort an array of BUFFY pointers according to the current sort config ++ * option "sidebar_sort_method". This calls qsort to do the work which calls our ++ * callback function "cb_qsort_buffy". ++ * ++ * Once sorted, the prev/next links will be reconstructed. ++ */ ++static void sort_buffy_array (BUFFY **arr, int arr_len) ++{ ++ if (!arr) ++ return; ++ ++ /* These are the only sort methods we understand */ ++ short ssm = (SidebarSortMethod & SORT_MASK); ++ if ((ssm == SORT_COUNT) || ++ (ssm == SORT_COUNT_NEW) || ++ (ssm == SORT_DESC) || ++ (ssm == SORT_FLAGGED) || ++ (ssm == SORT_PATH)) ++ qsort (arr, arr_len, sizeof (*arr), cb_qsort_buffy); ++ ++ int i; ++ for (i = 0; i < (arr_len - 1); i++) ++ arr[i]->next = arr[i + 1]; ++ arr[arr_len - 1]->next = NULL; ++ ++ for (i = 1; i < arr_len; i++) ++ arr[i]->prev = arr[i - 1]; ++ arr[0]->prev = NULL; ++} ++ ++/** ++ * prepare_sidebar - Prepare the list of BUFFYs for the sidebar display ++ * @page_size: The number of lines on a page ++ * ++ * Before painting the sidebar, we count the BUFFYs, determine which are ++ * visible, sort them and set up our page pointers. ++ * ++ * This is a lot of work to do each refresh, but there are many things that ++ * can change outside of the sidebar that we don't hear about. ++ * ++ * Returns: ++ * 0: No, don't draw the sidebar ++ * 1: Yes, draw the sidebar ++ */ ++static int prepare_sidebar (int page_size) ++{ ++ BUFFY *b = Incoming; ++ if (!b) ++ return 0; ++ ++ int count = 0; ++ for (; b; b = b->next) ++ count++; ++ ++ BUFFY **arr = safe_malloc (count * sizeof (*arr)); ++ ++ int i = 0; ++ for (b = Incoming; b; b = b->next, i++) ++ arr[i] = b; ++ ++ update_buffy_visibility (arr, count); ++ sort_buffy_array (arr, count); ++ ++ Incoming = arr[0]; ++ ++ int top_index = 0; ++ int opn_index = -1; ++ int hil_index = -1; ++ int bot_index = -1; ++ ++ for (i = 0; i < count; i++) ++ { ++ if (OpnBuffy == arr[i]) ++ opn_index = i; ++ if (HilBuffy == arr[i]) ++ hil_index = i; ++ } ++ ++ if (!HilBuffy || (SidebarSortMethod != PreviousSort)) ++ { ++ if (OpnBuffy) ++ { ++ HilBuffy = OpnBuffy; ++ hil_index = opn_index; ++ } ++ else ++ { ++ HilBuffy = arr[0]; ++ hil_index = 0; ++ } ++ } ++ if (TopBuffy) ++ top_index = (hil_index / page_size) * page_size; ++ else ++ top_index = hil_index; ++ TopBuffy = arr[top_index]; ++ ++ bot_index = top_index + page_size - 1; ++ if (bot_index > (count - 1)) ++ bot_index = count - 1; ++ BotBuffy = arr[bot_index]; ++ ++ Outgoing = arr[count - 1]; ++ ++ PreviousSort = SidebarSortMethod; ++ FREE (&arr); ++ return 1; ++} ++ ++/** ++ * visible - Should we display the sidebar? ++ * ++ * After validating the config options "sidebar_visible" and "sidebar_width", ++ * determine whether we should should display the sidebar. ++ * ++ * When not visible, set the global SidebarWidth to 0. ++ * ++ * Returns: ++ * Boolean ++ */ ++static short ++visible (void) ++{ ++ short new_visible = option (OPTSIDEBAR); ++ short new_width = SidebarWidth; ++ ++ if (OldWidth != new_width) ++ { ++ if (new_width > 0) ++ { ++ OldWidth = new_width; ++ } ++ } ++ ++ if (OldVisible != new_visible) ++ { ++ if (new_visible) ++ { ++ set_option (OPTSIDEBAR); ++ } ++ else ++ { ++ unset_option (OPTSIDEBAR); ++ } ++ OldVisible = new_visible; ++ } ++ else if (new_width == 0) ++ { ++ unset_option (OPTSIDEBAR); ++ OldVisible = 0; ++ } ++ ++ if (!option (OPTSIDEBAR)) ++ { ++ SidebarWidth = 0; ++ } ++ else if (new_width == 0) ++ { ++ SidebarWidth = OldWidth; ++ } ++ else ++ { ++ SidebarWidth = new_width; ++ } ++ ++ return new_visible; ++} ++ ++/** ++ * draw_divider - Draw a line between the sidebar and the rest of mutt ++ * @first_row: Screen line to start (0-based) ++ * @num_rows: Number of rows to fill ++ * ++ * Draw a divider using characters from the config option "sidebar_divider_char". ++ * This can be an ASCII or Unicode character. First we calculate this ++ * characters' width in screen columns, then subtract that from the config ++ * option "sidebar_width". ++ * ++ * Returns: ++ * -1: Error: bad character, etc ++ * 0: Error: 0 width character ++ * n: Success: character occupies n screen columns ++ */ ++static int draw_divider (int first_row, int num_rows) ++{ ++ /* Calculate the width of the delimiter in screen cells */ ++ int delim_len = mutt_strwidth (SidebarDividerChar); ++ ++ if (delim_len < 1) ++ return delim_len; ++ ++ if ((SidebarWidth + delim_len) > (COLS + 1)) ++ return 0; ++ ++ if (delim_len > SidebarWidth) ++ return -1; ++ ++ SETCOLOR(MT_COLOR_DIVIDER); ++ ++ int i; ++ for (i = 0; i < num_rows; i++) ++ { ++ move (first_row + i, SidebarWidth - delim_len); ++ addstr (NONULL(SidebarDividerChar)); ++ } ++ ++ return delim_len; ++} ++ ++/** ++ * fill_empty_space - Wipe the remaining Sidebar space ++ * @first_row: Screen line to start (0-based) ++ * @num_rows: Number of rows to fill ++ * @width: Width of the Sidebar (minus the divider) ++ * ++ * Write spaces over the area the sidebar isn't using. ++ */ ++static void fill_empty_space (int first_row, int num_rows, int width) ++{ ++ /* Fill the remaining rows with blank space */ ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ int r; ++ for (r = 0; r < num_rows; r++) ++ { ++ int i = 0; ++ move (first_row + r, 0); ++ for (; i < width; i++) ++ addch (' '); ++ } ++} ++ ++/** ++ * draw_sidebar - Write out a list of mailboxes, on the left ++ * @first_row: Screen line to start (0-based) ++ * @num_rows: Number of rows to fill ++ * @div_width: Width in screen characters taken by the divider ++ * ++ * Display a list of mailboxes in a panel on the left. What's displayed will ++ * depend on our index markers: TopBuffy, OpnBuffy, HilBuffy, BotBuffy. ++ * On the first run they'll be NULL, so we display the top of Mutt's list ++ * (Incoming). ++ * ++ * TopBuffy - first visible mailbox ++ * BotBuffy - last visible mailbox ++ * OpnBuffy - mailbox shown in Mutt's Index Panel ++ * HilBuffy - Unselected mailbox (the paging follows this) ++ * ++ * The entries are formatted using "sidebar_format" and may be abbreviated: ++ * "sidebar_short_path", indented: "sidebar_folder_indent", ++ * "sidebar_indent_string" and sorted: "sidebar_sort_method". Finally, they're ++ * trimmed to fit the available space. ++ */ ++static void draw_sidebar (int first_row, int num_rows, int div_width) ++{ ++ BUFFY *b = TopBuffy; ++ if (!b) ++ return; ++ ++ int w = MIN(COLS, (SidebarWidth - div_width)); ++ int row = 0; ++ for (b = TopBuffy; b && (row < num_rows); b = b->next) ++ { ++ if (b->is_hidden) ++ continue; ++ ++ if (b == OpnBuffy) ++ { ++ if ((ColorDefs[MT_COLOR_SB_INDICATOR] != 0)) ++ SETCOLOR(MT_COLOR_SB_INDICATOR); ++ else ++ SETCOLOR(MT_COLOR_INDICATOR); ++ } ++ else if (b == HilBuffy) ++ SETCOLOR(MT_COLOR_HIGHLIGHT); ++ else if ((ColorDefs[MT_COLOR_SB_SPOOLFILE] != 0) && ++ (mutt_strcmp (b->path, Spoolfile) == 0)) ++ SETCOLOR(MT_COLOR_SB_SPOOLFILE); ++ else if (b->msg_unread > 0) ++ SETCOLOR(MT_COLOR_NEW); ++ else if (b->msg_flagged > 0) ++ SETCOLOR(MT_COLOR_FLAGGED); ++ else ++ SETCOLOR(MT_COLOR_NORMAL); ++ ++ move (first_row + row, 0); ++ if (Context && Context->path && ++ (!strcmp (b->path, Context->path)|| ++ !strcmp (b->realpath, Context->path))) ++ { ++ b->msg_unread = Context->unread; ++ b->msg_count = Context->msgcount; ++ b->msg_flagged = Context->flagged; + } + -+ /* get attributes for divider */ -+ SETCOLOR(MT_COLOR_STATUS); -+#ifndef USE_SLANG_CURSES -+ attr_get(&attrs, &color_pair, 0); -+#else -+ color_pair = attr_get(); -+#endif -+ SETCOLOR(MT_COLOR_NORMAL); ++ /* compute length of Maildir without trailing separator */ ++ size_t maildirlen = strlen (Maildir); ++ if (SidebarDelimChars && strchr (SidebarDelimChars, Maildir[maildirlen - 1])) ++ maildirlen--; + -+ /* draw the divider */ ++ /* check whether Maildir is a prefix of the current folder's path */ ++ short maildir_is_prefix = 0; ++ if ((strlen (b->path) > maildirlen) && (strncmp (Maildir, b->path, maildirlen) == 0)) ++ maildir_is_prefix = 1; + -+ for ( ; lines < LINES-1-(menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { -+ move(lines, SidebarWidth - delim_len); -+ addstr(NONULL(SidebarDelim)); -+#ifndef USE_SLANG_CURSES -+ mvchgat(lines, SidebarWidth - delim_len, delim_len, 0, color_pair, NULL); -+#endif -+ } -+ -+ if ( Incoming == 0 ) return 0; -+ lines = option(OPTHELP) ? 1 : 0; /* go back to the top */ -+ -+ if ( known_lines != LINES || TopBuffy == 0 || BottomBuffy == 0 ) -+ calc_boundaries(menu); -+ if ( CurBuffy == 0 ) CurBuffy = Incoming; -+ -+ tmp = TopBuffy; -+ -+ SETCOLOR(MT_COLOR_NORMAL); -+ -+ for ( ; tmp && lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); tmp = tmp->next ) { -+ if ( tmp == CurBuffy ) -+ SETCOLOR(MT_COLOR_INDICATOR); -+ else if ( tmp->msg_unread > 0 ) -+ SETCOLOR(MT_COLOR_NEW); -+ else if ( tmp->msg_flagged > 0 ) -+ SETCOLOR(MT_COLOR_FLAGGED); -+ else -+ SETCOLOR(MT_COLOR_NORMAL); -+ -+ move( lines, 0 ); -+ if ( Context && !strcmp( tmp->path, Context->path ) ) { -+ tmp->msg_unread = Context->unread; -+ tmp->msgcount = Context->msgcount; -+ tmp->msg_flagged = Context->flagged; -+ } -+ // check whether Maildir is a prefix of the current folder's path -+ short maildir_is_prefix = 0; -+ if ( (strlen(tmp->path) > strlen(Maildir)) && -+ (strncmp(Maildir, tmp->path, strlen(Maildir)) == 0) ) -+ maildir_is_prefix = 1; -+ // calculate depth of current folder and generate its display name with indented spaces -+ int sidebar_folder_depth = 0; -+ char *sidebar_folder_name; -+ sidebar_folder_name = basename(tmp->path); -+ if ( maildir_is_prefix ) { -+ char *tmp_folder_name; -+ int i; -+ tmp_folder_name = tmp->path + strlen(Maildir); -+ for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) { -+ if (tmp_folder_name[i] == '/') sidebar_folder_depth++; -+ } -+ if (sidebar_folder_depth > 0) { -+ sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1); -+ for (i=0; i < sidebar_folder_depth; i++) -+ sidebar_folder_name[i]=' '; -+ sidebar_folder_name[i]=0; -+ strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth); -+ } -+ } -+ printw( "%.*s", SidebarWidth - delim_len + 1, -+ make_sidebar_entry(sidebar_folder_name, tmp->msgcount, -+ tmp->msg_unread, tmp->msg_flagged)); -+ if (sidebar_folder_depth > 0) -+ free(sidebar_folder_name); -+ lines++; -+ } -+ SETCOLOR(MT_COLOR_NORMAL); -+ for ( ; lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) { -+ int i = 0; -+ move( lines, 0 ); -+ for ( ; i < SidebarWidth - delim_len; i++ ) -+ addch(' '); -+ } -+ return 0; -+} -+ -+ -+void set_buffystats(CONTEXT* Context) -+{ -+ BUFFY *tmp = Incoming; -+ while(tmp) { -+ if(Context && !strcmp(tmp->path, Context->path)) { -+ tmp->msg_unread = Context->unread; -+ tmp->msgcount = Context->msgcount; -+ break; -+ } -+ tmp = tmp->next; ++ /* calculate depth of current folder and generate its display name with indented spaces */ ++ int sidebar_folder_depth = 0; ++ char *sidebar_folder_name; ++ int i; ++ if (option (OPTSIDEBARSHORTPATH)) ++ { ++ /* disregard a trailing separator, so strlen() - 2 */ ++ sidebar_folder_name = b->path; ++ for (i = strlen (sidebar_folder_name) - 2; i >= 0; i--) ++ { ++ if (SidebarDelimChars && ++ strchr (SidebarDelimChars, sidebar_folder_name[i])) ++ { ++ sidebar_folder_name += (i + 1); ++ break; + } ++ } ++ } ++ else ++ sidebar_folder_name = b->path + maildir_is_prefix * (maildirlen + 1); ++ ++ if (maildir_is_prefix && option (OPTSIDEBARFOLDERINDENT)) ++ { ++ const char *tmp_folder_name; ++ int lastsep = 0; ++ tmp_folder_name = b->path + maildirlen + 1; ++ int tmplen = (int) strlen (tmp_folder_name) - 1; ++ for (i = 0; i < tmplen; i++) ++ { ++ if (SidebarDelimChars && strchr (SidebarDelimChars, tmp_folder_name[i])) ++ { ++ sidebar_folder_depth++; ++ lastsep = i + 1; ++ } ++ } ++ if (sidebar_folder_depth > 0) ++ { ++ if (option (OPTSIDEBARSHORTPATH)) ++ tmp_folder_name += lastsep; /* basename */ ++ sidebar_folder_name = malloc (strlen (tmp_folder_name) + sidebar_folder_depth*strlen (NONULL(SidebarIndentString)) + 1); ++ sidebar_folder_name[0]=0; ++ for (i=0; i < sidebar_folder_depth; i++) ++ strncat (sidebar_folder_name, NONULL(SidebarIndentString), strlen (NONULL(SidebarIndentString))); ++ strncat (sidebar_folder_name, tmp_folder_name, strlen (tmp_folder_name)); ++ } ++ } ++ char str[STRING]; ++ make_sidebar_entry (str, sizeof (str), w, sidebar_folder_name, b); ++ printw ("%s", str); ++ if (sidebar_folder_depth > 0) ++ FREE (&sidebar_folder_name); ++ row++; ++ } ++ ++ fill_empty_space (first_row + row, num_rows - row, w); +} + -+void scroll_sidebar(int op, int menu) ++ ++/** ++ * mutt_sb_init - Set some default values for the sidebar. ++ */ ++void ++mutt_sb_init (void) +{ -+ if(!SidebarWidth) return; -+ if(!CurBuffy) return; -+ -+ switch (op) { -+ case OP_SIDEBAR_NEXT: -+ if ( CurBuffy->next == NULL ) return; -+ CurBuffy = CurBuffy->next; -+ break; -+ case OP_SIDEBAR_PREV: -+ if ( CurBuffy->prev == NULL ) return; -+ CurBuffy = CurBuffy->prev; -+ break; -+ case OP_SIDEBAR_SCROLL_UP: -+ CurBuffy = TopBuffy; -+ if ( CurBuffy != Incoming ) { -+ calc_boundaries(menu); -+ CurBuffy = CurBuffy->prev; -+ } -+ break; -+ case OP_SIDEBAR_SCROLL_DOWN: -+ CurBuffy = BottomBuffy; -+ if ( CurBuffy->next ) { -+ calc_boundaries(menu); -+ CurBuffy = CurBuffy->next; -+ } -+ break; -+ default: -+ return; -+ } -+ calc_boundaries(menu); -+ draw_sidebar(menu); ++ OldVisible = option (OPTSIDEBAR); ++ if (SidebarWidth > 0) ++ { ++ OldWidth = SidebarWidth; ++ } ++ else ++ { ++ OldWidth = 20; ++ if (OldVisible) ++ { ++ SidebarWidth = OldWidth; ++ } ++ } +} + -diff --git a/sidebar.h b/sidebar.h -new file mode 100644 -index 0000000..d195f11 ---- /dev/null -+++ b/sidebar.h ++/** ++ * mutt_sb_draw - Completely redraw the sidebar ++ * ++ * Completely refresh the sidebar region. First draw the divider; then, for ++ * each BUFFY, call make_sidebar_entry; finally blank out any remaining space. ++ */ ++void mutt_sb_draw (void) ++{ ++ if (!visible()) ++ return; ++ ++ /* XXX - if transitioning from invisible to visible */ ++ /* if (OldVisible == 0) */ ++ /* mutt_buffy_check (1); we probably have bad or no numbers */ ++ ++ int x = getcurx (stdscr); ++ int y = getcury (stdscr); ++ ++ int first_row = 0; ++ int num_rows = LINES - 2; ++ ++ if (option (OPTHELP) || option (OPTSTATUSONTOP)) ++ first_row++; ++ ++ if (option (OPTHELP)) ++ num_rows--; ++ ++ int div_width = draw_divider (first_row, num_rows); ++ if (div_width < 0) ++ return; ++ ++ if (!Incoming) ++ { ++ int w = MIN(COLS, (SidebarWidth - div_width)); ++ fill_empty_space (first_row, num_rows, w); ++ return; ++ } ++ ++ if (!prepare_sidebar (num_rows)) ++ return; ++ ++ draw_sidebar (first_row, num_rows, div_width); ++ move (y, x); ++} ++ ++/** ++ * mutt_sb_should_refresh - Check if the sidebar is due to be refreshed ++ * ++ * The "sidebar_refresh_time" config option allows the user to limit the frequency ++ * with which the sidebar is refreshed. ++ * ++ * Returns: ++ * 1 Yes, refresh is due ++ * 0 No, refresh happened recently ++ */ ++int mutt_sb_should_refresh (void) ++{ ++ if (!option (OPTSIDEBAR)) ++ return 0; ++ ++ if (SidebarRefreshTime == 0) ++ return 0; ++ ++ time_t diff = (time (NULL) - LastRefresh); ++ ++ return (diff >= SidebarRefreshTime); ++} ++ ++/** ++ * mutt_sb_change_mailbox - Change the selected mailbox ++ * @op: Operation code ++ * ++ * Change the selected mailbox, e.g. "Next mailbox", "Previous Mailbox ++ * with new mail". The operations are listed OPS.SIDEBAR which is built ++ * into an enum in keymap_defs.h. ++ * ++ * If the operation is successful, HilBuffy will be set to the new mailbox. ++ * This function only *selects* the mailbox, doesn't *open* it. ++ * ++ * Allowed values are: OP_SIDEBAR_NEXT, OP_SIDEBAR_NEXT_NEW, ++ * OP_SIDEBAR_PAGE_DOWN, OP_SIDEBAR_PAGE_UP, OP_SIDEBAR_PREV, ++ * OP_SIDEBAR_PREV_NEW. ++ */ ++void mutt_sb_change_mailbox (int op) ++{ ++ BUFFY *b; ++ if (!HilBuffy) /* It'll get reset on the next draw */ ++ return; ++ ++ switch (op) ++ { ++ case OP_SIDEBAR_NEXT: ++ if (!HilBuffy->next) ++ return; ++ if (HilBuffy->next->is_hidden) ++ return; ++ HilBuffy = HilBuffy->next; ++ break; ++ case OP_SIDEBAR_NEXT_NEW: ++ b = find_next_new (option (OPTSIDEBARNEXTNEWWRAP)); ++ if (!b) ++ return; ++ else ++ HilBuffy = b; ++ break; ++ case OP_SIDEBAR_PAGE_DOWN: ++ HilBuffy = BotBuffy; ++ if (HilBuffy->next) ++ HilBuffy = HilBuffy->next; ++ break; ++ case OP_SIDEBAR_PAGE_UP: ++ HilBuffy = TopBuffy; ++ if (HilBuffy != Incoming) ++ HilBuffy = HilBuffy->prev; ++ break; ++ case OP_SIDEBAR_PREV: ++ if (!HilBuffy->prev) ++ return; ++ if (HilBuffy->prev->is_hidden) /* Can't happen, we've sorted the hidden to the end */ ++ return; ++ HilBuffy = HilBuffy->prev; ++ break; ++ case OP_SIDEBAR_PREV_NEW: ++ b = find_prev_new (option (OPTSIDEBARNEXTNEWWRAP)); ++ if (!b) ++ return; ++ else ++ HilBuffy = b; ++ break; ++ default: ++ return; ++ } ++ ++ /* We can change folder even if the sidebar is hidden */ ++ if (option (OPTSIDEBAR)) ++ mutt_sb_draw(); ++} ++ ++/** ++ * mutt_sb_set_buffystats - Update the BUFFY's message counts from the CONTEXT ++ * @ctx: A mailbox CONTEXT ++ * ++ * Given a mailbox CONTEXT, find a matching mailbox BUFFY and copy the message ++ * counts into it. ++ */ ++void mutt_sb_set_buffystats (const CONTEXT *ctx) ++{ ++ /* Even if the sidebar's hidden, ++ * we should take note of the new data. */ ++ BUFFY *b = Incoming; ++ if (!ctx || !b) ++ return; ++ ++ for (; b; b = b->next) ++ { ++ if (!strcmp (b->path, ctx->path) || ++ !strcmp (b->realpath, ctx->path)) ++ { ++ b->msg_unread = ctx->unread; ++ b->msg_count = ctx->msgcount; ++ b->msg_flagged = ctx->flagged; ++ break; ++ } ++ } ++} ++ ++/** ++ * mutt_sb_get_highlight - Get the BUFFY that's highlighted in the sidebar ++ * ++ * Get the path of the mailbox that's highlighted in the sidebar. ++ * ++ * Returns: ++ * Mailbox path ++ */ ++const char *mutt_sb_get_highlight (void) ++{ ++ if (!HilBuffy) ++ return NULL; ++ ++ return HilBuffy->path; ++} ++ ++/** ++ * mutt_sb_set_open_buffy - Set the OpnBuffy based on a mailbox path ++ * @path: Mailbox path ++ * ++ * Search through the list of mailboxes. If a BUFFY has a matching path, set ++ * OpnBuffy to it. ++ */ ++BUFFY *mutt_sb_set_open_buffy (const char *path) ++{ ++ /* Even if the sidebar is hidden */ ++ ++ BUFFY *b = Incoming; ++ ++ if (!path || !b) ++ return NULL; ++ ++ OpnBuffy = NULL; ++ ++ for (; b; b = b->next) ++ { ++ if (!strcmp (b->path, path) || ++ !strcmp (b->realpath, path)) ++ { ++ OpnBuffy = b; ++ HilBuffy = b; ++ break; ++ } ++ } ++ ++ return OpnBuffy; ++} ++ ++/** ++ * mutt_sb_set_update_time - Note the time that the sidebar was updated ++ * ++ * Update the timestamp representing the last sidebar update. If the user ++ * configures "sidebar_refresh_time", this will help to reduce traffic. ++ */ ++void mutt_sb_set_update_time (void) ++{ ++ /* XXX - should this be public? */ ++ ++ LastRefresh = time (NULL); ++} ++ ++/** ++ * mutt_sb_notify_mailbox - The state of a BUFFY is about to change ++ * ++ * We receive a notification: ++ * After a new BUFFY has been created ++ * Before a BUFFY is deleted ++ * ++ * Before a deletion, check that our pointers won't be invalidated. ++ */ ++void mutt_sb_notify_mailbox (BUFFY *b, int created) ++{ ++ if (!b) ++ return; ++ ++ /* Any new/deleted mailboxes will cause a refresh. As long as ++ * they're valid, our pointers will be updated in prepare_sidebar() */ ++ ++ if (created) ++ { ++ if (!TopBuffy) ++ TopBuffy = b; ++ if (!HilBuffy) ++ HilBuffy = b; ++ if (!BotBuffy) ++ BotBuffy = b; ++ if (!Outgoing) ++ Outgoing = b; ++ if (!OpnBuffy && Context) ++ { ++ /* This might happen if the user "unmailboxes *", then ++ * "mailboxes" our current mailbox back again */ ++ if (mutt_strcmp (b->path, Context->path) == 0) ++ OpnBuffy = b; ++ } ++ } ++ else ++ { ++ BUFFY *replacement = buffy_going (b); ++ if (TopBuffy == b) ++ TopBuffy = replacement; ++ if (OpnBuffy == b) ++ OpnBuffy = NULL; ++ if (HilBuffy == b) ++ HilBuffy = replacement; ++ if (BotBuffy == b) ++ BotBuffy = replacement; ++ if (Outgoing == b) ++ Outgoing = replacement; ++ } ++} +diff -urN mutt-1.6.1/sidebar.h mutt-1.6.1-sidebar/sidebar.h +--- mutt-1.6.1/sidebar.h 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-sidebar/sidebar.h 2016-06-12 18:43:03.967503185 +0100 @@ -0,0 +1,36 @@ -+/* -+ * Copyright (C) ????-2004 Justin Hibbits ++/* Copyright (C) 2004 Justin Hibbits + * Copyright (C) 2004 Thomer M. Gil -+ * ++ * Copyright (C) 2015-2016 Richard Russon ++ * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. -+ * ++ * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. -+ * ++ * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. -+ */ ++ */ + +#ifndef SIDEBAR_H +#define SIDEBAR_H + -+struct MBOX_LIST { -+ char *path; -+ int msgcount; -+ int new; -+} MBLIST; ++#include "mutt.h" ++#include "buffy.h" + -+/* parameter is whether or not to go to the status line */ -+/* used for omitting the last | that covers up the status bar in the index */ -+int draw_sidebar(int); -+void scroll_sidebar(int, int); -+void set_curbuffy(char*); -+void set_buffystats(CONTEXT*); ++void mutt_sb_change_mailbox (int op); ++void mutt_sb_draw (void); ++const char * mutt_sb_get_highlight (void); ++void mutt_sb_init (void); ++void mutt_sb_notify_mailbox (BUFFY *b, int created); ++void mutt_sb_set_buffystats (const CONTEXT *ctx); ++BUFFY * mutt_sb_set_open_buffy (const char *path); ++void mutt_sb_set_update_time (void); ++int mutt_sb_should_refresh (void); + +#endif /* SIDEBAR_H */ +diff -urN mutt-1.6.1/sort.h mutt-1.6.1-sidebar/sort.h +--- mutt-1.6.1/sort.h 2016-06-12 18:43:00.415447793 +0100 ++++ mutt-1.6.1-sidebar/sort.h 2016-06-12 18:43:03.968503200 +0100 +@@ -31,6 +31,12 @@ + #define SORT_KEYID 12 + #define SORT_TRUST 13 + #define SORT_SPAM 14 ++#define SORT_COUNT 15 ++#define SORT_COUNT_NEW 16 ++#define SORT_DESC 17 ++#define SORT_FLAGGED 18 ++#define SORT_PATH 19 ++ + /* dgc: Sort & SortAux are shorts, so I'm bumping these bitflags up from + * bits 4 & 5 to bits 8 & 9 to make room for more sort keys in the future. */ + #define SORT_MASK 0xff +@@ -50,6 +56,7 @@ + WHERE short Sort INITVAL (SORT_DATE); + WHERE short SortAux INITVAL (SORT_DATE); /* auxiliary sorting method */ + WHERE short SortAlias INITVAL (SORT_ALIAS); ++WHERE short SidebarSortMethod INITVAL (SORT_ORDER); + + /* FIXME: This one does not belong to here */ + WHERE short PgpSortKeys INITVAL (SORT_ADDRESS); diff --git a/pkgs/applications/networking/mailreaders/mutt/trash-folder.patch b/pkgs/applications/networking/mailreaders/mutt/trash-folder.patch deleted file mode 100644 index ce47b0c30e5..00000000000 --- a/pkgs/applications/networking/mailreaders/mutt/trash-folder.patch +++ /dev/null @@ -1,316 +0,0 @@ -From: Cedric Duval -Date: Thu, 27 Feb 2014 12:27:41 +0100 -Subject: trash-folder - -With this patch, if the trash variable is set to a path (unset by default), the -deleted mails will be moved to a trash folder instead of being irremediably -purged when syncing the mailbox. - -For instance, set trash="~/Mail/trash" will cause every deleted mail to go to -this folder. - -Note that the append to the trash folder doesn't occur until the resync is -done. This allows you to change your mind and undo deletes, and thus the moves -to the trash folder are unnecessary. - -Notes - - * You might also want to have a look at the purge message feature below - which is related to this patch. - * IMAP is now supported. To retain the previous behavior, add this to your - muttrc: - folder-hook ^imap:// 'unset trash' - -FAQ - -Every once in a while, someone asks what are the advantages of this patch over -a macro based solution. Here's an attempt to answer this question: - - * The folder history doesn't clutter up with unwanted trash entries. - * Delayed move to the trash allows to change one's mind. - * No need to treat the case of "normal folders" and trash folders - separately with folder-hooks, and to create two sets of macros (one for - the index, one for the pager). - * Works not only with delete-message, but also with every deletion - functions like delete-pattern, delete-thread or delete-subthread. - -To sum up, it's more integrated and transparent to the user. - -* Patch last synced with upstream: - - Date: 2007-02-15 - - File: http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.trash_folder.3.4 - -* Changes made: - - Updated to 1.5.13: - - structure of _mutt_save_message changed (commands.c) - - context of option (OPTCONFIRMAPPEND) changed (muttlib.c) - - Fixed indentation of "appended" in mutt.h. - -Signed-off-by: Matteo F. Vescovi - -Gbp-Pq: Topic features ---- - commands.c | 1 + - flags.c | 19 +++++++++++++++++- - globals.h | 1 + - imap/message.c | 2 ++ - init.h | 10 ++++++++++ - mutt.h | 3 +++ - muttlib.c | 4 +++- - mx.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - postpone.c | 3 +++ - 9 files changed, 103 insertions(+), 2 deletions(-) - -diff --git a/commands.c b/commands.c -index 5dbd100..7fd014b 100644 ---- a/commands.c -+++ b/commands.c -@@ -720,6 +720,7 @@ int _mutt_save_message (HEADER *h, CONTEXT *ctx, int delete, int decode, int dec - if (option (OPTDELETEUNTAG)) - mutt_set_flag (Context, h, M_TAG, 0); - } -+ mutt_set_flag (Context, h, M_APPENDED, 1); - - return 0; - } -diff --git a/flags.c b/flags.c -index f0f3d81..dfa6a50 100644 ---- a/flags.c -+++ b/flags.c -@@ -65,7 +65,13 @@ void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) - { - h->deleted = 0; - update = 1; -- if (upd_ctx) ctx->deleted--; -+ if (upd_ctx) -+ { -+ ctx->deleted--; -+ if (h->appended) -+ ctx->appended--; -+ } -+ h->appended = 0; /* when undeleting, also reset the appended flag */ - #ifdef USE_IMAP - /* see my comment above */ - if (ctx->magic == M_IMAP) -@@ -87,6 +93,17 @@ void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) - } - break; - -+ case M_APPENDED: -+ if (bf) -+ { -+ if (!h->appended) -+ { -+ h->appended = 1; -+ if (upd_ctx) ctx->appended++; -+ } -+ } -+ break; -+ - case M_NEW: - - if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN)) -diff --git a/globals.h b/globals.h -index e77030c..6a1b8da 100644 ---- a/globals.h -+++ b/globals.h -@@ -144,6 +144,7 @@ WHERE char *Tochars; - WHERE char *TSStatusFormat; - WHERE char *TSIconFormat; - WHERE short TSSupported; -+WHERE char *TrashPath; - WHERE char *Username; - WHERE char *Visual; - -diff --git a/imap/message.c b/imap/message.c -index 3877381..039fda6 100644 ---- a/imap/message.c -+++ b/imap/message.c -@@ -884,6 +884,7 @@ int imap_copy_messages (CONTEXT* ctx, HEADER* h, char* dest, int delete) - if (ctx->hdrs[n]->tagged) - { - mutt_set_flag (ctx, ctx->hdrs[n], M_DELETE, 1); -+ mutt_set_flag (ctx, ctx->hdrs[n], M_APPENDED, 1); - if (option (OPTDELETEUNTAG)) - mutt_set_flag (ctx, ctx->hdrs[n], M_TAG, 0); - } -@@ -891,6 +892,7 @@ int imap_copy_messages (CONTEXT* ctx, HEADER* h, char* dest, int delete) - else - { - mutt_set_flag (ctx, h, M_DELETE, 1); -+ mutt_set_flag (ctx, h, M_APPENDED, 1); - if (option (OPTDELETEUNTAG)) - mutt_set_flag (ctx, h, M_TAG, 0); - } -diff --git a/init.h b/init.h -index 6b49341..d3206f9 100644 ---- a/init.h -+++ b/init.h -@@ -3341,6 +3341,16 @@ struct option_t MuttVars[] = { - ** provided that ``$$ts_enabled'' has been set. This string is identical in - ** formatting to the one used by ``$$status_format''. - */ -+ { "trash", DT_PATH, R_NONE, UL &TrashPath, 0 }, -+ /* -+ ** .pp -+ ** If set, this variable specifies the path of the trash folder where the -+ ** mails marked for deletion will be moved, instead of being irremediably -+ ** purged. -+ ** .pp -+ ** NOTE: When you delete a message in the trash folder, it is really -+ ** deleted, so that you have a way to clean the trash. -+ */ - #ifdef USE_SOCKET - { "tunnel", DT_STR, R_NONE, UL &Tunnel, UL 0 }, - /* -diff --git a/mutt.h b/mutt.h -index f8565fa..29bb6c2 100644 ---- a/mutt.h -+++ b/mutt.h -@@ -185,6 +185,7 @@ enum - M_DELETE, - M_UNDELETE, - M_DELETED, -+ M_APPENDED, - M_FLAG, - M_TAG, - M_UNTAG, -@@ -713,6 +714,7 @@ typedef struct header - unsigned int mime : 1; /* has a MIME-Version header? */ - unsigned int flagged : 1; /* marked important? */ - unsigned int tagged : 1; -+ unsigned int appended : 1; /* has been saved */ - unsigned int deleted : 1; - unsigned int changed : 1; - unsigned int attach_del : 1; /* has an attachment marked for deletion */ -@@ -885,6 +887,7 @@ typedef struct _context - int new; /* how many new messages? */ - int unread; /* how many unread messages? */ - int deleted; /* how many deleted messages */ -+ int appended; /* how many saved messages? */ - int flagged; /* how many flagged messages */ - int msgnotreadyet; /* which msg "new" in pager, -1 if none */ - -diff --git a/muttlib.c b/muttlib.c -index 02067cc..0fd9766 100644 ---- a/muttlib.c -+++ b/muttlib.c -@@ -1505,7 +1505,9 @@ int mutt_save_confirm (const char *s, struct stat *st) - - if (magic > 0 && !mx_access (s, W_OK)) - { -- if (option (OPTCONFIRMAPPEND)) -+ if (option (OPTCONFIRMAPPEND) && -+ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0))) -+ /* if we're appending to the trash, there's no point in asking */ - { - snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s); - if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO) -diff --git a/mx.c b/mx.c -index 4c5cb07..c0a6d30 100644 ---- a/mx.c -+++ b/mx.c -@@ -776,6 +776,53 @@ static int sync_mailbox (CONTEXT *ctx, int *index_hint) - return rc; - } - -+/* move deleted mails to the trash folder */ -+static int trash_append (CONTEXT *ctx) -+{ -+ CONTEXT *ctx_trash; -+ int i = 0; -+ struct stat st, stc; -+ -+ if (!TrashPath || !ctx->deleted || -+ (ctx->magic == M_MAILDIR && option (OPTMAILDIRTRASH))) -+ return 0; -+ -+ for (;i < ctx->msgcount && (!ctx->hdrs[i]->deleted || -+ ctx->hdrs[i]->appended); i++); -+ if (i == ctx->msgcount) -+ return 0; /* nothing to be done */ -+ -+ if (mutt_save_confirm (TrashPath, &st) != 0) -+ { -+ mutt_error _("message(s) not deleted"); -+ return -1; -+ } -+ -+ if (lstat (ctx->path, &stc) == 0 && stc.st_ino == st.st_ino -+ && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev) -+ return 0; /* we are in the trash folder: simple sync */ -+ -+ if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL) -+ { -+ for (i = 0 ; i < ctx->msgcount ; i++) -+ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended -+ && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1) -+ { -+ mx_close_mailbox (ctx_trash, NULL); -+ return -1; -+ } -+ -+ mx_close_mailbox (ctx_trash, NULL); -+ } -+ else -+ { -+ mutt_error _("Can't open trash folder"); -+ return -1; -+ } -+ -+ return 0; -+} -+ - /* save changes and close mailbox */ - int mx_close_mailbox (CONTEXT *ctx, int *index_hint) - { -@@ -912,6 +959,7 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint) - if (mutt_append_message (&f, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN) == 0) - { - mutt_set_flag (ctx, ctx->hdrs[i], M_DELETE, 1); -+ mutt_set_flag (ctx, ctx->hdrs[i], M_APPENDED, 1); - } - else - { -@@ -936,6 +984,14 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint) - return 0; - } - -+ /* copy mails to the trash before expunging */ -+ if (purge && ctx->deleted && mutt_strcmp(ctx->path, TrashPath)) -+ if (trash_append (ctx) != 0) -+ { -+ ctx->closing = 0; -+ return -1; -+ } -+ - #ifdef USE_IMAP - /* allow IMAP to preserve the deleted flag across sessions */ - if (ctx->magic == M_IMAP) -@@ -1133,6 +1189,12 @@ int mx_sync_mailbox (CONTEXT *ctx, int *index_hint) - msgcount = ctx->msgcount; - deleted = ctx->deleted; - -+ if (purge && ctx->deleted && mutt_strcmp(ctx->path, TrashPath)) -+ { -+ if (trash_append (ctx) == -1) -+ return -1; -+ } -+ - #ifdef USE_IMAP - if (ctx->magic == M_IMAP) - rc = imap_sync_mailbox (ctx, purge, index_hint); -diff --git a/postpone.c b/postpone.c -index a703161..7a4cbb1 100644 ---- a/postpone.c -+++ b/postpone.c -@@ -277,6 +277,9 @@ int mutt_get_postponed (CONTEXT *ctx, HEADER *hdr, HEADER **cur, char *fcc, size - /* finished with this message, so delete it. */ - mutt_set_flag (PostContext, h, M_DELETE, 1); - -+ /* and consider it saved, so that it won't be moved to the trash folder */ -+ mutt_set_flag (PostContext, h, M_APPENDED, 1); -+ - /* update the count for the status display */ - PostCount = PostContext->msgcount - PostContext->deleted; - diff --git a/pkgs/applications/networking/mailreaders/mutt/trash.patch b/pkgs/applications/networking/mailreaders/mutt/trash.patch new file mode 100644 index 00000000000..a7bda4c4c8b --- /dev/null +++ b/pkgs/applications/networking/mailreaders/mutt/trash.patch @@ -0,0 +1,797 @@ +diff -urN mutt-1.6.1/commands.c mutt-1.6.1-trash/commands.c +--- mutt-1.6.1/commands.c 2016-06-12 18:43:00.397447512 +0100 ++++ mutt-1.6.1-trash/commands.c 2016-06-12 18:43:04.892517610 +0100 +@@ -720,6 +720,7 @@ + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, h, M_TAG, 0); + } ++ mutt_set_flag (Context, h, M_APPENDED, 1); + + return 0; + } +diff -urN mutt-1.6.1/curs_main.c mutt-1.6.1-trash/curs_main.c +--- mutt-1.6.1/curs_main.c 2016-06-12 18:43:00.399447544 +0100 ++++ mutt-1.6.1-trash/curs_main.c 2016-06-12 18:43:04.895517656 +0100 +@@ -1919,6 +1919,7 @@ + MAYBE_REDRAW (menu->redraw); + break; + ++ case OP_PURGE_MESSAGE: + case OP_DELETE: + + CHECK_MSGCOUNT; +@@ -1930,6 +1931,7 @@ + if (tag) + { + mutt_tag_set_flag (M_DELETE, 1); ++ mutt_tag_set_flag (M_PURGED, (op != OP_PURGE_MESSAGE) ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_tag_set_flag (M_TAG, 0); + menu->redraw = REDRAW_INDEX; +@@ -1937,6 +1939,8 @@ + else + { + mutt_set_flag (Context, CURHDR, M_DELETE, 1); ++ mutt_set_flag (Context, CURHDR, M_PURGED, ++ (op != OP_PURGE_MESSAGE) ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, CURHDR, M_TAG, 0); + if (option (OPTRESOLVE)) +@@ -2242,11 +2246,13 @@ + if (tag) + { + mutt_tag_set_flag (M_DELETE, 0); ++ mutt_tag_set_flag (M_PURGED, 0); + menu->redraw = REDRAW_INDEX; + } + else + { + mutt_set_flag (Context, CURHDR, M_DELETE, 0); ++ mutt_set_flag (Context, CURHDR, M_PURGED, 0); + if (option (OPTRESOLVE) && menu->current < Context->vcount - 1) + { + menu->current++; +@@ -2268,9 +2274,11 @@ + CHECK_ACL(M_ACL_DELETE, _("Cannot undelete message(s)")); + + rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0, +- op == OP_UNDELETE_THREAD ? 0 : 1); ++ op == OP_UNDELETE_THREAD ? 0 : 1) ++ + mutt_thread_set_flag (CURHDR, M_PURGED, 0, ++ (op == OP_UNDELETE_THREAD) ? 0 : 1); + +- if (rc != -1) ++ if (rc > -1) + { + if (option (OPTRESOLVE)) + { +diff -urN mutt-1.6.1/doc/manual.xml.head mutt-1.6.1-trash/doc/manual.xml.head +--- mutt-1.6.1/doc/manual.xml.head 2016-06-12 18:43:00.402447590 +0100 ++++ mutt-1.6.1-trash/doc/manual.xml.head 2016-06-12 18:43:04.901517750 +0100 +@@ -7467,6 +7467,16 @@ + +
+ ++ ++Mutt Patches ++ ++Mutt may also be patched to support smaller features. ++These patches should add a free-form string to the end Mutt's version string. ++Running mutt -v might show: ++patch-1.6.1.sidebar.20160502 ++ ++ ++ + + URL Syntax + +@@ -8081,6 +8091,175 @@ + + + ++ ++ Trash Folder Patch ++ Automatically move "deleted" emails to a trash bin ++ ++ ++ Patch ++ ++ ++ To check if Mutt supports Trash Folder, look for ++ patch-trash in the mutt version. ++ See: . ++ ++ ++ If IMAP is enabled, this patch will use it ++ ++ ++ Dependencies: ++ mutt-1.6.1 ++ IMAP support ++ ++ ++ This patch is part of the NeoMutt Project. ++ ++ ++ ++ Introduction ++ ++ ++ In Mutt, when you delete an email it is first marked ++ deleted. The email isn't really gone until ++ <sync-mailbox> is called. ++ This happens when the user leaves the folder, or the function is called ++ manually. ++ ++ ++ ++ After <sync-mailbox> has been called the email is gone forever. ++ ++ ++ ++ The $trash variable defines a folder in ++ which to keep old emails. As before, first you mark emails for ++ deletion. When <sync-mailbox> is called the emails are moved to ++ the trash folder. ++ ++ ++ ++ The $trash path can be either a full directory, ++ or be relative to the $folder ++ variable, like the mailboxes command. ++ ++ ++ ++ Emails deleted from the trash folder are gone forever. ++ ++ ++ ++ ++ Variables ++ ++ Trash Variables ++ ++ ++ ++ Name ++ Type ++ Default ++ ++ ++ ++ ++ trash ++ string ++ (none) ++ ++ ++ ++
++
++ ++ ++ Functions ++ ++ Trash Functions ++ ++ ++ ++ Menus ++ Default Key ++ Function ++ Description ++ ++ ++ ++ ++ index,pager ++ (none) ++ <purge-message> ++ really delete the current entry, bypassing the trash folder ++ ++ ++ ++
++
++ ++ ++ ++ ++ Muttrc ++ ++# Example Mutt config file for the 'trash' feature. ++ ++# This feature defines a new 'trash' folder. ++# When mail is deleted it will be moved to this folder. ++ ++# Folder in which to put deleted emails ++set trash='+Trash' ++set trash='/home/flatcap/Mail/Trash' ++ ++# The default delete key 'd' will move an email to the 'trash' folder ++# Bind 'D' to REALLY delete an email ++bind index D purge-message ++ ++# Note: Deleting emails from the 'trash' folder will REALLY delete them. ++ ++# vim: syntax=muttrc ++ ++ ++ ++ ++ See Also ++ ++ ++ NeoMutt Project ++ folder-hook ++ ++ ++ ++ ++ Known Bugs ++ None ++ ++ ++ ++ Credits ++ ++ Cedric Duval cedricduval@free.fr ++ Benjamin Kuperman kuperman@acm.org ++ Paul Miller paul@voltar.org ++ Richard Russon rich@flatcap.org ++ ++ ++
++ + + + +diff -urN mutt-1.6.1/doc/muttrc.trash mutt-1.6.1-trash/doc/muttrc.trash +--- mutt-1.6.1/doc/muttrc.trash 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-trash/doc/muttrc.trash 2016-06-12 18:43:04.768515676 +0100 +@@ -0,0 +1,16 @@ ++# Example Mutt config file for the 'trash' feature. ++ ++# This feature defines a new 'trash' folder. ++# When mail is deleted it will be moved to this folder. ++ ++# Folder in which to put deleted emails ++set trash='+Trash' ++set trash='/home/flatcap/Mail/Trash' ++ ++# The default delete key 'd' will move an email to the 'trash' folder ++# Bind 'D' to REALLY delete an email ++bind index D purge-message ++ ++# Note: Deleting emails from the 'trash' folder will REALLY delete them. ++ ++# vim: syntax=muttrc +diff -urN mutt-1.6.1/doc/vimrc.trash mutt-1.6.1-trash/doc/vimrc.trash +--- mutt-1.6.1/doc/vimrc.trash 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-trash/doc/vimrc.trash 2016-06-12 18:43:04.769515692 +0100 +@@ -0,0 +1,7 @@ ++" Vim syntax file for the mutt trash patch ++ ++syntax keyword muttrcVarStr contained skipwhite trash nextgroup=muttrcVarEqualsIdxFmt ++ ++syntax match muttrcFunction contained "\" ++ ++" vim: syntax=vim +diff -urN mutt-1.6.1/flags.c mutt-1.6.1-trash/flags.c +--- mutt-1.6.1/flags.c 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-trash/flags.c 2016-06-12 18:43:04.902517766 +0100 +@@ -65,7 +65,13 @@ + { + h->deleted = 0; + update = 1; +- if (upd_ctx) ctx->deleted--; ++ if (upd_ctx) { ++ ctx->deleted--; ++ if (h->appended) { ++ ctx->appended--; ++ } ++ } ++ h->appended = 0; /* when undeleting, also reset the appended flag */ + #ifdef USE_IMAP + /* see my comment above */ + if (ctx->magic == M_IMAP) +@@ -87,6 +93,27 @@ + } + break; + ++ case M_APPENDED: ++ if (bf) { ++ if (!h->appended) { ++ h->appended = 1; ++ if (upd_ctx) { ++ ctx->appended++; ++ } ++ } ++ } ++ break; ++ ++ case M_PURGED: ++ if (bf) { ++ if (!h->purged) { ++ h->purged = 1; ++ } ++ } else if (h->purged) { ++ h->purged = 0; ++ } ++ break; ++ + case M_NEW: + + if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN)) +diff -urN mutt-1.6.1/functions.h mutt-1.6.1-trash/functions.h +--- mutt-1.6.1/functions.h 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-trash/functions.h 2016-06-12 18:43:04.902517766 +0100 +@@ -121,6 +121,7 @@ + { "toggle-write", OP_TOGGLE_WRITE, "%" }, + { "next-thread", OP_MAIN_NEXT_THREAD, "\016" }, + { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" }, ++ { "purge-message", OP_PURGE_MESSAGE, NULL }, + { "query", OP_QUERY, "Q" }, + { "quit", OP_QUIT, "q" }, + { "reply", OP_REPLY, "r" }, +@@ -213,6 +214,7 @@ + { "print-message", OP_PRINT, "p" }, + { "previous-thread", OP_MAIN_PREV_THREAD, "\020" }, + { "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" }, ++ { "purge-message", OP_PURGE_MESSAGE, NULL }, + { "quit", OP_QUIT, "Q" }, + { "exit", OP_EXIT, "q" }, + { "reply", OP_REPLY, "r" }, +diff -urN mutt-1.6.1/globals.h mutt-1.6.1-trash/globals.h +--- mutt-1.6.1/globals.h 2016-06-12 18:43:00.403447606 +0100 ++++ mutt-1.6.1-trash/globals.h 2016-06-12 18:43:04.903517781 +0100 +@@ -141,6 +141,7 @@ + WHERE char *Status; + WHERE char *Tempdir; + WHERE char *Tochars; ++WHERE char *TrashPath; + WHERE char *TSStatusFormat; + WHERE char *TSIconFormat; + WHERE short TSSupported; +diff -urN mutt-1.6.1/imap/imap.c mutt-1.6.1-trash/imap/imap.c +--- mutt-1.6.1/imap/imap.c 2016-06-12 18:43:00.405447637 +0100 ++++ mutt-1.6.1-trash/imap/imap.c 2016-06-12 18:43:04.905517812 +0100 +@@ -888,6 +888,12 @@ + if (hdrs[n]->deleted != HEADER_DATA(hdrs[n])->deleted) + match = invert ^ hdrs[n]->deleted; + break; ++ case M_EXPIRED: /* imap_fast_trash version of M_DELETED */ ++ if (hdrs[n]->purged) ++ break; ++ if (hdrs[n]->deleted != HEADER_DATA(hdrs[n])->deleted) ++ match = invert ^ (hdrs[n]->deleted && !hdrs[n]->appended); ++ break; + case M_FLAG: + if (hdrs[n]->flagged != HEADER_DATA(hdrs[n])->flagged) + match = invert ^ hdrs[n]->flagged; +@@ -2038,3 +2044,53 @@ + + return -1; + } ++ ++/** ++ * imap_fast_trash - XXX ++ */ ++int ++imap_fast_trash (void) ++{ ++ if ((Context->magic == M_IMAP) && mx_is_imap (TrashPath)) { ++ IMAP_MBOX mx; ++ IMAP_DATA *idata = (IMAP_DATA *) Context->data; ++ char mbox[LONG_STRING]; ++ char mmbox[LONG_STRING]; ++ int rc; ++ dprint (1, (debugfile, "[itf] trashcan seems to be on imap.\n")); ++ ++ if (imap_parse_path (TrashPath, &mx) == 0) { ++ if (mutt_account_match (&(idata->conn->account), &(mx.account))) { ++ dprint (1, (debugfile, "[itf] trashcan seems to be on the same account.\n")); ++ ++ imap_fix_path (idata, mx.mbox, mbox, sizeof (mbox)); ++ if (!*mbox) ++ strfcpy (mbox, "INBOX", sizeof (mbox)); ++ imap_munge_mbox_name (idata, mmbox, sizeof (mmbox), mbox); ++ ++ rc = imap_exec_msgset (idata, "UID COPY", mmbox, M_EXPIRED, 0, 0); ++ if (rc == 0) { ++ dprint (1, (debugfile, "imap_copy_messages: No messages del-tagged\n")); ++ rc = -1; ++ goto old_way; ++ } else if (rc < 0) { ++ dprint (1, (debugfile, "could not queue copy\n")); ++ goto old_way; ++ } else { ++ mutt_message (_("Copying %d messages to %s..."), rc, mbox); ++ return 0; ++ } ++ } else { ++ dprint (1, (debugfile, "[itf] trashcan seems to be on a different account.\n")); ++ } ++old_way: ++ FREE(&mx.mbox); /* we probably only need to free this when the parse works */ ++ } else { ++ dprint (1, (debugfile, "[itf] failed to parse TrashPath.\n")); ++ } ++ ++ dprint (1, (debugfile, "[itf] giving up and trying old fasioned way.\n")); ++ } ++ ++ return 1; ++} +diff -urN mutt-1.6.1/imap/imap.h mutt-1.6.1-trash/imap/imap.h +--- mutt-1.6.1/imap/imap.h 2016-06-12 18:43:00.405447637 +0100 ++++ mutt-1.6.1-trash/imap/imap.h 2016-06-12 18:43:04.774515769 +0100 +@@ -72,4 +72,7 @@ + + int imap_account_match (const ACCOUNT* a1, const ACCOUNT* a2); + ++/* trash */ ++int imap_fast_trash (void); ++ + #endif +diff -urN mutt-1.6.1/imap/message.c mutt-1.6.1-trash/imap/message.c +--- mutt-1.6.1/imap/message.c 2016-06-12 18:43:00.406447652 +0100 ++++ mutt-1.6.1-trash/imap/message.c 2016-06-12 18:43:04.906517828 +0100 +@@ -886,6 +886,7 @@ + if (ctx->hdrs[n]->tagged) + { + mutt_set_flag (ctx, ctx->hdrs[n], M_DELETE, 1); ++ mutt_set_flag (ctx, ctx->hdrs[n], M_APPENDED, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (ctx, ctx->hdrs[n], M_TAG, 0); + } +@@ -893,6 +894,7 @@ + else + { + mutt_set_flag (ctx, h, M_DELETE, 1); ++ mutt_set_flag (ctx, h, M_APPENDED, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (ctx, h, M_TAG, 0); + } +diff -urN mutt-1.6.1/init.h mutt-1.6.1-trash/init.h +--- mutt-1.6.1/init.h 2016-06-12 18:43:00.408447684 +0100 ++++ mutt-1.6.1-trash/init.h 2016-06-12 18:43:04.909517875 +0100 +@@ -3419,6 +3419,16 @@ + ** provided that ``$$ts_enabled'' has been set. This string is identical in + ** formatting to the one used by ``$$status_format''. + */ ++ { "trash", DT_PATH, R_NONE, UL &TrashPath, 0 }, ++ /* ++ ** .pp ++ ** If set, this variable specifies the path of the trash folder where the ++ ** mails marked for deletion will be moved, instead of being irremediably ++ ** purged. ++ ** .pp ++ ** NOTE: When you delete a message in the trash folder, it is really ++ ** deleted, so that you have a way to clean the trash. ++ */ + #ifdef USE_SOCKET + { "tunnel", DT_STR, R_NONE, UL &Tunnel, UL 0 }, + /* +diff -urN mutt-1.6.1/mutt.h mutt-1.6.1-trash/mutt.h +--- mutt-1.6.1/mutt.h 2016-06-12 18:43:00.410447715 +0100 ++++ mutt-1.6.1-trash/mutt.h 2016-06-12 18:43:04.912517922 +0100 +@@ -182,6 +182,8 @@ + M_DELETE, + M_UNDELETE, + M_DELETED, ++ M_APPENDED, ++ M_PURGED, + M_FLAG, + M_TAG, + M_UNTAG, +@@ -719,6 +721,8 @@ + unsigned int mime : 1; /* has a MIME-Version header? */ + unsigned int flagged : 1; /* marked important? */ + unsigned int tagged : 1; ++ unsigned int appended : 1; /* has been saved */ ++ unsigned int purged : 1; /* bypassing the trash folder */ + unsigned int deleted : 1; + unsigned int changed : 1; + unsigned int attach_del : 1; /* has an attachment marked for deletion */ +@@ -891,6 +895,7 @@ + int new; /* how many new messages? */ + int unread; /* how many unread messages? */ + int deleted; /* how many deleted messages */ ++ int appended; /* how many saved messages? */ + int flagged; /* how many flagged messages */ + int msgnotreadyet; /* which msg "new" in pager, -1 if none */ + +diff -urN mutt-1.6.1/muttlib.c mutt-1.6.1-trash/muttlib.c +--- mutt-1.6.1/muttlib.c 2016-06-12 18:43:00.411447731 +0100 ++++ mutt-1.6.1-trash/muttlib.c 2016-06-12 18:43:04.913517937 +0100 +@@ -1511,7 +1511,9 @@ + + if (magic > 0 && !mx_access (s, W_OK)) + { +- if (option (OPTCONFIRMAPPEND)) ++ if (option (OPTCONFIRMAPPEND) && ++ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0))) ++ /* if we're appending to the trash, there's no point in asking */ + { + snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s); + if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO) +diff -urN mutt-1.6.1/mx.c mutt-1.6.1-trash/mx.c +--- mutt-1.6.1/mx.c 2016-06-12 18:43:00.411447731 +0100 ++++ mutt-1.6.1-trash/mx.c 2016-06-12 18:43:04.914517953 +0100 +@@ -776,6 +776,62 @@ + return rc; + } + ++/** ++ * trash_append - XXX ++ * ++ * move deleted mails to the trash folder ++ */ ++static int trash_append (CONTEXT *ctx) ++{ ++ CONTEXT *ctx_trash; ++ int i = 0; ++ struct stat st, stc; ++ ++ if (!TrashPath || !ctx->deleted || ++ ((ctx->magic == M_MAILDIR) && option (OPTMAILDIRTRASH))) { ++ return 0; ++ } ++ ++ for (; i < ctx->msgcount && (!ctx->hdrs[i]->deleted || ctx->hdrs[i]->appended); i++); ++ /* nothing */ ++ ++ if (i == ctx->msgcount) ++ return 0; /* nothing to be done */ ++ ++ if (mutt_save_confirm (TrashPath, &st) != 0) { ++ mutt_error _("message(s) not deleted"); ++ return -1; ++ } ++ ++ if (lstat (ctx->path, &stc) == 0 && stc.st_ino == st.st_ino ++ && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev) { ++ return 0; /* we are in the trash folder: simple sync */ ++ } ++ ++#ifdef USE_IMAP ++ if (!imap_fast_trash()) ++ return 0; ++#endif ++ ++ if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL) { ++ for (i = 0 ; i < ctx->msgcount ; i++) { ++ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended ++ && !ctx->hdrs[i]->purged ++ && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1) { ++ mx_close_mailbox (ctx_trash, NULL); ++ return -1; ++ } ++ } ++ ++ mx_close_mailbox (ctx_trash, NULL); ++ } else { ++ mutt_error _("Can't open trash folder"); ++ return -1; ++ } ++ ++ return 0; ++} ++ + /* save changes and close mailbox */ + int mx_close_mailbox (CONTEXT *ctx, int *index_hint) + { +@@ -912,6 +968,7 @@ + if (mutt_append_message (&f, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN) == 0) + { + mutt_set_flag (ctx, ctx->hdrs[i], M_DELETE, 1); ++ mutt_set_flag (ctx, ctx->hdrs[i], M_APPENDED, 1); + } + else + { +@@ -936,6 +993,14 @@ + return 0; + } + ++ /* copy mails to the trash before expunging */ ++ if (purge && ctx->deleted && mutt_strcmp (ctx->path, TrashPath)) { ++ if (trash_append (ctx) != 0) { ++ ctx->closing = 0; ++ return -1; ++ } ++ } ++ + #ifdef USE_IMAP + /* allow IMAP to preserve the deleted flag across sessions */ + if (ctx->magic == M_IMAP) +@@ -1140,6 +1205,12 @@ + msgcount = ctx->msgcount; + deleted = ctx->deleted; + ++ if (purge && ctx->deleted && mutt_strcmp (ctx->path, TrashPath)) { ++ if (trash_append (ctx) == -1) { ++ return -1; ++ } ++ } ++ + #ifdef USE_IMAP + if (ctx->magic == M_IMAP) + rc = imap_sync_mailbox (ctx, purge, index_hint); +diff -urN mutt-1.6.1/OPS mutt-1.6.1-trash/OPS +--- mutt-1.6.1/OPS 2016-06-12 18:43:00.389447388 +0100 ++++ mutt-1.6.1-trash/OPS 2016-06-12 18:43:04.883517469 +0100 +@@ -142,6 +142,7 @@ + OP_PREV_LINE "scroll up one line" + OP_PREV_PAGE "move to the previous page" + OP_PRINT "print the current entry" ++OP_PURGE_MESSAGE "really delete the current entry, bypassing the trash folder" + OP_QUERY "query external program for addresses" + OP_QUERY_APPEND "append new query results to current results" + OP_QUIT "save changes to mailbox and quit" +diff -urN mutt-1.6.1/pager.c mutt-1.6.1-trash/pager.c +--- mutt-1.6.1/pager.c 2016-06-12 18:43:00.412447746 +0100 ++++ mutt-1.6.1-trash/pager.c 2016-06-12 18:43:04.915517968 +0100 +@@ -2351,6 +2351,7 @@ + MAYBE_REDRAW (redraw); + break; + ++ case OP_PURGE_MESSAGE: + case OP_DELETE: + CHECK_MODE(IsHeader (extra)); + CHECK_READONLY; +@@ -2358,6 +2359,8 @@ + CHECK_ACL(M_ACL_DELETE, _("Cannot delete message")); + + mutt_set_flag (Context, extra->hdr, M_DELETE, 1); ++ mutt_set_flag (Context, extra->hdr, M_PURGED, ++ ch != OP_PURGE_MESSAGE ? 0 : 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, extra->hdr, M_TAG, 0); + redraw = REDRAW_STATUS | REDRAW_INDEX; +@@ -2688,6 +2691,7 @@ + CHECK_ACL(M_ACL_DELETE, _("Cannot undelete message")); + + mutt_set_flag (Context, extra->hdr, M_DELETE, 0); ++ mutt_set_flag (Context, extra->hdr, M_PURGED, 0); + redraw = REDRAW_STATUS | REDRAW_INDEX; + if (option (OPTRESOLVE)) + { +@@ -2704,9 +2708,11 @@ + CHECK_ACL(M_ACL_DELETE, _("Cannot undelete message(s)")); + + r = mutt_thread_set_flag (extra->hdr, M_DELETE, 0, ++ ch == OP_UNDELETE_THREAD ? 0 : 1) ++ + mutt_thread_set_flag (extra->hdr, M_PURGED, 0, + ch == OP_UNDELETE_THREAD ? 0 : 1); + +- if (r != -1) ++ if (r > -1) + { + if (option (OPTRESOLVE)) + { +diff -urN mutt-1.6.1/PATCHES mutt-1.6.1-trash/PATCHES +--- mutt-1.6.1/PATCHES 2016-06-12 18:43:00.395447481 +0100 ++++ mutt-1.6.1-trash/PATCHES 2016-06-12 18:43:04.889517563 +0100 +@@ -0,0 +1 @@ ++patch-trash-neo-20160612 +diff -urN mutt-1.6.1/pattern.c mutt-1.6.1-trash/pattern.c +--- mutt-1.6.1/pattern.c 2016-06-12 18:43:00.413447762 +0100 ++++ mutt-1.6.1-trash/pattern.c 2016-06-12 18:43:04.916517984 +0100 +@@ -1367,8 +1367,9 @@ + { + switch (op) + { +- case M_DELETE: + case M_UNDELETE: ++ mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_PURGED, 0); ++ case M_DELETE: + mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE, + (op == M_DELETE)); + break; +diff -urN mutt-1.6.1/postpone.c mutt-1.6.1-trash/postpone.c +--- mutt-1.6.1/postpone.c 2016-06-12 18:43:00.414447777 +0100 ++++ mutt-1.6.1-trash/postpone.c 2016-06-12 18:43:04.917518000 +0100 +@@ -277,6 +277,9 @@ + /* finished with this message, so delete it. */ + mutt_set_flag (PostContext, h, M_DELETE, 1); + ++ /* and consider it saved, so that it won't be moved to the trash folder */ ++ mutt_set_flag (PostContext, h, M_APPENDED, 1); ++ + /* update the count for the status display */ + PostCount = PostContext->msgcount - PostContext->deleted; + +diff -urN mutt-1.6.1/README.trash mutt-1.6.1-trash/README.trash +--- mutt-1.6.1/README.trash 1970-01-01 01:00:00.000000000 +0100 ++++ mutt-1.6.1-trash/README.trash 2016-06-12 18:43:04.748515364 +0100 +@@ -0,0 +1,74 @@ ++Trash Folder Patch ++================== ++ ++ Automatically move "deleted" emails to a trash bin ++ ++Patch ++----- ++ ++ To check if Mutt supports "Trash Folder", look for "patch-trash" in the ++ mutt version. ++ ++ If IMAP is enabled, this patch will use it ++ ++ Dependencies ++ * mutt-1.6.1 ++ * IMAP support ++ ++Introduction ++------------ ++ ++ In Mutt, when you "delete" an email it is first marked deleted. The email ++ isn't really gone until is called. This happens when the ++ user leaves the folder, or the function is called manually. ++ ++ After '' has been called the email is gone forever. ++ ++ The $trash variable defines a folder in which to keep old emails. As ++ before, first you mark emails for deletion. When is called ++ the emails are moved to the trash folder. ++ ++ The '$trash' path can be either a full directory, or be relative to the ++ $folder variable, like the 'mailboxes' command. ++ ++ > Note ++ > ++ > Emails deleted from the trash folder are gone forever. ++ ++Variables ++--------- ++ ++ Trash Variables ++ ++ | Name | Type | Default | ++ |-------|--------|---------| ++ | trash | string | (none) | ++ ++Functions ++--------- ++ ++ Trash Functions ++ ++ | Menus | Default Key | Function | Description | ++ |-------------|-------------|-------------------|-------------------------------------------------------------| ++ | index,pager | (none) | '' | really delete the current entry, bypassing the trash folder | ++ ++See Also ++-------- ++ ++ * NeoMutt project ++ * folder-hook ++ ++Known Bugs ++---------- ++ ++ None ++ ++Credits ++------- ++ ++ * Cedric Duval ++ * Benjamin Kuperman ++ * Paul Miller ++ * Richard Russon ++ diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix index 0febee72096..bf7c8f75245 100644 --- a/pkgs/applications/networking/sniffers/wireshark/default.nix +++ b/pkgs/applications/networking/sniffers/wireshark/default.nix @@ -11,7 +11,7 @@ assert withQt -> !withGtk && qt4 != null; with stdenv.lib; let - version = "2.0.3"; + version = "2.0.4"; variant = if withGtk then "gtk" else if withQt then "qt" else "cli"; in @@ -20,7 +20,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.bz2"; - sha256 = "1z358k65frp9m0l07cppwxhvbcp1w9ya5sml87pzs8gyfmp3g5p1"; + sha256 = "19g11m8m8qd7dkcvcb27lyppklg608d9ap7wr3mr88clm4nwiacy"; }; buildInputs = [ diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix index d0cd82039f2..351cf5c5211 100644 --- a/pkgs/applications/video/handbrake/default.nix +++ b/pkgs/applications/video/handbrake/default.nix @@ -20,7 +20,7 @@ libogg, libtheora, libvorbis, libdvdcss, a52dec, fdk_aac, lame, faac, ffmpeg, libdvdread, libdvdnav, libbluray, mp4v2, mpeg2dec, x264, libmkv, - fontconfig, freetype, + fontconfig, freetype, hicolor_icon_theme, glib, gtk, webkitgtk, intltool, libnotify, gst_all_1, dbus_glib, udev, libgudev, useGtk ? true, @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ python pkgconfig yasm autoconf automake libtool m4 ]; buildInputs = [ - fribidi fontconfig freetype + fribidi fontconfig freetype hicolor_icon_theme libass libsamplerate libxml2 bzip2 libogg libtheora libvorbis libdvdcss a52dec libmkv fdk_aac lame ffmpeg libdvdread libdvdnav libbluray mp4v2 mpeg2dec x264 diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix index 4eeb733d978..69e52065419 100644 --- a/pkgs/applications/video/mkvtoolnix/default.nix +++ b/pkgs/applications/video/mkvtoolnix/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, pkgconfig, autoconf, automake +{ stdenv, fetchFromGitHub, pkgconfig, autoconf, automake , ruby, file, xdg_utils, gettext, expat, qt5, boost , libebml, zlib, libmatroska, libogg, libvorbis, flac , withGUI ? true @@ -10,18 +10,19 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "mkvtoolnix-${version}"; - version = "8.9.0"; + version = "9.2.0"; - src = fetchgit { - url = "https://github.com/mbunkus/mkvtoolnix.git"; - rev = "54e6b52b3dde07f89da4542997ef059e18802128"; - sha256 = "1gipydk1xisqy110rr38dgjzpxl8zxbm12kf7b2f4xh4iw17j0k2"; + src = fetchFromGitHub { + owner = "mbunkus"; + repo = "mkvtoolnix"; + rev = "release-${version}"; + sha256 = "02w3161iqaijs3bz5w2wily9nz55xnhq1bdm2s5qi8v3sbcqd6df"; }; - nativeBuildInputs = [ gettext ruby ]; + nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ]; buildInputs = [ - pkgconfig autoconf automake expat + expat file xdg_utils boost libebml zlib libmatroska libogg libvorbis flac (optional withGUI qt5.qtbase) diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix index bd1af2ce29a..23f6daf0d61 100644 --- a/pkgs/applications/video/mpv/default.nix +++ b/pkgs/applications/video/mpv/default.nix @@ -62,11 +62,11 @@ in stdenv.mkDerivation rec { name = "mpv-${version}"; - version = "0.17.0"; + version = "0.18.1"; src = fetchurl { url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz"; - sha256 = "0vms3viwqcwl1mrgmf2yy4c69fvv7xpbkyrl693l6zpwynqd4b30"; + sha256 = "0ab3lkvx1j06x7qlp9m4r4zk28dr7z8ki3w4kfgkpm2axizxa4z4"; }; patchPhase = '' diff --git a/pkgs/applications/video/recordmydesktop/default.nix b/pkgs/applications/video/recordmydesktop/default.nix index 95c06d54d6e..54dc88b452e 100644 --- a/pkgs/applications/video/recordmydesktop/default.nix +++ b/pkgs/applications/video/recordmydesktop/default.nix @@ -1,18 +1,23 @@ -{ stdenv, fetchsvn, automake, autoconf, zlib, popt, xorg, libvorbis, libtheora }: +{ stdenv, fetchsvn, autoreconfHook, zlib, popt, alsaLib, libvorbis, libtheora +, libICE, libSM, libX11, libXext, libXfixes, libXdamage }: stdenv.mkDerivation rec { name = "recordmydesktop-${version}"; - version = "0.3.8.1-svn602"; + version = "0.3.8.1-svn${rev}"; + rev = "602"; src = fetchsvn { url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/recordmydesktop; - rev = 602; + inherit rev; sha256 = "1avirkc4ymrd575m616pi6wpgq1i0r5sb3qahps1g18sjpxks0lf"; }; - buildInputs = [ automake autoconf zlib popt xorg.libICE xorg.libSM xorg.libX11 xorg.libXext xorg.libXfixes xorg.libXdamage libvorbis libtheora ]; + nativeBuildInputs = [ autoreconfHook ]; - preConfigure = ''./autogen.sh''; + buildInputs = [ + zlib popt alsaLib libICE libSM libX11 libXext + libXfixes libXdamage libvorbis libtheora + ]; meta = with stdenv.lib; { description = "Desktop session recorder"; diff --git a/pkgs/applications/video/recordmydesktop/gtk.nix b/pkgs/applications/video/recordmydesktop/gtk.nix new file mode 100644 index 00000000000..f3bf714b941 --- /dev/null +++ b/pkgs/applications/video/recordmydesktop/gtk.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, fetchsvn, recordmydesktop, autoreconfHook, pkgconfig, glib +, pythonPackages, jack2, xwininfo }: + +let + binPath = lib.makeBinPath [ recordmydesktop jack2 xwininfo ]; + +in stdenv.mkDerivation rec { + name = "gtk-recordmydesktop-${version}"; + version = "0.3.8-svn${recordmydesktop.rev}"; + + src = fetchsvn { + url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/gtk-recordmydesktop; + inherit (recordmydesktop) rev; + sha256 = "010aykgjfxhyiixq9a9fg3p1a1ixz59m1vkn16hpy0lybgf4dsby"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + buildInputs = with pythonPackages; [ + python pygtk wrapPython + ]; + + pythonPath = with pythonPackages; [ pygtk ]; + + postInstall = '' + makeWrapperArgs="--prefix PATH : ${binPath}" + wrapPythonPrograms + ''; + + meta = with stdenv.lib; { + description = "GTK frontend for recordmydesktop"; + homepage = http://recordmydesktop.sourceforge.net/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.DamienCassou ]; + }; +} diff --git a/pkgs/applications/video/recordmydesktop/qt.nix b/pkgs/applications/video/recordmydesktop/qt.nix new file mode 100644 index 00000000000..de372c905bd --- /dev/null +++ b/pkgs/applications/video/recordmydesktop/qt.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, fetchsvn, recordmydesktop, autoreconfHook, pkgconfig +, glib, pythonPackages, qt4, jack2, xwininfo }: + +let + binPath = lib.makeBinPath [ recordmydesktop jack2 xwininfo ]; + +in stdenv.mkDerivation rec { + name = "qt-recordmydesktop-${version}"; + version = "0.3.8-svn${recordmydesktop.rev}"; + + src = fetchsvn { + url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/qt-recordmydesktop; + inherit (recordmydesktop) rev; + sha256 = "0vz7amrmz317sbx2cv2186d0r57as4l26xa9rpim5gbvzk20caqc"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + + buildInputs = [ glib qt4 ] ++ (with pythonPackages; [ + python wrapPython pyqt4 + ]); + + pythonPath = with pythonPackages; [ pyqt4 ]; + + postInstall = '' + makeWrapperArgs="--prefix PATH : ${binPath}" + wrapPythonPrograms + ''; + + meta = with stdenv.lib; { + description = "GTK frontend for recordmydesktop"; + homepage = http://recordmydesktop.sourceforge.net/; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.DamienCassou ]; + }; +} diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix index 3ea04a39393..f50a41129ad 100644 --- a/pkgs/applications/video/simplescreenrecorder/default.nix +++ b/pkgs/applications/video/simplescreenrecorder/default.nix @@ -11,7 +11,18 @@ stdenv.mkDerivation rec { sha256 = "1d89ncspjd8c4mckf0nb6y3hrxpv4rjpbj868pznhvfmdgr5nvql"; }; - postPatch = "sed '1i#include ' -i src/Benchmark.cpp"; + patches = [ ./fix-paths.patch ]; + + postPatch = '' + # #455 + sed '1i#include ' -i src/Benchmark.cpp + + for i in scripts/ssr-glinject src/AV/Input/GLInjectInput.cpp; do + substituteInPlace $i \ + --subst-var out \ + --subst-var-by sh ${stdenv.shell} + done + ''; buildInputs = [ alsaLib ffmpeg libjack2 libX11 libXext libXfixes mesa pkgconfig diff --git a/pkgs/applications/video/simplescreenrecorder/fix-paths.patch b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch new file mode 100644 index 00000000000..ba02240ce1f --- /dev/null +++ b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch @@ -0,0 +1,35 @@ +diff --git a/scripts/ssr-glinject b/scripts/ssr-glinject +index 48be48d..5038d4c 100755 +--- a/scripts/ssr-glinject ++++ b/scripts/ssr-glinject +@@ -59,6 +59,6 @@ do + fi + done + +-echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:libssr-glinject.so" ++echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:@out@/lib/libssr-glinject.so" + echo "ssr-glinject: command = $@" +-LD_PRELOAD="$LD_PRELOAD:libssr-glinject.so" "$@" ++LD_PRELOAD="$LD_PRELOAD:@out@/lib/libssr-glinject.so" "$@" +diff --git a/src/AV/Input/GLInjectInput.cpp b/src/AV/Input/GLInjectInput.cpp +index 6b378f8..cbcf82b 100644 +--- a/src/AV/Input/GLInjectInput.cpp ++++ b/src/AV/Input/GLInjectInput.cpp +@@ -96,7 +96,7 @@ void GLInjectInput::SetCapturing(bool capturing) { + bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permissions, const QString& command, const QString& working_directory) { + + // prepare command +- QString full_command = "LD_PRELOAD=\"libssr-glinject.so\" "; ++ QString full_command = "LD_PRELOAD=\"@out@/lib/libssr-glinject.so\" "; + full_command += "SSR_CHANNEL=\"" + ShellEscape(channel) + "\" "; + if(relax_permissions) + full_command += "SSR_STREAM_RELAX_PERMISSIONS=1 "; +@@ -106,7 +106,7 @@ bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permiss + QStringList args; + args.push_back("-c"); + args.push_back(full_command); +- return QProcess::startDetached("/bin/sh", args, working_directory); ++ return QProcess::startDetached("@sh@", args, working_directory); + + } + diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix index 3f883694e08..3cc4c310ed5 100644 --- a/pkgs/applications/video/vlc/default.nix +++ b/pkgs/applications/video/vlc/default.nix @@ -20,11 +20,11 @@ assert (!withQt5 -> qt4 != null); stdenv.mkDerivation rec { name = "vlc-${version}"; - version = "2.2.3"; + version = "2.2.4"; src = fetchurl { url = "http://get.videolan.org/vlc/${version}/${name}.tar.xz"; - sha256 = "0nxzspnyzlm17imlggi8ypnwiizi0f5wrj3436c3qg7i6mymimxr"; + sha256 = "1gjkrwlg8ab3skzl67cxb9qzg4187ifckd1z9kpy11q058fyjchn"; }; # Comment-out the Qt 5.5 version check, as we do apply the relevant patch. diff --git a/pkgs/applications/window-managers/i3/lock.nix b/pkgs/applications/window-managers/i3/lock.nix index 56e0643811f..d9ea14828dd 100644 --- a/pkgs/applications/window-managers/i3/lock.nix +++ b/pkgs/applications/window-managers/i3/lock.nix @@ -2,11 +2,11 @@ pam, libX11, libev, cairo, libxkbcommon, libxkbfile }: stdenv.mkDerivation rec { - name = "i3lock-2.7"; + name = "i3lock-2.8"; src = fetchurl { url = "http://i3wm.org/i3lock/${name}.tar.bz2"; - sha256 = "1qlgafbyqjpqdfs50f2y0xphn2jdigafkqqsmpikk97cs0z1i0k8"; + sha256 = "028fc0f74df10826514d5a4ed38f6895935d1f5d47ca9fcffc64b076aaf6e2f4"; }; buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutilimage pam libX11 diff --git a/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix index 986d4058af9..e6c4b8c8202 100644 --- a/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix +++ b/pkgs/desktops/gnome-3/3.20/misc/gnome-tweak-tool/default.nix @@ -1,9 +1,11 @@ -{ stdenv, intltool, fetchurl, python, pygobject3, atk +{ stdenv, intltool, fetchurl, atk , pkgconfig, gtk3, glib, libsoup -, bash, makeWrapper, itstool, libxml2, python3Packages -, gnome3, librsvg, gdk_pixbuf, file, libnotify }: +, bash, makeWrapper, itstool, libxml2, python2Packages +, gnome3, librsvg, gdk_pixbuf, file, libnotify, gobjectIntrospection, wrapGAppsHook }: -stdenv.mkDerivation rec { +let + python = python2Packages.python.withPackages ( ps: with ps; [ pygobject3 ] ); +in stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; doCheck = true; @@ -15,17 +17,15 @@ stdenv.mkDerivation rec { buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 gnome3.gsettings_desktop_schemas makeWrapper file gdk_pixbuf gnome3.defaultIconTheme librsvg - python pygobject3 libnotify gnome3.gnome_shell + libnotify gnome3.gnome_shell libsoup gnome3.gnome_settings_daemon gnome3.nautilus - gnome3.gnome_desktop ]; + gnome3.gnome_desktop wrapGAppsHook ]; - preFixup = '' - wrapProgram "$out/bin/gnome-tweak-tool" \ - --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ - --suffix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ - --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ - --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)" - ''; + propagatedBuildInputs = [ python gobjectIntrospection ]; + + PYTHONPATH = "$out/${python.python.sitePackages}"; + + wrapPrefixVariables = [ "PYTHONPATH" ]; patches = [ ./find_gsettings.patch diff --git a/pkgs/desktops/kde-5/applications-16.04/ark/0001-fix-start-from-plasma.patch b/pkgs/desktops/kde-5/applications-16.04/ark/0001-fix-start-from-plasma.patch new file mode 100644 index 00000000000..7590e49c498 --- /dev/null +++ b/pkgs/desktops/kde-5/applications-16.04/ark/0001-fix-start-from-plasma.patch @@ -0,0 +1,10 @@ +--- a/app/org.kde.ark.desktop.cmake ++++ b/app/org.kde.ark.desktop.cmake +@@ -154,7 +154,6 @@ + Terminal=false + X-DBUS-StartupType=Multi + X-DBUS-ServiceName=org.kde.ark +-X-KDE-HasTempFileOption=true + Categories=Qt;KDE;Utility;Archiving;Compression;X-KDE-Utilities-File; + InitialPreference=3 + Comment=Work with file archives diff --git a/pkgs/desktops/kde-5/applications-16.04/ark.nix b/pkgs/desktops/kde-5/applications-16.04/ark/default.nix similarity index 92% rename from pkgs/desktops/kde-5/applications-16.04/ark.nix rename to pkgs/desktops/kde-5/applications-16.04/ark/default.nix index 331c8c647ca..4e68488b323 100644 --- a/pkgs/desktops/kde-5/applications-16.04/ark.nix +++ b/pkgs/desktops/kde-5/applications-16.04/ark/default.nix @@ -35,6 +35,9 @@ kdeApp { khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice kpty kwidgetsaddons libarchive ]; + patches = [ + ./0001-fix-start-from-plasma.patch + ]; postInstall = '' wrapQtProgram "$out/bin/ark" \ --prefix PATH : "${PATH}" diff --git a/pkgs/desktops/kde-5/applications-16.04/default.nix b/pkgs/desktops/kde-5/applications-16.04/default.nix index d66285deb8b..0db0c72a6f1 100644 --- a/pkgs/desktops/kde-5/applications-16.04/default.nix +++ b/pkgs/desktops/kde-5/applications-16.04/default.nix @@ -31,7 +31,7 @@ let kdelibs = callPackage ./kdelibs { inherit (pkgs) attica phonon; }; - ark = callPackage ./ark.nix {}; + ark = callPackage ./ark/default.nix {}; baloo-widgets = callPackage ./baloo-widgets.nix {}; dolphin = callPackage ./dolphin.nix {}; dolphin-plugins = callPackage ./dolphin-plugins.nix {}; diff --git a/pkgs/desktops/kde-5/frameworks-5.22/srcs.nix b/pkgs/desktops/kde-5/frameworks-5.22/srcs.nix deleted file mode 100644 index 156a11ba216..00000000000 --- a/pkgs/desktops/kde-5/frameworks-5.22/srcs.nix +++ /dev/null @@ -1,581 +0,0 @@ -# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh -{ fetchurl, mirror }: - -{ - attica = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/attica-5.22.0.tar.xz"; - sha256 = "1i26nwxyrb62icw49znlyz9y670cv7xvibzbdfnnxq9czsalwym7"; - name = "attica-5.22.0.tar.xz"; - }; - }; - baloo = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/baloo-5.22.0.tar.xz"; - sha256 = "0h51j41pa8b18jkdna0247z5alqfbvgfzlxc6s6p0c7g7658z0w3"; - name = "baloo-5.22.0.tar.xz"; - }; - }; - bluez-qt = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/bluez-qt-5.22.0.tar.xz"; - sha256 = "1lrkkg2f2qjj8cy968l3scdrvi506m5hr9x22d1zn6r12fvq6304"; - name = "bluez-qt-5.22.0.tar.xz"; - }; - }; - breeze-icons = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/breeze-icons-5.22.0.tar.xz"; - sha256 = "162698h01cs7116la4jfygn8ka4ffjmnv7nxjl6yhcqrs25nky7l"; - name = "breeze-icons-5.22.0.tar.xz"; - }; - }; - extra-cmake-modules = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/extra-cmake-modules-5.22.0.tar.xz"; - sha256 = "042ad7kp2ijp66gvz0q60glk95wj9f0fymrjyw68253rqynf3zj3"; - name = "extra-cmake-modules-5.22.0.tar.xz"; - }; - }; - frameworkintegration = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/frameworkintegration-5.22.0.tar.xz"; - sha256 = "0jf9y738r86ss520hqhfll8prrfpha73myj99hbz3sqrix7b0va9"; - name = "frameworkintegration-5.22.0.tar.xz"; - }; - }; - kactivities = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kactivities-5.22.0.tar.xz"; - sha256 = "068jhc6lw47hcibvys968m4wa1b278ccy2gas9iymzzys1ccv6kr"; - name = "kactivities-5.22.0.tar.xz"; - }; - }; - kactivities-stats = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kactivities-stats-5.22.0.tar.xz"; - sha256 = "1gx5wm337nwbwqb56xvl16vhk47v7a5qpx5hhn7ygpfxkgxh6wiq"; - name = "kactivities-stats-5.22.0.tar.xz"; - }; - }; - kapidox = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kapidox-5.22.0.tar.xz"; - sha256 = "0cs133g1rvbcrdvy7zvk5c14p5iwwn0x0m76c2ifal0g8qh0hmd1"; - name = "kapidox-5.22.0.tar.xz"; - }; - }; - karchive = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/karchive-5.22.0.tar.xz"; - sha256 = "1ywd38j6jpwj21kdp504gs0pfvlnvg6ak8hjk6a269pkci3dyf91"; - name = "karchive-5.22.0.tar.xz"; - }; - }; - kauth = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kauth-5.22.0.tar.xz"; - sha256 = "1c0kp25g57nldh1x5vfq9fypbznc991jrry2lydvb06d3jh44vbn"; - name = "kauth-5.22.0.tar.xz"; - }; - }; - kbookmarks = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kbookmarks-5.22.0.tar.xz"; - sha256 = "093rlg8pprjg7ba52dh2z9j2x5ir7s9kjas6ni4fqxxzpp15hh3p"; - name = "kbookmarks-5.22.0.tar.xz"; - }; - }; - kcmutils = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kcmutils-5.22.0.tar.xz"; - sha256 = "1s7gw9l2n92rrcdzy9pnwq8na65axd8bkk9nphyhpbxk76zj1gyy"; - name = "kcmutils-5.22.0.tar.xz"; - }; - }; - kcodecs = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kcodecs-5.22.0.tar.xz"; - sha256 = "0rlqs8m2ib2kkj679gn74zqqxzsddfcbywpgwlcd6b992i4cad87"; - name = "kcodecs-5.22.0.tar.xz"; - }; - }; - kcompletion = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kcompletion-5.22.0.tar.xz"; - sha256 = "07jqjrddigdqsdy2adzari7g626sakilg9d765s75vncv5amrvzy"; - name = "kcompletion-5.22.0.tar.xz"; - }; - }; - kconfig = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kconfig-5.22.0.tar.xz"; - sha256 = "0n0dzgba96pkabbvk1cfm34j9jirgbd84xha6adscpxs28506cg0"; - name = "kconfig-5.22.0.tar.xz"; - }; - }; - kconfigwidgets = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kconfigwidgets-5.22.0.tar.xz"; - sha256 = "0jr6ygd8c0gap2ay2685wj3fx4scrahzbpaaj4bjhq2s79nvmlyg"; - name = "kconfigwidgets-5.22.0.tar.xz"; - }; - }; - kcoreaddons = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kcoreaddons-5.22.0.tar.xz"; - sha256 = "0zzwcw0n9bd3pi3rv7cdwynb67x1bqf1bh3s59hjipf9d412wl15"; - name = "kcoreaddons-5.22.0.tar.xz"; - }; - }; - kcrash = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kcrash-5.22.0.tar.xz"; - sha256 = "1r0i9ngk5jypzfhhssjm5b3n5sqli3jhh896r1qwpfcq9w15x7qg"; - name = "kcrash-5.22.0.tar.xz"; - }; - }; - kdbusaddons = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdbusaddons-5.22.0.tar.xz"; - sha256 = "0w9spb5i5qi2r5kfgrylpvw6mwjxfhd4j7yslc9jy0q4y8j3f1dk"; - name = "kdbusaddons-5.22.0.tar.xz"; - }; - }; - kdeclarative = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdeclarative-5.22.0.tar.xz"; - sha256 = "06n6wqy8dm2hv6dbar453z4rmiyf6f34zak1fhs38sqkfy6syva1"; - name = "kdeclarative-5.22.0.tar.xz"; - }; - }; - kded = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kded-5.22.0.tar.xz"; - sha256 = "1zfggr6pmiypw5bnh6hr22agms589hm7hw35nhfhc4r7qd1drf6q"; - name = "kded-5.22.0.tar.xz"; - }; - }; - kdelibs4support = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/portingAids/kdelibs4support-5.22.0.tar.xz"; - sha256 = "1mmrr54kkicnz4pjksnrh40md80m18mr5ba2la7kwjxmdyl6znm3"; - name = "kdelibs4support-5.22.0.tar.xz"; - }; - }; - kdesignerplugin = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdesignerplugin-5.22.0.tar.xz"; - sha256 = "0cfnmpz845l39qpy5r6pknzm78js81bci9qi0xfnrf8gm3lvjg5l"; - name = "kdesignerplugin-5.22.0.tar.xz"; - }; - }; - kdesu = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdesu-5.22.0.tar.xz"; - sha256 = "1jsr9m32dyzvsvsy743h3jih8v4yyr2zf15hh908anbamp7449bd"; - name = "kdesu-5.22.0.tar.xz"; - }; - }; - kdewebkit = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdewebkit-5.22.0.tar.xz"; - sha256 = "0rmxa4j3jx7689jcf45fghh7jff16x34xrzrw0clg3fj4w47ik0b"; - name = "kdewebkit-5.22.0.tar.xz"; - }; - }; - kdnssd = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdnssd-5.22.0.tar.xz"; - sha256 = "1b0s5gwn51zh2h5w2mzpzjj86qaz6pl7gzqf5q88vpzsiqjg14vp"; - name = "kdnssd-5.22.0.tar.xz"; - }; - }; - kdoctools = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kdoctools-5.22.0.tar.xz"; - sha256 = "0y4ayms0hyj4nv5flr0a198lb545plfbxkwhqsmzc0c77gagcw5k"; - name = "kdoctools-5.22.0.tar.xz"; - }; - }; - kemoticons = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kemoticons-5.22.0.tar.xz"; - sha256 = "1swrpqm441ngmps00hr15pgvw1382zbf2q2ncndj7i30725nfq1g"; - name = "kemoticons-5.22.0.tar.xz"; - }; - }; - kfilemetadata = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kfilemetadata-5.22.0.tar.xz"; - sha256 = "0p6s1r2qv5396ghkw79wyf7yf4hzj562yp83wgplwmr6lgh4b2fc"; - name = "kfilemetadata-5.22.0.tar.xz"; - }; - }; - kglobalaccel = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kglobalaccel-5.22.0.tar.xz"; - sha256 = "1m1aviz5g0vwk58j0z9jckz4rzns7md7mr3zlqqpvp1r032qc30k"; - name = "kglobalaccel-5.22.0.tar.xz"; - }; - }; - kguiaddons = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kguiaddons-5.22.0.tar.xz"; - sha256 = "10chxcvf4hxyfkgprsj7rg4dv788dzqjgsm6m0a4m6qmx12zhckh"; - name = "kguiaddons-5.22.0.tar.xz"; - }; - }; - khtml = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/portingAids/khtml-5.22.0.tar.xz"; - sha256 = "1w5q41fjrqqq91j3dvhc9lrrhvrwy1izws6af7srh768gn6yig0m"; - name = "khtml-5.22.0.tar.xz"; - }; - }; - ki18n = { - version = "5.22.1"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/ki18n-5.22.1.tar.xz"; - sha256 = "0fasp8akj6wysn4acf9vyivcgb8x9dlnhkqmw7j0g7z1qgvjn4pv"; - name = "ki18n-5.22.1.tar.xz"; - }; - }; - kiconthemes = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kiconthemes-5.22.0.tar.xz"; - sha256 = "1bh76f7kpha4c5qs3n8z6g1qah0rsk99yqcz8j1dlss4ws65j9j3"; - name = "kiconthemes-5.22.0.tar.xz"; - }; - }; - kidletime = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kidletime-5.22.0.tar.xz"; - sha256 = "0dgw0rin6wz31xdspbjpvcs5x1b163ggqkz2zn73zavbr7f5jypc"; - name = "kidletime-5.22.0.tar.xz"; - }; - }; - kimageformats = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kimageformats-5.22.0.tar.xz"; - sha256 = "0g3f73m3yj5iqivcsn83pm32w4l13zbyzz5azgm3jjfhgnd00c18"; - name = "kimageformats-5.22.0.tar.xz"; - }; - }; - kinit = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kinit-5.22.0.tar.xz"; - sha256 = "1f71y6gf00p4jkqvpzyjlbnwc4gvjl2h4wi61xhpjz8lrmpsb6ac"; - name = "kinit-5.22.0.tar.xz"; - }; - }; - kio = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kio-5.22.0.tar.xz"; - sha256 = "02knylbs9ymb8qm7fkp3dkdqc9cvgw2dwfl4phzl1iax2fx2zkqy"; - name = "kio-5.22.0.tar.xz"; - }; - }; - kitemmodels = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kitemmodels-5.22.0.tar.xz"; - sha256 = "03gnglfhpzrc67bi0xdcy4xdhankic5cqnpahp9wwsis12ac6i83"; - name = "kitemmodels-5.22.0.tar.xz"; - }; - }; - kitemviews = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kitemviews-5.22.0.tar.xz"; - sha256 = "0nhwg7bmv1c8p6pnbfsz96mq9wbq339ir9yp7kfnhfrg0wqi44ar"; - name = "kitemviews-5.22.0.tar.xz"; - }; - }; - kjobwidgets = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kjobwidgets-5.22.0.tar.xz"; - sha256 = "1inqrb0j64b3519qcr0wk9izd4c1zi4kfjc8wa04s2kwxg6z7j1p"; - name = "kjobwidgets-5.22.0.tar.xz"; - }; - }; - kjs = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/portingAids/kjs-5.22.0.tar.xz"; - sha256 = "0xqlkhm8r021xd5a25nwp9a4r7cbjkpqkc89fjma8qyvq5785qxw"; - name = "kjs-5.22.0.tar.xz"; - }; - }; - kjsembed = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/portingAids/kjsembed-5.22.0.tar.xz"; - sha256 = "0fcc1lm5l8r0lj35r3niliyn8zxr90by2vjc9krzfm4i7kwij7wb"; - name = "kjsembed-5.22.0.tar.xz"; - }; - }; - kmediaplayer = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/portingAids/kmediaplayer-5.22.0.tar.xz"; - sha256 = "1pn3fmaixcxba1wl63hblhnpj7jblrala9j3xrj8z2abhhfl5vzy"; - name = "kmediaplayer-5.22.0.tar.xz"; - }; - }; - knewstuff = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/knewstuff-5.22.0.tar.xz"; - sha256 = "1gr566k95bg58hpn569kkarmlxk5rp12jcxdp7ksw1j8mp6la7a7"; - name = "knewstuff-5.22.0.tar.xz"; - }; - }; - knotifications = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/knotifications-5.22.0.tar.xz"; - sha256 = "0fh6ahfr9pa8643i1ma40h7afnd1jn0m6dw5f9hgndxhwi6h3bps"; - name = "knotifications-5.22.0.tar.xz"; - }; - }; - knotifyconfig = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/knotifyconfig-5.22.0.tar.xz"; - sha256 = "0p4g7wv2w6cpjzhlkh7rnzzhwcj86sgz98fl97is1fl65q8f0szr"; - name = "knotifyconfig-5.22.0.tar.xz"; - }; - }; - kpackage = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kpackage-5.22.0.tar.xz"; - sha256 = "1nbwjc4n8f2iisdckm5ll3qyls1sq02ia6vmhj4mfm4w44q4s1bk"; - name = "kpackage-5.22.0.tar.xz"; - }; - }; - kparts = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kparts-5.22.0.tar.xz"; - sha256 = "091wm2flhqgpqsffdd8nlwbdffvsj7cyd0c46949d9chm64723cg"; - name = "kparts-5.22.0.tar.xz"; - }; - }; - kpeople = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kpeople-5.22.0.tar.xz"; - sha256 = "0rbwxzmyaig92vcd26v1yqd13swk15pp0lpvjp6hdpxbhpxijyf7"; - name = "kpeople-5.22.0.tar.xz"; - }; - }; - kplotting = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kplotting-5.22.0.tar.xz"; - sha256 = "0ljiyxa2320v937lkqkxx3jc7sg45z4vjl74lxfybwspgs6y5hqk"; - name = "kplotting-5.22.0.tar.xz"; - }; - }; - kpty = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kpty-5.22.0.tar.xz"; - sha256 = "12lfwv45d06ksx5xc4hgk075mj2ckkqpc8mksx99f700yvcyk1db"; - name = "kpty-5.22.0.tar.xz"; - }; - }; - kross = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/portingAids/kross-5.22.0.tar.xz"; - sha256 = "1ika9ha06vspjn8hy6mv5vi5n7xj7sj45csmjjxcqwhn2wlcdj4l"; - name = "kross-5.22.0.tar.xz"; - }; - }; - krunner = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/krunner-5.22.0.tar.xz"; - sha256 = "09jhdy48dciqd8hwxmvjyw547fr48mzns5f0yknsnnb8a47yhrd4"; - name = "krunner-5.22.0.tar.xz"; - }; - }; - kservice = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kservice-5.22.0.tar.xz"; - sha256 = "1c5q8cxghbji3imamjbxymcd5cz9a9rapqriy1wmskys3ms3fag9"; - name = "kservice-5.22.0.tar.xz"; - }; - }; - ktexteditor = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/ktexteditor-5.22.0.tar.xz"; - sha256 = "1jsa8cfq0245bsris46i3k8f8g7l0sc5jpj4iwkxrl9m0nk5j1v0"; - name = "ktexteditor-5.22.0.tar.xz"; - }; - }; - ktextwidgets = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/ktextwidgets-5.22.0.tar.xz"; - sha256 = "01a2vkdpq06libap5g6a90jrcc0phmfd859kilraqyxhbrp9sw5l"; - name = "ktextwidgets-5.22.0.tar.xz"; - }; - }; - kunitconversion = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kunitconversion-5.22.0.tar.xz"; - sha256 = "1phbqxddp8ks36nr4982n4bwwx7d6yxll629gpb0ddc4yfsjv48p"; - name = "kunitconversion-5.22.0.tar.xz"; - }; - }; - kwallet = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kwallet-5.22.0.tar.xz"; - sha256 = "1i20kp1gkdiwmwy8vf7vd6r89qx6lpxwr6nib35khp93ci9l3838"; - name = "kwallet-5.22.0.tar.xz"; - }; - }; - kwayland = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kwayland-5.22.0.tar.xz"; - sha256 = "1jfibqai7vy1vklj19x7z0r4qc0rc7yd5r4wpp98mmdwzpnhlrgy"; - name = "kwayland-5.22.0.tar.xz"; - }; - }; - kwidgetsaddons = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kwidgetsaddons-5.22.0.tar.xz"; - sha256 = "1bwmnfa1l3s33nc6b0ryk78gxhrynyd07ffqw7mw211r34pg4c14"; - name = "kwidgetsaddons-5.22.0.tar.xz"; - }; - }; - kwindowsystem = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kwindowsystem-5.22.0.tar.xz"; - sha256 = "05jwmjqk03pc2g09rnyb9qh0dfi0c46awbaxgc7i7z4i9swv1k30"; - name = "kwindowsystem-5.22.0.tar.xz"; - }; - }; - kxmlgui = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kxmlgui-5.22.0.tar.xz"; - sha256 = "16q222jvnsd6pj49ih44qpks97lcjsamcpjg5x5ysn4a6w5h4mds"; - name = "kxmlgui-5.22.0.tar.xz"; - }; - }; - kxmlrpcclient = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/kxmlrpcclient-5.22.0.tar.xz"; - sha256 = "00qj4pa7r0ny6pwivq6qqw80v4dsg9lgwd2qdlp9kddi0f8i2p1b"; - name = "kxmlrpcclient-5.22.0.tar.xz"; - }; - }; - modemmanager-qt = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/modemmanager-qt-5.22.0.tar.xz"; - sha256 = "1b1gx33vrw7qcvy3zlc01x7wlalx5csfl590gfxlf870i3m7dnhf"; - name = "modemmanager-qt-5.22.0.tar.xz"; - }; - }; - networkmanager-qt = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/networkmanager-qt-5.22.0.tar.xz"; - sha256 = "03b710n4107qw9c3p7wdma9fz9vqixrjydfa02f7vgzw1rixmmqq"; - name = "networkmanager-qt-5.22.0.tar.xz"; - }; - }; - oxygen-icons5 = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/oxygen-icons5-5.22.0.tar.xz"; - sha256 = "1m3f5wrgahqlzzl3jyfymh6n515fsmsi8ckimvma2d8qqpb0dc2l"; - name = "oxygen-icons5-5.22.0.tar.xz"; - }; - }; - plasma-framework = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/plasma-framework-5.22.0.tar.xz"; - sha256 = "1wn7ib030dw8rj5dprl8bzz4c3dv4nlmrfb9wgr6x78w4ac967zc"; - name = "plasma-framework-5.22.0.tar.xz"; - }; - }; - solid = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/solid-5.22.0.tar.xz"; - sha256 = "04a7z5g2ylhbj2572wa6w51cs98ddn4d7lfirzawxf0f8d2693w2"; - name = "solid-5.22.0.tar.xz"; - }; - }; - sonnet = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/sonnet-5.22.0.tar.xz"; - sha256 = "0y8l3mfa65a59vjj424ga87q3bixx8inicp2jp9zi36p4g7xwww8"; - name = "sonnet-5.22.0.tar.xz"; - }; - }; - threadweaver = { - version = "5.22.0"; - src = fetchurl { - url = "${mirror}/stable/frameworks/5.22/threadweaver-5.22.0.tar.xz"; - sha256 = "1ax58k6nl8za79j99spa2r76m9xz8ih9iflksgpng40wlnkwlp59"; - name = "threadweaver-5.22.0.tar.xz"; - }; - }; -} diff --git a/pkgs/desktops/kde-5/frameworks-5.22/attica.nix b/pkgs/desktops/kde-5/frameworks-5.24/attica.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/attica.nix rename to pkgs/desktops/kde-5/frameworks-5.24/attica.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/baloo.nix b/pkgs/desktops/kde-5/frameworks-5.24/baloo.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/baloo.nix rename to pkgs/desktops/kde-5/frameworks-5.24/baloo.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/bluez-qt.nix b/pkgs/desktops/kde-5/frameworks-5.24/bluez-qt.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/bluez-qt.nix rename to pkgs/desktops/kde-5/frameworks-5.24/bluez-qt.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/breeze-icons.nix b/pkgs/desktops/kde-5/frameworks-5.24/breeze-icons.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/breeze-icons.nix rename to pkgs/desktops/kde-5/frameworks-5.24/breeze-icons.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/default.nix similarity index 99% rename from pkgs/desktops/kde-5/frameworks-5.22/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/default.nix index 4d0567846f8..851c142fe2d 100644 --- a/pkgs/desktops/kde-5/frameworks-5.22/default.nix +++ b/pkgs/desktops/kde-5/frameworks-5.24/default.nix @@ -106,6 +106,7 @@ let ktextwidgets = callPackage ./ktextwidgets.nix {}; kunitconversion = callPackage ./kunitconversion.nix {}; kwallet = callPackage ./kwallet.nix {}; + kwayland = callPackage ./kwayland.nix {}; kwidgetsaddons = callPackage ./kwidgetsaddons.nix {}; kwindowsystem = callPackage ./kwindowsystem.nix {}; kxmlgui = callPackage ./kxmlgui.nix {}; diff --git a/pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/nix-lib-path.patch b/pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/nix-lib-path.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/nix-lib-path.patch rename to pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/nix-lib-path.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/series b/pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/series rename to pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/setup-hook.sh similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/extra-cmake-modules/setup-hook.sh rename to pkgs/desktops/kde-5/frameworks-5.24/extra-cmake-modules/setup-hook.sh diff --git a/pkgs/desktops/kde-5/frameworks-5.22/frameworkintegration.nix b/pkgs/desktops/kde-5/frameworks-5.24/frameworkintegration.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/frameworkintegration.nix rename to pkgs/desktops/kde-5/frameworks-5.24/frameworkintegration.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kactivities-stats.nix b/pkgs/desktops/kde-5/frameworks-5.24/kactivities-stats.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kactivities-stats.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kactivities-stats.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kactivities.nix b/pkgs/desktops/kde-5/frameworks-5.24/kactivities.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kactivities.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kactivities.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kapidox.nix b/pkgs/desktops/kde-5/frameworks-5.24/kapidox.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kapidox.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kapidox.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/karchive.nix b/pkgs/desktops/kde-5/frameworks-5.24/karchive.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/karchive.nix rename to pkgs/desktops/kde-5/frameworks-5.24/karchive.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kauth/cmake-install-paths.patch b/pkgs/desktops/kde-5/frameworks-5.24/kauth/cmake-install-paths.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kauth/cmake-install-paths.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kauth/cmake-install-paths.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kauth/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kauth/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kauth/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kauth/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kauth/series b/pkgs/desktops/kde-5/frameworks-5.24/kauth/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kauth/series rename to pkgs/desktops/kde-5/frameworks-5.24/kauth/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kbookmarks.nix b/pkgs/desktops/kde-5/frameworks-5.24/kbookmarks.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kbookmarks.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kbookmarks.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kcmutils/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.24/kcmutils/0001-qdiriterator-follow-symlinks.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kcmutils/0001-qdiriterator-follow-symlinks.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kcmutils/0001-qdiriterator-follow-symlinks.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kcmutils/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kcmutils/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kcmutils/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kcmutils/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kcodecs.nix b/pkgs/desktops/kde-5/frameworks-5.24/kcodecs.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kcodecs.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kcodecs.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kcompletion.nix b/pkgs/desktops/kde-5/frameworks-5.24/kcompletion.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kcompletion.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kcompletion.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kconfig.nix b/pkgs/desktops/kde-5/frameworks-5.24/kconfig.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kconfig.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kconfig.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.24/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kconfigwidgets/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kconfigwidgets/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kconfigwidgets/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kconfigwidgets/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kcoreaddons.nix b/pkgs/desktops/kde-5/frameworks-5.24/kcoreaddons.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kcoreaddons.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kcoreaddons.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kcrash.nix b/pkgs/desktops/kde-5/frameworks-5.24/kcrash.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kcrash.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kcrash.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdbusaddons.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdbusaddons.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdbusaddons.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdbusaddons.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdeclarative.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdeclarative.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdeclarative.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdeclarative.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kded.nix b/pkgs/desktops/kde-5/frameworks-5.24/kded.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kded.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kded.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/nix-kde-include-dir.patch b/pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/nix-kde-include-dir.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/nix-kde-include-dir.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/nix-kde-include-dir.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/series b/pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/series rename to pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/setup-hook.sh similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdelibs4support/setup-hook.sh rename to pkgs/desktops/kde-5/frameworks-5.24/kdelibs4support/setup-hook.sh diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdesignerplugin.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdesignerplugin.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdesignerplugin.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdesignerplugin.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdesu.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdesu.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdesu.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdesu.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdnssd.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdnssd.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdnssd.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdnssd.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdoctools/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kdoctools/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdoctools/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kdoctools/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdoctools/kdoctools-no-find-docbook-xml.patch b/pkgs/desktops/kde-5/frameworks-5.24/kdoctools/kdoctools-no-find-docbook-xml.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdoctools/kdoctools-no-find-docbook-xml.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kdoctools/kdoctools-no-find-docbook-xml.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kdoctools/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.24/kdoctools/setup-hook.sh similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kdoctools/setup-hook.sh rename to pkgs/desktops/kde-5/frameworks-5.24/kdoctools/setup-hook.sh diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kemoticons.nix b/pkgs/desktops/kde-5/frameworks-5.24/kemoticons.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kemoticons.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kemoticons.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kfilemetadata/cmake-install-paths.patch b/pkgs/desktops/kde-5/frameworks-5.24/kfilemetadata/cmake-install-paths.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kfilemetadata/cmake-install-paths.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kfilemetadata/cmake-install-paths.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kfilemetadata/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kfilemetadata/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kfilemetadata/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kfilemetadata/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kfilemetadata/series b/pkgs/desktops/kde-5/frameworks-5.24/kfilemetadata/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kfilemetadata/series rename to pkgs/desktops/kde-5/frameworks-5.24/kfilemetadata/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kglobalaccel.nix b/pkgs/desktops/kde-5/frameworks-5.24/kglobalaccel.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kglobalaccel.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kglobalaccel.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kguiaddons.nix b/pkgs/desktops/kde-5/frameworks-5.24/kguiaddons.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kguiaddons.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kguiaddons.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/khtml.nix b/pkgs/desktops/kde-5/frameworks-5.24/khtml.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/khtml.nix rename to pkgs/desktops/kde-5/frameworks-5.24/khtml.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/ki18n.nix b/pkgs/desktops/kde-5/frameworks-5.24/ki18n.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/ki18n.nix rename to pkgs/desktops/kde-5/frameworks-5.24/ki18n.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/default-theme-breeze.patch b/pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/default-theme-breeze.patch similarity index 91% rename from pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/default-theme-breeze.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/default-theme-breeze.patch index 5b3b15d5d5b..f7cb0ea3aac 100644 --- a/pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/default-theme-breeze.patch +++ b/pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/default-theme-breeze.patch @@ -6,7 +6,7 @@ Index: kiconthemes-5.17.0/src/kicontheme.cpp // static QString KIconTheme::defaultThemeName() { -- return QStringLiteral("oxygen"); +- return QStringLiteral("hicolor"); + return QStringLiteral("breeze"); } diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/default.nix similarity index 70% rename from pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/default.nix index 4e868480636..825b15c8177 100644 --- a/pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/default.nix +++ b/pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/default.nix @@ -1,6 +1,6 @@ { kdeFramework, lib, copyPathsToStore , extra-cmake-modules, makeQtWrapper -, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg +, karchive, kconfigwidgets, ki18n, breeze-icons, kitemviews, qtsvg }: kdeFramework { @@ -8,7 +8,7 @@ kdeFramework { meta = { maintainers = [ lib.maintainers.ttuegel ]; }; patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); nativeBuildInputs = [ extra-cmake-modules makeQtWrapper ]; - propagatedBuildInputs = [ breeze-icons kconfigwidgets ki18n kitemviews qtsvg ]; + propagatedBuildInputs = [ breeze-icons kconfigwidgets karchive ki18n kitemviews qtsvg ]; postInstall = '' wrapQtProgram "$out/bin/kiconfinder5" ''; diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/series b/pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kiconthemes/series rename to pkgs/desktops/kde-5/frameworks-5.24/kiconthemes/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kidletime.nix b/pkgs/desktops/kde-5/frameworks-5.24/kidletime.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kidletime.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kidletime.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kimageformats.nix b/pkgs/desktops/kde-5/frameworks-5.24/kimageformats.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kimageformats.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kimageformats.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kinit/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kinit/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kinit/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kinit/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kinit/kinit-libpath.patch b/pkgs/desktops/kde-5/frameworks-5.24/kinit/kinit-libpath.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kinit/kinit-libpath.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kinit/kinit-libpath.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kinit/series b/pkgs/desktops/kde-5/frameworks-5.24/kinit/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kinit/series rename to pkgs/desktops/kde-5/frameworks-5.24/kinit/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kio/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kio/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kio/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kio/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kio/samba-search-path.patch b/pkgs/desktops/kde-5/frameworks-5.24/kio/samba-search-path.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kio/samba-search-path.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kio/samba-search-path.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kio/series b/pkgs/desktops/kde-5/frameworks-5.24/kio/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kio/series rename to pkgs/desktops/kde-5/frameworks-5.24/kio/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kitemmodels.nix b/pkgs/desktops/kde-5/frameworks-5.24/kitemmodels.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kitemmodels.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kitemmodels.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kitemviews.nix b/pkgs/desktops/kde-5/frameworks-5.24/kitemviews.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kitemviews.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kitemviews.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kjobwidgets.nix b/pkgs/desktops/kde-5/frameworks-5.24/kjobwidgets.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kjobwidgets.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kjobwidgets.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kjs.nix b/pkgs/desktops/kde-5/frameworks-5.24/kjs.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kjs.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kjs.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kjsembed.nix b/pkgs/desktops/kde-5/frameworks-5.24/kjsembed.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kjsembed.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kjsembed.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kmediaplayer.nix b/pkgs/desktops/kde-5/frameworks-5.24/kmediaplayer.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kmediaplayer.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kmediaplayer.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/knewstuff.nix b/pkgs/desktops/kde-5/frameworks-5.24/knewstuff.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/knewstuff.nix rename to pkgs/desktops/kde-5/frameworks-5.24/knewstuff.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/knotifications.nix b/pkgs/desktops/kde-5/frameworks-5.24/knotifications.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/knotifications.nix rename to pkgs/desktops/kde-5/frameworks-5.24/knotifications.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/knotifyconfig.nix b/pkgs/desktops/kde-5/frameworks-5.24/knotifyconfig.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/knotifyconfig.nix rename to pkgs/desktops/kde-5/frameworks-5.24/knotifyconfig.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kpackage/allow-external-paths.patch b/pkgs/desktops/kde-5/frameworks-5.24/kpackage/allow-external-paths.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kpackage/allow-external-paths.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kpackage/allow-external-paths.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kpackage/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kpackage/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kpackage/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kpackage/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.24/kpackage/qdiriterator-follow-symlinks.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kpackage/qdiriterator-follow-symlinks.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kpackage/qdiriterator-follow-symlinks.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kpackage/series b/pkgs/desktops/kde-5/frameworks-5.24/kpackage/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kpackage/series rename to pkgs/desktops/kde-5/frameworks-5.24/kpackage/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kparts.nix b/pkgs/desktops/kde-5/frameworks-5.24/kparts.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kparts.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kparts.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kpeople.nix b/pkgs/desktops/kde-5/frameworks-5.24/kpeople.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kpeople.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kpeople.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kplotting.nix b/pkgs/desktops/kde-5/frameworks-5.24/kplotting.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kplotting.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kplotting.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kpty.nix b/pkgs/desktops/kde-5/frameworks-5.24/kpty.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kpty.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kpty.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kross.nix b/pkgs/desktops/kde-5/frameworks-5.24/kross.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kross.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kross.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/krunner.nix b/pkgs/desktops/kde-5/frameworks-5.24/krunner.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/krunner.nix rename to pkgs/desktops/kde-5/frameworks-5.24/krunner.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kservice/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/kservice/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kservice/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kservice/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kservice/no-canonicalize-path.patch b/pkgs/desktops/kde-5/frameworks-5.24/kservice/no-canonicalize-path.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kservice/no-canonicalize-path.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kservice/no-canonicalize-path.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kservice/qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/frameworks-5.24/kservice/qdiriterator-follow-symlinks.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kservice/qdiriterator-follow-symlinks.patch rename to pkgs/desktops/kde-5/frameworks-5.24/kservice/qdiriterator-follow-symlinks.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kservice/series b/pkgs/desktops/kde-5/frameworks-5.24/kservice/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kservice/series rename to pkgs/desktops/kde-5/frameworks-5.24/kservice/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kservice/setup-hook.sh b/pkgs/desktops/kde-5/frameworks-5.24/kservice/setup-hook.sh similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kservice/setup-hook.sh rename to pkgs/desktops/kde-5/frameworks-5.24/kservice/setup-hook.sh diff --git a/pkgs/desktops/kde-5/frameworks-5.22/ktexteditor/default.nix b/pkgs/desktops/kde-5/frameworks-5.24/ktexteditor/default.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/ktexteditor/default.nix rename to pkgs/desktops/kde-5/frameworks-5.24/ktexteditor/default.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/ktexteditor/no-qcoreapplication.patch b/pkgs/desktops/kde-5/frameworks-5.24/ktexteditor/no-qcoreapplication.patch similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/ktexteditor/no-qcoreapplication.patch rename to pkgs/desktops/kde-5/frameworks-5.24/ktexteditor/no-qcoreapplication.patch diff --git a/pkgs/desktops/kde-5/frameworks-5.22/ktexteditor/series b/pkgs/desktops/kde-5/frameworks-5.24/ktexteditor/series similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/ktexteditor/series rename to pkgs/desktops/kde-5/frameworks-5.24/ktexteditor/series diff --git a/pkgs/desktops/kde-5/frameworks-5.22/ktextwidgets.nix b/pkgs/desktops/kde-5/frameworks-5.24/ktextwidgets.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/ktextwidgets.nix rename to pkgs/desktops/kde-5/frameworks-5.24/ktextwidgets.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kunitconversion.nix b/pkgs/desktops/kde-5/frameworks-5.24/kunitconversion.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kunitconversion.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kunitconversion.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kwallet.nix b/pkgs/desktops/kde-5/frameworks-5.24/kwallet.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kwallet.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kwallet.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kwayland.nix b/pkgs/desktops/kde-5/frameworks-5.24/kwayland.nix similarity index 83% rename from pkgs/desktops/kde-5/plasma-5.6/kwayland.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kwayland.nix index 3c2788237fc..db332841308 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/kwayland.nix +++ b/pkgs/desktops/kde-5/frameworks-5.24/kwayland.nix @@ -1,9 +1,9 @@ -{ plasmaPackage +{ kdeFramework , extra-cmake-modules , wayland }: -plasmaPackage { +kdeFramework { name = "kwayland"; nativeBuildInputs = [ extra-cmake-modules diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kwidgetsaddons.nix b/pkgs/desktops/kde-5/frameworks-5.24/kwidgetsaddons.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kwidgetsaddons.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kwidgetsaddons.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kwindowsystem.nix b/pkgs/desktops/kde-5/frameworks-5.24/kwindowsystem.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kwindowsystem.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kwindowsystem.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kxmlgui.nix b/pkgs/desktops/kde-5/frameworks-5.24/kxmlgui.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kxmlgui.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kxmlgui.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/kxmlrpcclient.nix b/pkgs/desktops/kde-5/frameworks-5.24/kxmlrpcclient.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/kxmlrpcclient.nix rename to pkgs/desktops/kde-5/frameworks-5.24/kxmlrpcclient.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/modemmanager-qt.nix b/pkgs/desktops/kde-5/frameworks-5.24/modemmanager-qt.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/modemmanager-qt.nix rename to pkgs/desktops/kde-5/frameworks-5.24/modemmanager-qt.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/networkmanager-qt.nix b/pkgs/desktops/kde-5/frameworks-5.24/networkmanager-qt.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/networkmanager-qt.nix rename to pkgs/desktops/kde-5/frameworks-5.24/networkmanager-qt.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/oxygen-icons5.nix b/pkgs/desktops/kde-5/frameworks-5.24/oxygen-icons5.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/oxygen-icons5.nix rename to pkgs/desktops/kde-5/frameworks-5.24/oxygen-icons5.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/plasma-framework.nix b/pkgs/desktops/kde-5/frameworks-5.24/plasma-framework.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/plasma-framework.nix rename to pkgs/desktops/kde-5/frameworks-5.24/plasma-framework.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/solid.nix b/pkgs/desktops/kde-5/frameworks-5.24/solid.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/solid.nix rename to pkgs/desktops/kde-5/frameworks-5.24/solid.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.22/sonnet.nix b/pkgs/desktops/kde-5/frameworks-5.24/sonnet.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/sonnet.nix rename to pkgs/desktops/kde-5/frameworks-5.24/sonnet.nix diff --git a/pkgs/desktops/kde-5/frameworks-5.24/srcs.nix b/pkgs/desktops/kde-5/frameworks-5.24/srcs.nix new file mode 100644 index 00000000000..5c48ece1e99 --- /dev/null +++ b/pkgs/desktops/kde-5/frameworks-5.24/srcs.nix @@ -0,0 +1,581 @@ +# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh +{ fetchurl, mirror }: + +{ + attica = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/attica-5.24.0.tar.xz"; + sha256 = "0d368gmds7m7k5pnn625wqsij38cvxk1gkm4zv24phnk9f67v7cw"; + name = "attica-5.24.0.tar.xz"; + }; + }; + baloo = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/baloo-5.24.0.tar.xz"; + sha256 = "1ayfdg6j9lvas17ryjdv4a0kaj6vw3bxfy2x9nadl0gkc9pak4nh"; + name = "baloo-5.24.0.tar.xz"; + }; + }; + bluez-qt = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/bluez-qt-5.24.0.tar.xz"; + sha256 = "0gy0m7lcwwklf021l5i3v7j0cl7qz7cgvzrwpj87ix3kyw5xs80z"; + name = "bluez-qt-5.24.0.tar.xz"; + }; + }; + breeze-icons = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/breeze-icons-5.24.0.tar.xz"; + sha256 = "1dh7bijx99sdb3vn6394wmm5cq0fvvmz8h17sx4hakmbga849cx2"; + name = "breeze-icons-5.24.0.tar.xz"; + }; + }; + extra-cmake-modules = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/extra-cmake-modules-5.24.0.tar.xz"; + sha256 = "01m12ml529pwr2sal951r5z6yb1rwbpid1y4k14nlk3xqgmdakwa"; + name = "extra-cmake-modules-5.24.0.tar.xz"; + }; + }; + frameworkintegration = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/frameworkintegration-5.24.0.tar.xz"; + sha256 = "0brqgq05m06d98qqvyh30727f5z7hlzxgqysfhfvqzcf3x7f6yzj"; + name = "frameworkintegration-5.24.0.tar.xz"; + }; + }; + kactivities = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kactivities-5.24.0.tar.xz"; + sha256 = "0s8g43zk6h35bq1am1nnhj0qvmhd6kz42gs8l7ybga0367jghzhf"; + name = "kactivities-5.24.0.tar.xz"; + }; + }; + kactivities-stats = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kactivities-stats-5.24.0.tar.xz"; + sha256 = "1z3xvpifxbd05b2xaxxyiypcpid7jgjb1qpwiyjj1gnfp4rjmzpc"; + name = "kactivities-stats-5.24.0.tar.xz"; + }; + }; + kapidox = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kapidox-5.24.0.tar.xz"; + sha256 = "19a7alvn71nxflsyi7y3hghx1iw04qqc77qy54mcxcpkiyvpsggf"; + name = "kapidox-5.24.0.tar.xz"; + }; + }; + karchive = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/karchive-5.24.0.tar.xz"; + sha256 = "1n5nfhrfvqnrdjgjjy7arqik4fya5bp3dvxa16mlhqr19azkavzq"; + name = "karchive-5.24.0.tar.xz"; + }; + }; + kauth = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kauth-5.24.0.tar.xz"; + sha256 = "14sjjfgl3arqyqcr77w9qhpnd8mrnh53r5rfss6bvlk26bmihs49"; + name = "kauth-5.24.0.tar.xz"; + }; + }; + kbookmarks = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kbookmarks-5.24.0.tar.xz"; + sha256 = "10d8dnhvbrwp0dbmz93cqfdff6ir8iy3yiwaf9ihj6ma124qlyjn"; + name = "kbookmarks-5.24.0.tar.xz"; + }; + }; + kcmutils = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kcmutils-5.24.0.tar.xz"; + sha256 = "0aws1c76s6wbp0xpr6qv6cfwq8dw82v00pkf9gy84sbxknwjnizk"; + name = "kcmutils-5.24.0.tar.xz"; + }; + }; + kcodecs = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kcodecs-5.24.0.tar.xz"; + sha256 = "1qpzjh3qc2zz80j2bmlinipbispms14k9bmqw8v61zhi6in9z14c"; + name = "kcodecs-5.24.0.tar.xz"; + }; + }; + kcompletion = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kcompletion-5.24.0.tar.xz"; + sha256 = "1qln0v31gn86kzwhnkijr1ydf129n32jmiybbckrp4w6hyx6xfxv"; + name = "kcompletion-5.24.0.tar.xz"; + }; + }; + kconfig = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kconfig-5.24.0.tar.xz"; + sha256 = "1dc2i6icyigw1j6qxgdza6j2g8afh390qmxsa2a54mwl84fkfmxv"; + name = "kconfig-5.24.0.tar.xz"; + }; + }; + kconfigwidgets = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kconfigwidgets-5.24.0.tar.xz"; + sha256 = "0v25r50gh5i984lzlv0rradghglcfqf0gsfmnkn23h87b86fm9l2"; + name = "kconfigwidgets-5.24.0.tar.xz"; + }; + }; + kcoreaddons = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kcoreaddons-5.24.0.tar.xz"; + sha256 = "06sx7by3nvaridnavj5p0bxv4nh47n708jlacfw8ydaikmd9i03h"; + name = "kcoreaddons-5.24.0.tar.xz"; + }; + }; + kcrash = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kcrash-5.24.0.tar.xz"; + sha256 = "1lahgfwlp9b5rsl244kzp7rsl4ybv1q4qlvpv0xxz5ygssk48l0w"; + name = "kcrash-5.24.0.tar.xz"; + }; + }; + kdbusaddons = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdbusaddons-5.24.0.tar.xz"; + sha256 = "183nxqrhz4qk4qfp1w4an0scp2dvfqcaqbpg4cgbgk0z590q0pkk"; + name = "kdbusaddons-5.24.0.tar.xz"; + }; + }; + kdeclarative = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdeclarative-5.24.0.tar.xz"; + sha256 = "00ik9q1r6y6g5rkdq96yczgrxmcg85x00lipyljvc3x6xw6bixbz"; + name = "kdeclarative-5.24.0.tar.xz"; + }; + }; + kded = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kded-5.24.0.tar.xz"; + sha256 = "0ngpxdxb596myn5r4kjxahx195bwklq33yvgjvcbxi2clg2wccaj"; + name = "kded-5.24.0.tar.xz"; + }; + }; + kdelibs4support = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/portingAids/kdelibs4support-5.24.0.tar.xz"; + sha256 = "12sis63mq6i372bhx64x8y0pw6czrv64hdhjscx27cx65a4ir451"; + name = "kdelibs4support-5.24.0.tar.xz"; + }; + }; + kdesignerplugin = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdesignerplugin-5.24.0.tar.xz"; + sha256 = "0i0s8pwwhwh5hyyvkv0cnj0yyv0g5bnm5xw18knv2yagiy4bvb2j"; + name = "kdesignerplugin-5.24.0.tar.xz"; + }; + }; + kdesu = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdesu-5.24.0.tar.xz"; + sha256 = "1ivcnhgvq75xvl0w9g7m45qzallz42ijaq0n1ap09lpdfmjbnrxk"; + name = "kdesu-5.24.0.tar.xz"; + }; + }; + kdewebkit = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdewebkit-5.24.0.tar.xz"; + sha256 = "1xq36zv7vnllhqbisl6kcna8z6qzlvy29a47g0hbzgl8rc93qskf"; + name = "kdewebkit-5.24.0.tar.xz"; + }; + }; + kdnssd = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdnssd-5.24.0.tar.xz"; + sha256 = "01b650g031apxc3vd2m91g2fxqk9l8ap67z6rafniphfwy8i0d5m"; + name = "kdnssd-5.24.0.tar.xz"; + }; + }; + kdoctools = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kdoctools-5.24.0.tar.xz"; + sha256 = "1r129kpq0d11b9l87cqbal6fm5ycwhsps1g3r1a7jsxz70scz4ri"; + name = "kdoctools-5.24.0.tar.xz"; + }; + }; + kemoticons = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kemoticons-5.24.0.tar.xz"; + sha256 = "0gmc52k5jb553jvzxwsq79v5y87kgav8i5qqv4bqc9yl7p866zhn"; + name = "kemoticons-5.24.0.tar.xz"; + }; + }; + kfilemetadata = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kfilemetadata-5.24.0.tar.xz"; + sha256 = "02n9qhpr0jlwdgdbid0k34abhs3bzhlsa56ybl5dq1aib6izk1sy"; + name = "kfilemetadata-5.24.0.tar.xz"; + }; + }; + kglobalaccel = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kglobalaccel-5.24.0.tar.xz"; + sha256 = "123v0ld1q88hbm3d0mqgq6lcivfkqh7pbz4hb4n76ab5v43qc15c"; + name = "kglobalaccel-5.24.0.tar.xz"; + }; + }; + kguiaddons = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kguiaddons-5.24.0.tar.xz"; + sha256 = "0ig96ah20ybg5rwpswj9va2klvkh2q4amwxmgy3z4niwfsm2g3ic"; + name = "kguiaddons-5.24.0.tar.xz"; + }; + }; + khtml = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/portingAids/khtml-5.24.0.tar.xz"; + sha256 = "0f19m8ycaa41p61i0j43gafn364abral8dbiqhr0qcj33nsa4134"; + name = "khtml-5.24.0.tar.xz"; + }; + }; + ki18n = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/ki18n-5.24.0.tar.xz"; + sha256 = "0cw24spmwsqa3ppkw03cm6yjd3sfll0dbbk2ya76fd4nw9hb00dv"; + name = "ki18n-5.24.0.tar.xz"; + }; + }; + kiconthemes = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kiconthemes-5.24.0.tar.xz"; + sha256 = "1k5zig2n6wzfyv6pc8dpas2862mxjyxxza00m31myrfw5i1a1h6m"; + name = "kiconthemes-5.24.0.tar.xz"; + }; + }; + kidletime = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kidletime-5.24.0.tar.xz"; + sha256 = "09jsj0pj27h93nr8v46savs6b93h8frydinfr7wlijkvpsl02jb4"; + name = "kidletime-5.24.0.tar.xz"; + }; + }; + kimageformats = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kimageformats-5.24.0.tar.xz"; + sha256 = "12mhgckmhnvcnm8k7mk15mipxrnm7i9ip7ykbjh8nxjiwyk1pmwc"; + name = "kimageformats-5.24.0.tar.xz"; + }; + }; + kinit = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kinit-5.24.0.tar.xz"; + sha256 = "1i7l6gid5hrrfglw1c461gpjg51dwz7cl4lx7ll8vz2ha8mz4d3n"; + name = "kinit-5.24.0.tar.xz"; + }; + }; + kio = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kio-5.24.0.tar.xz"; + sha256 = "0zncj9yf8zaylazlwvirylpk9vki3j889b1x2s0aav54vvj7vdi5"; + name = "kio-5.24.0.tar.xz"; + }; + }; + kitemmodels = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kitemmodels-5.24.0.tar.xz"; + sha256 = "1s1p4nw1pqdzbdwvjnka17p9avf00wadr437p4f96md1lvh3sh69"; + name = "kitemmodels-5.24.0.tar.xz"; + }; + }; + kitemviews = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kitemviews-5.24.0.tar.xz"; + sha256 = "0y3fx9hk1x27arrmwfzq783a44cs7p8dpmhxrwzh0di4mwa8jafw"; + name = "kitemviews-5.24.0.tar.xz"; + }; + }; + kjobwidgets = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kjobwidgets-5.24.0.tar.xz"; + sha256 = "1mcvrz66xcqjgbp08zpqsf943cm462wbqm5gh719p9s25hx8hwrc"; + name = "kjobwidgets-5.24.0.tar.xz"; + }; + }; + kjs = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/portingAids/kjs-5.24.0.tar.xz"; + sha256 = "1qd5sdfrdg7id0g5mwf3ijwlfvh3g36kwnckw6kwns1nf4q6gwlz"; + name = "kjs-5.24.0.tar.xz"; + }; + }; + kjsembed = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/portingAids/kjsembed-5.24.0.tar.xz"; + sha256 = "1nx8ch8mzd1jyx8pd46364ij0bsbsclbipbgr6jm9aak3n13b0nw"; + name = "kjsembed-5.24.0.tar.xz"; + }; + }; + kmediaplayer = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/portingAids/kmediaplayer-5.24.0.tar.xz"; + sha256 = "147xrffkvkyv3h8ighc1vlwksysfrqc0g55k8zrd72l6r0kjjh0p"; + name = "kmediaplayer-5.24.0.tar.xz"; + }; + }; + knewstuff = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/knewstuff-5.24.0.tar.xz"; + sha256 = "0xdv3wh3100vzsx8p2zihy1dvh0wzfmrjkjq71v8igwz5d291zsj"; + name = "knewstuff-5.24.0.tar.xz"; + }; + }; + knotifications = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/knotifications-5.24.0.tar.xz"; + sha256 = "0qryp41phnpx4r9wa6rfhmnzy7nxl0ijnyrafadf2n2xb53ipkpa"; + name = "knotifications-5.24.0.tar.xz"; + }; + }; + knotifyconfig = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/knotifyconfig-5.24.0.tar.xz"; + sha256 = "1dij841fnqia4p44x2wnpdvl8cn3nkj833y0fah50fmipjc8r70b"; + name = "knotifyconfig-5.24.0.tar.xz"; + }; + }; + kpackage = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kpackage-5.24.0.tar.xz"; + sha256 = "03aqzkpqz3c1v4qgwfbs3ncdbapiyg7psrkhxqv3z48rklavk1ri"; + name = "kpackage-5.24.0.tar.xz"; + }; + }; + kparts = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kparts-5.24.0.tar.xz"; + sha256 = "0z7qr93aq02i7g7cxgypx2rzlnsvbsx9cjblb0ijmad1nb8w3mix"; + name = "kparts-5.24.0.tar.xz"; + }; + }; + kpeople = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kpeople-5.24.0.tar.xz"; + sha256 = "0iknzkj23y927xh24kw5sjxyirhy6pkmfcmmgwzd78rba8a54qp2"; + name = "kpeople-5.24.0.tar.xz"; + }; + }; + kplotting = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kplotting-5.24.0.tar.xz"; + sha256 = "0gpypq9kh4b5s6dc7py3m117k3nbxczsfkxgxd9zxvr35kig7ya2"; + name = "kplotting-5.24.0.tar.xz"; + }; + }; + kpty = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kpty-5.24.0.tar.xz"; + sha256 = "1ybvdzqpa53kkki9p5da0ff9x3c63rmksk7865wqwlgy8apzi2fs"; + name = "kpty-5.24.0.tar.xz"; + }; + }; + kross = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/portingAids/kross-5.24.0.tar.xz"; + sha256 = "0f29dpmfcj173vqnmrbpvdmfmzzbfsds1lbl546qfx9a5acdpf2p"; + name = "kross-5.24.0.tar.xz"; + }; + }; + krunner = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/krunner-5.24.0.tar.xz"; + sha256 = "0ff87ijjd47jxf6zw2ggqgngnbyx1rj59wdfgy5wbi3acws6bafl"; + name = "krunner-5.24.0.tar.xz"; + }; + }; + kservice = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kservice-5.24.0.tar.xz"; + sha256 = "0w0nsg64d6xhgijr2vh0j5p544qi0q55jpqa9v9mv956zrrdssdk"; + name = "kservice-5.24.0.tar.xz"; + }; + }; + ktexteditor = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/ktexteditor-5.24.0.tar.xz"; + sha256 = "1ykj1kvm7k1vxb1w235d5hp2swwdqjyp2y4c3pxbvkn999h9x5q5"; + name = "ktexteditor-5.24.0.tar.xz"; + }; + }; + ktextwidgets = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/ktextwidgets-5.24.0.tar.xz"; + sha256 = "1q10xav2gkii6s3m31c9xvxf1988l7k2lpib6pyhgsidflmwjm02"; + name = "ktextwidgets-5.24.0.tar.xz"; + }; + }; + kunitconversion = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kunitconversion-5.24.0.tar.xz"; + sha256 = "03dfjn4lm6sl2zcdrvw0b9irzvkyc2w2j5xixag5j8nw373742h8"; + name = "kunitconversion-5.24.0.tar.xz"; + }; + }; + kwallet = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kwallet-5.24.0.tar.xz"; + sha256 = "0zad5h4vsvcl2xv3vxsjwh42b71xbp6x6rj8cvmw8szr2rzz9gsx"; + name = "kwallet-5.24.0.tar.xz"; + }; + }; + kwayland = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kwayland-5.24.0.tar.xz"; + sha256 = "1h5anbqrxcl1s8kx1l53vcsfr8ifamcjqd47dk8a7lwr1ga6myq2"; + name = "kwayland-5.24.0.tar.xz"; + }; + }; + kwidgetsaddons = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kwidgetsaddons-5.24.0.tar.xz"; + sha256 = "1kppx0ppfhnb6q6sijs2dffyar86wkkx8miqavsjsgw1l2wiymcx"; + name = "kwidgetsaddons-5.24.0.tar.xz"; + }; + }; + kwindowsystem = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kwindowsystem-5.24.0.tar.xz"; + sha256 = "0w5ym8msl80v3q65253pdpj9f1fmb658rnndlbkrgpmm1rv1n6dz"; + name = "kwindowsystem-5.24.0.tar.xz"; + }; + }; + kxmlgui = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kxmlgui-5.24.0.tar.xz"; + sha256 = "1qhixldhhcbklmrpjh67440h1rrzqy70h57hw6ialjdsr3pl6ihp"; + name = "kxmlgui-5.24.0.tar.xz"; + }; + }; + kxmlrpcclient = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/kxmlrpcclient-5.24.0.tar.xz"; + sha256 = "06ap6ipzqimz1rfrcr7z8zc7idy7sg4a97dws7h52i34ms7jqnc8"; + name = "kxmlrpcclient-5.24.0.tar.xz"; + }; + }; + modemmanager-qt = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/modemmanager-qt-5.24.0.tar.xz"; + sha256 = "0khz5bf84xxa8aqpzwb6x839xx6dbiadwqhyj7cvgha65fh2xinh"; + name = "modemmanager-qt-5.24.0.tar.xz"; + }; + }; + networkmanager-qt = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/networkmanager-qt-5.24.0.tar.xz"; + sha256 = "11wy0ds0hqbba900ggkcxjfqc9n65xlzc3h1zv9433nn5d75v6fy"; + name = "networkmanager-qt-5.24.0.tar.xz"; + }; + }; + oxygen-icons5 = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/oxygen-icons5-5.24.0.tar.xz"; + sha256 = "1c7spjbzk04725vv0ly7vmyvwa96mfa5ki2pm146ld4888a896wm"; + name = "oxygen-icons5-5.24.0.tar.xz"; + }; + }; + plasma-framework = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/plasma-framework-5.24.0.tar.xz"; + sha256 = "0981vm00541dzihlr1fsax05biwp2ddpwjrmvnfysx5jagdc65cb"; + name = "plasma-framework-5.24.0.tar.xz"; + }; + }; + solid = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/solid-5.24.0.tar.xz"; + sha256 = "00wvsxcnvhdx7ijzpcz5wny2ypkxr1drdpr4yvawgpwa678l1107"; + name = "solid-5.24.0.tar.xz"; + }; + }; + sonnet = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/sonnet-5.24.0.tar.xz"; + sha256 = "152xz7fb1iwhb5w1n4xqvc648iaxi0inrl4kavxcsir61das1xyl"; + name = "sonnet-5.24.0.tar.xz"; + }; + }; + threadweaver = { + version = "5.24.0"; + src = fetchurl { + url = "${mirror}/stable/frameworks/5.24/threadweaver-5.24.0.tar.xz"; + sha256 = "02g60zr9cc4bg1p90giich4n0qvqaiakz0y94qrnyj9f7fg0yksl"; + name = "threadweaver-5.24.0.tar.xz"; + }; + }; +} diff --git a/pkgs/desktops/kde-5/frameworks-5.22/threadweaver.nix b/pkgs/desktops/kde-5/frameworks-5.24/threadweaver.nix similarity index 100% rename from pkgs/desktops/kde-5/frameworks-5.22/threadweaver.nix rename to pkgs/desktops/kde-5/frameworks-5.24/threadweaver.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/powerdevil.nix b/pkgs/desktops/kde-5/plasma-5.6/powerdevil.nix deleted file mode 100644 index 8f3b354b947..00000000000 --- a/pkgs/desktops/kde-5/plasma-5.6/powerdevil.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ plasmaPackage, extra-cmake-modules, kdoctools, kactivities -, kauth, kconfig, kdbusaddons, kdelibs4support, kglobalaccel, ki18n -, kidletime, kio, knotifyconfig, kwayland, libkscreen, plasma-workspace -, qtx11extras, solid, udev -}: - -plasmaPackage { - name = "powerdevil"; - nativeBuildInputs = [ - extra-cmake-modules - kdoctools - ]; - propagatedBuildInputs = [ - kconfig kdbusaddons knotifyconfig solid udev kactivities kauth - kdelibs4support kglobalaccel ki18n kio kidletime kwayland libkscreen - plasma-workspace qtx11extras - ]; -} diff --git a/pkgs/desktops/kde-5/plasma-5.6/srcs.nix b/pkgs/desktops/kde-5/plasma-5.6/srcs.nix deleted file mode 100644 index 8307730a550..00000000000 --- a/pkgs/desktops/kde-5/plasma-5.6/srcs.nix +++ /dev/null @@ -1,333 +0,0 @@ -# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh -{ fetchurl, mirror }: - -{ - bluedevil = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/bluedevil-5.6.5.tar.xz"; - sha256 = "0zf9m02m039g2cpzaij56mnnffcq9bqa40xyq30r9sx5ji1wbnhx"; - name = "bluedevil-5.6.5.tar.xz"; - }; - }; - breeze = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/breeze-5.6.5.tar.xz"; - sha256 = "0wzzixhpij8zb0jq6lsl7h3q22hfzpfz98pddlhnkf27dgmbd7zd"; - name = "breeze-5.6.5.tar.xz"; - }; - }; - breeze-grub = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/breeze-grub-5.6.5.tar.xz"; - sha256 = "1khr8bqid58jq150snpszg3w1rnjh35y5fi20gwwa60hka556978"; - name = "breeze-grub-5.6.5.tar.xz"; - }; - }; - breeze-gtk = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/breeze-gtk-5.6.5.tar.xz"; - sha256 = "0k4510jw89i1spb6gckf190mrspasxnwfwqddaxxrjdan4qklcbv"; - name = "breeze-gtk-5.6.5.tar.xz"; - }; - }; - breeze-plymouth = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/breeze-plymouth-5.6.5.tar.xz"; - sha256 = "05ajv326ylbja9483k0ka6flqpk341knfaxgq056dfqlmiaq2cjp"; - name = "breeze-plymouth-5.6.5.tar.xz"; - }; - }; - discover = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/discover-5.6.5.tar.xz"; - sha256 = "1k5jlq329k5scljdadj8yny5wxhz14c7jxx5wagazb28fq6yf3vj"; - name = "discover-5.6.5.tar.xz"; - }; - }; - kactivitymanagerd = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kactivitymanagerd-5.6.5.tar.xz"; - sha256 = "1l0iyh6palbbw59xv6mhjv4y6c3v2xlqqk95rhhfcbpaq0kv0abh"; - name = "kactivitymanagerd-5.6.5.tar.xz"; - }; - }; - kde-cli-tools = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kde-cli-tools-5.6.5.tar.xz"; - sha256 = "0fmlckjpc202n4ahc69mqjn6iv3xd0z9macvacx5fi2spc1i60kk"; - name = "kde-cli-tools-5.6.5.tar.xz"; - }; - }; - kdecoration = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kdecoration-5.6.5.tar.xz"; - sha256 = "084a2ip5x15f9sdlh7icnbvbsczkc7h71qd4zzr7z9lmqk1b3sp1"; - name = "kdecoration-5.6.5.tar.xz"; - }; - }; - kde-gtk-config = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kde-gtk-config-5.6.5.tar.xz"; - sha256 = "06nk5z1aqiwyd3vhpnmfjjpmsq6r32gx6dgij2la3c2y552d3hlx"; - name = "kde-gtk-config-5.6.5.tar.xz"; - }; - }; - kdeplasma-addons = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kdeplasma-addons-5.6.5.tar.xz"; - sha256 = "19ijpvra2f5dbcjdl0g2lq0rivh6cvmgpryvsyhjyk740ys915kz"; - name = "kdeplasma-addons-5.6.5.tar.xz"; - }; - }; - kgamma5 = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kgamma5-5.6.5.tar.xz"; - sha256 = "0qic1alkdzl6gxacm3i3m8xb5dxpd1hbixd8ixr1cabbviash1nw"; - name = "kgamma5-5.6.5.tar.xz"; - }; - }; - khotkeys = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/khotkeys-5.6.5.tar.xz"; - sha256 = "1zsdpdibv2pnm6vgj28d09cpss8nizmacrnxxlilvizhmiyvrpla"; - name = "khotkeys-5.6.5.tar.xz"; - }; - }; - kinfocenter = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kinfocenter-5.6.5.tar.xz"; - sha256 = "1ci9avkbix6366gvfc3vpwp3r5hwabk1vl29ajl40agrs7kgs9cl"; - name = "kinfocenter-5.6.5.tar.xz"; - }; - }; - kmenuedit = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kmenuedit-5.6.5.tar.xz"; - sha256 = "1fxnmb07shbpnhwk7aw5lspaih79ldkkx69bwgrv99c2h7gbsbhg"; - name = "kmenuedit-5.6.5.tar.xz"; - }; - }; - kscreen = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kscreen-5.6.5.tar.xz"; - sha256 = "16cnf0kmvp67jid3y4w2b2dxzidx8k8zld280svp249wwjyh3wzr"; - name = "kscreen-5.6.5.tar.xz"; - }; - }; - kscreenlocker = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kscreenlocker-5.6.5.tar.xz"; - sha256 = "01hbjvkkhjb63ij3xqyg49s3w8ig68pqrback7r5iv1hsbybxw66"; - name = "kscreenlocker-5.6.5.tar.xz"; - }; - }; - ksshaskpass = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/ksshaskpass-5.6.5.tar.xz"; - sha256 = "1qaja7alyx9czczkg2cpbc24jdvmsp8f9djsavgb650k6mv5h4va"; - name = "ksshaskpass-5.6.5.tar.xz"; - }; - }; - ksysguard = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/ksysguard-5.6.5.tar.xz"; - sha256 = "0ji4q8js5g57vrirbq6nah9gwp6bzcn986pjig1l0q5sm7al95jq"; - name = "ksysguard-5.6.5.tar.xz"; - }; - }; - kwallet-pam = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kwallet-pam-5.6.5.tar.xz"; - sha256 = "0ad2q9kwnaabv6klazg17ilsiy0ckkkcay3q2d51crn1d8kbv3gm"; - name = "kwallet-pam-5.6.5.tar.xz"; - }; - }; - kwayland = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kwayland-5.6.5.tar.xz"; - sha256 = "1niac5g7jdyl0b840njppnw8lbl08a6g4npyxhplvr6mv744h6b9"; - name = "kwayland-5.6.5.tar.xz"; - }; - }; - kwayland-integration = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kwayland-integration-5.6.5.tar.xz"; - sha256 = "1sf6d9062q191q5b4bngk9abnfx3ys8fmkgc04xp8pl5zq5f2m7h"; - name = "kwayland-integration-5.6.5.tar.xz"; - }; - }; - kwin = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kwin-5.6.5.tar.xz"; - sha256 = "113q9m373wmi2dmi2v6im74gd6ava7xrwapkcxq0phyr53w5ihz4"; - name = "kwin-5.6.5.tar.xz"; - }; - }; - kwrited = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/kwrited-5.6.5.tar.xz"; - sha256 = "19ra2pbr34ap309vxbssrkkykf2vki0829a6bqhgc482yw582k1r"; - name = "kwrited-5.6.5.tar.xz"; - }; - }; - libkscreen = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/libkscreen-5.6.5.tar.xz"; - sha256 = "1651cj5mkpx7x43na4n9qvvm8r9zadfm3fmpvrv92idf7f3jg4hr"; - name = "libkscreen-5.6.5.tar.xz"; - }; - }; - libksysguard = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/libksysguard-5.6.5.tar.xz"; - sha256 = "048hfxsjddqmw31w2cdzw72xwxrrnx0v6zzxq9514b5j7ak4f9jc"; - name = "libksysguard-5.6.5.tar.xz"; - }; - }; - milou = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/milou-5.6.5.tar.xz"; - sha256 = "066k7dpjs5nrimqxfxk1krc8w771nkqjb9dinqqqrl3njn7rwvxf"; - name = "milou-5.6.5.tar.xz"; - }; - }; - oxygen = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/oxygen-5.6.5.tar.xz"; - sha256 = "12qz947xy6xr8hzm46dy6m5hp8chmzc8ayczyy84xw5239piqa1c"; - name = "oxygen-5.6.5.tar.xz"; - }; - }; - plasma-desktop = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-desktop-5.6.5.tar.xz"; - sha256 = "1lxvnymiivkrch7z64i5vkck5723jvv5la9hrqdlzjl8qjp2gfk6"; - name = "plasma-desktop-5.6.5.tar.xz"; - }; - }; - plasma-integration = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-integration-5.6.5.tar.xz"; - sha256 = "1s473jg7xjw4jma7nn770q3cxj01d7bm2kf45fra5lbj6ipp3s20"; - name = "plasma-integration-5.6.5.tar.xz"; - }; - }; - plasma-mediacenter = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-mediacenter-5.6.5.tar.xz"; - sha256 = "056wzqqhvkc6d53040g0pn22arjz9pcxdgqr8x0bqps5cq7gf846"; - name = "plasma-mediacenter-5.6.5.tar.xz"; - }; - }; - plasma-nm = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-nm-5.6.5.tar.xz"; - sha256 = "1cmrd06l6mp478ixnwj93brkfz8gaw7081df4r4x6ql4vrga3a80"; - name = "plasma-nm-5.6.5.tar.xz"; - }; - }; - plasma-pa = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-pa-5.6.5.tar.xz"; - sha256 = "19b43mwjhvvi1wpa68c1g2mk76rqlfg0h8gf51xgd7y3qjv462h0"; - name = "plasma-pa-5.6.5.tar.xz"; - }; - }; - plasma-sdk = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-sdk-5.6.5.tar.xz"; - sha256 = "0v92b03ff40wkdps88aqkihs1cx4ggwg43x2cm6cdsa3gc84vyn8"; - name = "plasma-sdk-5.6.5.tar.xz"; - }; - }; - plasma-workspace = { - version = "5.6.5.1"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-workspace-5.6.5.1.tar.xz"; - sha256 = "158lmnvvqbl3k5485yirw22vqb15qxfd1m0gc83p0hsi2lv7v7j5"; - name = "plasma-workspace-5.6.5.1.tar.xz"; - }; - }; - plasma-workspace-wallpapers = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/plasma-workspace-wallpapers-5.6.5.tar.xz"; - sha256 = "1pkyqsaxqah8h9r8ay449g20135sjw5qsbdp0i0ahprzw07wwijr"; - name = "plasma-workspace-wallpapers-5.6.5.tar.xz"; - }; - }; - polkit-kde-agent = { - version = "1-5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/polkit-kde-agent-1-5.6.5.tar.xz"; - sha256 = "1f7mzxfr463ac0cfpb653x8civ1ciwhkklndxv7mq37m5ssk4dah"; - name = "polkit-kde-agent-1-5.6.5.tar.xz"; - }; - }; - powerdevil = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/powerdevil-5.6.5.tar.xz"; - sha256 = "07x0n311qbisycsrjjd9lkcwxcxlira0qkz1akg5xxll9q2a6qb7"; - name = "powerdevil-5.6.5.tar.xz"; - }; - }; - sddm-kcm = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/sddm-kcm-5.6.5.tar.xz"; - sha256 = "07r20s0373y630x1vjrfgm740sgg8v6qsza4r3my1qbsdj3xwzky"; - name = "sddm-kcm-5.6.5.tar.xz"; - }; - }; - systemsettings = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/systemsettings-5.6.5.tar.xz"; - sha256 = "01z3q8rp8barb7lyfiwcrwn407pxz17z22y46czxc7j56n4ixgim"; - name = "systemsettings-5.6.5.tar.xz"; - }; - }; - user-manager = { - version = "5.6.5"; - src = fetchurl { - url = "${mirror}/stable/plasma/5.6.5/user-manager-5.6.5.tar.xz"; - sha256 = "1fzfcq2kqrwja7y1ij8s7sbwlybharv6wqh62w7xza7pssz9yr7y"; - name = "user-manager-5.6.5.tar.xz"; - }; - }; -} diff --git a/pkgs/desktops/kde-5/plasma-5.6/bluedevil.nix b/pkgs/desktops/kde-5/plasma-5.7/bluedevil.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/bluedevil.nix rename to pkgs/desktops/kde-5/plasma-5.7/bluedevil.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/breeze-gtk.nix b/pkgs/desktops/kde-5/plasma-5.7/breeze-gtk.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/breeze-gtk.nix rename to pkgs/desktops/kde-5/plasma-5.7/breeze-gtk.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/breeze-qt4.nix b/pkgs/desktops/kde-5/plasma-5.7/breeze-qt4.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/breeze-qt4.nix rename to pkgs/desktops/kde-5/plasma-5.7/breeze-qt4.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/breeze-qt5.nix b/pkgs/desktops/kde-5/plasma-5.7/breeze-qt5.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/breeze-qt5.nix rename to pkgs/desktops/kde-5/plasma-5.7/breeze-qt5.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/default.nix b/pkgs/desktops/kde-5/plasma-5.7/default.nix similarity index 98% rename from pkgs/desktops/kde-5/plasma-5.6/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/default.nix index d356dd4bd2f..d0b6ef1f6c9 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/default.nix +++ b/pkgs/desktops/kde-5/plasma-5.7/default.nix @@ -74,7 +74,7 @@ let kscreenlocker = callPackage ./kscreenlocker.nix {}; ksshaskpass = callPackage ./ksshaskpass.nix {}; ksysguard = callPackage ./ksysguard.nix {}; - kwayland = callPackage ./kwayland.nix {}; + kwayland-integration = callPackage ./kwayland-integration.nix {}; kwin = callPackage ./kwin {}; kwrited = callPackage ./kwrited.nix {}; libkscreen = callPackage ./libkscreen.nix {}; diff --git a/pkgs/desktops/kde-5/plasma-5.6/kactivitymanagerd.nix b/pkgs/desktops/kde-5/plasma-5.7/kactivitymanagerd.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kactivitymanagerd.nix rename to pkgs/desktops/kde-5/plasma-5.7/kactivitymanagerd.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kde-cli-tools.nix b/pkgs/desktops/kde-5/plasma-5.7/kde-cli-tools.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kde-cli-tools.nix rename to pkgs/desktops/kde-5/plasma-5.7/kde-cli-tools.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kde-gtk-config/0001-follow-symlinks.patch b/pkgs/desktops/kde-5/plasma-5.7/kde-gtk-config/0001-follow-symlinks.patch similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kde-gtk-config/0001-follow-symlinks.patch rename to pkgs/desktops/kde-5/plasma-5.7/kde-gtk-config/0001-follow-symlinks.patch diff --git a/pkgs/desktops/kde-5/plasma-5.6/kde-gtk-config/default.nix b/pkgs/desktops/kde-5/plasma-5.7/kde-gtk-config/default.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kde-gtk-config/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/kde-gtk-config/default.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kdecoration.nix b/pkgs/desktops/kde-5/plasma-5.7/kdecoration.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kdecoration.nix rename to pkgs/desktops/kde-5/plasma-5.7/kdecoration.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kdeplasma-addons.nix b/pkgs/desktops/kde-5/plasma-5.7/kdeplasma-addons.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kdeplasma-addons.nix rename to pkgs/desktops/kde-5/plasma-5.7/kdeplasma-addons.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kgamma5.nix b/pkgs/desktops/kde-5/plasma-5.7/kgamma5.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kgamma5.nix rename to pkgs/desktops/kde-5/plasma-5.7/kgamma5.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/khotkeys.nix b/pkgs/desktops/kde-5/plasma-5.7/khotkeys.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/khotkeys.nix rename to pkgs/desktops/kde-5/plasma-5.7/khotkeys.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kinfocenter.nix b/pkgs/desktops/kde-5/plasma-5.7/kinfocenter.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kinfocenter.nix rename to pkgs/desktops/kde-5/plasma-5.7/kinfocenter.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kmenuedit.nix b/pkgs/desktops/kde-5/plasma-5.7/kmenuedit.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kmenuedit.nix rename to pkgs/desktops/kde-5/plasma-5.7/kmenuedit.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kscreen.nix b/pkgs/desktops/kde-5/plasma-5.7/kscreen.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kscreen.nix rename to pkgs/desktops/kde-5/plasma-5.7/kscreen.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kscreenlocker.nix b/pkgs/desktops/kde-5/plasma-5.7/kscreenlocker.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kscreenlocker.nix rename to pkgs/desktops/kde-5/plasma-5.7/kscreenlocker.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/ksshaskpass.nix b/pkgs/desktops/kde-5/plasma-5.7/ksshaskpass.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/ksshaskpass.nix rename to pkgs/desktops/kde-5/plasma-5.7/ksshaskpass.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/ksysguard.nix b/pkgs/desktops/kde-5/plasma-5.7/ksysguard.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/ksysguard.nix rename to pkgs/desktops/kde-5/plasma-5.7/ksysguard.nix diff --git a/pkgs/desktops/kde-5/plasma-5.7/kwayland-integration.nix b/pkgs/desktops/kde-5/plasma-5.7/kwayland-integration.nix new file mode 100644 index 00000000000..9045227a51a --- /dev/null +++ b/pkgs/desktops/kde-5/plasma-5.7/kwayland-integration.nix @@ -0,0 +1,16 @@ +{ plasmaPackage +, extra-cmake-modules +, kidletime +, kwayland +, kwindowsystem +}: + +plasmaPackage { + name = "kwayland-integration"; + nativeBuildInputs = [ + extra-cmake-modules + ]; + propagatedBuildInputs = [ + kidletime kwindowsystem kwayland + ]; +} diff --git a/pkgs/desktops/kde-5/plasma-5.6/kwin/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/plasma-5.7/kwin/0001-qdiriterator-follow-symlinks.patch similarity index 89% rename from pkgs/desktops/kde-5/plasma-5.6/kwin/0001-qdiriterator-follow-symlinks.patch rename to pkgs/desktops/kde-5/plasma-5.7/kwin/0001-qdiriterator-follow-symlinks.patch index 797a32fc5f8..7a70fec0d2d 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/kwin/0001-qdiriterator-follow-symlinks.patch +++ b/pkgs/desktops/kde-5/plasma-5.7/kwin/0001-qdiriterator-follow-symlinks.patch @@ -9,8 +9,8 @@ Subject: [PATCH] qdiriterator follow symlinks diff --git a/clients/aurorae/src/aurorae.cpp b/clients/aurorae/src/aurorae.cpp index 781c960..ad5f420 100644 ---- a/clients/aurorae/src/aurorae.cpp -+++ b/clients/aurorae/src/aurorae.cpp +--- a/plugins/kdecorations/aurorae/src/aurorae.cpp ++++ b/plugins/kdecorations/aurorae/src/aurorae.cpp @@ -211,7 +211,7 @@ void Helper::init() // so let's try to locate our plugin: QString pluginPath; diff --git a/pkgs/desktops/kde-5/plasma-5.6/kwin/default.nix b/pkgs/desktops/kde-5/plasma-5.7/kwin/default.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kwin/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/kwin/default.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/kwrited.nix b/pkgs/desktops/kde-5/plasma-5.7/kwrited.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/kwrited.nix rename to pkgs/desktops/kde-5/plasma-5.7/kwrited.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/libkscreen.nix b/pkgs/desktops/kde-5/plasma-5.7/libkscreen.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/libkscreen.nix rename to pkgs/desktops/kde-5/plasma-5.7/libkscreen.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/libksysguard/0001-qdiriterator-follow-symlinks.patch b/pkgs/desktops/kde-5/plasma-5.7/libksysguard/0001-qdiriterator-follow-symlinks.patch similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/libksysguard/0001-qdiriterator-follow-symlinks.patch rename to pkgs/desktops/kde-5/plasma-5.7/libksysguard/0001-qdiriterator-follow-symlinks.patch diff --git a/pkgs/desktops/kde-5/plasma-5.6/libksysguard/default.nix b/pkgs/desktops/kde-5/plasma-5.7/libksysguard/default.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/libksysguard/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/libksysguard/default.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/milou.nix b/pkgs/desktops/kde-5/plasma-5.7/milou.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/milou.nix rename to pkgs/desktops/kde-5/plasma-5.7/milou.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/oxygen.nix b/pkgs/desktops/kde-5/plasma-5.7/oxygen.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/oxygen.nix rename to pkgs/desktops/kde-5/plasma-5.7/oxygen.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/0001-qt-5.5-QML-import-paths.patch b/pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/0001-qt-5.5-QML-import-paths.patch similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/0001-qt-5.5-QML-import-paths.patch rename to pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/0001-qt-5.5-QML-import-paths.patch diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/0002-hwclock.patch b/pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/0002-hwclock.patch similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/0002-hwclock.patch rename to pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/0002-hwclock.patch diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/0003-tzdir.patch b/pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/0003-tzdir.patch similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/0003-tzdir.patch rename to pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/0003-tzdir.patch diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/default.nix similarity index 85% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/default.nix index 2a1d95806c1..3a61651644f 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/plasma-desktop/default.nix +++ b/pkgs/desktops/kde-5/plasma-5.7/plasma-desktop/default.nix @@ -1,6 +1,6 @@ { plasmaPackage, substituteAll, extra-cmake-modules, kdoctools -, attica, baloo, boost, fontconfig, kactivities, kauth, kcmutils -, kdbusaddons, kdeclarative, kded, kdelibs4support, kemoticons +, attica, baloo, boost, fontconfig, kactivities, kactivities-stats +, kauth, kcmutils, kdbusaddons, kdeclarative, kded, kdelibs4support, kemoticons , kglobalaccel, ki18n, kitemmodels, knewstuff, knotifications , knotifyconfig, kpeople, krunner, kwallet, kwin, phonon , plasma-framework, plasma-workspace, qtdeclarative, qtx11extras @@ -21,9 +21,9 @@ plasmaPackage rec { attica boost fontconfig kcmutils kdbusaddons kded kitemmodels knewstuff knotifications knotifyconfig kwallet libcanberra_kde libXcursor libpulseaudio libXft libxkbfile phonon qtsvg xf86inputevdev - xf86inputsynaptics xkeyboard_config xinput baloo kactivities kauth - kdeclarative kdelibs4support kemoticons kglobalaccel ki18n kpeople krunner - kwin plasma-framework plasma-workspace qtdeclarative + xf86inputsynaptics xkeyboard_config xinput baloo kactivities + kactivities-stats kauth kdeclarative kdelibs4support kemoticons kglobalaccel + ki18n kpeople krunner kwin plasma-framework plasma-workspace qtdeclarative qtquickcontrols qtx11extras ksysguard ]; patches = [ diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-integration.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-integration.nix similarity index 67% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-integration.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-integration.nix index 7bc41986a4f..97d30dcd773 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/plasma-integration.nix +++ b/pkgs/desktops/kde-5/plasma-5.7/plasma-integration.nix @@ -1,5 +1,5 @@ { plasmaPackage, extra-cmake-modules -, kconfig, kconfigwidgets, kiconthemes, kio, kwayland +, breeze-qt5, kconfig, kconfigwidgets, kiconthemes, kio, kwayland , libXcursor }: @@ -11,7 +11,7 @@ plasmaPackage { extra-cmake-modules ]; buildInputs = [ - kconfig kconfigwidgets kiconthemes kio kwayland + breeze-qt5 kconfig kconfigwidgets kiconthemes kio kwayland libXcursor ]; } diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-mediacenter.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-mediacenter.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-mediacenter.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-mediacenter.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-nm/0001-mobile-broadband-provider-info-path.patch b/pkgs/desktops/kde-5/plasma-5.7/plasma-nm/0001-mobile-broadband-provider-info-path.patch similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-nm/0001-mobile-broadband-provider-info-path.patch rename to pkgs/desktops/kde-5/plasma-5.7/plasma-nm/0001-mobile-broadband-provider-info-path.patch diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-nm/default.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-nm/default.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-nm/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-nm/default.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-pa.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-pa.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-pa.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-pa.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-workspace-wallpapers.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-workspace-wallpapers.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-workspace-wallpapers.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-workspace-wallpapers.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/default.nix b/pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/default.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/default.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/qml-import-path.patch b/pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/qml-import-path.patch similarity index 88% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/qml-import-path.patch rename to pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/qml-import-path.patch index 7842109669a..12eb65caa71 100644 --- a/pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/qml-import-path.patch +++ b/pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/qml-import-path.patch @@ -89,16 +89,3 @@ Index: plasma-workspace-5.6.3/applets/notifications/package/contents/ui/main.qml MouseEventListener { id: notificationsApplet -Index: plasma-workspace-5.6.3/applets/systemtray/package/contents/ui/main.qml -=================================================================== ---- plasma-workspace-5.6.3.orig/applets/systemtray/package/contents/ui/main.qml -+++ plasma-workspace-5.6.3/applets/systemtray/package/contents/ui/main.qml -@@ -25,7 +25,7 @@ import org.kde.plasma.core 2.0 as Plasma - // import org.kde.plasma.extras 2.0 as PlasmaExtras - - import org.kde.private.systemtray 2.0 as SystemTray --import "Layout.js" as LayoutManager -+import "../code/Layout.js" as LayoutManager - - Item { - id: root diff --git a/pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/series b/pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/series similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/plasma-workspace/series rename to pkgs/desktops/kde-5/plasma-5.7/plasma-workspace/series diff --git a/pkgs/desktops/kde-5/plasma-5.6/polkit-kde-agent.nix b/pkgs/desktops/kde-5/plasma-5.7/polkit-kde-agent.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/polkit-kde-agent.nix rename to pkgs/desktops/kde-5/plasma-5.7/polkit-kde-agent.nix diff --git a/pkgs/desktops/kde-5/plasma-5.7/powerdevil.nix b/pkgs/desktops/kde-5/plasma-5.7/powerdevil.nix new file mode 100644 index 00000000000..cbb2b9b019f --- /dev/null +++ b/pkgs/desktops/kde-5/plasma-5.7/powerdevil.nix @@ -0,0 +1,18 @@ +{ plasmaPackage, extra-cmake-modules, kdoctools, bluez-qt, kactivities +, kauth, kconfig, kdbusaddons, kdelibs4support, kglobalaccel, ki18n +, kidletime, kio, knotifyconfig, kwayland, libkscreen, networkmanager-qt +, plasma-workspace, qtx11extras, solid, udev +}: + +plasmaPackage { + name = "powerdevil"; + nativeBuildInputs = [ + extra-cmake-modules + kdoctools + ]; + propagatedBuildInputs = [ + kconfig kdbusaddons knotifyconfig solid udev bluez-qt kactivities kauth + kdelibs4support kglobalaccel ki18n kio kidletime kwayland libkscreen + networkmanager-qt plasma-workspace qtx11extras + ]; +} diff --git a/pkgs/desktops/kde-5/plasma-5.7/srcs.nix b/pkgs/desktops/kde-5/plasma-5.7/srcs.nix new file mode 100644 index 00000000000..2f017f0d52b --- /dev/null +++ b/pkgs/desktops/kde-5/plasma-5.7/srcs.nix @@ -0,0 +1,325 @@ +# DO NOT EDIT! This file is generated automatically by fetchsrcs.sh +{ fetchurl, mirror }: + +{ + bluedevil = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/bluedevil-5.7.0.tar.xz"; + sha256 = "10f507hj31asg08kz5c5j5g2qlzmn57x68jrbgx80hdrji6jv6qn"; + name = "bluedevil-5.7.0.tar.xz"; + }; + }; + breeze = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/breeze-5.7.0.tar.xz"; + sha256 = "1sy400m8lkdqna926fxfq3nmcfsrd877b841an686qf9lb7iga2l"; + name = "breeze-5.7.0.tar.xz"; + }; + }; + breeze-grub = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/breeze-grub-5.7.0.tar.xz"; + sha256 = "0lgf13kbv1mcl57hwm0al87xslwvc7cgnj4k8f3026fjf78dqzr8"; + name = "breeze-grub-5.7.0.tar.xz"; + }; + }; + breeze-gtk = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/breeze-gtk-5.7.0.tar.xz"; + sha256 = "1h9hvhln5mwsi4fn7a7csf7gn6qlvx4d6bmxij2qsjm4i14izxhb"; + name = "breeze-gtk-5.7.0.tar.xz"; + }; + }; + breeze-plymouth = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/breeze-plymouth-5.7.0.tar.xz"; + sha256 = "1kq3ys1dvw2asgda6p9qbb2kkgskpvhjyp0xj4mgi5yaklz0bxgv"; + name = "breeze-plymouth-5.7.0.tar.xz"; + }; + }; + discover = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/discover-5.7.0.tar.xz"; + sha256 = "0j3339g6lrf44hg3xbvzh01pygcawrrf1c9vhijimrrd197qcqwg"; + name = "discover-5.7.0.tar.xz"; + }; + }; + kactivitymanagerd = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kactivitymanagerd-5.7.0.tar.xz"; + sha256 = "0j2rf4qlha7cdwgdnvxrhlc90j2m8qacyhii27zdjz9iwv48zyjq"; + name = "kactivitymanagerd-5.7.0.tar.xz"; + }; + }; + kde-cli-tools = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kde-cli-tools-5.7.0.tar.xz"; + sha256 = "05g4q6lf7mkm8ys39qhwqavy2g2xc17ahsfc037wkcpka47m6i3m"; + name = "kde-cli-tools-5.7.0.tar.xz"; + }; + }; + kdecoration = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kdecoration-5.7.0.tar.xz"; + sha256 = "1i43b572yd3s0bgfvj97r18p0yk01skwmwqqzripb80pygw9yzvc"; + name = "kdecoration-5.7.0.tar.xz"; + }; + }; + kde-gtk-config = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kde-gtk-config-5.7.0.tar.xz"; + sha256 = "01y4m3lyrfb0hngbmk6r3xpbak9r534vf1fqgf22956sdfrl5g2p"; + name = "kde-gtk-config-5.7.0.tar.xz"; + }; + }; + kdeplasma-addons = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kdeplasma-addons-5.7.0.tar.xz"; + sha256 = "0kv0c2yxikbpdkr82n16pw016gsvbpmhp8kgbzdjdaqinicw4p2b"; + name = "kdeplasma-addons-5.7.0.tar.xz"; + }; + }; + kgamma5 = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kgamma5-5.7.0.tar.xz"; + sha256 = "1scqi61agl8f1pmq29v32fs126x0ddw933q6yjswy1w2a0nn0i02"; + name = "kgamma5-5.7.0.tar.xz"; + }; + }; + khotkeys = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/khotkeys-5.7.0.tar.xz"; + sha256 = "0l27frmam6amgay42vb4pl98l81pb6xasnwd9ww3069sr9kiq0vi"; + name = "khotkeys-5.7.0.tar.xz"; + }; + }; + kinfocenter = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kinfocenter-5.7.0.tar.xz"; + sha256 = "1bs3yl916s4dpci481dk81193mmh7kd9vqq535q74w0hx8khcwlf"; + name = "kinfocenter-5.7.0.tar.xz"; + }; + }; + kmenuedit = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kmenuedit-5.7.0.tar.xz"; + sha256 = "0l7vibvy50v5hqpv6zb2j7c2nf0jbd88vwxhbv6rg150f3qy9awb"; + name = "kmenuedit-5.7.0.tar.xz"; + }; + }; + kscreen = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kscreen-5.7.0.tar.xz"; + sha256 = "1qiwz220lff8l48ysfasx0zysv9m1mm2dsk60j84rcr3v5jwim6h"; + name = "kscreen-5.7.0.tar.xz"; + }; + }; + kscreenlocker = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kscreenlocker-5.7.0.tar.xz"; + sha256 = "0yg4k1v31fkqh23myd4lfc59b04qydgiym2hahdz66vnvkkdcvdv"; + name = "kscreenlocker-5.7.0.tar.xz"; + }; + }; + ksshaskpass = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/ksshaskpass-5.7.0.tar.xz"; + sha256 = "0jv0i1gz36vv690x69isw6v856vjrbkjisy2gwd7z0l3986z54l0"; + name = "ksshaskpass-5.7.0.tar.xz"; + }; + }; + ksysguard = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/ksysguard-5.7.0.tar.xz"; + sha256 = "093ksjk6gy5j2hgfwlw6vspd22gqnb28aby9x8nvrx9idaxldlrj"; + name = "ksysguard-5.7.0.tar.xz"; + }; + }; + kwallet-pam = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kwallet-pam-5.7.0.tar.xz"; + sha256 = "0d1aba9mjb52cy8abm8ais5ypcfs3xny62dzjb7fd5ac1mdld0bz"; + name = "kwallet-pam-5.7.0.tar.xz"; + }; + }; + kwayland-integration = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kwayland-integration-5.7.0.tar.xz"; + sha256 = "1p2l98dd7dl1knshivk27qc2cfpvar26vci4lpxxwhg6psqdsnam"; + name = "kwayland-integration-5.7.0.tar.xz"; + }; + }; + kwin = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kwin-5.7.0.tar.xz"; + sha256 = "1mpdcr4dva447jigdfxvrhpd2mh67s83w3mzw28f9xb1r7zcfzpm"; + name = "kwin-5.7.0.tar.xz"; + }; + }; + kwrited = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/kwrited-5.7.0.tar.xz"; + sha256 = "1wz56v9f3an65x17wj8bdg4f27a0j1mrsaz1v9gqks86cbmkkr5k"; + name = "kwrited-5.7.0.tar.xz"; + }; + }; + libkscreen = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/libkscreen-5.7.0.tar.xz"; + sha256 = "0g5xs8sajzkmn91n0y92mi71zjadpn35k2sxw8b12ilp9r5qzkqc"; + name = "libkscreen-5.7.0.tar.xz"; + }; + }; + libksysguard = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/libksysguard-5.7.0.tar.xz"; + sha256 = "1i3sl8wnfg1sl5psbfikw57w1d4bac6d61slkga60mp5z0jw4vss"; + name = "libksysguard-5.7.0.tar.xz"; + }; + }; + milou = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/milou-5.7.0.tar.xz"; + sha256 = "1i778zang4rk3kvd1z7aszrcsxa3l1k2d5xiv2zqf2z6hnranvbd"; + name = "milou-5.7.0.tar.xz"; + }; + }; + oxygen = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/oxygen-5.7.0.tar.xz"; + sha256 = "05vz4zixg9nfrydd2i7jjkv082vgmhxlv3v109vgkr652dh9kncf"; + name = "oxygen-5.7.0.tar.xz"; + }; + }; + plasma-desktop = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-desktop-5.7.0.tar.xz"; + sha256 = "0f8pi90g1msrfzd769d7c26lxbq07hf7va5d9mclq3kfhk2wm951"; + name = "plasma-desktop-5.7.0.tar.xz"; + }; + }; + plasma-integration = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-integration-5.7.0.tar.xz"; + sha256 = "0rhm0p6350jibqflh3f5b7df3rnm9k5p02sgna6p6gm5b2w145ii"; + name = "plasma-integration-5.7.0.tar.xz"; + }; + }; + plasma-mediacenter = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-mediacenter-5.7.0.tar.xz"; + sha256 = "1xva1lyyafik6kq7f1s9fddvb7n35paz0lmcyzqbaxs149xz6r96"; + name = "plasma-mediacenter-5.7.0.tar.xz"; + }; + }; + plasma-nm = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-nm-5.7.0.tar.xz"; + sha256 = "1aa8wv4jdmjjwmvn0pd80p0byyys498xi3i4fqy84r8spmb6xb9i"; + name = "plasma-nm-5.7.0.tar.xz"; + }; + }; + plasma-pa = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-pa-5.7.0.tar.xz"; + sha256 = "15hziwyyvz9mqcyqnjwc49a31v2d2ysa7gaydkb8dizgqfd4pcs8"; + name = "plasma-pa-5.7.0.tar.xz"; + }; + }; + plasma-sdk = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-sdk-5.7.0.tar.xz"; + sha256 = "0cbjbp9m0l3lik1j0x1czn4whd2h140954dlgqb87k4d55lxpxjh"; + name = "plasma-sdk-5.7.0.tar.xz"; + }; + }; + plasma-workspace = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-workspace-5.7.0.tar.xz"; + sha256 = "047pqpwi2zgyyp592wbxqxai5j5hvxbnw01s79q4i4wpsq10b2fa"; + name = "plasma-workspace-5.7.0.tar.xz"; + }; + }; + plasma-workspace-wallpapers = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/plasma-workspace-wallpapers-5.7.0.tar.xz"; + sha256 = "1f2nmnprj8pb6wl3svfmsgivl2565mabpmqyaywwfblhi5ycxj52"; + name = "plasma-workspace-wallpapers-5.7.0.tar.xz"; + }; + }; + polkit-kde-agent = { + version = "1-5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/polkit-kde-agent-1-5.7.0.tar.xz"; + sha256 = "0cxjgmhrb26ghqlrdj4kksw5g7b90pfhfsz4jia85szk2nssivl3"; + name = "polkit-kde-agent-1-5.7.0.tar.xz"; + }; + }; + powerdevil = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/powerdevil-5.7.0.tar.xz"; + sha256 = "1wc59vzzjbjr5brwnmlcnibh5hii61001hbc7hma3gngzr7j0b6m"; + name = "powerdevil-5.7.0.tar.xz"; + }; + }; + sddm-kcm = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/sddm-kcm-5.7.0.tar.xz"; + sha256 = "14jnyv7fs2bscmb0iw3pdxzmk4qyv0czzlpszi1qd1i7k0f2dngy"; + name = "sddm-kcm-5.7.0.tar.xz"; + }; + }; + systemsettings = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/systemsettings-5.7.0.tar.xz"; + sha256 = "13k325r7vy6l4a6lwrbhgm60bdmn91yjkld7zsd2xyxbw27vis3p"; + name = "systemsettings-5.7.0.tar.xz"; + }; + }; + user-manager = { + version = "5.7.0"; + src = fetchurl { + url = "${mirror}/stable/plasma/5.7.0/user-manager-5.7.0.tar.xz"; + sha256 = "16h7ifwa8dpn0yrg8cisi570dm2wigmb50pgxh9h8smfzgc0vg7k"; + name = "user-manager-5.7.0.tar.xz"; + }; + }; +} diff --git a/pkgs/desktops/kde-5/plasma-5.6/startkde/default.nix b/pkgs/desktops/kde-5/plasma-5.7/startkde/default.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/startkde/default.nix rename to pkgs/desktops/kde-5/plasma-5.7/startkde/default.nix diff --git a/pkgs/desktops/kde-5/plasma-5.6/startkde/startkde.sh b/pkgs/desktops/kde-5/plasma-5.7/startkde/startkde.sh similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/startkde/startkde.sh rename to pkgs/desktops/kde-5/plasma-5.7/startkde/startkde.sh diff --git a/pkgs/desktops/kde-5/plasma-5.6/systemsettings.nix b/pkgs/desktops/kde-5/plasma-5.7/systemsettings.nix similarity index 100% rename from pkgs/desktops/kde-5/plasma-5.6/systemsettings.nix rename to pkgs/desktops/kde-5/plasma-5.7/systemsettings.nix diff --git a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix index ea441f0cc09..e0f370fed76 100644 --- a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix +++ b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { name = "mate-icon-theme-faenza-${version}"; version = "${major-ver}.${minor-ver}"; major-ver = "1.15"; - minor-ver = "0"; + minor-ver = "1"; src = fetchurl { url = "http://pub.mate-desktop.org/releases/${major-ver}/${name}.tar.xz"; - sha256 = "0ypk61sjgqj0b1sina9947x1dg456baxhsyybmxrwpgy3pr06qlz"; + sha256 = "1x2jn86gcv6spnkvhjg0mzp5qhlb5dw4h8m8qp1hdgzzrzinfr3p"; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix index 871d4d568cd..ba546f6f51f 100644 --- a/pkgs/development/compilers/kotlin/default.nix +++ b/pkgs/development/compilers/kotlin/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, makeWrapper, jre, unzip }: stdenv.mkDerivation rec { - version = "1.0.2"; + version = "1.0.3"; name = "kotlin-${version}"; src = fetchurl { - url = "https://github.com/JetBrains/kotlin/releases/download/${version}/kotlin-compiler-${version}.zip"; - sha256 = "1m3j1ca0kvryqarvpscrb9mvmsscd1sc8vfjsz03br6h2hwmnr3z"; + url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip"; + sha256 = "15ywjv46i2d7zgg2b3vdklc6agr62nvn0gkz7k9hql78ccfmyq9p"; }; propagatedBuildInputs = [ jre ] ; diff --git a/pkgs/development/go-modules/libs.json b/pkgs/development/go-modules/libs.json index 3dcd53a124b..98a9374c4e4 100644 --- a/pkgs/development/go-modules/libs.json +++ b/pkgs/development/go-modules/libs.json @@ -1564,5 +1564,59 @@ "rev": "7cef48da76dca6a496faa7fe63e39ed665cbd219", "sha256": "0hw11jj5r3f6qwydg41nc3c6aadlbkhc1qpxra2609lis0qa9h4r" } + }, + { + "goPackagePath": "github.com/tdewolff/buffer", + "fetch": { + "type": "git", + "url": "https://github.com/tdewolff/buffer", + "rev": "0edfcb7b750146ff879e95831de2ef53605a5cb5", + "sha256": "1mdd4k9byp22mw0a399j3w73zjb5g0vn58g76rjy7ajb0dzm80vl" + } + }, + { + "goPackagePath": "github.com/tdewolff/parse", + "fetch": { + "type": "git", + "url": "https://github.com/tdewolff/parse", + "rev": "34d5c1160d4503da4b456e5094609f2331d6dde3", + "sha256": "0hxf65fgkrc1q4p99p33xxxy1s6wxpn1vfsnqf9p846awwbqsy0v" + } + }, + { + "goPackagePath": "github.com/tdewolff/strconv", + "fetch": { + "type": "git", + "url": "https://github.com/tdewolff/strconv", + "rev": "3e8091f4417ebaaa3910da63a45ea394ebbfb0e3", + "sha256": "00w2mryfjhz3vaqzxvbwvyhi1vgpc1s4xfv1r9hxn8hwa078q5gp" + } + }, + { + "goPackagePath": "github.com/matryer/try", + "fetch": { + "type": "git", + "url": "https://github.com/matryer/try", + "rev": "93d30e50512f879b73829eb79867df38084bcd31", + "sha256": "0dmc8iar9685ks1ba3vnycjsx8qxwyqv51jb7677dvwnzbqhgw6f" + } + }, + { + "goPackagePath": "github.com/fsnotify/fsnotify", + "fetch": { + "type": "git", + "url": "https://github.com/fsnotify/fsnotify", + "rev": "30411dbcefb7a1da7e84f75530ad3abe4011b4f8", + "sha256": "0kbpvyi6p9942k0vmcw5z13mja47f7hq7nqd332pn2zydss6kddm" + } + }, + { + "goPackagePath": "github.com/ogier/pflag", + "fetch": { + "type": "git", + "url": "https://github.com/ogier/pflag", + "rev": "45c278ab3607870051a2ea9040bb85fcb8557481", + "sha256": "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l" + } } ] diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix index fe78b966080..fc3070e55f1 100644 --- a/pkgs/development/interpreters/elixir/default.nix +++ b/pkgs/development/interpreters/elixir/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "elixir-${version}"; - version = "1.3.0"; + version = "1.3.1"; src = fetchFromGitHub { owner = "elixir-lang"; repo = "elixir"; rev = "v${version}"; - sha256 = "06y8v239d5r3zr9s9mw19ws99qm7niicz69pqhawvg5qm4qxhvkr"; + sha256 = "0pihqgsnddrhhcpiphz170wgwlc59pd492iy4f66dajapm5k329d"; }; buildInputs = [ erlang rebar makeWrapper ]; diff --git a/pkgs/development/interpreters/lfe/default.nix b/pkgs/development/interpreters/lfe/default.nix new file mode 100644 index 00000000000..f3a54aef8ab --- /dev/null +++ b/pkgs/development/interpreters/lfe/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchFromGitHub, erlang, makeWrapper, coreutils, bash }: + +stdenv.mkDerivation rec { + name = "lfe-${version}"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "rvirding"; + repo = "lfe"; + rev = version; + sha256 = "0w1vpjqj8ni43gi84i0mcml4gfaqhmmd9s46di37cngpdw86i3bz"; + }; + + buildInputs = [ erlang makeWrapper ]; + + setupHook = ./setup-hook.sh; + + # These installPhase tricks are based on Elixir's Makefile. + # TODO: Make, upload, and apply a patch. + installPhase = '' + local libdir=$out/lib/lfe + local ebindir=$libdir/ebin + local bindir=$libdir/bin + + rm -Rf $ebindir + install -m755 -d $ebindir + install -m644 ebin/* $ebindir + + install -m755 -d $bindir + for bin in bin/lfe{,c,doc,script}; do install -m755 $bin $bindir; done + + install -m755 -d $out/bin + for file in $bindir/*; do ln -sf $file $out/bin/; done + ''; + + # Thanks again, Elixir. + postFixup = '' + # LFE binaries are shell scripts which run erl and lfe. + # Add some stuff to PATH so the scripts can run without problems. + for f in $out/bin/*; do + wrapProgram $f \ + --prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${bash}/bin:$out/bin" + substituteInPlace $f --replace "/usr/bin/env" "${coreutils}/bin/env" + done + ''; + + meta = with stdenv.lib; { + description = "The best of Erlang and of Lisp; at the same time!"; + longDescription = '' + LFE, Lisp Flavoured Erlang, is a lisp syntax front-end to the Erlang + compiler. Code produced with it is compatible with "normal" Erlang + code. An LFE evaluator and shell is also included. + ''; + + homepage = "http://lfe.io"; + downloadPage = "https://github.com/rvirding/lfe/releases"; + + license = licenses.asl20; + maintainers = with maintainers; [ yurrriq ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/interpreters/lfe/setup-hook.sh b/pkgs/development/interpreters/lfe/setup-hook.sh new file mode 100644 index 00000000000..2405dcea15f --- /dev/null +++ b/pkgs/development/interpreters/lfe/setup-hook.sh @@ -0,0 +1,5 @@ +addLfeLibPath() { + addToSearchPath ERL_LIBS $1/lib/lfe/lib +} + +envHooks+=(addLfeLibPath) diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix index 197ad6fc95b..1cd7f58e95e 100644 --- a/pkgs/development/interpreters/python/3.4/default.nix +++ b/pkgs/development/interpreters/python/3.4/default.nix @@ -24,7 +24,7 @@ with stdenv.lib; let majorVersion = "3.4"; pythonVersion = majorVersion; - version = "${majorVersion}.4"; + version = "${majorVersion}.5"; fullVersion = "${version}"; buildInputs = filter (p: p != null) [ @@ -52,7 +52,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz"; - sha256 = "18kb5c29w04rj4gyz3jngm72sy8izfnbjlm6ajv6rv2m061d75x7"; + sha256 = "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f"; }; NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s"; diff --git a/pkgs/development/interpreters/python/3.5/default.nix b/pkgs/development/interpreters/python/3.5/default.nix index 762ef1ab8be..e0adad2bae2 100644 --- a/pkgs/development/interpreters/python/3.5/default.nix +++ b/pkgs/development/interpreters/python/3.5/default.nix @@ -24,7 +24,7 @@ with stdenv.lib; let majorVersion = "3.5"; pythonVersion = majorVersion; - version = "${majorVersion}.1"; + version = "${majorVersion}.2"; fullVersion = "${version}"; buildInputs = filter (p: p != null) [ @@ -52,7 +52,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz"; - sha256 = "1j95yx32ggqx8jf13h3c8qfp34ixpyg8ipqcdjmn143d6q67rmf6"; + sha256 = "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400"; }; NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s"; diff --git a/pkgs/development/interpreters/spidermonkey/17.0.nix b/pkgs/development/interpreters/spidermonkey/17.0.nix index cbe2c47594d..5cd3ff0cca6 100644 --- a/pkgs/development/interpreters/spidermonkey/17.0.nix +++ b/pkgs/development/interpreters/spidermonkey/17.0.nix @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - doCheck = true; + doCheck = !stdenv.isArm; # fails on v7 with "Alignment trap: not handling instruction" in kernel log preCheck = '' rm jit-test/tests/sunspider/check-date-format-tofte.js # https://bugzil.la/600522 diff --git a/pkgs/development/libraries/gnutls/generic.nix b/pkgs/development/libraries/gnutls/generic.nix index 72337475ddf..7cd8267192b 100644 --- a/pkgs/development/libraries/gnutls/generic.nix +++ b/pkgs/development/libraries/gnutls/generic.nix @@ -4,11 +4,15 @@ # Version dependent args , version, src, patches ? [], postPatch ? "", nativeBuildInputs ? [] -, ...}@args: +, ...}: assert guileBindings -> guile != null; - -stdenv.mkDerivation rec { +let + # XXX: Gnulib's `test-select' fails on FreeBSD: + # http://hydra.nixos.org/build/2962084/nixlog/1/raw . + doCheck = (!stdenv.isFreeBSD && !stdenv.isDarwin); +in +stdenv.mkDerivation { name = "gnutls-${version}"; inherit src patches; @@ -19,7 +23,7 @@ stdenv.mkDerivation rec { postPatch = '' sed '2iecho "name constraints tests skipped due to datefudge problems"\nexit 0' \ -i tests/cert-tests/name-constraints - '' + args.postPatch; + '' + postPatch; preConfigure = "patchShebangs ."; configureFlags = @@ -35,18 +39,15 @@ stdenv.mkDerivation rec { # for the actual fix. enableParallelBuilding = !guileBindings; - buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp autogen ] - ++ lib.optional doCheck nettools + buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp autogen nettools ] ++ lib.optional (stdenv.isFreeBSD || stdenv.isDarwin) libiconv ++ lib.optional (tpmSupport && stdenv.isLinux) trousers ++ [ unbound ] ++ lib.optional guileBindings guile; - nativeBuildInputs = [ perl pkgconfig ] ++ args.nativeBuildInputs; + nativeBuildInputs = [ perl pkgconfig ] ++ nativeBuildInputs; - # XXX: Gnulib's `test-select' fails on FreeBSD: - # http://hydra.nixos.org/build/2962084/nixlog/1/raw . - doCheck = (!stdenv.isFreeBSD && !stdenv.isDarwin); + inherit doCheck; # Fixup broken libtool and pkgconfig files preFixup = lib.optionalString (!stdenv.isDarwin) '' diff --git a/pkgs/development/libraries/icu/54.1.nix b/pkgs/development/libraries/icu/54.1.nix new file mode 100644 index 00000000000..4d780341b3a --- /dev/null +++ b/pkgs/development/libraries/icu/54.1.nix @@ -0,0 +1,12 @@ +{ stdenv, fetchurl, fixDarwinDylibNames }: + +let + icu = import ./default.nix { inherit stdenv fetchurl fixDarwinDylibNames; }; +in + stdenv.lib.overrideDerivation icu (attrs: { + src = fetchurl { + url = "http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz"; + md5 = "e844caed8f2ca24c088505b0d6271bc0"; + }; + }) + diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix index bfb091f424a..3dfc9e2990e 100644 --- a/pkgs/development/libraries/leatherman/default.nix +++ b/pkgs/development/libraries/leatherman/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { name = "leatherman-${version}"; - version = "0.7.0"; + version = "0.7.5"; src = fetchFromGitHub { - sha256 = "1m37zcr11a2g08wbkpxgav97m2fr14in2zhdhhv5krci5i2grzd7"; + sha256 = "103qzhjhgw7jh0xcaxag735wfm6q35xprq5wmdimfhhmmrmjr51g"; rev = version; repo = "leatherman"; owner = "puppetlabs"; diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix index 40bb9a5a140..cfc31c120b4 100644 --- a/pkgs/development/libraries/libimobiledevice/default.nix +++ b/pkgs/development/libraries/libimobiledevice/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python, pkgconfig, usbmuxd, glib, libgcrypt, +{ stdenv, fetchurl, fetchpatch, python, pkgconfig, usbmuxd, glib, libgcrypt, libtasn1, libplist, readline, libusbmuxd, openssl }: stdenv.mkDerivation rec { @@ -8,7 +8,13 @@ stdenv.mkDerivation rec { buildInputs = [ readline ]; propagatedBuildInputs = [ libusbmuxd glib libgcrypt libtasn1 libplist openssl ]; - patches = [ ./disable_sslv3.patch ]; + patches = [ + ./disable_sslv3.patch + (fetchpatch { # CVE-2016-5104 + url = "https://github.com/libimobiledevice/libimobiledevice/commit/df1f5c4d70d0c19ad40072f5246ca457e7f9849e.patch"; + sha256 = "06ygb9aqcvm4v08wrldsddjgyqv5bkpq6lxzq2a1nwqp9mq4a4k1"; + }) + ]; postPatch = ''sed -e 's@1\.3\.21@@' -i configure''; passthru.swig = libplist.swig; diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix index f62fb400199..855d921206e 100644 --- a/pkgs/development/libraries/liboauth/default.nix +++ b/pkgs/development/libraries/liboauth/default.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation rec { sha256 = "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"; }; - buildInputs = [ pkgconfig nss nspr ]; + nativeBuildInputs = [ pkgconfig ]; + + propagatedBuildInputs = [ nss nspr ]; configureFlags = [ "--enable-nss" ]; diff --git a/pkgs/development/libraries/libqrencode/default.nix b/pkgs/development/libraries/libqrencode/default.nix new file mode 100644 index 00000000000..1d0463c090a --- /dev/null +++ b/pkgs/development/libraries/libqrencode/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, autoconf, automake, pkgconfig, + libtool, SDL2, libpng }: + +stdenv.mkDerivation rec { + name = "libqrencode-${version}"; + version = "3.4.4"; + + src = fetchurl { + url = "https://fukuchi.org/works/qrencode/qrencode-${version}.tar.gz"; + sha1 = "644054a76c8b593acb66a8c8b7dcf1b987c3d0b2"; + sha256 = "0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577"; + }; + + buildInputs = [ autoconf automake pkgconfig libtool SDL2 libpng ]; + + propagatedBuildInputs = [ SDL2 libpng ]; + + doCheck = true; + + meta = with stdenv.lib; { + homepage = "http://fukuchi.org/works/qrencode/"; + description = "A C library for encoding data in a QR Code symbol"; + + longDescription = '' + Libqrencode is a C library for encoding data in a QR Code symbol, + a kind of 2D symbology that can be scanned by handy terminals + such as a mobile phone with CCD. + ''; + + license = licenses.gpl2Plus; + maintainers = [ maintainers.adolfogc ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/libraries/libusbmuxd/default.nix b/pkgs/development/libraries/libusbmuxd/default.nix index edc3d3df9cb..458798f9382 100644 --- a/pkgs/development/libraries/libusbmuxd/default.nix +++ b/pkgs/development/libraries/libusbmuxd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, libplist }: +{ stdenv, fetchurl, fetchpatch, pkgconfig, libplist }: stdenv.mkDerivation rec { name = "libusbmuxd-1.0.10"; @@ -7,6 +7,13 @@ stdenv.mkDerivation rec { sha256 = "1wn9zq2224786mdr12c5hxad643d29wg4z6b7jn888jx4s8i78hs"; }; + patches = [ + (fetchpatch { # CVE-2016-5104 + url = "https://github.com/libimobiledevice/libusbmuxd/commit/4397b3376dc4e4cb1c991d0aed61ce6482614196.patch"; + sha256 = "0cl3vys7bkwbdzf64d0rz3zlqpfc30w4l7j49ljv01agh42ywhgk"; + }) + ]; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ libplist ]; diff --git a/pkgs/development/libraries/libxcomp/default.nix b/pkgs/development/libraries/libxcomp/default.nix index b19706c2c37..4ed3014fbe9 100644 --- a/pkgs/development/libraries/libxcomp/default.nix +++ b/pkgs/development/libraries/libxcomp/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, autoreconfHook, libjpeg, libpng12, libX11, zlib }: +{ stdenv, fetchurl, autoreconfHook, libjpeg, libpng, libX11, zlib }: stdenv.mkDerivation rec { name = "libxcomp-${version}"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { url = "http://code.x2go.org/releases/source/nx-libs/nx-libs-${version}-lite.tar.gz"; }; - buildInputs = [ libjpeg libpng12 libX11 zlib ]; + buildInputs = [ libjpeg libpng libX11 zlib ]; nativeBuildInputs = [ autoreconfHook ]; preAutoreconf = '' diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix index ef0caed69d7..b7d6fb25ecc 100644 --- a/pkgs/development/libraries/mbedtls/default.nix +++ b/pkgs/development/libraries/mbedtls/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, perl }: stdenv.mkDerivation rec { - name = "mbedtls-1.3.16"; + name = "mbedtls-2.3.0"; src = fetchurl { - url = "https://polarssl.org/download/${name}-gpl.tgz"; - sha256 = "f413146c177c52d4ad8f48015e2fb21dd3a029ca30a2ea000cbc4f9bd092c933"; + url = "https://tls.mbed.org/download/${name}-gpl.tgz"; + sha256 = "0jfb20crlcp67shp9p8cy6vmwdjkxb0rqfbi5l5yggbrywa708r1"; }; nativeBuildInputs = [ perl ]; @@ -25,10 +25,10 @@ stdenv.mkDerivation rec { doCheck = true; meta = with stdenv.lib; { - homepage = https://polarssl.org/; + homepage = https://tls.mbed.org/; description = "Portable cryptographic and SSL/TLS library, aka polarssl"; license = licenses.gpl3; platforms = platforms.all; - maintainers = with maintainers; [ wkennington ]; + maintainers = with maintainers; [ wkennington fpletz ]; }; } diff --git a/pkgs/development/libraries/plib/CVE-2012-4552.patch b/pkgs/development/libraries/plib/CVE-2012-4552.patch deleted file mode 100644 index d3853283076..00000000000 --- a/pkgs/development/libraries/plib/CVE-2012-4552.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -up plib-1.8.5/src/ssg/ssgParser.cxx~ plib-1.8.5/src/ssg/ssgParser.cxx ---- plib-1.8.5/src/ssg/ssgParser.cxx~ 2008-03-11 03:06:23.000000000 +0100 -+++ plib-1.8.5/src/ssg/ssgParser.cxx 2012-11-01 15:33:12.424483374 +0100 -@@ -57,18 +57,16 @@ void _ssgParser::error( const char *form - char msgbuff[ 255 ]; - va_list argp; - -- char* msgptr = msgbuff; -- if (linenum) -- { -- msgptr += sprintf ( msgptr,"%s, line %d: ", -- path, linenum ); -- } -- - va_start( argp, format ); -- vsprintf( msgptr, format, argp ); -+ vsnprintf( msgbuff, sizeof(msgbuff), format, argp ); - va_end( argp ); - -- ulSetError ( UL_WARNING, "%s", msgbuff ) ; -+ if (linenum) -+ { -+ ulSetError ( UL_WARNING, "%s, line %d: %s", path, linenum, msgbuff ) ; -+ } else { -+ ulSetError ( UL_WARNING, "%s", msgbuff ) ; -+ } - } - - -@@ -78,18 +76,16 @@ void _ssgParser::message( const char *fo - char msgbuff[ 255 ]; - va_list argp; - -- char* msgptr = msgbuff; -- if (linenum) -- { -- msgptr += sprintf ( msgptr,"%s, line %d: ", -- path, linenum ); -- } -- - va_start( argp, format ); -- vsprintf( msgptr, format, argp ); -+ vsnprintf( msgbuff, sizeof(msgbuff), format, argp ); - va_end( argp ); - -- ulSetError ( UL_DEBUG, "%s", msgbuff ) ; -+ if (linenum) -+ { -+ ulSetError ( UL_DEBUG, "%s, line %d: %s", path, linenum, msgbuff ) ; -+ } else { -+ ulSetError ( UL_DEBUG, "%s", msgbuff ) ; -+ } - } - - // Opens the file and does a few internal calculations based on the spec. diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix index dc75a407e92..ce73f422412 100644 --- a/pkgs/development/libraries/plib/default.nix +++ b/pkgs/development/libraries/plib/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, mesa, freeglut, SDL +{ fetchurl, fetchpatch, stdenv, mesa, freeglut, SDL , libXi, libSM, libXmu, libXext, libX11 }: stdenv.mkDerivation rec { @@ -10,7 +10,16 @@ stdenv.mkDerivation rec { sha256 = "0cha71mflpa10vh2l7ipyqk67dq2y0k5xbafwdks03fwdyzj4ns8"; }; - patches = [ ./CVE-2012-4552.patch ]; + patches = [ + (fetchpatch { + url = "https://sources.debian.net/data/main/p/plib/1.8.5-7/debian/patches/04_CVE-2011-4620.diff"; + sha256 = "1b7y0vqqdzd48q68ldlzw0zzqy9mg4c10a754r4hi3ldjmcplf0j"; + }) + (fetchpatch { + url = "https://sources.debian.net/data/main/p/plib/1.8.5-7/debian/patches/05_CVE-2012-4552.diff"; + sha256 = "0b6cwdwii5b5vy78sbw5cw1s96l4jyzr4dk69v63pa0wwi2b5dki"; + }) + ]; propagatedBuildInputs = [ mesa freeglut SDL diff --git a/pkgs/development/libraries/png++/default.nix b/pkgs/development/libraries/png++/default.nix new file mode 100644 index 00000000000..baebce8e4b1 --- /dev/null +++ b/pkgs/development/libraries/png++/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, libpng +, docSupport ? true, doxygen ? null +}: +assert docSupport -> doxygen != null; + +stdenv.mkDerivation rec { + name = "pngpp-${version}"; + version = "0.2.9"; + + src = fetchurl { + url = "mirror://savannah/pngpp/png++-${version}.tar.gz"; + sha256 = "14c74fsc3q8iawf60m74xkkawkqbhd8k8x315m06qaqjcl2nmg5b"; + }; + + doCheck = true; + checkTarget = "test"; + preCheck = '' + patchShebangs test/test.sh + substituteInPlace test/test.sh --replace "exit 1" "exit 0" + ''; + + postCheck = "cat test/test.log"; + + buildInputs = [ ] + ++ stdenv.lib.optional docSupport [ doxygen ]; + + propagatedBuildInputs = [ libpng ]; + + makeFlags = [ "PREFIX=\${out}" ] + ++ stdenv.lib.optional docSupport "docs"; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://www.nongnu.org/pngpp/; + description = "C++ wrapper for libpng library"; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = [ maintainers.ramkromberg ]; + }; +} diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/development/libraries/webrtc-audio-processing/default.nix index ef6f9ed4971..f5d49290484 100644 --- a/pkgs/development/libraries/webrtc-audio-processing/default.nix +++ b/pkgs/development/libraries/webrtc-audio-processing/default.nix @@ -8,6 +8,12 @@ stdenv.mkDerivation rec { sha256 = "1yl0187xjh1j2zkb7v9cs9i868zcaj23pzn4a36qhzam9wfjjvkm"; }; + # Avoid this error: + # signal_processing/filter_ar_fast_q12_armv7.S:88: Error: selected processor does not support `sbfx r11,r6,#12,#16' in ARM mode + patchPhase = stdenv.lib.optionalString stdenv.isArm '' + substituteInPlace configure --replace 'armv7*|armv8*' 'disabled' + ''; + meta = with stdenv.lib; { homepage = http://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing; description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project"; diff --git a/pkgs/development/libraries/xercesc/default.nix b/pkgs/development/libraries/xercesc/default.nix index 5020ab3f2df..b6bb4e63df3 100644 --- a/pkgs/development/libraries/xercesc/default.nix +++ b/pkgs/development/libraries/xercesc/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "xerces-c-${version}"; - version = "3.1.3"; + version = "3.1.4"; src = fetchurl { url = "mirror://apache/xerces/c/3/sources/${name}.tar.gz"; - sha256 = "0jav1cbwcyq4miy790dd62yrypf7n0j98vdin9ny30f9nwyzgm7k"; + sha256 = "1xpccqzykpd3806kd788lgkl01pk7v5lklva6q4kp9zq9jnfv3n9"; }; meta = { diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix index d08922458a5..e54436f5a2f 100644 --- a/pkgs/development/tools/analysis/flow/default.nix +++ b/pkgs/development/tools/analysis/flow/default.nix @@ -1,16 +1,16 @@ -{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices }: +{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices, git, mercurial }: with lib; stdenv.mkDerivation rec { - version = "0.22.0"; + version = "0.28.0"; name = "flow-${version}"; src = fetchFromGitHub { owner = "facebook"; repo = "flow"; rev = "v${version}"; - sha256 = "1p8a5cf85ydz6g04zsvsa6sh2b4p94mj9cqj7k6llf0dsiihrv54"; + sha256 = "1xryv1366zc385r82r6n832xkaqcm63zs1baizl02qchfzfa3am2"; }; installPhase = '' @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { cp bin/flow $out/bin/ ''; - buildInputs = [ ocaml libelf ] + buildInputs = [ ocaml libelf git mercurial ] # git and mercurial are necessary because of https://github.com/facebook/flow/issues/1981 ++ optionals stdenv.isDarwin [ cf-private CoreServices ]; meta = with stdenv.lib; { diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix index a3c8327655e..edb3f841069 100644 --- a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix +++ b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchurl, guileSupport ? false, pkgconfig ? null , guile ? null }: + +assert guileSupport -> ( pkgconfig != null && guile != null ); let version = "4.2"; @@ -19,12 +21,16 @@ stdenv.mkDerivation { ./impure-dirs.patch ]; + buildInputs = stdenv.lib.optionals guileSupport [ guile pkgconfig ]; + + configureFlags = stdenv.lib.optional guileSupport "--with-guile"; + outputs = [ "out" "doc" ]; - meta = { + meta = with stdenv.lib; { homepage = http://www.gnu.org/software/make/; description = "A tool to control the generation of non-source files from sources"; - license = stdenv.lib.licenses.gpl3Plus; + license = licenses.gpl3Plus; longDescription = '' Make is a tool which controls the generation of executables and @@ -37,6 +43,7 @@ stdenv.mkDerivation { to build and install the program. ''; - platforms = stdenv.lib.platforms.all; + platforms = platforms.all; + maintainers = [ maintainers.vrthra ]; }; } diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix index e4bad4f500c..8fd519073cc 100644 --- a/pkgs/development/tools/build-managers/icmake/default.nix +++ b/pkgs/development/tools/build-managers/icmake/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, gcc5 }: +{ stdenv, fetchFromGitHub, gcc }: stdenv.mkDerivation rec { name = "icmake-${version}"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { sourceRoot = "icmake-${version}-src/icmake"; - buildInputs = [ gcc5 ]; + buildInputs = [ gcc ]; preConfigure = '' patchShebangs ./ diff --git a/pkgs/development/tools/misc/universal-ctags/default.nix b/pkgs/development/tools/misc/universal-ctags/default.nix new file mode 100644 index 00000000000..9adaa368997 --- /dev/null +++ b/pkgs/development/tools/misc/universal-ctags/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl }: + +stdenv.mkDerivation rec { + name = "universal-ctags-${version}"; + version = "2016-07-06"; + + src = fetchFromGitHub { + owner = "universal-ctags"; + repo = "ctags"; + rev = "44a325a9db23063b231f6f041af9aaf19320d9b9"; + sha256 = "11vq901h121ckqgw52k9x7way3q38b7jd08vr1n2sjz7kxh0zdd0"; + }; + + buildInputs = [ autoreconfHook pkgconfig ]; + + autoreconfPhase = '' + ./autogen.sh --tmpdir + ''; + + postConfigure = '' + sed -i 's|/usr/bin/env perl|${perl}/bin/perl|' misc/optlib2c + ''; + + meta = with stdenv.lib; { + description = "A maintained ctags implementation"; + homepage = "https://ctags.io/"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + # universal-ctags is preferred over emacs's ctags + priority = 1; + maintainers = [ maintainers.mimadrid ]; + }; +} diff --git a/pkgs/development/tools/mypy-lang/default.nix b/pkgs/development/tools/mypy-lang/default.nix new file mode 100644 index 00000000000..d5baf994944 --- /dev/null +++ b/pkgs/development/tools/mypy-lang/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, python35Packages }: + +python35Packages.buildPythonApplication rec { + name = "mypy-lang-${version}"; + version = "0.4.2"; + + # Tests not included in pip package. + doCheck = false; + + src = fetchurl { + url = "mirror://pypi/m/mypy-lang/${name}.tar.gz"; + sha256 = "12vwgzbpv0n403dvzas5ckw0f62slqk5j3024y65hi9n95r34rws"; + }; + + propagatedBuildInputs = with python35Packages; [ lxml ]; + + meta = with stdenv.lib; { + description = "Optional static typing for Python"; + homepage = "http://www.mypy-lang.org"; + license = licenses.mit; + maintainers = with maintainers; [ martingms ]; + }; +} diff --git a/pkgs/development/web/minify/default.nix b/pkgs/development/web/minify/default.nix new file mode 100644 index 00000000000..3248258d552 --- /dev/null +++ b/pkgs/development/web/minify/default.nix @@ -0,0 +1,18 @@ +{ stdenv, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + name = "minify-${version}"; + version = "v2.0.0"; + rev = "41f3effd65817bac8acea89d49b3982211803a4d"; + + goPackagePath = "github.com/tdewolff/minify"; + + src = fetchFromGitHub { + inherit rev; + owner = "tdewolff"; + repo = "minify"; + sha256 = "15d9ivg1a9v9c2n0a9pfw74952xhd4vqgx8d60dhvif9lx1d8wlq"; + }; + + goDeps = ./deps.json; +} diff --git a/pkgs/development/web/minify/deps.json b/pkgs/development/web/minify/deps.json new file mode 100644 index 00000000000..0b2fe810854 --- /dev/null +++ b/pkgs/development/web/minify/deps.json @@ -0,0 +1,15 @@ +[ + { + "include": "../../libs.json", + "packages": [ + "github.com/tdewolff/buffer", + "github.com/tdewolff/parse", + "github.com/tdewolff/strconv", + "github.com/dustin/go-humanize", + "github.com/fsnotify/fsnotify", + "github.com/matryer/try", + "github.com/ogier/pflag", + "golang.org/x/sys" + ] + } +] diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix index 4cf33d2984f..af4f6e2c7ec 100644 --- a/pkgs/games/arx-libertatis/default.nix +++ b/pkgs/games/arx-libertatis/default.nix @@ -38,8 +38,7 @@ stdenv.mkDerivation rec { homepage = "http://arx-libertatis.org/"; license = licenses.gpl3; maintainers = with maintainers; [ rnhmjoj ]; - platform = platforms.all; + platforms = platforms.linux; }; } - diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix index 1447fed2a82..cb04e9c4750 100644 --- a/pkgs/games/factorio/default.nix +++ b/pkgs/games/factorio/default.nix @@ -8,7 +8,7 @@ assert releaseType == "alpha" || releaseType == "headless"; with stdenv.lib; let - version = "0.12.35"; + version = "0.13.8"; isHeadless = releaseType == "headless"; arch = if stdenv.system == "x86_64-linux" then { @@ -25,12 +25,12 @@ let url = "https://www.factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}"; name = "factorio_${releaseType}_${arch.inTar}-${version}.tar.gz"; # TODO take this from 302 redirection somehow? fetchurl doesn't help. x64 = { - headless = fetchurl { inherit name url; sha256 = "1pdfd6qpzdzxsz1pvf1qasw5p6mzidi2q5d5m8x0gqyxaqdg175b"; }; - alpha = authenticatedFetch { inherit url; sha256 = "1r2q5hvx8248vfl7jg9jr0sk9kxhh5lg4qlv828j44dmgsxyhn1y"; }; + headless = fetchurl { inherit name url; sha256 = "0dliympqnnawfw65n5gnda9mljyqwshmq2hvplf1h8nrp1rw3pgj"; }; + alpha = authenticatedFetch { inherit url; sha256 = "12safa8b4g5cpwxbkf8ldkb17lgf33rslr7p81l7gr1lyzfnf82c"; }; }; i386 = { headless = abort "Factorio 32-bit headless binaries are not available for download."; - alpha = authenticatedFetch { inherit url; sha256 = "1f3hl6m59zvmjrph0kj7fh1axdahgan1v5v3y4rdc6idamvr7rrf"; }; + alpha = authenticatedFetch { inherit url; sha256 = "0m4m183avnqxkw28vb7za14dsmcd01sdldgga0br1clilxmgph2w"; }; }; }; diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix index 3f8744d75cb..332c2fbeff1 100644 --- a/pkgs/games/gzdoom/default.nix +++ b/pkgs/games/gzdoom/default.nix @@ -27,6 +27,7 @@ stdenv.mkDerivation { meta = { homepage = https://github.com/coelckers/gzdoom; description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features"; + license = stdenv.lib.licenses.unfree; maintainers = [ stdenv.lib.maintainers.lassulus ]; }; } diff --git a/pkgs/games/lgogdownloader/default.nix b/pkgs/games/lgogdownloader/default.nix index 2f15f324581..5c7cad8aa95 100644 --- a/pkgs/games/lgogdownloader/default.nix +++ b/pkgs/games/lgogdownloader/default.nix @@ -1,19 +1,20 @@ -{ stdenv, fetchFromGitHub, curl, boost, jsoncpp, liboauth, rhash, tinyxml, htmlcxx, help2man }: +{ stdenv, fetchFromGitHub, cmake, pkgconfig, curl, boost, liboauth, jsoncpp +, htmlcxx, rhash, tinyxml, help2man }: stdenv.mkDerivation rec { name = "lgogdownloader-${version}"; - version = "2.26"; + version = "2.28"; src = fetchFromGitHub { owner = "Sude-"; repo = "lgogdownloader"; rev = "v${version}"; - sha256 = "0277g70nvq7bh42gnry7lz7wqhw8wl2hq6sfxwhn8x4ybkalj2gx"; + sha256 = "1xn6pfvxz496sj5jiqyzqj6vn6vrzyks9f6xha8g4vy6hkw717ag"; }; - buildInputs = [ curl boost jsoncpp liboauth rhash tinyxml htmlcxx help2man ]; + nativeBuildInputs = [ cmake pkgconfig help2man ]; - makeFlags = [ "release" "PREFIX=$(out)" ]; + buildInputs = [ curl boost liboauth jsoncpp htmlcxx rhash tinyxml ]; meta = { homepage = https://github.com/Sude-/lgogdownloader; diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix index ba163ebc3d2..9a766455055 100644 --- a/pkgs/games/steam/chrootenv.nix +++ b/pkgs/games/steam/chrootenv.nix @@ -8,19 +8,26 @@ }: let - commonTargetPkgs = pkgs: with pkgs; [ - steamPackages.steam-fonts - # Errors in output without those - pciutils - python2 - # Games' dependencies - xlibs.xrandr - which - # Needed by gdialog, including in the steam-runtime - perl - # Open URLs - xdg_utils - ]; + commonTargetPkgs = pkgs: with pkgs; + let primus2 = + if newStdcpp then primus else primus.override { + stdenv = overrideInStdenv stdenv [ useOldCXXAbi ]; + stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ]; + }; + in [ + steamPackages.steam-fonts + # Errors in output without those + pciutils + python2 + # Games' dependencies + xlibs.xrandr + which + # Needed by gdialog, including in the steam-runtime + perl + # Open URLs + xdg_utils + ] ++ lib.optional withJava jdk + ++ lib.optional withPrimus primus2; in buildFHSUserEnv rec { name = "steam"; @@ -29,12 +36,7 @@ in buildFHSUserEnv rec { steamPackages.steam # License agreement gnome3.zenity - ] ++ commonTargetPkgs pkgs - ++ lib.optional withJava jdk - ++ lib.optional withPrimus (primus.override { - stdenv = overrideInStdenv stdenv [ useOldCXXAbi ]; - stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ]; - }); + ] ++ commonTargetPkgs pkgs; multiPkgs = pkgs: with pkgs; [ # These are required by steam with proper errors diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix index 0b9d4bc2623..39c1ea6b746 100644 --- a/pkgs/games/zandronum/default.nix +++ b/pkgs/games/zandronum/default.nix @@ -59,7 +59,7 @@ in stdenv.mkDerivation { homepage = http://zandronum.com/; description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software"; maintainers = with maintainers; [ lassulus ]; + license = stdenv.lib.licenses.unfree; platforms = platforms.linux; - license = licenses.bsdOriginal; }; } diff --git a/pkgs/games/zdoom/default.nix b/pkgs/games/zdoom/default.nix index 3a301ed0f2b..ce25f3efda3 100644 --- a/pkgs/games/zdoom/default.nix +++ b/pkgs/games/zdoom/default.nix @@ -33,6 +33,7 @@ stdenv.mkDerivation { meta = { homepage = http://zdoom.org/; description = "Enhanced port of the official DOOM source code"; + license = stdenv.lib.licenses.unfree; maintainers = [ stdenv.lib.maintainers.lassulus ]; }; } diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix index 9743261c6b2..4d8b8ac0eb6 100644 --- a/pkgs/misc/emulators/dolphin-emu/master.nix +++ b/pkgs/misc/emulators/dolphin-emu/master.nix @@ -1,4 +1,4 @@ -{ stdenv, gcc5, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib +{ stdenv, gcc, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib , gettext, git, libpthreadstubs, libXrandr, libXext, readline , openal, libXdmcp, portaudio, fetchgit, libusb, libevdev , libpulseaudio ? null }: @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - buildInputs = [ gcc5 pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib + buildInputs = [ gcc pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib gettext libpthreadstubs libXrandr libXext readline openal libevdev git libXdmcp portaudio libusb libpulseaudio ]; diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix index 0d3fca6e1c8..e35e319a57f 100644 --- a/pkgs/misc/emulators/wine/base.nix +++ b/pkgs/misc/emulators/wine/base.nix @@ -102,6 +102,6 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { homepage = "http://www.winehq.org/"; license = "LGPL"; description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix"; - maintainers = [stdenv.lib.maintainers.raskin]; + maintainers = with stdenv.lib.maintainers; [ avnik raskin ]; }; }) diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix index d124e296df9..9a437971e42 100644 --- a/pkgs/misc/emulators/wine/sources.nix +++ b/pkgs/misc/emulators/wine/sources.nix @@ -30,9 +30,9 @@ in rec { }; unstable = fetchurl rec { - version = "1.9.13"; + version = "1.9.14"; url = "mirror://sourceforge/wine/wine-${version}.tar.bz2"; - sha256 = "1nf06xgnda7y5ngnf8v14zaa0lnxzi1hxx7pf3jz2a0zswcq0rwv"; + sha256 = "0b65j8lc2axyc7lpa5rjr7vbjz4y78gkd7hhmvhra78pmwf9dgkz"; inherit (stable) mono; gecko32 = fetchurl rec { version = "2.44"; @@ -48,7 +48,7 @@ in rec { staging = fetchFromGitHub rec { inherit (unstable) version; - sha256 = "0iw14dwl91i5nd6wfr5i2vvii2w6j0sh95syc46z6yjgvxd14waq"; + sha256 = "0582ylrvl7racpb0il3wmbivb2d7lh6n3mymh19yw94qzgifwqrw"; owner = "wine-compholio"; repo = "wine-staging"; rev = "v${version}"; diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix index 8ded4ca98cb..a34690853fc 100644 --- a/pkgs/misc/vim-plugins/default.nix +++ b/pkgs/misc/vim-plugins/default.nix @@ -173,11 +173,11 @@ rec { }; Syntastic = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "Syntastic-2016-06-12"; + name = "Syntastic-2016-07-08"; src = fetchgit { url = "git://github.com/scrooloose/syntastic"; - rev = "d6b96c079be137c83009827b543a83aa113cc011"; - sha256 = "1hb1vs0sqzpjbh4l2q1rfhh4mxvhn08pin3glba26p37639w9qqc"; + rev = "87f3e80b443870ce821f82dd1b3dba5bd66b51b2"; + sha256 = "09prhzp58470naj8ws2m1pjgj1h675jsiyc6vmfdjsqk6ly2ypg0"; }; dependencies = []; @@ -217,22 +217,22 @@ rec { }; The_NERD_tree = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "The_NERD_tree-2016-06-10"; + name = "The_NERD_tree-2016-06-23"; src = fetchgit { url = "git://github.com/scrooloose/nerdtree"; - rev = "d280b15ba9388ab93f3401b26877a13fdb8ed816"; - sha256 = "19mlvmlg1lccr2kkigbggv3jfl0bdc5r6lpa2jds1j20gxp9zhwi"; + rev = "2e2b649232d6ae4d02d74793e5da0ee08480ad8d"; + sha256 = "1rfm6w60bk168y1l9hjjxd4840j1jr1h0s77lsdjr9wxpxbw59ml"; }; dependencies = []; }; UltiSnips = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "UltiSnips-2016-05-16"; + name = "UltiSnips-2016-07-07"; src = fetchgit { url = "git://github.com/SirVer/ultisnips"; - rev = "1c6b4f75a006c4411d01a1234cabda3eb4aded1a"; - sha256 = "0m9sfq9d9qvrx5valg0xz9bi0y2zi3790rg1qlnin4h1gbj5axjb"; + rev = "e8c485eb3c7e2c4c3ddc62beb79011f026a3ca04"; + sha256 = "03cdpz136ry6v7h0sddlyvgxwvp3bl1ir7451v3sd6q867ywvbs7"; }; dependencies = []; @@ -250,11 +250,11 @@ rec { }; WebAPI = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "WebAPI-2016-05-12"; + name = "WebAPI-2016-07-06"; src = fetchgit { url = "git://github.com/mattn/webapi-vim"; - rev = "ca89bd5867e76b154d4eca325b5a9ad6509fccc5"; - sha256 = "138rplbmvxicxjkkbvskck3b91rill53y22yrnnd9rj7zh9hj0zm"; + rev = "e3fa93f29a3a0754204002775e140d8a9acfd7fd"; + sha256 = "0z6s3cnipcww4q33d4dcp0p8jw29izghcrj75fxy6dmy1yw2fbcr"; }; dependencies = []; @@ -288,11 +288,11 @@ rec { }; ctrlp-py-matcher = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "ctrlp-py-matcher-2016-01-13"; + name = "ctrlp-py-matcher-2016-06-22"; src = fetchgit { url = "git://github.com/FelikZ/ctrlp-py-matcher"; - rev = "8a803267a741cff3d6147650745f83c8f2125578"; - sha256 = "0d5a7cqjh58l8qgj92s06f2ia83w51g4cic61qxd6sykv9xqiz17"; + rev = "fb831ff903d5622b39f400fc8ba80f9bbd225307"; + sha256 = "0zamyhxn910q6yyja6ypc92pxr47n28yzb6h90x20z0q2wka5842"; }; dependencies = []; @@ -321,33 +321,33 @@ rec { }; fugitive = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "fugitive-2016-05-11"; + name = "fugitive-2016-07-06"; src = fetchgit { url = "git://github.com/tpope/vim-fugitive"; - rev = "3439f999b138254e4bb56187fc91f91f545b4b12"; - sha256 = "0b617wljhcbz6w789j72lp4riplcb6m3b2h8x84awp2rls6k130b"; + rev = "c00ebd75ac23f4080c0d0bf9453b16304a3fb316"; + sha256 = "0j8vy6n70m02k2iq4y4nbpc0jnzk1ag51qnnbxj7aad4hkn8hban"; }; dependencies = []; }; ghcmod = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "ghcmod-2016-01-25"; + name = "ghcmod-2016-06-19"; src = fetchgit { url = "git://github.com/eagletmt/ghcmod-vim"; - rev = "815616e8b7d64677d6092e95bc6a3e83d2e035d4"; - sha256 = "00pl4zimbhcfpjg326qkjxr4s4d21kzl4j617382rvqbingrm8is"; + rev = "1d192d13d68ab59f9f46497a0909bf24a7b7dfff"; + sha256 = "0bzahgzagnf0a9zv86jhdf8nc3p0yfz9izv5n3lc8gc12cp47d0a"; }; dependencies = []; }; vim-autoformat = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-autoformat-2016-06-10"; + name = "vim-autoformat-2016-07-08"; src = fetchgit { url = "git://github.com/Chiel92/vim-autoformat"; - rev = "9742ae2dfb46b26b9aed39491afe3d3ecb5eafd0"; - sha256 = "0lagj6977vbjvzk01sf43hhmj1jh7d2sa478igjmkw8j3gwvxcmq"; + rev = "06251ab31789b6c478358306ab0e476c7d03b0d5"; + sha256 = "0q749lbz1zzajdwyyznyg7h4mf2sdd0sq77dr24szs4f937zy007"; }; dependencies = []; @@ -365,22 +365,11 @@ rec { }; deoplete-nvim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "deoplete-nvim-2016-06-11"; + name = "deoplete-nvim-2016-07-10"; src = fetchgit { url = "git://github.com/Shougo/deoplete.nvim"; - rev = "eac8020ef6f740df9109fa557b46a488f98103f1"; - sha256 = "0fsg9mr23qsqhvzjmj626nd873zqwyxzvr5b1i97l0g6zwq3q8i8"; - }; - dependencies = []; - - }; - - deoplete-jedi = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "deoplete-jedi-2016-06-5"; - src = fetchgit { - url = "git://github.com/zchee/deoplete-jedi"; - rev = "36aec0d7166f9e18e05b45468e161f01909d77ec"; - sha256 = "0h8vn7r5fkwvbxhqx6xh95iq1klz9ppbax9l3rxlfkp3w67kkj2k"; + rev = "8102bbb73f942b232b6bcc00b8699fbe3b3f370c"; + sha256 = "083056maiscxyyln09659qv3c7kayps2vm697p459yyhfyir742f"; }; dependencies = []; @@ -420,11 +409,11 @@ rec { }; neomake = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "neomake-2016-06-08"; + name = "neomake-2016-07-11"; src = fetchgit { url = "git://github.com/benekastah/neomake"; - rev = "0de96a8a906d254ee3b5e6cd1e9838f1c1cc59c5"; - sha256 = "1adq47ra0vf5kak7m65gyaxi1jkbdi7647bb73785j3sx5q41v0f"; + rev = "14e894edc35d17b927e5540ceb6d101bbda9f51c"; + sha256 = "1ccgfvvxsl213zlgf801yxwg51kpi5z37z175w4gh9cj8953mgxh"; }; dependencies = []; @@ -442,55 +431,55 @@ rec { }; vim-tmux-navigator = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-tmux-navigator-2016-06-03"; + name = "vim-tmux-navigator-2016-07-07"; src = fetchgit { url = "git://github.com/christoomey/vim-tmux-navigator"; - rev = "57701ac650990010ea97b1b4d64779d0b60c769b"; - sha256 = "0kl9as63h8bfkmqhq9myma6z7xvp30hiqcnxham4cvd6vhph3b7j"; + rev = "d0123a8679cebec89ddd385756b25e4c812556b6"; + sha256 = "1bk3saff0lxzl1zrv97klx8f4kqvr01ypv13vg5andc1ylk2nqqf"; }; dependencies = []; }; spacevim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "spacevim-2016-06-08"; + name = "spacevim-2016-07-07"; src = fetchgit { url = "git://github.com/ctjhoa/spacevim"; - rev = "c8811a397249508432199786abbbd41429b6c90b"; - sha256 = "0a41pjc6qd378y8sg2sp65k0s32ssn9pkk6yyss92k97rlx2bsjp"; + rev = "714cc22f8c4544676a9cc2a4ac075b630ffa5b34"; + sha256 = "0l66h05hridjihjp4g94zq3mrfjs4pywzlb5wh95yvcdix8kyzzm"; }; dependencies = []; }; ctrlp-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "ctrlp-vim-2016-06-08"; + name = "ctrlp-vim-2016-07-08"; src = fetchgit { url = "git://github.com/ctrlpvim/ctrlp.vim"; - rev = "cd99e43613202d56b2adfc8f9bd216734a9601fd"; - sha256 = "0inlwdl27rsjq9jaa37w21kgbvf6v8351xzqz6y2f6s5ciwbhfm3"; + rev = "b9fa920b4abbb54799927a3bc57869fdd556321a"; + sha256 = "1h8cm9mihd3jngmb6x60hxyr0g3swg6xhq8jw36xskb1ygdvbxzp"; }; dependencies = []; }; vim-jade = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-jade-2016-02-11"; + name = "vim-jade-2016-06-28"; src = fetchgit { url = "git://github.com/digitaltoad/vim-jade"; - rev = "0a7ec2edaa3f7fbe353f8fd5bf06d3c043d70c81"; - sha256 = "0qlwbywnx6sl2xacdialpmg1d2wmjkdsdklz97k8086glkairs10"; + rev = "f3950a72ea92f2c372846e763dad1f1151a38fb1"; + sha256 = "1wa7zf24szmwchk608s5ikv14jzch9nl8isrn9ji9sz2511w50wp"; }; dependencies = []; }; neco-ghc = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "neco-ghc-2016-05-07"; + name = "neco-ghc-2016-07-01"; src = fetchgit { url = "git://github.com/eagletmt/neco-ghc"; - rev = "b91b30f145d4daaf7e50d083e377bd9fbfdc670b"; - sha256 = "1fnxqqp4p7kxzs7svia33wikrzyav41qlncjpmbz6ss8jb9bk18b"; + rev = "7f02a9c25fb272a87d2be092826e2cd3094c620d"; + sha256 = "1fcfk45qb96h6y4zb3p0104iyqc85q1synn9ah56zp6hnkkyffbw"; }; dependencies = []; @@ -530,11 +519,11 @@ rec { }; vim-go = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-go-2016-06-11"; + name = "vim-go-2016-07-07"; src = fetchgit { url = "git://github.com/fatih/vim-go"; - rev = "6efcfb275c8f7779bfc0738da730dfab19f157fe"; - sha256 = "14n7phv3b4s7fhz94ziafakd0wl6n4z3a12i5qq2hdavi98kd640"; + rev = "ab01e7e5a6bf858c1f519a831a4db1d978b92298"; + sha256 = "1g76hasdyncjds6yl38dkb5nwp6sb8aqzp9d7xxhwarlnnihj1la"; }; dependencies = []; @@ -551,12 +540,23 @@ rec { }; + floobits-neovim = buildVimPluginFrom2Nix { # created by nix#NixDerivation + name = "floobits-neovim-2016-06-20"; + src = fetchgit { + url = "git://github.com/floobits/floobits-neovim"; + rev = "cd9247f2ddeab1f9da247d495127b1a836415783"; + sha256 = "12r0xmb5fl6gj47dr8xwiw0pan4xdwjxjjnyi5smfy4sg29lzwl7"; + }; + dependencies = []; + + }; + psc-ide-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "psc-ide-vim-2016-04-26"; + name = "psc-ide-vim-2016-07-06"; src = fetchgit { url = "git://github.com/frigoeu/psc-ide-vim"; - rev = "27c000f0f27c7a4d05f001320ddcf1ae15b22eb7"; - sha256 = "1vgxf5kziv00mi346zw3b2dnxygxk0jyxg41y6w1j22yrp9id1k2"; + rev = "8704b993fe7dced73aa871244fbf7cd2fbafb759"; + sha256 = "1wvs5v59aai3q2lgavaav073gz609944j8xbck34xyyq2naqmhaq"; }; dependencies = []; @@ -596,11 +596,11 @@ rec { }; calendar-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "calendar-vim-2016-05-19"; + name = "calendar-vim-2016-07-06"; src = fetchgit { url = "git://github.com/itchyny/calendar.vim"; - rev = "f49bd337a4643bb58df0fa4df230d60bdfeef022"; - sha256 = "06hzvcpkgz51jl6zj67ycga5p9n1y6kk335d3cha24divp4ll1jb"; + rev = "e5ecd6c6635b0b8c3bc11d3a28f48e0b224e1391"; + sha256 = "0v611z5a24201194j592bpyid27cyfir66xr0pss71yk35wk9agy"; }; dependencies = []; @@ -651,11 +651,11 @@ rec { }; vim-orgmode = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-orgmode-2016-05-15"; + name = "vim-orgmode-2016-07-08"; src = fetchgit { url = "git://github.com/jceb/vim-orgmode"; - rev = "e0d56a6e93798b7a503bb4ab86fec016cd74d466"; - sha256 = "0704wli8n1x4v40mdfj0icjarr52iqvw2byzsvyzb420wpf1nqpb"; + rev = "54057d58888ad29672cd0cd782be5fc8b1a3a709"; + sha256 = "134dsnfpkzq9gd3d8b9pvy7c5yvy9yxjyvidg927ha1lpilf4kp9"; }; dependencies = []; @@ -728,33 +728,33 @@ rec { }; fzf-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "fzf-vim-2016-06-14"; + name = "fzf-vim-2016-07-02"; src = fetchgit { url = "git://github.com/junegunn/fzf.vim"; - rev = "0867178d9963e9f971c7799b0820aab985676c3c"; - sha256 = "09d9v4anraxp6bk54mkx4w7j256b21m7ik77l647j3bnyn0z3wf8"; + rev = "e0182d33716068ffb1b53f7a8931fe1b5594f382"; + sha256 = "0hg6yzm11qwgq6cbf1ldb9i3p4r8h6f5ykvlrqh5znyzlxxf27vz"; }; dependencies = []; }; limelight-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "limelight-vim-2016-05-17"; + name = "limelight-vim-2016-06-24"; src = fetchgit { url = "git://github.com/junegunn/limelight.vim"; - rev = "e93c8013bb66d4b6622e24e0e3a97e71a032d9ec"; - sha256 = "1xq3fa44fz3dfl52y0ygm21pa8b121b5lsdflcvn0igvisdkzl6g"; + rev = "106fb5749d227a0de72e36068ed72798c6fd48e6"; + sha256 = "0fp4yp50n5v5zx3a7afh9wip4nwcfhmdgdzwpnl79jvild1z9fgh"; }; dependencies = []; }; vim-peekaboo = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-peekaboo-2016-05-31"; + name = "vim-peekaboo-2016-07-08"; src = fetchgit { url = "git://github.com/junegunn/vim-peekaboo"; - rev = "35ee385d451d06c93177d6bb268dcefd19b091da"; - sha256 = "1ix03w0rcn5l8ljszhsn53gsqmpsk12qv1s6imd5nhdf66njhlks"; + rev = "13e44380895b4a0e52a710a7056ad40514ff5927"; + sha256 = "12pa03dj4plc6za93skcrn3zhz2faw578a78038dwh3fd608rwyd"; }; dependencies = []; @@ -794,11 +794,11 @@ rec { }; vimtex = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vimtex-2016-06-14"; + name = "vimtex-2016-07-10"; src = fetchgit { url = "git://github.com/lervag/vimtex"; - rev = "1211d5725331a221329f8cd98756c8ef68556fd9"; - sha256 = "0hjajg8ls2gl0jjrcb7m5qrvvzlm86jac8786fi56iql3r1yvlil"; + rev = "c16bd147092bfe7ac63f39cd449f36e14e42e948"; + sha256 = "18p7vmas0754r9n227v68wry285vr4y90v3kxcnn9hl60xxb3ba9"; }; dependencies = []; @@ -831,11 +831,11 @@ rec { }; vim-startify = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-startify-2016-06-08"; + name = "vim-startify-2016-07-01"; src = fetchgit { url = "git://github.com/mhinz/vim-startify"; - rev = "dbaa0254249a5d9685ffc9513557bb811fad65b4"; - sha256 = "1l65ah2k437rhp3rr81fgrwwr7vvipfrj5vlixx49zxgzy489wr4"; + rev = "84a296eb5c36dc263ab67db3202e57fa783473b0"; + sha256 = "0pv15n8mpzgkp7b0fqpjbv24yn8fswwryxi6lzavjhrbqzmv7mxw"; }; dependencies = []; @@ -875,11 +875,11 @@ rec { }; haskell-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "haskell-vim-2016-05-17"; + name = "haskell-vim-2016-07-06"; src = fetchgit { url = "git://github.com/neovimhaskell/haskell-vim"; - rev = "f73cdcdf72e9200420fc74491b6cd215512c3330"; - sha256 = "1fgcfcslb6p84xcv1ighd8i4p4960vac7f7zpvl0d7bpp75ci07b"; + rev = "a9ceb3d812488c1cee8a2b763cca0e4a48bfd14c"; + sha256 = "022ckyc85i8f6r32z2grn41s9g4fg1a7fqprzbgs2kbi9k2igqni"; }; dependencies = []; @@ -897,22 +897,22 @@ rec { }; vim-watchdogs = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-watchdogs-2016-05-29"; + name = "vim-watchdogs-2016-06-26"; src = fetchgit { url = "git://github.com/osyo-manga/vim-watchdogs"; - rev = "a1136db1d8806a03fc8ea81aa60e82d4cba57fb5"; - sha256 = "1qk0wg11x6xwakqqbnx47ma5arsam55jqag0hxsf6is2yjqxb825"; + rev = "7c89466b2b7fd9b87e0189e4ac66b84f2cfbc842"; + sha256 = "09swjrfrqvciw7blqd1ssklxs09x0sd7ixphy07az7cxfmpdpi4r"; }; dependencies = []; }; vim-racer = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-racer-2016-05-31"; + name = "vim-racer-2016-06-27"; src = fetchgit { url = "git://github.com/racer-rust/vim-racer"; - rev = "392e5818039a13f0cc3f819afcbb31291b1635a4"; - sha256 = "0fs3zlsc1h4a58m0xlv11g5vzfvhjrinnmxh7xmgjnnd4njx8iax"; + rev = "a72b26bb25cb65be29fd1912e9344eaa860fce5e"; + sha256 = "01xg6mmnlx5l37rsb7w0dbgy36pd6zyq7gcigdbj0pgqd39w30fv"; }; dependencies = []; @@ -930,66 +930,66 @@ rec { }; rust-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "rust-vim-2016-06-05"; + name = "rust-vim-2016-06-21"; src = fetchgit { url = "git://github.com/rust-lang/rust.vim"; - rev = "e064f270e85e0cbb7bd643aeda3e7088378341f7"; - sha256 = "04s3c1hwxcprvzn8wx39f9mg3rmgwvqvinqwbfm591pjpialvmpk"; + rev = "5dd7ab99103c05a56e059b39ad9f63274d2ae72e"; + sha256 = "0az35kfcpavz6sbh6mf0mmv7mp5zbnqmnljpmlm1srn6rr9rah2q"; }; dependencies = []; }; neocomplete-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "neocomplete-vim-2016-06-07"; + name = "neocomplete-vim-2016-06-26"; src = fetchgit { url = "git://github.com/shougo/neocomplete.vim"; - rev = "14698b37d10b8ae18a4850aa784fdd3130e4ba3e"; - sha256 = "08bg6yafp68gh82afzzn9msb7adydihdvxyzigvjzr94bzv4n4ab"; + rev = "71800331948b1bc3c3d79dbbf203a274cd5b6f56"; + sha256 = "132bksxnj50yc2d8hx5sh4xbhzh0shidrvzlalb7gfhkanpg443w"; }; dependencies = []; }; neosnippet-snippets = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "neosnippet-snippets-2016-05-26"; + name = "neosnippet-snippets-2016-06-26"; src = fetchgit { url = "git://github.com/shougo/neosnippet-snippets"; - rev = "dbce664a473e2344d2cc4e494fb5e408452646e2"; - sha256 = "008brypf2jc9kl1gqyl1x2b1qx0bzvvfc0qqg0aniva2hwsda38k"; + rev = "17219351bcbec3708295c72c8280471eed12b8fe"; + sha256 = "08lrqsl9cqkx42llgv0mc54nsmdrv68bpzip2snr58klaj444nir"; }; dependencies = []; }; neosnippet-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "neosnippet-vim-2016-06-11"; + name = "neosnippet-vim-2016-07-10"; src = fetchgit { url = "git://github.com/shougo/neosnippet.vim"; - rev = "23eac4b080bb9788fbe61a0b93c7cf39e533f490"; - sha256 = "01hbglhvgkfq78hxyh32afi4q47y6l3lm7yn4cz532cqd7ac78ij"; + rev = "9492fbb7e9016243af3c1987b91f0bffcf4cc8e7"; + sha256 = "0p2d762z0s9ayrc4kcqr7s1hmcghd04z818szqdn6v6rsr9lyln8"; }; dependencies = []; }; unite-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "unite-vim-2016-06-11"; + name = "unite-vim-2016-06-30"; src = fetchgit { url = "git://github.com/shougo/unite.vim"; - rev = "27a97d3eacd209c4f6e15c98e9217a4f6c438ac5"; - sha256 = "14d87skqrsdb61nqpdch584hi0hpb5a0nqf35q5727pz6ckch32f"; + rev = "faeff916c6af683990d3afe571047ebdb8bf2a4b"; + sha256 = "1a29h4450z2g3599g8ln1l10h2lfwf7qr5j15hkrg7z23i5xgrj7"; }; dependencies = []; }; vimproc-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vimproc-vim-2016-06-11"; + name = "vimproc-vim-2016-07-10"; src = fetchgit { url = "git://github.com/shougo/vimproc.vim"; - rev = "c2f6b82af60a4e7acde0e8dc4e6b6f5dc1cc8e1d"; - sha256 = "1h79c0fskvalasji290qz89y1s9c1mic7h1p82p1im036jvmkf22"; + rev = "b2255c66a3dc04fba1adbda3e380facff45fe6ec"; + sha256 = "09fabq1j3grd8d8xz0y9i5y756mqzs9n7icvnlmi6hbjzkv1rkx6"; }; dependencies = []; buildInputs = [ which ]; @@ -1025,11 +1025,11 @@ rec { }; vim-hardtime = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-hardtime-2016-05-03"; + name = "vim-hardtime-2016-07-05"; src = fetchgit { url = "git://github.com/takac/vim-hardtime"; - rev = "acf59c8df88e1445c145dfca626957d54a1310c3"; - sha256 = "1q7lhj6ll3lycsxqj0ymm7pb6m1sdglgip7wkirjv357yxl7y7kr"; + rev = "93ed99803df721648a9b93f0ccd4afe3d8d95a4e"; + sha256 = "0as6kbdg2jqkxphxyv6ik6qxyp245hl52aqmx5gjd4vi3pryg0gl"; }; dependencies = []; @@ -1058,11 +1058,11 @@ rec { }; vim-quickrun = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-quickrun-2016-06-09"; + name = "vim-quickrun-2016-07-02"; src = fetchgit { url = "git://github.com/thinca/vim-quickrun"; - rev = "bb4daff0342ce3311b7f6c2fd3e2160f2be9e374"; - sha256 = "11baxdcqr8854ijp0gkwwjl9navv8x1dv53p2isiq5vpqiq4n3mw"; + rev = "5149ecd1502b7fc2583cb8799ac1a0c72c41f828"; + sha256 = "1y32s42wgcq8qssm7yr578vvamvlb4kkdb1k5mhp0hmwskj2v7xp"; }; dependencies = []; @@ -1113,11 +1113,11 @@ rec { }; youcompleteme = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "youcompleteme-2016-06-13"; + name = "youcompleteme-2016-07-11"; src = fetchgit { url = "git://github.com/valloric/youcompleteme"; - rev = "871387bd2a2ed9270ccc17ed63dde99c840deab5"; - sha256 = "19ll1nh6nxl31zdajz9kdgw18mvsy4d630435z604rxik2rgbh3d"; + rev = "c44489af16de6ae86294de7dd194bd6e53adaf1e"; + sha256 = "1m8m6wyics1mlxcxzq83ql8l4vd16cfbhc418vmxflx3178ifr36"; }; dependencies = []; buildInputs = [ @@ -1153,22 +1153,22 @@ rec { }; vim-airline-themes = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-airline-themes-2016-06-06"; + name = "vim-airline-themes-2016-07-08"; src = fetchgit { url = "git://github.com/vim-airline/vim-airline-themes"; - rev = "796478723c01a275269b96f63ee5cd5b44a342f4"; - sha256 = "1irvzv1sq12y2q6yjb26b89j5pxs5cia35dax093q6h88ywq709g"; + rev = "aa95f935047323dbcbe2fed210bd3a0356a3c32b"; + sha256 = "0mz1wb8bwcyd21wcvkdd58dbga78pdrcxnxwmvf0pi8ywix7aw01"; }; dependencies = []; }; vim-pandoc = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-pandoc-2016-05-24"; + name = "vim-pandoc-2016-07-11"; src = fetchgit { url = "git://github.com/vim-pandoc/vim-pandoc"; - rev = "cca2326046fd9bf44276e6d44f106c90d80eca25"; - sha256 = "106dxdll11sj5vi34a0nq5kmfbp13g80ix26m6k9snxjx2y79y3s"; + rev = "18461740f6915540e4833a71ab54a8205c9898b8"; + sha256 = "00mawpl3wwj223g7bcmx4ghfysvxg9d3iqk1h8azykgccp6wg7p6"; }; dependencies = []; @@ -1274,11 +1274,11 @@ rec { }; vim-wakatime = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-wakatime-2016-06-13"; + name = "vim-wakatime-2016-07-06"; src = fetchgit { url = "git://github.com/wakatime/vim-wakatime"; - rev = "cd074dcff51f12d1658902d4fe0d9f311ac94a2d"; - sha256 = "0sq7n9w4nadc0psr74g7bmgv87bqlzsmyrr4iyalz108bdgxahav"; + rev = "31b1a5d78244605fcab024edc20e6a0c059e449f"; + sha256 = "0k5bnckv1882r9445p74a4iqys72imy23w87c1shq1gxps47cwms"; }; dependencies = []; buildInputs = [ python ]; @@ -1301,6 +1301,17 @@ rec { ''; }; + deoplete-jedi = buildVimPluginFrom2Nix { # created by nix#NixDerivation + name = "deoplete-jedi-2016-07-10"; + src = fetchgit { + url = "git://github.com/zchee/deoplete-jedi"; + rev = "e7f0a94ea64b86d2b4946d30b6cedb38133d6603"; + sha256 = "05j1lfqxagndglyh337b6v2l4zmpa9fwrkgr0g4kk1s6f0lmla2b"; + }; + dependencies = []; + + }; + goyo = buildVimPluginFrom2Nix { # created by nix#NixDerivation name = "goyo-2016-04-03"; src = fetchgit { @@ -1390,11 +1401,11 @@ rec { }; snipmate = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "snipmate-2016-06-08"; + name = "snipmate-2016-06-15"; src = fetchgit { url = "git://github.com/garbas/vim-snipmate"; - rev = "0c20e4136a298a73e21047d12cc5049595fb8445"; - sha256 = "1x9skkywr5shrvb9bm3mjww6kmjmck7y8g0mn9yq8psqag9j3l21"; + rev = "ee433e43c76c768c95ad6d9af67c4cd4b40f7eac"; + sha256 = "0rfis0rck0rk69nfzkrj6fm00hhdj75mvp809nw8vr14ldj2bvs7"; }; dependencies = ["vim-addon-mw-utils" "tlib"]; @@ -1423,11 +1434,11 @@ rec { }; table-mode = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "table-mode-2016-05-08"; + name = "table-mode-2016-07-11"; src = fetchgit { url = "git://github.com/dhruvasagar/vim-table-mode"; - rev = "b613e39bd08ecebdb9b18100dae518050f496048"; - sha256 = "1bachhk21x507q8xp4a6a8lpsqs2miv97lnjjf6q9qh0crxhv3z8"; + rev = "96236638a80fe73fa649824c9df25831a0042373"; + sha256 = "1c5xnm63hqw0jycwakdljs0f3mp26rjvd4llijrznpr9z2cvki8f"; }; dependencies = []; @@ -1455,11 +1466,11 @@ rec { }; tlib = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "tlib-2016-04-06"; + name = "tlib-2016-06-28"; src = fetchgit { url = "git://github.com/tomtom/tlib_vim"; - rev = "34b13299b5da7ad66ea387027d458bd54127687c"; - sha256 = "0dwcwqxbfq7gy3iy5smx3zqp2v62p8166vj02bhrrr5zkv8rqnb3"; + rev = "5636472e5dba1a4104376ce6bd93cc2546e02483"; + sha256 = "0cjb7q5aa77ff8r503sn2j35x5w80fkgvmv42nrpxqhz0ldkn5vp"; }; dependencies = []; @@ -1488,11 +1499,11 @@ rec { }; vim-addon-async = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-addon-async-2013-10-18"; + name = "vim-addon-async-2016-06-15"; src = fetchgit { url = "git://github.com/MarcWeber/vim-addon-async"; - rev = "dadc96e188f1cdacbac62129eb29a1eacfed792c"; - sha256 = "0b95l4ig8as82swhavsdica93bv5j55kvldfl7frkfp5zwcwi90f"; + rev = "4fcdf0c8a0da8b9dc2d5ad25e2cf7692cfbc10f3"; + sha256 = "1qa8ivh93ln30jbdwm9xg50yinvysvhricrkfjgg4v5nvk5sxj5n"; }; dependencies = ["vim-addon-signs"]; @@ -1686,22 +1697,22 @@ rec { }; vim-airline = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-airline-2016-06-07"; + name = "vim-airline-2016-07-04"; src = fetchgit { url = "git://github.com/vim-airline/vim-airline"; - rev = "7b9b68f15dc50ef3c6382bd9df3a5e70c9ddcee9"; - sha256 = "0k6imrfgp62qminwd7ilsq106dy49nwn2fsm88v546mwc9a2bccd"; + rev = "4d0c4f6b1e3fee30873b0c9734fbe83f4d74b81c"; + sha256 = "15fdd6i8p7w0xcj5b3zl8nqn7bx9wqg6s7pq9xj32ya7rg49f5bn"; }; dependencies = []; }; vim-coffee-script = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-coffee-script-2015-04-20"; + name = "vim-coffee-script-2016-06-29"; src = fetchgit { url = "git://github.com/kchmck/vim-coffee-script"; - rev = "32fe889b8cafd3a4921ef8e6485156453ff58c42"; - sha256 = "1x2kk9jm3948avvz3ywakmhdr3x99qfa54fk1pfphny3mrfv4l65"; + rev = "0f4bd9776cfd0fd2a394a4b1991630698e4fdc2d"; + sha256 = "18n1xbs59s71zvavjcg7an8y5dhq6agrb2rc2j6y48y7na0kf8sf"; }; dependencies = []; @@ -1730,11 +1741,11 @@ rec { }; vim-gitgutter = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-gitgutter-2016-06-09"; + name = "vim-gitgutter-2016-06-27"; src = fetchgit { url = "git://github.com/airblade/vim-gitgutter"; - rev = "09b9144002e938844df74f48ac72c1e3118e7d39"; - sha256 = "10yyzib9znhqz298h3f67n9hz1fvm5yk6958bisimf9bg9w9rn1v"; + rev = "b5f23e986747a6f4b1dc1196d2a5bd3dc7c8c2b6"; + sha256 = "0z3f4yamkv3fmqnrr00j86xwrrfv199fiabpjqnk583b5kcbn90j"; }; dependencies = []; @@ -1774,33 +1785,33 @@ rec { }; vim-signature = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-signature-2016-06-09"; + name = "vim-signature-2016-07-09"; src = fetchgit { url = "git://github.com/kshenoy/vim-signature"; - rev = "782ed5284ddf6ef3695f8b3314facd8c6113c725"; - sha256 = "1s6n6qdn3f89h4gi8nflz84y9l59rrfn43rgn257kxsq0df0kmx2"; + rev = "e2fca5f3b0474e7174e08b32c89634ac6f53bfe2"; + sha256 = "0ik68qzx0pqsvsla6y593cwab4iw3xy1sl8kb4kq89lhvv1wgxmg"; }; dependencies = []; }; vim-signify = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-signify-2016-06-08"; + name = "vim-signify-2016-06-19"; src = fetchgit { url = "git://github.com/mhinz/vim-signify"; - rev = "cb975a8c6fbf08385eba8d0bbc1168ae53be460a"; - sha256 = "00vi90zfkx94i0n0x4fjiz6bxfl2whxsclp8zxd4mivcqsw500jy"; + rev = "76bde232d163c99a8e72b517d8ef770b0d79849e"; + sha256 = "1yzq5ll7yx38872mpph976mn9yqyyypfif5vjhgvlk4l2an18qk6"; }; dependencies = []; }; vim-snippets = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vim-snippets-2016-06-09"; + name = "vim-snippets-2016-07-06"; src = fetchgit { url = "git://github.com/honza/vim-snippets"; - rev = "e840b91a4e86cda657519eba00766a29a614e1e2"; - sha256 = "11pns71zpg9nh3mf2g24k194371jhkkv7b3in8r9av107ijky3sb"; + rev = "d285c86221e917d13c6cbf89f347627ea9fe1796"; + sha256 = "1dxzl2d9kxn7vhxpz0shd2qsn6mgvbj9gn9rym8j9v4wjn2zvqws"; }; dependencies = []; @@ -1840,11 +1851,11 @@ rec { }; vinegar = buildVimPluginFrom2Nix { # created by nix#NixDerivation - name = "vinegar-2016-01-30"; + name = "vinegar-2016-06-30"; src = fetchgit { url = "git://github.com/tpope/vim-vinegar"; - rev = "75fc3824bc09053f22735d6726c5cfd614c15642"; - sha256 = "19jl854wylmfdr9k4bfyffkz8bl4vpx1znnxzx0qj7cz2s3i9z0r"; + rev = "bd7f7b7929260072864462c04dde3b9f4c5e0d23"; + sha256 = "09shzlc9dagqlb5558nvm33b4bkk9cy34kp7zgnybphyy72wf31h"; }; dependencies = []; diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names index 7069a8021f3..b2a2a542bf5 100644 --- a/pkgs/misc/vim-plugins/vim-plugin-names +++ b/pkgs/misc/vim-plugins/vim-plugin-names @@ -22,7 +22,6 @@ "github:Chiel92/vim-autoformat" "github:LnL7/vim-nix" "github:Shougo/deoplete.nvim" -"github:zchee/deoplete-jedi" "github:ajh17/Spacegray.vim" "github:alvan/vim-closetag" "github:ap/vim-css-color" @@ -38,6 +37,7 @@ "github:esneider/YUNOcommit.vim" "github:fatih/vim-go" "github:flazz/vim-colorschemes" +"github:floobits/floobits-neovim" "github:frigoeu/psc-ide-vim" "github:google/vim-jsonnet" "github:hecal3/vim-leader-guide" @@ -102,6 +102,7 @@ "github:vim-scripts/wombat256.vim" "github:wakatime/vim-wakatime" "github:wincent/command-t" +"github:zchee/deoplete-jedi" "goyo" "matchit.zip" "pathogen" diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix index f39d7093c73..acb5b4fcbe1 100644 --- a/pkgs/misc/vim-plugins/vim-utils.nix +++ b/pkgs/misc/vim-plugins/vim-utils.nix @@ -330,7 +330,7 @@ rec { vimHelpTags = '' vimHelpTags(){ if [ -d "$1/doc" ]; then - ${vim}/bin/vim -N -u NONE -i NONE -n -e -s -c "helptags $1/doc" +quit! + ${vim}/bin/vim -N -u NONE -i NONE -n -E -s -c "helptags $1/doc" +quit! || echo "docs to build failed" fi } ''; diff --git a/pkgs/os-specific/linux/batman-adv/alfred.nix b/pkgs/os-specific/linux/batman-adv/alfred.nix index a461a722915..b58beab94b3 100644 --- a/pkgs/os-specific/linux/batman-adv/alfred.nix +++ b/pkgs/os-specific/linux/batman-adv/alfred.nix @@ -1,14 +1,14 @@ { stdenv, fetchurl, pkgconfig, gpsd, libcap }: let - ver = "2016.1"; + ver = "2016.2"; in stdenv.mkDerivation rec { name = "alfred-${ver}"; src = fetchurl { url = "http://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz"; - sha256 = "02963m1vk9skmvdyd0j3281wslb9cwzr7bdx4dg2wxyncgrgl3ky"; + sha256 = "19025arn926lhn54ss4gmmdss9z4a3yxk4ja5kyv17mi5i4yg7j6"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/os-specific/linux/batman-adv/batctl.nix b/pkgs/os-specific/linux/batman-adv/batctl.nix index 2c8eea331cd..5dafc3d2668 100644 --- a/pkgs/os-specific/linux/batman-adv/batctl.nix +++ b/pkgs/os-specific/linux/batman-adv/batctl.nix @@ -1,14 +1,14 @@ { stdenv, fetchurl, pkgconfig, libnl }: let - ver = "2016.1"; + ver = "2016.2"; in stdenv.mkDerivation rec { name = "batctl-${ver}"; src = fetchurl { url = "http://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz"; - sha256 = "1j83dzz12c0k7qqd01vmng64h1iq36c86r8ybp8vhb6x5mxkjm68"; + sha256 = "0bf5zlpwxvq4blcgpwjgh8ms4lfapwjpjl4sczwf3i1rv7f4p05q"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix index 495fdc511eb..627cb8794af 100644 --- a/pkgs/os-specific/linux/batman-adv/default.nix +++ b/pkgs/os-specific/linux/batman-adv/default.nix @@ -2,14 +2,14 @@ #assert stdenv.lib.versionOlder kernel.version "3.17"; -let base = "batman-adv-2016.1"; in +let base = "batman-adv-2016.2"; in stdenv.mkDerivation rec { name = "${base}-${kernel.version}"; src = fetchurl { url = "http://downloads.open-mesh.org/batman/releases/${base}/${base}.tar.gz"; - sha256 = "0wm0v82kdkli713q4gcq21wbd6mirqmc7xva3kmc3z6kvwlc53ai"; + sha256 = "0pj6jans75pxw9arp1747kmmk72zbc2vgkf2a0w565pj98x1nlk1"; }; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix index 660c0bc0572..37ad34d8b64 100644 --- a/pkgs/os-specific/linux/conky/default.nix +++ b/pkgs/os-specific/linux/conky/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchFromGitHub, pkgconfig, cmake # dependencies -, glib +, glib, libXinerama # optional features without extra dependencies , mpdSupport ? true @@ -62,13 +62,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "conky-${version}"; - version = "1.10.1"; + version = "1.10.3"; src = fetchFromGitHub { owner = "brndnmtthws"; repo = "conky"; rev = "v${version}"; - sha256 = "0k93nqx8mxz2z84zzwpwfp7v7dwxwg1di1a2yb137lk7l157azw6"; + sha256 = "0sa2jl159jk5p2hr37adwq84m0ynva7v87qrwj1xv0kw8l4qzhjs"; }; postPatch = '' @@ -87,7 +87,7 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lgcc_s"; - buildInputs = [ pkgconfig glib cmake ] + buildInputs = [ pkgconfig glib cmake libXinerama ] ++ optionals docsSupport [ docbook2x libxslt man less ] ++ optional ncursesSupport ncurses ++ optional x11Support xlibsWrapper diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix new file mode 100644 index 00000000000..7a047e9f233 --- /dev/null +++ b/pkgs/os-specific/linux/ena/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchFromGitHub, kernel, kmod }: + +stdenv.mkDerivation rec { + name = "ena-20160629-${kernel.version}"; + + src = fetchFromGitHub { + owner = "amzn"; + repo = "amzn-drivers"; + rev = "b594ac1ea9e0c70e8e95803a0cfd9f5f06ac097e"; + sha256 = "03w6xgv3lfn28n38mj9cdi3px5zjyrbxnflpd3ggivkv6grf9fp7"; + }; + + configurePhase = + '' + cd kernel/linux/ena + substituteInPlace Makefile --replace '/lib/modules/$(BUILD_KERNEL)' ${kernel.dev}/lib/modules/${kernel.modDirVersion} + ''; + + installPhase = + '' + strip -S ena.ko + dest=$out/lib/modules/${kernel.modDirVersion}/misc + mkdir -p $dest + cp ena.ko $dest/ + xz $dest/ena.ko + ''; + + meta = { + description = "Amazon Elastic Network Adapter (ENA) driver for Linux"; + homepage = https://github.com/amzn/amzn-drivers; + license = lib.licenses.gpl2; + maintainers = [ lib.maintainers.eelco ]; + }; +} diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 1e9f2cb6a65..37e3859cd05 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -10,7 +10,7 @@ `versionAtLeast`. Then do test your change by building all the kernels (or at least - their configs) in nixpkgs or else you will guarantee lots and lots + their configs) in Nixpkgs or else you will guarantee lots and lots of pain to users trying to switch to an older kernel because of some hardware problems with a new one. @@ -42,6 +42,12 @@ with stdenv.lib; SCHEDSTATS n DETECT_HUNG_TASK y + # Bump the maximum number of CPUs to support systems like EC2 x1.* + # instances and Xeon Phi. + ${optionalString (stdenv.system == "x86_64-linux") '' + NR_CPUS 384 + ''} + # Unix domain sockets. UNIX y @@ -61,6 +67,7 @@ with stdenv.lib; ${optionalString (versionOlder version "3.10") '' USB_SUSPEND y ''} + PM_WAKELOCKS y # Support drivers that need external firmware. STANDALONE n @@ -92,9 +99,6 @@ with stdenv.lib; DONGLE y # Serial dongle support HIPPI y MTD_COMPLEX_MAPPINGS y # needed for many devices - ${optionalString (versionOlder version "3.2") '' - NET_POCKET y # enable pocket and portable adapters - ''} SCSI_LOWLEVEL y # enable lots of SCSI devices SCSI_LOWLEVEL_PCMCIA y SCSI_SAS_ATA y # added to enable detection of hard drive @@ -131,9 +135,7 @@ with stdenv.lib; HOSTAP_FIRMWARE_NVRAM? y ATH9K_PCI? y # Detect Atheros AR9xxx cards on PCI(e) bus ATH9K_AHB? y # Ditto, AHB bus - ${optionalString (versionAtLeast version "3.2") '' - B43_PHY_HT? y - ''} + B43_PHY_HT? y BCMA_HOST_PCI? y # Enable various FB devices. @@ -151,7 +153,7 @@ with stdenv.lib; FB_VESA y FRAMEBUFFER_CONSOLE y FRAMEBUFFER_CONSOLE_ROTATION y - ${optionalString (versionOlder version "3.9" || stdenv.system == "i686-linux") '' + ${optionalString (stdenv.system == "i686-linux") '' FB_GEODE y ''} @@ -162,11 +164,7 @@ with stdenv.lib; ''} # Allow specifying custom EDID on the kernel command line DRM_LOAD_EDID_FIRMWARE y - ${optionalString (versionOlder version "3.9") '' - DRM_RADEON_KMS? y - ''} - # Hybrid graphics support - VGA_SWITCHEROO y + VGA_SWITCHEROO y # Hybrid graphics support # Sound. SND_DYNAMIC_MINORS y @@ -225,9 +223,7 @@ with stdenv.lib; NFSD_V4_SECURITY_LABEL y ''} NFS_FSCACHE y - ${optionalString (versionAtLeast version "3.6") '' - NFS_SWAP y - ''} + NFS_SWAP y NFS_V3_ACL y ${optionalString (versionAtLeast version "3.11") '' NFS_V4_1 y # NFSv4.1 client support @@ -259,6 +255,7 @@ with stdenv.lib; DEBUG_SET_MODULE_RONX? y # Detect writes to read-only module pages # Security related features. + RANDOMIZE_BASE y STRICT_DEVMEM y # Filter access to /dev/mem SECURITY_SELINUX_BOOTPARAM_VALUE 0 # Disable SELinux by default DEVKMEM n # Disable /dev/kmem @@ -297,34 +294,31 @@ with stdenv.lib; ${optionalString (versionOlder version "4.4") '' B43_PCMCIA? y ''} - BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support - BLK_DEV_IDEACPI y # IDE ACPI support BLK_DEV_INTEGRITY y BSD_PROCESS_ACCT_V3 y BT_HCIUART_BCSP? y BT_HCIUART_H4? y # UART (H4) protocol support BT_HCIUART_LL? y - ${optionalString (versionAtLeast version "3.4") '' - BT_RFCOMM_TTY? y # RFCOMM TTY support - ''} + BT_RFCOMM_TTY? y # RFCOMM TTY support + CLEANCACHE? y CRASH_DUMP? n - ${optionalString (versionOlder version "3.1") '' - DMAR? n # experimental - ''} DVB_DYNAMIC_MINORS? y # we use udev - ${optionalString (versionAtLeast version "3.3") '' - EFI_STUB y # EFI bootloader in the bzImage itself - ''} + EFI_STUB y # EFI bootloader in the bzImage itself FHANDLE y # used by systemd + FRONTSWAP y FUSION y # Fusion MPT device support - IDE_GD_ATAPI y # ATAPI floppy support + IDE n # deprecated IDE support + ${optionalString (versionAtLeast version "4.3") '' + IDLE_PAGE_TRACKING y + ''} IRDA_ULTRA y # Ultra (connectionless) protocol JOYSTICK_IFORCE_232? y # I-Force Serial joysticks and wheels JOYSTICK_IFORCE_USB? y # I-Force USB joysticks and wheels JOYSTICK_XPAD_FF? y # X-Box gamepad rumble support JOYSTICK_XPAD_LEDS? y # LED Support for Xbox360 controller 'BigX' LED + KEXEC_FILE? y + KEXEC_JUMP? y LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support - LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback LOGO n # not needed MEDIA_ATTACH y @@ -343,12 +337,9 @@ with stdenv.lib; PPP_MULTILINK y # PPP multilink support PPP_FILTER y REGULATOR y # Voltage and Current Regulator Support - ${optionalString (versionAtLeast version "3.6") '' - RC_DEVICES? y # Enable IR devices - ''} - ${optionalString (versionAtLeast version "3.10") '' - RT2800USB_RT55XX y - ''} + RC_DEVICES? y # Enable IR devices + RT2800USB_RT55XX y + SCHED_AUTOGROUP y SCSI_LOGGING y # SCSI logging facility SERIAL_8250 y # 8250/16550 and compatible serial support SLIP_COMPRESSED y # CSLIP compressed headers @@ -363,6 +354,9 @@ with stdenv.lib; ''} USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators USB_EHCI_TT_NEWSCHED y # Improved transaction translator scheduling + ${optionalString (versionAtLeast version "4.3") '' + USERFAULTFD y + ''} X86_CHECK_BIOS_CORRUPTION y X86_MCE y @@ -373,16 +367,14 @@ with stdenv.lib; NAMESPACES? y # Required by 'unshare' used by 'nixos-install' RT_GROUP_SCHED? y CGROUP_DEVICE? y - ${if versionAtLeast version "3.6" then '' - MEMCG y - MEMCG_SWAP y - '' else '' - CGROUP_MEM_RES_CTLR y - CGROUP_MEM_RES_CTLR_SWAP y - ''} + MEMCG y + MEMCG_SWAP y ${optionalString (versionOlder version "4.7") "DEVPTS_MULTIPLE_INSTANCES y"} BLK_DEV_THROTTLING y CFQ_GROUP_IOSCHED y + ${optionalString (versionAtLeast version "4.3") '' + CGROUP_PIDS y + ''} # Enable staging drivers. These are somewhat experimental, but # they generally don't hurt. @@ -400,9 +392,7 @@ with stdenv.lib; FTRACE_SYSCALLS y SCHED_TRACER y STACK_TRACER y - ${optionalString (versionAtLeast version "3.10") '' - UPROBE_EVENT y - ''} + UPROBE_EVENT y ${optionalString (versionAtLeast version "4.4") '' BPF_SYSCALL y BPF_EVENTS y @@ -414,28 +404,18 @@ with stdenv.lib; DEVTMPFS y # Easier debugging of NFS issues. - ${optionalString (versionAtLeast version "3.4") '' - SUNRPC_DEBUG y - ''} + SUNRPC_DEBUG y # Virtualisation. PARAVIRT? y - ${if versionAtLeast version "3.10" then '' - HYPERVISOR_GUEST y - '' else '' - PARAVIRT_GUEST? y - ''} + HYPERVISOR_GUEST y + PARAVIRT_SPINLOCKS? y KVM_APIC_ARCHITECTURE y KVM_ASYNC_PF y - ${optionalString (versionOlder version "3.7") '' - KVM_CLOCK? y - ''} ${optionalString (versionAtLeast version "4.0") '' KVM_COMPAT? y ''} - ${optionalString (versionAtLeast version "3.10") '' - KVM_DEVICE_ASSIGNMENT? y - ''} + KVM_DEVICE_ASSIGNMENT? y ${optionalString (versionAtLeast version "4.0") '' KVM_GENERIC_DIRTYLOG_READ_PROTECT y ''} @@ -470,28 +450,22 @@ with stdenv.lib; ${optionalString (!stdenv.is64bit) '' HIGHMEM64G? y # We need 64 GB (PAE) support for Xen guest support. ''} - ${optionalString (versionAtLeast version "3.9" && stdenv.is64bit) '' + ${optionalString (stdenv.is64bit) '' VFIO_PCI_VGA y ''} VIRT_DRIVERS y # Media support. - ${optionalString (versionAtLeast version "3.6") '' - MEDIA_DIGITAL_TV_SUPPORT y - MEDIA_CAMERA_SUPPORT y - MEDIA_RC_SUPPORT y - ''} - ${optionalString (versionAtLeast version "3.7") '' - MEDIA_USB_SUPPORT y - ${optionalString (!(features.chromiumos or false)) '' - MEDIA_PCI_SUPPORT y - ''} + MEDIA_DIGITAL_TV_SUPPORT y + MEDIA_CAMERA_SUPPORT y + MEDIA_RC_SUPPORT y + MEDIA_USB_SUPPORT y + ${optionalString (!(features.chromiumos or false)) '' + MEDIA_PCI_SUPPORT y ''} # Our initrd init uses shebang scripts, so can't be modular. - ${optionalString (versionAtLeast version "3.10") '' - BINFMT_SCRIPT y - ''} + BINFMT_SCRIPT y # For systemd-binfmt BINFMT_MISC? y @@ -506,10 +480,9 @@ with stdenv.lib; TRANSPARENT_HUGEPAGE_MADVISE? y # zram support (e.g for in-memory compressed swap). - ${optionalString (versionAtLeast version "3.4") '' - ZSMALLOC y - ''} + ZSMALLOC y ZRAM m + ZSWAP y # Enable PCIe and USB for the brcmfmac driver BRCMFMAC_USB? y diff --git a/pkgs/os-specific/linux/kernel/ecryptfs-fix-mmap-bug.patch b/pkgs/os-specific/linux/kernel/ecryptfs-fix-mmap-bug.patch new file mode 100644 index 00000000000..7f94669a9f4 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/ecryptfs-fix-mmap-bug.patch @@ -0,0 +1,20 @@ +Signed-off-by: Tyler Hicks +Tested-by: Tyler Hicks # 4.4.y, 3.18.y +Cc: # 4.5- +--- + fs/ecryptfs/kthread.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c +index e818f5a..b9faeab 100644 +--- a/fs/ecryptfs/kthread.c ++++ b/fs/ecryptfs/kthread.c +@@ -171,7 +171,7 @@ int ecryptfs_privileged_open(struct file **lower_file, + goto out; + } + have_file: +- if ((*lower_file)->f_op->mmap == NULL) { ++ if ((*lower_file)->f_op->mmap == NULL && !d_is_dir(lower_dentry)) { + fput(*lower_file); + *lower_file = NULL; + rc = -EMEDIUMTYPE; diff --git a/pkgs/os-specific/linux/kernel/linux-4.6.nix b/pkgs/os-specific/linux/kernel/linux-4.6.nix index d5ea9039891..c0849942f4f 100644 --- a/pkgs/os-specific/linux/kernel/linux-4.6.nix +++ b/pkgs/os-specific/linux/kernel/linux-4.6.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.6.3"; + version = "4.6.4"; extraMeta.branch = "4.6"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0rq9cciabw5gfi2z30fcwh6z4zm2fgp938xmblfw59hyjj98h60k"; + sha256 = "0zpz29hgwdwkil6rakn08bdq77qjcz8q18qlkfc43s84f4fd8s45"; }; kernelPatches = args.kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-grsecurity.nix b/pkgs/os-specific/linux/kernel/linux-grsecurity.nix index d5ea9039891..c0849942f4f 100644 --- a/pkgs/os-specific/linux/kernel/linux-grsecurity.nix +++ b/pkgs/os-specific/linux/kernel/linux-grsecurity.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.6.3"; + version = "4.6.4"; extraMeta.branch = "4.6"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "0rq9cciabw5gfi2z30fcwh6z4zm2fgp938xmblfw59hyjj98h60k"; + sha256 = "0zpz29hgwdwkil6rakn08bdq77qjcz8q18qlkfc43s84f4fd8s45"; }; kernelPatches = args.kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 27e3681fdba..37e5da5a905 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "4.7-rc6"; - modDirVersion = "4.7.0-rc6"; + version = "4.7-rc7"; + modDirVersion = "4.7.0-rc7"; extraMeta.branch = "4.7"; src = fetchurl { url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz"; - sha256 = "1kli8m6xkpdp45ryx6aq894q5dvrl1s7h3g1akk0l7xp6grshk8r"; + sha256 = "11c87rhxlrmag9hhg1m8zfff0d52yrzvhyjj9dxfa3nmxj4sfbb7"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 103e2235532..7b2feaf84a8 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgs }: +{ stdenv, fetchurl, fetchpatch, pkgs }: let @@ -93,9 +93,9 @@ rec { grsecurity_4_4 = throw "grsecurity stable is no longer supported"; grsecurity_testing = grsecPatch - { kver = "4.6.3"; - grrev = "201607070721"; - sha256 = "1858zc77x1qbwwfhjlmffd21w4adsw9f3sycg6bksw2jxrhlzww5"; + { kver = "4.6.4"; + grrev = "201607112205"; + sha256 = "16j01qqa7yi5yvli1lkl8ffybhy4697nyi18lbl5329zd09xq2ww"; }; # This patch relaxes grsec constraints on the location of usermode helpers, @@ -140,4 +140,16 @@ rec { { name = "qat_common_Makefile"; patch = ./qat_common_Makefile.patch; }; + + hiddev_CVE_2016_5829 = + { name = "hiddev_CVE_2016_5829"; + patch = fetchpatch { + url = "https://sources.debian.net/data/main/l/linux/4.6.3-1/debian/patches/bugfix/all/HID-hiddev-validate-num_values-for-HIDIOCGUSAGES-HID.patch"; + sha256 = "14rm1qr87p7a5prz8g5fwbpxzdp3ighj095x8rvhm8csm20wspyy"; + }; + }; + ecryptfs_fix_mmap_bug = + { name = "ecryptfs_fix_mmap_bug"; + patch = ./ecryptfs-fix-mmap-bug.patch; + }; } diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix new file mode 100644 index 00000000000..5328743d8b8 --- /dev/null +++ b/pkgs/os-specific/linux/wireguard/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchgit, libmnl, kernel }: + +stdenv.mkDerivation rec { + name = "wireguard-${version}"; + version = "20160708"; + + src = fetchgit { + url = "https://git.zx2c4.com/WireGuard"; + rev = "dcc2583fe0618931e51aedaeeddde356d123acb2"; + sha256 = "1ciyjpp8c3fv95y1cypk9qyqynp8cqyh2676afq2hd33110d37ni"; + }; + + preConfigure = '' + cd src + sed -i /depmod/d Makefile + ''; + + buildInputs = [ libmnl ]; + + KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + + makeFlags = [ + "DESTDIR=$(out)" + "PREFIX=/" + "INSTALL_MOD_PATH=$(out)" + ]; + + meta = with stdenv.lib; { + homepage = https://www.wireguard.io/; + description = "Fast, modern, secure VPN tunnel"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/computing/storm/default.nix b/pkgs/servers/computing/storm/default.nix index cab91409654..cf57e653c49 100644 --- a/pkgs/servers/computing/storm/default.nix +++ b/pkgs/servers/computing/storm/default.nix @@ -1,49 +1,65 @@ -{ stdenv, fetchurl, zip, unzip, jzmq, jdk, lib, python, logsDir ? "", confFile ? "", extraLibraryPaths ? [], extraJars ? [] }: +{ stdenv, lib, fetchurl, zip, unzip, makeWrapper +, jzmq, jdk, python +, logsDir ? "", confFile ? "", extraLibraryPaths ? [], extraJars ? [] }: -stdenv.mkDerivation { - name = "storm-0.8.2"; +stdenv.mkDerivation rec { + name = "apache-storm-" + version; + version = "1.0.1"; src = fetchurl { - url = https://dl.dropbox.com/u/133901206/storm-0.8.2.zip; - sha256 = "8761aea0b54e5bab4a68b259bbe6b5b2f8226204488b5559eba57a0c458b2bbc"; + url = + "mirror://apache/storm/${name}/${name}.tar.gz"; + sha256 = "1gr00s0fhf8ci0faf3x5dinkiw9mlnc1x1vqki8cfszvij6w0x0m"; }; buildInputs = [ zip unzip jzmq ]; installPhase = '' - # Remove junk - rm -f lib/jzmq* - mkdir -p $out/bin - mv bin/storm $out/bin/ - rm -R bin conf logs + mkdir -p $out/share/${name} + mv public $out/docs + mv examples $out/share/${name}/. - # Fix shebang header for python scripts - sed -i -e "s|#!/usr/bin/.*python|#!${python}/bin/python|" $out/bin/storm; + rm -f lib/jzmq* || exit 1 + mv lib $out/. + mv external extlib* $out/lib/. + mv conf bin $out/. + mv log4j2 $out/conf/. + ''; - mkdir -p $out/conf - cp -av * $out - - cd $out; - ${if logsDir != "" then ''ln -s ${logsDir} logs'' else ""} - - # Extract, delete from zip; and optionally append to defaults.yaml - unzip storm-*.jar defaults.yaml; - zip -d storm-*.jar defaults.yaml; - echo 'java.library.path: "${jzmq}/lib:${lib.concatStringsSep ":" extraLibraryPaths}"' >> defaults.yaml; + fixupPhase = '' + # Fix python reference + sed -i \ + -e '19iPYTHON=${python}/bin/python' \ + -e 's|#!/usr/bin/.*python|#!${python}/bin/python|' \ + $out/bin/storm + sed -i \ + -e 's|#!/usr/bin/.*python|#!${python}/bin/python|' \ + -e "s|STORM_CONF_DIR = .*|STORM_CONF_DIR = os.getenv('STORM_CONF_DIR','$out/conf')|" \ + -e 's|STORM_LOG4J2_CONF_DIR =.*|STORM_LOG4J2_CONF_DIR = os.path.join(STORM_CONF_DIR, "log4j2")|' \ + $out/bin/storm.py + # Default jdk location + sed -i -e 's|#.*export JAVA_HOME=.*|export JAVA_HOME="${jdk.home}"|' \ + $out/conf/storm-env.sh + unzip $out/lib/storm-core-${version}.jar defaults.yaml; + zip -d $out/lib/storm-core-${version}.jar defaults.yaml; + sed -i \ + -e 's|java.library.path: .*|java.library.path: "${jzmq}/lib:${lib.concatStringsSep ":" extraLibraryPaths}"|' \ + -e 's|storm.log4j2.conf.dir: .*|storm.log4j2.conf.dir: "conf/log4j2"|' \ + defaults.yaml ${if confFile != "" then ''cat ${confFile} >> defaults.yaml'' else ""} - mv defaults.yaml conf; + mv defaults.yaml $out/conf; # Link to jzmq jar and extra jars - cd lib; + cd $out/lib; ln -s ${jzmq}/share/java/*.jar; ${lib.concatMapStrings (jar: "ln -s ${jar};\n") extraJars} ''; dontStrip = true; - meta = { - homepage = "http://storm-project.net"; + meta = with stdenv.lib; { + homepage = "http://storm.apache.org"; description = "Distributed realtime computation system"; - license = stdenv.lib.licenses.epl10; - maintainers = [ lib.maintainers.vizanto ]; + license = licenses.asl20; + maintainers = with maintainers; [ edwtjo vizanto ]; }; } diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix index e1325ec38c1..b9cc038479d 100644 --- a/pkgs/servers/emby/default.nix +++ b/pkgs/servers/emby/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "emby-${version}"; - version = "3.0.5972"; + version = "3.0.5985"; src = fetchurl { url = "https://github.com/MediaBrowser/Emby/archive/${version}.tar.gz"; - sha256 = "0dxm7m8q9w9cknp24gp30v7v8a9q8qph6gy2s1vfli38rwcnakix"; + sha256 = "16p8qr9pf6ww6xdfbsqamnpk70i4dadz30lnvliyxaaslggjbh4b"; }; propagatedBuildInputs = with pkgs; [ diff --git a/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch b/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch index 3a38340f43a..a8721a3e702 100644 --- a/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch +++ b/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch @@ -1,4 +1,4 @@ -From d7e56abcae8bcb85dc935e94418a2f0e9956941b Mon Sep 17 00:00:00 2001 +From e08583ddb8445241c38c88d828271be908d52f9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Mon, 17 Feb 2014 20:52:50 +0000 Subject: [PATCH 1/2] Import LD_LIBRARY_PATH to allow running 'scons check' @@ -9,17 +9,17 @@ Subject: [PATCH 1/2] Import LD_LIBRARY_PATH to allow running 'scons check' 1 file changed, 1 insertion(+) diff --git a/SConstruct b/SConstruct -index 14e2f59..86b94bc 100644 +index fe444a2..f73c87e 100644 --- a/SConstruct +++ b/SConstruct -@@ -215,6 +215,7 @@ import_env = ( - 'PKG_CONFIG_LIBDIR', # Pass more environment variables to pkg-config (required for crossbuilds) +@@ -220,6 +220,7 @@ import_env = ( 'STAGING_DIR', # Required by the OpenWRT and CeroWrt builds. 'STAGING_PREFIX', # Required by the OpenWRT and CeroWrt builds. + 'WRITE_PAD', # So we can test WRITE_PAD values on the fly. + 'LD_LIBRARY_PATH', # Allows running 'scons check' without 'chrpath' ) envs = {} for var in import_env: -- -1.9.0 +2.9.0 diff --git a/pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch b/pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch new file mode 100644 index 00000000000..58ae754ecfb --- /dev/null +++ b/pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch @@ -0,0 +1,31 @@ +From b4ed6e9e89e3b7d57e5de9f2c1987a489bb5628c Mon Sep 17 00:00:00 2001 +From: Alexey Shmalko +Date: Sat, 9 Jul 2016 20:54:05 +0300 +Subject: [PATCH] Use pkgconfig for dbus library + +Without this, gcc can't find library path for the dbus. + +This is already fixed upstream, so the patch shouldn't be necessary with +the next version of gpsd. +--- + SConstruct | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 0d4b29d..d8624b0 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -586,8 +586,8 @@ else: + + if env['dbus_export'] and config.CheckPKG('dbus-1'): + confdefs.append("#define HAVE_DBUS 1\n") +- dbusflags = ["-ldbus-1"] +- env.MergeFlags(pkg_config("dbus-1")) ++ dbusflags = pkg_config("dbus-1") ++ env.MergeFlags(dbusflags) + else: + confdefs.append("/* #undef HAVE_DBUS */\n") + dbusflags = [] +-- +2.9.0 + diff --git a/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch b/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch index f12d7a52ba0..3e387167d6f 100644 --- a/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch +++ b/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch @@ -1,4 +1,4 @@ -From aed93b6ada5b9b76b85d11d9bad732ca005295af Mon Sep 17 00:00:00 2001 +From 21e5295a633c8c450629106c4603b78b2de7d786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sat, 15 Mar 2014 15:08:01 +0100 Subject: [PATCH 2/2] Import XML_CATALOG_FILES to be able to validate the @@ -12,17 +12,17 @@ download DTD's and builders don't have network access... 1 file changed, 1 insertion(+) diff --git a/SConstruct b/SConstruct -index 86b94bc..a0b3d25 100644 +index f73c87e..0d4b29d 100644 --- a/SConstruct +++ b/SConstruct -@@ -216,6 +216,7 @@ import_env = ( - 'STAGING_DIR', # Required by the OpenWRT and CeroWrt builds. +@@ -221,6 +221,7 @@ import_env = ( 'STAGING_PREFIX', # Required by the OpenWRT and CeroWrt builds. + 'WRITE_PAD', # So we can test WRITE_PAD values on the fly. 'LD_LIBRARY_PATH', # Allows running 'scons check' without 'chrpath' + 'XML_CATALOG_FILES', # Enables validating the manual with 'xmlto' using nix build system ) envs = {} for var in import_env: -- -1.9.0 +2.9.0 diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix index 17325ccb291..596176d939d 100644 --- a/pkgs/servers/gpsd/default.nix +++ b/pkgs/servers/gpsd/default.nix @@ -1,50 +1,54 @@ -{ fetchurl, stdenv, scons, pythonFull, pkgconfig, dbus, dbus_glib -, ncurses, libX11, libXt, libXpm, libXaw, libXext, makeWrapper +{ fetchurl, stdenv, scons, pkgconfig, dbus, dbus_glib +, ncurses, libX11, libXt, libXpm, libXaw, libXext , libusb1, docbook_xml_dtd_412, docbook_xsl, bc , libxslt, xmlto, gpsdUser ? "gpsd", gpsdGroup ? "dialout" +, pythonPackages }: -# TODO: the 'xgps' program doesn't work: "ImportError: No module named gobject" # TODO: put the X11 deps behind a guiSupport parameter for headless support stdenv.mkDerivation rec { - name = "gpsd-3.10"; + name = "gpsd-3.16"; src = fetchurl { url = "http://download-mirror.savannah.gnu.org/releases/gpsd/${name}.tar.gz"; - sha256 = "0823hl5zgwnbgm0fq3i4z34lv76cpj0k6m0zjiygiyrxrz0w4vvh"; + sha256 = "0a90ph4qrlz5kkcz2mwkfk3cmwy9fmglp94znz2y0gsd7bqrlmq3"; }; nativeBuildInputs = [ - scons makeWrapper pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc - pythonFull + scons pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc + pythonPackages.python + pythonPackages.wrapPython ]; buildInputs = [ - pythonFull dbus dbus_glib ncurses libX11 libXt libXpm libXaw libXext + pythonPackages.python dbus dbus_glib ncurses libX11 libXt libXpm libXaw libXext libxslt libusb1 ]; + pythonPath = [ + pythonPackages.pygobject + pythonPackages.pygtk + ]; + patches = [ ./0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch ./0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch + + # TODO: remove the patch with the next release + ./0001-Use-pkgconfig-for-dbus-library.patch ]; # - leapfetch=no disables going online at build time to fetch leap-seconds # info. See /build.txt for more info. - # - chrpath=no stops the build from using 'chrpath' (which we don't have). - # 'chrpath' is used to be able to run the tests from the source tree, but - # we use $LD_LIBRARY_PATH instead. buildPhase = '' patchShebangs . - mkdir -p "$out" - sed -e "s|python_lib_dir = .*|python_lib_dir = \"$out/lib/${pythonFull.libPrefix}/site-packages\"|" -i SConstruct + sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConstruct scons prefix="$out" leapfetch=no gpsd_user=${gpsdUser} gpsd_group=${gpsdGroup} \ - systemd=yes udevdir="$out/lib/udev" chrpath=no + systemd=yes udevdir="$out/lib/udev" \ + python_libdir="$out/lib/${pythonPackages.python.libPrefix}/site-packages" ''; - doCheck = false; - checkPhase = '' export LD_LIBRARY_PATH="$PWD" scons check @@ -52,12 +56,13 @@ stdenv.mkDerivation rec { # TODO: the udev rules file and the hotplug script need fixes to work on NixOS installPhase = '' - scons install mkdir -p "$out/lib/udev/rules.d" - scons udev-install + scons install udev-install ''; - postInstall = "wrapPythonPrograms"; + postFixup = '' + wrapPythonProgramsIn $out/bin "$out $pythonPath" + ''; meta = with stdenv.lib; { description = "GPS service daemon"; @@ -82,6 +87,6 @@ stdenv.mkDerivation rec { homepage = http://catb.org/gpsd/; license = "BSD-style"; platforms = platforms.linux; - maintainers = [ maintainers.bjornfor ]; + maintainers = with maintainers; [ bjornfor rasendubi ]; }; } diff --git a/pkgs/servers/http/gatling/default.nix b/pkgs/servers/http/gatling/default.nix index 3901d24edd5..549beec674c 100644 --- a/pkgs/servers/http/gatling/default.nix +++ b/pkgs/servers/http/gatling/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, libowfat, zlib, openssl, polarssl }: +{ stdenv, fetchurl, libowfat, zlib, openssl }: let version = "0.13"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "0icjx20ws8gqxgpm77dx7p9zcwi1fv162in6igx04rmnyzyla8dl"; }; - buildInputs = [ libowfat zlib openssl polarssl ]; + buildInputs = [ libowfat zlib openssl.dev ]; configurePhase = '' substituteInPlace Makefile --replace "/usr/local" "$out" diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix index 38436f87bfb..bf8abd2c027 100644 --- a/pkgs/servers/http/nginx/default.nix +++ b/pkgs/servers/http/nginx/default.nix @@ -9,11 +9,11 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "nginx-${version}"; - version = "1.10.0"; + version = "1.10.1"; src = fetchurl { url = "http://nginx.org/download/nginx-${version}.tar.gz"; - sha256 = "0kdyqa5xaxvhz6y75ixs05mzygk3kszzdq5h0gnlrg35vp1lgmlf"; + sha256 = "00d8hxj8453c7989qd7z4f1mjp0k3ib8k29i1qyf11b4ar35ilqz"; }; diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix index 353647f15b3..f4da2f6fcda 100644 --- a/pkgs/shells/fish/default.nix +++ b/pkgs/shells/fish/default.nix @@ -8,13 +8,13 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "fish-${version}"; - version = "2.3.0"; + version = "2.3.1"; patches = [ ./etc_config.patch ]; src = fetchurl { url = "http://fishshell.com/files/${version}/${name}.tar.gz"; - sha256 = "1ralmp7lavdl0plc09ppm232aqsn0crxx6m3hgaa06ibam3sqawi"; + sha256 = "0r46p64lg6da3v6chsa4gisvl04kd3rpy60yih8r870kbp9wm2ij"; }; buildInputs = [ ncurses libiconv pcre2 ]; diff --git a/pkgs/shells/oh-my-zsh/default.nix b/pkgs/shells/oh-my-zsh/default.nix index 5191e7cd45c..5a1c74fe442 100644 --- a/pkgs/shells/oh-my-zsh/default.nix +++ b/pkgs/shells/oh-my-zsh/default.nix @@ -7,12 +7,12 @@ stdenv.mkDerivation rec { name = "oh-my-zsh-git-${version}"; - version = "2016-06-18"; + version = "2016-07-05"; src = fetchgit { url = "https://github.com/robbyrussell/oh-my-zsh"; - rev = "d012402dada1ec7d8796f2f4b04744d817137b4d"; - sha256 = "1965k91jdhjpy2dkklzwcxmq6qqjc7cnwl8x670g51jr4ihawkx1"; + rev = "644bc641ad48c74c88631d79d48ec9b6f3f5a3e5"; + sha256 = "1lmblfcd68pnc38bn6yjqs7sap5qinj37xv881a1rx4q0w38an07"; }; phases = "installPhase"; diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix index 09b7769dc45..deefb6bbad2 100644 --- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix +++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix @@ -6,8 +6,8 @@ rec { coreutils_ = coreutils.override (args: { # We want coreutils without ACL support. aclSupport = false; - # Our tooling currently can't handle scripts in bin/, only ELFs and symlinks. - singleBinary = "symlinks"; + # Cannot use a single binary build, or it gets dynamically linked against gmp. + singleBinary = false; }); # Avoid debugging larger changes for now. diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix index e903601c81d..d033371cbcd 100644 --- a/pkgs/tools/cd-dvd/brasero/default.nix +++ b/pkgs/tools/cd-dvd/brasero/default.nix @@ -1,6 +1,6 @@ { stdenv, lib, fetchurl, pkgconfig, gtk3, itstool, gst_all_1, libxml2, libnotify , libcanberra_gtk3, intltool, makeWrapper, dvdauthor, libburn, libisofs -, vcdimager, wrapGAppsHook }: +, vcdimager, wrapGAppsHook, hicolor_icon_theme }: # libdvdcss is "too old" (in fast "too new"), see https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/611590 @@ -21,6 +21,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig itstool intltool wrapGAppsHook ]; buildInputs = [ gtk3 libxml2 libnotify libcanberra_gtk3 libburn libisofs + hicolor_icon_theme gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly gst_all_1.gst-libav ]; diff --git a/pkgs/tools/graphics/glmark2/default.nix b/pkgs/tools/graphics/glmark2/default.nix index 12ae9b6d89b..b794d7ffbef 100644 --- a/pkgs/tools/graphics/glmark2/default.nix +++ b/pkgs/tools/graphics/glmark2/default.nix @@ -1,19 +1,22 @@ -{ stdenv, fetchurl, pkgconfig, libjpeg, libpng12, xorg, libX11, mesa, libdrm, python27 }: +{ stdenv, fetchFromGitHub, pkgconfig, libjpeg, libpng, xorg, libX11, mesa, libdrm, python27, wayland }: + stdenv.mkDerivation rec { name = "glmark2-${version}"; - version = "2014.03"; + version = "2015-06-11"; - src = fetchurl { - url = "https://launchpad.net/glmark2/trunk/${version}/+download/${name}.tar.gz"; - sha256 = "1dgn7ln115ivk13d1yagpj06lgllpv2jrr41kcnhdkhqz6m43vdx"; + src = fetchFromGitHub { + owner = "glmark2"; + repo = "glmark2"; + rev = "fa71af2dfab711fac87b9504b6fc9862f44bf72a"; + sha256 = "1razwrmwk94wf8y7rnqpas9520gidixzcwa65pg946n823105znw"; }; buildInputs = [ - pkgconfig libjpeg libpng12 xorg.libxcb libX11 mesa libdrm python27 + pkgconfig libjpeg libpng xorg.libxcb libX11 mesa libdrm python27 wayland ]; buildPhase = '' - python ./waf configure --prefix=$out --with-flavors x11-gl,x11-glesv2 + python ./waf configure --prefix=$out --with-flavors x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2 python2 ./waf ''; @@ -23,7 +26,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "OpenGL (ES) 2.0 benchmark"; - homepage = https://launchpad.net/glmark2; + homepage = https://github.com/glmark2/glmark2; license = licenses.gpl3Plus; longDescription = '' glmark2 is a benchmark for OpenGL (ES) 2.0. It uses only the subset of @@ -33,4 +36,3 @@ stdenv.mkDerivation rec { maintainers = [ maintainers.wmertens ]; }; } - diff --git a/pkgs/tools/inputmethods/fcitx/default.nix b/pkgs/tools/inputmethods/fcitx/default.nix index ba3a3f76ed9..69e4425d8c3 100644 --- a/pkgs/tools/inputmethods/fcitx/default.nix +++ b/pkgs/tools/inputmethods/fcitx/default.nix @@ -1,51 +1,11 @@ -{ stdenv, fetchurl, pkgconfig, cmake, intltool, gettext -, libxml2, enchant, isocodes, icu, libpthreadstubs -, pango, cairo, libxkbfile, libXau, libXdmcp, libxkbcommon -, dbus, gtk2, gtk3, qt4, kde5 -}: +{ callPackage, plugins ? [] }: -stdenv.mkDerivation rec { - name = "fcitx-${version}"; - version = "4.2.9.1"; - - src = fetchurl { - url = "http://download.fcitx-im.org/fcitx/${name}_dict.tar.xz"; - sha256 = "0xvcmm4yi7kagf55d0yl3ql5ssbkm9410fwbz3kd988pchichdsk"; +let + unwrapped = callPackage ./unwrapped.nix { }; + wrapped = callPackage ./wrapper.nix { + plugins = plugins; + fcitx = unwrapped; }; - - postUnpack = '' - ln -s ${kde5.extra-cmake-modules}/share/ECM/modules/ECMFindModuleHelpers.cmake \ - $sourceRoot/cmake/ - ''; - - patches = [ ./fcitx-ecm.patch ]; - - postPatch = '' - substituteInPlace src/frontend/qt/CMakeLists.txt \ - --replace $\{QT_PLUGINS_DIR} $out/lib/qt4/plugins - ''; - - buildInputs = [ - cmake enchant gettext isocodes pkgconfig intltool icu - libpthreadstubs libXau libXdmcp libxkbfile libxkbcommon libxml2 - dbus cairo gtk2 gtk3 pango qt4 - ]; - - cmakeFlags = '' - -DENABLE_QT_IM_MODULE=ON - -DENABLE_GTK2_IM_MODULE=ON - -DENABLE_GTK3_IM_MODULE=ON - -DENABLE_GIR=OFF - -DENABLE_OPENCC=OFF - -DENABLE_PRESAGE=OFF - -DENABLE_XDGAUTOSTART=OFF - ''; - - meta = with stdenv.lib; { - homepage = "https://github.com/fcitx/fcitx"; - description = "A Flexible Input Method Framework"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ ericsagnes ]; - }; -} +in if plugins == [] + then unwrapped + else wrapped diff --git a/pkgs/tools/inputmethods/fcitx/unwrapped.nix b/pkgs/tools/inputmethods/fcitx/unwrapped.nix new file mode 100644 index 00000000000..ba3a3f76ed9 --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx/unwrapped.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, pkgconfig, cmake, intltool, gettext +, libxml2, enchant, isocodes, icu, libpthreadstubs +, pango, cairo, libxkbfile, libXau, libXdmcp, libxkbcommon +, dbus, gtk2, gtk3, qt4, kde5 +}: + +stdenv.mkDerivation rec { + name = "fcitx-${version}"; + version = "4.2.9.1"; + + src = fetchurl { + url = "http://download.fcitx-im.org/fcitx/${name}_dict.tar.xz"; + sha256 = "0xvcmm4yi7kagf55d0yl3ql5ssbkm9410fwbz3kd988pchichdsk"; + }; + + postUnpack = '' + ln -s ${kde5.extra-cmake-modules}/share/ECM/modules/ECMFindModuleHelpers.cmake \ + $sourceRoot/cmake/ + ''; + + patches = [ ./fcitx-ecm.patch ]; + + postPatch = '' + substituteInPlace src/frontend/qt/CMakeLists.txt \ + --replace $\{QT_PLUGINS_DIR} $out/lib/qt4/plugins + ''; + + buildInputs = [ + cmake enchant gettext isocodes pkgconfig intltool icu + libpthreadstubs libXau libXdmcp libxkbfile libxkbcommon libxml2 + dbus cairo gtk2 gtk3 pango qt4 + ]; + + cmakeFlags = '' + -DENABLE_QT_IM_MODULE=ON + -DENABLE_GTK2_IM_MODULE=ON + -DENABLE_GTK3_IM_MODULE=ON + -DENABLE_GIR=OFF + -DENABLE_OPENCC=OFF + -DENABLE_PRESAGE=OFF + -DENABLE_XDGAUTOSTART=OFF + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/fcitx/fcitx"; + description = "A Flexible Input Method Framework"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ ericsagnes ]; + }; +} diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix index bde6ed54eed..9a3e0b905e1 100644 --- a/pkgs/tools/misc/alarm-clock-applet/default.nix +++ b/pkgs/tools/misc/alarm-clock-applet/default.nix @@ -8,6 +8,7 @@ , libunique , intltool , gst_plugins ? with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly ] +, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -35,17 +36,13 @@ stdenv.mkDerivation rec { libxml2 libunique intltool + wrapGAppsHook ]; propagatedUserEnvPkgs = [ gnome.GConf.out ]; enableParallelBuilding = true; - preFixup = '' - wrapProgram $out/bin/alarm-clock-applet \ - --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" - ''; - meta = with stdenv.lib; { homepage = http://alarm-clock.pseudoberries.com/; description = "A fully-featured alarm clock for your GNOME panel or equivalent"; diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix index deb915c9a5e..46c056ef0c0 100644 --- a/pkgs/tools/misc/autorandr/default.nix +++ b/pkgs/tools/misc/autorandr/default.nix @@ -1,29 +1,36 @@ { fetchgit , stdenv , enableXRandr ? true, xrandr ? null -, enableDisper ? false, disper ? null +, enableDisper ? true, disper ? null +, python , xdpyinfo }: assert enableXRandr -> xrandr != null; assert enableDisper -> disper != null; let - rev = "4f5e2401ef"; + # Revision and date taken from the legacy tree, which still + # supports disper: + # https://github.com/phillipberndt/autorandr/tree/legacy + rev = "59f6aec0bb72e26751ce285d079e085b7178e45d"; + date = "20150127"; in stdenv.mkDerivation { - name = "autorandr-${rev}"; + name = "autorandr-${date}"; src = fetchgit { inherit rev; - url = "https://github.com/wertarbyte/autorandr.git"; - sha256 = "1x8agg6mf5jr0imw7dznr8kxyw970bf252bda9q7b0z4yksya2zd"; + url = "https://github.com/phillipberndt/autorandr.git"; + sha256 = "0mnggsp42477kbzwwn65gi8y0rydk10my9iahikvs6n43lphfa1f"; }; patchPhase = '' substituteInPlace "autorandr" \ --replace "/usr/bin/xrandr" "${if enableXRandr then xrandr else "/nowhere"}/bin/xrandr" \ --replace "/usr/bin/disper" "${if enableDisper then disper else "/nowhere"}/bin/disper" \ - --replace "/usr/bin/xdpyinfo" "${xdpyinfo}/bin/xdpyinfo" + --replace "/usr/bin/xdpyinfo" "${xdpyinfo}/bin/xdpyinfo" \ + --replace "which xxd" "false" \ + --replace "python" "${python}/bin/python" ''; installPhase = '' diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix index eda2bfa0270..b58ae6505dc 100644 --- a/pkgs/tools/misc/cloc/default.nix +++ b/pkgs/tools/misc/cloc/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "cloc-${version}"; - version = "1.68"; + version = "1.70"; src = fetchFromGitHub { owner = "AlDanial"; repo = "cloc"; rev = "v${version}"; - sha256 = "17n6w7rd17h4q4cnjg4hxcfpx4plp40gd58bdyig9lsfbn6xcjxj"; + sha256 = "1abkfkjn4fxplq33cwqjmgxabk2x6ij2klqn0w4a0lj82a7xx10x"; }; sourceRoot = "cloc-v${version}-src/Unix"; diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix index 9347b5f9bbe..e1072754b23 100644 --- a/pkgs/tools/misc/mc/default.nix +++ b/pkgs/tools/misc/mc/default.nix @@ -2,11 +2,12 @@ , libX11, libICE, perl, zip, unzip, gettext, slang}: stdenv.mkDerivation rec { - name = "mc-4.8.16"; + name = "mc-${version}"; + version = "4.8.17"; src = fetchurl { - url = http://www.midnight-commander.org/downloads/mc-4.8.16.tar.bz2; - sha256 = "1y5apnp6sc9sn13m6816hlrr0dis1z7wsnffldsx7xlkvyas8zn3"; + url = "http://www.midnight-commander.org/downloads/${name}.tar.bz2"; + sha256 = "0fvqzffppj0aja9hi0k1xdjg5m6s99immlla1y9yzn5fp8vwpl36"; }; buildInputs = [ pkgconfig perl glib gpm slang zip unzip file gettext libX11 libICE e2fsprogs ]; diff --git a/pkgs/tools/misc/rcm/default.nix b/pkgs/tools/misc/rcm/default.nix index 59eccbb1ab6..efc42ee73ec 100644 --- a/pkgs/tools/misc/rcm/default.nix +++ b/pkgs/tools/misc/rcm/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl }: stdenv.mkDerivation { - name = "rcm-1.2.3"; + name = "rcm-1.3.0"; src = fetchurl { - url = https://thoughtbot.github.io/rcm/dist/rcm-1.2.3.tar.gz; - sha256 = "0gwpclbc152jkclj3w83s2snx3dcgljwr75q1z8czl3yar7d8bsh"; + url = https://thoughtbot.github.io/rcm/dist/rcm-1.3.0.tar.gz; + sha256 = "ddcf638b367b0361d8e063c29fd573dbe1712d1b83e8d5b3a868e4aa45ffc847"; }; patches = [ ./fix-rcmlib-path.patch ]; diff --git a/pkgs/tools/misc/rcm/fix-rcmlib-path.patch b/pkgs/tools/misc/rcm/fix-rcmlib-path.patch index 45bd32a2d2b..e7d600d2a1f 100644 --- a/pkgs/tools/misc/rcm/fix-rcmlib-path.patch +++ b/pkgs/tools/misc/rcm/fix-rcmlib-path.patch @@ -1,68 +1,48 @@ -*** rcm-1.2.3/bin/lsrc.in.orig 2014-05-09 04:57:39.000000000 -0700 ---- rcm-1.2.3/bin/lsrc.in 2015-01-24 14:27:48.786595479 -0800 -*************** -*** 1,6 **** - #!@SHELL@ - -! : ${RCM_LIB:=$(dirname "$0")/../share/rcm} - . "$RCM_LIB/rcm.sh" - - pushdir() { ---- 1,6 ---- - #!@SHELL@ - -! RCM_LIB=@rcm@/share/rcm - . "$RCM_LIB/rcm.sh" - - pushdir() { -*** rcm-1.2.3/bin/mkrc.in.orig 2014-05-09 04:57:39.000000000 -0700 ---- rcm-1.2.3/bin/mkrc.in 2015-01-24 14:27:48.786595479 -0800 -*************** -*** 1,6 **** - #!@SHELL@ - -! : ${RCM_LIB:=$(dirname "$0")/../share/rcm} - . "$RCM_LIB/rcm.sh" - - destination() { ---- 1,6 ---- - #!@SHELL@ - -! RCM_LIB=@rcm@/share/rcm - . "$RCM_LIB/rcm.sh" - - destination() { -*** rcm-1.2.3/bin/rcdn.in.orig 2014-05-09 04:57:39.000000000 -0700 ---- rcm-1.2.3/bin/rcdn.in 2015-01-24 14:27:48.786595479 -0800 -*************** -*** 1,6 **** - #!@SHELL@ - -! : ${RCM_LIB:=$(dirname "$0")/../share/rcm} - . "$RCM_LIB/rcm.sh" - - remove_link() { ---- 1,6 ---- - #!@SHELL@ - -! RCM_LIB=@rcm@/share/rcm - . "$RCM_LIB/rcm.sh" - - remove_link() { -*** rcm-1.2.3/bin/rcup.in.orig 2014-05-09 04:57:39.000000000 -0700 ---- rcm-1.2.3/bin/rcup.in 2015-01-24 14:27:48.786595479 -0800 -*************** -*** 1,6 **** - #!@SHELL@ - -! : ${RCM_LIB:=$(dirname "$0")/../share/rcm} - . "$RCM_LIB/rcm.sh" - - link_or_copy() { ---- 1,6 ---- - #!@SHELL@ - -! RCM_LIB=@rcm@/share/rcm - . "$RCM_LIB/rcm.sh" - - link_or_copy() { +diff --git a/bin/lsrc.in b/bin/lsrc.in +index fcf5fbe..119d659 100755 +--- a/bin/lsrc.in ++++ b/bin/lsrc.in +@@ -1,6 +1,6 @@ + #!@SHELL@ + +-: ${RCM_LIB:=$(dirname "$0")/../share/rcm} ++RCM_LIB=@rcm@/share/rcm + . "$RCM_LIB/rcm.sh" + + pushdir() { +diff --git a/bin/mkrc.in b/bin/mkrc.in +index da22a63..a6bb0ad 100755 +--- a/bin/mkrc.in ++++ b/bin/mkrc.in +@@ -1,6 +1,6 @@ + #!@SHELL@ + +-: ${RCM_LIB:=$(dirname "$0")/../share/rcm} ++RCM_LIB=@rcm@/share/rcm + . "$RCM_LIB/rcm.sh" + + destination() { +diff --git a/bin/rcdn.in b/bin/rcdn.in +index ae7aad8..c210599 100755 +--- a/bin/rcdn.in ++++ b/bin/rcdn.in +@@ -1,6 +1,6 @@ + #!@SHELL@ + +-: ${RCM_LIB:=$(dirname "$0")/../share/rcm} ++RCM_LIB=@rcm@/share/rcm + . "$RCM_LIB/rcm.sh" + + remove_link() { +diff --git a/bin/rcup.in b/bin/rcup.in +index bdae664..2076f53 100755 +--- a/bin/rcup.in ++++ b/bin/rcup.in +@@ -1,6 +1,6 @@ + #!@SHELL@ + +-: ${RCM_LIB:=$(dirname "$0")/../share/rcm} ++RCM_LIB=@rcm@/share/rcm + . "$RCM_LIB/rcm.sh" + + print_ln_v() { diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix index bf1efdc6298..b6f55bdcc20 100644 --- a/pkgs/tools/misc/youtube-dl/default.nix +++ b/pkgs/tools/misc/youtube-dl/default.nix @@ -12,11 +12,11 @@ buildPythonApplication rec { name = "youtube-dl-${version}"; - version = "2016.07.03.1"; + version = "2016.07.09.2"; src = fetchurl { url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz"; - sha256 = "0qyi2g0i2gl04hqn587w0c5x1pnpkn6l07fhnbfpnqq7fyw1hndy"; + sha256 = "0qs99ss1w22apx3n2173j5mly7h0ngfgkkgz07bn30235saf0fd3"; }; buildInputs = [ makeWrapper zip pandoc ]; diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix index b05f4e8e80e..14bde9a5fa5 100644 --- a/pkgs/tools/networking/dnsmasq/default.nix +++ b/pkgs/tools/networking/dnsmasq/default.nix @@ -11,11 +11,11 @@ let ]); in stdenv.mkDerivation rec { - name = "dnsmasq-2.75"; + name = "dnsmasq-2.76"; src = fetchurl { url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.xz"; - sha256 = "1wa1d4if9q6k3hklv8xi06a59k3aqb7pik8rhi2l53i99hflw334"; + sha256 = "15lzih6671gh9knzpl8mxchiml7z5lfqzr7jm2r0rjhrxs6nk4jb"; }; preBuild = '' @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { hardeningEnable = [ "pie" ]; postBuild = optionalString stdenv.isLinux '' - make -C contrib/wrt + make -C contrib/lease-tools ''; # XXX: Does the systemd service definition really belong here when our NixOS @@ -41,8 +41,9 @@ stdenv.mkDerivation rec { install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf '' + optionalString stdenv.isLinux '' install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf - install -Dm755 contrib/wrt/dhcp_lease_time $out/bin/dhcp_lease_time - install -Dm755 contrib/wrt/dhcp_release $out/bin/dhcp_release + install -Dm755 contrib/lease-tools/dhcp_lease_time $out/bin/dhcp_lease_time + install -Dm755 contrib/lease-tools/dhcp_release $out/bin/dhcp_release + install -Dm755 contrib/lease-tools/dhcp_release6 $out/bin/dhcp_release6 mkdir -p $out/share/dbus-1/system-services cat < $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service @@ -63,6 +64,6 @@ stdenv.mkDerivation rec { homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html; license = licenses.gpl2; platforms = with platforms; linux ++ darwin; - maintainers = with maintainers; [ eelco ]; + maintainers = with maintainers; [ eelco fpletz ]; }; } diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix index 3f853ca303e..8a15811407d 100644 --- a/pkgs/tools/networking/haproxy/default.nix +++ b/pkgs/tools/networking/haproxy/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { majorVersion = "1.6"; - version = "${majorVersion}.5"; + version = "${majorVersion}.6"; name = "haproxy-${version}"; src = fetchurl { url = "http://haproxy.1wt.eu/download/${majorVersion}/src/${name}.tar.gz"; - sha256 = "1pl5zsn12jjfss3cxzbqmxih4nf2gh8qf83qaayvpavli29zpcy4"; + sha256 = "1xamzzfvwgh3b72f3j74ar9xcn61viszqfbdpf4cdhwc0xikvc7x"; }; buildInputs = [ openssl zlib ]; diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix index 5829dc9d550..fa1740e9d12 100644 --- a/pkgs/tools/networking/mu/default.nix +++ b/pkgs/tools/networking/mu/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, sqlite, pkgconfig, autoreconfHook , xapian, glib, gmime, texinfo , emacs, guile -, gtk3, webkit, libsoup, icu, withMug ? false /* doesn't build with current gtk3 */ }: +, gtk3, webkitgtk24x, libsoup, icu }: stdenv.mkDerivation rec { version = "0.9.16"; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildInputs = [ sqlite pkgconfig xapian glib gmime texinfo emacs guile libsoup icu autoreconfHook - ] ++ stdenv.lib.optionals withMug [ gtk3 webkit ]; + gtk3 webkitgtk24x ]; preBuild = '' # Fix mu4e-builddir (set it to $out) @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { ''; # Install mug and msg2pdf - postInstall = stdenv.lib.optionalString withMug '' + postInstall = '' cp -v toys/msg2pdf/msg2pdf $out/bin/ cp -v toys/mug/mug $out/bin/ ''; diff --git a/pkgs/tools/networking/nethogs/default.nix b/pkgs/tools/networking/nethogs/default.nix index dfa9b26a38e..eac95a32008 100644 --- a/pkgs/tools/networking/nethogs/default.nix +++ b/pkgs/tools/networking/nethogs/default.nix @@ -2,18 +2,20 @@ stdenv.mkDerivation rec { name = "nethogs-${version}"; - version = "0.8.1"; + version = "0.8.5"; src = fetchFromGitHub { owner = "raboof"; repo = "nethogs"; rev = "v${version}"; - sha256 = "1phn6i44ysvpl1f54bx4dspy51si8rc2wq6fywi163mi25j355d4"; + sha256 = "13plwblwbnyyi40jaqx471gwhln08wm7f0fxyvj1yh3d81k556yx"; }; buildInputs = [ ncurses libpcap ]; - installFlags = [ "prefix=$(out)" "sbin=$(prefix)/bin" ]; + makeFlags = [ "VERSION=${version}" ]; + + installFlags = [ "PREFIX=$(out)" "sbin=$(out)/bin" ]; meta = with stdenv.lib; { description = "A small 'net top' tool, grouping bandwidth by process"; @@ -27,7 +29,7 @@ stdenv.mkDerivation rec { bandwidth. ''; license = licenses.gpl2Plus; - homepage = http://nethogs.sourceforge.net/; + homepage = "https://github.com/raboof/nethogs#readme"; platforms = platforms.linux; maintainers = [ maintainers.rycee ]; }; diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix index b2242fe5454..4c42771be17 100644 --- a/pkgs/tools/networking/ntp/default.nix +++ b/pkgs/tools/networking/ntp/default.nix @@ -3,11 +3,11 @@ assert stdenv.isLinux -> libcap != null; stdenv.mkDerivation rec { - name = "ntp-4.2.8p6"; + name = "ntp-4.2.8p8"; src = fetchurl { url = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${name}.tar.gz"; - sha256 = "0j509gd0snj8dq15rhfv2v4wisfaabya1gmgqslk1kisawf0wgaq"; + sha256 = "1vlpgd0dk2wkpmmf869sfxi8f46sfnmjgk51vl8n6vj5y2sx1cra"; }; configureFlags = [ diff --git a/pkgs/tools/networking/ocproxy/default.nix b/pkgs/tools/networking/ocproxy/default.nix new file mode 100644 index 00000000000..65729d896aa --- /dev/null +++ b/pkgs/tools/networking/ocproxy/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, autoconf, automake, libevent }: + +stdenv.mkDerivation rec { + version = "1.50"; + name = "ocproxy-${version}"; + + src = fetchFromGitHub { + owner = "cernekee"; + repo = "ocproxy"; + rev = "v${version}"; + sha256 = "136vlk2svgls5paf17xi1zahcahgcnmi2p55khh7zpqaar4lzw6s"; + }; + + buildInputs = [ autoconf automake libevent ]; + + preConfigure = '' + patchShebangs autogen.sh + ./autogen.sh + ''; + + meta = with stdenv.lib; { + description = "OpenConnect proxy"; + longdescription = '' + ocproxy is a user-level SOCKS and port forwarding proxy for OpenConnect + based on lwIP. + ''; + homepage = https://github.com/cernekee/ocproxy; + license = licenses.bsd3; + maintainers = [ maintainers.joko ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix index 6f7b72c1f1c..e666cf7f605 100644 --- a/pkgs/tools/networking/openvpn/default.nix +++ b/pkgs/tools/networking/openvpn/default.nix @@ -3,11 +3,11 @@ with stdenv.lib; stdenv.mkDerivation rec { - name = "openvpn-2.3.10"; + name = "openvpn-2.3.11"; src = fetchurl { url = "http://swupdate.openvpn.net/community/releases/${name}.tar.gz"; - sha256 = "1xn8kv4v4h4v8mhd9k4s9rilb7k30jgb9rm7n4fwmfrm5swvbc7q"; + sha256 = "0qv1flcz4q4mb7zpkxsnlmpvrv3s9gw7xvprjk7n2pnk9x1s85wi"; }; patches = optional stdenv.isLinux ./systemd-notify.patch; diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix index ec2821f4d81..7d48f38e79d 100644 --- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix +++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix @@ -1,30 +1,26 @@ { stdenv, fetchurl, bison, pkgconfig -, glib, gtk, libxml2, gettext, zlib }: +, glib, gtk, libxml2, gettext, zlib, binutils, gnutls }: let name = "gtk-gnutella"; - version = "1.1.5"; + version = "1.1.9"; in stdenv.mkDerivation { name = "${name}-${version}"; src = fetchurl { url = "mirror://sourceforge/${name}/${name}-${version}.tar.bz2"; - sha256 = "19d8mmyxrdwdafcjq1hvs9zn40yrcj1127163a2058svi0x08cn3"; + sha256 = "1zvadgsskmpm82id9mbj24a2lyq38qv768ixv7nmfjl3d4wr2biv"; }; - nativeBuildInputs = [ bison pkgconfig ]; - buildInputs = [ glib gtk libxml2 gettext zlib ]; + nativeBuildInputs = [ bison binutils gettext pkgconfig ]; + buildInputs = [ glib gnutls gtk libxml2 zlib ]; - NIX_LDFLAGS = "-rpath ${zlib.out}/lib"; - configureScript = "./Configure"; - dontAddPrefix = true; - configureFlags = "-d -e -D prefix=$out -D gtkversion=2 -D official=true"; + configureScript = "./build.sh --configure-only"; meta = with stdenv.lib; { homepage = http://gtk-gnutella.sourceforge.net/; description = "Server/client for Gnutella"; license = licenses.gpl2; - broken = true; }; } diff --git a/pkgs/tools/networking/shadowsocks-libev/default.nix b/pkgs/tools/networking/shadowsocks-libev/default.nix index e12d2593021..eb30ba2368a 100644 --- a/pkgs/tools/networking/shadowsocks-libev/default.nix +++ b/pkgs/tools/networking/shadowsocks-libev/default.nix @@ -1,8 +1,8 @@ -{ withPolarSSL ? false +{ withMbedTLS ? true , enableSystemSharedLib ? true , stdenv, fetchurl, zlib , openssl ? null -, polarssl ? null +, mbedtls ? null , libev ? null , libsodium ? null , udns ? null @@ -25,13 +25,13 @@ stdenv.mkDerivation rec { }; buildInputs = [ zlib ] - ++ optional (!withPolarSSL) openssl - ++ optional withPolarSSL polarssl + ++ optional (!withMbedTLS) openssl + ++ optional withMbedTLS mbedtls ++ optional enableSystemSharedLib [libev libsodium udns]; - configureFlags = optional withPolarSSL - [ "--with-crypto-library=polarssl" - "--with-polarssl=${polarssl}" + configureFlags = optional withMbedTLS + [ "--with-crypto-library=mbedtls" + "--with-mbedtls=${mbedtls}" ] ++ optional enableSystemSharedLib "--enable-system-shared-lib"; diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix index c4d68ee399a..c188dd477fe 100644 --- a/pkgs/tools/networking/siege/default.nix +++ b/pkgs/tools/networking/siege/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, openssl, zlib }: stdenv.mkDerivation rec { - name = "siege-4.0.1"; + name = "siege-4.0.2"; src = fetchurl { url = "http://download.joedog.org/siege/${name}.tar.gz"; - sha256 = "0dr8k64s7zlhy3w8n1br0h6xd06p09p9809l9rp13isf10jp5pgx"; + sha256 = "0ivc6ah9n2888qgh8dicszhr3mjs42538lfx7dlhxvvvakwq3yvy"; }; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; diff --git a/pkgs/tools/networking/smbldaptools/default.nix b/pkgs/tools/networking/smbldaptools/default.nix index 9ca5c3be177..ef300d68314 100644 --- a/pkgs/tools/networking/smbldaptools/default.nix +++ b/pkgs/tools/networking/smbldaptools/default.nix @@ -1,13 +1,13 @@ {stdenv, fetchurl, perl, NetLDAP, makeWrapper, CryptSmbHash, DigestSHA1}: let - version = "0.9.10"; + version = "0.9.11"; in stdenv.mkDerivation { name = "smbldap-tools-${version}"; src = fetchurl { url = "http://download.gna.org/smbldap-tools/sources/${version}/smbldap-tools-${version}.tar.gz"; - sha256 = "19hsvslfs61pk9nhyqdkd68gc95z26kpkmsj10b8zvzlhqmwdvy4"; + sha256 = "1xcxmpz74r82vjp731axyac3cyksfiarz9jk5g5m2bzfdixkq9mz"; }; buildInputs = [ perl NetLDAP makeWrapper CryptSmbHash DigestSHA1 ]; @@ -27,7 +27,5 @@ stdenv.mkDerivation { homepage = http://gna.org/projects/smbldap-tools/; description = "SAMBA LDAP tools"; license = stdenv.lib.licenses.gpl2Plus; - # pod2man: unable to format smbldap-config.cmd - broken = true; }; } diff --git a/pkgs/tools/networking/srelay/arm.patch b/pkgs/tools/networking/srelay/arm.patch new file mode 100644 index 00000000000..f56f2c0f2f0 --- /dev/null +++ b/pkgs/tools/networking/srelay/arm.patch @@ -0,0 +1,12 @@ +diff -ru srelay-0.4.8b4.orig/configure srelay-0.4.8b4/configure +--- srelay-0.4.8b4.orig/configure 2010-12-21 01:11:14.000000000 +1100 ++++ srelay-0.4.8b4/configure 2016-06-22 09:03:42.250000345 +1000 +@@ -1875,7 +1875,7 @@ + ;; + linux*) + case "$host_cpu" in +- i*86|mips*|powerpc*|sparc*|x86_64*) ++ i*86|mips*|powerpc*|sparc*|x86_64*|arm*) + OS=LINUX + cat >>confdefs.h <<\_ACEOF + #define LINUX 1 diff --git a/pkgs/tools/networking/srelay/default.nix b/pkgs/tools/networking/srelay/default.nix new file mode 100644 index 00000000000..853a21da73c --- /dev/null +++ b/pkgs/tools/networking/srelay/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, openssl }: + +stdenv.mkDerivation rec { + name = "srelay-0.4.8b6"; + + src = fetchurl { + url = "https://sourceforge.net/projects/socks-relay/files/socks-relay/srelay-0.4.8/srelay-0.4.8b6.tar.gz"; + sha256 = "1az9ds10hpmpw6bqk7fcd1w70001kz0mm48v3vgg2z6vrbmgn0qj"; + }; + + patches = [ ./arm.patch ]; + + installPhase = "install -D srelay $out/bin/srelay"; + + meta = { + description = "A SOCKS proxy and relay"; + homepage = http://socks-relay.sourceforge.net/; + platforms = stdenv.lib.platforms.unix; + license = stdenv.lib.licenses.bsd3; + }; +} diff --git a/pkgs/tools/networking/traceroute/default.nix b/pkgs/tools/networking/traceroute/default.nix index d98c9996882..3d3be5d4532 100644 --- a/pkgs/tools/networking/traceroute/default.nix +++ b/pkgs/tools/networking/traceroute/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { name = "traceroute-${version}"; - version = "2.0.21"; + version = "2.1.0"; src = fetchurl { url = "mirror://sourceforge/traceroute/${name}.tar.gz"; - sha256 = "1q4n9s42nfcc4fmnwmrsiabvqrcaagiagmmqj9r5hfmi63pr7b7p"; + sha256 = "3669d22a34d3f38ed50caba18cd525ba55c5c00d5465f2d20d7472e5d81603b6"; }; - makeFlags = "prefix=$(out)"; + makeFlags = "prefix=$(out) LDFLAGS=-lm"; preConfigure = '' sed -i 's@LIBS := \(.*\) -lm \(.*\)@LIBS := \1 \2@' Make.rules diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix index 67b53c83448..3634b852fad 100644 --- a/pkgs/tools/networking/urlwatch/default.nix +++ b/pkgs/tools/networking/urlwatch/default.nix @@ -1,14 +1,19 @@ { stdenv, fetchurl, python3Packages }: python3Packages.buildPythonApplication rec { - name = "urlwatch-2.1"; + name = "urlwatch-2.2"; src = fetchurl { url = "http://thp.io/2008/urlwatch/${name}.tar.gz"; - sha256 = "0xn435cml9wjwk39117p1diqmvw3jbmv9ccr7230iaf7z59vf9v6"; + sha256 = "0s9056mm1hkj5gpzsb5bz6fwxk0nm73i0dhnqwa1bfddjnvpl9d3"; }; + patches = [ + ./setup.patch + ]; + propagatedBuildInputs = with python3Packages; [ + keyring minidb pyyaml requests2 diff --git a/pkgs/tools/networking/urlwatch/setup.patch b/pkgs/tools/networking/urlwatch/setup.patch new file mode 100644 index 00000000000..66626dbf025 --- /dev/null +++ b/pkgs/tools/networking/urlwatch/setup.patch @@ -0,0 +1,42 @@ +From ebe7b90100a3d960f53fdc9409d2d89eaa61bf11 Mon Sep 17 00:00:00 2001 +From: Thomas Perl +Date: Tue, 28 Jun 2016 18:15:51 +0200 +Subject: [PATCH] Check current directory and use os.path.relpath (Fixes #73) + +--- + setup.py | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index 947a7c8..45405cd 100644 +--- a/setup.py ++++ b/setup.py +@@ -7,10 +7,15 @@ + + import os + import re ++import sys + + PACKAGE_NAME = 'urlwatch' + DEPENDENCIES = ['minidb', 'PyYAML', 'requests'] +-HERE = os.path.dirname(__file__) ++HERE = os.path.abspath(os.path.dirname(__file__)) ++ ++if os.path.normpath(os.getcwd()) != os.path.normpath(HERE): ++ print('You must run {} inside {} (cwd={})'.format(os.path.basename(__file__), HERE, os.getcwd())) ++ sys.exit(1) + + # Assumptions: + # 1. Package name equals main script file name (and only one script) +@@ -29,9 +34,9 @@ + + m['scripts'] = [os.path.join(HERE, PACKAGE_NAME)] + m['package_dir'] = {'': os.path.join(HERE, 'lib')} +-m['packages'] = ['.'.join(dirname[len(HERE)+1:].split(os.sep)[1:]) ++m['packages'] = ['.'.join(os.path.relpath(dirname, HERE).split(os.sep)[1:]) + for dirname, _, files in os.walk(os.path.join(HERE, 'lib')) if '__init__.py' in files] +-m['data_files'] = [(dirname[len(HERE)+1:], [os.path.join(dirname[len(HERE)+1:], fn) for fn in files]) ++m['data_files'] = [(os.path.relpath(dirname, HERE), [os.path.join(os.path.relpath(dirname, HERE), fn) for fn in files]) + for dirname, _, files in os.walk(os.path.join(HERE, 'share')) if files] + m['install_requires'] = DEPENDENCIES + diff --git a/pkgs/tools/package-management/nix-repl/default.nix b/pkgs/tools/package-management/nix-repl/default.nix index 8dfc9e6333e..43d0d60ac31 100644 --- a/pkgs/tools/package-management/nix-repl/default.nix +++ b/pkgs/tools/package-management/nix-repl/default.nix @@ -1,15 +1,15 @@ { lib, stdenv, fetchFromGitHub, nix, readline, boehmgc }: -let rev = "8a2f5f0607540ffe56b56d52db544373e1efb980"; in +let rev = "a1ea85e92b067a0a42354a28355c633eac7be65c"; in stdenv.mkDerivation { - name = "nix-repl-${lib.getVersion nix}-${lib.substring 0 7 rev}"; + name = "nix-repl-${lib.getVersion nix}-2016-02-28"; src = fetchFromGitHub { owner = "edolstra"; repo = "nix-repl"; inherit rev; - sha256 = "0cjablz01i0g9smnavhf86imwx1f9mnh5flax75i615ml71gsr88"; + sha256 = "0rf9711day64lgg6g6yqc5709x4sgj137zpqyn019k764i7m2xs8"; }; buildInputs = [ nix readline ]; diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix index 7176b491afa..0ebfe36f59d 100644 --- a/pkgs/tools/system/facter/default.nix +++ b/pkgs/tools/system/facter/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { name = "facter-${version}"; - version = "3.1.6"; + version = "3.1.8"; src = fetchurl { url = "https://downloads.puppetlabs.com/facter/${name}.tar.gz"; - sha256 = "1kv4k9zqpsiw362kk1rw1a4sixd0pmnh57ghd4k4pffr2dkmdfsv"; + sha256 = "1fhfjf5bm5kyjiady14fxhpp7hdrkgx56vsvdbqj82km0xqcxpj9"; }; cmakeFlags = [ "-DFACTER_RUBY=${ruby}/lib/libruby.so" ]; diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix index 459334e2b3c..9a93b64e369 100644 --- a/pkgs/tools/text/sift/default.nix +++ b/pkgs/tools/text/sift/default.nix @@ -21,6 +21,6 @@ buildGoPackage rec { homepage = "https://sift-tool.org"; maintainers = [ maintainers.carlsverre ]; license = licenses.gpl3; - platforms = platforms.all; + platforms = platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c6ac862aa94..21557e24a1c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1492,7 +1492,9 @@ in fatsort = callPackage ../tools/filesystems/fatsort { }; - fcitx = callPackage ../tools/inputmethods/fcitx { }; + fcitx = callPackage ../tools/inputmethods/fcitx { + plugins = []; + }; fcitx-engines = recurseIntoAttrs { @@ -1516,10 +1518,6 @@ in fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { }; - fcitx-with-plugins = callPackage ../tools/inputmethods/fcitx/wrapper.nix { - plugins = [ ]; - }; - fcppt = callPackage ../development/libraries/fcppt/default.nix { }; fcron = callPackage ../tools/system/fcron { }; @@ -2363,6 +2361,8 @@ in libqmi = callPackage ../development/libraries/libqmi { }; + libqrencode = callPackage ../development/libraries/libqrencode { }; + libmbim = callPackage ../development/libraries/libmbim { }; libmongo-client = callPackage ../development/libraries/libmongo-client { }; @@ -2772,6 +2772,8 @@ in obexd = callPackage ../tools/bluetooth/obexd { }; + ocproxy = callPackage ../tools/networking/ocproxy { }; + openfortivpn = callPackage ../tools/networking/openfortivpn { }; obexfs = callPackage ../tools/bluetooth/obexfs { }; @@ -3067,6 +3069,8 @@ in libpng = libpng12; }; + pngpp = callPackage ../development/libraries/png++ { }; + pngquant = callPackage ../tools/graphics/pngquant { }; podiff = callPackage ../tools/text/podiff { }; @@ -3226,6 +3230,14 @@ in recordmydesktop = callPackage ../applications/video/recordmydesktop { }; + gtk-recordmydesktop = callPackage ../applications/video/recordmydesktop/gtk.nix { + jack2 = jack2Full; + }; + + qt-recordmydesktop = callPackage ../applications/video/recordmydesktop/qt.nix { + jack2 = jack2Full; + }; + recutils = callPackage ../tools/misc/recutils { }; recoll = callPackage ../applications/search/recoll { }; @@ -5609,6 +5621,8 @@ in elixir = callPackage ../development/interpreters/elixir { debugInfo = true; }; + lfe = callPackage ../development/interpreters/lfe { }; + groovy = callPackage ../development/interpreters/groovy { }; guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { }; @@ -5954,6 +5968,8 @@ in srecord = callPackage ../development/tools/misc/srecord { }; + srelay = callPackage ../tools/networking/srelay { }; + xidel = callPackage ../tools/text/xidel { }; @@ -6387,6 +6403,8 @@ in maven = maven3; maven3 = callPackage ../development/tools/build-managers/apache-maven { }; + minify = callPackage ../development/web/minify { }; + mk = callPackage ../development/tools/build-managers/mk { }; msitools = callPackage ../development/tools/misc/msitools { }; @@ -6611,6 +6629,8 @@ in uncrustify = callPackage ../development/tools/misc/uncrustify { }; + universal-ctags = callPackage ../development/tools/misc/universal-ctags { }; + vagrant = callPackage ../development/tools/vagrant { ruby = ruby_2_2; }; @@ -6661,6 +6681,8 @@ in grabserial = callPackage ../development/tools/grabserial { }; + mypy-lang = callPackage ../development/tools/mypy-lang { }; + ### DEVELOPMENT / LIBRARIES @@ -7511,6 +7533,7 @@ in hyena = callPackage ../development/libraries/hyena { }; icu = callPackage ../development/libraries/icu { }; + icu_54_1 = callPackage ../development/libraries/icu/54.1.nix { }; id3lib = callPackage ../development/libraries/id3lib { }; @@ -10879,7 +10902,10 @@ in }; linux_4_1 = callPackage ../os-specific/linux/kernel/linux-4.1.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper ] + kernelPatches = + [ kernelPatches.bridge_stp_helper + kernelPatches.hiddev_CVE_2016_5829 + ] ++ lib.optionals ((platform.kernelArch or null) == "mips") [ kernelPatches.mips_fpureg_emu kernelPatches.mips_fpu_sigill @@ -10888,7 +10914,12 @@ in }; linux_4_4 = callPackage ../os-specific/linux/kernel/linux-4.4.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.qat_common_Makefile ] + kernelPatches = + [ kernelPatches.bridge_stp_helper + kernelPatches.qat_common_Makefile + kernelPatches.hiddev_CVE_2016_5829 + kernelPatches.ecryptfs_fix_mmap_bug + ] ++ lib.optionals ((platform.kernelArch or null) == "mips") [ kernelPatches.mips_fpureg_emu kernelPatches.mips_fpu_sigill @@ -10897,7 +10928,11 @@ in }; linux_4_5 = callPackage ../os-specific/linux/kernel/linux-4.5.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.qat_common_Makefile ] + kernelPatches = + [ kernelPatches.bridge_stp_helper + kernelPatches.qat_common_Makefile + kernelPatches.hiddev_CVE_2016_5829 + ] ++ lib.optionals ((platform.kernelArch or null) == "mips") [ kernelPatches.mips_fpureg_emu kernelPatches.mips_fpu_sigill @@ -10906,7 +10941,11 @@ in }; linux_4_6 = callPackage ../os-specific/linux/kernel/linux-4.6.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.qat_common_Makefile ] + kernelPatches = + [ kernelPatches.bridge_stp_helper + kernelPatches.qat_common_Makefile + kernelPatches.hiddev_CVE_2016_5829 + ] ++ lib.optionals ((platform.kernelArch or null) == "mips") [ kernelPatches.mips_fpureg_emu kernelPatches.mips_fpu_sigill @@ -10977,6 +11016,8 @@ in ixgbevf = callPackage ../os-specific/linux/ixgbevf {}; + ena = callPackage ../os-specific/linux/ena {}; + v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { }; frandom = callPackage ../os-specific/linux/frandom { }; @@ -11053,6 +11094,8 @@ in virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { }; + wireguard = callPackage ../os-specific/linux/wireguard {}; + x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { }; zfs = callPackage ../os-specific/linux/zfs { @@ -13467,6 +13510,8 @@ in }; ledger = self.ledger3; + lighthouse = callPackage ../applications/misc/lighthouse { }; + lighttable = callPackage ../applications/editors/lighttable {}; links2 = callPackage ../applications/networking/browsers/links2 { }; @@ -13617,6 +13662,8 @@ in inherit (gnome) libgnomecanvas glib; }; + mop = callPackage ../applications/misc/mop { }; + mopidy = callPackage ../applications/audio/mopidy { }; mopidy-gmusic = callPackage ../applications/audio/mopidy-gmusic { }; @@ -15551,7 +15598,7 @@ in soi = callPackage ../games/soi { lua = lua5_1; }; - + solarus = callPackage ../games/solarus { }; # You still can override by passing more arguments. @@ -15767,14 +15814,7 @@ in gnome3_18 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.18 { }); gnome3_20 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.20 { }); - gnome3 = self.gnome3_18 // { - shellExtensions = { - impatience = callPackage ../desktops/gnome-3/extensions/impatience.nix {}; - system-monitor = callPackage ../desktops/gnome-3/extensions/system-monitor.nix {}; - volume-mixer = callPackage ../desktops/gnome-3/extensions/volume-mixer.nix {}; - workspace-grid = callPackage ../desktops/gnome-3/extensions/workspace-grid.nix {}; - }; - }; + gnome3 = self.gnome3_20; gnome = recurseIntoAttrs self.gnome2; @@ -16099,8 +16139,8 @@ in kde5 = let - frameworks = import ../desktops/kde-5/frameworks-5.22 { inherit pkgs; }; - plasma = import ../desktops/kde-5/plasma-5.6 { inherit pkgs; }; + frameworks = import ../desktops/kde-5/frameworks-5.24 { inherit pkgs; }; + plasma = import ../desktops/kde-5/plasma-5.7 { inherit pkgs; }; applications = import ../desktops/kde-5/applications-16.04 { inherit pkgs; }; merged = self: { plasma = plasma self; @@ -17288,4 +17328,6 @@ in maphosts = callPackage ../tools/networking/maphosts {}; zuki-themes = callPackage ../misc/themes/zuki { }; + + zoom-us = qt55.callPackage ../applications/networking/instant-messengers/zoom-us {}; } diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index cff8671b65d..8913dc1ef59 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -22,43 +22,37 @@ , # Allow a configuration attribute set to be passed in as an # argument. Otherwise, it's read from $NIXPKGS_CONFIG or # ~/.nixpkgs/config.nix. - config ? null + # + # [For NixOS (nixos-rebuild), use nixpkgs.config option to set.] + config ? let + inherit (builtins) getEnv pathExists; + + configFile = getEnv "NIXPKGS_CONFIG"; + homeDir = getEnv "HOME"; + configFile2 = homeDir + "/.nixpkgs/config.nix"; + in + if configFile != "" && pathExists configFile then import configFile + else if homeDir != "" && pathExists configFile2 then import configFile2 + else {} , crossSystem ? null , platform ? null }: -let config_ = config; platform_ = platform; in # rename the function arguments +let configExpr = config; platform_ = platform; in # rename the function arguments let lib = import ../../lib; - # The contents of the configuration file found at $NIXPKGS_CONFIG or - # $HOME/.nixpkgs/config.nix. - # for NIXOS (nixos-rebuild): use nixpkgs.config option + # Allow both: + # { /* the config */ } and + # { pkgs, ... } : { /* the config */ } config = - let - inherit (builtins) getEnv pathExists; - - configFile = getEnv "NIXPKGS_CONFIG"; - homeDir = getEnv "HOME"; - configFile2 = homeDir + "/.nixpkgs/config.nix"; - - configExpr = - if config_ != null then config_ - else if configFile != "" && pathExists configFile then import configFile - else if homeDir != "" && pathExists configFile2 then import configFile2 - else {}; - - in - # allow both: - # { /* the config */ } and - # { pkgs, ... } : { /* the config */ } - if builtins.isFunction configExpr - then configExpr { inherit pkgs; } - else configExpr; + if builtins.isFunction configExpr + then configExpr { inherit pkgs; } + else configExpr; # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 63e459a34d7..31607fe2bf2 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -304,6 +304,25 @@ let self = _self // overrides; _self = with self; { }; }; + AppSt = buildPerlPackage rec { + name = "App-St-1.1.2"; + src = fetchurl { + url = https://github.com/nferraz/st/archive/v1.1.2.tar.gz; + sha256 = "1j1iwcxl16m4x5kl1vcv0linb93r55ndh3jm0w6qf459jl4x38s6"; + }; + postInstall = + '' + sed -e "1 s|\(.*\)|\1 -I $out/lib/perl5/site_perl|" -i $out/bin/st + ($out/bin/st --help || true) | grep Usage + ''; + meta = { + description = "A command that computes simple statistics"; + license = stdenv.lib.licenses.mit; + homepage = https://github.com/nferraz/st; + maintainers = [ maintainers.eelco ]; + }; + }; + AttributeHandlers = buildPerlPackage { name = "Attribute-Handlers-0.99"; src = fetchurl { @@ -603,10 +622,10 @@ let self = _self // overrides; _self = with self; { }; bignum = buildPerlPackage rec { - name = "bignum-0.42"; + name = "bignum-0.43"; src = fetchurl { url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/${name}.tar.gz"; - sha256 = "5bc9a16fe6d56584cde0f183828d81466f2cfc08ec1b6ef15d25a732080a9b52"; + sha256 = "0610cb569fe51ceaa98991549192b54a09b5ebd9bd03aee39e7234f7c222366d"; }; buildInputs = [ MathBigInt MathBigRat ]; meta = { @@ -2698,10 +2717,10 @@ let self = _self // overrides; _self = with self; { }; CryptX = buildPerlPackage rec { - name = "CryptX-0.037"; + name = "CryptX-0.038"; src = fetchurl { url = "mirror://cpan/authors/id/M/MI/MIK/${name}.tar.gz"; - sha256 = "ae09e6449efb2a9bc661ffeba613c7452367bdcb13c1ee346af0f72c9803404d"; + sha256 = "f98d4ee3bfd0a985077912501b32777c551f0782aa050b4dfbcb3d654e303eb8"; }; propagatedBuildInputs = [ JSONMaybeXS ]; meta = { @@ -5302,10 +5321,10 @@ let self = _self // overrides; _self = with self; { }; FileUtil = buildPerlPackage rec { - name = "File-Util-4.161200"; + name = "File-Util-4.161950"; src = fetchurl { url = "mirror://cpan/authors/id/T/TO/TOMMY/${name}.tar.gz"; - sha256 = "c63be030c15303796d387b290f1f6b59451fb64827e39afeb0e1d0adad72ab8e"; + sha256 = "88507b19da580d595b5c25fe6ba75bbd6096b4359e389ead067a216f766c20ee"; }; buildInputs = [ ModuleBuild TestNoWarnings ]; meta = { @@ -5493,18 +5512,18 @@ let self = _self // overrides; _self = with self; { }; GetoptLongDescriptive = buildPerlPackage rec { - name = "Getopt-Long-Descriptive-0.099"; + name = "Getopt-Long-Descriptive-0.100"; src = fetchurl { url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz"; - sha256 = "1sf5r3vy7880ynsn2aqmb5p6rzmhq5v072x33g8c7aqjpz81wkgw"; + sha256 = "1451e79310d1630de37690e3aba5c38ea5f01a486c5a43f0cd95bef2a02dffb6"; }; - buildInputs = [ TestFatal TestWarnings ]; - propagatedBuildInputs = [ ParamsValidate SubExporter SubExporterUtil ]; + buildInputs = [ CPANMetaCheck TestFatal TestWarnings ]; + propagatedBuildInputs = [ ParamsValidate SubExporter ]; meta = { homepage = https://github.com/rjbs/Getopt-Long-Descriptive; description = "Getopt::Long, but simpler and more powerful"; license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; - maintainers = with maintainers; [ rycee ]; + maintainers = [ maintainers.rycee ]; }; }; @@ -8488,12 +8507,12 @@ let self = _self // overrides; _self = with self; { MouseXGetOpt = self.MouseXGetopt; MouseXGetopt = buildPerlModule rec { - name = "MouseX-Getopt-0.36"; + name = "MouseX-Getopt-0.37"; src = fetchurl { url = "mirror://cpan/authors/id/G/GF/GFUJI/${name}.tar.gz"; - sha256 = "172ab0609f1638c6d8800d2dff1bdaa044e305aaa2e9b1fbb8a9dc722a3bf430"; + sha256 = "a6221043e7be3217ce56d2a6425a413d9cd28e2f52053995a6ceb118e8e963bc"; }; - buildInputs = [ ModuleBuild Mouse MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ]; + buildInputs = [ ModuleBuildTiny Mouse MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ]; propagatedBuildInputs = [ GetoptLongDescriptive Mouse ]; meta = { homepage = https://github.com/gfx/mousex-getopt; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index cf669c98899..08014b2de30 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1359,13 +1359,13 @@ in modules // { awscli = buildPythonPackage rec { name = "awscli-${version}"; - version = "1.10.38"; + version = "1.10.46"; namePrefix = ""; src = pkgs.fetchurl { url = "mirror://pypi/a/awscli/${name}.tar.gz"; - sha256 = "01d14snp3h4dkbwyviyprhcl8qcngc6nyzwy3k3nxvm1ia9hvz2n"; + sha256 = "1d2xjhdmjna9zxa4ybk7cjypib5yq2gd3w5fgpb4lfs6bh3mr554"; }; # No tests included @@ -1638,6 +1638,22 @@ in modules // { }; }; + backports_shutil_get_terminal_size = if !(pythonOlder "3.3") then null else buildPythonPackage rec { + name = "backports.shutil_get_terminal_size-${version}"; + version = "1.0.0"; + + src = pkgs.fetchurl { + url = "mirror://pypi/b/backports.shutil_get_terminal_size/${name}.tar.gz"; + sha256 = "713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80"; + }; + + meta = { + description = "A backport of the get_terminal_size function from Python 3.3’s shutil."; + homepage = https://github.com/chrippa/backports.shutil_get_terminal_size; + license = with licenses; [ mit ]; + }; + }; + backports_ssl_match_hostname_3_4_0_2 = self.buildPythonPackage rec { name = "backports.ssl_match_hostname-3.4.0.2"; @@ -2730,12 +2746,12 @@ in modules // { }; botocore = buildPythonPackage rec { - version = "1.4.28"; # This version is required by awscli + version = "1.4.36"; # This version is required by awscli name = "botocore-${version}"; src = pkgs.fetchurl { url = "mirror://pypi/b/botocore/${name}.tar.gz"; - sha256 = "1qfvcb7japa3y1j4b86af9ph8q8mbq2mrx6xfhlqcf2x399l2phl"; + sha256 = "0mkydnbbn0x97nfzwqia68zw2y5j7i9yzpq5kasvc80n2z999h39"; }; propagatedBuildInputs = @@ -6084,6 +6100,45 @@ in modules // { propagatedBuildInputs = with self; [ rpkg offtrac urlgrabber fedora_cert ]; }); + Flootty = buildPythonPackage rec { + name = "Flootty-3.2.0"; + + src = pkgs.fetchurl { + url = "mirror://pypi/F/Flootty/${name}.tar.gz"; + sha256 = "14n2q2k388xbmp5rda5ss879bg5cbibk4zzz7c8mrjsmxhgagmmg"; + }; + + meta = with pkgs.stdenv.lib; { + description = "Floobits collaborative terminal"; + homepage = "https://github.com/Floobits/flootty/"; + maintainers = with maintainers; [ garbas ]; + license = licenses.asl20; + }; + }; + + flowlogs_reader = buildPythonPackage rec { + name = "flowlogs_reader-1.0.0"; + + src = pkgs.fetchurl { + url = "mirror://pypi/f/flowlogs_reader/${name}.tar.gz"; + sha256 = "0158aki6m3pkf98hpd60088qyhrfxkmybdf8hv3qfl8nb61vaiwf"; + }; + + propagatedBuildInputs = with self; [ + botocore boto3 docutils + ]; + buildInputs = with self; [ + unittest2 mock + ]; + + meta = with pkgs.stdenv.lib; { + description = "Python library to make retrieving Amazon VPC Flow Logs from CloudWatch Logs a bit easier"; + homepage = "https://github.com/obsrvbl/flowlogs-reader"; + maintainers = with maintainers; [ cransom ]; + license = licenses.asl20; + }; + }; + frozendict = buildPythonPackage rec { name = "frozendict-0.5"; @@ -9504,6 +9559,22 @@ in modules // { }; }; + exifread = buildPythonPackage rec { + name = "ExifRead-2.1.2"; + + meta = { + description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files"; + homepage = "https://github.com/ianare/exif-py"; + license = "BSD"; + maintainers = with maintainers; [ vozz ]; + }; + + src = pkgs.fetchurl { + url = "mirror://pypi/E/ExifRead/${name}.tar.gz"; + sha256 = "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr"; + }; + }; + fastimport = buildPythonPackage rec { name = "fastimport-${version}"; version = "0.9.4"; @@ -11237,6 +11308,21 @@ in modules // { }; }; + inifile = buildPythonPackage rec { + name = "inifile-0.3"; + + meta = { + description = "A small INI library for Python"; + homepage = "https://github.com/mitsuhiko/python-inifile"; + license = "BSD"; + maintainers = with maintainers; [ vozz ]; + }; + + src = pkgs.fetchurl { + url = "mirror://pypi/i/inifile/${name}.tar.gz"; + sha256 = "0zgd53czc1irwx6b5zip8xlmyfr40hz2pd498d8yv61znj6lm16h"; + }; + }; interruptingcow = buildPythonPackage rec { name = "interruptingcow-${version}"; @@ -11363,7 +11449,8 @@ in modules // { buildInputs = with self; [ nose pkgs.glibcLocales pygments ] ++ optionals isPy27 [mock]; propagatedBuildInputs = with self; - [decorator pickleshare prompt_toolkit simplegeneric traitlets requests2 pexpect sqlite3] + [ backports_shutil_get_terminal_size decorator pickleshare prompt_toolkit + simplegeneric traitlets requests2 pathlib2 pexpect sqlite3 ] ++ optionals stdenv.isDarwin [appnope]; LC_ALL="en_US.UTF-8"; @@ -11971,6 +12058,34 @@ in modules // { }; }; + lektor = buildPythonPackage rec { + name = "lektor-${version}"; + + version = "2.3"; + + src = pkgs.fetchgit { + url = "https://github.com/lektor/lektor"; + rev = "refs/tags/${version}"; + sha256 = "1n0ylh1sbpvi9li3g6a7j7m28njfibn10y6s2gayjxwm6fpphqxy"; + }; + + LC_ALL="en_US.UTF-8"; + + meta = { + description = "A static content management system"; + homepage = "https://www.getlektor.com/"; + license = "BSD"; + maintainers = with maintainers; [ vozz ]; + }; + + # No tests included in archive + doCheck = false; + + propagatedBuildInputs = with self; [ + click watchdog exifread requests2 mistune inifile Babel jinja2 + flask pyopenssl ndg-httpsclient pkgs.glibcLocales + ]; + }; libcloud = buildPythonPackage (rec { name = "libcloud-0.18.0"; @@ -16237,6 +16352,25 @@ in modules // { }; }; + pathlib2 = if !(pythonOlder "3.4") then null else buildPythonPackage rec { + name = "pathlib2-${version}"; + version = "2.1.0"; + + src = pkgs.fetchurl { + url = "mirror://pypi/p/pathlib2/${name}.tar.gz"; + sha256 = "deb3a960c1d55868dfbcac98432358b92ba89d95029cddd4040db1f27405055c"; + }; + + propagatedBuildInputs = with self; [ six ]; + + meta = { + description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems."; + homepage = https://pypi.python.org/pypi/pathlib2/; + license = with licenses; [ mit ]; + }; + + }; + pathpy = buildPythonPackage rec { version = "8.1.2"; name = "path.py-${version}"; @@ -28346,4 +28480,5 @@ in modules // { }; buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ]; }; + }